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()
bridgeFraxFerry
nonpayablefunction bridgeFraxFerry()
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
0x60a06040523060805234801561001457600080fd5b50608051615f686200004d60003960008181610ed401528181610f1d0152818161102401528181611064015261137d0152615f686000f3fe6080604052600436106102815760003560e01c80638129fc1c1161014f578063c4b00c4f116100c1578063ee63c1e51161007a578063ee63c1e51461078a578063f1a392da1461079f578063f2fde38b146107b5578063f3f1a71a146107d5578063fe8d1ab0146107f5578063ff33d21f1461080a57600080fd5b8063c4b00c4f1461068b578063c89f2ce4146106ab578063ca3254691461071c578063cc5ea4ef14610740578063d49b640814610755578063d7d66e711461076a57600080fd5b8063a5131aaa11610113578063a5131aaa146105c2578063b54653fb146105d7578063b9f391471461062b578063bac86af514610640578063bce4547a14610660578063c3c224751461067557600080fd5b80638129fc1c14610540578063873d80ec146105555780638da5cb5b14610578578063943f8e96146105965780639c345b9f146105ac57600080fd5b80635066a747116101f35780636ae40711116101ac5780636ae407111461049f5780636d0a6891146104b457806370c75107146104e1578063715018a61461050157806373f1df3314610516578063748b3c051461052b57600080fd5b80635066a747146103eb5780635109d8b61461040b57806352d1902d14610420578063530728d51461044357806364e510a114610458578063671f6a261461047857600080fd5b80631610ee40116102455780631610ee401461034357806322be3de114610363578063284eb663146103835780633659cfe6146103a35780634641257d146103c35780634f1ef286146103d857600080fd5b80630278fb8a146102a7578063057d1ae3146102bc5780630d1f7833146102d157806311b0b42d146102e6578063154085921461032357600080fd5b366102a25760cd546001600160a01b031633146102a0576102a06146f2565b005b600080fd5b3480156102b357600080fd5b506102a061082a565b3480156102c857600080fd5b506102a06109bc565b3480156102dd57600080fd5b506102a0610c21565b3480156102f257600080fd5b5060cd54610306906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561032f57600080fd5b506102a061033e366004614750565b610e06565b34801561034f57600080fd5b506102a061035e3660046147ad565b610e27565b34801561036f57600080fd5b5060cc54610306906001600160a01b031681565b34801561038f57600080fd5b506102a061039e3660046147e1565b610e78565b3480156103af57600080fd5b506102a06103be366004614861565b610eca565b3480156103cf57600080fd5b506102a0610fb2565b6102a06103e6366004614913565b61101a565b3480156103f757600080fd5b506102a06104063660046149b7565b6110ea565b34801561041757600080fd5b506102a061117d565b34801561042c57600080fd5b50610435611370565b60405190815260200161031a565b34801561044f57600080fd5b506102a0611423565b34801561046457600080fd5b506102a06104733660046149b7565b611510565b34801561048457600080fd5b5060c9546104929060ff1681565b60405161031a9190614a1f565b3480156104ab57600080fd5b506102a061159e565b3480156104c057600080fd5b506104d46104cf366004614a2d565b611784565b60405161031a9190614a96565b3480156104ed57600080fd5b506104356104fc366004614aa9565b61181e565b34801561050d57600080fd5b506102a0611852565b34801561052257600080fd5b506102a0611866565b34801561053757600080fd5b506102a06118c7565b34801561054c57600080fd5b506102a0611a37565b34801561056157600080fd5b5061056a611baf565b60405161031a929190614aea565b34801561058457600080fd5b506033546001600160a01b0316610306565b3480156105a257600080fd5b5061043560cf5481565b3480156105b857600080fd5b5061043560ce5481565b3480156105ce57600080fd5b506102a0611c50565b3480156105e357600080fd5b5060d05460d1546106069160ff8116916101009091046001600160a01b03169083565b6040805193151584526001600160a01b0390921660208401529082015260600161031a565b34801561063757600080fd5b506102a0611cbc565b34801561064c57600080fd5b506102a061065b366004614b1c565b611e48565b34801561066c57600080fd5b506102a0611f42565b34801561068157600080fd5b5061043560d95481565b34801561069757600080fd5b506102a06106a6366004614b55565b612156565b3480156106b757600080fd5b5060ca5460cb546106e7916001600160a01b038082169260ff600160a01b93849004811693928216929091041684565b60405161031a94939291906001600160a01b039485168152921515602084015292166040820152901515606082015260800190565b34801561072857600080fd5b5061073161216b565b60405161031a93929190614b71565b34801561074c57600080fd5b506102a061229a565b34801561076157600080fd5b5061056a612435565b34801561077657600080fd5b506102a0610785366004614a2d565b612453565b34801561079657600080fd5b506102a0612493565b3480156107ab57600080fd5b5061043560dd5481565b3480156107c157600080fd5b506102a06107d0366004614861565b61261f565b3480156107e157600080fd5b506104d46107f0366004614a2d565b612695565b34801561080157600080fd5b506102a06126ae565b34801561081657600080fd5b506102a0610825366004614ba7565b612837565b610832612913565b600060d4600101805461084490614bd5565b80601f016020809104026020016040519081016040528092919081815260200182805461087090614bd5565b80156108bd5780601f10610892576101008083540402835291602001916108bd565b820191906000526020600020905b8154815290600101906020018083116108a057829003601f168201915b50505050508060200190518101906108d59190614c9b565b60cd5481519192506001600160a01b03169082906000906108f8576108f8614ccf565b60200260200101516001600160a01b031614610927576040516376c252e160e11b815260040160405180910390fd5b60cc5481516001600160a01b0390911690829061094690600190614cfb565b8151811061095657610956614ccf565b60200260200101516001600160a01b031614610985576040516376c252e160e11b815260040160405180910390fd5b600061099082612933565b9050600061099c6129ec565b60d4549091506109b6906001600160a01b03168383612a5f565b50505050565b6109c4612913565b600060d260010180546109d690614bd5565b80601f0160208091040260200160405190810160405280929190818152602001828054610a0290614bd5565b8015610a4f5780601f10610a2457610100808354040283529160200191610a4f565b820191906000526020600020905b815481529060010190602001808311610a3257829003601f168201915b5050505050806020019051810190610a679190614d0e565b905060006040518060600160405280836020015181526020016000815260200160405180604001604052806002815260200161060f60f31b81525081525090506000610b45836000015160d66001018054610ac190614bd5565b80601f0160208091040260200160405190810160405280929190818152602001828054610aed90614bd5565b8015610b3a5780601f10610b0f57610100808354040283529160200191610b3a565b820191906000526020600020905b815481529060010190602001808311610b1d57829003601f168201915b505050505084612b00565b9050610b5081612b81565b610b58612bf4565b6000610b62612c55565b905060d954811115610beb5760d2548451604080870151606088015191516327efc43f60e21b81526001600160a01b0390941693639fbf10fc938793610bb8939192309089906000908d9060d790600401614e29565b6000604051808303818588803b158015610bd157600080fd5b505af1158015610be5573d6000803e3d6000fd5b50505050505b60cc546040518281526001600160a01b0390911690600080516020615ecc8339815191529060200160405180910390a250505050565b610c29612913565b60008060d46001018054610c3c90614bd5565b80601f0160208091040260200160405190810160405280929190818152602001828054610c6890614bd5565b8015610cb55780601f10610c8a57610100808354040283529160200191610cb5565b820191906000526020600020905b815481529060010190602001808311610c9857829003601f168201915b5050505050806020019051810190610ccd9190614ea3565b60cd5481519294509092506001600160a01b0316908290600090610cf357610cf3614ccf565b60200260200101516001600160a01b031614610d22576040516376c252e160e11b815260040160405180910390fd5b60cc5481516001600160a01b03909116908290610d4190600190614cfb565b81518110610d5157610d51614ccf565b60200260200101516001600160a01b031614610d80576040516376c252e160e11b815260040160405180910390fd5b6000610d8a6129ec565b90506000610d988483612c86565b60d45460c9546040805160808101825260ca546001600160a01b03808216835260ff600160a01b9283900481161515602085015260cb548083169585019590955291909304811615156060830152949550610dff9491909316929116908490879087612e8f565b5050505050565b610e0e612fd9565b600083815260db602052604090206109b6828483614fdc565b610e2f612fd9565b7f518f47fcfba5d9b707c3387a7fa4301136192d8091a43ea13ae8db7275ab5d3a81604051610e5e9190615103565b60405180910390a18060d6610e7382826151d4565b505050565b610e80612fd9565b818160dc60008787604051602001610e999291906152cd565b6040516020818303038152906040528051906020012081526020019081526020016000209182610dff929190614fdc565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610f1b5760405162461bcd60e51b8152600401610f12906152e1565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610f64600080516020615eec833981519152546001600160a01b031690565b6001600160a01b031614610f8a5760405162461bcd60e51b8152600401610f129061532d565b610f9381613033565b60408051600080825260208201909252610faf9183919061303b565b50565b610fba6131a6565b610fc2613217565b7f8e55ccfc9778ff8eba1646d765cf1982537ce0f9257054a17b48aad745250183610feb6129ec565b60405190815260200160405180910390a160006110066129ec565b111561101457611014613350565b4260dd55565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036110625760405162461bcd60e51b8152600401610f12906152e1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166110ab600080516020615eec833981519152546001600160a01b031690565b6001600160a01b0316146110d15760405162461bcd60e51b8152600401610f129061532d565b6110da82613033565b6110e68282600161303b565b5050565b6110f2612fd9565b7f25f7dd6fc737add5174192a11292dfd270c1397f9c4f641fb6336a208b5efbed82826040516111239291906153bc565b60405180910390a160cd5460d454611147916001600160a01b039081169116613380565b60cf8290558060d461115982826154b1565b505060cd546110e6906001600160a01b03166111786020840184614861565b61340f565b611185612913565b600060d4600101805461119790614bd5565b80601f01602080910402602001604051908101604052809291908181526020018280546111c390614bd5565b80156112105780601f106111e557610100808354040283529160200191611210565b820191906000526020600020905b8154815290600101906020018083116111f357829003601f168201915b505050505080602001905181019061122891906154bb565b905060006112358261349c565b60cd5481519192506001600160a01b031690829060009061125857611258614ccf565b60200260200101516001600160a01b031614611287576040516376c252e160e11b815260040160405180910390fd5b60cc5481516001600160a01b039091169082906112a690600190614cfb565b815181106112b6576112b6614ccf565b60200260200101516001600160a01b0316146112e5576040516376c252e160e11b815260040160405180910390fd5b60006112ef6129ec565b60d454604051631e82ecdb60e31b81529192506001600160a01b03169063f41766d890611329908490600090889030904290600401615593565b6000604051808303816000875af1158015611348573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109b69190810190615628565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146114105760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610f12565b50600080516020615eec83398151915290565b61142b612913565b611433612bf4565b600061143d612c55565b905060d9548111156114dd5760d25460d65460cc5460405163cd58657960e01b81526000600482018190526001600160a01b0393841660248301526044820186905291831660648201526001608482015260c060a482015260c481019190915291169063cd5865799060e4015b600060405180830381600087803b1580156114c457600080fd5b505af11580156114d8573d6000803e3d6000fd5b505050505b60cc546040518281526001600160a01b0390911690600080516020615ecc8339815191529060200160405180910390a250565b611518612fd9565b7f5e355369ceaccb04ff615500f99b96912ce9f237ed35ae521487c19064e2318d82826040516115499291906153bc565b60405180910390a160cc5460d25461156d916001600160a01b039081169116613380565b60ce8290558060d261157f82826154b1565b505060cc546110e6906001600160a01b03166111786020840184614861565b6115a6612913565b600060d460010180546115b890614bd5565b80601f01602080910402602001604051908101604052809291908181526020018280546115e490614bd5565b80156116315780601f1061160657610100808354040283529160200191611631565b820191906000526020600020905b81548152906001019060200180831161161457829003601f168201915b50505050508060200190518101906116499190614c9b565b60cd5481519192506001600160a01b031690829060009061166c5761166c614ccf565b60200260200101516001600160a01b03161461169b576040516376c252e160e11b815260040160405180910390fd5b60cc5481516001600160a01b039091169082906116ba90600190614cfb565b815181106116ca576116ca614ccf565b60200260200101516001600160a01b0316146116f9576040516376c252e160e11b815260040160405180910390fd5b60006117036129ec565b60d4546040516338ed173960e01b81529192506001600160a01b0316906338ed17399061173d9084906000908790309042906004016156fc565b6000604051808303816000875af115801561175c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e739190810190615628565b60db602052600090815260409020805461179d90614bd5565b80601f01602080910402602001604051908101604052809291908181526020018280546117c990614bd5565b80156118165780601f106117eb57610100808354040283529160200191611816565b820191906000526020600020905b8154815290600101906020018083116117f957829003601f168201915b505050505081565b600082826040516020016118339291906152cd565b6040516020818303038152906040528051906020012090505b92915050565b61185a612fd9565b61186460006135ba565b565b61186e612913565b611876612bf4565b6000611880612c55565b905060d954811115610faf5760d25460d6546040516302e108e960e11b8152600481018490526001600160a01b0391821660248201529116906305c211d2906044016114aa565b6118cf612913565b600060d260010180546118e190614bd5565b80601f016020809104026020016040519081016040528092919081815260200182805461190d90614bd5565b801561195a5780601f1061192f5761010080835404028352916020019161195a565b820191906000526020600020905b81548152906001019060200180831161193d57829003601f168201915b50505050508060200190518101906119729190615788565b905061197c612bf4565b6000611986612c55565b905060d954811115611a025760d254825160208401516040516326ef699d60e01b81526001600160a01b03909316926326ef699d926119cf92909160d89190879060040161582e565b600060405180830381600087803b1580156119e957600080fd5b505af11580156119fd573d6000803e3d6000fd5b505050505b60cc546040518281526001600160a01b0390911690600080516020615ecc833981519152906020015b60405180910390a25050565b600054610100900460ff1615808015611a575750600054600160ff909116105b80611a715750303b158015611a71575060005460ff166001145b611ad45760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610f12565b6000805460ff191660011790558015611af7576000805461ff0019166101001790555b611aff61360c565b611b0761363b565b611b0f613962565b604080516080810182523080825260006020830181905292820181905260609091019190915260ca805460ff60a01b199092166001600160a81b0319928316811790915560cb805490921617905560c9805460ff191690558015610faf576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b60d4805460d580546001600160a01b039092169291611bcd90614bd5565b80601f0160208091040260200160405190810160405280929190818152602001828054611bf990614bd5565b8015611c465780601f10611c1b57610100808354040283529160200191611c46565b820191906000526020600020905b815481529060010190602001808311611c2957829003601f168201915b5050505050905082565b611c58612913565b611c60612bf4565b6000611c6a612c55565b905060d9548111156114dd5760d25460d65460cc54604051636ce5768960e11b81526001600160a01b03928316600482015290821660248201526044810184905291169063d9caed12906064016114aa565b611cc4612913565b600060d46001018054611cd690614bd5565b80601f0160208091040260200160405190810160405280929190818152602001828054611d0290614bd5565b8015611d4f5780601f10611d2457610100808354040283529160200191611d4f565b820191906000526020600020905b815481529060010190602001808311611d3257829003601f168201915b5050505050806020019051810190611d679190615879565b90506000611d7482613c6b565b60cd5481519192506001600160a01b0316908290600090611d9757611d97614ccf565b60200260200101516001600160a01b031614611dc6576040516376c252e160e11b815260040160405180910390fd5b60cc5481516001600160a01b03909116908290611de590600190614cfb565b81518110611df557611df5614ccf565b60200260200101516001600160a01b031614611e24576040516376c252e160e11b815260040160405180910390fd5b6000611e2e6129ec565b60d4549091506109b6906001600160a01b03168483612a5f565b611e50612fd9565b8015611ec1576040514790600090339083908381818185875af1925050503d8060008114611e9a576040519150601f19603f3d011682016040523d82523d6000602084013e611e9f565b606091505b50509050806109b657604051630dcf35db60e41b815260040160405180910390fd5b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a0823190602401602060405180830381865afa158015611f08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f2c91906158c1565b9050610e736001600160a01b0384163383613d6e565b611f4a612913565b600060d46001018054611f5c90614bd5565b80601f0160208091040260200160405190810160405280929190818152602001828054611f8890614bd5565b8015611fd55780601f10611faa57610100808354040283529160200191611fd5565b820191906000526020600020905b815481529060010190602001808311611fb857829003601f168201915b5050505050806020019051810190611fed9190614c9b565b60cd5481519192506001600160a01b031690829060009061201057612010614ccf565b60200260200101516001600160a01b03161461203f576040516376c252e160e11b815260040160405180910390fd5b60cc5481516001600160a01b03909116908290600190811061206357612063614ccf565b60200260200101516001600160a01b031614612092576040516376c252e160e11b815260040160405180910390fd5b600061209c6129ec565b60d45483519192506001600160a01b03169063df791e509084906000906120c5576120c5614ccf565b6020026020010151846001815181106120e0576120e0614ccf565b60209081029190910101516040516001600160e01b031960e085901b1681526001600160a01b0392831660048201529116602482015260448101849052606401600060405180830381600087803b15801561213a57600080fd5b505af115801561214e573d6000803e3d6000fd5b505050505050565b61215e612fd9565b8060d0610e7382826158da565b60d6805460d780546001600160a01b03909216929161218990614bd5565b80601f01602080910402602001604051908101604052809291908181526020018280546121b590614bd5565b80156122025780601f106121d757610100808354040283529160200191612202565b820191906000526020600020905b8154815290600101906020018083116121e557829003601f168201915b50505050509080600201805461221790614bd5565b80601f016020809104026020016040519081016040528092919081815260200182805461224390614bd5565b80156122905780601f1061226557610100808354040283529160200191612290565b820191906000526020600020905b81548152906001019060200180831161227357829003601f168201915b5050505050905083565b6122a2612913565b600060d260010180546122b490614bd5565b80601f01602080910402602001604051908101604052809291908181526020018280546122e090614bd5565b801561232d5780601f106123025761010080835404028352916020019161232d565b820191906000526020600020905b81548152906001019060200180831161231057829003601f168201915b5050505050806020019051810190612345919061594e565b905061234f612bf4565b6000612359612c55565b905060d954811115611a025760d25460d6548351606085015160208601516040870151608088015160a08901516001600160a01b0397881697639f3307279716959493929189916000914291836123b284610e106159e7565b6040516001600160e01b031960e08f901b1681526001600160a01b039c8d166004820152602481019b909b529a90981660448a015260ff96871660648a0152948616608489015260a488019390935260c487019190915260e4860152821661010485015216610124830152610144820152610164810191909152610184016119cf565b60d2805460d380546001600160a01b039092169291611bcd90614bd5565b61245b612fd9565b6040518181527ff4f47d85dc8207b9d9c6dfd289d4f5008b33df899eda3da90658d75c351e54759060200160405180910390a160d955565b61249b612913565b600060d460010180546124ad90614bd5565b80601f01602080910402602001604051908101604052809291908181526020018280546124d990614bd5565b80156125265780601f106124fb57610100808354040283529160200191612526565b820191906000526020600020905b81548152906001019060200180831161250957829003601f168201915b505050505080602001905181019061253e9190615879565b9050600061254b82613c6b565b60cd5481519192506001600160a01b031690829060009061256e5761256e614ccf565b60200260200101516001600160a01b03161461259d576040516376c252e160e11b815260040160405180910390fd5b60cc5481516001600160a01b039091169082906125bc90600190614cfb565b815181106125cc576125cc614ccf565b60200260200101516001600160a01b0316146125fb576040516376c252e160e11b815260040160405180910390fd5b60006126056129ec565b60d4549091506109b6906001600160a01b03168483613dd1565b612627612fd9565b6001600160a01b03811661268c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610f12565b610faf816135ba565b60dc602052600090815260409020805461179d90614bd5565b6126b6612913565b600060d260010180546126c890614bd5565b80601f01602080910402602001604051908101604052809291908181526020018280546126f490614bd5565b80156127415780601f1061271657610100808354040283529160200191612741565b820191906000526020600020905b81548152906001019060200180831161272457829003601f168201915b505050505080602001905181019061275991906159fa565b9050612763612bf4565b600061276d612c55565b905060d954811115611a025760d25460d65460cc546040516337e9a82760e11b81526004810185905263ffffffff861660248201526001600160a01b0392831660448201529082166064820152911690636fd3504e906084016020604051808303816000875af11580156127e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128099190615a20565b5060cc546040518281526001600160a01b0390911690600080516020615ecc83398151915290602001611a2b565b61283f612fd9565b60da5460ff166128845760cc80546001600160a01b039384166001600160a01b03199182161790915560cd805492909316911617905560da805460ff19166001179055565b60cc54604080516001600160a01b03928316815291841660208301527f4239efeca0761c0d170bd15a6e85542dbe0376ba0f5f1551b39c6045866ff735910160405180910390a160cc5460d2546128e7916001600160a01b039081169116613380565b60cc80546001600160a01b0319166001600160a01b0384811691821790925560d2546110e6921661340f565b3330146118645760405163ea8e4eb560e01b815260040160405180910390fd5b60608160008151811061294857612948614ccf565b6020026020010151604051602001612978919060609190911b6bffffffffffffffffffffffff1916815260140190565b60408051601f19818403018152919052905060015b82518110156129e657818382815181106129a9576129a9614ccf565b60200260200101516040516020016129c2929190615a49565b604051602081830303815290604052915080806129de90615a80565b91505061298d565b50919050565b60cd546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a08231906024015b602060405180830381865afa158015612a36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a5a91906158c1565b905090565b6040805160a081018252838152306020820152428183015260608101839052600060808201819052915163c04b8d5960e01b81526001600160a01b0386169063c04b8d5990612ab2908490600401615a99565b6020604051808303816000875af1158015612ad1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612af591906158c1565b9150505b9392505050565b60d254604051630a51236960e01b81526000916001600160a01b031690630a51236990612b3890879060019088908890600401615af1565b6040805180830381865afa158015612b54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b789190615b3b565b50949350505050565b6000612b8b6129ec565b90508181106110e65760cd54604051632e1a7d4d60e01b8152600481018490526001600160a01b0390911690632e1a7d4d90602401600060405180830381600087803b158015612bda57600080fd5b505af1925050508015612beb575060015b156110e6575050565b60cf54600090815260dc6020526040908190208151600481526024810192839052610faf929091612c2491615b5f565b6040519081900390206020820180516001600160e01b03166001600160e01b03199092169190911790523090613e1e565b60cc546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401612a19565b6060600083516001600160401b03811115612ca357612ca361487e565b604051908082528060200260200182016040528015612d0957816020015b612cf66040518060a0016040528060008019168152602001600081526020016000815260200160008152602001606081525090565b815260200190600190039081612cc15790505b50905060005b8451811015612e875780600003612dd3576040518060a0016040528086600081518110612d3e57612d3e614ccf565b602002602001015160000151815260200186600081518110612d6257612d62614ccf565b602002602001015160200151815260200186600081518110612d8657612d86614ccf565b60200260200101516040015181526020018581526020016040518060200160405280600081525081525082600081518110612dc357612dc3614ccf565b6020026020010181905250612e7f565b6040518060a00160405280868381518110612df057612df0614ccf565b6020026020010151600001518152602001868381518110612e1357612e13614ccf565b6020026020010151602001518152602001868381518110612e3657612e36614ccf565b60200260200101516040015181526020016000815260200160405180602001604052806000815250815250828281518110612e7357612e73614ccf565b60200260200101819052505b600101612d0f565b509392505050565b6060600084516001600160401b03811115612eac57612eac61487e565b604051908082528060200260200182016040528015612ed5578160200160208202803683370190505b50905060005b8551811015612f4f5780600003612f11578382600081518110612f0057612f00614ccf565b602002602001018181525050612f47565b60018651612f1f9190614cfb565b8103612f4757600019828281518110612f3a57612f3a614ccf565b6020026020010181815250505b600101612edb565b5060405163945bcec960e01b81526001600160a01b0389169063945bcec990612f86908a908a908a908a9088904290600401615c05565b6000604051808303816000875af1158015612fa5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612fcd9190810190615628565b98975050505050505050565b6033546001600160a01b031633146118645760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610f12565b610faf612fd9565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561306e57610e7383613e62565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156130c8575060408051601f3d908101601f191682019092526130c5918101906158c1565b60015b61312b5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610f12565b600080516020615eec833981519152811461319a5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610f12565b50610e73838383613efe565b478015610faf5760cd60009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0476040518263ffffffff1660e01b81526004016000604051808303818588803b1580156131fd57600080fd5b505af19350505050801561320f575060015b15610faf5750565b60d05460ff16156118645760cd5460d0546040516370a0823160e01b81526101009091046001600160a01b03908116600483015260009216906370a0823190602401602060405180830381865afa158015613276573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061329a91906158c1565b60d0546132b6919061010090046001600160a01b0316316159e7565b60d154909150811015610faf5760006132cd6129ec565b905060008260d0600101546132e29190614cfb565b90508181116132f157806132f3565b815b60d05460cd54919250613318916001600160a01b039081169161010090041683613d6e565b6040518181527feb722ef3dbafc24e43f4627f9b306563a93d546865b49eb1e64fbaffdab73d5c9060200160405180910390a1505050565b60ce54600090815260db6020526040908190208151600481526024810192839052610faf929091612c2491615b5f565b604051636eb1769f60e11b81523060048201526001600160a01b0382811660248301526000919084169063dd62ed3e90604401602060405180830381865afa1580156133d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133f491906158c1565b11156110e6576110e66001600160a01b038316826000613f23565b604051636eb1769f60e11b81523060048201526001600160a01b03828116602483015283169063dd62ed3e90604401602060405180830381865afa15801561345b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061347f91906158c1565b6000036110e6576110e66001600160a01b03831682600019613f23565b60606000825160016134ae91906159e7565b6001600160401b038111156134c5576134c561487e565b6040519080825280602002602001820160405280156134ee578160200160208202803683370190505b5090508260008151811061350457613504614ccf565b6020026020010151600001518160008151811061352357613523614ccf565b60200260200101906001600160a01b031690816001600160a01b03168152505060005b83518110156135b35783818151811061356157613561614ccf565b6020026020010151602001518282600161357b91906159e7565b8151811061358b5761358b614ccf565b6001600160a01b03909216602092830291909101909101526135ac81615a80565b9050613546565b5092915050565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166136335760405162461bcd60e51b8152600401610f1290615d1e565b611864614038565b6040518060400160405280600e81526020016d627269646765436972636c65282960901b81525060db600060405160200161369090602080825260069082015265434952434c4560d01b604082015260600190565b60405160208183030381529060405280519060200120815260200190815260200160002090816136c09190615d69565b506040518060400160405280601081526020016f6272696467655374617267617465282960801b81525060db600060405160200161371a90602080825260089082015267535441524741544560c01b604082015260600190565b604051602081830303815290604052805190602001208152602001908152602001600020908161374a9190615d69565b506040518060400160405280600e81526020016d6272696467654178656c6172282960901b81525060db60006040516020016137a09060208082526006908201526520ac22a620a960d11b604082015260600190565b60405160208183030381529060405280519060200120815260200190815260200160002090816137d09190615d69565b506040518060400160405280600f81526020016e62726964676553796e61707365282960881b81525060db60006040516020016138289060208082526007908201526653594e4150534560c81b604082015260600190565b60405160208183030381529060405280519060200120815260200190815260200160002090816138589190615d69565b506040518060400160405280600d81526020016c6272696467657a6b45564d282960981b81525060db60006040516020016138ac906020808252600590820152647a6b45564d60d81b604082015260600190565b60405160208183030381529060405280519060200120815260200190815260200160002090816138dc9190615d69565b506040518060400160405280600e81526020016d6272696467657a6b53796e63282960901b81525060db6000604051602001613932906020808252600690820152657a6b53594e4360d01b604082015260600190565b6040516020818303038152906040528051906020012081526020019081526020016000209081610faf9190615d69565b6040518060400160405280600b81526020016a73776170556e695632282960a81b81525060dc60006040516020016139b8906020808252600a90820152692aa724a9aba0a82fab1960b11b604082015260600190565b60405160208183030381529060405280519060200120815260200190815260200160002090816139e89190615d69565b506040518060400160405280600d81526020016c73776170536f6c69646c79282960981b81525060dc6000604051602001613a3e90602080825260079082015266534f4c49444c5960c81b604082015260600190565b6040516020818303038152906040528051906020012081526020019081526020016000209081613a6e9190615d69565b506040518060400160405280600b81526020016a73776170556e695633282960a81b81525060dc6000604051602001613ac5906020808252600a9082015269554e49535741505f563360b01b604082015260600190565b6040516020818303038152906040528051906020012081526020019081526020016000209081613af59190615d69565b506040518060400160405280601381526020017273776170556e695633446561646c696e65282960681b81525060dc6000604051602001613b5d90602080825260139082015272554e49535741505f56335f444541444c494e4560681b604082015260600190565b6040516020818303038152906040528051906020012081526020019081526020016000209081613b8d9190615d69565b506040518060400160405280600d81526020016c73776170416c6765627261282960981b81525060dc6000604051602001613be390602080825260079082015266414c474542524160c81b604082015260600190565b6040516020818303038152906040528051906020012081526020019081526020016000209081613c139190615d69565b506040518060400160405280600e81526020016d7377617042616c616e636572282960901b81525060dc6000604051602001613932906020808252600890820152672120a620a721a2a960c11b604082015260600190565b60606000613c7883614068565b90506000613c878260016159e7565b6001600160401b03811115613c9e57613c9e61487e565b604051908082528060200260200182016040528015613cc7578160200160208202803683370190505b50905060005b82811015612e8757600080613ce18761408e565b509150915081848481518110613cf957613cf9614ccf565b6001600160a01b03909216602092830291909101909101528084613d1e8560016159e7565b81518110613d2e57613d2e614ccf565b60200260200101906001600160a01b031690816001600160a01b031681525050613d57876140ca565b965050508080613d6690615a80565b915050613ccd565b6040516001600160a01b038316602482015260448101829052610e7390849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526140fb565b60408051608081018252838152306020820152808201839052600060608201819052915163b858183f60e01b81526001600160a01b0386169063b858183f90612ab2908490600401615e22565b6060612af9838360006040518060400160405280601e81526020017f416464726573733a206c6f772d6c6576656c2063616c6c206661696c656400008152506141d0565b6001600160a01b0381163b613ecf5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610f12565b600080516020615eec83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b613f07836142ad565b600082511180613f145750805b15610e73576109b683836142ed565b801580613f9d5750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa158015613f77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f9b91906158c1565b155b6140085760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b6064820152608401610f12565b6040516001600160a01b038316602482015260448101829052610e7390849063095ea7b360e01b90606401613d9a565b600054610100900460ff1661405f5760405162461bcd60e51b8152600401610f1290615d1e565b611864336135ba565b6000614076600360146159e7565b601483516140849190614cfb565b61184c9190615e70565b6000808061409c8482614312565b92506140a98460146143c6565b90506140c16140ba600360146159e7565b8590614312565b91509193909250565b606061184c6140db600360146159e7565b6140e7600360146159e7565b84516140f39190614cfb565b849190614471565b6000614150826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166145c89092919063ffffffff16565b90508051600014806141715750808060200190518101906141719190615e92565b610e735760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610f12565b6060824710156142315760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610f12565b600080866001600160a01b0316858760405161424d9190615eaf565b60006040518083038185875af1925050503d806000811461428a576040519150601f19603f3d011682016040523d82523d6000602084013e61428f565b606091505b50915091506142a0878383876145d7565b925050505b949350505050565b6142b681613e62565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060612af98383604051806060016040528060278152602001615f0c60279139614650565b6000816143208160146159e7565b10156143635760405162461bcd60e51b8152602060048201526012602482015271746f416464726573735f6f766572666c6f7760701b6044820152606401610f12565b61436e8260146159e7565b835110156143b65760405162461bcd60e51b8152602060048201526015602482015274746f416464726573735f6f75744f66426f756e647360581b6044820152606401610f12565b500160200151600160601b900490565b6000816143d48160036159e7565b10156144165760405162461bcd60e51b8152602060048201526011602482015270746f55696e7432345f6f766572666c6f7760781b6044820152606401610f12565b6144218260036159e7565b835110156144685760405162461bcd60e51b8152602060048201526014602482015273746f55696e7432345f6f75744f66426f756e647360601b6044820152606401610f12565b50016003015190565b60608161447f81601f6159e7565b10156144be5760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606401610f12565b826144c983826159e7565b10156145085760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606401610f12565b61451282846159e7565b845110156145565760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b6044820152606401610f12565b6060821580156145755760405191506000825260208201604052612b78565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156145ae578051835260209283019201614596565b5050858452601f01601f1916604052505090509392505050565b60606142a584846000856141d0565b6060831561464657825160000361463f576001600160a01b0385163b61463f5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610f12565b50816142a5565b6142a583836146c8565b6060600080856001600160a01b03168560405161466d9190615eaf565b600060405180830381855af49150503d80600081146146a8576040519150601f19603f3d011682016040523d82523d6000602084013e6146ad565b606091505b50915091506146be868383876145d7565b9695505050505050565b8151156146d85781518083602001fd5b8060405162461bcd60e51b8152600401610f129190614a96565b634e487b7160e01b600052600160045260246000fd5b60008083601f84011261471a57600080fd5b5081356001600160401b0381111561473157600080fd5b60208301915083602082850101111561474957600080fd5b9250929050565b60008060006040848603121561476557600080fd5b8335925060208401356001600160401b0381111561478257600080fd5b61478e86828701614708565b9497909650939450505050565b6000606082840312156129e657600080fd5b6000602082840312156147bf57600080fd5b81356001600160401b038111156147d557600080fd5b6142a58482850161479b565b600080600080604085870312156147f757600080fd5b84356001600160401b038082111561480e57600080fd5b61481a88838901614708565b9096509450602087013591508082111561483357600080fd5b5061484087828801614708565b95989497509550505050565b6001600160a01b0381168114610faf57600080fd5b60006020828403121561487357600080fd5b8135612af98161484c565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b03811182821017156148b6576148b661487e565b60405290565b604051601f8201601f191681016001600160401b03811182821017156148e4576148e461487e565b604052919050565b60006001600160401b038211156149055761490561487e565b50601f01601f191660200190565b6000806040838503121561492657600080fd5b82356149318161484c565b915060208301356001600160401b0381111561494c57600080fd5b8301601f8101851361495d57600080fd5b803561497061496b826148ec565b6148bc565b81815286602083850101111561498557600080fd5b816020840160208301376000602083830101528093505050509250929050565b6000604082840312156129e657600080fd5b600080604083850312156149ca57600080fd5b8235915060208301356001600160401b038111156149e757600080fd5b6149f3858286016149a5565b9150509250929050565b60028110614a1b57634e487b7160e01b600052602160045260246000fd5b9052565b6020810161184c82846149fd565b600060208284031215614a3f57600080fd5b5035919050565b60005b83811015614a61578181015183820152602001614a49565b50506000910152565b60008151808452614a82816020860160208601614a46565b601f01601f19169290920160200192915050565b602081526000612af96020830184614a6a565b60008060208385031215614abc57600080fd5b82356001600160401b03811115614ad257600080fd5b614ade85828601614708565b90969095509350505050565b6001600160a01b03831681526040602082018190526000906142a590830184614a6a565b8015158114610faf57600080fd5b60008060408385031215614b2f57600080fd5b8235614b3a8161484c565b91506020830135614b4a81614b0e565b809150509250929050565b600060608284031215614b6757600080fd5b612af9838361479b565b6001600160a01b0384168152606060208201819052600090614b9590830185614a6a565b82810360408401526146be8185614a6a565b60008060408385031215614bba57600080fd5b8235614bc58161484c565b91506020830135614b4a8161484c565b600181811c90821680614be957607f821691505b6020821081036129e657634e487b7160e01b600052602260045260246000fd5b60006001600160401b03821115614c2257614c2261487e565b5060051b60200190565b600082601f830112614c3d57600080fd5b81516020614c4d61496b83614c09565b82815260059290921b84018101918181019086841115614c6c57600080fd5b8286015b84811015614c90578051614c838161484c565b8352918301918301614c70565b509695505050505050565b600060208284031215614cad57600080fd5b81516001600160401b03811115614cc357600080fd5b6142a584828501614c2c565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8181038181111561184c5761184c614ce5565b600060808284031215614d2057600080fd5b604051608081018181106001600160401b0382111715614d4257614d4261487e565b604052825161ffff81168114614d5757600080fd5b808252506020830151602082015260408301516040820152606083015160608201528091505092915050565b805182526020810151602083015260006040820151606060408501526142a56060850182614a6a565b60008154614db981614bd5565b808552602060018381168015614dd65760018114614df057614e1e565b60ff1985168884015283151560051b880183019550614e1e565b866000528260002060005b85811015614e165781548a8201860152908301908401614dfb565b890184019650505b505050505092915050565b600061012061ffff8b16835289602084015288604084015260018060a01b03881660608401528660808401528560a08401528060c0840152614e6d81840186614d83565b905082810360e0840152614e818185614dac565b8381036101009094019390935250506000815260200198975050505050505050565b6000806040808486031215614eb757600080fd5b83516001600160401b0380821115614ece57600080fd5b818601915086601f830112614ee257600080fd5b81516020614ef261496b83614c09565b8281526060928302850182019282820191908b851115614f1157600080fd5b958301955b84871015614f595780878d031215614f2e5760008081fd5b614f36614894565b875181528488015185820152888801518982015283529586019591830191614f16565b5091890151919750909450505080831115614f7357600080fd5b50506149f385828601614c2c565b601f821115610e7357600081815260208120601f850160051c81016020861015614fa85750805b601f850160051c820191505b8181101561214e57828155600101614fb4565b600019600383901b1c191660019190911b1790565b6001600160401b03831115614ff357614ff361487e565b615007836150018354614bd5565b83614f81565b6000601f84116001811461503557600085156150235750838201355b61502d8682614fc7565b845550610dff565b600083815260209020601f19861690835b828110156150665786850135825560209485019460019092019101615046565b50868210156150835760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b6000808335601e198436030181126150ac57600080fd5b83016020810192503590506001600160401b038111156150cb57600080fd5b80360382131561474957600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60208152600082356151148161484c565b6001600160a01b031660208381019190915261513290840184615095565b606060408501526151476080850182846150da565b9150506151576040850185615095565b848303601f190160608601526146be8382846150da565b80546001600160a01b0319166001600160a01b0392909216919091179055565b6000808335601e198436030181126151a557600080fd5b8301803591506001600160401b038211156151bf57600080fd5b60200191503681900382131561474957600080fd5b81356151df8161484c565b6151e9818361516e565b50600180820160206151fd8186018661518e565b6001600160401b038111156152145761521461487e565b615228816152228654614bd5565b86614f81565b6000601f82116001811461525657600083156152445750838201355b61524e8482614fc7565b8755506152ab565b600086815260209020601f19841690835b828110156152845786850135825593870193908901908701615267565b50848210156152a15760001960f88660031b161c19848701351681555b50508683881b0186555b505050505050506152bf604083018361518e565b6109b6818360028601614fdc565b6020815260006142a56020830184866150da565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b600081356153868161484c565b6001600160a01b0316835261539e6020830183615095565b604060208601526153b36040860182846150da565b95945050505050565b8281526040602082015260006142a56040830184615379565b81356153e08161484c565b6153ea818361516e565b50600180820160206153fe8186018661518e565b6001600160401b038111156154155761541561487e565b615423816152228654614bd5565b6000601f821160018114615451576000831561543f5750838201355b6154498482614fc7565b8755506154a6565b600086815260209020601f19841690835b8281101561547f5786850135825593870193908901908701615462565b508482101561549c5760001960f88660031b161c19848701351681555b50508683881b0186555b505050505050505050565b6110e682826153d5565b600060208083850312156154ce57600080fd5b82516001600160401b038111156154e457600080fd5b8301601f810185136154f557600080fd5b805161550361496b82614c09565b8181526060918202830184019184820191908884111561552257600080fd5b938501935b838510156155875780858a03121561553f5760008081fd5b615547614894565b85516155528161484c565b8152858701516155618161484c565b8188015260408681015161557481614b0e565b9082015283529384019391850191615527565b50979650505050505050565b600060a0820187835260208781850152604060a08186015282885180855260c087019150838a01945060005b818110156155fc57855180516001600160a01b039081168552868201511686850152840151151584840152948401946060909201916001016155bf565b50506001600160a01b0388166060870152935061561892505050565b8260808301529695505050505050565b6000602080838503121561563b57600080fd5b82516001600160401b0381111561565157600080fd5b8301601f8101851361566257600080fd5b805161567061496b82614c09565b81815260059190911b8201830190838101908783111561568f57600080fd5b928401925b828410156156ad57835182529284019290840190615694565b979650505050505050565b600081518084526020808501945080840160005b838110156156f15781516001600160a01b0316875295820195908201906001016156cc565b509495945050505050565b85815284602082015260a06040820152600061571b60a08301866156b8565b6001600160a01b0394909416606083015250608001529392505050565b600061574661496b846148ec565b905082815283838301111561575a57600080fd5b612af9836020830184614a46565b600082601f83011261577957600080fd5b612af983835160208501615738565b60006020828403121561579a57600080fd5b81516001600160401b03808211156157b157600080fd5b90830190604082860312156157c557600080fd5b6040516040810181811083821117156157e0576157e061487e565b6040528251828111156157f257600080fd5b6157fe87828601615768565b82525060208301518281111561581357600080fd5b61581f87828601615768565b60208301525095945050505050565b6080815260006158416080830187614a6a565b82810360208401526158538187614dac565b905082810360408401526158678186614a6a565b91505082606083015295945050505050565b60006020828403121561588b57600080fd5b81516001600160401b038111156158a157600080fd5b8201601f810184136158b257600080fd5b6142a584825160208401615738565b6000602082840312156158d357600080fd5b5051919050565b81356158e581614b0e565b815460ff19811691151560ff16918217835560208401356159058161484c565b6001600160a81b03199190911690911760089190911b610100600160a81b03161781556040919091013560019190910155565b805160ff8116811461594957600080fd5b919050565b600060c0828403121561596057600080fd5b60405160c081018181106001600160401b03821117156159825761598261487e565b6040528251815261599560208401615938565b60208201526159a660408401615938565b604082015260608301516159b98161484c565b60608201526159ca60808401615938565b60808201526159db60a08401615938565b60a08201529392505050565b8082018082111561184c5761184c614ce5565b600060208284031215615a0c57600080fd5b815163ffffffff81168114612af957600080fd5b600060208284031215615a3257600080fd5b81516001600160401b0381168114612af957600080fd5b60008351615a5b818460208801614a46565b60609390931b6bffffffffffffffffffffffff19169190920190815260140192915050565b600060018201615a9257615a92614ce5565b5060010190565b602081526000825160a06020840152615ab560c0840182614a6a565b905060018060a01b0360208501511660408401526040840151606084015260608401516080840152608084015160a08401528091505092915050565b61ffff8516815260ff8416602082015260a060408201526000615b1760a0830185614a6a565b82810380606085015260008252602081016080850152506156ad6020820185614d83565b60008060408385031215615b4e57600080fd5b505080516020909101519092909150565b6000808354615b6d81614bd5565b60018281168015615b855760018114615b9a57615bc9565b60ff1984168752821515830287019450615bc9565b8760005260208060002060005b85811015615bc05781548a820152908401908201615ba7565b50505082870194505b50929695505050505050565b600081518084526020808501945080840160005b838110156156f157815187529582019590820190600101615be9565b6000610120808301615c17848b6149fd565b60208481019290925288519081905261014080850192600583901b8601909101918a820160005b82811015615ca15787850361013f190186528151805186528481015185870152604080820151908701526060808201519087015260809081015160a091870182905290615c8d81880183614a6a565b978601979650505090830190600101615c3e565b505050508381036040850152615cb781896156b8565b915050615cf7606084018780516001600160a01b039081168352602080830151151590840152604080830151909116908301526060908101511515910152565b82810360e0840152615d098186615bd5565b91505082610100830152979650505050505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b81516001600160401b03811115615d8257615d8261487e565b615d9681615d908454614bd5565b84614f81565b602080601f831160018114615dc55760008415615db35750858301515b615dbd8582614fc7565b86555061214e565b600085815260208120601f198616915b82811015615df457888601518255948401946001909101908401615dd5565b5085821015615e125787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b602081526000825160806020840152615e3e60a0840182614a6a565b905060018060a01b03602085015116604084015260408401516060840152606084015160808401528091505092915050565b600082615e8d57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215615ea457600080fd5b8151612af981614b0e565b60008251615ec1818460208701614a46565b919091019291505056fe48b87fc02925b37a6aefac60c14fa9d8e9988d7dfadf262d4bd845872ca40730360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220411dc7abaa48cfcce728fd30bf8164574864f61c87cb31a26517e462bea19e1a64736f6c63430008130033