Loading
[ { "inputs": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "symbol", "type": "string" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "approved", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": false, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAllDelegation", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "delegate", "type": "address" } ], "name": "DelegateRemoved", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": false, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": false, "internalType": "address", "name": "delegator", "type": "address" } ], "name": "DelegatorApproved", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "recipient", "type": "address" }, { "indexed": true, "internalType": "address", "name": "token", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "start", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "cliff", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "end", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "rate", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "period", "type": "uint256" } ], "name": "PlanCreated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amountRedeemed", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "planRemainder", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "resetDate", "type": "uint256" } ], "name": "PlanRedeemed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": true, "internalType": "uint256", "name": "segmentId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newPlanAmount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newPlanRate", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "segmentAmount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "segmentRate", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "start", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "cliff", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "period", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newPlanEnd", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "segmentEnd", "type": "uint256" } ], "name": "PlanSegmented", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "id0", "type": "uint256" }, { "indexed": true, "internalType": "uint256", "name": "id1", "type": "uint256" }, { "indexed": true, "internalType": "uint256", "name": "survivingId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "rate", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "start", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "cliff", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "period", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "end", "type": "uint256" } ], "name": "PlansCombined", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "delegate", "type": "address" } ], "name": "TokenDelegated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "_admin", "type": "address" } ], "name": "URIAdminDeleted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "newURI", "type": "string" } ], "name": "URISet", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "delegator", "type": "address" }, { "internalType": "uint256", "name": "planId", "type": "uint256" } ], "name": "approveDelegator", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "planId", "type": "uint256" } ], "name": "approveSpenderDelegator", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "delegate", "type": "address" } ], "name": "balanceOfDelegate", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "baseURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "planId0", "type": "uint256" }, { "internalType": "uint256", "name": "planId1", "type": "uint256" } ], "name": "combinePlans", "outputs": [ { "internalType": "uint256", "name": "survivingPlanId", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "uint256", "name": "start", "type": "uint256" }, { "internalType": "uint256", "name": "cliff", "type": "uint256" }, { "internalType": "uint256", "name": "rate", "type": "uint256" }, { "internalType": "uint256", "name": "period", "type": "uint256" } ], "name": "createPlan", "outputs": [ { "internalType": "uint256", "name": "newPlanId", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "planId", "type": "uint256" }, { "internalType": "address", "name": "delegatee", "type": "address" } ], "name": "delegate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "address", "name": "delegatee", "type": "address" } ], "name": "delegateAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256[]", "name": "planIds", "type": "uint256[]" }, { "internalType": "address[]", "name": "delegatees", "type": "address[]" } ], "name": "delegatePlans", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "delegatee", "type": "address" }, { "internalType": "address", "name": "token", "type": "address" } ], "name": "delegatedBalances", "outputs": [ { "internalType": "uint256", "name": "delegatedBalance", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "delegatedTo", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "deleteAdmin", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "planId", "type": "uint256" } ], "name": "getApprovedDelegator", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAllDelegation", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "holder", "type": "address" }, { "internalType": "address", "name": "token", "type": "address" } ], "name": "lockedBalances", "outputs": [ { "internalType": "uint256", "name": "lockedBalance", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256[]", "name": "planIds", "type": "uint256[]" }, { "internalType": "uint256", "name": "redemptionTime", "type": "uint256" } ], "name": "partialRedeemPlans", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "planId", "type": "uint256" }, { "internalType": "uint256", "name": "timeStamp", "type": "uint256" }, { "internalType": "uint256", "name": "redemptionTime", "type": "uint256" } ], "name": "planBalanceOf", "outputs": [ { "internalType": "uint256", "name": "balance", "type": "uint256" }, { "internalType": "uint256", "name": "remainder", "type": "uint256" }, { "internalType": "uint256", "name": "latestUnlock", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "planId", "type": "uint256" } ], "name": "planEnd", "outputs": [ { "internalType": "uint256", "name": "end", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "plans", "outputs": [ { "internalType": "address", "name": "token", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "uint256", "name": "start", "type": "uint256" }, { "internalType": "uint256", "name": "cliff", "type": "uint256" }, { "internalType": "uint256", "name": "rate", "type": "uint256" }, { "internalType": "uint256", "name": "period", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "redeemAllPlans", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256[]", "name": "planIds", "type": "uint256[]" } ], "name": "redeemPlans", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "planId", "type": "uint256" }, { "internalType": "uint256[]", "name": "segmentAmounts", "type": "uint256[]" }, { "internalType": "address[]", "name": "delegatees", "type": "address[]" } ], "name": "segmentAndDelegatePlans", "outputs": [ { "internalType": "uint256[]", "name": "newPlanIds", "type": "uint256[]" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "segmentOriginalEnd", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "planId", "type": "uint256" }, { "internalType": "uint256[]", "name": "segmentAmounts", "type": "uint256[]" } ], "name": "segmentPlan", "outputs": [ { "internalType": "uint256[]", "name": "newPlanIds", "type": "uint256[]" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAllDelegation", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForOperator", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "delegate", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenOfDelegateByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenOfOwnerByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "planId", "type": "uint256" }, { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" } ], "name": "transferAndDelegate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_uri", "type": "string" } ], "name": "updateBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
6080604052346200033c57620045ed803803806200001d8162000341565b9283398101906040818303126200033c5780516001600160401b03908181116200033c57836200004f91840162000367565b91602093848201518381116200033c576200006b920162000367565b825190828211620003265760008054926001958685811c951680156200031b575b8886101462000307578190601f95868111620002b4575b5088908683116001146200025057849262000244575b5050600019600383901b1c191690861b1781555b8151938411620002305784548581811c9116801562000225575b878210146200021157838111620001c9575b50859284116001146200016457839495509262000158575b5050600019600383901b1c191690821b1781555b60125560148054610100600160a81b0319163360081b610100600160a81b03161790556040516142139081620003da8239f35b01519050388062000111565b9190601f1984169585845280842093905b878210620001b15750508385961062000197575b505050811b01815562000125565b015160001960f88460031b161c1916905538808062000189565b80878596829496860151815501950193019062000175565b8582528682208480870160051c82019289881062000207575b0160051c019086905b828110620001fb575050620000f9565b838155018690620001eb565b92508192620001e2565b634e487b7160e01b82526022600452602482fd5b90607f1690620000e7565b634e487b7160e01b81526041600452602490fd5b015190503880620000b9565b8480528985208994509190601f198416865b8c8282106200029d575050841162000283575b505050811b018155620000cd565b015160001960f88460031b161c1916905538808062000275565b8385015186558c9790950194938401930162000262565b9091508380528884208680850160051c8201928b8610620002fd575b918a91869594930160051c01915b828110620002ee575050620000a3565b8681558594508a9101620002de565b92508192620002d0565b634e487b7160e01b83526022600452602483fd5b94607f16946200008c565b634e487b7160e01b600052604160045260246000fd5b600080fd5b6040519190601f01601f191682016001600160401b038111838210176200032657604052565b919080601f840112156200033c5782516001600160401b03811162000326576020906200039d601f8201601f1916830162000341565b928184528282870101116200033c5760005b818110620003c557508260009394955001015290565b8581018301518482018401528201620003af56fe608080604052600436101561001357600080fd5b60003560e01c90816301ffc9a714611f6b5750806306fdde0314611ec8578063081812fc14611eaa57806308bbb82414611e7d578063095ea7b314611d4c5780630aef166c1461185757806316c09967146117e357806318160ddd146117c55780631f25ccb61461173257806323b872dd1461170e57806323bdaea9146116ba5780632f745c59146116935780632f809b3814611539578063402d5a771461151b57806342842e0e146115045780634c6839cc146114e15780634e897e16146111055780634f6ccce71461107457806352e5b7e414610f9d5780636352211e14610f6d5780636b04021814610eeb5780636b8e3d7314610e145780636bb3c73f14610de05780636c0360eb14610dc457806370a0823114610da15780637b4e51f614610d7e57806388cccd8014610d66578063931688cb14610b5057806395d89b4114610a71578063968b3e5914610a23578063a22cb46514610a0b578063a414159614610953578063a8973e2b14610873578063b162061614610808578063b6f97787146107b2578063b88d4fde1461072b578063b9bdac2c146106c7578063c3ca57551461064d578063c7711c4c146105b1578063c7d74fa71461056f578063c83d7818146104dd578063c87b56dd146102c4578063dc1fa56814610295578063e985e9c51461023f5763fcbdd1961461020e57600080fd5b3461023a57602036600319011261023a5760043560005260116020526020604060002054604051908152f35b600080fd5b3461023a57604036600319011261023a5761025861204e565b610260612038565b9060018060a01b03809116600052600560205260406000209116600052602052602060ff604060002054166040519015158152f35b3461023a57604036600319011261023a5760206102bc6102b361204e565b60243590612cee565b604051908152f35b3461023a5760208060031936011261023a576004356000818152600260205260409020546102fc906001600160a01b031615156123ce565b81610305612218565b8051909290156104c457600090807a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000081818110156104b6575b5050836d04ee2d6d415b85acef8100000000808310156104aa575b5050662386f26fc100008082101561049d575b506305f5e10080821015610490575b5061271080821015610483575b506064811015610475575b600a8091101561046b575b6001808401928160216103c46103ae87612305565b966103bc60405198896120cf565b808852612305565b8689019790601f1901368937860101905b610435575b505050509261041b929161040f9460405195836104008895518092888089019101611ff0565b84019151809386840190611ff0565b010380845201826120cf565b905b610431604051928284938452830190612013565b0390f35b600019019083906f181899199a1a9b1b9c1cb0b131b232b360811b8282061a835304918215610466579190826103d5565b6103da565b9160010191610399565b60646002910492019161038e565b6004910492019186610383565b6008910492019186610376565b6010910492019186610367565b93019290048387610354565b604094500490508680610339565b5050506040516104d3816120b4565b600081529061041d565b3461023a57604036600319011261023a576004356024356001600160401b03811161023a57610510903690600401612155565b610518612f36565b6105228151613163565b9160005b825181101561055c578061054761054061055793866131a4565b5184613703565b61055182876131a4565b52613195565b610526565b6001601255604051806104318682612173565b3461023a57606036600319011261023a57610431610594604435602435600435613ec6565b604080519384526020840192909252908201529081906060820190565b3461023a57600036600319011261023a576014546105dd33600883901c6001600160a01b031614614188565b60ff81161561062257610100600160a81b0319166014556040513381527fa775782c93424d570e142a52abffaedcebb0e9cd73cca502455acb0587efb6b790602090a1005b606460405162461bcd60e51b81526020600482015260046024820152630854d15560e21b6044820152fd5b3461023a57602036600319011261023a57600435600052601060205260206102bc60a0604060002060405161068181612099565b600180841b038254168152600182015490818682015260028301549081604082015260038401546060820152600560048501549485608084015201549485910152613b58565b3461023a57600036600319011261023a576106e0612f36565b6106e933612357565b6106f281613163565b9060005b81811061070e576107074284613270565b6001601255005b8061071c6107269233612b94565b61055182866131a4565b6106f6565b3461023a57608036600319011261023a5761074461204e565b61074c612038565b90606435906044356001600160401b03831161023a573660238401121561023a576107b0936107886107ab943690602481600401359101612320565b9261079b610796843361257a565b61247b565b6107a6838383612642565b612b19565b612556565b005b3461023a57604036600319011261023a576107cb61204e565b6107d3612038565b9060018060a01b03809116600052600b60205260406000209116600052602052602060ff604060002054166040519015158152f35b3461023a57602036600319011261023a57600435600052601060205260c0604060002060018060a01b038154169060018101549060028101546003820154906005600484015493015493604051958652602086015260408501526060840152608083015260a0820152f35b3461023a57604036600319011261023a576001600160401b0360043581811161023a576108a49036906004016121ae565b9160243590811161023a576108bd9036906004016121ae565b6108c8929192612f36565b8084036109205760005b8481106108e0576001601255005b6108eb818386613260565b35906001600160a01b038216820361023a5761091661091b9261090f838988613260565b35906131b8565b613195565b6108d2565b60405162461bcd60e51b815260206004820152600b60248201526a30b93930bc9032b93937b960a91b6044820152606490fd5b3461023a57604036600319011261023a576107b061096f61204e565b602435906109a76001600160a01b03806109888561241a565b1680331480156109b6575b61099d9150613fbb565b8216331415613ff8565b6109b18282614035565b6128da565b5080600052600b60205260406000203360005260205260ff60406000205416806109e5575b61099d9150610993565b50600052600560205260406000203360005260205261099d60ff604060002054166109db565b3461023a576107b0610a1c366122d6565b9033612937565b3461023a57602036600319011261023a576004356001600160401b03811161023a57610a6c610a596107079236906004016121ae565b9190610a63612f36565b42923691612107565b613270565b3461023a57600036600319011261023a5760405160006001805490610a95826121de565b80855291818116908115610b295750600114610ad0575b61043184610abc818603826120cf565b604051918291602083526020830190612013565b600081815292507fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b828410610b11575050508101602001610abc82610aac565b80546020858701810191909152909301928101610af9565b60ff191660208087019190915292151560051b85019092019250610abc9150839050610aac565b3461023a5760208060031936011261023a576001600160401b039060043582811161023a573660238201121561023a57610b94903690602481600401359101612320565b90610bad60018060a01b0360145460081c163314614188565b8151928311610d5057610bc16013546121de565b601f8111610cec575b508092601f8111600114610c4957807fde63cc2d19581e57e158d078c2df83f9ab70addd6257f7f12bfecb21c06c912894600091610c3e575b508160011b916000199060031b1c1916176013555b600160ff196014541617601455610c39604051928284938452830190612013565b0390a1005b905083015185610c03565b601f1981169360136000527f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a0909460005b818110610cd557509482916001937fde63cc2d19581e57e158d078c2df83f9ab70addd6257f7f12bfecb21c06c91289710610cbc575b5050811b01601355610c18565b85015160001960f88460031b161c191690558580610caf565b858301518755600190960195918401918401610c79565b60136000527f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a090601f850160051c810191838610610d46575b601f0160051c01905b818110610d3a5750610bca565b60008155600101610d2d565b9091508190610d24565b634e487b7160e01b600052604160045260246000fd5b3461023a576107b0610d77366122d6565b903361409c565b3461023a576107b0610d8f366122d6565b90610d9b82823361409c565b33612937565b3461023a57602036600319011261023a5760206102bc610dbf61204e565b612357565b3461023a57600036600319011261023a57610431610abc612218565b3461023a57602036600319011261023a57600435600052600c602052602060018060a01b0360406000205416604051908152f35b3461023a57604036600319011261023a57610e2d61204e565b610e35612038565b600091610e4181612cc9565b916001600160a01b039081169160005b848110610e6357602086604051908152f35b610e6d8183612cee565b6000526020601081526040600020604051610e8781612099565b60a0600587845416938484526001810154809685015260028101546040850152600381015460608501526004810154608085015201549101528514610ed6575b50610ed190613195565b610e51565b610ee490610ed19297612d5e565b9590610ec7565b3461023a57604036600319011261023a576004356001600160401b03811161023a57610f1b9036906004016121ae565b60243590610f27612f36565b42821015610f3e5761070792610a6c913691612107565b60405162461bcd60e51b81526020600482015260076024820152662166757475726560c81b6044820152606490fd5b3461023a57602036600319011261023a576020610f8b60043561241a565b6040516001600160a01b039091168152f35b3461023a57604036600319011261023a57610fb661204e565b610fbe612038565b600091610fca81612357565b916001600160a01b039081169160005b848110610fec57602086604051908152f35b610ff68183612b94565b600052602060108152604060002060405161101081612099565b60a060058784541693848452600181015480968501526002810154604085015260038101546060850152600481015460808501520154910152851461105f575b5061105a90613195565b610fda565b61106d9061105a9297612d5e565b9590611050565b3461023a57602036600319011261023a576004356008548110156110ab5761109d602091612c22565b90546040519160031b1c8152f35b60405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b6064820152608490fd5b3461023a5760e036600319011261023a5761111e61204e565b611126612038565b9061112f612f36565b6001600160a01b038116156114ae576001600160a01b0382161561147f5761116460c43560a435604435608435606435613b98565b9190911561023a5760158054600101908190556040516370a0823160e01b8152306004820152939092906020856024816001600160a01b0385165afa9485156113e05760009561144b575b506040516370a0823160e01b81523360048201526020816024816001600160a01b0386165afa9081156113e057600091611419575b50604435116113ec576040516323b872dd60e01b60208201523360248201523060448201526044356064820152606481528060a08101106001600160401b0360a083011117610d505760a08101604052611247906001600160a01b038316613d26565b6040516370a0823160e01b81523060048201526020816024816001600160a01b0386165afa9081156113e0576000916113ac575b5061139c85926112bb7fe7d9b7fd810a51c7f2f160d0c100b1bb756592fdeaf6b9b84425b44eca133e9b936112b560209a60443592612e18565b14613cf2565b6040516112c781612099565b60018060a01b038216815260058982016044358152604083016064358152606084016084358152608085019160a435835260a086019360c43585528a60005260108f5260406000209660018060a01b039051166001600160601b0360a01b885416178755516001870155516002860155516003850155516004840155519101556113518487612f8c565b604080516044358152606435602082015260843591810191909152606081019590955260a435608086015260c43560a08601526001600160a01b0390811695169390819060c0820190565b0390a46001601255604051908152f35b90506020813d6020116113d8575b816113c7602093836120cf565b8101031261023a575161139c61127b565b3d91506113ba565b6040513d6000823e3d90fd5b60405162461bcd60e51b815260206004820152600560248201526454484c303160d81b6044820152606490fd5b90506020813d602011611443575b81611434602093836120cf565b8101031261023a5751866111e4565b3d9150611427565b9094506020813d602011611477575b81611467602093836120cf565b8101031261023a575193856111af565b3d915061145a565b60405162461bcd60e51b8152602060048201526007602482015266182fba37b5b2b760c91b6044820152606490fd5b60405162461bcd60e51b815260206004820152600b60248201526a0c17dc9958da5c1a595b9d60aa1b6044820152606490fd5b3461023a57602036600319011261023a5760206102bc6114ff61204e565b612cc9565b3461023a576107b061151536612064565b916124dd565b3461023a57602036600319011261023a576020610f8b60043561414a565b3461023a57606036600319011261023a576004356001600160401b0360243581811161023a5761156d903690600401612155565b9060443590811161023a573660238201121561023a578060040135611591816120f0565b9161159f60405193846120cf565b81835260209160248385019160051b8301019136831161023a57602401905b828210611674575050506115d0612f36565b825182510361164157506115e48251613163565b9260005b835181101561162e578061160261054061162993876131a4565b61161f816001600160a01b0361161885896131a4565b51166131b8565b61055182886131a4565b6115e8565b6001601255604051806104318782612173565b6064906040519062461bcd60e51b82526004820152600c60248201526b3632b733ba342fb2b93937b960a11b6044820152fd5b81356001600160a01b038116810361023a5781529083019083016115be565b3461023a57604036600319011261023a5760206102bc6116b161204e565b60243590612b94565b3461023a57606036600319011261023a576004356116d6612038565b906044356001600160a01b038116810361023a576117008282610707956116fb612f36565b6124dd565b61170982612e25565b612d6b565b3461023a576107b061171f36612064565b9161172d610796843361257a565b612642565b3461023a57604036600319011261023a5761174b61204e565b611753612038565b61175b612f36565b61176433612357565b6001600160a01b039283169290919060005b838110611784576001601255005b806117926117b09233612b94565b806000526010602052868460406000205416146117b5575b50613195565b611776565b6117bf90856131b8565b866117aa565b3461023a57600036600319011261023a576020600854604051908152f35b3461023a57604036600319011261023a576107b06117ff61204e565b6024359061182c6001600160a01b03806118188561241a565b1680331480156118315761099d9150613fbb565b614035565b50600052600b60205260406000203360005260205261099d60ff60406000205416610993565b3461023a57604036600319011261023a57611870612f36565b60243560043514611d1b5761188660043561241a565b6001600160a01b039061189c90821633146134bf565b6118b333826118ac60243561241a565b16146134bf565b60043560005260106020526040600020906005604051926118d384612099565b82815416845260018101546020850152600281015460408501526003810154606085015260048101546080850152015460a0830152602435600052601060205260406000206040519161192583612099565b8082541690818452600183015460208501526002830154604085015260056003840154936060860194855260048101546080870152015460a085015284511603611ce8576040830151604083015103611cb5576060830151905103611c825760a082015160a082015103611c4e576119b16040830151602084015160808501519060a086015192613b58565b6119cf6040830151602084015160808501519060a086015192613b58565b81148015611c15575b15611be4576024356000526010602052600160406000200154600435600052611a0a6001604060002001918254612d5e565b9055611a73611a35611a256020860151602086015190612d5e565b9360808087015191015190612d5e565b6040850151611a6b60a087015192611a57611a508589613b45565b9188613b3b565b611bd157611a658387612e18565b90612c6f565b948591613b58565b906004356000526010602052826004604060002001558110611b6b575b6024356000526010602052611ac7604060002060056000918281558260018201558260028201558260038201558260048201550155565b611ad26024356134f4565b60043560005260106020527f68362f23abee957d51cf9ad5676447be98bb329fda7263be069a80d23569a8e860016040600020015491604085015194611b5760a0606083015192015192604051938493600435996024359960043599879260a094919796959260c0850198855260208501526040840152606083015260808201520152565b0390a4600160125560206040516004358152f35b601160205260406000205481148015611bbd575b611a905760405162461bcd60e51b815260206004820152601260248201527137b934b3b4b730b61032b7321032b93937b960711b6044820152606490fd5b506024356000526040600020548114611b7f565b611a6584611bdf8589612e18565b612e18565b60405162461bcd60e51b815260206004820152600960248201526832b7321032b93937b960b91b6044820152606490fd5b5060043560005260116020526040600020546024356000526040600020541480156119d8575060043560005260406000205415156119d8565b60405162461bcd60e51b815260206004820152600c60248201526b3832b934b7b21032b93937b960a11b6044820152606490fd5b60405162461bcd60e51b815260206004820152600b60248201526a31b634b3331032b93937b960a91b6044820152606490fd5b60405162461bcd60e51b815260206004820152600b60248201526a39ba30b93a1032b93937b960a91b6044820152606490fd5b60405162461bcd60e51b815260206004820152600b60248201526a3a37b5b2b71032b93937b960a91b6044820152606490fd5b60405162461bcd60e51b815260206004820152600960248201526839b0b6b290383630b760b91b6044820152606490fd5b3461023a57604036600319011261023a57611d6561204e565b6024356001600160a01b0380611d7a8361241a565b168091841614611e2e57803314908115611e09575b5015611d9e576107b0916128da565b60405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608490fd5b9050600052600560205260406000203360005260205260ff6040600020541683611d8f565b60405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608490fd5b3461023a57604036600319011261023a57610707611e99612038565b611ea1612f36565b600435906131b8565b3461023a57602036600319011261023a576020610f8b60043561243d565b3461023a57600036600319011261023a5760405160008054611ee9816121de565b80845290600190818116908115610b295750600114611f125761043184610abc818603826120cf565b600080805292507f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b828410611f53575050508101602001610abc82610aac565b80546020858701810191909152909301928101611f3b565b3461023a57602036600319011261023a576004359063ffffffff60e01b821680920361023a5760209163780e9d6360e01b8114908115611fad575b5015158152f35b6380ac58cd60e01b811491508115611fdf575b8115611fce575b5083611fa6565b6301ffc9a760e01b14905083611fc7565b635b5e139f60e01b81149150611fc0565b60005b8381106120035750506000910152565b8181015183820152602001611ff3565b9060209161202c81518092818552858086019101611ff0565b601f01601f1916010190565b602435906001600160a01b038216820361023a57565b600435906001600160a01b038216820361023a57565b606090600319011261023a576001600160a01b0390600435828116810361023a5791602435908116810361023a579060443590565b60c081019081106001600160401b03821117610d5057604052565b602081019081106001600160401b03821117610d5057604052565b90601f801991011681019081106001600160401b03821117610d5057604052565b6001600160401b038111610d505760051b60200190565b9291612112826120f0565b9161212060405193846120cf565b829481845260208094019160051b810192831161023a57905b8282106121465750505050565b81358152908301908301612139565b9080601f8301121561023a5781602061217093359101612107565b90565b6020908160408183019282815285518094520193019160005b82811061219a575050505090565b83518552938101939281019260010161218c565b9181601f8401121561023a578235916001600160401b03831161023a576020808501948460051b01011161023a57565b90600182811c9216801561220e575b60208310146121f857565b634e487b7160e01b600052602260045260246000fd5b91607f16916121ed565b604051906000826013549161222c836121de565b808352926001908181169081156122b45750600114612255575b50612253925003836120cf565b565b6013600090815291507f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a0905b8483106122995750612253935050810160200138612246565b81935090816020925483858a01015201910190918592612280565b90506020925061225394915060ff191682840152151560051b82010138612246565b604090600319011261023a576004356001600160a01b038116810361023a5790602435801515810361023a5790565b6001600160401b038111610d5057601f01601f191660200190565b92919261232c82612305565b9161233a60405193846120cf565b82948184528183011161023a578281602093846000960137010152565b6001600160a01b0316801561237757600052600360205260406000205490565b60405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608490fd5b156123d557565b60405162461bcd60e51b815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606490fd5b6000908152600260205260409020546001600160a01b03166121708115156123ce565b600081815260026020526040902054612460906001600160a01b031615156123ce565b6000908152600460205260409020546001600160a01b031690565b1561248257565b60405162461bcd60e51b815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201526c1c881bdc88185c1c1c9bdd9959609a1b6064820152608490fd5b612253926107ab92604051926124f2846120b4565b6000845261079b610796843361257a565b60809060208152603260208201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b60608201520190565b1561255d57565b60405162461bcd60e51b81528061257660048201612503565b0390fd5b906001600160a01b03808061258e8461241a565b169316918383149384156125c1575b5083156125ab575b50505090565b6125b79192935061243d565b16143880806125a5565b909350600052600560205260406000208260005260205260ff60406000205416923861259d565b156125ef57565b60405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b6064820152608490fd5b90612668906126508461241a565b6001600160a01b0384811693909291831684146125e8565b8181169384156128895783801591826000146127b05750506008549286600052600960205283604060002055600160401b841015610d505784612722916126e1896126c88860016000805160206141be8339815191529a01600855612c22565b90919082549060031b91821b91600019901b1916179055565b81880361277e575b600094898652600a6020528960408720956001600160601b0360a01b9687815416905561276e575b61271b915061241a565b16146125e8565b85825260046020526040822081815416905583825260036020526040822060001981540190558482526040822060018154019055858252600260205284604083209182541617905580a4565b61277791612d6b565b3889612711565b61278785612357565b604060008a815260066020528181208382526020528b828220558b8152600760205220556126e9565b8682036127d2575b50612722906000805160206141be833981519152946126e1565b6127dc9150612357565b6000198101939084116128735784612722916000805160206141be833981519152956000908a8252602090600782526040918284205482810361283c575b508c8452838381205585845260068152828420918452528120559450906127b8565b868552600682528385208386528252838520548786526006835284862082875283528085872055855260078252838520553861281a565b634e487b7160e01b600052601160045260246000fd5b60405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608490fd5b600082815260046020526040902080546001600160a01b0319166001600160a01b039283169081179091559061290f8361241a565b167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600080a4565b6001600160a01b03918216929116908183146129a95760207f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31918360005260058252604060002085600052825261299e8160406000209060ff801983541691151516179055565b6040519015158152a3565b60405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606490fd5b3d15612a19573d906129ff82612305565b91612a0d60405193846120cf565b82523d6000602084013e565b606090565b9091600091803b15612b1057612a696020918493604051948580948193630a85bd0160e11b9a8b84523360048501528460248501526044840152608060648401526084830190612013565b03926001600160a01b03165af190829082612ac1575b5050612ab357612a8d6129ee565b80519081612aae5760405162461bcd60e51b81528061257660048201612503565b602001fd5b6001600160e01b0319161490565b909192506020813d8211612b08575b81612add602093836120cf565b81010312612b045751906001600160e01b031982168203612b015750903880612a7f565b80fd5b5080fd5b3d9150612ad0565b50505050600190565b91926000929190813b15612b8a57602091612b6f9185604051958680958194630a85bd0160e11b9b8c845233600485015260018060a01b0380951660248501526044840152608060648401526084830190612013565b0393165af190829082612ac1575050612ab357612a8d6129ee565b5050505050600190565b612b9d81612357565b821015612bc95760018060a01b0316600052600660205260406000209060005260205260406000205490565b60405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b6064820152608490fd5b600854811015612c595760086000527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30190600090565b634e487b7160e01b600052603260045260246000fd5b8115612c79570490565b634e487b7160e01b600052601260045260246000fd5b15612c9657565b60405162461bcd60e51b815260206004820152600b60248201526a216164647265737328302960a81b6044820152606490fd5b6001600160a01b0316612cdd811515612c8f565b600052600d60205260406000205490565b6001600160a01b03166000818152600d602052604081205491929091811015612d29576040928252600e602052828220908252602052205490565b60405162461bcd60e51b815260206004820152600d60248201526c6f7574206f6620626f756e647360981b6044820152606490fd5b9190820180921161287357565b6001600160a01b031690612d80821515612c8f565b60008281526020600d8152600d60409182842054600e825283852081865282528584862055858552600f825283852055600c8152828420866001600160601b0360a01b82541617905585845252812080549060018201809211612e0457557fcd57880fa6fb6b4aedb77272d2cfa8d03186b5034f9b672ccfcd3cd6edfecc9b9080a3565b634e487b7160e01b83526011600452602483fd5b9190820391821161287357565b6000818152600c60209081526040808320546001600160a01b0316939291612e4e851515612c8f565b848352600d81528183205460001990818101908111612eeb57858552600f835283852054818103612eff575b508585528484812055868552600e835283852090855282528383812055858452600d82528284208054918201918211612eeb5755838352600c9052812080546001600160a01b03191690557f09f87139523b83583b15f476015dd9a27fae3a03f17202cdf77d063bef5d21c29080a3565b634e487b7160e01b85526011600452602485fd5b878652600e8452848620828752845284862054888752600e8552858720828852855280868820558652600f84528486205538612e7a565b600260125414612f47576002601255565b60405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606490fd5b90604091825192612f9c846120b4565b60008085526001600160a01b0383169182156130d457600085815260026020526040902054612fd7906001600160a01b031615155b15613117565b60085490858352602091600983528082852055600160401b8110156130c057928694919282869461301a6107ab9a6126c88960016122539f9d9b01600855612c22565b61302387612357565b82855260068452818520818652845286828620558685526007845281852055600a83526002818520936001600160601b0360a01b94858154169055613068888a612d6b565b60008881526002602052604090205461308b906001600160a01b03161515612fd1565b8386526003815282862060018154019055878652528320918254161790556000805160206141be8339815191528180a4612a1e565b634e487b7160e01b84526041600452602484fd5b5162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606490fd5b1561311e57565b60405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606490fd5b9061316d826120f0565b61317a60405191826120cf565b828152809261318b601f19916120f0565b0190602036910137565b60001981146128735760010190565b8051821015612c595760209160051b010190565b906001600160a01b03806131cb8361241a565b1690813314918215613239575b508115613225575b50156131f3576122539161170982612e25565b60405162461bcd60e51b815260206004820152600a60248201526910b232b632b3b0ba37b960b11b6044820152606490fd5b3391506132318361414a565b1614386131e0565b909150600052600b60205260406000203360005260205260ff6040600020541690386131d8565b9190811015612c595760051b0190565b919060005b83518110156134b957613293824261328d84886131a4565b51613ec6565b91806132ab575b5050506132a690613195565b613275565b6132b584886131a4565b51926132c08461241a565b6001600160a01b03906132d690821633146134bf565b84600052602090601082526040918383600020928354169287156000146134a957613320915060056000918281558260018201558260028201558260038201558260048201550155565b613329876134f4565b8251916370a0823160e01b808452600490338286015260249084868381875afa95861561349e5760009661346f575b50865163a9059cbb60e01b86820152338382015260448082018b90528152608081016001600160401b0381118282101761345b57869493929161339d918a5286613d26565b87519485938492835233908301525afa9182156134505760009261341f575b50509284926133f97fa6faee2246474597b6de7c76bf9a45d256737543cb0806e6e805b55b38c7663f966112b5613414956132a69c9b9a98612e18565b51938493846040919493926060820195825260208201520152565b0390a290388061329a565b81819392933d8311613449575b61343681836120cf565b81010312612b01575051826133f96133bc565b503d61342c565b84513d6000823e3d90fd5b83604186634e487b7160e01b600052526000fd5b90958582813d8311613497575b61348681836120cf565b81010312612b015750519438613358565b503d61347c565b87513d6000823e3d90fd5b8088600160029301550155613329565b50509050565b156134c657565b60405162461bcd60e51b815260206004820152600660248201526510b7bbb732b960d11b6044820152606490fd5b6134fd8161241a565b6001600160a01b0390808216801591821561367d57505060085483600052600960205280604060002055600160401b811015610d5057836126c88260016135479401600855612c22565b600854600019919082810190811161287357600093858552602090600982526040926135768488205491612c22565b90549060031b1c61358a816126c884612c22565b87526009835283872055868652858381205560085480156136695785016135b081612c22565b8782549160031b1b19169055600855868652600a8252828620936001600160601b0360a01b9485815416905561363857906002916135ed88612e25565b6135f68861241a565b888852600483528488208681541690551694858752600382528387209081540190558686525283209081541690556000805160206141be8339815191528280a4565b50606491519062461bcd60e51b82526004820152600b60248201526a216164647265737328302960a81b6044820152fd5b634e487b7160e01b87526031600452602487fd5b61368690612357565b60001981019190821161287357600091858352602060078152604092838520548381036136cc575b50878552848481205584526006815282842091845252812055613547565b81865260068352848620848752835284862054828752600684528587208288528452808688205586526007835284862055386136ae565b9190916137226137128261241a565b6001600160a01b031633146134bf565b8060005260106020526040600020906040519361373e85612099565b82546001600160a01b03168552600183015460208601818152600285015460408801526003850154606088015260048501546080880190815260059095015460a08801529390821015613b07578115613ad6576137a96040870151855183519060a08a015192613b58565b90600160155401948560155585976137c2858351612e18565b925191519160408201519160a08101519660608201519486670de0b6b3a7640000810204670de0b6b3a7640000148715171561287357613824670de0b6b3a764000061381c61381661382a94838c02612c6f565b87613b45565b048095612e18565b82613b3b565b613ab25761386161384861383e8a84613b45565b611a65878b612e18565b985b898361385983888c8c8c613b98565b999098613b98565b86919691613aaa575b5015613a72578860005260116020526040600020548015600014613a6d5750865b808510613a375785106139ff577f951d6388fa4b9c632ce8fdc16c4275079f7a0f61173a15b277546c9810fa44dd97610120978a600052601060205284600460406000208a600182015501556138e18c33612f8c565b60018060a01b0384511660058d604087015190606088015160a0890151926040519561390c87612099565b8652602086018981526040870191825260608701928352608087019389855260a08801958652600052601060205260406000209660018060a01b039051166001600160601b0360a01b885416178755516001870155516002860155516003850155516004840155519101558a600052601160205260406000205480156000146139ee57508a6000526011602052806040600020558b6000526040600020555b60408301519160a0606085015194015194604051988952602089015260408801526060870152608086015260a085015260c084015260e0830152610100820152a3565b90508b6000526040600020556139ab565b60405162461bcd60e51b815260206004820152601060248201526f39b2b3b6b2b73a22b7321032b93937b960811b6044820152606490fd5b60405162461bcd60e51b815260206004820152600e60248201526d383630b71032b7321032b93937b960911b6044820152606490fd5b61388b565b60405162461bcd60e51b815260206004820152601060248201526f696e76616c696420656e64206461746560801b6044820152606490fd5b90503861386a565b613861613ad0613ac28a84613b45565b611a658b611bdf898d612e18565b9861384a565b60405162461bcd60e51b81526020600482015260096024820152680c17dcd959db595b9d60ba1b6044820152606490fd5b60405162461bcd60e51b815260206004820152600c60248201526b30b6b7bab73a1032b93937b960a11b6044820152606490fd5b8115612c79570690565b8181029291811591840414171561287357565b9190613b648282613b3b565b613b835792613b79613b7e9261217095612c6f565b613b45565b612d5e565b92613b7e81613b79613b7e9461217097612c6f565b9194939290948015613cc2578115613c9457808211613c5f578315613c2f57613bc18282613b3b565b613c155792613b79613b7e92613bd695612c6f565b809211613be257600190565b60405162461bcd60e51b815260206004820152600b60248201526a18db1a5999880f88195b9960aa1b6044820152606490fd5b92613b7e81613b79613b7e94613c2a97612c6f565b613bd6565b60405162461bcd60e51b81526020600482015260086024820152670c17dc195c9a5bd960c21b6044820152606490fd5b60405162461bcd60e51b815260206004820152600d60248201526c1c985d19480f88185b5bdd5b9d609a1b6044820152606490fd5b60405162461bcd60e51b8152602060048201526006602482015265305f7261746560d01b6044820152606490fd5b60405162461bcd60e51b81526020600482015260086024820152670c17d85b5bdd5b9d60c21b6044820152606490fd5b15613cf957565b60405162461bcd60e51b81526020600482015260056024820152642a2426181960d91b6044820152606490fd5b60018060a01b03169060405160408101908082106001600160401b03831117610d5057613d97916040526020938482527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564858301526000808587829751910182855af1613d916129ee565b91613e2d565b805191821591848315613e09575b505050905015613db25750565b6084906040519062461bcd60e51b82526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152fd5b919381809450010312612b0457820151908115158203612b01575080388084613da5565b91929015613e8f5750815115613e41575090565b3b15613e4a5790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b825190915015613ea25750805190602001fd5b60405162461bcd60e51b815260206004820152908190612576906024830190612013565b90916000918252601060205260a06040832060405193613ee585612099565b600180841b0382541685526001820154938460208701526002830154958660408201526003840154908160608201526005600486015495866080840152015495869101528297808811918215613fb1575b50508015613fa7575b15613f4c57505050509192565b613f9894965090613f77613f7085613f6b89613f9297969a989a612e18565b612c6f565b9283613b45565b9050868111613f9d57613f8c905b8097612e18565b94613b45565b90612d5e565b909192565b50613f8c86613f85565b5085811115613f3f565b1190503880613f36565b15613fc257565b60405162461bcd60e51b815260206004820152600e60248201526d10b7bbb732b927b832b930ba37b960911b6044820152606490fd5b15613fff57565b60405162461bcd60e51b815260206004820152600e60248201526d085cd95b1988185c1c1c9bdd985b60921b6044820152606490fd5b6000828152600a60205260409081902080546001600160a01b0319166001600160a01b039384169081179091557f5f05f4f4b46d943d34b887b4741055b5ab6decb7b4fd2670a98969d38a364080929061408e8561241a565b8351921682526020820152a2565b6001600160a01b039182169116808214614119577f947bc3b5c76434e50335b9127e82fb1abb17b34d9380caf2a64cd8c6f43711849260609282600052600b6020526040600020816000526020526141048260406000209060ff801983541691151516179055565b604051928352602083015215156040820152a1565b60405162461bcd60e51b815260206004820152600960248201526810b7b832b930ba37b960b91b6044820152606490fd5b60008181526002602052604090205461416d906001600160a01b031615156123ce565b6000908152600a60205260409020546001600160a01b031690565b1561418f57565b60405162461bcd60e51b815260206004820152600660248201526510a0a226a4a760d11b6044820152606490fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122066a7777aca00671e8c6afe5372db2137d29104521188fdb5afd2503041a664cf64736f6c63430008130033000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000010546f6b656e4c6f636b7570506c616e73000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003544c500000000000000000000000000000000000000000000000000000000000