@tokenz/tokens-smartcontract-sdk
Version:
Smart Contract SDK for Tokenz STO platform
434 lines • 426 kB
JSON
{
"contractName": "STOIssuance",
"abi": [
{
"constant": true,
"inputs": [],
"name": "kycR",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "maCAddr",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "_br",
"type": "uint256"
},
{
"name": "_cr",
"type": "uint256"
},
{
"name": "_bq",
"type": "uint256"
},
{
"name": "_cq",
"type": "uint256"
},
{
"name": "_aq",
"type": "uint256"
}
],
"name": "calculateT1",
"outputs": [
{
"name": "_rate",
"type": "uint256"
},
{
"name": "_qty",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "pure",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "contractCategory",
"outputs": [
{
"name": "",
"type": "bytes8"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "STOFAddr",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "kycAddr",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "ruCAddr",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "contractType",
"outputs": [
{
"name": "",
"type": "bytes8"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "_br",
"type": "uint256"
},
{
"name": "_cr",
"type": "uint256"
},
{
"name": "_bq",
"type": "uint256"
},
{
"name": "_cq",
"type": "uint256"
},
{
"name": "_aq",
"type": "uint256"
}
],
"name": "calculateT2",
"outputs": [
{
"name": "_rate",
"type": "uint256"
},
{
"name": "_qty",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "pure",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "",
"type": "address"
}
],
"name": "STOIssue",
"outputs": [
{
"name": "stoType",
"type": "bool"
},
{
"name": "graphType",
"type": "bool"
},
{
"name": "baseRate",
"type": "uint256"
},
{
"name": "celingRate",
"type": "uint256"
},
{
"name": "baseQTY",
"type": "uint256"
},
{
"name": "celingQTY",
"type": "uint256"
},
{
"name": "startTime",
"type": "uint256"
},
{
"name": "endTime",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "",
"type": "address"
}
],
"name": "STOCollection",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"name": "_maCAddr",
"type": "address"
},
{
"name": "_ruCAddr",
"type": "address"
},
{
"name": "_kycR",
"type": "address"
},
{
"name": "_STOF",
"type": "address"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"constant": false,
"inputs": [
{
"name": "_stoAddr",
"type": "address"
},
{
"name": "_stoType",
"type": "bool"
},
{
"name": "_graphType",
"type": "bool"
},
{
"name": "_baseRate",
"type": "uint256"
},
{
"name": "_ceilingRate",
"type": "uint256"
},
{
"name": "_baseQTY",
"type": "uint256"
},
{
"name": "_ceilQTY",
"type": "uint256"
},
{
"name": "_startTime",
"type": "uint256"
},
{
"name": "_endTime",
"type": "uint256"
}
],
"name": "setupIssuance",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_stoAddr",
"type": "address"
},
{
"name": "_stoType",
"type": "bool"
},
{
"name": "_graphType",
"type": "bool"
},
{
"name": "_baseRate",
"type": "uint256"
},
{
"name": "_ceilingRate",
"type": "uint256"
},
{
"name": "_baseQTY",
"type": "uint256"
},
{
"name": "_ceilQTY",
"type": "uint256"
},
{
"name": "_startTime",
"type": "uint256"
},
{
"name": "_endTime",
"type": "uint256"
}
],
"name": "updateIssuance",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_stoAddr",
"type": "address"
}
],
"name": "mint",
"outputs": [
{
"name": "result",
"type": "bool"
}
],
"payable": true,
"stateMutability": "payable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_stoAddr",
"type": "address"
},
{
"name": "_addr",
"type": "address"
},
{
"name": "_value",
"type": "uint256"
}
],
"name": "burn",
"outputs": [
{
"name": "result",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_stoAddr",
"type": "address"
},
{
"name": "_amt",
"type": "uint256"
}
],
"name": "withdraw",
"outputs": [
{
"name": "result",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x608060405234801561001057600080fd5b506040516080806124d8833981018060405281019080805190602001909291908051906020019092919080519060200190929190805190602001909291905050506100a48484600178010000000000000000000000000000000000000000000000000260037801000000000000000000000000000000000000000000000000026101b1640100000000026401000000009004565b81600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050610330565b83600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550816000806101000a81548167ffffffffffffffff021916908378010000000000000000000000000000000000000000000000009004021790555080600060086101000a81548167ffffffffffffffff021916908378010000000000000000000000000000000000000000000000009004021790555050505050565b6121998061033f6000396000f3006080604052600436106100e6576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063263f3a5c146100eb5780632864faea1461014257806353f221be146101995780636a627842146102095780637381ea03146102575780638f2f1dfe146102b8578063a00652841461030f578063aba3a7f9146103a6578063c34b59eb146103fd578063cb2ef6f714610454578063e63e0c24146104b5578063e86ff58f1461054c578063f3fef3a3146105bc578063f4a8f75414610621578063f6b911bc146106b1578063fa8dd4f814610736575b600080fd5b3480156100f757600080fd5b5061010061078d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561014e57600080fd5b506101576107b3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101a557600080fd5b506101ec60048036038101908080359060200190929190803590602001909291908035906020019092919080359060200190929190803590602001909291905050506107d9565b604051808381526020018281526020019250505060405180910390f35b61023d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108c9565b604051808215151515815260200191505060405180910390f35b34801561026357600080fd5b5061026c610c94565b604051808277ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b3480156102c457600080fd5b506102cd610cbe565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561031b57600080fd5b506103a4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190803515159060200190929190803590602001909291908035906020019092919080359060200190929190803590602001909291908035906020019092919080359060200190929190505050610ce4565b005b3480156103b257600080fd5b506103bb61102b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561040957600080fd5b50610412611051565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561046057600080fd5b50610469611077565b604051808277ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b3480156104c157600080fd5b5061054a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035151590602001909291908035151590602001909291908035906020019092919080359060200190929190803590602001909291908035906020019092919080359060200190929190803590602001909291905050506110a2565b005b34801561055857600080fd5b5061059f60048036038101908080359060200190929190803590602001909291908035906020019092919080359060200190929190803590602001909291905050506113e9565b604051808381526020018281526020019250505060405180910390f35b3480156105c857600080fd5b50610607600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506114d9565b604051808215151515815260200191505060405180910390f35b34801561062d57600080fd5b50610662600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611852565b6040518089151515158152602001881515151581526020018781526020018681526020018581526020018481526020018381526020018281526020019850505050505050505060405180910390f35b3480156106bd57600080fd5b5061071c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506118b4565b604051808215151515815260200191505060405180910390f35b34801561074257600080fd5b50610777600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c1e565b6040518082815260200191505060405180910390f35b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008060008786111515610807578994506108008587611c3690919063ffffffff16565b93506108bc565b868610151561082d578894506108268587611c3690919063ffffffff16565b93506108bb565b6108408887611cc990919063ffffffff16565b92506108558888611cc990919063ffffffff16565b915061086a8a8a611cc990919063ffffffff16565b90506108a38a610895846108878588611d5390919063ffffffff16565b611c3690919063ffffffff16565b611e2090919063ffffffff16565b94506108b88587611c3690919063ffffffff16565b93505b5b5050509550959350505050565b60008160011515600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bf08bca6836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561098d57600080fd5b505af11580156109a1573d6000803e3d6000fd5b505050506040513d60208110156109b757600080fd5b810190808051906020019092919050505015151415156109d657600080fd5b3360011515600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638bac4396836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015610a9857600080fd5b505af1158015610aac573d6000803e3d6000fd5b505050506040513d6020811015610ac257600080fd5b81019080805190602001909291905050501515141515610ae157600080fd5b8342600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050154108015610b74575042600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060154115b1515610b7f57600080fd5b610bd134600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e2090919063ffffffff16565b600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060011515600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff1615151415610c8057610c7985611eaa565b9350610c8c565b610c8985611f16565b93505b505050919050565b6000809054906101000a900478010000000000000000000000000000000000000000000000000281565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b8860001515600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bf08bca6836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015610da657600080fd5b505af1158015610dba573d6000803e3d6000fd5b505050506040513d6020811015610dd057600080fd5b81019080805190602001909291905050501515141515610def57600080fd5b893373ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b4799e01836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015610ec457600080fd5b505af1158015610ed8573d6000803e3d6000fd5b505050506040513d6020811015610eee57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16141515610f2157600080fd5b610100604051908101604052808b151581526020018a1515815260200189815260200188815260200187815260200186815260200185815260200184815250600a60008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a81548160ff02191690831515021790555060408201518160010155606082015181600201556080820151816003015560a0820151816004015560c0820151816005015560e082015181600601559050505050505050505050505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060089054906101000a900478010000000000000000000000000000000000000000000000000281565b8860001515600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bf08bca6836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561116457600080fd5b505af1158015611178573d6000803e3d6000fd5b505050506040513d602081101561118e57600080fd5b810190808051906020019092919050505015151415156111ad57600080fd5b893373ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b4799e01836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561128257600080fd5b505af1158015611296573d6000803e3d6000fd5b505050506040513d60208110156112ac57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff161415156112df57600080fd5b610100604051908101604052808b151581526020018a1515815260200189815260200188815260200187815260200186815260200185815260200184815250600a60008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a81548160ff02191690831515021790555060408201518160010155606082015181600201556080820151816003015560a0820151816004015560c0820151816005015560e082015181600601559050505050505050505050505050565b60008060008060008786111515611417578994506114108587611c3690919063ffffffff16565b93506114cc565b868610151561143d578894506114368587611c3690919063ffffffff16565b93506114cb565b6114508887611cc990919063ffffffff16565b92506114658888611cc990919063ffffffff16565b915061147a898b611cc990919063ffffffff16565b90506114b36114a4836114968487611d5390919063ffffffff16565b611c3690919063ffffffff16565b8b611cc990919063ffffffff16565b94506114c88587611c3690919063ffffffff16565b93505b5b5050509550959350505050565b6000823373ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b4799e01836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156115b057600080fd5b505af11580156115c4573d6000803e3d6000fd5b505050506040513d60208110156115da57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1614151561160d57600080fd5b8360011515600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bf08bca6836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156116cf57600080fd5b505af11580156116e3573d6000803e3d6000fd5b505050506040513d60208110156116f957600080fd5b8101908080519060200190929190505050151514151561171857600080fd5b848480600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561176857600080fd5b6117ba86600b60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cc990919063ffffffff16565b600b60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff166108fc879081150290604051600060405180830381858888f19350505050158015611843573d6000803e3d6000fd5b50600194505050505092915050565b600a6020528060005260406000206000915090508060000160009054906101000a900460ff16908060000160019054906101000a900460ff16908060010154908060020154908060030154908060040154908060050154908060060154905088565b6000833373ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b4799e01836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561198b57600080fd5b505af115801561199f573d6000803e3d6000fd5b505050506040513d60208110156119b557600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff161415156119e857600080fd5b8460001515600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bf08bca6836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015611aaa57600080fd5b505af1158015611abe573d6000803e3d6000fd5b505050506040513d6020811015611ad457600080fd5b81019080805190602001909291905050501515141515611af357600080fd5b85600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639dc29fac86866040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015611bf957600080fd5b505af1158015611c0d573d6000803e3d6000fd5b505050506001925050509392505050565b600b6020528060005260406000206000915090505481565b600080600083111515611cb1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060200191505060405180910390fd5b8284811515611cbc57fe5b0490508091505092915050565b600080838311151515611d44576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b82840390508091505092915050565b6000806000841415611d685760009150611e19565b8284029050828482811515611d7957fe5b04141515611e15576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f81526020017f770000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8091505b5092915050565b6000808284019050838110151515611ea0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600080611f02600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015434611c3690919063ffffffff16565b9050611f0e8382612043565b915050919050565b60008061202e600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040154346107d9565b91505061203b8382612043565b915050919050565b600082600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1933846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561214b57600080fd5b505af115801561215f573d6000803e3d6000fd5b5050505060019050929150505600a165627a7a72305820d92e9cfabc438703b57728bd22f58bd3e279a883e79783aa3c08627456355cd60029",
"deployedBytecode": "0x6080604052600436106100e6576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063263f3a5c146100eb5780632864faea1461014257806353f221be146101995780636a627842146102095780637381ea03146102575780638f2f1dfe146102b8578063a00652841461030f578063aba3a7f9146103a6578063c34b59eb146103fd578063cb2ef6f714610454578063e63e0c24146104b5578063e86ff58f1461054c578063f3fef3a3146105bc578063f4a8f75414610621578063f6b911bc146106b1578063fa8dd4f814610736575b600080fd5b3480156100f757600080fd5b5061010061078d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561014e57600080fd5b506101576107b3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101a557600080fd5b506101ec60048036038101908080359060200190929190803590602001909291908035906020019092919080359060200190929190803590602001909291905050506107d9565b604051808381526020018281526020019250505060405180910390f35b61023d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108c9565b604051808215151515815260200191505060405180910390f35b34801561026357600080fd5b5061026c610c94565b604051808277ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b3480156102c457600080fd5b506102cd610cbe565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561031b57600080fd5b506103a4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190803515159060200190929190803590602001909291908035906020019092919080359060200190929190803590602001909291908035906020019092919080359060200190929190505050610ce4565b005b3480156103b257600080fd5b506103bb61102b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561040957600080fd5b50610412611051565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561046057600080fd5b50610469611077565b604051808277ffffffffffffffffffffffffffffffffffffffffffffffff191677ffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b3480156104c157600080fd5b5061054a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035151590602001909291908035151590602001909291908035906020019092919080359060200190929190803590602001909291908035906020019092919080359060200190929190803590602001909291905050506110a2565b005b34801561055857600080fd5b5061059f60048036038101908080359060200190929190803590602001909291908035906020019092919080359060200190929190803590602001909291905050506113e9565b604051808381526020018281526020019250505060405180910390f35b3480156105c857600080fd5b50610607600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506114d9565b604051808215151515815260200191505060405180910390f35b34801561062d57600080fd5b50610662600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611852565b6040518089151515158152602001881515151581526020018781526020018681526020018581526020018481526020018381526020018281526020019850505050505050505060405180910390f35b3480156106bd57600080fd5b5061071c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506118b4565b604051808215151515815260200191505060405180910390f35b34801561074257600080fd5b50610777600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c1e565b6040518082815260200191505060405180910390f35b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008060008786111515610807578994506108008587611c3690919063ffffffff16565b93506108bc565b868610151561082d578894506108268587611c3690919063ffffffff16565b93506108bb565b6108408887611cc990919063ffffffff16565b92506108558888611cc990919063ffffffff16565b915061086a8a8a611cc990919063ffffffff16565b90506108a38a610895846108878588611d5390919063ffffffff16565b611c3690919063ffffffff16565b611e2090919063ffffffff16565b94506108b88587611c3690919063ffffffff16565b93505b5b5050509550959350505050565b60008160011515600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bf08bca6836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561098d57600080fd5b505af11580156109a1573d6000803e3d6000fd5b505050506040513d60208110156109b757600080fd5b810190808051906020019092919050505015151415156109d657600080fd5b3360011515600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638bac4396836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015610a9857600080fd5b505af1158015610aac573d6000803e3d6000fd5b505050506040513d6020811015610ac257600080fd5b81019080805190602001909291905050501515141515610ae157600080fd5b8342600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050154108015610b74575042600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060154115b1515610b7f57600080fd5b610bd134600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e2090919063ffffffff16565b600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060011515600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff1615151415610c8057610c7985611eaa565b9350610c8c565b610c8985611f16565b93505b505050919050565b6000809054906101000a900478010000000000000000000000000000000000000000000000000281565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b8860001515600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bf08bca6836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015610da657600080fd5b505af1158015610dba573d6000803e3d6000fd5b505050506040513d6020811015610dd057600080fd5b81019080805190602001909291905050501515141515610def57600080fd5b893373ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b4799e01836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015610ec457600080fd5b505af1158015610ed8573d6000803e3d6000fd5b505050506040513d6020811015610eee57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff16141515610f2157600080fd5b610100604051908101604052808b151581526020018a1515815260200189815260200188815260200187815260200186815260200185815260200184815250600a60008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a81548160ff02191690831515021790555060408201518160010155606082015181600201556080820151816003015560a0820151816004015560c0820151816005015560e082015181600601559050505050505050505050505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060089054906101000a900478010000000000000000000000000000000000000000000000000281565b8860001515600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bf08bca6836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561116457600080fd5b505af1158015611178573d6000803e3d6000fd5b505050506040513d602081101561118e57600080fd5b810190808051906020019092919050505015151415156111ad57600080fd5b893373ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b4799e01836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561128257600080fd5b505af1158015611296573d6000803e3d6000fd5b505050506040513d60208110156112ac57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff161415156112df57600080fd5b610100604051908101604052808b151581526020018a1515815260200189815260200188815260200187815260200186815260200185815260200184815250600a60008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160000160016101000a81548160ff02191690831515021790555060408201518160010155606082015181600201556080820151816003015560a0820151816004015560c0820151816005015560e082015181600601559050505050505050505050505050565b60008060008060008786111515611417578994506114108587611c3690919063ffffffff16565b93506114cc565b868610151561143d578894506114368587611c3690919063ffffffff16565b93506114cb565b6114508887611cc990919063ffffffff16565b92506114658888611cc990919063ffffffff16565b915061147a898b611cc990919063ffffffff16565b90506114b36114a4836114968487611d5390919063ffffffff16565b611c3690919063ffffffff16565b8b611cc990919063ffffffff16565b94506114c88587611c3690919063ffffffff16565b93505b5b5050509550959350505050565b6000823373ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b4799e01836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156115b057600080fd5b505af11580156115c4573d6000803e3d6000fd5b505050506040513d60208110156115da57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1614151561160d57600080fd5b8360011515600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bf08bca6836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156116cf57600080fd5b505af11580156116e3573d6000803e3d6000fd5b505050506040513d60208110156116f957600080fd5b8101908080519060200190929190505050151514151561171857600080fd5b848480600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015151561176857600080fd5b6117ba86600b60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cc990919063ffffffff16565b600b60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff166108fc879081150290604051600060405180830381858888f19350505050158015611843573d6000803e3d6000fd5b50600194505050505092915050565b600a6020528060005260406000206000915090508060000160009054906101000a900460ff16908060000160019054906101000a900460ff16908060010154908060020154908060030154908060040154908060050154908060060154905088565b6000833373ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b4799e01836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561198b57600080fd5b505af115801561199f573d6000803e3d6000fd5b505050506040513d60208110156119b557600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff161415156119e857600080fd5b8460001515600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663bf08bca6836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015611aaa57600080fd5b505af1158015611abe573d6000803e3d6000fd5b505050506040513d6020811015611ad457600080fd5b81019080805190602001909291905050501515141515611af357600080fd5b85600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639dc29fac86866040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b158015611bf957600080fd5b505af1158015611c0d573d6000803e3d6000fd5b505050506001925050509392505050565b600b6020528060005260406000206000915090505481565b600080600083111515611cb1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060200191505060405180910390fd5b8284811515611cbc57fe5b0490508091505092915050565b600080838311151515611d44576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b82840390508091505092915050565b6000806000841415611d685760009150611e19565b8284029050828482811515611d7957fe5b04141515611e15576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f81526020017f770000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8091505b5092915050565b6000808284019050838110151515611ea0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600080611f02600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001015434611c3690919063ffffffff16565b9050611f0e8382612043565b915050919050565b60008061202e600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060030154600a60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040154346107d9565b91505061203b8382612043565b915050919050565b600082600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166340c10f1933846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050600060405180830381600087803b15801561214b57600080fd5b505af115801561215f573d6000803e3d6000fd5b5050505060019050929150505600a165627a7a72305820d92e9cfabc438703b57728bd22f58bd3e279a883e79783aa3c08627456355cd60029",
"sourceMap": "57:3154:2:-;;;102:302;8:9:-1;5:2;;;30:1;27;20:12;5:2;102:302:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;215:62;221:8;230;239:18;215:62;;258:18;215:62;;:5;;;:62;;;:::i;:::-;303:5;287:4;;:22;;;;;;;;;;;;;;;;;;329:5;319:7;;:15;;;;;;;;;;;;;;;;;;365:5;344:7;;:27;;;;;;;;;;;;;;;;;;392:5;381:8;;:16;;;;;;;;;;;;;;;;;;102:302;;;;57:3154;;891:341:12;1030:8;1020:7;;:18;;;;;;;;;;;;;;;;;;1058:8;1048:7;;:18;;;;;;;;;;;;;;;;;;1095:8;1076:4;;:28;;;;;;;;;;;;;;;;;;1132:8;1114:4;;:27;;;;;;;;;;;;;;;;;;1170:17;1151:16;;:36;;;;;;;;;;;;;;;;;;;1212:13;1197:12;;:28;;;;;;;;;;;;;;;;;;;891:341;;;;:::o;57:3154:2:-;;;;;;;",
"deployedSourceMap": "57:3154:2:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;324:20:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;324:20:3;;;;;;;;;;;;;;;;;;;;;;;;;;;424:22:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;424:22:12;;;;;;;;;;;;;;;;;;;;;;;;;;;121:629:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;121:629:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1287:445:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;355:30:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;355:30:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;428:23:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;428:23:3;;;;;;;;;;;;;;;;;;;;;;;;;;;410:432:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;410:432:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;399:22:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;399:22:3;;;;;;;;;;;;;;;;;;;;;;;;;;;452::12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;452:22:12;;;;;;;;;;;;;;;;;;;;;;;;;;;391:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;391:26:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;848:433:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;848:433:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;756:622:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;756:622:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2836:372:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2836:372:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;458:47:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;458:47:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2526:303:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2526:303:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;744:51:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;744:51:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;324:20;;;;;;;;;;;;;:::o;424:22:12:-;;;;;;;;;;;;;:::o;121:629:4:-;259:13;275:12;304:10;324;344;375:3;368;:10;;364:380;;;402:3;394:11;;426:14;434:5;426:3;:7;;:14;;;;:::i;:::-;419:21;;364:380;;;467:3;460;:10;;456:288;;;494:3;486:11;;518:14;526:5;518:3;:7;;:14;;;;:::i;:::-;511:21;;456:288;;;567:12;575:3;567;:7;;:12;;;;:::i;:::-;562:17;;599:12;607:3;599;:7;;:12;;;;:::i;:::-;594:17;;631:12;639:3;631;:7;;:12;;;;:::i;:::-;626:17;;666:31;693:3;667:20;684:2;668:10;675:2;668;:6;;:10;;;;:::i;:::-;667:16;;:20;;;;:::i;:::-;666:26;;:31;;;;:::i;:::-;658:39;;719:14;727:5;719:3;:7;;:14;;;;:::i;:::-;712:21;;456:288;364:380;121:629;;;;;;;;;;;:::o;1287:445:2:-;1480:11;1378:8;1017:4:3;987:34;;:7;;;;;;;;;;;:18;;;1006:5;987:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;987:26:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;987:26:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;987:26:3;;;;;;;;;;;;;;;;:34;;;978:45;;;;;;;;1413:10:2;1255:4:3;1229:30;;:4;;;;;;;;;;;:15;;;1245:5;1229:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1229:22:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1229:22:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1229:22:3;;;;;;;;;;;;;;;;:30;;;1221:39;;;;;;;;1451:8:2;1375:3:3;1347:8;:15;1356:5;1347:15;;;;;;;;;;;;;;;:25;;;:31;1345:72;;;;;1412:3;1386:8;:15;1395:5;1386:15;;;;;;;;;;;;;;;:23;;;:29;1345:72;1336:83;;;;;;;;1534:38:2;1562:9;1534:13;:23;1548:8;1534:23;;;;;;;;;;;;;;;;:27;;:38;;;;:::i;:::-;1508:13;:23;1522:8;1508:23;;;;;;;;;;;;;;;:64;;;;1616:4;1586:34;;:8;:18;1595:8;1586:18;;;;;;;;;;;;;;;:26;;;;;;;;;;;;:34;;;1582:144;;;1645:16;1652:8;1645:6;:16::i;:::-;1636:25;;1582:144;;;1699:16;1706:8;1699:6;:16::i;:::-;1690:25;;1582:144;1270:1:3;1033;1287:445:2;;;;:::o;355:30:12:-;;;;;;;;;;;;;:::o;428:23:3:-;;;;;;;;;;;;;:::o;410:432:2:-;635:8;1139:5:3;1109:35;;:7;;;;;;;;;;;:18;;;1128:5;1109:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1109:26:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1109:26:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1109:26:3;;;;;;;;;;;;;;;;:35;;;1100:46;;;;;;;;670:8:2;891:10:3;861:40;;:7;;;;;;;;;;;:18;;;880:5;861:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;861:26:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;861:26:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;861:26:3;;;;;;;;;;;;;;;;:40;;;852:51;;;;;;;;731:104:2;;;;;;;;;740:8;731:104;;;;;;751:10;731:104;;;;;;764:9;731:104;;;;776:12;731:104;;;;791:8;731:104;;;;802:8;731:104;;;;813:10;731:104;;;;826:8;731:104;;;710:8;:18;719:8;710:18;;;;;;;;;;;;;;;:125;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1156:1:3;410:432:2;;;;;;;;;;:::o;399:22:3:-;;;;;;;;;;;;;:::o;452::12:-;;;;;;;;;;;;;:::o;391:26::-;;;;;;;;;;;;;:::o;848:433:2:-;1074:8;1139:5:3;1109:35;;:7;;;;;;;;;;;:18;;;1128:5;1109:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1109:26:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1109:26:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1109:26:3;;;;;;;;;;;;;;;;:35;;;1100:46;;;;;;;;1109:8:2;891:10:3;861:40;;:7;;;;;;;;;;;:18;;;880:5;861:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;861:26:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;861