forked from go/golangs_learn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
593 lines
44 KiB
593 lines
44 KiB
package final_common
|
|
|
|
import (
|
|
"database/sql"
|
|
"errors"
|
|
"fmt"
|
|
_ "github.com/go-sql-driver/mysql"
|
|
"strings"
|
|
)
|
|
|
|
type dbRow map[string]interface{}
|
|
|
|
type Dblib struct {
|
|
db *sql.DB
|
|
}
|
|
|
|
/*
|
|
NewDblib
|
|
参数:driver 数据库机构体对象
|
|
参数:dsn 查询SQL语句
|
|
返回:
|
|
返回:异常
|
|
*/
|
|
func NewDblib(driver, dsn string) (*Dblib, error) {
|
|
db, err := sql.Open(driver, dsn)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
err = db.Ping()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
p := new(Dblib)
|
|
p.db = db
|
|
return p, nil
|
|
}
|
|
|
|
/*
|
|
scanRow
|
|
参数:rows 数据库机构体对象
|
|
返回:查询结果
|
|
返回:异常
|
|
*/
|
|
func scanRow(rows *sql.Rows) (dbRow, error) {
|
|
columns, _ := rows.Columns()
|
|
|
|
vals := make([]interface{}, len(columns))
|
|
valsPtr := make([]interface{}, len(columns))
|
|
|
|
for i := range vals {
|
|
valsPtr[i] = &vals[i]
|
|
}
|
|
|
|
err := rows.Scan(valsPtr...)
|
|
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
r := make(dbRow)
|
|
|
|
for i, v := range columns {
|
|
if va, ok := vals[i].([]byte); ok {
|
|
r[v] = string(va)
|
|
} else {
|
|
r[v] = vals[i]
|
|
}
|
|
}
|
|
|
|
return r, nil
|
|
|
|
}
|
|
|
|
/*
|
|
GetOne 获取一行记录
|
|
参数:sql 数据库机构体对象
|
|
参数:args 查询SQL条件
|
|
返回:查询结果
|
|
返回:异常
|
|
*/
|
|
func (d *Dblib) GetOne(sql string, args ...interface{}) (dbRow, error) {
|
|
rows, err := d.db.Query(sql, args...)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
defer rows.Close()
|
|
rows.Next()
|
|
result, err := scanRow(rows)
|
|
return result, err
|
|
}
|
|
|
|
/*
|
|
GetAll 获取多行记录
|
|
参数:sql 数据库机构体对象
|
|
参数:args 查询SQL
|
|
返回:查询结果
|
|
返回:异常
|
|
*/
|
|
func (d *Dblib) GetAll(sql string, args ...interface{}) ([]dbRow, error) {
|
|
rows, err := d.db.Query(sql, args...)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
defer rows.Close()
|
|
|
|
result := make([]dbRow, 0)
|
|
|
|
for rows.Next() {
|
|
r, err := scanRow(rows)
|
|
if err != nil {
|
|
continue
|
|
}
|
|
|
|
result = append(result, r)
|
|
}
|
|
|
|
return result, nil
|
|
|
|
}
|
|
|
|
/*
|
|
Insert 写入记录
|
|
参数:table 数据库机构体对象
|
|
参数:data 查询SQL
|
|
返回:插入行数
|
|
返回:异常
|
|
*/
|
|
func (d *Dblib) Insert(table string, data dbRow) (int64, error) {
|
|
fields := make([]string, 0)
|
|
vals := make([]interface{}, 0)
|
|
placeHolder := make([]string, 0)
|
|
|
|
for f, v := range data {
|
|
fields = append(fields, f)
|
|
vals = append(vals, v)
|
|
placeHolder = append(placeHolder, "?")
|
|
}
|
|
|
|
sql := fmt.Sprintf("INSERT INTO %s(%s) VALUES(%s) ", table, strings.Join(fields, ","), strings.Join(placeHolder, ","))
|
|
result, err := d.db.Exec(sql, vals...)
|
|
if err != nil {
|
|
return 0, err
|
|
}
|
|
|
|
lID, err := result.LastInsertId()
|
|
if err != nil {
|
|
return 0, err
|
|
}
|
|
|
|
return lID, nil
|
|
}
|
|
|
|
/*
|
|
InsertArray 写入数组(占位)记录
|
|
参数:table 数据库机构体对象
|
|
参数:data 查询SQL
|
|
返回:插入行数
|
|
返回:异常
|
|
*/
|
|
func (d *Dblib) InsertArrayBySQL(sql string, array []string) (sql.Result, error) {
|
|
stmt, err := d.db.Prepare(sql)
|
|
if err != nil {
|
|
return nil, errors.New("Error")
|
|
}
|
|
return ExecArray(stmt, array)
|
|
}
|
|
|
|
/*
|
|
Update 更新记录
|
|
参数:table 数据库机构体对象
|
|
参数:condition 查询SQL
|
|
参数:data 查询SQL
|
|
参数:args 查询SQL
|
|
返回:
|
|
返回:
|
|
*/
|
|
func (d *Dblib) Update(table, condition string, data dbRow, args ...interface{}) (int64, error) {
|
|
params := make([]string, 0)
|
|
vals := make([]interface{}, 0)
|
|
|
|
for f, v := range data {
|
|
params = append(params, f+"=?")
|
|
vals = append(vals, v)
|
|
}
|
|
|
|
sql := "UPDATE %s SET %s"
|
|
if condition != "" {
|
|
sql += " WHERE %s"
|
|
sql = fmt.Sprintf(sql, table, strings.Join(params, ","), condition)
|
|
vals = append(vals, args...)
|
|
} else {
|
|
sql = fmt.Sprintf(sql, table, strings.Join(params, ","))
|
|
}
|
|
|
|
result, err := d.db.Exec(sql, vals...)
|
|
if err != nil {
|
|
return 0, err
|
|
}
|
|
|
|
aID, err := result.RowsAffected()
|
|
if err != nil {
|
|
return 0, err
|
|
}
|
|
|
|
return aID, nil
|
|
}
|
|
|
|
/*
|
|
Delete 删除记录
|
|
参数:table 数据库机构体对象
|
|
参数:condition 查询SQL
|
|
参数:args 查询SQL
|
|
返回:
|
|
返回:
|
|
*/
|
|
func (d *Dblib) Delete(table, condition string, args ...interface{}) (int64, error) {
|
|
sql := "DELETE FROM %s "
|
|
if condition != "" {
|
|
sql += "WHERE %s"
|
|
sql = fmt.Sprintf(sql, table, condition)
|
|
} else {
|
|
sql = fmt.Sprintf(sql, table)
|
|
}
|
|
|
|
result, err := d.db.Exec(sql, args...)
|
|
if err != nil {
|
|
return 0, err
|
|
}
|
|
|
|
aID, err := result.RowsAffected()
|
|
if err != nil {
|
|
return 0, err
|
|
}
|
|
|
|
return aID, nil
|
|
|
|
}
|
|
|
|
/*
|
|
GetAllBySQL 执行查询SQL并返回 []集合
|
|
参数:db 数据库机构体对象
|
|
参数:sqlstr 查询SQL
|
|
返回:查询结果集合
|
|
*/
|
|
func GetAllBySQL(db *sql.DB, sqlstr string) []map[string]string {
|
|
rows, _ := db.Query(sqlstr)
|
|
columns, _ := rows.Columns()
|
|
scanArgs := make([]interface{}, len(columns))
|
|
values := make([]interface{}, len(columns))
|
|
for i := range values {
|
|
scanArgs[i] = &values[i]
|
|
}
|
|
var result []map[string]string
|
|
for rows.Next() {
|
|
//将行数据保存到record字典
|
|
err := rows.Scan(scanArgs...)
|
|
if err != nil {
|
|
return nil
|
|
}
|
|
record := make(map[string]string)
|
|
for i, col := range values {
|
|
if col != nil {
|
|
record[columns[i]] = string(col.([]byte))
|
|
}
|
|
}
|
|
result = append(result, record)
|
|
}
|
|
return result
|
|
}
|
|
|
|
/*
|
|
GetValueByWhere 仅查询单值时使用
|
|
参数:db 数据库机构体对象
|
|
参数:selectStr 查询信息项
|
|
参数:tableStr 查询表
|
|
参数:whereStr 查询限制条件
|
|
返回:查询字符串
|
|
*/
|
|
func GetValueByWhere(db *sql.DB, selectStr, tableStr, whereStr string) string {
|
|
rows, _ := db.Query(fmt.Sprintf("select %s as selectStr from %s where %s", selectStr, tableStr, whereStr))
|
|
for rows.Next() {
|
|
rows.Scan(&selectStr)
|
|
return selectStr
|
|
}
|
|
return ""
|
|
}
|
|
|
|
/*
|
|
ExecSQL 执行SQL
|
|
参数:db 数据库机构体对象
|
|
参数:sqlstr 执行SQL
|
|
返回:批量插入的时候LastInserId返回的是第一条id,单条插入则返回这条的id
|
|
返回:变更的行数
|
|
返回:异常
|
|
*/
|
|
func ExecSQL(db *sql.DB, sqlstr string) (int64, int64, error) {
|
|
stmt, err := db.Prepare(sqlstr)
|
|
if err != nil {
|
|
return -1, -1, err
|
|
}
|
|
res, err := stmt.Exec()
|
|
lastId, err := res.LastInsertId()
|
|
if err != nil {
|
|
return lastId, -1, err
|
|
}
|
|
rowCnt, err := res.RowsAffected()
|
|
if err != nil {
|
|
return lastId, rowCnt, err
|
|
}
|
|
return lastId, rowCnt, err
|
|
}
|
|
|
|
/**
|
|
将rows转成map集合
|
|
*/
|
|
func DoQuery(db *sql.DB, sqlInfo string, args ...interface{}) ([]map[string]interface{}, error) {
|
|
rows, err := db.Query(sqlInfo, args...)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
columns, _ := rows.Columns()
|
|
columnLength := len(columns)
|
|
cache := make([]interface{}, columnLength) //临时存储每行数据
|
|
for index, _ := range cache { //为每一列初始化一个指针
|
|
var a interface{}
|
|
cache[index] = &a
|
|
}
|
|
var list []map[string]interface{} //返回的切片
|
|
for rows.Next() {
|
|
_ = rows.Scan(cache...)
|
|
|
|
item := make(map[string]interface{})
|
|
for i, data := range cache {
|
|
item[columns[i]] = *data.(*interface{}) //取实际类型
|
|
}
|
|
list = append(list, item)
|
|
}
|
|
_ = rows.Close()
|
|
return list, nil
|
|
}
|
|
|
|
/**
|
|
传递数组,实现将数组插入数据库
|
|
*/
|
|
func ExecArray(stmt *sql.Stmt, array []string) (sql.Result, error) {
|
|
arrayLen := len(array)
|
|
if arrayLen == 1 {
|
|
return stmt.Exec(array[0])
|
|
}
|
|
if arrayLen == 2 {
|
|
return stmt.Exec(array[0], array[1])
|
|
}
|
|
if arrayLen == 3 {
|
|
return stmt.Exec(array[0], array[1], array[2])
|
|
}
|
|
if arrayLen == 4 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3])
|
|
}
|
|
if arrayLen == 5 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4])
|
|
}
|
|
if arrayLen == 6 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5])
|
|
}
|
|
if arrayLen == 7 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6])
|
|
}
|
|
if arrayLen == 8 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7])
|
|
}
|
|
if arrayLen == 9 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8])
|
|
}
|
|
if arrayLen == 10 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9])
|
|
}
|
|
if arrayLen == 11 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10])
|
|
}
|
|
if arrayLen == 12 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11])
|
|
}
|
|
if arrayLen == 13 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12])
|
|
}
|
|
if arrayLen == 14 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13])
|
|
}
|
|
if arrayLen == 15 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14])
|
|
}
|
|
if arrayLen == 16 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15])
|
|
}
|
|
if arrayLen == 17 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16])
|
|
}
|
|
if arrayLen == 18 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17])
|
|
}
|
|
if arrayLen == 19 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18])
|
|
}
|
|
if arrayLen == 20 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19])
|
|
}
|
|
if arrayLen == 21 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20])
|
|
}
|
|
if arrayLen == 22 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21])
|
|
}
|
|
if arrayLen == 23 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22])
|
|
}
|
|
if arrayLen == 24 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23])
|
|
}
|
|
if arrayLen == 25 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24])
|
|
}
|
|
if arrayLen == 26 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24], array[25])
|
|
}
|
|
if arrayLen == 27 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24], array[25], array[26])
|
|
}
|
|
if arrayLen == 28 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24], array[25], array[26], array[27])
|
|
}
|
|
if arrayLen == 29 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24], array[25], array[26], array[27], array[28])
|
|
}
|
|
if arrayLen == 30 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24], array[25], array[26], array[27], array[28], array[29])
|
|
}
|
|
if arrayLen == 31 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24], array[25], array[26], array[27], array[28], array[29], array[30])
|
|
}
|
|
if arrayLen == 32 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24], array[25], array[26], array[27], array[28], array[29], array[30], array[31])
|
|
}
|
|
if arrayLen == 33 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24], array[25], array[26], array[27], array[28], array[29], array[30], array[31], array[32])
|
|
}
|
|
if arrayLen == 34 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24], array[25], array[26], array[27], array[28], array[29], array[30], array[31], array[32], array[33])
|
|
}
|
|
if arrayLen == 35 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24], array[25], array[26], array[27], array[28], array[29], array[30], array[31], array[32], array[33], array[34])
|
|
}
|
|
if arrayLen == 36 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24], array[25], array[26], array[27], array[28], array[29], array[30], array[31], array[32], array[33], array[34], array[35])
|
|
}
|
|
if arrayLen == 37 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24], array[25], array[26], array[27], array[28], array[29], array[30], array[31], array[32], array[33], array[34], array[35], array[36])
|
|
}
|
|
if arrayLen == 38 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24], array[25], array[26], array[27], array[28], array[29], array[30], array[31], array[32], array[33], array[34], array[35], array[36], array[37])
|
|
}
|
|
if arrayLen == 39 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24], array[25], array[26], array[27], array[28], array[29], array[30], array[31], array[32], array[33], array[34], array[35], array[36], array[37], array[38])
|
|
}
|
|
if arrayLen == 40 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24], array[25], array[26], array[27], array[28], array[29], array[30], array[31], array[32], array[33], array[34], array[35], array[36], array[37], array[38], array[39])
|
|
}
|
|
if arrayLen == 41 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24], array[25], array[26], array[27], array[28], array[29], array[30], array[31], array[32], array[33], array[34], array[35], array[36], array[37], array[38], array[39], array[40])
|
|
}
|
|
if arrayLen == 42 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24], array[25], array[26], array[27], array[28], array[29], array[30], array[31], array[32], array[33], array[34], array[35], array[36], array[37], array[38], array[39], array[40], array[41])
|
|
}
|
|
if arrayLen == 43 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24], array[25], array[26], array[27], array[28], array[29], array[30], array[31], array[32], array[33], array[34], array[35], array[36], array[37], array[38], array[39], array[40], array[41], array[42])
|
|
}
|
|
if arrayLen == 44 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24], array[25], array[26], array[27], array[28], array[29], array[30], array[31], array[32], array[33], array[34], array[35], array[36], array[37], array[38], array[39], array[40], array[41], array[42], array[43])
|
|
}
|
|
if arrayLen == 45 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24], array[25], array[26], array[27], array[28], array[29], array[30], array[31], array[32], array[33], array[34], array[35], array[36], array[37], array[38], array[39], array[40], array[41], array[42], array[43], array[44])
|
|
}
|
|
if arrayLen == 46 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24], array[25], array[26], array[27], array[28], array[29], array[30], array[31], array[32], array[33], array[34], array[35], array[36], array[37], array[38], array[39], array[40], array[41], array[42], array[43], array[44], array[45])
|
|
}
|
|
if arrayLen == 47 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24], array[25], array[26], array[27], array[28], array[29], array[30], array[31], array[32], array[33], array[34], array[35], array[36], array[37], array[38], array[39], array[40], array[41], array[42], array[43], array[44], array[45], array[46])
|
|
}
|
|
if arrayLen == 48 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24], array[25], array[26], array[27], array[28], array[29], array[30], array[31], array[32], array[33], array[34], array[35], array[36], array[37], array[38], array[39], array[40], array[41], array[42], array[43], array[44], array[45], array[46], array[47])
|
|
}
|
|
if arrayLen == 49 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24], array[25], array[26], array[27], array[28], array[29], array[30], array[31], array[32], array[33], array[34], array[35], array[36], array[37], array[38], array[39], array[40], array[41], array[42], array[43], array[44], array[45], array[46], array[47], array[48])
|
|
}
|
|
if arrayLen == 50 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24], array[25], array[26], array[27], array[28], array[29], array[30], array[31], array[32], array[33], array[34], array[35], array[36], array[37], array[38], array[39], array[40], array[41], array[42], array[43], array[44], array[45], array[46], array[47], array[48], array[49])
|
|
}
|
|
if arrayLen == 51 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24], array[25], array[26], array[27], array[28], array[29], array[30], array[31], array[32], array[33], array[34], array[35], array[36], array[37], array[38], array[39], array[40], array[41], array[42], array[43], array[44], array[45], array[46], array[47], array[48], array[49], array[50])
|
|
}
|
|
if arrayLen == 52 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24], array[25], array[26], array[27], array[28], array[29], array[30], array[31], array[32], array[33], array[34], array[35], array[36], array[37], array[38], array[39], array[40], array[41], array[42], array[43], array[44], array[45], array[46], array[47], array[48], array[49], array[50], array[51])
|
|
}
|
|
if arrayLen == 53 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24], array[25], array[26], array[27], array[28], array[29], array[30], array[31], array[32], array[33], array[34], array[35], array[36], array[37], array[38], array[39], array[40], array[41], array[42], array[43], array[44], array[45], array[46], array[47], array[48], array[49], array[50], array[51], array[52])
|
|
}
|
|
if arrayLen == 54 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24], array[25], array[26], array[27], array[28], array[29], array[30], array[31], array[32], array[33], array[34], array[35], array[36], array[37], array[38], array[39], array[40], array[41], array[42], array[43], array[44], array[45], array[46], array[47], array[48], array[49], array[50], array[51], array[52], array[53])
|
|
}
|
|
if arrayLen == 55 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24], array[25], array[26], array[27], array[28], array[29], array[30], array[31], array[32], array[33], array[34], array[35], array[36], array[37], array[38], array[39], array[40], array[41], array[42], array[43], array[44], array[45], array[46], array[47], array[48], array[49], array[50], array[51], array[52], array[53], array[54])
|
|
}
|
|
if arrayLen == 56 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24], array[25], array[26], array[27], array[28], array[29], array[30], array[31], array[32], array[33], array[34], array[35], array[36], array[37], array[38], array[39], array[40], array[41], array[42], array[43], array[44], array[45], array[46], array[47], array[48], array[49], array[50], array[51], array[52], array[53], array[54], array[55])
|
|
}
|
|
if arrayLen == 57 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24], array[25], array[26], array[27], array[28], array[29], array[30], array[31], array[32], array[33], array[34], array[35], array[36], array[37], array[38], array[39], array[40], array[41], array[42], array[43], array[44], array[45], array[46], array[47], array[48], array[49], array[50], array[51], array[52], array[53], array[54], array[55], array[56])
|
|
}
|
|
if arrayLen == 58 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24], array[25], array[26], array[27], array[28], array[29], array[30], array[31], array[32], array[33], array[34], array[35], array[36], array[37], array[38], array[39], array[40], array[41], array[42], array[43], array[44], array[45], array[46], array[47], array[48], array[49], array[50], array[51], array[52], array[53], array[54], array[55], array[56], array[57])
|
|
}
|
|
if arrayLen == 59 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24], array[25], array[26], array[27], array[28], array[29], array[30], array[31], array[32], array[33], array[34], array[35], array[36], array[37], array[38], array[39], array[40], array[41], array[42], array[43], array[44], array[45], array[46], array[47], array[48], array[49], array[50], array[51], array[52], array[53], array[54], array[55], array[56], array[57], array[58])
|
|
}
|
|
if arrayLen == 60 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24], array[25], array[26], array[27], array[28], array[29], array[30], array[31], array[32], array[33], array[34], array[35], array[36], array[37], array[38], array[39], array[40], array[41], array[42], array[43], array[44], array[45], array[46], array[47], array[48], array[49], array[50], array[51], array[52], array[53], array[54], array[55], array[56], array[57], array[58], array[59])
|
|
}
|
|
if arrayLen == 61 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24], array[25], array[26], array[27], array[28], array[29], array[30], array[31], array[32], array[33], array[34], array[35], array[36], array[37], array[38], array[39], array[40], array[41], array[42], array[43], array[44], array[45], array[46], array[47], array[48], array[49], array[50], array[51], array[52], array[53], array[54], array[55], array[56], array[57], array[58], array[59], array[60])
|
|
}
|
|
if arrayLen == 62 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24], array[25], array[26], array[27], array[28], array[29], array[30], array[31], array[32], array[33], array[34], array[35], array[36], array[37], array[38], array[39], array[40], array[41], array[42], array[43], array[44], array[45], array[46], array[47], array[48], array[49], array[50], array[51], array[52], array[53], array[54], array[55], array[56], array[57], array[58], array[59], array[60], array[61])
|
|
}
|
|
if arrayLen == 63 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24], array[25], array[26], array[27], array[28], array[29], array[30], array[31], array[32], array[33], array[34], array[35], array[36], array[37], array[38], array[39], array[40], array[41], array[42], array[43], array[44], array[45], array[46], array[47], array[48], array[49], array[50], array[51], array[52], array[53], array[54], array[55], array[56], array[57], array[58], array[59], array[60], array[61], array[62])
|
|
}
|
|
if arrayLen == 64 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24], array[25], array[26], array[27], array[28], array[29], array[30], array[31], array[32], array[33], array[34], array[35], array[36], array[37], array[38], array[39], array[40], array[41], array[42], array[43], array[44], array[45], array[46], array[47], array[48], array[49], array[50], array[51], array[52], array[53], array[54], array[55], array[56], array[57], array[58], array[59], array[60], array[61], array[62], array[63])
|
|
}
|
|
if arrayLen == 65 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24], array[25], array[26], array[27], array[28], array[29], array[30], array[31], array[32], array[33], array[34], array[35], array[36], array[37], array[38], array[39], array[40], array[41], array[42], array[43], array[44], array[45], array[46], array[47], array[48], array[49], array[50], array[51], array[52], array[53], array[54], array[55], array[56], array[57], array[58], array[59], array[60], array[61], array[62], array[63], array[64])
|
|
}
|
|
if arrayLen == 66 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24], array[25], array[26], array[27], array[28], array[29], array[30], array[31], array[32], array[33], array[34], array[35], array[36], array[37], array[38], array[39], array[40], array[41], array[42], array[43], array[44], array[45], array[46], array[47], array[48], array[49], array[50], array[51], array[52], array[53], array[54], array[55], array[56], array[57], array[58], array[59], array[60], array[61], array[62], array[63], array[64], array[65])
|
|
}
|
|
if arrayLen == 67 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24], array[25], array[26], array[27], array[28], array[29], array[30], array[31], array[32], array[33], array[34], array[35], array[36], array[37], array[38], array[39], array[40], array[41], array[42], array[43], array[44], array[45], array[46], array[47], array[48], array[49], array[50], array[51], array[52], array[53], array[54], array[55], array[56], array[57], array[58], array[59], array[60], array[61], array[62], array[63], array[64], array[65], array[66])
|
|
}
|
|
if arrayLen == 68 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24], array[25], array[26], array[27], array[28], array[29], array[30], array[31], array[32], array[33], array[34], array[35], array[36], array[37], array[38], array[39], array[40], array[41], array[42], array[43], array[44], array[45], array[46], array[47], array[48], array[49], array[50], array[51], array[52], array[53], array[54], array[55], array[56], array[57], array[58], array[59], array[60], array[61], array[62], array[63], array[64], array[65], array[66], array[67])
|
|
}
|
|
if arrayLen == 69 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24], array[25], array[26], array[27], array[28], array[29], array[30], array[31], array[32], array[33], array[34], array[35], array[36], array[37], array[38], array[39], array[40], array[41], array[42], array[43], array[44], array[45], array[46], array[47], array[48], array[49], array[50], array[51], array[52], array[53], array[54], array[55], array[56], array[57], array[58], array[59], array[60], array[61], array[62], array[63], array[64], array[65], array[66], array[67], array[68])
|
|
}
|
|
if arrayLen == 70 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24], array[25], array[26], array[27], array[28], array[29], array[30], array[31], array[32], array[33], array[34], array[35], array[36], array[37], array[38], array[39], array[40], array[41], array[42], array[43], array[44], array[45], array[46], array[47], array[48], array[49], array[50], array[51], array[52], array[53], array[54], array[55], array[56], array[57], array[58], array[59], array[60], array[61], array[62], array[63], array[64], array[65], array[66], array[67], array[68], array[69])
|
|
}
|
|
if arrayLen == 71 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24], array[25], array[26], array[27], array[28], array[29], array[30], array[31], array[32], array[33], array[34], array[35], array[36], array[37], array[38], array[39], array[40], array[41], array[42], array[43], array[44], array[45], array[46], array[47], array[48], array[49], array[50], array[51], array[52], array[53], array[54], array[55], array[56], array[57], array[58], array[59], array[60], array[61], array[62], array[63], array[64], array[65], array[66], array[67], array[68], array[69], array[70])
|
|
}
|
|
if arrayLen == 72 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24], array[25], array[26], array[27], array[28], array[29], array[30], array[31], array[32], array[33], array[34], array[35], array[36], array[37], array[38], array[39], array[40], array[41], array[42], array[43], array[44], array[45], array[46], array[47], array[48], array[49], array[50], array[51], array[52], array[53], array[54], array[55], array[56], array[57], array[58], array[59], array[60], array[61], array[62], array[63], array[64], array[65], array[66], array[67], array[68], array[69], array[70], array[71])
|
|
}
|
|
if arrayLen == 73 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24], array[25], array[26], array[27], array[28], array[29], array[30], array[31], array[32], array[33], array[34], array[35], array[36], array[37], array[38], array[39], array[40], array[41], array[42], array[43], array[44], array[45], array[46], array[47], array[48], array[49], array[50], array[51], array[52], array[53], array[54], array[55], array[56], array[57], array[58], array[59], array[60], array[61], array[62], array[63], array[64], array[65], array[66], array[67], array[68], array[69], array[70], array[71], array[72])
|
|
}
|
|
if arrayLen == 74 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24], array[25], array[26], array[27], array[28], array[29], array[30], array[31], array[32], array[33], array[34], array[35], array[36], array[37], array[38], array[39], array[40], array[41], array[42], array[43], array[44], array[45], array[46], array[47], array[48], array[49], array[50], array[51], array[52], array[53], array[54], array[55], array[56], array[57], array[58], array[59], array[60], array[61], array[62], array[63], array[64], array[65], array[66], array[67], array[68], array[69], array[70], array[71], array[72], array[73])
|
|
}
|
|
if arrayLen == 75 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24], array[25], array[26], array[27], array[28], array[29], array[30], array[31], array[32], array[33], array[34], array[35], array[36], array[37], array[38], array[39], array[40], array[41], array[42], array[43], array[44], array[45], array[46], array[47], array[48], array[49], array[50], array[51], array[52], array[53], array[54], array[55], array[56], array[57], array[58], array[59], array[60], array[61], array[62], array[63], array[64], array[65], array[66], array[67], array[68], array[69], array[70], array[71], array[72], array[73], array[74])
|
|
}
|
|
if arrayLen == 76 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24], array[25], array[26], array[27], array[28], array[29], array[30], array[31], array[32], array[33], array[34], array[35], array[36], array[37], array[38], array[39], array[40], array[41], array[42], array[43], array[44], array[45], array[46], array[47], array[48], array[49], array[50], array[51], array[52], array[53], array[54], array[55], array[56], array[57], array[58], array[59], array[60], array[61], array[62], array[63], array[64], array[65], array[66], array[67], array[68], array[69], array[70], array[71], array[72], array[73], array[74], array[75])
|
|
}
|
|
if arrayLen == 77 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24], array[25], array[26], array[27], array[28], array[29], array[30], array[31], array[32], array[33], array[34], array[35], array[36], array[37], array[38], array[39], array[40], array[41], array[42], array[43], array[44], array[45], array[46], array[47], array[48], array[49], array[50], array[51], array[52], array[53], array[54], array[55], array[56], array[57], array[58], array[59], array[60], array[61], array[62], array[63], array[64], array[65], array[66], array[67], array[68], array[69], array[70], array[71], array[72], array[73], array[74], array[75], array[76])
|
|
}
|
|
if arrayLen == 78 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24], array[25], array[26], array[27], array[28], array[29], array[30], array[31], array[32], array[33], array[34], array[35], array[36], array[37], array[38], array[39], array[40], array[41], array[42], array[43], array[44], array[45], array[46], array[47], array[48], array[49], array[50], array[51], array[52], array[53], array[54], array[55], array[56], array[57], array[58], array[59], array[60], array[61], array[62], array[63], array[64], array[65], array[66], array[67], array[68], array[69], array[70], array[71], array[72], array[73], array[74], array[75], array[76], array[77])
|
|
}
|
|
if arrayLen == 79 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24], array[25], array[26], array[27], array[28], array[29], array[30], array[31], array[32], array[33], array[34], array[35], array[36], array[37], array[38], array[39], array[40], array[41], array[42], array[43], array[44], array[45], array[46], array[47], array[48], array[49], array[50], array[51], array[52], array[53], array[54], array[55], array[56], array[57], array[58], array[59], array[60], array[61], array[62], array[63], array[64], array[65], array[66], array[67], array[68], array[69], array[70], array[71], array[72], array[73], array[74], array[75], array[76], array[77], array[78])
|
|
}
|
|
if arrayLen == 80 {
|
|
return stmt.Exec(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7], array[8], array[9], array[10], array[11], array[12], array[13], array[14], array[15], array[16], array[17], array[18], array[19], array[20], array[21], array[22], array[23], array[24], array[25], array[26], array[27], array[28], array[29], array[30], array[31], array[32], array[33], array[34], array[35], array[36], array[37], array[38], array[39], array[40], array[41], array[42], array[43], array[44], array[45], array[46], array[47], array[48], array[49], array[50], array[51], array[52], array[53], array[54], array[55], array[56], array[57], array[58], array[59], array[60], array[61], array[62], array[63], array[64], array[65], array[66], array[67], array[68], array[69], array[70], array[71], array[72], array[73], array[74], array[75], array[76], array[77], array[78], array[79])
|
|
}
|
|
return nil, errors.New("Array: length all 80s")
|
|
|
|
}
|
|
|