/* Autogenerated file. Do not edit manually. */ /* tslint:disable */ /* eslint-disable */ import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers"; import { Provider, TransactionRequest } from "@ethersproject/providers"; import type { RiverBoxImpl, RiverBoxImplInterface } from "../RiverBoxImpl"; const _abi = [ { anonymous: false, inputs: [ { indexed: false, internalType: "address", name: "previousAdmin", type: "address", }, { indexed: false, internalType: "address", name: "newAdmin", type: "address", }, ], name: "AdminChanged", type: "event", }, { 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: true, internalType: "address", name: "beacon", type: "address", }, ], name: "BeaconUpgraded", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "payer", type: "address", }, { indexed: true, internalType: "uint256", name: "tokenId", type: "uint256", }, { indexed: false, internalType: "uint256", name: "eventTime", type: "uint256", }, ], name: "BoxAwarded", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "uint256", name: "from", type: "uint256", }, { indexed: true, internalType: "uint256", name: "to", type: "uint256", }, ], name: "BoxPriceChanged", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "payer", type: "address", }, { indexed: true, internalType: "uint256", name: "tokenId", type: "uint256", }, { indexed: false, internalType: "uint256", name: "eventTime", type: "uint256", }, ], name: "FusedItemAwarded", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "previousOwner", type: "address", }, { indexed: true, internalType: "address", name: "newOwner", type: "address", }, ], name: "OwnershipTransferred", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "address", name: "account", type: "address", }, ], name: "Paused", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "bytes32", name: "role", type: "bytes32", }, { indexed: true, internalType: "bytes32", name: "previousAdminRole", type: "bytes32", }, { indexed: true, internalType: "bytes32", name: "newAdminRole", type: "bytes32", }, ], name: "RoleAdminChanged", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "bytes32", name: "role", type: "bytes32", }, { indexed: true, internalType: "address", name: "account", type: "address", }, { indexed: true, internalType: "address", name: "sender", type: "address", }, ], name: "RoleGranted", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "bytes32", name: "role", type: "bytes32", }, { indexed: true, internalType: "address", name: "account", type: "address", }, { indexed: true, internalType: "address", name: "sender", type: "address", }, ], name: "RoleRevoked", 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: "account", type: "address", }, ], name: "Unpaused", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "implementation", type: "address", }, ], name: "Upgraded", type: "event", }, { inputs: [], name: "DEFAULT_ADMIN_ROLE", outputs: [ { internalType: "bytes32", name: "", type: "bytes32", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "uint256", name: "tokenId", type: "uint256", }, ], name: "allInfo", outputs: [ { components: [ { internalType: "uint16", name: "locationId", type: "uint16", }, { internalType: "uint16", name: "fusionCount", type: "uint16", }, { internalType: "uint32", name: "signature", type: "uint32", }, { internalType: "uint256[]", name: "parts", type: "uint256[]", }, ], internalType: "struct IRiverBox.Product", name: "", type: "tuple", }, { internalType: "address", name: "", type: "address", }, { internalType: "string", name: "", type: "string", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "to", type: "address", }, { internalType: "uint256", name: "tokenId", type: "uint256", }, ], name: "approve", 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: [], name: "baseURI", outputs: [ { internalType: "string", name: "", type: "string", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address[]", name: "receivers", type: "address[]", }, { internalType: "uint256[]", name: "qualities", type: "uint256[]", }, ], name: "batchAirDrop", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "uint16[]", name: "locationIds", type: "uint16[]", }, { internalType: "uint16[]", name: "locationIdStocks", type: "uint16[]", }, ], name: "batchSetPawnLocationStock", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "uint256", name: "startIndex", type: "uint256", }, { internalType: "uint256", name: "length", type: "uint256", }, ], name: "batchStockInfo", outputs: [ { internalType: "uint256[]", name: "", type: "uint256[]", }, { internalType: "uint256[]", name: "", type: "uint256[]", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "boxPrice", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "uint256", name: "quality", type: "uint256", }, { internalType: "address", name: "referrer", type: "address", }, ], name: "buy", outputs: [], stateMutability: "payable", type: "function", }, { inputs: [ { internalType: "uint256", name: "amount", type: "uint256", }, ], name: "claim", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "", type: "address", }, ], name: "claimableAmountMapping", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "devAddress", outputs: [ { internalType: "address", name: "", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "devShare", outputs: [ { internalType: "uint8", name: "", type: "uint8", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "funderAddress", outputs: [ { internalType: "address", name: "", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "uint256[]", name: "tokenIds", type: "uint256[]", }, ], name: "fuse", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [], name: "fuseLock", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "uint256", name: "tokenId", type: "uint256", }, ], name: "getApproved", outputs: [ { internalType: "address", name: "", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "bytes32", name: "role", type: "bytes32", }, ], name: "getRoleAdmin", outputs: [ { internalType: "bytes32", name: "", type: "bytes32", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "bytes32", name: "role", type: "bytes32", }, { internalType: "address", name: "account", type: "address", }, ], name: "grantRole", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "bytes32", name: "role", type: "bytes32", }, { internalType: "address", name: "account", type: "address", }, ], name: "hasRole", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "implementationVersion", outputs: [ { internalType: "string", name: "", type: "string", }, ], stateMutability: "pure", type: "function", }, { inputs: [ { internalType: "uint256", name: "_boxPrice", type: "uint256", }, { internalType: "string", name: "_name", type: "string", }, { internalType: "string", name: "_symbol", type: "string", }, { internalType: "string", name: "_initBaseURI", type: "string", }, { internalType: "address", name: "_proxyRegistryAddress", type: "address", }, ], name: "initialize", outputs: [], stateMutability: "nonpayable", 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: [], name: "marketAddress", outputs: [ { internalType: "address", name: "", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "marketShare", outputs: [ { internalType: "uint8", name: "", type: "uint8", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "name", outputs: [ { internalType: "string", name: "", type: "string", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "owner", outputs: [ { internalType: "address", name: "", type: "address", }, ], 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: "address", name: "", type: "address", }, ], name: "paidBoxes", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "pause", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [], name: "paused", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "pawnsStock", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "randomGeneratorAddress", outputs: [ { internalType: "address", name: "", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "", type: "address", }, ], name: "referrerContrib", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "renounceOwnership", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "bytes32", name: "role", type: "bytes32", }, { internalType: "address", name: "account", type: "address", }, ], name: "renounceRole", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "bytes32", name: "role", type: "bytes32", }, { internalType: "address", name: "account", type: "address", }, ], name: "revokeRole", 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: "address", name: "operator", type: "address", }, { internalType: "bool", name: "approved", type: "bool", }, ], name: "setApprovalForAll", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "string", name: "newBaseURI", type: "string", }, ], name: "setBaseURI", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "uint256", name: "newPrice", type: "uint256", }, ], name: "setBoxPrice", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "bool", name: "lock", type: "bool", }, ], name: "setFuseLock", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "uint16[]", name: "locationIds", type: "uint16[]", }, { internalType: "uint16[]", name: "parentLocationIds", type: "uint16[]", }, { internalType: "uint16[][]", name: "listChildLocationIds", type: "uint16[][]", }, ], name: "setHierarchy", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "newAddress", type: "address", }, ], name: "setRandomGenerator", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "_funderAddress", type: "address", }, { internalType: "address", name: "_devAddress", type: "address", }, { internalType: "address", name: "_marketAddress", type: "address", }, { internalType: "uint8", name: "_devShare", type: "uint8", }, { internalType: "uint8", name: "_marketShare", type: "uint8", }, ], name: "setShare", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "uint256", name: "tokenId", type: "uint256", }, { internalType: "string", name: "_tokenURI", type: "string", }, ], name: "setTokenURI", 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: "uint256", name: "tokenId", type: "uint256", }, ], name: "tokenDetail", outputs: [ { components: [ { internalType: "uint16", name: "locationId", type: "uint16", }, { internalType: "uint16", name: "fusionCount", type: "uint16", }, { internalType: "uint32", name: "signature", type: "uint32", }, { internalType: "uint256[]", name: "parts", type: "uint256[]", }, ], internalType: "struct IRiverBox.Product", name: "", type: "tuple", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "uint256", name: "locationId", type: "uint256", }, ], name: "tokenHierarchy", outputs: [ { components: [ { internalType: "uint16", name: "parentLocationId", type: "uint16", }, { internalType: "uint16[]", name: "childLocationIds", type: "uint16[]", }, ], internalType: "struct IRiverBox.Hierarchy", name: "", type: "tuple", }, ], 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: "totalClaimableAmount", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "totalReferrerContrib", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "totalSupply", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", 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: "address", name: "newOwner", type: "address", }, ], name: "transferOwnership", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [], name: "unPause", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "newImplementation", type: "address", }, ], name: "upgradeTo", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "newImplementation", type: "address", }, { internalType: "bytes", name: "data", type: "bytes", }, ], name: "upgradeToAndCall", outputs: [], stateMutability: "payable", type: "function", }, { inputs: [ { internalType: "uint256[]", name: "tokenIds", type: "uint256[]", }, ], name: "verifyFusion", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "uint256", name: "amount", type: "uint256", }, ], name: "withdraw", outputs: [], stateMutability: "nonpayable", type: "function", }, ]; const _bytecode = "0x60a06040523060601b60805234801561001757600080fd5b5060805160601c615ff26200004c60003960008181611321015281816113610152818161163f015261167f0152615ff26000f3fe6080604052600436106103ce5760003560e01c806370a08231116101fd578063a648285811610118578063d547741f116100ab578063ec465cc51161007a578063ec465cc514610b8c578063f2fde38b14610bba578063f4a791c614610bda578063f7b188a514610bfa578063f7dbea3e14610c0f576103ce565b8063d547741f14610b0c578063df3cf5b814610b2c578063e6c35a9114610b4c578063e985e9c514610b6c576103ce565b8063aed04fae116100e7578063aed04fae14610a7c578063b88d4fde14610a9e578063c87b56dd14610abe578063cb47b5ca14610ade576103ce565b8063a648285814610a0d578063a89989dd14610a24578063aa696d6114610a3b578063adec5ed514610a5b576103ce565b8063854067c311610190578063956236411161015f57806395623641146109a257806395d89b41146109c3578063a217fddf146109d8578063a22cb465146109ed576103ce565b8063854067c3146109225780638da5cb5b146109425780638ea403111461096157806391d1485414610982576103ce565b80637deb6025116101cc5780637deb6025146108985780637e695deb146108ab5780637fbf23b6146108d95780638456cb591461090d576103ce565b806370a082311461082c578063715018a61461084c578063773fe4f6146108615780637789181714610883576103ce565b80633ad10ef6116102ed57806356b2f0a2116102805780636352211e1161024f5780636352211e1461079a5780636415c03b146107ba578063650bdf5f146107e95780636c0360eb14610817576103ce565b806356b2f0a2146107155780635c975abb146107355780635d4e7baf1461074d5780635dbee7491461077a576103ce565b80634bc19fee116102bc5780634bc19fee146106a25780634f1ef286146106c25780634f6ccce7146106d557806355f804b3146106f5576103ce565b80633ad10ef61461061d5780633dc60c3b1461063e57806342842e0e1461066b57806346c3d5371461068b576103ce565b806323b872dd116103655780632f745c59116103345780632f745c591461059d57806336568abe146105bd5780633659cfe6146105dd578063379607f5146105fd576103ce565b806323b872dd1461050d578063248a9ca31461052d5780632e1a7d4d1461055d5780632f2ff15d1461057d576103ce565b8063095ea7b3116103a1578063095ea7b31461048c578063162094c4146104ae57806318160ddd146104ce5780631d5e3363146104ed576103ce565b806301ffc9a7146103d357806306bfcec61461040857806306fdde031461043f578063081812fc14610454575b600080fd5b3480156103df57600080fd5b506103f36103ee366004615708565b610c2f565b60405190151581526020015b60405180910390f35b34801561041457600080fd5b50604080518082019091526005815264312e322e3160d81b60208201525b6040516103ff9190615a60565b34801561044b57600080fd5b50610432610c42565b34801561046057600080fd5b5061047461046f3660046156cc565b610cd4565b6040516001600160a01b0390911681526020016103ff565b34801561049857600080fd5b506104ac6104a7366004615478565b610d61565b005b3480156104ba57600080fd5b506104ac6104c93660046157a6565b610e77565b3480156104da57600080fd5b506099545b6040519081526020016103ff565b3480156104f957600080fd5b506104ac6105083660046157d4565b610f13565b34801561051957600080fd5b506104ac61052836600461534e565b61101d565b34801561053957600080fd5b506104df6105483660046156cc565b600090815260c9602052604090206001015490565b34801561056957600080fd5b506104ac6105783660046156cc565b61104e565b34801561058957600080fd5b506104ac6105983660046156e4565b6111d8565b3480156105a957600080fd5b506104df6105b8366004615478565b6111ff565b3480156105c957600080fd5b506104ac6105d83660046156e4565b611298565b3480156105e957600080fd5b506104ac6105f8366004615290565b611316565b34801561060957600080fd5b506104ac6106183660046156cc565b6113df565b34801561062957600080fd5b5061020654610474906001600160a01b031681565b34801561064a57600080fd5b5061065e6106593660046156cc565b6114e6565b6040516103ff9190615d21565b34801561067757600080fd5b506104ac61068636600461534e565b6115cf565b34801561069757600080fd5b506104df6102035481565b3480156106ae57600080fd5b506104ac6106bd366004615290565b6115ea565b6104ac6106d036600461542b565b611634565b3480156106e157600080fd5b506104df6106f03660046156cc565b6116ea565b34801561070157600080fd5b506104ac61071036600461575c565b61178b565b34801561072157600080fd5b506104ac6107303660046155ae565b6117c6565b34801561074157600080fd5b5060fb5460ff166103f3565b34801561075957600080fd5b5061076d6107683660046156cc565b6118e4565b6040516103ff9190615cbe565b34801561078657600080fd5b506104ac610795366004615680565b6119a0565b3480156107a657600080fd5b506104746107b53660046156cc565b611cce565b3480156107c657600080fd5b506107da6107d53660046156cc565b611d45565b6040516103ff93929190615d34565b3480156107f557600080fd5b506104df610804366004615290565b6102016020526000908152604090205481565b34801561082357600080fd5b50610432611e51565b34801561083857600080fd5b506104df610847366004615290565b611ee0565b34801561085857600080fd5b506104ac611f67565b34801561086d57600080fd5b50610207546103f390600160b01b900460ff1681565b34801561088f57600080fd5b506104df611fce565b6104ac6108a63660046156e4565b611fe8565b3480156108b757600080fd5b506108cb6108c6366004615876565b6121d7565b6040516103ff929190615a3b565b3480156108e557600080fd5b50610207546108fb90600160a81b900460ff1681565b60405160ff90911681526020016103ff565b34801561091957600080fd5b506104ac612483565b34801561092e57600080fd5b506104ac61093d366004615558565b6124b2565b34801561094e57600080fd5b506101c3546001600160a01b0316610474565b34801561096d57600080fd5b506101fc54610474906001600160a01b031681565b34801561098e57600080fd5b506103f361099d3660046156e4565b6126ba565b3480156109ae57600080fd5b5061020754610474906001600160a01b031681565b3480156109cf57600080fd5b506104326126e5565b3480156109e457600080fd5b506104df600081565b3480156109f957600080fd5b506104ac610a083660046153f7565b6126f4565b348015610a1957600080fd5b506104df6101f95481565b348015610a3057600080fd5b506104df6101fa5481565b348015610a4757600080fd5b506104ac610a563660046156b2565b6127c6565b348015610a6757600080fd5b5061020554610474906001600160a01b031681565b348015610a8857600080fd5b50610207546108fb90600160a01b900460ff1681565b348015610aaa57600080fd5b506104ac610ab936600461538e565b61280c565b348015610aca57600080fd5b50610432610ad93660046156cc565b61283e565b348015610aea57600080fd5b506104df610af9366004615290565b6101ff6020526000908152604090205481565b348015610b1857600080fd5b506104ac610b273660046156e4565b61299d565b348015610b3857600080fd5b506104ac610b473660046152e4565b6129c3565b348015610b5857600080fd5b506104ac610b673660046154a3565b612a5a565b348015610b7857600080fd5b506103f3610b873660046152ac565b612c8d565b348015610b9857600080fd5b506104df610ba7366004615290565b6102026020526000908152604090205481565b348015610bc657600080fd5b506104ac610bd5366004615290565b612d71565b348015610be657600080fd5b506103f3610bf5366004615680565b612e3a565b348015610c0657600080fd5b506104ac613121565b348015610c1b57600080fd5b506104ac610c2a3660046156cc565b613150565b6000610c3a826131ad565b90505b919050565b606060658054610c5190615e9c565b80601f0160208091040260200160405190810160405280929190818152602001828054610c7d90615e9c565b8015610cca5780601f10610c9f57610100808354040283529160200191610cca565b820191906000526020600020905b815481529060010190602001808311610cad57829003601f168201915b5050505050905090565b6000610cdf826131d2565b610d455760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b60648201526084015b60405180910390fd5b506000908152606960205260409020546001600160a01b031690565b6000610d6c82611cce565b9050806001600160a01b0316836001600160a01b03161415610dda5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610d3c565b336001600160a01b0382161480610df65750610df68133610b87565b610e685760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610d3c565b610e7283836131ef565b505050565b610e8260003361099d565b610e9e5760405162461bcd60e51b8152600401610d3c90615a73565b610ea7826131d2565b610ef35760405162461bcd60e51b815260206004820152601c60248201527f55524920736574206f66206e6f6e6578697374656e7420746f6b656e000000006044820152606401610d3c565b60008281526101fd602090815260409091208251610e7292840190614fb9565b600054610100900460ff1680610f2c575060005460ff16155b610f485760405162461bcd60e51b8152600401610d3c90615bbe565b600054610100900460ff16158015610f73576000805460ff1961ff0019909116610100171660011790555b610f7b61325d565b610f836132e1565b610f8b613351565b610f936133c9565b610f9d8585613431565b610fa56134c1565b610fb0600033613528565b610fb8613532565b610207805460ff60b01b1916600160b01b1790556101f98690558251610fe6906101fb906020860190614fb9565b5061020480546001600160a01b0319166001600160a01b0384161790558015611015576000805461ff00191690555b505050505050565b61102733826135a7565b6110435760405162461bcd60e51b8152600401610d3c90615c36565b610e72838383613671565b61105960003361099d565b6110755760405162461bcd60e51b8152600401610d3c90615a73565b804710156110be5760405162461bcd60e51b8152602060048201526016602482015275616d6f756e7420657863656564732062616c616e636560501b6044820152606401610d3c565b610207546000906110e7906064906110e1908590600160a01b900460ff1661381c565b90613828565b6102075490915060009061110d906064906110e1908690600160a81b900460ff1661381c565b610206546040519192506001600160a01b03169083156108fc029084906000818181858888f19350505050158015611149573d6000803e3d6000fd5b50610207546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611185573d6000803e3d6000fd5b50610205546001600160a01b03166108fc6111aa836111a48787613834565b90613834565b6040518115909202916000818181858888f193505050501580156111d2573d6000803e3d6000fd5b50505050565b600082815260c960205260409020600101546111f581335b613840565b610e7283836138a4565b600061120a83611ee0565b821061126c5760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b6064820152608401610d3c565b506001600160a01b03821660009081526097602090815260408083208484529091529020545b92915050565b6001600160a01b03811633146113085760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610d3c565b611312828261392a565b5050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016141561135f5760405162461bcd60e51b8152600401610d3c90615afc565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611391613991565b6001600160a01b0316146113b75760405162461bcd60e51b8152600401610d3c90615b48565b6113c0816139bf565b604080516000808252602082019092526113dc91839190613a26565b50565b60fb5460ff16156114025760405162461bcd60e51b8152600401610d3c90615b94565b600261012d5414156114265760405162461bcd60e51b8152600401610d3c90615c87565b600261012d55611434613b71565b33600090815261020160205260409020548111156114945760405162461bcd60e51b815260206004820152601860248201527f6f7574206f6620636c61696d61626c652062616c616e636500000000000000006044820152606401610d3c565b61149f81335b613c09565b33600090815261020160205260409020546114ba9082613834565b33600090815261020160205260409020556101fa546114d99082613834565b6101fa5550600161012d55565b6040805160808101825260008082526020820181905291810191909152606080820152611512826131d2565b61152e5760405162461bcd60e51b8152600401610d3c90615c0c565b60008281526101fe60209081526040918290208251608081018452815461ffff80821683526201000082041682850152640100000000900463ffffffff168185015260018201805485518186028101860190965280865291949293606086019392908301828280156115bf57602002820191906000526020600020905b8154815260200190600101908083116115ab575b5050505050815250509050919050565b610e728383836040518060200160405280600081525061280c565b6115f560003361099d565b6116115760405162461bcd60e51b8152600401610d3c90615a73565b6101fc80546001600160a01b0319166001600160a01b0392909216919091179055565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016141561167d5760405162461bcd60e51b8152600401610d3c90615afc565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166116af613991565b6001600160a01b0316146116d55760405162461bcd60e51b8152600401610d3c90615b48565b6116de826139bf565b61131282826001613a26565b60006116f560995490565b82106117585760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b6064820152608401610d3c565b6099828154811061177957634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050919050565b61179660003361099d565b6117b25760405162461bcd60e51b8152600401610d3c90615a73565b8051611312906101fb906020840190614fb9565b6117d160003361099d565b6117ed5760405162461bcd60e51b8152600401610d3c90615a73565b60005b83518110156111d257604051806040016040528084838151811061182457634e487b7160e01b600052603260045260246000fd5b602002602001015161ffff16815260200183838151811061185557634e487b7160e01b600052603260045260246000fd5b6020026020010151815250610200600086848151811061188557634e487b7160e01b600052603260045260246000fd5b60209081029190910181015161ffff90811683528282019390935260409091016000208351815461ffff191693169290921782558281015180516118cf926001850192019061503d565b50905050806118dd90615ef9565b90506117f0565b6040805180820190915260008152606060208201526000828152610200602090815260409182902082518084018452815461ffff168152600182018054855181860281018601909652808652919492938581019392908301828280156115bf57602002820191906000526020600020906000905b82829054906101000a900461ffff1661ffff16815260200190600201906020826001010492830192600103820291508084116119585790505050505050815250509050919050565b60fb5460ff16156119c35760405162461bcd60e51b8152600401610d3c90615b94565b600261012d5414156119e75760405162461bcd60e51b8152600401610d3c90615c87565b600261012d556119f5613b71565b61020754600160b01b900460ff1615611a435760405162461bcd60e51b815260206004820152601060248201526f199d5cda5b99c81a5cc81b1bd8dad95960821b6044820152606401610d3c565b611a4c81612e3a565b611a985760405162461bcd60e51b815260206004820152601a60248201527f6e6f7420612076616c6964206c697374206f6620746f6b656e730000000000006044820152606401610d3c565b600061020060006101fe600085600081518110611ac557634e487b7160e01b600052603260045260246000fd5b602090810291909101810151825281810192909252604090810160009081205461ffff9081168552848401959095529281018320548151608081018352941680855291840183905283018290526060830185905292505b8351811015611be7576101fe6000858381518110611b4a57634e487b7160e01b600052603260045260246000fd5b6020026020010151815260200190815260200160002060000160029054906101000a900461ffff166001611b7e9190615dbb565b6101fe6000868481518110611ba357634e487b7160e01b600052603260045260246000fd5b6020026020010151815260200190815260200160002060000160026101000a81548161ffff021916908361ffff16021790555080611be090615ef9565b9050611b1c565b506000611bf333613ec2565b60008181526101fe602090815260409182902085518154838801519488015163ffffffff166401000000000267ffffffff000000001961ffff968716620100000263ffff0000199790941661ffff1990931692909217959095169190911716929092178255606085015180519394508593611c7492600185019201906150e1565b5090505080611c803390565b6001600160a01b03167fb6d4c3b1e9d5c5c373b22ac6ea336bcdd0348e7250b4875a980281d00d23c27042604051611cba91815260200190565b60405180910390a35050600161012d555050565b6000818152606760205260408120546001600160a01b031680610c3a5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b6064820152608401610d3c565b604080516080810182526000808252602082018190529181019190915260608082015260006060611d75846131d2565b611d915760405162461bcd60e51b8152600401610d3c90615c0c565b60008481526101fe60205260409020611da985611cce565b611db28661283e565b60408051608081018252845461ffff80821683526201000082041660208084019190915264010000000090910463ffffffff1682840152600186018054845181840281018401909552808552929387936060860193919291830182828015611e3957602002820191906000526020600020905b815481526020019060010190808311611e25575b50505050508152505092509250925092509193909250565b6101fb8054611e5f90615e9c565b80601f0160208091040260200160405190810160405280929190818152602001828054611e8b90615e9c565b8015611ed85780601f10611ead57610100808354040283529160200191611ed8565b820191906000526020600020905b815481529060010190602001808311611ebb57829003601f168201915b505050505081565b60006001600160a01b038216611f4b5760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b6064820152608401610d3c565b506001600160a01b031660009081526068602052604090205490565b6101c3546001600160a01b03163314611fc25760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610d3c565b611fcc6000613eeb565b565b6101fa546101f654600091611fe39190613834565b905090565b60fb5460ff161561200b5760405162461bcd60e51b8152600401610d3c90615b94565b600261012d54141561202f5760405162461bcd60e51b8152600401610d3c90615c87565b600261012d5561203d613b71565b612045611fce565b8211156120895760405162461bcd60e51b8152602060048201526012602482015271189b1a5b9908189bde081cdbdb19081bdd5d60721b6044820152606401610d3c565b60148211156120da5760405162461bcd60e51b815260206004820152601960248201527f657863656564206d6178696d756d207175616c697479203230000000000000006044820152606401610d3c565b6101f9546120e8908361381c565b3410156121375760405162461bcd60e51b815260206004820152601e60248201527f7061796d656e74206973206c657373207468616e20626f7820707269636500006044820152606401610d3c565b612141823361149a565b6001600160a01b038116156121a1576001600160a01b038116600090815261020260205260409020546121749083613f3e565b6001600160a01b038216600090815261020260205260409020556102035461219c9083613f3e565b610203555b3360009081526101ff60205260409020546121bc9083613f3e565b3360009081526101ff60205260409020555050600161012d55565b6101f654606090819084106122425760405162461bcd60e51b815260206004820152602b60248201527f7374617274496e6465782063616e6e6f74206f7665722073746f636b4c6f636160448201526a0e8d2dedce698cadccee8d60ab1b6064820152608401610d3c565b6000831161228a5760405162461bcd60e51b815260206004820152601560248201527406c656e6774682063616e6e6f7420657175616c203605c1b6044820152606401610d3c565b60006122a26122998587615dd8565b6101f654613f4a565b905060006122b08683615e42565b90506000816001600160401b038111156122da57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015612303578160200160208202803683370190505b5090506000826001600160401b0381111561232e57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015612357578160200160208202803683370190505b50905060005b83811015612475576101f66123728a83613f3e565b8154811061239057634e487b7160e01b600052603260045260246000fd5b90600052602060002090601091828204019190066002029054906101000a900461ffff1661ffff168382815181106123d857634e487b7160e01b600052603260045260246000fd5b60209081029190910101526101f76123f08a83613f3e565b8154811061240e57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600891828204019190066004029054906101000a900463ffffffff1663ffffffff1682828151811061245a57634e487b7160e01b600052603260045260246000fd5b602090810291909101015261246e81615ef9565b905061235d565b509097909650945050505050565b61248e60003361099d565b6124aa5760405162461bcd60e51b8152600401610d3c90615a73565b611fcc613532565b6124bd60003361099d565b6124d95760405162461bcd60e51b8152600401610d3c90615a73565b60005b82518161ffff161015610e72576000838261ffff168151811061250f57634e487b7160e01b600052603260045260246000fd5b602002602001015190506000838361ffff168151811061253f57634e487b7160e01b600052603260045260246000fd5b6020026020010151905060005b8161ffff168161ffff1610156126a6576101f68054600180820183556000929092527f6ea6ba7afdda9dd98317feb84bb80d157ea581b23ca788496ba1c38c64dd821260108204018054600f9092166002026101000a61ffff81810219909316928716029190911790556101f8546125cc9163ffffffff90911690615df0565b6101f8805463ffffffff191663ffffffff92831617908190556001911610156126375760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610d3c565b6101f8546101f780546001810182556000919091527fab423d91e51275f405563b297e90b3a62f6d51fbcf68f05522049701393dd8c36008820401805463ffffffff60079093166004026101000a838102199091169290931690920217905561269f81615ed7565b905061254c565b505050806126b390615ed7565b90506124dc565b600091825260c9602090815260408084206001600160a01b0393909316845291905290205460ff1690565b606060668054610c5190615e9c565b6001600160a01b03821633141561274d5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610d3c565b336000818152606a602090815260408083206001600160a01b0387168085529252909120805460ff1916841515179055906001600160a01b03167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516127ba911515815260200190565b60405180910390a35050565b6127d160003361099d565b6127ed5760405162461bcd60e51b8152600401610d3c90615a73565b6102078054911515600160b01b0260ff60b01b19909216919091179055565b61281633836135a7565b6128325760405162461bcd60e51b8152600401610d3c90615c36565b6111d284848484613f60565b6060612849826131d2565b6128955760405162461bcd60e51b815260206004820152601f60248201527f55524920717565727920666f72206e6f6e6578697374656e7420746f6b656e006044820152606401610d3c565b60008281526101fd6020526040812080546128af90615e9c565b80601f01602080910402602001604051908101604052809291908181526020018280546128db90615e9c565b80156129285780601f106128fd57610100808354040283529160200191612928565b820191906000526020600020905b81548152906001019060200180831161290b57829003601f168201915b505050505090506000612939613f93565b82519091501561294b57509050610c3d565b60008151116129695760405180602001604052806000815250612994565b8061297385613fa3565b60405160200161298492919061595a565b6040516020818303038152906040525b92505050610c3d565b600082815260c960205260409020600101546129b981336111f0565b610e72838361392a565b6129ce60003361099d565b6129ea5760405162461bcd60e51b8152600401610d3c90615a73565b61020580546001600160a01b03199081166001600160a01b039788161790915561020680548216958716959095179094556102078054909416929094169190911760ff60a01b1916600160a01b60ff928316021760ff60a81b1916600160a81b9390911692909202919091179055565b612a6560003361099d565b612a815760405162461bcd60e51b8152600401610d3c90615a73565b8051825114612ae75760405162461bcd60e51b815260206004820152602c60248201527f726563656976657273206c656e677468206d75737420657175616c207175616c60448201526b0d2e8d2cae640d8cadccee8d60a31b6064820152608401610d3c565b60005b8151811015610e7257612afb611fce565b828281518110612b1b57634e487b7160e01b600052603260045260246000fd5b60200260200101511115612b605760405162461bcd60e51b815260206004820152600c60248201526b6f7574206f662073746f636b60a01b6044820152606401610d3c565b612b9d828281518110612b8357634e487b7160e01b600052603260045260246000fd5b60200260200101516101fa54613f3e90919063ffffffff16565b6101fa81905550612c2b828281518110612bc757634e487b7160e01b600052603260045260246000fd5b60200260200101516102016000868581518110612bf457634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054613f3e90919063ffffffff16565b6102016000858481518110612c5057634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000208190555080612c8690615ef9565b9050612aea565b610204546000906001600160a01b031615612d40576102045460405163c455279160e01b81526001600160a01b03858116600483015291821691841690829063c45527919060240160206040518083038186803b158015612ced57600080fd5b505afa158015612d01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d259190615740565b6001600160a01b03161415612d3e576001915050611292565b505b6001600160a01b038084166000908152606a602090815260408083209386168352929052205460ff165b9392505050565b6101c3546001600160a01b03163314612dcc5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610d3c565b6001600160a01b038116612e315760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610d3c565b6113dc81613eeb565b6000815160001415612e4e57506000610c3d565b612e7f82600081518110612e7257634e487b7160e01b600052603260045260246000fd5b60200260200101516131d2565b612e9b5760405162461bcd60e51b8152600401610d3c90615c0c565b600061020060006101fe600086600081518110612ec857634e487b7160e01b600052603260045260246000fd5b602090810291909101810151825281810192909252604090810160009081205461ffff908116855292840194909452919091019091205416905080612f11576000915050610c3d565b61ffff811660009081526102006020908152604080832060010180548251818502810185019093528083529192909190830182828015612f9857602002820191906000526020600020906000905b82829054906101000a900461ffff1661ffff1681526020019060020190602082600101049283019260010382029150808411612f5f5790505b505050505090508351815114612fb357600092505050610c3d565b60005b8451811015613116576000858281518110612fe157634e487b7160e01b600052603260045260246000fd5b60200260200101519050612ff4816131d2565b6130105760405162461bcd60e51b8152600401610d3c90615c0c565b60008181526101fe602052604090205462010000900461ffff161561303c576000945050505050610c3d565b60008181526101fe602090815260408083205461ffff908116845261020090925290912054811690851614613078576000945050505050610c3d565b3361308282611cce565b6001600160a01b03161461309d576000945050505050610c3d565b60006130aa836001615dd8565b90505b8651811015613103578681815181106130d657634e487b7160e01b600052603260045260246000fd5b60200260200101518214156130f357600095505050505050610c3d565b6130fc81615ef9565b90506130ad565b50508061310f90615ef9565b9050612fb6565b506001949350505050565b61312c60003361099d565b6131485760405162461bcd60e51b8152600401610d3c90615a73565b611fcc6140bd565b61315b60003361099d565b6131775760405162461bcd60e51b8152600401610d3c90615a73565b6101f9819055604051819081907f86a43345c8fb4dcf39c32c2e0640a996b51c6d6a107ebe46e958e478fb7f475590600090a350565b60006001600160e01b03198216637965db0b60e01b1480610c3a5750610c3a82614137565b6000908152606760205260409020546001600160a01b0316151590565b600081815260696020526040902080546001600160a01b0319166001600160a01b038416908117909155819061322482611cce565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600054610100900460ff1680613276575060005460ff16155b6132925760405162461bcd60e51b8152600401610d3c90615bbe565b600054610100900460ff161580156132bd576000805460ff1961ff0019909116610100171660011790555b6132c561415c565b6132cd6141cf565b80156113dc576000805461ff001916905550565b600054610100900460ff16806132fa575060005460ff16155b6133165760405162461bcd60e51b8152600401610d3c90615bbe565b600054610100900460ff16158015613341576000805460ff1961ff0019909116610100171660011790555b61334961415c565b6132cd614238565b600054610100900460ff168061336a575060005460ff16155b6133865760405162461bcd60e51b8152600401610d3c90615bbe565b600054610100900460ff161580156133b1576000805460ff1961ff0019909116610100171660011790555b6133b961415c565b6133c161415c565b6132cd61415c565b600054610100900460ff16806133e2575060005460ff16155b6133fe5760405162461bcd60e51b8152600401610d3c90615bbe565b600054610100900460ff16158015613429576000805460ff1961ff0019909116610100171660011790555b6132cd6142b6565b600054610100900460ff168061344a575060005460ff16155b6134665760405162461bcd60e51b8152600401610d3c90615bbe565b600054610100900460ff16158015613491576000805460ff1961ff0019909116610100171660011790555b61349961415c565b6134a161415c565b6134ab8383614330565b8015610e72576000805461ff0019169055505050565b600054610100900460ff16806134da575060005460ff16155b6134f65760405162461bcd60e51b8152600401610d3c90615bbe565b600054610100900460ff161580156133b9576000805460ff1961ff0019909116610100171660011790556133c161415c565b61131282826138a4565b60fb5460ff16156135555760405162461bcd60e51b8152600401610d3c90615b94565b60fb805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861358a3390565b6040516001600160a01b03909116815260200160405180910390a1565b60006135b2826131d2565b6136135760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610d3c565b600061361e83611cce565b9050806001600160a01b0316846001600160a01b031614806136595750836001600160a01b031661364e84610cd4565b6001600160a01b0316145b8061366957506136698185612c8d565b949350505050565b826001600160a01b031661368482611cce565b6001600160a01b0316146136ec5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960448201526839903737ba1037bbb760b91b6064820152608401610d3c565b6001600160a01b03821661374e5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610d3c565b6137598383836143ce565b6137646000826131ef565b6001600160a01b038316600090815260686020526040812080546001929061378d908490615e42565b90915550506001600160a01b03821660009081526068602052604081208054600192906137bb908490615dd8565b909155505060008181526067602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6000612d6a8284615e23565b6000612d6a8284615e0f565b6000612d6a8284615e42565b61384a82826126ba565b61131257613862816001600160a01b031660146143d9565b61386d8360206143d9565b60405160200161387e929190615989565b60408051601f198184030181529082905262461bcd60e51b8252610d3c91600401615a60565b6138ae82826126ba565b61131257600082815260c9602090815260408083206001600160a01b03851684529091529020805460ff191660011790556138e63390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b61393482826126ba565b1561131257600082815260c9602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6139ca60003361099d565b6113dc5760405162461bcd60e51b815260206004820152602760248201527f726571756972652061646d696e207065726d697373696f6e20746f20646f20756044820152667067726164657360c81b6064820152608401610d3c565b6000613a30613991565b9050613a3b846145ba565b600083511180613a485750815b15613a5957613a57848461465f565b505b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143805460ff16613b6a57805460ff191660011781556040516001600160a01b0383166024820152613ad890869060440160408051601f198184030181529190526020810180516001600160e01b0316631b2ce7f360e11b17905261465f565b50805460ff19168155613ae9613991565b6001600160a01b0316826001600160a01b031614613b615760405162461bcd60e51b815260206004820152602f60248201527f45524331393637557067726164653a207570677261646520627265616b73206660448201526e75727468657220757067726164657360881b6064820152608401610d3c565b613b6a8561474a565b5050505050565b33803b908115613bba5760405162461bcd60e51b815260206004820152601460248201527318dbdb9d1c9858dd081b9bdd08185b1b1bddd95960621b6044820152606401610d3c565b3332146113125760405162461bcd60e51b815260206004820152601a60248201527f70726f787920636f6e7472616374206e6f7420616c6c6f7765640000000000006044820152606401610d3c565b60008282613c1660995490565b604051602001613c4b9392919092835260609190911b6bffffffffffffffffffffffff19166020830152603482015260540190565b60408051808303601f190181529082905280516020909101206101fc54632791e9e160e21b8352600483018290529092506000916001600160a01b0390911690639e47a7849060240160206040518083038186803b158015613cac57600080fd5b505afa158015613cc0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ce4919061578e565b905060005b84811015613b6a57613d04613cfd60995490565b8390613f3e565b91506000613d436101f68054905084604051602001613d2591815260200190565b60408051601f1981840301815291905280516020909101209061478a565b9050600080613d5183614796565b91509150600060405180608001604052808461ffff168152602001600061ffff1681526020018363ffffffff16815260200160006001600160401b03811115613daa57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015613dd3578160200160208202803683370190505b50905290506000613de389613ec2565b60008181526101fe602090815260409182902085518154838801519488015163ffffffff166401000000000267ffffffff000000001961ffff968716620100000263ffff0000199790941661ffff1990931692909217959095169190911716929092178255606085015180519394508593613e6492600185019201906150e1565b5090505080896001600160a01b03167f225d9f13e431846a86761e8267ab9fbe832de0777aa2955f076de0b58078366542604051613ea491815260200190565b60405180910390a3505050505080613ebb90615ef9565b9050613ce9565b6000613ed36101f580546001019055565b6000613edf6101f55490565b9050610c3a8382614a2b565b6101c380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000612d6a8284615dd8565b6000818310613f595781612d6a565b5090919050565b613f6b848484613671565b613f7784848484614a45565b6111d25760405162461bcd60e51b8152600401610d3c90615aaa565b60606101fb8054610c5190615e9c565b606081613fc857506040805180820190915260018152600360fc1b6020820152610c3d565b8160005b8115613ff25780613fdc81615ef9565b9150613feb9050600a83615e0f565b9150613fcc565b6000816001600160401b0381111561401a57634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015614044576020820181803683370190505b5090505b841561366957614059600183615e42565b9150614066600a86615f14565b614071906030615dd8565b60f81b81838151811061409457634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a9053506140b6600a86615e0f565b9450614048565b60fb5460ff166141065760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610d3c565b60fb805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa3361358a565b60006001600160e01b0319821663780e9d6360e01b1480610c3a5750610c3a82614b47565b600054610100900460ff1680614175575060005460ff16155b6141915760405162461bcd60e51b8152600401610d3c90615bbe565b600054610100900460ff161580156132cd576000805460ff1961ff00199091166101001716600117905580156113dc576000805461ff001916905550565b600054610100900460ff16806141e8575060005460ff16155b6142045760405162461bcd60e51b8152600401610d3c90615bbe565b600054610100900460ff1615801561422f576000805460ff1961ff0019909116610100171660011790555b6132cd33613eeb565b600054610100900460ff1680614251575060005460ff16155b61426d5760405162461bcd60e51b8152600401610d3c90615bbe565b600054610100900460ff16158015614298576000805460ff1961ff0019909116610100171660011790555b60fb805460ff1916905580156113dc576000805461ff001916905550565b600054610100900460ff16806142cf575060005460ff16155b6142eb5760405162461bcd60e51b8152600401610d3c90615bbe565b600054610100900460ff16158015614316576000805460ff1961ff0019909116610100171660011790555b600161012d5580156113dc576000805461ff001916905550565b600054610100900460ff1680614349575060005460ff16155b6143655760405162461bcd60e51b8152600401610d3c90615bbe565b600054610100900460ff16158015614390576000805460ff1961ff0019909116610100171660011790555b82516143a3906065906020860190614fb9565b5081516143b7906066906020850190614fb9565b508015610e72576000805461ff0019169055505050565b610e72838383614b97565b606060006143e8836002615e23565b6143f3906002615dd8565b6001600160401b0381111561441857634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f191660200182016040528015614442576020820181803683370190505b509050600360fc1b8160008151811061446b57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106144a857634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060006144cc846002615e23565b6144d7906001615dd8565b90505b600181111561456b576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061451957634e487b7160e01b600052603260045260246000fd5b1a60f81b82828151811061453d57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a90535060049490941c9361456481615e85565b90506144da565b508315612d6a5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610d3c565b803b61461e5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610d3c565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060823b6146be5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610d3c565b600080846001600160a01b0316846040516146d9919061593e565b600060405180830381855af49150503d8060008114614714576040519150601f19603f3d011682016040523d82523d6000602084013e614719565b606091505b50915091506147418282604051806060016040528060278152602001615f9660279139614c54565b95945050505050565b614753816145ba565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6000612d6a8284615f14565b600080600060016101f6805490506147ae9190615e42565b905060006101f682815481106147d457634e487b7160e01b600052603260045260246000fd5b90600052602060002090601091828204019190066002029054906101000a900461ffff16905060006101f6868154811061481e57634e487b7160e01b600052603260045260246000fd5b90600052602060002090601091828204019190066002029054906101000a900461ffff169050816101f6878154811061486757634e487b7160e01b600052603260045260246000fd5b90600052602060002090601091828204019190066002026101000a81548161ffff021916908361ffff1602179055506101f68054806148b657634e487b7160e01b600052603160045260246000fd5b600082815260208120601060001990930192830401805461ffff6002600f8616026101000a021916905591556101f780548590811061490557634e487b7160e01b600052603260045260246000fd5b90600052602060002090600891828204019190066004029054906101000a900463ffffffff16905060006101f7888154811061495157634e487b7160e01b600052603260045260246000fd5b90600052602060002090600891828204019190066004029054906101000a900463ffffffff169050816101f7898154811061499c57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600891828204019190066004026101000a81548163ffffffff021916908363ffffffff1602179055506101f78054806149ef57634e487b7160e01b600052603160045260246000fd5b600082815260209020600860001990920191820401805463ffffffff600460078516026101000a02191690559055919550909350505050915091565b611312828260405180602001604052806000815250614c8d565b60006001600160a01b0384163b1561311657604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290614a899033908990889088906004016159fe565b602060405180830381600087803b158015614aa357600080fd5b505af1925050508015614ad3575060408051601f3d908101601f19168201909252614ad091810190615724565b60015b614b2d573d808015614b01576040519150601f19603f3d011682016040523d82523d6000602084013e614b06565b606091505b508051614b255760405162461bcd60e51b8152600401610d3c90615aaa565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050613669565b60006001600160e01b031982166380ac58cd60e01b1480614b7857506001600160e01b03198216635b5e139f60e01b145b80610c3a57506301ffc9a760e01b6001600160e01b0319831614610c3a565b6001600160a01b038316614bf257614bed81609980546000838152609a60205260408120829055600182018355919091527f72a152ddfb8e864297c917af52ea6c1c68aead0fee1a62673fcc7e0c94979d000155565b614c15565b816001600160a01b0316836001600160a01b031614614c1557614c158382614cc0565b6001600160a01b038216614c3157614c2c81614d5d565b610e72565b826001600160a01b0316826001600160a01b031614610e7257610e728282614e36565b60608315614c63575081612d6a565b825115614c735782518084602001fd5b8160405162461bcd60e51b8152600401610d3c9190615a60565b614c978383614e7a565b614ca46000848484614a45565b610e725760405162461bcd60e51b8152600401610d3c90615aaa565b60006001614ccd84611ee0565b614cd79190615e42565b600083815260986020526040902054909150808214614d2a576001600160a01b03841660009081526097602090815260408083208584528252808320548484528184208190558352609890915290208190555b5060009182526098602090815260408084208490556001600160a01b039094168352609781528383209183525290812055565b609954600090614d6f90600190615e42565b6000838152609a602052604081205460998054939450909284908110614da557634e487b7160e01b600052603260045260246000fd5b906000526020600020015490508060998381548110614dd457634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255828152609a90915260408082208490558582528120556099805480614e1a57634e487b7160e01b600052603160045260246000fd5b6001900381819060005260206000200160009055905550505050565b6000614e4183611ee0565b6001600160a01b039093166000908152609760209081526040808320868452825280832085905593825260989052919091209190915550565b6001600160a01b038216614ed05760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610d3c565b614ed9816131d2565b15614f265760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610d3c565b614f32600083836143ce565b6001600160a01b0382166000908152606860205260408120805460019290614f5b908490615dd8565b909155505060008181526067602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b828054614fc590615e9c565b90600052602060002090601f016020900481019282614fe7576000855561502d565b82601f1061500057805160ff191683800117855561502d565b8280016001018555821561502d579182015b8281111561502d578251825591602001919060010190615012565b5061503992915061511b565b5090565b82805482825590600052602060002090600f0160109004810192821561502d5791602002820160005b838211156150a657835183826101000a81548161ffff021916908361ffff1602179055509260200192600201602081600101049283019260010302615066565b80156150d45782816101000a81549061ffff02191690556002016020816001010492830192600103026150a6565b505061503992915061511b565b82805482825590600052602060002090810192821561502d579160200282018281111561502d578251825591602001919060010190615012565b5b80821115615039576000815560010161511c565b600082601f830112615140578081fd5b8135602061515561515083615d98565b615d68565b8281528181019085830183850287018401881015615171578586fd5b855b8581101561519e57813561ffff8116811461518c578788fd5b84529284019290840190600101615173565b5090979650505050505050565b600082601f8301126151bb578081fd5b813560206151cb61515083615d98565b82815281810190858301838502870184018810156151e7578586fd5b855b8581101561519e578135845292840192908401906001016151e9565b80358015158114610c3d57600080fd5b600082601f830112615225578081fd5b81356001600160401b0381111561523e5761523e615f54565b615251601f8201601f1916602001615d68565b818152846020838601011115615265578283fd5b816020850160208301379081016020019190915292915050565b803560ff81168114610c3d57600080fd5b6000602082840312156152a1578081fd5b8135612d6a81615f6a565b600080604083850312156152be578081fd5b82356152c981615f6a565b915060208301356152d981615f6a565b809150509250929050565b600080600080600060a086880312156152fb578081fd5b853561530681615f6a565b9450602086013561531681615f6a565b9350604086013561532681615f6a565b92506153346060870161527f565b91506153426080870161527f565b90509295509295909350565b600080600060608486031215615362578081fd5b833561536d81615f6a565b9250602084013561537d81615f6a565b929592945050506040919091013590565b600080600080608085870312156153a3578182fd5b84356153ae81615f6a565b935060208501356153be81615f6a565b92506040850135915060608501356001600160401b038111156153df578182fd5b6153eb87828801615215565b91505092959194509250565b60008060408385031215615409578182fd5b823561541481615f6a565b915061542260208401615205565b90509250929050565b6000806040838503121561543d578182fd5b823561544881615f6a565b915060208301356001600160401b03811115615462578182fd5b61546e85828601615215565b9150509250929050565b6000806040838503121561548a578182fd5b823561549581615f6a565b946020939093013593505050565b600080604083850312156154b5578182fd5b82356001600160401b03808211156154cb578384fd5b818501915085601f8301126154de578384fd5b813560206154ee61515083615d98565b82815281810190858301838502870184018b101561550a578889fd5b8896505b8487101561553557803561552181615f6a565b83526001969096019591830191830161550e565b509650508601359250508082111561554b578283fd5b5061546e858286016151ab565b6000806040838503121561556a578182fd5b82356001600160401b0380821115615580578384fd5b61558c86838701615130565b935060208501359150808211156155a1578283fd5b5061546e85828601615130565b6000806000606084860312156155c2578081fd5b83356001600160401b03808211156155d8578283fd5b6155e487838801615130565b94506020915081860135818111156155fa578384fd5b61560688828901615130565b94505060408601358181111561561a578384fd5b86019050601f8101871361562c578283fd5b803561563a61515082615d98565b81815283810190838501865b8481101561566f5761565d8c888435890101615130565b84529286019290860190600101615646565b505080955050505050509250925092565b600060208284031215615691578081fd5b81356001600160401b038111156156a6578182fd5b613669848285016151ab565b6000602082840312156156c3578081fd5b612d6a82615205565b6000602082840312156156dd578081fd5b5035919050565b600080604083850312156156f6578182fd5b8235915060208301356152d981615f6a565b600060208284031215615719578081fd5b8135612d6a81615f7f565b600060208284031215615735578081fd5b8151612d6a81615f7f565b600060208284031215615751578081fd5b8151612d6a81615f6a565b60006020828403121561576d578081fd5b81356001600160401b03811115615782578182fd5b61366984828501615215565b60006020828403121561579f578081fd5b5051919050565b600080604083850312156157b8578182fd5b8235915060208301356001600160401b03811115615462578182fd5b600080600080600060a086880312156157eb578283fd5b8535945060208601356001600160401b0380821115615808578485fd5b61581489838a01615215565b95506040880135915080821115615829578485fd5b61583589838a01615215565b9450606088013591508082111561584a578283fd5b5061585788828901615215565b925050608086013561586881615f6a565b809150509295509295909350565b60008060408385031215615888578182fd5b50508035926020909101359150565b6000815180845260208085019450808401835b838110156158c6578151875295820195908201906001016158aa565b509495945050505050565b600081518084526158e9816020860160208601615e59565b601f01601f19169290920160200192915050565b600061ffff8083511684528060208401511660208501525063ffffffff60408301511660408401526060820151608060608501526136696080850182615897565b60008251615950818460208701615e59565b9190910192915050565b6000835161596c818460208801615e59565b835190830190615980818360208801615e59565b01949350505050565b60007f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000825283516159c1816017850160208801615e59565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516159f2816028840160208801615e59565b01602801949350505050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090615a31908301846158d1565b9695505050505050565b600060408252615a4e6040830185615897565b82810360208401526147418185615897565b600060208252612d6a60208301846158d1565b60208082526018908201527f726571756972652061646d696e207065726d697373696f6e0000000000000000604082015260600190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60208082526010908201526f546f6b656e206e6f742065786973747360801b604082015260600190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b600060208083526060830161ffff80865116838601528286015160408087015282815180855260808801915085830194508692505b80831015615d1557845184168252938501936001929092019190850190615cf3565b50979650505050505050565b600060208252612d6a60208301846158fd565b600060608252615d4760608301866158fd565b6001600160a01b03851660208401528281036040840152615a3181856158d1565b604051601f8201601f191681016001600160401b0381118282101715615d9057615d90615f54565b604052919050565b60006001600160401b03821115615db157615db1615f54565b5060209081020190565b600061ffff80831681851680830382111561598057615980615f28565b60008219821115615deb57615deb615f28565b500190565b600063ffffffff80831681851680830382111561598057615980615f28565b600082615e1e57615e1e615f3e565b500490565b6000816000190483118215151615615e3d57615e3d615f28565b500290565b600082821015615e5457615e54615f28565b500390565b60005b83811015615e74578181015183820152602001615e5c565b838111156111d25750506000910152565b600081615e9457615e94615f28565b506000190190565b600281046001821680615eb057607f821691505b60208210811415615ed157634e487b7160e01b600052602260045260246000fd5b50919050565b600061ffff80831681811415615eef57615eef615f28565b6001019392505050565b6000600019821415615f0d57615f0d615f28565b5060010190565b600082615f2357615f23615f3e565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146113dc57600080fd5b6001600160e01b0319811681146113dc57600080fdfe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220be06af8ca0cba1d6c468383dc726ac4b12a24f8a1b65a74a4ebe9a679dcfadde64736f6c63430008020033"; export class RiverBoxImpl__factory extends ContractFactory { constructor(signer?: Signer) { super(_abi, _bytecode, signer); } deploy( overrides?: Overrides & { from?: string | Promise } ): Promise { return super.deploy(overrides || {}) as Promise; } getDeployTransaction( overrides?: Overrides & { from?: string | Promise } ): TransactionRequest { return super.getDeployTransaction(overrides || {}); } attach(address: string): RiverBoxImpl { return super.attach(address) as RiverBoxImpl; } connect(signer: Signer): RiverBoxImpl__factory { return super.connect(signer) as RiverBoxImpl__factory; } static readonly bytecode = _bytecode; static readonly abi = _abi; static createInterface(): RiverBoxImplInterface { return new utils.Interface(_abi) as RiverBoxImplInterface; } static connect( address: string, signerOrProvider: Signer | Provider ): RiverBoxImpl { return new Contract(address, _abi, signerOrProvider) as RiverBoxImpl; } }