0 txs
7.8k calls
constructor
constructor()
functions
creatorAddress
viewfunction creatorAddress(address) view returns (address)
creatorPercentage
viewfunction creatorPercentage() view returns (uint256)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
disputerBondAmount
viewfunction disputerBondAmount() view returns (uint256)
escalationAddress
viewfunction escalationAddress() view returns (address)
escalatorBondAmount
viewfunction escalatorBondAmount() view returns (uint256)
firstChallengePeriod
viewfunction firstChallengePeriod() view returns (uint256)
getActiveMarketAddress
viewfunction getActiveMarketAddress(uint256 _index) view returns (address)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
isActiveMarket
viewfunction isActiveMarket(address _marketAddress) view returns (bool)
maxOracleCouncilMembers
viewfunction maxOracleCouncilMembers() view returns (uint256)
minimumTradingDuration
viewfunction minimumTradingDuration() view returns (uint256)
numberOfActiveMarkets
viewfunction numberOfActiveMarkets() view returns (uint256)
oracleBonds
viewfunction oracleBonds() view returns (address)
oracleBondsCheckIndex
viewfunction oracleBondsCheckIndex() view returns (uint256)
oracleCouncilAddress
viewfunction oracleCouncilAddress() view returns (address)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
paymentToken
viewfunction paymentToken() view returns (address)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
resolverAddress
viewfunction resolverAddress(address) view returns (address)
resolverBondAmount
viewfunction resolverBondAmount() view returns (uint256)
resolverPercentage
viewfunction resolverPercentage() view returns (uint256)
rewardWallet
viewfunction rewardWallet() view returns (address)
safeBoxAddress
viewfunction safeBoxAddress() view returns (address)
safeBoxPercentage
viewfunction safeBoxPercentage() view returns (uint256)
secondChallengePeriod
viewfunction secondChallengePeriod() view returns (uint256)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
truthMarketMastercopy
viewfunction truthMarketMastercopy() view returns (address)
uniswapV3Factory
viewfunction uniswapV3Factory() view returns (address)
yesNoTokenCap
viewfunction yesNoTokenCap() view returns (uint256)
createMarket
nonpayablefunction createMarket(string _marketQuestion, string _marketSource, string _additionalInfo, uint256 _endOfTrading, uint256 _yesNoTokenCap, address _rewardToken, uint256 _rewardAmount, string _yesTokenSymbol, string _noTokenSymbol)
disputeMarket
nonpayablefunction disputeMarket(address _marketAddress, address _disputor)
escalateDisputeMarket
nonpayablefunction escalateDisputeMarket(address _marketAddress, address _disputor)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
initialize
nonpayablefunction initialize()
pause
nonpayablefunction pause()
proposeResolution
nonpayablefunction proposeResolution(address _marketAddress, uint256 _outcomePosition)
renounceOwnership
nonpayablefunction renounceOwnership()
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
resetMarketByCouncil
nonpayablefunction resetMarketByCouncil(address _marketAddress, bool _returnToOpenForResolution)
resetMarketByEscalation
nonpayablefunction resetMarketByEscalation(address _marketAddress)
resetMarketStatus
nonpayablefunction resetMarketStatus(address _market)
resolveMarketByCouncil
nonpayablefunction resolveMarketByCouncil(address _marketAddress, uint256 _outcomePosition)
resolveMarketByEscalation
nonpayablefunction resolveMarketByEscalation(address _marketAddress, uint256 _outcomePosition)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setAddresses
nonpayablefunction setAddresses(address _truthMarketMastercopy, address _oracleCouncilAddress, address _paymentToken, address _safeBoxAddress, address _uniswapV3Factory, address _rewardWallet, address _escalationAddress)
setAmounts
nonpayablefunction setAmounts(uint256 _resolverBondAmount, uint256 _disputerBondAmount, uint256 _escalatorBondAmount, uint256 _yesNoTokenCap)
setDurations
nonpayablefunction setDurations(uint256 _firstChallengePeriod, uint256 _secondChallengePeriod, uint256 _minimumTradingDuration)
setEndOfTrading
nonpayablefunction setEndOfTrading(address _market, uint256 _endOfTrading)
setFirstChallengePeriod
nonpayablefunction setFirstChallengePeriod(address _market, uint256 _firstChallengePeriod)
setLimits
nonpayablefunction setLimits(uint256 _maxOracleCouncilMembers)
setOracleBonds
nonpayablefunction setOracleBonds(address _oracleBonds)
setOracleBondsWithBatchCheck
nonpayablefunction setOracleBondsWithBatchCheck(address _oracleBonds, uint256 batchSize) returns (bool completed, uint256 processedCount, uint256 totalCount)
setPercentages
nonpayablefunction setPercentages(uint256 _safeBoxPercentage, uint256 _creatorPercentage, uint256 _resolverPercentage)
setSecondChallengePeriod
nonpayablefunction setSecondChallengePeriod(address _market, uint256 _secondChallengePeriod)
setYesNoTokenCap
nonpayablefunction setYesNoTokenCap(address _market, uint256 _yesNoTokenCap)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unpause
nonpayablefunction unpause()
upgradeTo
nonpayablefunction upgradeTo(address newImplementation)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
events
AddressesUpdated
event AddressesUpdated(address paymentToken, address truthMarketMastercopy, address oracleCouncilAddress, address safeBoxAddress, address uniswapV3Factory, address rewardWallet, address escalationAddress)
AdminChanged
event AdminChanged(address previousAdmin, address newAdmin)
AmountsUpdated
event AmountsUpdated(uint256 resolverBondAmount, uint256 disputerBondAmount, uint256 escalatorBondAmount, uint256 yesNoTokenCap)
BeaconUpgraded
event BeaconUpgraded(address indexed beacon)
DurationsUpdated
event DurationsUpdated(uint256 firstChallengePeriod, uint256 secondChallengePeriod, uint256 minimumTradingDuration)
FlagsUpdated
event FlagsUpdated(bool _creationRestrictedToOwner, bool _openBidAllowed)
Initialized
event Initialized(uint8 version)
LimitsUpdated
event LimitsUpdated(uint256 maxOracleCouncilMembers)
MarketCanceled
event MarketCanceled(address marketAddress)
MarketCreatedWithDescription
event MarketCreatedWithDescription(address marketAddress, string marketQuestion, string marketSource, string additionalInfo, uint256 endOfTrading, uint256 yesNoTokenCap, address marketOwner)
MarketReset
event MarketReset(address marketAddress)
NewOracleBonds
event NewOracleBonds(address oracleBondsAddress)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Paused
event Paused(address account)
PercentagesUpdated
event PercentagesUpdated(uint256 safeBoxPercentage, uint256 creatorPercentage, uint256 resolverPercentage)
ResolutionProposed
event ResolutionProposed(address marketAddress, uint256 outcomePosition)
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
Unpaused
event Unpaused(address account)
Upgraded
event Upgraded(address indexed implementation)
errors
BondsNotSettled
error BondsNotSettled(address market)
DuplicateSymbols
error DuplicateSymbols(string symbol)
InvalidActionWhilePaused
error InvalidActionWhilePaused()
InvalidAddress
error InvalidAddress()
InvalidEndOfTrading
error InvalidEndOfTrading()
InvalidMarket
error InvalidMarket(address market)
InvalidMarketStatus
error InvalidMarketStatus(uint8 status)
InvalidQuestion
error InvalidQuestion()
InvalidRewardWallet
error InvalidRewardWallet()
InvalidSource
error InvalidSource()
InvalidSymbolFormat
error InvalidSymbolFormat(string symbol)
NotCalledByMarket
error NotCalledByMarket()
NotEscalationAndOwner
error NotEscalationAndOwner()
NotOracleCouncil
error NotOracleCouncil()
NotOracleCouncilAndOwner
error NotOracleCouncilAndOwner()
creation bytecode
0x60a0806040523460d657306080525f549060ff8260081c166084575060ff80821603604b575b604051614cc090816100db8239608051818181611f4501528181612044015261263b0152f35b60ff90811916175f557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160ff8152a15f6025565b62461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608490fd5b5f80fdfe60806040526004361015610011575f80fd5b5f803560e01c8062b243e01461306057806301ffc9a71461300957806306ab895014612f4657806307cf018c14612f1c57806309f6cc5f14612efd5780630b732d7714612e3257806311e9b11d14612e1357806318fd663f14612df457806319eab15914612d1b5780631f58d1f714612cfc578063248a9ca314612cce5780632a9af70c14612c545780632d1e564114612c2a5780632f2ff15d14612b7b5780633013ce2914612b5157806335dae75c1461294d57806336568abe146128ba5780633659cfe6146126165780633c58cdcb1461254b5780633e1eae73146124525780633f4ba83a146123bd578063427b4c0d1461239e57806344d9e871146123745780634c18c8cf146122b65780634d736d58146122975780634f1ef28614611ff557806352d1902d14611f32578063543f171514611f085780635b54918214611ede5780635c975abb14611ebb578063677755bb14611e7e5780636781e64014611c435780636a878ec514611c245780636ec38a4e14611bf6578063715018a614611b995780637d6a0d1a14611b7a5780638129fc1c146119175780638456cb59146118bc5780638da5cb5b14611893578063903c47aa1461186957806391d148541461181e57806398683c6214611637578063a131bdfe14611618578063a217fddf146115fc578063a809fbc814611565578063a8f928dd14611546578063a9d3ce99146114a0578063a9faca8014610c45578063ae96ffe614610be4578063b4b6c0c314610b85578063b98ba54514610b66578063c3f5588014610b29578063c943646814610931578063d547741f146108f2578063dd5adfa3146108ba578063eaa8ba7f146106d1578063f071bf4f146106b2578063f2d7dbc91461041c578063f2fde38b1461038b578063f4bfd3db1461036c578063f7d39bbf146102ef5763fb75b2c7146102c3575f80fd5b346102ec57806003193601126102ec576101a5546040516001600160a01b039091168152602090f35b80fd5b50346102ec5760403660031901126102ec578061030a6130d6565b6103126133ee565b6001600160a01b0316803b156103695781809160246040518094819363c7de6d2d60e01b8352833560048401525af1801561035e5761034e5750f35b61035790613118565b6102ec5780f35b6040513d84823e3d90fd5b50fd5b50346102ec57806003193601126102ec57602061019b54604051908152f35b50346102ec5760203660031901126102ec576103a56130d6565b6103ad6133ee565b6001600160a01b038116156103c8576103c590613865565b80f35b60405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608490fd5b50346102ec5760403660031901126102ec576104366130d6565b60246104406133ee565b6001600160a01b039182169081156106a057610191549161019e9384549461046a60243587613300565b8581101561069557939087915b875b8681106106065750508481558585036105fc575581866101a2928084541680610590575b508382604492602095965492876bffffffffffffffffffffffff60a01b85161790556101a35416604051978895869463095ea7b360e01b8652161760048401525f1960248401525af1908115610585577f7e7ae1b443b9f0f02a0f36a03a257d3f20b31d3330eddd3dbd0541cbf75939f692602092610558575b50604051908152a16001925b81039081116105445760609350604051921515835260208301526040820152f35b634e487b7160e01b84526011600452602484fd5b61057790833d851161057e575b61056f818361317c565b810190613226565b505f610517565b503d610565565b6040513d88823e3d90fd5b819350602090604484936101a3541691604051948593849263095ea7b360e01b845260048401528160248401525af193841561035e578260209460449388976105df575b50925050939261049d565b6105f590873d891161057e5761056f818361317c565b505f6105d4565b5091505092610523565b9091925083610614826133a5565b90549060031b1c1660405163403edf8760e11b81526020908181600481865afa91821561068a578c9261066d575b505015610656575060010190889291610479565b90506040519063147126c960e01b82526004820152fd5b6106839250803d1061057e5761056f818361317c565b5f80610642565b6040513d8e823e3d90fd5b508493908791610477565b60405163e6c4247b60e01b8152600490fd5b50346102ec57806003193601126102ec57602061019a54604051908152f35b50346102ec5760e03660031901126102ec576106eb6130d6565b6106f36130ec565b906001600160a01b0390604435828116908190036108b6576064358381168091036108b6576084358481168091036108b65761072d613102565b9160c435938685168095036108b6577fcb29180f408c8c442748098a6e19db3c0250e43df9c736398b76abfc104ade8f9760e0976107696133ee565b6101a383815483811682036108a1575b50505061019f81815499168983829b16820361088c575b5050506101a0818154931683838295168203610877575b5050506101a18481548381168203610862575b5050506101a4858154838116820361084d575b5050506101a5818154971687838299168203610838575b505050866101a69182549081168203610823575b505050604051968752602087015260408601526060850152608084015260a083015260c0820152a180f35b6001600160a01b0319161790555f86816107f8565b6001600160a01b0319161790555f86816107e4565b6001600160a01b0319161790555f85816107cd565b6001600160a01b0319161790555f84816107ba565b6001600160a01b0319161790555f82816107a7565b6001600160a01b0319161790555f8881610790565b6001600160a01b0319161790555f8381610779565b5f80fd5b50346102ec5760203660031901126102ec5760206108d96004356133a5565b905460405160039290921b1c6001600160a01b03168152f35b50346102ec5760403660031901126102ec576103c56004356109126130ec565b9080845261015f60205261092c6001604086200154613652565b613781565b50346102ec57602080600319360112610b255761094c6130d6565b906109556133ee565b6001600160a01b039182169182156106a0578184849261019154825b818110610a945750506101a2908082541680610a2b575b5081546001600160a01b0319811686179092556101a35460405163095ea7b360e01b815292841690971760048301525f196024830152909586926044928492165af1928315610a20577f7e7ae1b443b9f0f02a0f36a03a257d3f20b31d3330eddd3dbd0541cbf75939f693610a03575b50604051908152a180f35b610a1990833d851161057e5761056f818361317c565b505f6109f8565b6040513d86823e3d90fd5b839295506044826101a3969396541691604051948593849263095ea7b360e01b845260048401528160248401525af193841561035e578286946044938997610a77575b50919250610988565b610a8d90873d891161057e5761056f818361317c565b505f610a6e565b829550610aa59194508093506133a5565b90549060031b1c1660405163403edf8760e11b81528581600481855afa908115610b1a578891610afd575b5015610ae55750600101849284928792610971565b6024906040519063147126c960e01b82526004820152fd5b610b149150863d881161057e5761056f818361317c565b5f610ad0565b6040513d8a823e3d90fd5b5080fd5b50346102ec5760203660031901126102ec576020906001600160a01b039060409082610b536130d6565b1681526101a88452205416604051908152f35b50346102ec57806003193601126102ec57602061019454604051908152f35b50346102ec5760403660031901126102ec5780610ba06130d6565b610ba86133ee565b6001600160a01b0316803b1561036957818091602460405180948193631a1b6ef560e11b8352833560048401525af1801561035e5761034e5750f35b50346102ec5760203660031901126102ec577f9da1d91fa7d0082eb55c343a33f4ea427cbaab2ff539d2c0bf4bc5d536e4bcc66020600435610c246133ee565b8061019c80548203610c3d575b5050604051908152a180f35b55805f610c31565b50346102ec576101203660031901126102ec576004356001600160401b038111610b2557610c77903690600401613208565b906024356001600160401b038111610b2557610c97903690600401613208565b916044356001600160401b03811161149c57610cb7903690600401613208565b92610cc0613102565b9060e4356001600160401b03811161149857610ce0903690600401613208565b91610104356001600160401b03811161116457610d01903690600401613208565b600260fb541461145357600260fb55610d18613446565b6101a0546001600160a01b03163314158061143e575b61142c57610d3f6101985442613300565b6064351061141a57845115611408578251156113f6576101a5546001600160a01b0316156113e45761019f54608881901c62ffffff16763d602d80600a3d3981f3363d3d373d3d3d363d7300000017875260781b6effffffffffffffffffffffffffffff19166e5af43d82803e903d91602b57fd5bf3176020526001600160a01b036037600988f0169384156113a65780511561138357905b80511561136157905b610dea8161391e565b1561133c57610df88261391e565b1561131a578051602082012082516020840120146112f157610e1981613345565b90604051918261102e8101106001600160401b0361102e850111176112dd578291610e509161102e613c3d853961102e8401613380565b039087f090811561058557610e6481613345565b90604051918261102e8101106001600160401b0361102e850111176112dd578291610e9b9161102e613c3d853961102e8401613380565b039087f0918215610585576101a3546001600160a01b0316853b156112d95760405163dc5681f960e01b8152610140600482015290889082908190610f0f8d610efd610eeb61014486018f613321565b8581036003190160248701528c613321565b84810360031901604486015290613321565b6064803590840152608480359084015260a48301919091526001600160a01b0387811660c48085019190915289821660e4850152908716610104840152356101248301520381838a5af18015610b1a579088916112c1575b505060c435611187575b506001600160a01b0381163b156111645760405186816024818363f2fde38b60e01b968783528a600484015260018060a01b03165af1801561117c57908791611168575b50506001600160a01b0382163b1561116457604051908152600481018490529085908290602490829084906001600160a01b03165af1801561115957908591611141575b508290526101a76020526040842080546001600160a01b03191633179055611020826137f5565b156110a9575b7f043261d3589392ed7825377c58beb80e358451d2cfb49eadc72e37c5eea149a5939461107a6110889261106c604051968796875260e0602088015260e0870190613321565b908582036040870152613321565b908382036060850152613321565b606435608083015260843560a08301523360c08301520390a1600160fb5580f35b610191805490835f526101926020528160405f20556801000000000000000082101561112d57611088926111098361107a9360017f043261d3589392ed7825377c58beb80e358451d2cfb49eadc72e37c5eea149a59a9b960190556133a5565b81549060031b9087821b9160018060a01b03901b1916179055925050949350611026565b634e487b7160e01b86526041600452602486fd5b61114a90613118565b61115557835f610ff9565b8380fd5b6040513d87823e3d90fd5b8580fd5b61117190613118565b61116457855f610fb5565b6040513d89823e3d90fd5b6101a5546040516323b872dd60e01b602082019081526001600160a01b039283166024830152918716604482015260c4356064808301919091528152611235929091899081906111d860848661317c565b604051946111e586613146565b60208087527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564908701525190826001600160a01b0386165af1611226613b74565b916001600160a01b0316613ba3565b80519081159182156112a7575b50501561124f575f610f71565b60405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608490fd5b6112ba9250602080918301019101613226565b5f80611242565b6112ca90613118565b6112d557865f610f67565b8680fd5b8780fd5b634e487b7160e01b89526041600452602489fd5b604051631db34cbd60e01b815260206004820152908190611316906024830190613321565b0390fd5b604051630f99368160e21b815260206004820152806113166024820185613321565b604051630f99368160e21b815260206004820152908190611316906024830190613321565b5060405161136e81613146565b60028152614e4f60f01b602082015290610de1565b5060405161139081613146565b600381526259455360e81b602082015290610dd8565b60405162461bcd60e51b8152602060048201526016602482015275115490cc4c4d8dce8818dc99585d194819985a5b195960521b6044820152606490fd5b60405163e7423cf560e01b8152600490fd5b604051638154374b60e01b8152600490fd5b60405163103c380960e31b8152600490fd5b60405163237398a160e11b8152600490fd5b60405163110b1c4d60e31b8152600490fd5b506097546001600160a01b0316331415610d2e565b60405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606490fd5b8480fd5b8280fd5b50346102ec577fb00a98da0c7a71c80f4eb7c6fc5182810a44793a250cbecc3064afdba5c8660b6115286114d3366131ee565b6114de9391936133ee565b826101998054820361153e575b50508361019a80548203611536575b50508061019b8054820361152e575b5050604051938493846040919493926060820195825260208201520152565b0390a180f35b55805f611509565b55835f6114fa565b55825f6114eb565b50346102ec57806003193601126102ec57602061019354604051908152f35b50346102ec577fc1eb78b4dd7b14420d376e7162f18d109422ba840d4c610888734561d485b02d611528611598366131ee565b6115a39391936133ee565b82610196805482036115f4575b505083610197805482036115ec575b5050806101988054820361152e575050604051938493846040919493926060820195825260208201520152565b55835f6115bf565b55825f6115b0565b50346102ec57806003193601126102ec57602090604051908152f35b50346102ec57806003193601126102ec57602061019954604051908152f35b50346102ec5760403660031901126102ec576116516130d6565b6116596130ec565b6101a6546001600160a01b03929190831633141580611810575b6117fe5761167f613446565b611688826137f5565b156117e557604051635c975abb60e01b815282841692906020908181600481885afa90811561117c5787916117c8575b506117b65785946101a254166040516309f6cc5f60e01b81528281600481895afa92831561117c578793611783575b5050803b156111645760405163e8c77ba160e01b81526001600160a01b039384166004820152939092166024840152604483015283908290606490829084905af1908115611778578391611764575b5050803b15610369578180916004604051809481936342465e4560e11b83525af1801561035e5761034e5750f35b61176d90613118565b61036957815f611736565b6040513d85823e3d90fd5b819750809293503d83116117af575b61179c818361317c565b810103126108b657859451905f806116e7565b503d611792565b604051634d18af9560e01b8152600490fd5b6117df9150823d841161057e5761056f818361317c565b5f6116b8565b50604051623aae9360e61b815291166004820152602490fd5b604051638a53d3b360e01b8152600490fd5b508260975416331415611673565b50346102ec5760403660031901126102ec57604061183a6130ec565b91600435815261015f602052209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b50346102ec57806003193601126102ec576101a2546040516001600160a01b039091168152602090f35b50346102ec57806003193601126102ec576097546040516001600160a01b039091168152602090f35b50346102ec57806003193601126102ec576118d561348a565b6118dd613446565b600160ff1960c954161760c9557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346102ec57806003193601126102ec57805460ff808260081c161590818092611b6e575b8015611b58575b15611afc5760ff1983811660011785559282611aeb575b5061197381855460081c1661196e816138ad565b6138ad565b61197c33613865565b6119b281855460081c1661198f816138ad565b611998816138ad565b6119a1816138ad565b8460c9541660c95561196e816138ad565b600160fb5583805261015f9260209380855260408620335f5285528260405f20541615611aa3575b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a9283875281865260408720335f52865260405f20541615611a58575b505050611a22575080f35b7f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989061ff0019835416835560405160018152a180f35b828652845260408520335f528452600160405f2091825416179055339033907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8680a45f8080611a17565b85805280855260408620335f52855260405f206001838254161790553333877f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a46119da565b61ffff19166101011784555f61195a565b60405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608490fd5b50303b1580156119435750600181841614611943565b5060018184161061193c565b50346102ec57806003193601126102ec57602061019154604051908152f35b50346102ec57806003193601126102ec57611bb26133ee565b609780546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50346102ec5760203660031901126102ec576020611c1a611c156130d6565b6137f5565b6040519015158152f35b50346102ec57806003193601126102ec57602061019654604051908152f35b50346102ec5760403660031901126102ec57611c5d6130d6565b90611c666130ec565b6101a0546001600160a01b039390841633141580611e70575b61142c57611c8b613446565b611c94816137f5565b15611e5757604051635c975abb60e01b815260209482811693918681600481885afa908115610585578691611e3a575b506117b6576101a25416906040519263b98ba54560e01b84528684600481885afa938415610585578694611e0b575b50823b1561116457604051637190e81560e01b81526001600160a01b03918216600482015291166024820152604481019290925283908290606490829084905af1801561177857908391611df7575b505060405163a3dd261960e01b81528381600481855afa938415611778578394611dbe575b50506008831015611daa576002829314611d7e5750f35b803b1561036957818091600460405180948193631b6a8b5160e21b83525af1801561035e5761034e5750f35b634e487b7160e01b82526021600452602482fd5b9080929450813d8311611df0575b611dd6818361317c565b81010312610b2557516008811015610b2557915f80611d67565b503d611dcc565b611e0090613118565b610b2557815f611d42565b9093508681813d8311611e33575b611e23818361317c565b810103126108b65751925f611cf3565b503d611e19565b611e519150873d891161057e5761056f818361317c565b5f611cc4565b604051623aae9360e61b81529084166004820152602490fd5b508360975416331415611c7f565b50346102ec5760203660031901126102ec576020906001600160a01b039060409082611ea86130d6565b1681526101a78452205416604051908152f35b50346102ec57806003193601126102ec57602060ff60c954166040519015158152f35b50346102ec57806003193601126102ec576101a4546040516001600160a01b039091168152602090f35b50346102ec57806003193601126102ec576101a1546040516001600160a01b039091168152602090f35b50346102ec57806003193601126102ec577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003611f8a5760206040515f80516020614c6b8339815191528152f35b60405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608490fd5b5060403660031901126102ec5761200a6130d6565b6024356001600160401b03811161149c573660238201121561149c5761203a9036906024816004013591016131b8565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169291906120743085141561323e565b6120905f80516020614c6b83398151915294828654161461329f565b6120986133ee565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156120ce5750506103c59150613a11565b82919216604051936352d1902d60e01b85526020948581600481865afa5f9181612268575b506121545760405162461bcd60e51b815260048101879052602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608490fd5b949394036122115761216582613a11565b7fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2825115801590612209575b61219f575b50505080f35b5f8061220094604051946121b28661312b565b602786527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c81870152660819985a5b195960ca1b604087015281519101845af46121fa613b74565b91613ba3565b505f8080612199565b506001612194565b60405162461bcd60e51b815260048101849052602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608490fd5b9091508681813d8311612290575b612280818361317c565b810103126108b65751905f6120f3565b503d612276565b50346102ec57806003193601126102ec57602061019c54604051908152f35b50346102ec5760803660031901126102ec577f08fcf843611805166678c79ce15ba4e48e0761763f021569ddd752ac73cdc2b960806004356064356044356024356122ff6133ee565b836101938054820361236c575b50508061019480548203612364575b5050816101958054820361235c575b50508261019d80548203612354575b5050604051938452602084015260408301526060820152a180f35b55825f612339565b55815f61232a565b55805f61231b565b55835f61230c565b50346102ec57806003193601126102ec576101a6546040516001600160a01b039091168152602090f35b50346102ec57806003193601126102ec57602061019754604051908152f35b50346102ec57806003193601126102ec576123d661348a565b60c95460ff8116156124165760ff191660c9557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b60405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606490fd5b50346102ec5760203660031901126102ec5761246c6130d6565b612475336137f5565b15612534576001600160a01b0390811633810361251f578183926101a05416803b1561251a5783809160246040518094819363154f073d60e31b83528860048401525af1908115610a20578491612506575b50506101a6541690813b1561250257829160248392604051948593849263ade69d4960e01b845260048401525af1801561035e5761034e5750f35b5050fd5b61250f90613118565b61250257825f6124c7565b505050fd5b60405160016230bd5560e01b03198152600490fd5b604051623aae9360e61b8152336004820152602490fd5b50346102ec5760403660031901126102ec576125656130d6565b61256d613446565b6101a0546001600160a01b039190821633141580612608575b61142c5716604051635c975abb60e01b8152602081600481855afa9081156117785783916125e9575b506117b6578082913b15610369578180916024604051809481936392a72a4960e01b8352833560048401525af1801561035e5761034e5750f35b612602915060203d60201161057e5761056f818361317c565b5f6125af565b508160975416331415612586565b50346102ec57602080600319360112610b25576126316130d6565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116906126693083141561323e565b6126855f80516020614c6b83398151915292828454161461329f565b61268d6133ee565b60405191848301918383106001600160401b038411176128a6578260405286845260ff7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd914354165f146126e757505050506103c59150613a11565b84939416906040516352d1902d60e01b81528681600481865afa5f9181612877575b5061276a5760405162461bcd60e51b815260048101889052602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608490fd5b959495036128205761277b83613a11565b7fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2835115801590612819575b6127b6575b5050505080f35b5f809161280f957f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c604051966127eb8861312b565b60278852870152660819985a5b195960ca1b60408701525190845af46121fa613b74565b505f8080806127af565b505f6127aa565b60405162461bcd60e51b815260048101859052602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608490fd5b9091508781813d831161289f575b61288f818361317c565b810103126108b65751905f612709565b503d612885565b634e487b7160e01b5f52604160045260245ffd5b50346102ec5760403660031901126102ec576128d46130ec565b336001600160a01b038216036128f0576103c590600435613781565b60405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608490fd5b50346102ec5760403660031901126102ec576129676130d6565b60243590612973613446565b61297c816137f5565b15612b3057604051635c975abb60e01b81526001600160a01b03828116926020928381600481885afa90811561117c578791612b13575b506117b6578591843b1561149c57604051638dc83ddd60e01b8152600481018790528381602481838a5af1908115610a20578491612aff575b50506101a254169060405163a8f928dd60e01b81528481600481895afa908115610a20578491612ace575b50823b1561115557604051630b41216d60e31b81526001600160a01b0392909216600483015233602483015260448201529082908290606490829084905af1801561035e57612ab6575b509282916040937fca2341ef88281c4bc2968d75391c46498ab80a43e8d026b4c55525cff383c13d95526101a88152838620336bffffffffffffffffffffffff60a01b8254161790558351928352820152a180f35b612ac290939293613118565b6111555790835f612a61565b809450858092503d8311612af8575b612ae7818361317c565b810103126108b6578692515f612a17565b503d612add565b612b0890613118565b61149c57825f6129ec565b612b2a9150843d861161057e5761056f818361317c565b5f6129b3565b604051623aae9360e61b81526001600160a01b039091166004820152602490fd5b50346102ec57806003193601126102ec576101a3546040516001600160a01b039091168152602090f35b50346102ec5760403660031901126102ec57600435612b986130ec565b81835261015f80602052612bb26001604086200154613652565b82845280602052604084209160018060a01b031691825f5260205260ff60405f20541615612bde578380f35b82845260205260408320815f5260205260405f20600160ff1982541617905533917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8480a45f80808380f35b50346102ec57806003193601126102ec5761019f546040516001600160a01b039091168152602090f35b50346102ec5760403660031901126102ec57612c6e6130d6565b6101a0546001600160a01b0390811633141580612cc0575b61142c57829116803b1561036957818091602460405180948193635bb1a6db60e11b8352833560048401525af1801561035e5761034e5750f35b508060975416331415612c86565b50346102ec5760203660031901126102ec5760016040602092600435815261015f8452200154604051908152f35b50346102ec57806003193601126102ec57602061019e54604051908152f35b50346102ec5760403660031901126102ec57612d356130d6565b6024359081151580920361149c57612d4b613446565b6101a0546001600160a01b039190821633141580612de6575b61142c5716604051635c975abb60e01b8152602081600481855afa908115610a20578491612dc7575b506117b6578291813b156125025782916024839260405194859384926347fdd44960e11b845260048401525af1801561035e5761034e5750f35b612de0915060203d60201161057e5761056f818361317c565b5f612d8d565b508160975416331415612d64565b50346102ec57806003193601126102ec57602061019854604051908152f35b50346102ec57806003193601126102ec57602061019d54604051908152f35b50346102ec5760403660031901126102ec57612e4c6130d6565b612e54613446565b6101a6546001600160a01b039190821633141580612eef575b6117fe5716604051635c975abb60e01b8152602081600481855afa908115611778578391612ed0575b506117b6578082913b156103695781809160246040518094819363713fda2b60e01b8352833560048401525af1801561035e5761034e5750f35b612ee9915060203d60201161057e5761056f818361317c565b5f612e96565b508160975416331415612e6d565b50346102ec57806003193601126102ec57602061019554604051908152f35b50346102ec57806003193601126102ec576101a0546040516001600160a01b039091168152602090f35b50346102ec5760203660031901126102ec57612f606130d6565b612f68613446565b6101a6546001600160a01b039190821633141580612ffb575b6117fe5716604051635c975abb60e01b8152602081600481855afa908115611778578391612fdc575b506117b6578082913b15610369578180916004604051809481936235669760e01b83525af1801561035e5761034e5750f35b612ff5915060203d60201161057e5761056f818361317c565b5f612faa565b508160975416331415612f81565b50346102ec5760203660031901126102ec5760043563ffffffff60e01b8116809103610b2557602090637965db0b60e01b811490811561304f575b506040519015158152f35b6301ffc9a760e01b14905082613044565b50346108b65760403660031901126108b65761307a6130d6565b6130826133ee565b6001600160a01b0316803b156108b6575f809160246040518094819363da89a6ff60e01b8352833560048401525af180156130cb576130bf575080f35b6130c99150613118565b005b6040513d5f823e3d90fd5b600435906001600160a01b03821682036108b657565b602435906001600160a01b03821682036108b657565b60a435906001600160a01b03821682036108b657565b6001600160401b0381116128a657604052565b606081019081106001600160401b038211176128a657604052565b604081019081106001600160401b038211176128a657604052565b608081019081106001600160401b038211176128a657604052565b90601f801991011681019081106001600160401b038211176128a657604052565b6001600160401b0381116128a657601f01601f191660200190565b9291926131c48261319d565b916131d2604051938461317c565b8294818452818301116108b6578281602093845f960137010152565b60609060031901126108b657600435906024359060443590565b9080601f830112156108b657816020613223933591016131b8565b90565b908160209103126108b6575180151581036108b65790565b1561324557565b60405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b6064820152608490fd5b156132a657565b60405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b6163746976652070726f787960a01b6064820152608490fd5b9190820180921161330d57565b634e487b7160e01b5f52601160045260245ffd5b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b9061337e6026602093604051948186925191829101602084015e810165102a37b5b2b760d11b602082015203600681018552018361317c565b565b909161339761322393604084526040840190613321565b916020818403910152613321565b61019180548210156133da575f527ffb4a0ff48df6de8777afc824e4cbf267beb8602db7c5a7456c954593226c1fd501905f90565b634e487b7160e01b5f52603260045260245ffd5b6097546001600160a01b0316330361340257565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b60ff60c9541661345257565b60405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606490fd5b335f9081527f68adc5ac8e590759d923d6ae0437ec12c3803306d286779f60d8af3f58595f346020908152604091829020547f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a9060ff16156134eb57505050565b6134f433613aa0565b90835161350081613161565b604281528381019160603684378151156133da57603083538151600190600110156133da57607860218401536041905b80821161360f5750506135cd5760486113169386936135b19387985198899376020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b82860152805191829101603786015e8301907001034b99036b4b9b9b4b733903937b6329607d1b60378301525180928583015e015f8382015203602881018752018561317c565b5192839262461bcd60e51b845260048401526024830190613321565b60648486519062461bcd60e51b825280600483015260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152fd5b9091600f811660108110156133da576f181899199a1a9b1b9c1cb0b131b232b360811b901a61363e848661390d565b5360041c91801561330d575f190190613530565b805f52602061015f8152604091825f20335f52825260ff835f2054161561367857505050565b61368133613aa0565b90835161368d81613161565b604281528381019160603684378151156133da57603083538151600190600110156133da57607860218401536041905b80821161373e5750506135cd5760486113169386936135b19387985198899376020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b82860152805191829101603786015e8301907001034b99036b4b9b9b4b733903937b6329607d1b60378301525180928583015e015f8382015203602881018752018561317c565b9091600f811660108110156133da576f181899199a1a9b1b9c1cb0b131b232b360811b901a61376d848661390d565b5360041c91801561330d575f1901906136bd565b90815f5261015f8060205260405f209160018060a01b031691825f5260205260ff60405f2054166137b157505050565b825f5260205260405f20815f5260205260405f2060ff19815416905533917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b5f80a4565b6101919081541561385f576001600160a01b039081165f8181526101926020526040902054158015939192919061382d575b50505090565b909192505f527ffb4a0ff48df6de8777afc824e4cbf267beb8602db7c5a7456c954593226c1fd55416145f8080613827565b50505f90565b609780546001600160a01b039283166001600160a01b0319821681179092559091167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b156138b457565b60405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608490fd5b9081518110156133da570160200190565b80518015908115613a06575b50613a01575f5b81518110156139fa576001600160f81b031961394d828461390d565b5116600360fc1b811015806139ec575b1590816139c7575b816139a2575b81613993575b81613984575b5061385f57600101613931565b602d60f81b141590505f613977565b600160fd1b8114159150613971565b9050606160f81b811015806139b9575b159061396b565b50603d60f91b8111156139b2565b9050604160f81b811015806139de575b1590613965565b50602d60f91b8111156139d7565b50603960f81b81111561395d565b5050600190565b505f90565b60149150115f61392a565b803b15613a45575f80516020614c6b83398151915280546001600160a01b0319166001600160a01b03909216919091179055565b60405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b60405190613aad8261312b565b602a82526020820160403682378251156133da57603090538151600190600110156133da57607860218401536029905b808211613b31575050613aed5790565b606460405162461bcd60e51b815260206004820152602060248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152fd5b9091600f811660108110156133da576f181899199a1a9b1b9c1cb0b131b232b360811b901a613b60848661390d565b5360041c91801561330d575f190190613add565b3d15613b9e573d90613b858261319d565b91613b93604051938461317c565b82523d5f602084013e565b606090565b91929015613c055750815115613bb7575090565b3b15613bc05790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b825190915015613c185750805190602001fd5b60405162461bcd60e51b81526020600482015290819061131690602483019061332156fe6080604052346103195761102e803803806100198161031d565b9283398101906040818303126103195780516001600160401b03908181116103195783610047918401610342565b9160209384820151838111610319576100609201610342565b8251828111610230576003918254916001958684811c9416801561030f575b888510146102fb578190601f948581116102ad575b50889085831160011461024f575f92610244575b50505f1982861b1c191690861b1783555b80519384116102305760049586548681811c91168015610226575b82821014610213578381116101d0575b508092851160011461016b57509383949184925f95610160575b50501b925f19911b1c19161790555b60058054336001600160a01b03198216811790925560405191906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3610c9a90816103948239f35b015193505f806100fe565b92919084601f198116885f52855f20955f905b898383106101b6575050501061019d575b50505050811b01905561010d565b01519060f8845f19921b161c191690555f80808061018f565b85870151895590970196948501948893509081019061017e565b875f52815f208480880160051c82019284891061020a575b0160051c019087905b8281106101ff5750506100e4565b5f81550187906101f1565b925081926101e8565b602288634e487b7160e01b5f525260245ffd5b90607f16906100d4565b634e487b7160e01b5f52604160045260245ffd5b015190505f806100a8565b90889350601f19831691875f528a5f20925f5b8c8282106102975750508411610280575b505050811b0183556100b9565b01515f1983881b60f8161c191690555f8080610273565b8385015186558c97909501949384019301610262565b909150855f52885f208580850160051c8201928b86106102f2575b918a91869594930160051c01915b8281106102e4575050610094565b5f81558594508a91016102d6565b925081926102c8565b634e487b7160e01b5f52602260045260245ffd5b93607f169361007f565b5f80fd5b6040519190601f01601f191682016001600160401b0381118382101761023057604052565b81601f82011215610319578051906001600160401b03821161023057610371601f8301601f191660200161031d565b928284526020838301011161031957815f9260208093018386015e830101529056fe608060409080825260049081361015610016575f80fd5b5f3560e01c90816306fdde031461069b57508063095ea7b31461067257806318160ddd1461065457806323b872dd14610618578063313ce567146105fd57806339509351146105b157806340c10f19146104ec57806342966c68146104cf57806370a0823114610499578063715018a61461043e57806379cc67901461040d5780638da5cb5b146103e557806395d89b41146102c5578063a457c2d714610221578063a9059cbb146101f1578063dd62ed3e146101a85763f2fde38b146100db575f80fd5b346101a45760203660031901126101a4576100f46107bb565b906100fd610b06565b6001600160a01b03918216928315610152575050600554826bffffffffffffffffffffffff60a01b821617600555167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b906020608492519162461bcd60e51b8352820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152fd5b5f80fd5b82346101a457806003193601126101a4576020906101c46107bb565b6101cc6107d1565b9060018060a01b038091165f5260018452825f2091165f528252805f20549051908152f35b82346101a457806003193601126101a45760209061021a6102106107bb565b6024359033610999565b5160018152f35b50346101a457816003193601126101a45761023a6107bb565b9060243590335f526001602052835f2060018060a01b0384165f52602052835f2054908282106102745760208561021a8585038733610808565b608490602086519162461bcd60e51b8352820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152fd5b5090346101a4575f3660031901126101a4578051905f835460018160011c90600183169283156103db575b60209384841081146103c8578388529081156103ac5750600114610358575b505050829003601f01601f191682019267ffffffffffffffff8411838510176103455750829182610341925282610791565b0390f35b604190634e487b7160e01b5f525260245ffd5b5f878152929350837f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b83851061039857505050508301015f808061030f565b805488860183015293019284908201610382565b60ff1916878501525050151560051b84010190505f808061030f565b602289634e487b7160e01b5f525260245ffd5b91607f16916102f0565b82346101a4575f3660031901126101a45760055490516001600160a01b039091168152602090f35b82346101a4573660031901126101a45761043c6104286107bb565b60243590610437823383610906565b610b5e565b005b346101a4575f3660031901126101a457610456610b06565b600580546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b82346101a45760203660031901126101a4576020906001600160a01b036104be6107bb565b165f525f8252805f20549051908152f35b50346101a45760203660031901126101a45761043c903533610b5e565b5090346101a457806003193601126101a4576105066107bb565b9060243591610513610b06565b6001600160a01b031692831561056f57506020827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef926105565f956002546107e7565b60025585855284835280852082815401905551908152a3005b6020606492519162461bcd60e51b8352820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152fd5b82346101a457806003193601126101a45760209061021a6105d06107bb565b335f5260018452825f2060018060a01b0382165f5284526105f6602435845f20546107e7565b9033610808565b82346101a4575f3660031901126101a4576020905160128152f35b82346101a45760603660031901126101a45760209061021a6106386107bb565b6106406107d1565b6044359161064f833383610906565b610999565b82346101a4575f3660031901126101a4576020906002549051908152f35b82346101a457806003193601126101a45760209061021a6106916107bb565b6024359033610808565b905082346101a4575f3660031901126101a4575f60035460018160011c9060018316928315610787575b60209384841081146103c85783885290811561076b575060011461071557505050829003601f01601f191682019267ffffffffffffffff8411838510176103455750829182610341925282610791565b60035f908152929350837fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b838510610757575050505083010184808061030f565b805488860183015293019284908201610741565b60ff1916878501525050151560051b840101905084808061030f565b91607f16916106c5565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b03821682036101a457565b602435906001600160a01b03821682036101a457565b919082018092116107f457565b634e487b7160e01b5f52601160045260245ffd5b6001600160a01b039081169182156108b557169182156108655760207f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591835f526001825260405f20855f5282528060405f2055604051908152a3565b60405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608490fd5b60405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608490fd5b9060018060a01b038083165f52600160205260405f209082165f5260205260405f2054925f198403610939575b50505050565b8084106109545761094b930391610808565b5f808080610933565b60405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606490fd5b6001600160a01b03908116918215610ab35716918215610a6257815f525f60205260405f2054818110610a0e57817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f84520360405f2055845f5260405f20818154019055604051908152a3565b60405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608490fd5b60405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608490fd5b60405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608490fd5b6005546001600160a01b03163303610b1a57565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b6001600160a01b03168015610c1557805f525f60205260405f205491808310610bc5576020817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef925f958587528684520360408620558060025403600255604051908152a3565b60405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608490fd5b60405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608490fdfea264697066735822122053a330a08ac20269bde072774762615d0edc7f7ea701ca3cc1e34923a080a19364736f6c63430008190033360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca264697066735822122073bdfe68abed383b344fbe6a38e66242626315ac47d0d3186ed31487c99e8e0a64736f6c63430008190033