0 txs
0 calls
constructor
No constructor.
functions
activeBridge
viewfunction activeBridge() view returns (bytes32)
activeSwap
viewfunction activeSwap() view returns (bytes32)
bridgeParams
viewfunction bridgeParams() view returns (address bridge, bytes params)
bridgeToUse
viewfunction bridgeToUse(bytes32) view returns (string)
cowllector
viewfunction cowllector() view returns (bool sendFunds, address cowllector, uint256 amountCowllectorNeeds)
destinationAddress
viewfunction destinationAddress() view returns (address destination, bytes destinationBytes, string destinationString)
findHash
purefunction findHash(string _variable) pure returns (bytes32)
funds
viewfunction funds() view returns (address sender, bool fromInternalBalance, address recipient, bool toInternalBalance)
lastHarvest
viewfunction lastHarvest() view returns (uint256)
minBridgeAmount
viewfunction minBridgeAmount() view returns (uint256)
native
viewfunction native() view returns (address)
owner
viewfunction owner() view returns (address)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
stable
viewfunction stable() view returns (address)
swapKind
viewfunction swapKind() view returns (uint8)
swapParams
viewfunction swapParams() view returns (address router, bytes params)
swapToUse
viewfunction swapToUse(bytes32) view returns (string)
bridgeAxelar
nonpayablefunction bridgeAxelar()
bridgeCircle
nonpayablefunction bridgeCircle()
bridgeStargate
nonpayablefunction bridgeStargate()
bridgeSynapse
nonpayablefunction bridgeSynapse()
bridgezkEVM
nonpayablefunction bridgezkEVM()
bridgezkSync
nonpayablefunction bridgezkSync()
harvest
nonpayablefunction harvest()
inCaseTokensGetStuck
nonpayablefunction inCaseTokensGetStuck(address _token, bool _native)
initialize
nonpayablefunction initialize()
renounceOwnership
nonpayablefunction renounceOwnership()
setActiveBridge
nonpayablefunction setActiveBridge(bytes32 _bridgeHash, tuple _params)
setActiveSwap
nonpayablefunction setActiveSwap(bytes32 _swapHash, tuple _params)
setBridgeMap
nonpayablefunction setBridgeMap(bytes32 _bridgeHash, string _function)
setCowllector
nonpayablefunction setCowllector(tuple _cowllector)
setDestinationAddress
nonpayablefunction setDestinationAddress(tuple _destination)
setMinBridgeAmount
nonpayablefunction setMinBridgeAmount(uint256 _amount)
setStable
nonpayablefunction setStable(address _stable, address _native)
setSwapHash
nonpayablefunction setSwapHash(string _hash, string _variable)
swapAlgebra
nonpayablefunction swapAlgebra()
swapBalancer
nonpayablefunction swapBalancer()
swapBeefy
nonpayablefunction swapBeefy()
swapSolidly
nonpayablefunction swapSolidly()
swapUniV2
nonpayablefunction swapUniV2()
swapUniV3
nonpayablefunction swapUniV3()
swapUniV3Deadline
nonpayablefunction swapUniV3Deadline()
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
upgradeTo
nonpayablefunction upgradeTo(address newImplementation)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
events
AdminChanged
event AdminChanged(address previousAdmin, address newAdmin)
BeaconUpgraded
event BeaconUpgraded(address indexed beacon)
Bridged
event Bridged(address indexed stable, uint256 stableBridged)
CowllectorRefill
event CowllectorRefill(uint256 amount)
Harvested
event Harvested(uint256 amount)
Initialized
event Initialized(uint8 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
SetBridge
event SetBridge(bytes32 bridge, (address bridge, bytes params) params)
SetDestinationAddress
event SetDestinationAddress((address destination, bytes destinationBytes, string destinationString) destinationAddress)
SetMinBridgeAmount
event SetMinBridgeAmount(uint256 amount)
SetStable
event SetStable(address oldStable, address newStable)
SetSwap
event SetSwap(bytes32 swap, (address router, bytes params) params)
Upgraded
event Upgraded(address indexed implementation)
errors
BridgeError
error BridgeError()
FailedToSendEther
error FailedToSendEther()
IncorrectRoute
error IncorrectRoute()
NotAuthorized
error NotAuthorized()
NotEnoughEth
error NotEnoughEth()
SwapError
error SwapError()
creation bytecode
0x60a06040523060805234801561001457600080fd5b50608051615cfa6200004d60003960008181610e8301528181610ecc01528181610fc301528181611003015261131c0152615cfa6000f3fe6080604052600436106102765760003560e01c80638129fc1c1161014f578063c4b00c4f116100c1578063ee63c1e51161007a578063ee63c1e514610752578063f1a392da14610767578063f2fde38b1461077d578063f3f1a71a1461079d578063fe8d1ab0146107bd578063ff33d21f146107d257600080fd5b8063c4b00c4f14610653578063c89f2ce414610673578063ca325469146106e4578063cc5ea4ef14610708578063d49b64081461071d578063d7d66e711461073257600080fd5b8063a5131aaa11610113578063a5131aaa1461058a578063b54653fb1461059f578063b9f39147146105f3578063bac86af514610608578063bce4547a14610628578063c3c224751461063d57600080fd5b80638129fc1c14610508578063873d80ec1461051d5780638da5cb5b14610540578063943f8e961461055e5780639c345b9f1461057457600080fd5b80635066a747116101e8578063671f6a26116101ac578063671f6a26146104555780636ae407111461047c5780636d0a68911461049157806370c75107146104be578063715018a6146104de578063748b3c05146104f357600080fd5b80635066a747146103c85780635109d8b6146103e857806352d1902d146103fd578063530728d51461042057806364e510a11461043557600080fd5b80631610ee401161023a5780631610ee401461032057806322be3de114610340578063284eb663146103605780633659cfe6146103805780634641257d146103a05780634f1ef286146103b557600080fd5b80630278fb8a14610282578063057d1ae3146102995780630d1f7833146102ae57806311b0b42d146102c3578063154085921461030057600080fd5b3661027d57005b600080fd5b34801561028e57600080fd5b506102976107f2565b005b3480156102a557600080fd5b50610297610984565b3480156102ba57600080fd5b50610297610bd0565b3480156102cf57600080fd5b5060cd546102e3906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561030c57600080fd5b5061029761031b366004614461565b610db5565b34801561032c57600080fd5b5061029761033b3660046144be565b610dd6565b34801561034c57600080fd5b5060cc546102e3906001600160a01b031681565b34801561036c57600080fd5b5061029761037b3660046144f2565b610e27565b34801561038c57600080fd5b5061029761039b366004614572565b610e79565b3480156103ac57600080fd5b50610297610f61565b6102976103c3366004614646565b610fb9565b3480156103d457600080fd5b506102976103e33660046146ea565b611089565b3480156103f457600080fd5b5061029761111c565b34801561040957600080fd5b5061041261130f565b6040519081526020016102f7565b34801561042c57600080fd5b506102976113c2565b34801561044157600080fd5b506102976104503660046146ea565b6114af565b34801561046157600080fd5b5060c95461046f9060ff1681565b6040516102f79190614752565b34801561048857600080fd5b5061029761153d565b34801561049d57600080fd5b506104b16104ac366004614760565b611723565b6040516102f791906147c9565b3480156104ca57600080fd5b506104126104d93660046147dc565b6117bd565b3480156104ea57600080fd5b506102976117f1565b3480156104ff57600080fd5b50610297611805565b34801561051457600080fd5b50610297611975565b34801561052957600080fd5b50610532611aed565b6040516102f792919061481d565b34801561054c57600080fd5b506033546001600160a01b03166102e3565b34801561056a57600080fd5b5061041260cf5481565b34801561058057600080fd5b5061041260ce5481565b34801561059657600080fd5b50610297611b8e565b3480156105ab57600080fd5b5060d05460d1546105ce9160ff8116916101009091046001600160a01b03169083565b6040805193151584526001600160a01b039092166020840152908201526060016102f7565b3480156105ff57600080fd5b50610297611bfa565b34801561061457600080fd5b5061029761062336600461484f565b611d86565b34801561063457600080fd5b50610297611e80565b34801561064957600080fd5b5061041260d95481565b34801561065f57600080fd5b5061029761066e366004614888565b612094565b34801561067f57600080fd5b5060ca5460cb546106af916001600160a01b038082169260ff600160a01b93849004811693928216929091041684565b6040516102f794939291906001600160a01b039485168152921515602084015292166040820152901515606082015260800190565b3480156106f057600080fd5b506106f96120a9565b6040516102f7939291906148a4565b34801561071457600080fd5b506102976121d8565b34801561072957600080fd5b50610532612373565b34801561073e57600080fd5b5061029761074d366004614760565b612391565b34801561075e57600080fd5b506102976123d1565b34801561077357600080fd5b5061041260dd5481565b34801561078957600080fd5b50610297610798366004614572565b61255d565b3480156107a957600080fd5b506104b16107b8366004614760565b6125d3565b3480156107c957600080fd5b506102976125ec565b3480156107de57600080fd5b506102976107ed3660046148da565b612775565b6107fa612851565b600060d4600101805461080c90614908565b80601f016020809104026020016040519081016040528092919081815260200182805461083890614908565b80156108855780601f1061085a57610100808354040283529160200191610885565b820191906000526020600020905b81548152906001019060200180831161086857829003601f168201915b505050505080602001905181019061089d91906149ce565b60cd5481519192506001600160a01b03169082906000906108c0576108c0614a02565b60200260200101516001600160a01b0316146108ef576040516376c252e160e11b815260040160405180910390fd5b60cc5481516001600160a01b0390911690829061090e90600190614a2e565b8151811061091e5761091e614a02565b60200260200101516001600160a01b03161461094d576040516376c252e160e11b815260040160405180910390fd5b600061095882612871565b9050600061096461292a565b60d45490915061097e906001600160a01b0316838361299d565b50505050565b61098c612851565b600060d2600101805461099e90614908565b80601f01602080910402602001604051908101604052809291908181526020018280546109ca90614908565b8015610a175780601f106109ec57610100808354040283529160200191610a17565b820191906000526020600020905b8154815290600101906020018083116109fa57829003601f168201915b5050505050806020019051810190610a2f9190614a41565b6040805160e081018252825161ffff16815260d6546001600160a01b0316602080830191909152633b9aca00828401526000606083018190528351818152808301855260808401528351818152808301855260a0840152835191820190935282815260c0820152919250610aa282612a3e565b9050610aac612ac5565b6000610ab6612b26565b905060d954811115610b9a576040805160e081018252855161ffff16815260d6546001600160a01b039081166020808401919091528284018590526000606084018190528451818152808301865260808501528451818152808301865260a085015284519182018552815260c083015260d2548551935163c7c7f5b360e01b8152929650169163c7c7f5b391610b5490879087903090600401614b35565b60c06040518083038185885af1158015610b72573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b979190614bc0565b50505b60cc546040518281526001600160a01b0390911690600080516020615c5e8339815191529060200160405180910390a250505050565b610bd8612851565b60008060d46001018054610beb90614908565b80601f0160208091040260200160405190810160405280929190818152602001828054610c1790614908565b8015610c645780601f10610c3957610100808354040283529160200191610c64565b820191906000526020600020905b815481529060010190602001808311610c4757829003601f168201915b5050505050806020019051810190610c7c9190614c2a565b60cd5481519294509092506001600160a01b0316908290600090610ca257610ca2614a02565b60200260200101516001600160a01b031614610cd1576040516376c252e160e11b815260040160405180910390fd5b60cc5481516001600160a01b03909116908290610cf090600190614a2e565b81518110610d0057610d00614a02565b60200260200101516001600160a01b031614610d2f576040516376c252e160e11b815260040160405180910390fd5b6000610d3961292a565b90506000610d478483612b57565b60d45460c9546040805160808101825260ca546001600160a01b03808216835260ff600160a01b9283900481161515602085015260cb548083169585019590955291909304811615156060830152949550610dae9491909316929116908490879087612d60565b5050505050565b610dbd612eaa565b600083815260db6020526040902061097e828483614d63565b610dde612eaa565b7f518f47fcfba5d9b707c3387a7fa4301136192d8091a43ea13ae8db7275ab5d3a81604051610e0d9190614e8a565b60405180910390a18060d6610e228282614f5b565b505050565b610e2f612eaa565b818160dc60008787604051602001610e48929190615054565b6040516020818303038152906040528051906020012081526020019081526020016000209182610dae929190614d63565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610eca5760405162461bcd60e51b8152600401610ec190615068565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610f13600080516020615c7e833981519152546001600160a01b031690565b6001600160a01b031614610f395760405162461bcd60e51b8152600401610ec1906150b4565b610f4281612f04565b60408051600080825260208201909252610f5e91839190612f0c565b50565b7f8e55ccfc9778ff8eba1646d765cf1982537ce0f9257054a17b48aad745250183610f8a61292a565b60405190815260200160405180910390a16000610fa561292a565b1115610fb357610fb3613077565b4260dd55565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036110015760405162461bcd60e51b8152600401610ec190615068565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661104a600080516020615c7e833981519152546001600160a01b031690565b6001600160a01b0316146110705760405162461bcd60e51b8152600401610ec1906150b4565b61107982612f04565b61108582826001612f0c565b5050565b611091612eaa565b7f25f7dd6fc737add5174192a11292dfd270c1397f9c4f641fb6336a208b5efbed82826040516110c292919061513a565b60405180910390a160cd5460d4546110e6916001600160a01b0390811691166130a7565b60cf8290558060d46110f8828261522f565b505060cd54611085906001600160a01b03166111176020840184614572565b613136565b611124612851565b600060d4600101805461113690614908565b80601f016020809104026020016040519081016040528092919081815260200182805461116290614908565b80156111af5780601f10611184576101008083540402835291602001916111af565b820191906000526020600020905b81548152906001019060200180831161119257829003601f168201915b50505050508060200190518101906111c79190615239565b905060006111d4826131c3565b60cd5481519192506001600160a01b03169082906000906111f7576111f7614a02565b60200260200101516001600160a01b031614611226576040516376c252e160e11b815260040160405180910390fd5b60cc5481516001600160a01b0390911690829061124590600190614a2e565b8151811061125557611255614a02565b60200260200101516001600160a01b031614611284576040516376c252e160e11b815260040160405180910390fd5b600061128e61292a565b60d454604051631e82ecdb60e31b81529192506001600160a01b03169063f41766d8906112c8908490600090889030904290600401615311565b6000604051808303816000875af11580156112e7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261097e91908101906153a6565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146113af5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610ec1565b50600080516020615c7e83398151915290565b6113ca612851565b6113d2612ac5565b60006113dc612b26565b905060d95481111561147c5760d25460d65460cc5460405163cd58657960e01b81526000600482018190526001600160a01b0393841660248301526044820186905291831660648201526001608482015260c060a482015260c481019190915291169063cd5865799060e4015b600060405180830381600087803b15801561146357600080fd5b505af1158015611477573d6000803e3d6000fd5b505050505b60cc546040518281526001600160a01b0390911690600080516020615c5e8339815191529060200160405180910390a250565b6114b7612eaa565b7f5e355369ceaccb04ff615500f99b96912ce9f237ed35ae521487c19064e2318d82826040516114e892919061513a565b60405180910390a160cc5460d25461150c916001600160a01b0390811691166130a7565b60ce8290558060d261151e828261522f565b505060cc54611085906001600160a01b03166111176020840184614572565b611545612851565b600060d4600101805461155790614908565b80601f016020809104026020016040519081016040528092919081815260200182805461158390614908565b80156115d05780601f106115a5576101008083540402835291602001916115d0565b820191906000526020600020905b8154815290600101906020018083116115b357829003601f168201915b50505050508060200190518101906115e891906149ce565b60cd5481519192506001600160a01b031690829060009061160b5761160b614a02565b60200260200101516001600160a01b03161461163a576040516376c252e160e11b815260040160405180910390fd5b60cc5481516001600160a01b0390911690829061165990600190614a2e565b8151811061166957611669614a02565b60200260200101516001600160a01b031614611698576040516376c252e160e11b815260040160405180910390fd5b60006116a261292a565b60d4546040516338ed173960e01b81529192506001600160a01b0316906338ed1739906116dc90849060009087903090429060040161547a565b6000604051808303816000875af11580156116fb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e2291908101906153a6565b60db602052600090815260409020805461173c90614908565b80601f016020809104026020016040519081016040528092919081815260200182805461176890614908565b80156117b55780601f1061178a576101008083540402835291602001916117b5565b820191906000526020600020905b81548152906001019060200180831161179857829003601f168201915b505050505081565b600082826040516020016117d2929190615054565b6040516020818303038152906040528051906020012090505b92915050565b6117f9612eaa565b61180360006132e1565b565b61180d612851565b600060d2600101805461181f90614908565b80601f016020809104026020016040519081016040528092919081815260200182805461184b90614908565b80156118985780601f1061186d57610100808354040283529160200191611898565b820191906000526020600020905b81548152906001019060200180831161187b57829003601f168201915b50505050508060200190518101906118b09190615506565b90506118ba612ac5565b60006118c4612b26565b905060d9548111156119405760d254825160208401516040516326ef699d60e01b81526001600160a01b03909316926326ef699d9261190d92909160d891908790600401615596565b600060405180830381600087803b15801561192757600080fd5b505af115801561193b573d6000803e3d6000fd5b505050505b60cc546040518281526001600160a01b0390911690600080516020615c5e833981519152906020015b60405180910390a25050565b600054610100900460ff16158080156119955750600054600160ff909116105b806119af5750303b1580156119af575060005460ff166001145b611a125760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610ec1565b6000805460ff191660011790558015611a35576000805461ff0019166101001790555b611a3d613333565b611a45613362565b611a4d613689565b604080516080810182523080825260006020830181905292820181905260609091019190915260ca805460ff60a01b199092166001600160a81b0319928316811790915560cb805490921617905560c9805460ff191690558015610f5e576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b60d4805460d580546001600160a01b039092169291611b0b90614908565b80601f0160208091040260200160405190810160405280929190818152602001828054611b3790614908565b8015611b845780601f10611b5957610100808354040283529160200191611b84565b820191906000526020600020905b815481529060010190602001808311611b6757829003601f168201915b5050505050905082565b611b96612851565b611b9e612ac5565b6000611ba8612b26565b905060d95481111561147c5760d25460d65460cc54604051636ce5768960e11b81526001600160a01b03928316600482015290821660248201526044810184905291169063d9caed1290606401611449565b611c02612851565b600060d46001018054611c1490614908565b80601f0160208091040260200160405190810160405280929190818152602001828054611c4090614908565b8015611c8d5780601f10611c6257610100808354040283529160200191611c8d565b820191906000526020600020905b815481529060010190602001808311611c7057829003601f168201915b5050505050806020019051810190611ca5919061564c565b90506000611cb282613992565b60cd5481519192506001600160a01b0316908290600090611cd557611cd5614a02565b60200260200101516001600160a01b031614611d04576040516376c252e160e11b815260040160405180910390fd5b60cc5481516001600160a01b03909116908290611d2390600190614a2e565b81518110611d3357611d33614a02565b60200260200101516001600160a01b031614611d62576040516376c252e160e11b815260040160405180910390fd5b6000611d6c61292a565b60d45490915061097e906001600160a01b0316848361299d565b611d8e612eaa565b8015611dff576040514790600090339083908381818185875af1925050503d8060008114611dd8576040519150601f19603f3d011682016040523d82523d6000602084013e611ddd565b606091505b505090508061097e57604051630dcf35db60e41b815260040160405180910390fd5b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a0823190602401602060405180830381865afa158015611e46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e6a9190615694565b9050610e226001600160a01b0384163383613a95565b611e88612851565b600060d46001018054611e9a90614908565b80601f0160208091040260200160405190810160405280929190818152602001828054611ec690614908565b8015611f135780601f10611ee857610100808354040283529160200191611f13565b820191906000526020600020905b815481529060010190602001808311611ef657829003601f168201915b5050505050806020019051810190611f2b91906149ce565b60cd5481519192506001600160a01b0316908290600090611f4e57611f4e614a02565b60200260200101516001600160a01b031614611f7d576040516376c252e160e11b815260040160405180910390fd5b60cc5481516001600160a01b039091169082906001908110611fa157611fa1614a02565b60200260200101516001600160a01b031614611fd0576040516376c252e160e11b815260040160405180910390fd5b6000611fda61292a565b60d45483519192506001600160a01b03169063df791e5090849060009061200357612003614a02565b60200260200101518460018151811061201e5761201e614a02565b60209081029190910101516040516001600160e01b031960e085901b1681526001600160a01b0392831660048201529116602482015260448101849052606401600060405180830381600087803b15801561207857600080fd5b505af115801561208c573d6000803e3d6000fd5b505050505050565b61209c612eaa565b8060d0610e2282826156ad565b60d6805460d780546001600160a01b0390921692916120c790614908565b80601f01602080910402602001604051908101604052809291908181526020018280546120f390614908565b80156121405780601f1061211557610100808354040283529160200191612140565b820191906000526020600020905b81548152906001019060200180831161212357829003601f168201915b50505050509080600201805461215590614908565b80601f016020809104026020016040519081016040528092919081815260200182805461218190614908565b80156121ce5780601f106121a3576101008083540402835291602001916121ce565b820191906000526020600020905b8154815290600101906020018083116121b157829003601f168201915b5050505050905083565b6121e0612851565b600060d260010180546121f290614908565b80601f016020809104026020016040519081016040528092919081815260200182805461221e90614908565b801561226b5780601f106122405761010080835404028352916020019161226b565b820191906000526020600020905b81548152906001019060200180831161224e57829003601f168201915b5050505050806020019051810190612283919061571c565b905061228d612ac5565b6000612297612b26565b905060d9548111156119405760d25460d6548351606085015160208601516040870151608088015160a08901516001600160a01b0397881697639f3307279716959493929189916000914291836122f084610e106157b5565b6040516001600160e01b031960e08f901b1681526001600160a01b039c8d166004820152602481019b909b529a90981660448a015260ff96871660648a0152948616608489015260a488019390935260c487019190915260e48601528216610104850152166101248301526101448201526101648101919091526101840161190d565b60d2805460d380546001600160a01b039092169291611b0b90614908565b612399612eaa565b6040518181527ff4f47d85dc8207b9d9c6dfd289d4f5008b33df899eda3da90658d75c351e54759060200160405180910390a160d955565b6123d9612851565b600060d460010180546123eb90614908565b80601f016020809104026020016040519081016040528092919081815260200182805461241790614908565b80156124645780601f1061243957610100808354040283529160200191612464565b820191906000526020600020905b81548152906001019060200180831161244757829003601f168201915b505050505080602001905181019061247c919061564c565b9050600061248982613992565b60cd5481519192506001600160a01b03169082906000906124ac576124ac614a02565b60200260200101516001600160a01b0316146124db576040516376c252e160e11b815260040160405180910390fd5b60cc5481516001600160a01b039091169082906124fa90600190614a2e565b8151811061250a5761250a614a02565b60200260200101516001600160a01b031614612539576040516376c252e160e11b815260040160405180910390fd5b600061254361292a565b60d45490915061097e906001600160a01b03168483613af8565b612565612eaa565b6001600160a01b0381166125ca5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ec1565b610f5e816132e1565b60dc602052600090815260409020805461173c90614908565b6125f4612851565b600060d2600101805461260690614908565b80601f016020809104026020016040519081016040528092919081815260200182805461263290614908565b801561267f5780601f106126545761010080835404028352916020019161267f565b820191906000526020600020905b81548152906001019060200180831161266257829003601f168201915b505050505080602001905181019061269791906157c8565b90506126a1612ac5565b60006126ab612b26565b905060d9548111156119405760d25460d65460cc546040516337e9a82760e11b81526004810185905263ffffffff861660248201526001600160a01b0392831660448201529082166064820152911690636fd3504e906084016020604051808303816000875af1158015612723573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061274791906157ee565b5060cc546040518281526001600160a01b0390911690600080516020615c5e83398151915290602001611969565b61277d612eaa565b60da5460ff166127c25760cc80546001600160a01b039384166001600160a01b03199182161790915560cd805492909316911617905560da805460ff19166001179055565b60cc54604080516001600160a01b03928316815291841660208301527f4239efeca0761c0d170bd15a6e85542dbe0376ba0f5f1551b39c6045866ff735910160405180910390a160cc5460d254612825916001600160a01b0390811691166130a7565b60cc80546001600160a01b0319166001600160a01b0384811691821790925560d2546110859216613136565b3330146118035760405163ea8e4eb560e01b815260040160405180910390fd5b60608160008151811061288657612886614a02565b60200260200101516040516020016128b6919060609190911b6bffffffffffffffffffffffff1916815260140190565b60408051601f19818403018152919052905060015b825181101561292457818382815181106128e7576128e7614a02565b6020026020010151604051602001612900929190615809565b6040516020818303038152906040529150808061291c90615840565b9150506128cb565b50919050565b60cd546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a08231906024015b602060405180830381865afa158015612974573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129989190615694565b905090565b6040805160a081018252838152306020820152428183015260608101839052600060808201819052915163c04b8d5960e01b81526001600160a01b0386169063c04b8d59906129f0908490600401615859565b6020604051808303816000875af1158015612a0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a339190615694565b9150505b9392505050565b604080518082019091526000808252602082015260d254604051633b6f743b60e01b81526001600160a01b0390911690633b6f743b90612a859085906000906004016158b1565b6040805180830381865afa158015612aa1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117eb91906158d5565b60cf54600090815260dc6020526040908190208151600481526024810192839052610f5e929091612af5916158f1565b6040519081900390206020820180516001600160e01b03166001600160e01b03199092169190911790523090613b45565b60cc546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401612957565b6060600083516001600160401b03811115612b7457612b7461458f565b604051908082528060200260200182016040528015612bda57816020015b612bc76040518060a0016040528060008019168152602001600081526020016000815260200160008152602001606081525090565b815260200190600190039081612b925790505b50905060005b8451811015612d585780600003612ca4576040518060a0016040528086600081518110612c0f57612c0f614a02565b602002602001015160000151815260200186600081518110612c3357612c33614a02565b602002602001015160200151815260200186600081518110612c5757612c57614a02565b60200260200101516040015181526020018581526020016040518060200160405280600081525081525082600081518110612c9457612c94614a02565b6020026020010181905250612d50565b6040518060a00160405280868381518110612cc157612cc1614a02565b6020026020010151600001518152602001868381518110612ce457612ce4614a02565b6020026020010151602001518152602001868381518110612d0757612d07614a02565b60200260200101516040015181526020016000815260200160405180602001604052806000815250815250828281518110612d4457612d44614a02565b60200260200101819052505b600101612be0565b509392505050565b6060600084516001600160401b03811115612d7d57612d7d61458f565b604051908082528060200260200182016040528015612da6578160200160208202803683370190505b50905060005b8551811015612e205780600003612de2578382600081518110612dd157612dd1614a02565b602002602001018181525050612e18565b60018651612df09190614a2e565b8103612e1857600019828281518110612e0b57612e0b614a02565b6020026020010181815250505b600101612dac565b5060405163945bcec960e01b81526001600160a01b0389169063945bcec990612e57908a908a908a908a9088904290600401615997565b6000604051808303816000875af1158015612e76573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612e9e91908101906153a6565b98975050505050505050565b6033546001600160a01b031633146118035760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610ec1565b610f5e612eaa565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615612f3f57610e2283613b89565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612f99575060408051601f3d908101601f19168201909252612f9691810190615694565b60015b612ffc5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610ec1565b600080516020615c7e833981519152811461306b5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610ec1565b50610e22838383613c25565b60ce54600090815260db6020526040908190208151600481526024810192839052610f5e929091612af5916158f1565b604051636eb1769f60e11b81523060048201526001600160a01b0382811660248301526000919084169063dd62ed3e90604401602060405180830381865afa1580156130f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061311b9190615694565b1115611085576110856001600160a01b038316826000613c4a565b604051636eb1769f60e11b81523060048201526001600160a01b03828116602483015283169063dd62ed3e90604401602060405180830381865afa158015613182573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131a69190615694565b600003611085576110856001600160a01b03831682600019613c4a565b60606000825160016131d591906157b5565b6001600160401b038111156131ec576131ec61458f565b604051908082528060200260200182016040528015613215578160200160208202803683370190505b5090508260008151811061322b5761322b614a02565b6020026020010151600001518160008151811061324a5761324a614a02565b60200260200101906001600160a01b031690816001600160a01b03168152505060005b83518110156132da5783818151811061328857613288614a02565b602002602001015160200151828260016132a291906157b5565b815181106132b2576132b2614a02565b6001600160a01b03909216602092830291909101909101526132d381615840565b905061326d565b5092915050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff1661335a5760405162461bcd60e51b8152600401610ec190615ab0565b611803613d5f565b6040518060400160405280600e81526020016d627269646765436972636c65282960901b81525060db60006040516020016133b790602080825260069082015265434952434c4560d01b604082015260600190565b60405160208183030381529060405280519060200120815260200190815260200160002090816133e79190615afb565b506040518060400160405280601081526020016f6272696467655374617267617465282960801b81525060db600060405160200161344190602080825260089082015267535441524741544560c01b604082015260600190565b60405160208183030381529060405280519060200120815260200190815260200160002090816134719190615afb565b506040518060400160405280600e81526020016d6272696467654178656c6172282960901b81525060db60006040516020016134c79060208082526006908201526520ac22a620a960d11b604082015260600190565b60405160208183030381529060405280519060200120815260200190815260200160002090816134f79190615afb565b506040518060400160405280600f81526020016e62726964676553796e61707365282960881b81525060db600060405160200161354f9060208082526007908201526653594e4150534560c81b604082015260600190565b604051602081830303815290604052805190602001208152602001908152602001600020908161357f9190615afb565b506040518060400160405280600d81526020016c6272696467657a6b45564d282960981b81525060db60006040516020016135d3906020808252600590820152647a6b45564d60d81b604082015260600190565b60405160208183030381529060405280519060200120815260200190815260200160002090816136039190615afb565b506040518060400160405280600e81526020016d6272696467657a6b53796e63282960901b81525060db6000604051602001613659906020808252600690820152657a6b53594e4360d01b604082015260600190565b6040516020818303038152906040528051906020012081526020019081526020016000209081610f5e9190615afb565b6040518060400160405280600b81526020016a73776170556e695632282960a81b81525060dc60006040516020016136df906020808252600a90820152692aa724a9aba0a82fab1960b11b604082015260600190565b604051602081830303815290604052805190602001208152602001908152602001600020908161370f9190615afb565b506040518060400160405280600d81526020016c73776170536f6c69646c79282960981b81525060dc600060405160200161376590602080825260079082015266534f4c49444c5960c81b604082015260600190565b60405160208183030381529060405280519060200120815260200190815260200160002090816137959190615afb565b506040518060400160405280600b81526020016a73776170556e695633282960a81b81525060dc60006040516020016137ec906020808252600a9082015269554e49535741505f563360b01b604082015260600190565b604051602081830303815290604052805190602001208152602001908152602001600020908161381c9190615afb565b506040518060400160405280601381526020017273776170556e695633446561646c696e65282960681b81525060dc600060405160200161388490602080825260139082015272554e49535741505f56335f444541444c494e4560681b604082015260600190565b60405160208183030381529060405280519060200120815260200190815260200160002090816138b49190615afb565b506040518060400160405280600d81526020016c73776170416c6765627261282960981b81525060dc600060405160200161390a90602080825260079082015266414c474542524160c81b604082015260600190565b604051602081830303815290604052805190602001208152602001908152602001600020908161393a9190615afb565b506040518060400160405280600e81526020016d7377617042616c616e636572282960901b81525060dc6000604051602001613659906020808252600890820152672120a620a721a2a960c11b604082015260600190565b6060600061399f83613d8f565b905060006139ae8260016157b5565b6001600160401b038111156139c5576139c561458f565b6040519080825280602002602001820160405280156139ee578160200160208202803683370190505b50905060005b82811015612d5857600080613a0887613db5565b509150915081848481518110613a2057613a20614a02565b6001600160a01b03909216602092830291909101909101528084613a458560016157b5565b81518110613a5557613a55614a02565b60200260200101906001600160a01b031690816001600160a01b031681525050613a7e87613df1565b965050508080613a8d90615840565b9150506139f4565b6040516001600160a01b038316602482015260448101829052610e2290849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152613e22565b60408051608081018252838152306020820152808201839052600060608201819052915163b858183f60e01b81526001600160a01b0386169063b858183f906129f0908490600401615bb4565b6060612a37838360006040518060400160405280601e81526020017f416464726573733a206c6f772d6c6576656c2063616c6c206661696c65640000815250613ef7565b6001600160a01b0381163b613bf65760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610ec1565b600080516020615c7e83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b613c2e83613fd4565b600082511180613c3b5750805b15610e225761097e8383614014565b801580613cc45750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa158015613c9e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613cc29190615694565b155b613d2f5760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b6064820152608401610ec1565b6040516001600160a01b038316602482015260448101829052610e2290849063095ea7b360e01b90606401613ac1565b600054610100900460ff16613d865760405162461bcd60e51b8152600401610ec190615ab0565b611803336132e1565b6000613d9d600360146157b5565b60148351613dab9190614a2e565b6117eb9190615c02565b60008080613dc38482614039565b9250613dd08460146140ed565b9050613de8613de1600360146157b5565b8590614039565b91509193909250565b60606117eb613e02600360146157b5565b613e0e600360146157b5565b8451613e1a9190614a2e565b849190614198565b6000613e77826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166142ef9092919063ffffffff16565b9050805160001480613e98575080806020019051810190613e989190615c24565b610e225760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610ec1565b606082471015613f585760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610ec1565b600080866001600160a01b03168587604051613f749190615c41565b60006040518083038185875af1925050503d8060008114613fb1576040519150601f19603f3d011682016040523d82523d6000602084013e613fb6565b606091505b5091509150613fc7878383876142fe565b925050505b949350505050565b613fdd81613b89565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060612a378383604051806060016040528060278152602001615c9e60279139614377565b6000816140478160146157b5565b101561408a5760405162461bcd60e51b8152602060048201526012602482015271746f416464726573735f6f766572666c6f7760701b6044820152606401610ec1565b6140958260146157b5565b835110156140dd5760405162461bcd60e51b8152602060048201526015602482015274746f416464726573735f6f75744f66426f756e647360581b6044820152606401610ec1565b500160200151600160601b900490565b6000816140fb8160036157b5565b101561413d5760405162461bcd60e51b8152602060048201526011602482015270746f55696e7432345f6f766572666c6f7760781b6044820152606401610ec1565b6141488260036157b5565b8351101561418f5760405162461bcd60e51b8152602060048201526014602482015273746f55696e7432345f6f75744f66426f756e647360601b6044820152606401610ec1565b50016003015190565b6060816141a681601f6157b5565b10156141e55760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606401610ec1565b826141f083826157b5565b101561422f5760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606401610ec1565b61423982846157b5565b8451101561427d5760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b6044820152606401610ec1565b60608215801561429c57604051915060008252602082016040526142e6565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156142d55780518352602092830192016142bd565b5050858452601f01601f1916604052505b50949350505050565b6060613fcc8484600085613ef7565b6060831561436d578251600003614366576001600160a01b0385163b6143665760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610ec1565b5081613fcc565b613fcc83836143ef565b6060600080856001600160a01b0316856040516143949190615c41565b600060405180830381855af49150503d80600081146143cf576040519150601f19603f3d011682016040523d82523d6000602084013e6143d4565b606091505b50915091506143e5868383876142fe565b9695505050505050565b8151156143ff5781518083602001fd5b8060405162461bcd60e51b8152600401610ec191906147c9565b60008083601f84011261442b57600080fd5b5081356001600160401b0381111561444257600080fd5b60208301915083602082850101111561445a57600080fd5b9250929050565b60008060006040848603121561447657600080fd5b8335925060208401356001600160401b0381111561449357600080fd5b61449f86828701614419565b9497909650939450505050565b60006060828403121561292457600080fd5b6000602082840312156144d057600080fd5b81356001600160401b038111156144e657600080fd5b613fcc848285016144ac565b6000806000806040858703121561450857600080fd5b84356001600160401b038082111561451f57600080fd5b61452b88838901614419565b9096509450602087013591508082111561454457600080fd5b5061455187828801614419565b95989497509550505050565b6001600160a01b0381168114610f5e57600080fd5b60006020828403121561458457600080fd5b8135612a378161455d565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156145c7576145c761458f565b60405290565b604051606081016001600160401b03811182821017156145c7576145c761458f565b604051601f8201601f191681016001600160401b03811182821017156146175761461761458f565b604052919050565b60006001600160401b038211156146385761463861458f565b50601f01601f191660200190565b6000806040838503121561465957600080fd5b82356146648161455d565b915060208301356001600160401b0381111561467f57600080fd5b8301601f8101851361469057600080fd5b80356146a361469e8261461f565b6145ef565b8181528660208385010111156146b857600080fd5b816020840160208301376000602083830101528093505050509250929050565b60006040828403121561292457600080fd5b600080604083850312156146fd57600080fd5b8235915060208301356001600160401b0381111561471a57600080fd5b614726858286016146d8565b9150509250929050565b6002811061474e57634e487b7160e01b600052602160045260246000fd5b9052565b602081016117eb8284614730565b60006020828403121561477257600080fd5b5035919050565b60005b8381101561479457818101518382015260200161477c565b50506000910152565b600081518084526147b5816020860160208601614779565b601f01601f19169290920160200192915050565b602081526000612a37602083018461479d565b600080602083850312156147ef57600080fd5b82356001600160401b0381111561480557600080fd5b61481185828601614419565b90969095509350505050565b6001600160a01b0383168152604060208201819052600090613fcc9083018461479d565b8015158114610f5e57600080fd5b6000806040838503121561486257600080fd5b823561486d8161455d565b9150602083013561487d81614841565b809150509250929050565b60006060828403121561489a57600080fd5b612a3783836144ac565b6001600160a01b03841681526060602082018190526000906148c89083018561479d565b82810360408401526143e5818561479d565b600080604083850312156148ed57600080fd5b82356148f88161455d565b9150602083013561487d8161455d565b600181811c9082168061491c57607f821691505b60208210810361292457634e487b7160e01b600052602260045260246000fd5b60006001600160401b038211156149555761495561458f565b5060051b60200190565b600082601f83011261497057600080fd5b8151602061498061469e8361493c565b82815260059290921b8401810191818101908684111561499f57600080fd5b8286015b848110156149c35780516149b68161455d565b83529183019183016149a3565b509695505050505050565b6000602082840312156149e057600080fd5b81516001600160401b038111156149f657600080fd5b613fcc8482850161495f565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b818103818111156117eb576117eb614a18565b600060808284031215614a5357600080fd5b604051608081018181106001600160401b0382111715614a7557614a7561458f565b604052825161ffff81168114614a8a57600080fd5b808252506020830151602082015260408301516040820152606083015160608201528091505092915050565b63ffffffff81511682526020810151602083015260408101516040830152606081015160608301526000608082015160e06080850152614af960e085018261479d565b905060a083015184820360a0860152614b12828261479d565b91505060c083015184820360c0860152614b2c828261479d565b95945050505050565b608081526000614b486080830186614ab6565b8451602084810191909152909401516040830152506001600160a01b0391909116606090910152919050565b80516001600160401b0381168114614b8b57600080fd5b919050565b600060408284031215614ba257600080fd5b614baa6145a5565b9050815181526020820151602082015292915050565b60008082840360c0811215614bd457600080fd5b6080811215614be257600080fd5b50614beb6145cd565b83518152614bfb60208501614b74565b6020820152614c0d8560408601614b90565b60408201529150614c218460808501614b90565b90509250929050565b6000806040808486031215614c3e57600080fd5b83516001600160401b0380821115614c5557600080fd5b818601915086601f830112614c6957600080fd5b81516020614c7961469e8361493c565b8281526060928302850182019282820191908b851115614c9857600080fd5b958301955b84871015614ce05780878d031215614cb55760008081fd5b614cbd6145cd565b875181528488015185820152888801518982015283529586019591830191614c9d565b5091890151919750909450505080831115614cfa57600080fd5b50506147268582860161495f565b601f821115610e2257600081815260208120601f850160051c81016020861015614d2f5750805b601f850160051c820191505b8181101561208c57828155600101614d3b565b600019600383901b1c191660019190911b1790565b6001600160401b03831115614d7a57614d7a61458f565b614d8e83614d888354614908565b83614d08565b6000601f841160018114614dbc5760008515614daa5750838201355b614db48682614d4e565b845550610dae565b600083815260209020601f19861690835b82811015614ded5786850135825560209485019460019092019101614dcd565b5086821015614e0a5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b6000808335601e19843603018112614e3357600080fd5b83016020810192503590506001600160401b03811115614e5257600080fd5b80360382131561445a57600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6020815260008235614e9b8161455d565b6001600160a01b0316602083810191909152614eb990840184614e1c565b60606040850152614ece608085018284614e61565b915050614ede6040850185614e1c565b848303601f190160608601526143e5838284614e61565b80546001600160a01b0319166001600160a01b0392909216919091179055565b6000808335601e19843603018112614f2c57600080fd5b8301803591506001600160401b03821115614f4657600080fd5b60200191503681900382131561445a57600080fd5b8135614f668161455d565b614f708183614ef5565b5060018082016020614f8481860186614f15565b6001600160401b03811115614f9b57614f9b61458f565b614faf81614fa98654614908565b86614d08565b6000601f821160018114614fdd5760008315614fcb5750838201355b614fd58482614d4e565b875550615032565b600086815260209020601f19841690835b8281101561500b5786850135825593870193908901908701614fee565b50848210156150285760001960f88660031b161c19848701351681555b50508683881b0186555b505050505050506150466040830183614f15565b61097e818360028601614d63565b602081526000613fcc602083018486614e61565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6000813561510d8161455d565b6001600160a01b031683526151256020830183614e1c565b60406020860152614b2c604086018284614e61565b828152604060208201526000613fcc6040830184615100565b813561515e8161455d565b6151688183614ef5565b506001808201602061517c81860186614f15565b6001600160401b038111156151935761519361458f565b6151a181614fa98654614908565b6000601f8211600181146151cf57600083156151bd5750838201355b6151c78482614d4e565b875550615224565b600086815260209020601f19841690835b828110156151fd57868501358255938701939089019087016151e0565b508482101561521a5760001960f88660031b161c19848701351681555b50508683881b0186555b505050505050505050565b6110858282615153565b6000602080838503121561524c57600080fd5b82516001600160401b0381111561526257600080fd5b8301601f8101851361527357600080fd5b805161528161469e8261493c565b818152606091820283018401918482019190888411156152a057600080fd5b938501935b838510156153055780858a0312156152bd5760008081fd5b6152c56145cd565b85516152d08161455d565b8152858701516152df8161455d565b818801526040868101516152f281614841565b90820152835293840193918501916152a5565b50979650505050505050565b600060a0820187835260208781850152604060a08186015282885180855260c087019150838a01945060005b8181101561537a57855180516001600160a01b0390811685528682015116868501528401511515848401529484019460609092019160010161533d565b50506001600160a01b0388166060870152935061539692505050565b8260808301529695505050505050565b600060208083850312156153b957600080fd5b82516001600160401b038111156153cf57600080fd5b8301601f810185136153e057600080fd5b80516153ee61469e8261493c565b81815260059190911b8201830190838101908783111561540d57600080fd5b928401925b8284101561542b57835182529284019290840190615412565b979650505050505050565b600081518084526020808501945080840160005b8381101561546f5781516001600160a01b03168752958201959082019060010161544a565b509495945050505050565b85815284602082015260a06040820152600061549960a0830186615436565b6001600160a01b0394909416606083015250608001529392505050565b60006154c461469e8461461f565b90508281528383830111156154d857600080fd5b612a37836020830184614779565b600082601f8301126154f757600080fd5b612a37838351602085016154b6565b60006020828403121561551857600080fd5b81516001600160401b038082111561552f57600080fd5b908301906040828603121561554357600080fd5b61554b6145a5565b82518281111561555a57600080fd5b615566878286016154e6565b82525060208301518281111561557b57600080fd5b615587878286016154e6565b60208301525095945050505050565b6080815260006155a9608083018761479d565b602083820381850152600087546155bf81614908565b808552600182811680156155da57600181146155f457615622565b60ff1984168787015282151560051b870186019450615622565b8b6000528560002060005b8481101561561a5781548982018901529083019087016155ff565b880187019550505b505050508481036040860152615638818861479d565b935050505082606083015295945050505050565b60006020828403121561565e57600080fd5b81516001600160401b0381111561567457600080fd5b8201601f8101841361568557600080fd5b613fcc848251602084016154b6565b6000602082840312156156a657600080fd5b5051919050565b81356156b881614841565b815460ff19811691151560ff16918217835560208401356156d88161455d565b6001600160a81b03199190911690911760089190911b610100600160a81b03161781556040919091013560019190910155565b805160ff81168114614b8b57600080fd5b600060c0828403121561572e57600080fd5b60405160c081018181106001600160401b03821117156157505761575061458f565b604052825181526157636020840161570b565b60208201526157746040840161570b565b604082015260608301516157878161455d565b60608201526157986080840161570b565b60808201526157a960a0840161570b565b60a08201529392505050565b808201808211156117eb576117eb614a18565b6000602082840312156157da57600080fd5b815163ffffffff81168114612a3757600080fd5b60006020828403121561580057600080fd5b612a3782614b74565b6000835161581b818460208801614779565b60609390931b6bffffffffffffffffffffffff19169190920190815260140192915050565b60006001820161585257615852614a18565b5060010190565b602081526000825160a0602084015261587560c084018261479d565b905060018060a01b0360208501511660408401526040840151606084015260608401516080840152608084015160a08401528091505092915050565b6040815260006158c46040830185614ab6565b905082151560208301529392505050565b6000604082840312156158e757600080fd5b612a378383614b90565b60008083546158ff81614908565b60018281168015615917576001811461592c5761595b565b60ff198416875282151583028701945061595b565b8760005260208060002060005b858110156159525781548a820152908401908201615939565b50505082870194505b50929695505050505050565b600081518084526020808501945080840160005b8381101561546f5781518752958201959082019060010161597b565b60006101208083016159a9848b614730565b60208481019290925288519081905261014080850192600583901b8601909101918a820160005b82811015615a335787850361013f190186528151805186528481015185870152604080820151908701526060808201519087015260809081015160a091870182905290615a1f8188018361479d565b9786019796505050908301906001016159d0565b505050508381036040850152615a498189615436565b915050615a89606084018780516001600160a01b039081168352602080830151151590840152604080830151909116908301526060908101511515910152565b82810360e0840152615a9b8186615967565b91505082610100830152979650505050505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b81516001600160401b03811115615b1457615b1461458f565b615b2881615b228454614908565b84614d08565b602080601f831160018114615b575760008415615b455750858301515b615b4f8582614d4e565b86555061208c565b600085815260208120601f198616915b82811015615b8657888601518255948401946001909101908401615b67565b5085821015615ba45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b602081526000825160806020840152615bd060a084018261479d565b905060018060a01b03602085015116604084015260408401516060840152606084015160808401528091505092915050565b600082615c1f57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215615c3657600080fd5b8151612a3781614841565b60008251615c53818460208701614779565b919091019291505056fe48b87fc02925b37a6aefac60c14fa9d8e9988d7dfadf262d4bd845872ca40730360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220322ee705cb157873ee2cb23ebb87e56f1b874d9ebf25e0160eb5bf3dadd94dd764736f6c63430008130033