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)
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
0x60a06040523060805234801561001457600080fd5b50608051615e506200004d60003960008181610e6801528181610eb101528181610fb801528181610ff801526113110152615e506000f3fe60806040526004361061026b5760003560e01c8063873d80ec11610144578063c89f2ce4116100b6578063ee63c1e51161007a578063ee63c1e51461073f578063f1a392da14610754578063f2fde38b1461076a578063f3f1a71a1461078a578063fe8d1ab0146107aa578063ff33d21f146107bf57600080fd5b8063c89f2ce414610660578063ca325469146106d1578063cc5ea4ef146106f5578063d49b64081461070a578063d7d66e711461071f57600080fd5b8063b54653fb11610108578063b54653fb1461058c578063b9f39147146105e0578063bac86af5146105f5578063bce4547a14610615578063c3c224751461062a578063c4b00c4f1461064057600080fd5b8063873d80ec1461050a5780638da5cb5b1461052d578063943f8e961461054b5780639c345b9f14610561578063a5131aaa1461057757600080fd5b80635109d8b6116101dd5780636ae40711116101a15780636ae40711146104695780636d0a68911461047e57806370c75107146104ab578063715018a6146104cb578063748b3c05146104e05780638129fc1c146104f557600080fd5b80635109d8b6146103d557806352d1902d146103ea578063530728d51461040d57806364e510a114610422578063671f6a261461044257600080fd5b806322be3de11161022f57806322be3de11461032d578063284eb6631461034d5780633659cfe61461036d5780634641257d1461038d5780634f1ef286146103a25780635066a747146103b557600080fd5b80630278fb8a14610291578063057d1ae3146102a65780630d1f7833146102bb57806311b0b42d146102d05780631610ee401461030d57600080fd5b3661028c5760cd546001600160a01b0316331461028a5761028a614625565b005b600080fd5b34801561029d57600080fd5b5061028a6107df565b3480156102b257600080fd5b5061028a610971565b3480156102c757600080fd5b5061028a610bd6565b3480156102dc57600080fd5b5060cd546102f0906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561031957600080fd5b5061028a61032836600461464d565b610dbb565b34801561033957600080fd5b5060cc546102f0906001600160a01b031681565b34801561035957600080fd5b5061028a6103683660046146c9565b610e0c565b34801561037957600080fd5b5061028a610388366004614749565b610e5e565b34801561039957600080fd5b5061028a610f46565b61028a6103b03660046147fb565b610fae565b3480156103c157600080fd5b5061028a6103d036600461489f565b61107e565b3480156103e157600080fd5b5061028a611111565b3480156103f657600080fd5b506103ff611304565b604051908152602001610304565b34801561041957600080fd5b5061028a6113b7565b34801561042e57600080fd5b5061028a61043d36600461489f565b6114a4565b34801561044e57600080fd5b5060c95461045c9060ff1681565b6040516103049190614907565b34801561047557600080fd5b5061028a611532565b34801561048a57600080fd5b5061049e610499366004614915565b611718565b604051610304919061497e565b3480156104b757600080fd5b506103ff6104c6366004614991565b6117b2565b3480156104d757600080fd5b5061028a6117e6565b3480156104ec57600080fd5b5061028a6117fa565b34801561050157600080fd5b5061028a61196a565b34801561051657600080fd5b5061051f611ae2565b6040516103049291906149d2565b34801561053957600080fd5b506033546001600160a01b03166102f0565b34801561055757600080fd5b506103ff60cf5481565b34801561056d57600080fd5b506103ff60ce5481565b34801561058357600080fd5b5061028a611b83565b34801561059857600080fd5b5060d05460d1546105bb9160ff8116916101009091046001600160a01b03169083565b6040805193151584526001600160a01b03909216602084015290820152606001610304565b3480156105ec57600080fd5b5061028a611bef565b34801561060157600080fd5b5061028a610610366004614a04565b611d7b565b34801561062157600080fd5b5061028a611e75565b34801561063657600080fd5b506103ff60d95481565b34801561064c57600080fd5b5061028a61065b366004614a3d565b612089565b34801561066c57600080fd5b5060ca5460cb5461069c916001600160a01b038082169260ff600160a01b93849004811693928216929091041684565b60405161030494939291906001600160a01b039485168152921515602084015292166040820152901515606082015260800190565b3480156106dd57600080fd5b506106e661209e565b60405161030493929190614a59565b34801561070157600080fd5b5061028a6121cd565b34801561071657600080fd5b5061051f612368565b34801561072b57600080fd5b5061028a61073a366004614915565b612386565b34801561074b57600080fd5b5061028a6123c6565b34801561076057600080fd5b506103ff60dd5481565b34801561077657600080fd5b5061028a610785366004614749565b612552565b34801561079657600080fd5b5061049e6107a5366004614915565b6125c8565b3480156107b657600080fd5b5061028a6125e1565b3480156107cb57600080fd5b5061028a6107da366004614a8f565b61276a565b6107e7612846565b600060d460010180546107f990614abd565b80601f016020809104026020016040519081016040528092919081815260200182805461082590614abd565b80156108725780601f1061084757610100808354040283529160200191610872565b820191906000526020600020905b81548152906001019060200180831161085557829003601f168201915b505050505080602001905181019061088a9190614b83565b60cd5481519192506001600160a01b03169082906000906108ad576108ad614bb7565b60200260200101516001600160a01b0316146108dc576040516376c252e160e11b815260040160405180910390fd5b60cc5481516001600160a01b039091169082906108fb90600190614be3565b8151811061090b5761090b614bb7565b60200260200101516001600160a01b03161461093a576040516376c252e160e11b815260040160405180910390fd5b600061094582612866565b9050600061095161291f565b60d45490915061096b906001600160a01b03168383612992565b50505050565b610979612846565b600060d2600101805461098b90614abd565b80601f01602080910402602001604051908101604052809291908181526020018280546109b790614abd565b8015610a045780601f106109d957610100808354040283529160200191610a04565b820191906000526020600020905b8154815290600101906020018083116109e757829003601f168201915b5050505050806020019051810190610a1c9190614bf6565b905060006040518060600160405280836020015181526020016000815260200160405180604001604052806002815260200161060f60f31b81525081525090506000610afa836000015160d66001018054610a7690614abd565b80601f0160208091040260200160405190810160405280929190818152602001828054610aa290614abd565b8015610aef5780601f10610ac457610100808354040283529160200191610aef565b820191906000526020600020905b815481529060010190602001808311610ad257829003601f168201915b505050505084612a33565b9050610b0581612ab4565b610b0d612b27565b6000610b17612b88565b905060d954811115610ba05760d2548451604080870151606088015191516327efc43f60e21b81526001600160a01b0390941693639fbf10fc938793610b6d939192309089906000908d9060d790600401614d11565b6000604051808303818588803b158015610b8657600080fd5b505af1158015610b9a573d6000803e3d6000fd5b50505050505b60cc546040518281526001600160a01b0390911690600080516020615db48339815191529060200160405180910390a250505050565b610bde612846565b60008060d46001018054610bf190614abd565b80601f0160208091040260200160405190810160405280929190818152602001828054610c1d90614abd565b8015610c6a5780601f10610c3f57610100808354040283529160200191610c6a565b820191906000526020600020905b815481529060010190602001808311610c4d57829003601f168201915b5050505050806020019051810190610c829190614d8b565b60cd5481519294509092506001600160a01b0316908290600090610ca857610ca8614bb7565b60200260200101516001600160a01b031614610cd7576040516376c252e160e11b815260040160405180910390fd5b60cc5481516001600160a01b03909116908290610cf690600190614be3565b81518110610d0657610d06614bb7565b60200260200101516001600160a01b031614610d35576040516376c252e160e11b815260040160405180910390fd5b6000610d3f61291f565b90506000610d4d8483612bb9565b60d45460c9546040805160808101825260ca546001600160a01b03808216835260ff600160a01b9283900481161515602085015260cb548083169585019590955291909304811615156060830152949550610db49491909316929116908490879087612dc2565b5050505050565b610dc3612f0c565b7f518f47fcfba5d9b707c3387a7fa4301136192d8091a43ea13ae8db7275ab5d3a81604051610df29190614ed7565b60405180910390a18060d6610e0782826150bc565b505050565b610e14612f0c565b818160dc60008787604051602001610e2d9291906151b5565b6040516020818303038152906040528051906020012081526020019081526020016000209182610db4929190615003565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610eaf5760405162461bcd60e51b8152600401610ea6906151c9565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610ef8600080516020615dd4833981519152546001600160a01b031690565b6001600160a01b031614610f1e5760405162461bcd60e51b8152600401610ea690615215565b610f2781612f66565b60408051600080825260208201909252610f4391839190612f6e565b50565b610f4e6130d9565b610f5661314a565b7f8e55ccfc9778ff8eba1646d765cf1982537ce0f9257054a17b48aad745250183610f7f61291f565b60405190815260200160405180910390a16000610f9a61291f565b1115610fa857610fa8613283565b4260dd55565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610ff65760405162461bcd60e51b8152600401610ea6906151c9565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661103f600080516020615dd4833981519152546001600160a01b031690565b6001600160a01b0316146110655760405162461bcd60e51b8152600401610ea690615215565b61106e82612f66565b61107a82826001612f6e565b5050565b611086612f0c565b7f25f7dd6fc737add5174192a11292dfd270c1397f9c4f641fb6336a208b5efbed82826040516110b79291906152a4565b60405180910390a160cd5460d4546110db916001600160a01b0390811691166132b3565b60cf8290558060d46110ed8282615399565b505060cd5461107a906001600160a01b031661110c6020840184614749565b613342565b611119612846565b600060d4600101805461112b90614abd565b80601f016020809104026020016040519081016040528092919081815260200182805461115790614abd565b80156111a45780601f10611179576101008083540402835291602001916111a4565b820191906000526020600020905b81548152906001019060200180831161118757829003601f168201915b50505050508060200190518101906111bc91906153a3565b905060006111c9826133cf565b60cd5481519192506001600160a01b03169082906000906111ec576111ec614bb7565b60200260200101516001600160a01b03161461121b576040516376c252e160e11b815260040160405180910390fd5b60cc5481516001600160a01b0390911690829061123a90600190614be3565b8151811061124a5761124a614bb7565b60200260200101516001600160a01b031614611279576040516376c252e160e11b815260040160405180910390fd5b600061128361291f565b60d454604051631e82ecdb60e31b81529192506001600160a01b03169063f41766d8906112bd90849060009088903090429060040161547b565b6000604051808303816000875af11580156112dc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261096b9190810190615510565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146113a45760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610ea6565b50600080516020615dd483398151915290565b6113bf612846565b6113c7612b27565b60006113d1612b88565b905060d9548111156114715760d25460d65460cc5460405163cd58657960e01b81526000600482018190526001600160a01b0393841660248301526044820186905291831660648201526001608482015260c060a482015260c481019190915291169063cd5865799060e4015b600060405180830381600087803b15801561145857600080fd5b505af115801561146c573d6000803e3d6000fd5b505050505b60cc546040518281526001600160a01b0390911690600080516020615db48339815191529060200160405180910390a250565b6114ac612f0c565b7f5e355369ceaccb04ff615500f99b96912ce9f237ed35ae521487c19064e2318d82826040516114dd9291906152a4565b60405180910390a160cc5460d254611501916001600160a01b0390811691166132b3565b60ce8290558060d26115138282615399565b505060cc5461107a906001600160a01b031661110c6020840184614749565b61153a612846565b600060d4600101805461154c90614abd565b80601f016020809104026020016040519081016040528092919081815260200182805461157890614abd565b80156115c55780601f1061159a576101008083540402835291602001916115c5565b820191906000526020600020905b8154815290600101906020018083116115a857829003601f168201915b50505050508060200190518101906115dd9190614b83565b60cd5481519192506001600160a01b031690829060009061160057611600614bb7565b60200260200101516001600160a01b03161461162f576040516376c252e160e11b815260040160405180910390fd5b60cc5481516001600160a01b0390911690829061164e90600190614be3565b8151811061165e5761165e614bb7565b60200260200101516001600160a01b03161461168d576040516376c252e160e11b815260040160405180910390fd5b600061169761291f565b60d4546040516338ed173960e01b81529192506001600160a01b0316906338ed1739906116d19084906000908790309042906004016155e4565b6000604051808303816000875af11580156116f0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e079190810190615510565b60db602052600090815260409020805461173190614abd565b80601f016020809104026020016040519081016040528092919081815260200182805461175d90614abd565b80156117aa5780601f1061177f576101008083540402835291602001916117aa565b820191906000526020600020905b81548152906001019060200180831161178d57829003601f168201915b505050505081565b600082826040516020016117c79291906151b5565b6040516020818303038152906040528051906020012090505b92915050565b6117ee612f0c565b6117f860006134ed565b565b611802612846565b600060d2600101805461181490614abd565b80601f016020809104026020016040519081016040528092919081815260200182805461184090614abd565b801561188d5780601f106118625761010080835404028352916020019161188d565b820191906000526020600020905b81548152906001019060200180831161187057829003601f168201915b50505050508060200190518101906118a59190615670565b90506118af612b27565b60006118b9612b88565b905060d9548111156119355760d254825160208401516040516326ef699d60e01b81526001600160a01b03909316926326ef699d9261190292909160d891908790600401615716565b600060405180830381600087803b15801561191c57600080fd5b505af1158015611930573d6000803e3d6000fd5b505050505b60cc546040518281526001600160a01b0390911690600080516020615db4833981519152906020015b60405180910390a25050565b600054610100900460ff161580801561198a5750600054600160ff909116105b806119a45750303b1580156119a4575060005460ff166001145b611a075760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610ea6565b6000805460ff191660011790558015611a2a576000805461ff0019166101001790555b611a3261353f565b611a3a61356e565b611a42613895565b604080516080810182523080825260006020830181905292820181905260609091019190915260ca805460ff60a01b199092166001600160a81b0319928316811790915560cb805490921617905560c9805460ff191690558015610f43576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b60d4805460d580546001600160a01b039092169291611b0090614abd565b80601f0160208091040260200160405190810160405280929190818152602001828054611b2c90614abd565b8015611b795780601f10611b4e57610100808354040283529160200191611b79565b820191906000526020600020905b815481529060010190602001808311611b5c57829003601f168201915b5050505050905082565b611b8b612846565b611b93612b27565b6000611b9d612b88565b905060d9548111156114715760d25460d65460cc54604051636ce5768960e11b81526001600160a01b03928316600482015290821660248201526044810184905291169063d9caed129060640161143e565b611bf7612846565b600060d46001018054611c0990614abd565b80601f0160208091040260200160405190810160405280929190818152602001828054611c3590614abd565b8015611c825780601f10611c5757610100808354040283529160200191611c82565b820191906000526020600020905b815481529060010190602001808311611c6557829003601f168201915b5050505050806020019051810190611c9a9190615761565b90506000611ca782613b9e565b60cd5481519192506001600160a01b0316908290600090611cca57611cca614bb7565b60200260200101516001600160a01b031614611cf9576040516376c252e160e11b815260040160405180910390fd5b60cc5481516001600160a01b03909116908290611d1890600190614be3565b81518110611d2857611d28614bb7565b60200260200101516001600160a01b031614611d57576040516376c252e160e11b815260040160405180910390fd5b6000611d6161291f565b60d45490915061096b906001600160a01b03168483612992565b611d83612f0c565b8015611df4576040514790600090339083908381818185875af1925050503d8060008114611dcd576040519150601f19603f3d011682016040523d82523d6000602084013e611dd2565b606091505b505090508061096b57604051630dcf35db60e41b815260040160405180910390fd5b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a0823190602401602060405180830381865afa158015611e3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e5f91906157a9565b9050610e076001600160a01b0384163383613ca1565b611e7d612846565b600060d46001018054611e8f90614abd565b80601f0160208091040260200160405190810160405280929190818152602001828054611ebb90614abd565b8015611f085780601f10611edd57610100808354040283529160200191611f08565b820191906000526020600020905b815481529060010190602001808311611eeb57829003601f168201915b5050505050806020019051810190611f209190614b83565b60cd5481519192506001600160a01b0316908290600090611f4357611f43614bb7565b60200260200101516001600160a01b031614611f72576040516376c252e160e11b815260040160405180910390fd5b60cc5481516001600160a01b039091169082906001908110611f9657611f96614bb7565b60200260200101516001600160a01b031614611fc5576040516376c252e160e11b815260040160405180910390fd5b6000611fcf61291f565b60d45483519192506001600160a01b03169063df791e50908490600090611ff857611ff8614bb7565b60200260200101518460018151811061201357612013614bb7565b60209081029190910101516040516001600160e01b031960e085901b1681526001600160a01b0392831660048201529116602482015260448101849052606401600060405180830381600087803b15801561206d57600080fd5b505af1158015612081573d6000803e3d6000fd5b505050505050565b612091612f0c565b8060d0610e0782826157c2565b60d6805460d780546001600160a01b0390921692916120bc90614abd565b80601f01602080910402602001604051908101604052809291908181526020018280546120e890614abd565b80156121355780601f1061210a57610100808354040283529160200191612135565b820191906000526020600020905b81548152906001019060200180831161211857829003601f168201915b50505050509080600201805461214a90614abd565b80601f016020809104026020016040519081016040528092919081815260200182805461217690614abd565b80156121c35780601f10612198576101008083540402835291602001916121c3565b820191906000526020600020905b8154815290600101906020018083116121a657829003601f168201915b5050505050905083565b6121d5612846565b600060d260010180546121e790614abd565b80601f016020809104026020016040519081016040528092919081815260200182805461221390614abd565b80156122605780601f1061223557610100808354040283529160200191612260565b820191906000526020600020905b81548152906001019060200180831161224357829003601f168201915b50505050508060200190518101906122789190615836565b9050612282612b27565b600061228c612b88565b905060d9548111156119355760d25460d6548351606085015160208601516040870151608088015160a08901516001600160a01b0397881697639f3307279716959493929189916000914291836122e584610e106158cf565b6040516001600160e01b031960e08f901b1681526001600160a01b039c8d166004820152602481019b909b529a90981660448a015260ff96871660648a0152948616608489015260a488019390935260c487019190915260e486015282166101048501521661012483015261014482015261016481019190915261018401611902565b60d2805460d380546001600160a01b039092169291611b0090614abd565b61238e612f0c565b6040518181527ff4f47d85dc8207b9d9c6dfd289d4f5008b33df899eda3da90658d75c351e54759060200160405180910390a160d955565b6123ce612846565b600060d460010180546123e090614abd565b80601f016020809104026020016040519081016040528092919081815260200182805461240c90614abd565b80156124595780601f1061242e57610100808354040283529160200191612459565b820191906000526020600020905b81548152906001019060200180831161243c57829003601f168201915b50505050508060200190518101906124719190615761565b9050600061247e82613b9e565b60cd5481519192506001600160a01b03169082906000906124a1576124a1614bb7565b60200260200101516001600160a01b0316146124d0576040516376c252e160e11b815260040160405180910390fd5b60cc5481516001600160a01b039091169082906124ef90600190614be3565b815181106124ff576124ff614bb7565b60200260200101516001600160a01b03161461252e576040516376c252e160e11b815260040160405180910390fd5b600061253861291f565b60d45490915061096b906001600160a01b03168483613d04565b61255a612f0c565b6001600160a01b0381166125bf5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ea6565b610f43816134ed565b60dc602052600090815260409020805461173190614abd565b6125e9612846565b600060d260010180546125fb90614abd565b80601f016020809104026020016040519081016040528092919081815260200182805461262790614abd565b80156126745780601f1061264957610100808354040283529160200191612674565b820191906000526020600020905b81548152906001019060200180831161265757829003601f168201915b505050505080602001905181019061268c91906158e2565b9050612696612b27565b60006126a0612b88565b905060d9548111156119355760d25460d65460cc546040516337e9a82760e11b81526004810185905263ffffffff861660248201526001600160a01b0392831660448201529082166064820152911690636fd3504e906084016020604051808303816000875af1158015612718573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061273c9190615908565b5060cc546040518281526001600160a01b0390911690600080516020615db48339815191529060200161195e565b612772612f0c565b60da5460ff166127b75760cc80546001600160a01b039384166001600160a01b03199182161790915560cd805492909316911617905560da805460ff19166001179055565b60cc54604080516001600160a01b03928316815291841660208301527f4239efeca0761c0d170bd15a6e85542dbe0376ba0f5f1551b39c6045866ff735910160405180910390a160cc5460d25461281a916001600160a01b0390811691166132b3565b60cc80546001600160a01b0319166001600160a01b0384811691821790925560d25461107a9216613342565b3330146117f85760405163ea8e4eb560e01b815260040160405180910390fd5b60608160008151811061287b5761287b614bb7565b60200260200101516040516020016128ab919060609190911b6bffffffffffffffffffffffff1916815260140190565b60408051601f19818403018152919052905060015b825181101561291957818382815181106128dc576128dc614bb7565b60200260200101516040516020016128f5929190615931565b6040516020818303038152906040529150808061291190615968565b9150506128c0565b50919050565b60cd546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a08231906024015b602060405180830381865afa158015612969573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061298d91906157a9565b905090565b6040805160a081018252838152306020820152428183015260608101839052600060808201819052915163c04b8d5960e01b81526001600160a01b0386169063c04b8d59906129e5908490600401615981565b6020604051808303816000875af1158015612a04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a2891906157a9565b9150505b9392505050565b60d254604051630a51236960e01b81526000916001600160a01b031690630a51236990612a6b908790600190889088906004016159d9565b6040805180830381865afa158015612a87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612aab9190615a23565b50949350505050565b6000612abe61291f565b905081811061107a5760cd54604051632e1a7d4d60e01b8152600481018490526001600160a01b0390911690632e1a7d4d90602401600060405180830381600087803b158015612b0d57600080fd5b505af1925050508015612b1e575060015b1561107a575050565b60cf54600090815260dc6020526040908190208151600481526024810192839052610f43929091612b5791615a47565b6040519081900390206020820180516001600160e01b03166001600160e01b03199092169190911790523090613d51565b60cc546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240161294c565b6060600083516001600160401b03811115612bd657612bd6614766565b604051908082528060200260200182016040528015612c3c57816020015b612c296040518060a0016040528060008019168152602001600081526020016000815260200160008152602001606081525090565b815260200190600190039081612bf45790505b50905060005b8451811015612dba5780600003612d06576040518060a0016040528086600081518110612c7157612c71614bb7565b602002602001015160000151815260200186600081518110612c9557612c95614bb7565b602002602001015160200151815260200186600081518110612cb957612cb9614bb7565b60200260200101516040015181526020018581526020016040518060200160405280600081525081525082600081518110612cf657612cf6614bb7565b6020026020010181905250612db2565b6040518060a00160405280868381518110612d2357612d23614bb7565b6020026020010151600001518152602001868381518110612d4657612d46614bb7565b6020026020010151602001518152602001868381518110612d6957612d69614bb7565b60200260200101516040015181526020016000815260200160405180602001604052806000815250815250828281518110612da657612da6614bb7565b60200260200101819052505b600101612c42565b509392505050565b6060600084516001600160401b03811115612ddf57612ddf614766565b604051908082528060200260200182016040528015612e08578160200160208202803683370190505b50905060005b8551811015612e825780600003612e44578382600081518110612e3357612e33614bb7565b602002602001018181525050612e7a565b60018651612e529190614be3565b8103612e7a57600019828281518110612e6d57612e6d614bb7565b6020026020010181815250505b600101612e0e565b5060405163945bcec960e01b81526001600160a01b0389169063945bcec990612eb9908a908a908a908a9088904290600401615aed565b6000604051808303816000875af1158015612ed8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612f009190810190615510565b98975050505050505050565b6033546001600160a01b031633146117f85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610ea6565b610f43612f0c565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615612fa157610e0783613d95565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612ffb575060408051601f3d908101601f19168201909252612ff8918101906157a9565b60015b61305e5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610ea6565b600080516020615dd483398151915281146130cd5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610ea6565b50610e07838383613e31565b478015610f435760cd60009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0476040518263ffffffff1660e01b81526004016000604051808303818588803b15801561313057600080fd5b505af193505050508015613142575060015b15610f435750565b60d05460ff16156117f85760cd5460d0546040516370a0823160e01b81526101009091046001600160a01b03908116600483015260009216906370a0823190602401602060405180830381865afa1580156131a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131cd91906157a9565b60d0546131e9919061010090046001600160a01b0316316158cf565b60d154909150811015610f4357600061320061291f565b905060008260d0600101546132159190614be3565b90508181116132245780613226565b815b60d05460cd5491925061324b916001600160a01b039081169161010090041683613ca1565b6040518181527feb722ef3dbafc24e43f4627f9b306563a93d546865b49eb1e64fbaffdab73d5c9060200160405180910390a1505050565b60ce54600090815260db6020526040908190208151600481526024810192839052610f43929091612b5791615a47565b604051636eb1769f60e11b81523060048201526001600160a01b0382811660248301526000919084169063dd62ed3e90604401602060405180830381865afa158015613303573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061332791906157a9565b111561107a5761107a6001600160a01b038316826000613e56565b604051636eb1769f60e11b81523060048201526001600160a01b03828116602483015283169063dd62ed3e90604401602060405180830381865afa15801561338e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133b291906157a9565b60000361107a5761107a6001600160a01b03831682600019613e56565b60606000825160016133e191906158cf565b6001600160401b038111156133f8576133f8614766565b604051908082528060200260200182016040528015613421578160200160208202803683370190505b5090508260008151811061343757613437614bb7565b6020026020010151600001518160008151811061345657613456614bb7565b60200260200101906001600160a01b031690816001600160a01b03168152505060005b83518110156134e65783818151811061349457613494614bb7565b602002602001015160200151828260016134ae91906158cf565b815181106134be576134be614bb7565b6001600160a01b03909216602092830291909101909101526134df81615968565b9050613479565b5092915050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166135665760405162461bcd60e51b8152600401610ea690615c06565b6117f8613f6b565b6040518060400160405280600e81526020016d627269646765436972636c65282960901b81525060db60006040516020016135c390602080825260069082015265434952434c4560d01b604082015260600190565b60405160208183030381529060405280519060200120815260200190815260200160002090816135f39190615c51565b506040518060400160405280601081526020016f6272696467655374617267617465282960801b81525060db600060405160200161364d90602080825260089082015267535441524741544560c01b604082015260600190565b604051602081830303815290604052805190602001208152602001908152602001600020908161367d9190615c51565b506040518060400160405280600e81526020016d6272696467654178656c6172282960901b81525060db60006040516020016136d39060208082526006908201526520ac22a620a960d11b604082015260600190565b60405160208183030381529060405280519060200120815260200190815260200160002090816137039190615c51565b506040518060400160405280600f81526020016e62726964676553796e61707365282960881b81525060db600060405160200161375b9060208082526007908201526653594e4150534560c81b604082015260600190565b604051602081830303815290604052805190602001208152602001908152602001600020908161378b9190615c51565b506040518060400160405280600d81526020016c6272696467657a6b45564d282960981b81525060db60006040516020016137df906020808252600590820152647a6b45564d60d81b604082015260600190565b604051602081830303815290604052805190602001208152602001908152602001600020908161380f9190615c51565b506040518060400160405280600e81526020016d6272696467657a6b53796e63282960901b81525060db6000604051602001613865906020808252600690820152657a6b53594e4360d01b604082015260600190565b6040516020818303038152906040528051906020012081526020019081526020016000209081610f439190615c51565b6040518060400160405280600b81526020016a73776170556e695632282960a81b81525060dc60006040516020016138eb906020808252600a90820152692aa724a9aba0a82fab1960b11b604082015260600190565b604051602081830303815290604052805190602001208152602001908152602001600020908161391b9190615c51565b506040518060400160405280600d81526020016c73776170536f6c69646c79282960981b81525060dc600060405160200161397190602080825260079082015266534f4c49444c5960c81b604082015260600190565b60405160208183030381529060405280519060200120815260200190815260200160002090816139a19190615c51565b506040518060400160405280600b81526020016a73776170556e695633282960a81b81525060dc60006040516020016139f8906020808252600a9082015269554e49535741505f563360b01b604082015260600190565b6040516020818303038152906040528051906020012081526020019081526020016000209081613a289190615c51565b506040518060400160405280601381526020017273776170556e695633446561646c696e65282960681b81525060dc6000604051602001613a9090602080825260139082015272554e49535741505f56335f444541444c494e4560681b604082015260600190565b6040516020818303038152906040528051906020012081526020019081526020016000209081613ac09190615c51565b506040518060400160405280600d81526020016c73776170416c6765627261282960981b81525060dc6000604051602001613b1690602080825260079082015266414c474542524160c81b604082015260600190565b6040516020818303038152906040528051906020012081526020019081526020016000209081613b469190615c51565b506040518060400160405280600e81526020016d7377617042616c616e636572282960901b81525060dc6000604051602001613865906020808252600890820152672120a620a721a2a960c11b604082015260600190565b60606000613bab83613f9b565b90506000613bba8260016158cf565b6001600160401b03811115613bd157613bd1614766565b604051908082528060200260200182016040528015613bfa578160200160208202803683370190505b50905060005b82811015612dba57600080613c1487613fc1565b509150915081848481518110613c2c57613c2c614bb7565b6001600160a01b03909216602092830291909101909101528084613c518560016158cf565b81518110613c6157613c61614bb7565b60200260200101906001600160a01b031690816001600160a01b031681525050613c8a87613ffd565b965050508080613c9990615968565b915050613c00565b6040516001600160a01b038316602482015260448101829052610e0790849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261402e565b60408051608081018252838152306020820152808201839052600060608201819052915163b858183f60e01b81526001600160a01b0386169063b858183f906129e5908490600401615d0a565b6060612a2c838360006040518060400160405280601e81526020017f416464726573733a206c6f772d6c6576656c2063616c6c206661696c65640000815250614103565b6001600160a01b0381163b613e025760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610ea6565b600080516020615dd483398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b613e3a836141e0565b600082511180613e475750805b15610e075761096b8383614220565b801580613ed05750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa158015613eaa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ece91906157a9565b155b613f3b5760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b6064820152608401610ea6565b6040516001600160a01b038316602482015260448101829052610e0790849063095ea7b360e01b90606401613ccd565b600054610100900460ff16613f925760405162461bcd60e51b8152600401610ea690615c06565b6117f8336134ed565b6000613fa9600360146158cf565b60148351613fb79190614be3565b6117e09190615d58565b60008080613fcf8482614245565b9250613fdc8460146142f9565b9050613ff4613fed600360146158cf565b8590614245565b91509193909250565b60606117e061400e600360146158cf565b61401a600360146158cf565b84516140269190614be3565b8491906143a4565b6000614083826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166144fb9092919063ffffffff16565b90508051600014806140a45750808060200190518101906140a49190615d7a565b610e075760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610ea6565b6060824710156141645760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610ea6565b600080866001600160a01b031685876040516141809190615d97565b60006040518083038185875af1925050503d80600081146141bd576040519150601f19603f3d011682016040523d82523d6000602084013e6141c2565b606091505b50915091506141d38783838761450a565b925050505b949350505050565b6141e981613d95565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060612a2c8383604051806060016040528060278152602001615df460279139614583565b6000816142538160146158cf565b10156142965760405162461bcd60e51b8152602060048201526012602482015271746f416464726573735f6f766572666c6f7760701b6044820152606401610ea6565b6142a18260146158cf565b835110156142e95760405162461bcd60e51b8152602060048201526015602482015274746f416464726573735f6f75744f66426f756e647360581b6044820152606401610ea6565b500160200151600160601b900490565b6000816143078160036158cf565b10156143495760405162461bcd60e51b8152602060048201526011602482015270746f55696e7432345f6f766572666c6f7760781b6044820152606401610ea6565b6143548260036158cf565b8351101561439b5760405162461bcd60e51b8152602060048201526014602482015273746f55696e7432345f6f75744f66426f756e647360601b6044820152606401610ea6565b50016003015190565b6060816143b281601f6158cf565b10156143f15760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606401610ea6565b826143fc83826158cf565b101561443b5760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606401610ea6565b61444582846158cf565b845110156144895760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b6044820152606401610ea6565b6060821580156144a85760405191506000825260208201604052612aab565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156144e15780518352602092830192016144c9565b5050858452601f01601f1916604052505090509392505050565b60606141d88484600085614103565b60608315614579578251600003614572576001600160a01b0385163b6145725760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610ea6565b50816141d8565b6141d883836145fb565b6060600080856001600160a01b0316856040516145a09190615d97565b600060405180830381855af49150503d80600081146145db576040519150601f19603f3d011682016040523d82523d6000602084013e6145e0565b606091505b50915091506145f18683838761450a565b9695505050505050565b81511561460b5781518083602001fd5b8060405162461bcd60e51b8152600401610ea6919061497e565b634e487b7160e01b600052600160045260246000fd5b60006060828403121561291957600080fd5b60006020828403121561465f57600080fd5b81356001600160401b0381111561467557600080fd5b6141d88482850161463b565b60008083601f84011261469357600080fd5b5081356001600160401b038111156146aa57600080fd5b6020830191508360208285010111156146c257600080fd5b9250929050565b600080600080604085870312156146df57600080fd5b84356001600160401b03808211156146f657600080fd5b61470288838901614681565b9096509450602087013591508082111561471b57600080fd5b5061472887828801614681565b95989497509550505050565b6001600160a01b0381168114610f4357600080fd5b60006020828403121561475b57600080fd5b8135612a2c81614734565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b038111828210171561479e5761479e614766565b60405290565b604051601f8201601f191681016001600160401b03811182821017156147cc576147cc614766565b604052919050565b60006001600160401b038211156147ed576147ed614766565b50601f01601f191660200190565b6000806040838503121561480e57600080fd5b823561481981614734565b915060208301356001600160401b0381111561483457600080fd5b8301601f8101851361484557600080fd5b8035614858614853826147d4565b6147a4565b81815286602083850101111561486d57600080fd5b816020840160208301376000602083830101528093505050509250929050565b60006040828403121561291957600080fd5b600080604083850312156148b257600080fd5b8235915060208301356001600160401b038111156148cf57600080fd5b6148db8582860161488d565b9150509250929050565b6002811061490357634e487b7160e01b600052602160045260246000fd5b9052565b602081016117e082846148e5565b60006020828403121561492757600080fd5b5035919050565b60005b83811015614949578181015183820152602001614931565b50506000910152565b6000815180845261496a81602086016020860161492e565b601f01601f19169290920160200192915050565b602081526000612a2c6020830184614952565b600080602083850312156149a457600080fd5b82356001600160401b038111156149ba57600080fd5b6149c685828601614681565b90969095509350505050565b6001600160a01b03831681526040602082018190526000906141d890830184614952565b8015158114610f4357600080fd5b60008060408385031215614a1757600080fd5b8235614a2281614734565b91506020830135614a32816149f6565b809150509250929050565b600060608284031215614a4f57600080fd5b612a2c838361463b565b6001600160a01b0384168152606060208201819052600090614a7d90830185614952565b82810360408401526145f18185614952565b60008060408385031215614aa257600080fd5b8235614aad81614734565b91506020830135614a3281614734565b600181811c90821680614ad157607f821691505b60208210810361291957634e487b7160e01b600052602260045260246000fd5b60006001600160401b03821115614b0a57614b0a614766565b5060051b60200190565b600082601f830112614b2557600080fd5b81516020614b3561485383614af1565b82815260059290921b84018101918181019086841115614b5457600080fd5b8286015b84811015614b78578051614b6b81614734565b8352918301918301614b58565b509695505050505050565b600060208284031215614b9557600080fd5b81516001600160401b03811115614bab57600080fd5b6141d884828501614b14565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b818103818111156117e0576117e0614bcd565b600060808284031215614c0857600080fd5b604051608081018181106001600160401b0382111715614c2a57614c2a614766565b604052825161ffff81168114614c3f57600080fd5b808252506020830151602082015260408301516040820152606083015160608201528091505092915050565b805182526020810151602083015260006040820151606060408501526141d86060850182614952565b60008154614ca181614abd565b808552602060018381168015614cbe5760018114614cd857614d06565b60ff1985168884015283151560051b880183019550614d06565b866000528260002060005b85811015614cfe5781548a8201860152908301908401614ce3565b890184019650505b505050505092915050565b600061012061ffff8b16835289602084015288604084015260018060a01b03881660608401528660808401528560a08401528060c0840152614d5581840186614c6b565b905082810360e0840152614d698185614c94565b8381036101009094019390935250506000815260200198975050505050505050565b6000806040808486031215614d9f57600080fd5b83516001600160401b0380821115614db657600080fd5b818601915086601f830112614dca57600080fd5b81516020614dda61485383614af1565b8281526060928302850182019282820191908b851115614df957600080fd5b958301955b84871015614e415780878d031215614e165760008081fd5b614e1e61477c565b875181528488015185820152888801518982015283529586019591830191614dfe565b5091890151919750909450505080831115614e5b57600080fd5b50506148db85828601614b14565b6000808335601e19843603018112614e8057600080fd5b83016020810192503590506001600160401b03811115614e9f57600080fd5b8036038213156146c257600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6020815260008235614ee881614734565b6001600160a01b0316602083810191909152614f0690840184614e69565b60606040850152614f1b608085018284614eae565b915050614f2b6040850185614e69565b848303601f190160608601526145f1838284614eae565b80546001600160a01b0319166001600160a01b0392909216919091179055565b6000808335601e19843603018112614f7957600080fd5b8301803591506001600160401b03821115614f9357600080fd5b6020019150368190038213156146c257600080fd5b601f821115610e0757600081815260208120601f850160051c81016020861015614fcf5750805b601f850160051c820191505b8181101561208157828155600101614fdb565b600019600383901b1c191660019190911b1790565b6001600160401b0383111561501a5761501a614766565b61502e836150288354614abd565b83614fa8565b6000601f84116001811461505c576000851561504a5750838201355b6150548682614fee565b845550610db4565b600083815260209020601f19861690835b8281101561508d578685013582556020948501946001909201910161506d565b50868210156150aa5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b81356150c781614734565b6150d18183614f42565b50600180820160206150e581860186614f62565b6001600160401b038111156150fc576150fc614766565b6151108161510a8654614abd565b86614fa8565b6000601f82116001811461513e576000831561512c5750838201355b6151368482614fee565b875550615193565b600086815260209020601f19841690835b8281101561516c578685013582559387019390890190870161514f565b50848210156151895760001960f88660031b161c19848701351681555b50508683881b0186555b505050505050506151a76040830183614f62565b61096b818360028601615003565b6020815260006141d8602083018486614eae565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6000813561526e81614734565b6001600160a01b031683526152866020830183614e69565b6040602086015261529b604086018284614eae565b95945050505050565b8281526040602082015260006141d86040830184615261565b81356152c881614734565b6152d28183614f42565b50600180820160206152e681860186614f62565b6001600160401b038111156152fd576152fd614766565b61530b8161510a8654614abd565b6000601f82116001811461533957600083156153275750838201355b6153318482614fee565b87555061538e565b600086815260209020601f19841690835b82811015615367578685013582559387019390890190870161534a565b50848210156153845760001960f88660031b161c19848701351681555b50508683881b0186555b505050505050505050565b61107a82826152bd565b600060208083850312156153b657600080fd5b82516001600160401b038111156153cc57600080fd5b8301601f810185136153dd57600080fd5b80516153eb61485382614af1565b8181526060918202830184019184820191908884111561540a57600080fd5b938501935b8385101561546f5780858a0312156154275760008081fd5b61542f61477c565b855161543a81614734565b81528587015161544981614734565b8188015260408681015161545c816149f6565b908201528352938401939185019161540f565b50979650505050505050565b600060a0820187835260208781850152604060a08186015282885180855260c087019150838a01945060005b818110156154e457855180516001600160a01b039081168552868201511686850152840151151584840152948401946060909201916001016154a7565b50506001600160a01b0388166060870152935061550092505050565b8260808301529695505050505050565b6000602080838503121561552357600080fd5b82516001600160401b0381111561553957600080fd5b8301601f8101851361554a57600080fd5b805161555861485382614af1565b81815260059190911b8201830190838101908783111561557757600080fd5b928401925b828410156155955783518252928401929084019061557c565b979650505050505050565b600081518084526020808501945080840160005b838110156155d95781516001600160a01b0316875295820195908201906001016155b4565b509495945050505050565b85815284602082015260a06040820152600061560360a08301866155a0565b6001600160a01b0394909416606083015250608001529392505050565b600061562e614853846147d4565b905082815283838301111561564257600080fd5b612a2c83602083018461492e565b600082601f83011261566157600080fd5b612a2c83835160208501615620565b60006020828403121561568257600080fd5b81516001600160401b038082111561569957600080fd5b90830190604082860312156156ad57600080fd5b6040516040810181811083821117156156c8576156c8614766565b6040528251828111156156da57600080fd5b6156e687828601615650565b8252506020830151828111156156fb57600080fd5b61570787828601615650565b60208301525095945050505050565b6080815260006157296080830187614952565b828103602084015261573b8187614c94565b9050828103604084015261574f8186614952565b91505082606083015295945050505050565b60006020828403121561577357600080fd5b81516001600160401b0381111561578957600080fd5b8201601f8101841361579a57600080fd5b6141d884825160208401615620565b6000602082840312156157bb57600080fd5b5051919050565b81356157cd816149f6565b815460ff19811691151560ff16918217835560208401356157ed81614734565b6001600160a81b03199190911690911760089190911b610100600160a81b03161781556040919091013560019190910155565b805160ff8116811461583157600080fd5b919050565b600060c0828403121561584857600080fd5b60405160c081018181106001600160401b038211171561586a5761586a614766565b6040528251815261587d60208401615820565b602082015261588e60408401615820565b604082015260608301516158a181614734565b60608201526158b260808401615820565b60808201526158c360a08401615820565b60a08201529392505050565b808201808211156117e0576117e0614bcd565b6000602082840312156158f457600080fd5b815163ffffffff81168114612a2c57600080fd5b60006020828403121561591a57600080fd5b81516001600160401b0381168114612a2c57600080fd5b6000835161594381846020880161492e565b60609390931b6bffffffffffffffffffffffff19169190920190815260140192915050565b60006001820161597a5761597a614bcd565b5060010190565b602081526000825160a0602084015261599d60c0840182614952565b905060018060a01b0360208501511660408401526040840151606084015260608401516080840152608084015160a08401528091505092915050565b61ffff8516815260ff8416602082015260a0604082015260006159ff60a0830185614952565b82810380606085015260008252602081016080850152506155956020820185614c6b565b60008060408385031215615a3657600080fd5b505080516020909101519092909150565b6000808354615a5581614abd565b60018281168015615a6d5760018114615a8257615ab1565b60ff1984168752821515830287019450615ab1565b8760005260208060002060005b85811015615aa85781548a820152908401908201615a8f565b50505082870194505b50929695505050505050565b600081518084526020808501945080840160005b838110156155d957815187529582019590820190600101615ad1565b6000610120808301615aff848b6148e5565b60208481019290925288519081905261014080850192600583901b8601909101918a820160005b82811015615b895787850361013f190186528151805186528481015185870152604080820151908701526060808201519087015260809081015160a091870182905290615b7581880183614952565b978601979650505090830190600101615b26565b505050508381036040850152615b9f81896155a0565b915050615bdf606084018780516001600160a01b039081168352602080830151151590840152604080830151909116908301526060908101511515910152565b82810360e0840152615bf18186615abd565b91505082610100830152979650505050505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b81516001600160401b03811115615c6a57615c6a614766565b615c7e81615c788454614abd565b84614fa8565b602080601f831160018114615cad5760008415615c9b5750858301515b615ca58582614fee565b865550612081565b600085815260208120601f198616915b82811015615cdc57888601518255948401946001909101908401615cbd565b5085821015615cfa5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b602081526000825160806020840152615d2660a0840182614952565b905060018060a01b03602085015116604084015260408401516060840152606084015160808401528091505092915050565b600082615d7557634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215615d8c57600080fd5b8151612a2c816149f6565b60008251615da981846020870161492e565b919091019291505056fe48b87fc02925b37a6aefac60c14fa9d8e9988d7dfadf262d4bd845872ca40730360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220d039e047df75e2cbabd3aaa72b5e18bf30dd4e631e190de460bf1d5fcc99320064736f6c63430008130033