0 txs
4.7k calls
constructor
No constructor.
functions
checkMarketsAndTokensSupportedForClaiming
viewfunction checkMarketsAndTokensSupportedForClaiming(address exchangeRouterContractGuard, address poolManagerLogic, address[] tokens, address[] markets) view
decodeCreateOrder
purefunction decodeCreateOrder(bytes[] multicallParams) pure returns (bytes lastCallData, uint256 numOfCalls, tuple createOrderParams)
getMethod
purefunction getMethod(bytes data) pure returns (bytes4)
getParams
purefunction getParams(bytes data) pure returns (bytes)
read4left
purefunction read4left(bytes data, uint256 offset) pure returns (bytes4 o)
validateCancelDeposit
viewfunction validateCancelDeposit(address exchangeRouterContractGuard, address poolManagerLogic, bytes params) view
validateCancelOrder
viewfunction validateCancelOrder(address exchangeRouterContractGuard, address poolManagerLogic, bytes params) view
validateCreateDepositMulticall
viewfunction validateCreateDepositMulticall(address _poolManagerLogic, tuple _poolSetting, address _to, bytes[] _multicallParams, IGmxReader reader, IGmxDataStore dataStore, address feeReceiver) view
validateDepositMarketTokens
viewfunction validateDepositMarketTokens(address _poolManagerLogic, address _market, address _initialLongToken, address _initialShortToken, IGmxReader reader, IGmxDataStore dataStore) view
validateDepositOrWithdrawalCommonParams
viewfunction validateDepositOrWithdrawalCommonParams(tuple _commonParams, address _poolLogic, address _feeReceiver) view
validateMarketTokens
viewfunction validateMarketTokens(address _poolManagerLogic, address _market, address _initialCollateralToken, IGmxReader reader, IGmxDataStore dataStore) view
validateSendTokensTx
viewfunction validateSendTokensTx(address _poolManagerLogic, bytes _subTxData, address _token, address _receiver) view
validateSwapPath
viewfunction validateSwapPath(address _poolManagerLogic, address[] _swapPath) view
validateTxGuardParams
viewfunction validateTxGuardParams(address exchangeRouterContractGuard, address poolManagerLogic, bytes data) view returns (bytes4 method, bytes params, address poolLogic, tuple poolSetting)
validateWithdrawalMarketTokens
viewfunction validateWithdrawalMarketTokens(address _poolManagerLogic, address _market, IGmxReader reader, IGmxDataStore dataStore) view
events
No events.
errors
No errors.
creation bytecode
0x6137ef610026600b82828239805160001a60731461001957fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100cf5760003560e01c80630e6c8f40146100d457806324365423146100e9578063293d8063146100fc5780632cfe758b1461012557806343a4919e146101385780636518a1a11461015a578063689015131461016d5780636e7640561461018d5780638651a635146101a057806396a13054146101b3578063b27bd28d146101c6578063c130fc90146101d9578063c3c6279f146101ec578063e62e2502146101ff578063f5e086af14610212575b600080fd5b6100e76100e23660046126eb565b610235565b005b6100e76100f7366004612877565b61066c565b61010f61010a366004612a5d565b6107ca565b60405161011c9190613138565b60405180910390f35b6100e761013336600461267b565b6107f9565b61014b6101463660046129bd565b610a09565b60405161011c939291906131b1565b6100e7610168366004612c64565b610ac5565b61018061017b366004612a2b565b610bc8565b60405161011c919061319e565b6100e761019b36600461282a565b610beb565b6100e76101ae366004612770565b610cbc565b6100e76101c13660046127cf565b611022565b6100e76101d43660046128ce565b6111dd565b6100e76101e73660046125fa565b6114ca565b61010f6101fa366004612a2b565b6116f8565b6100e761020d366004612770565b611705565b610225610220366004612770565b6118b9565b60405161011c949392919061314d565b805182511461025f5760405162461bcd60e51b8152600401610256906136d0565b60405180910390fd5b60005b825181101561066557836001600160a01b0316639be918e683838151811061028657fe5b60200260200101516040518263ffffffff1660e01b81526004016102aa9190613124565b60206040518083038186803b1580156102c257600080fd5b505afa1580156102d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102fa91906129f7565b6103165760405162461bcd60e51b815260040161025690613320565b6000856001600160a01b031663d4fc42c66040518163ffffffff1660e01b815260040160206040518083038186803b15801561035157600080fd5b505afa158015610365573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610389919061259e565b6001600160a01b031663714af34b876001600160a01b031663660d0d676040518163ffffffff1660e01b815260040160206040518083038186803b1580156103d057600080fd5b505afa1580156103e4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610408919061259e565b85858151811061041457fe5b60200260200101516040518363ffffffff1660e01b8152600401610439929190613290565b60806040518083038186803b15801561045157600080fd5b505afa158015610465573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104899190612e70565b9050846001600160a01b0316639be918e68484815181106104a657fe5b60200260200101516040518263ffffffff1660e01b81526004016104ca9190613124565b60206040518083038186803b1580156104e257600080fd5b505afa1580156104f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051a91906129f7565b6105365760405162461bcd60e51b815260040161025690613320565b846001600160a01b0316639be918e685848151811061055157fe5b60200260200101516040518263ffffffff1660e01b81526004016105759190613124565b60206040518083038186803b15801561058d57600080fd5b505afa1580156105a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c591906129f7565b6105e15760405162461bcd60e51b8152600401610256906133fd565b80604001516001600160a01b03168483815181106105fb57fe5b60200260200101516001600160a01b03161480610640575080606001516001600160a01b031684838151811061062d57fe5b60200260200101516001600160a01b0316145b61065c5760405162461bcd60e51b815260040161025690613550565b50600101610262565b5050505050565b631cdacd5960e31b61067d846116f8565b6001600160e01b031916146106a45760405162461bcd60e51b815260040161025690613348565b6000806106b085610bc8565b8060200190518101906106c391906125c1565b604051634df48c7360e11b815291935091506001600160a01b03871690639be918e6906106f4908590600401613124565b60206040518083038186803b15801561070c57600080fd5b505afa158015610720573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061074491906129f7565b6107605760405162461bcd60e51b815260040161025690613550565b836001600160a01b0316826001600160a01b0316146107915760405162461bcd60e51b815260040161025690613550565b826001600160a01b0316816001600160a01b0316146107c25760405162461bcd60e51b8152600401610256906132f6565b505050505050565b600081600401835110156107f05760405162461bcd60e51b81526004016102569061351b565b50016020015190565b60405163714af34b60e01b81526000906001600160a01b0384169063714af34b9061082a9085908990600401613290565b60806040518083038186803b15801561084257600080fd5b505afa158015610856573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061087a9190612e70565b6040808201519051634df48c7360e11b81529192506001600160a01b03881691639be918e6916108ac91600401613124565b60206040518083038186803b1580156108c457600080fd5b505afa1580156108d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108fc91906129f7565b6109185760405162461bcd60e51b815260040161025690613614565b6060810151604051634df48c7360e11b81526001600160a01b03881691639be918e6916109489190600401613124565b60206040518083038186803b15801561096057600080fd5b505afa158015610974573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061099891906129f7565b6109b45760405162461bcd60e51b8152600401610256906135e4565b80604001516001600160a01b0316846001600160a01b031614806109ed575080606001516001600160a01b0316846001600160a01b0316145b6107c25760405162461bcd60e51b815260040161025690613577565b60606000610a15611cd5565b835191508160031480610a285750816002145b610a445760405162461bcd60e51b815260040161025690613485565b836001830381518110610a5357fe5b602002602001015192506000610a68846116f8565b90506000610a7585610bc8565b90506001600160e01b0319821663f59c48eb60e01b14610aa75760405162461bcd60e51b8152600401610256906136f8565b80806020019051810190610abb9190612b5b565b9496939550505050565b816001600160a01b031683600001516001600160a01b031614610afa5760405162461bcd60e51b815260040161025690613454565b60208301516001600160a01b03163014610b265760405162461bcd60e51b81526004016102569061366b565b806001600160a01b03168360a001516001600160a01b031614610b5b5760405162461bcd60e51b8152600401610256906133cf565b608083015115610b7d5760405162461bcd60e51b8152600401610256906134e7565b60408301515115610ba05760405162461bcd60e51b8152600401610256906134bc565b60608301515115610bc35760405162461bcd60e51b8152600401610256906134bc565b505050565b6060610be360048084510384611acf9092919063ffffffff16565b90505b919050565b8051600114610c0c5760405162461bcd60e51b8152600401610256906134bc565b816001600160a01b0316639be918e682600081518110610c2857fe5b60200260200101516040518263ffffffff1660e01b8152600401610c4c9190613124565b60206040518083038186803b158015610c6457600080fd5b505afa158015610c78573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c9c91906129f7565b610cb85760405162461bcd60e51b815260040161025690613428565b5050565b6000836001600160a01b031663660d0d676040518163ffffffff1660e01b815260040160206040518083038186803b158015610cf757600080fd5b505afa158015610d0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2f919061259e565b9050600082806020019051810190610d479190612a13565b90506000856001600160a01b031663d4fc42c66040518163ffffffff1660e01b815260040160206040518083038186803b158015610d8457600080fd5b505afa158015610d98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dbc919061259e565b6001600160a01b0316631485d29784846040518363ffffffff1660e01b8152600401610de99291906132aa565b60006040518083038186803b158015610e0157600080fd5b505afa158015610e15573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e3d9190810190612dae565b805160a00151604051634df48c7360e11b81529192506001600160a01b03871691639be918e691610e7091600401613124565b60206040518083038186803b158015610e8857600080fd5b505afa158015610e9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec091906129f7565b610edc5760405162461bcd60e51b8152600401610256906133fd565b805160c00151604051634df48c7360e11b81526001600160a01b03871691639be918e691610f0d9190600401613124565b60206040518083038186803b158015610f2557600080fd5b505afa158015610f39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5d91906129f7565b610f795760405162461bcd60e51b8152600401610256906133fd565b846001600160a01b0316639be918e6610f9a856001600160a01b0316611c20565b6040518263ffffffff1660e01b8152600401610fb69190613124565b60206040518083038186803b158015610fce57600080fd5b505afa158015610fe2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061100691906129f7565b6107c25760405162461bcd60e51b81526004016102569061372a565b60405163714af34b60e01b81526000906001600160a01b0384169063714af34b906110539085908890600401613290565b60806040518083038186803b15801561106b57600080fd5b505afa15801561107f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a39190612e70565b6040808201519051634df48c7360e11b81529192506001600160a01b03871691639be918e6916110d591600401613124565b60206040518083038186803b1580156110ed57600080fd5b505afa158015611101573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061112591906129f7565b6111415760405162461bcd60e51b815260040161025690613614565b6060810151604051634df48c7360e11b81526001600160a01b03871691639be918e6916111719190600401613124565b60206040518083038186803b15801561118957600080fd5b505afa15801561119d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111c191906129f7565b6106655760405162461bcd60e51b8152600401610256906135e4565b83516004146111fe5760405162461bcd60e51b815260040161025690613377565b6000611212836001600160a01b0316611c20565b90506000866001600160a01b0316639c8b2cfb6040518163ffffffff1660e01b815260040160206040518083038186803b15801561124f57600080fd5b505afa158015611263573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611287919061259e565b6001600160a01b031663d7cd39496040518163ffffffff1660e01b815260040160206040518083038186803b1580156112bf57600080fd5b505afa1580156112d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f7919061259e565b905060006113188760038151811061130b57fe5b6020026020010151610bc8565b80602001905181019061132b9190612a9f565b905061134d8a8860008151811061133e57fe5b6020026020010151858561066c565b6113758a8860018151811061135e57fe5b60200260200101518360000151608001518561066c565b61139d8a8860028151811061138657fe5b6020026020010151836000015160a001518561066c565b805160600151604051634df48c7360e11b81526001600160a01b038c1691639be918e6916113ce9190600401613124565b60206040518083038186803b1580156113e657600080fd5b505afa1580156113fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061141e91906129f7565b61143a5760405162461bcd60e51b815260040161025690613428565b6040805160c080820183528351516001600160a01b039081168352845160209081015182169084015284519091015182840152835160e001516060830152838301511515608083015283519092015190911660a0820152895161149e919086610ac5565b80516060810151608082015160a0909201516114be928d92918a8a6114ca565b50505050505050505050565b60405163714af34b60e01b81526000906001600160a01b0384169063714af34b906114fb9085908a90600401613290565b60806040518083038186803b15801561151357600080fd5b505afa158015611527573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061154b9190612e70565b6040808201519051634df48c7360e11b81529192506001600160a01b03891691639be918e69161157d91600401613124565b60206040518083038186803b15801561159557600080fd5b505afa1580156115a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115cd91906129f7565b6115e95760405162461bcd60e51b815260040161025690613614565b6060810151604051634df48c7360e11b81526001600160a01b03891691639be918e6916116199190600401613124565b60206040518083038186803b15801561163157600080fd5b505afa158015611645573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061166991906129f7565b6116855760405162461bcd60e51b8152600401610256906135e4565b80604001516001600160a01b0316856001600160a01b0316146116ba5760405162461bcd60e51b81526004016102569061369e565b80606001516001600160a01b0316846001600160a01b0316146116ef5760405162461bcd60e51b8152600401610256906132c3565b50505050505050565b6000610be38260006107ca565b6000836001600160a01b031663660d0d676040518163ffffffff1660e01b815260040160206040518083038186803b15801561174057600080fd5b505afa158015611754573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611778919061259e565b90506000828060200190518101906117909190612a13565b90506000856001600160a01b031663d4fc42c66040518163ffffffff1660e01b815260040160206040518083038186803b1580156117cd57600080fd5b505afa1580156117e1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611805919061259e565b6001600160a01b03166349651b6a84846040518363ffffffff1660e01b81526004016118329291906132aa565b60006040518083038186803b15801561184a57600080fd5b505afa15801561185e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526118869190810190612eed565b805160c00151604051634df48c7360e11b81529192506001600160a01b03871691639be918e691610f0d91600401613124565b6000606060006118c7611d2f565b856001600160a01b03166339b81fd96040518163ffffffff1660e01b815260040160206040518083038186803b15801561190057600080fd5b505afa158015611914573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611938919061259e565b9150336001600160a01b038316146119625760405162461bcd60e51b815260040161025690613643565b604051632a32620760e11b81526001600160a01b03881690635464c40e9061198e908590600401613124565b604080518083038186803b1580156119a557600080fd5b505afa1580156119b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119dd9190612d57565b9050816001600160a01b031681600001516001600160a01b031614611a145760405162461bcd60e51b8152600401610256906133a2565b6020810151604051634df48c7360e11b81526001600160a01b03881691639be918e691611a449190600401613124565b60206040518083038186803b158015611a5c57600080fd5b505afa158015611a70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a9491906129f7565b611ab05760405162461bcd60e51b8152600401610256906135ae565b611ab9856116f8565b9350611ac485610bc8565b925093509350935093565b60608182601f011015611b1a576040805162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b604482015290519081900360640190fd5b828284011015611b62576040805162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b604482015290519081900360640190fd5b81830184511015611bae576040805162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b604482015290519081900360640190fd5b606082158015611bcd5760405191506000825260208201604052611c17565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015611c06578051835260209283019201611bee565b5050858452601f01601f1916604052505b50949350505050565b6000816001600160a01b03166321f8a7216040516020018080602001828103825260038152602001806215d39560ea1b815250602001915050604051602081830303815290604052805190602001206040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015611ca357600080fd5b505afa158015611cb7573d6000803e3d6000fd5b505050506040513d6020811015611ccd57600080fd5b505192915050565b604051806101200160405280611ce9611d46565b8152602001611cf6611d84565b81526020016000815260200160008152600060208201819052604082018190526060808301829052608083019190915260a09091015290565b604080518082019091526000808252602082015290565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a082019290925260c081019190915290565b60405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b8035610be681613793565b8051610be681613793565b600082601f830112611def578081fd5b81356020611e04611dff83613776565b613753565b8281528181019085830183850287018401881015611e20578586fd5b855b85811015611e47578135611e3581613793565b84529284019290840190600101611e22565b5090979650505050505050565b600082601f830112611e64578081fd5b81516020611e74611dff83613776565b8281528181019085830183850287018401881015611e90578586fd5b855b85811015611e47578151611ea581613793565b84529284019290840190600101611e92565b600082601f830112611ec7578081fd5b81516020611ed7611dff83613776565b8281528181019085830183850287018401881015611ef3578586fd5b855b85811015611e4757815184529284019290840190600101611ef5565b600082601f830112611f21578081fd5b81356020611f31611dff83613776565b82815281810190858301855b85811015611e4757611f54898684358b0101611f7c565b84529284019290840190600101611f3d565b8035610be6816137ab565b8051610be6816137ab565b600082601f830112611f8c578081fd5b81356001600160401b03811115611f9f57fe5b611fb2601f8201601f1916602001613753565b818152846020838601011115611fc6578283fd5b816020850160208301379081016020019190915292915050565b805160038110610be657600080fd5b805160098110610be657600080fd5b6000610120808385031215612011578182fd5b61201a81613753565b91505061202682611dd4565b815261203460208301611dd4565b602082015261204560408301611dd4565b604082015261205660608301611dd4565b606082015261206760808301611dd4565b608082015261207860a08301611dd4565b60a082015261208960c08301611dd4565b60c082015260e08201516001600160401b03808211156120a857600080fd5b6120b485838601611e54565b60e0840152610100915081840151818111156120cf57600080fd5b6120db86828701611e54565b8385015250505092915050565b60006101008083850312156120fb578182fd5b61210481613753565b91505061211082611dd4565b815261211e60208301611dd4565b602082015261212f60408301611dd4565b604082015261214060608301611dd4565b606082015261215160808301611dd4565b608082015261216260a08301611dd4565b60a082015261217360c08301611dd4565b60c082015260e08201516001600160401b0381111561219157600080fd5b61219d84828501611e54565b60e08301525092915050565b60006101008083850312156121bc578182fd5b6121c581613753565b9150506121d182611dd4565b81526121df60208301611dd4565b60208201526121f060408301611dd4565b604082015261220160608301611dd4565b606082015261221260808301611dd4565b608082015261222360a08301611dd4565b60a082015260c08201516001600160401b038082111561224257600080fd5b61224e85838601611e54565b60c084015260e084015191508082111561226757600080fd5b5061219d84828501611e54565b600060e08284031215612285578081fd5b61228f60e0613753565b905061229a82611dd4565b81526122a860208301611dd4565b60208201526122b960408301611dd4565b60408201526122ca60608301611dd4565b60608201526122db60808301611dd4565b60808201526122ec60a08301611dd4565b60a082015260c08201516001600160401b0381111561230a57600080fd5b61231684828501611e54565b60c08301525092915050565b6000610100808385031215612335578182fd5b604051908101906001600160401b038211818310171561235157fe5b81604052809250835181526020840151602082015260408401516040820152606084015160608201526080840151608082015260a084015160a082015260c084015160c082015260e084015160e0820152505092915050565b6000602082840312156123bb578081fd5b604051602081018181106001600160401b03821117156123d757fe5b806040525080915082516123ea816137ab565b905292915050565b600060808284031215612403578081fd5b604051608081018181106001600160401b038211171561241f57fe5b80604052508091508251612432816137ab565b81526020830151612442816137ab565b60208201526040830151612455816137ab565b60408201526060830151612468816137ab565b6060919091015292915050565b600060e08284031215612486578081fd5b60405160e081018181106001600160401b03821117156124a257fe5b8060405250809150825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c08201525092915050565b6000610180808385031215612504578182fd5b61250d81613753565b91505061251982611fef565b815261252760208301611fe0565b602082015260408201516040820152606082015160608201526080820151608082015260a082015160a082015260c082015160c082015260e082015160e082015261010080830151818301525061012080830151818301525061014080830151818301525061016080830151818301525092915050565b6000602082840312156125af578081fd5b81516125ba81613793565b9392505050565b600080604083850312156125d3578081fd5b82516125de81613793565b60208401519092506125ef81613793565b809150509250929050565b60008060008060008060c08789031215612612578182fd5b863561261d81613793565b9550602087013561262d81613793565b9450604087013561263d81613793565b9350606087013561264d81613793565b9250608087013561265d81613793565b915060a087013561266d81613793565b809150509295509295509295565b600080600080600060a08688031215612692578283fd5b853561269d81613793565b945060208601356126ad81613793565b935060408601356126bd81613793565b925060608601356126cd81613793565b915060808601356126dd81613793565b809150509295509295909350565b60008060008060808587031215612700578182fd5b843561270b81613793565b9350602085013561271b81613793565b925060408501356001600160401b0380821115612736578384fd5b61274288838901611ddf565b93506060870135915080821115612757578283fd5b5061276487828801611ddf565b91505092959194509250565b600080600060608486031215612784578081fd5b833561278f81613793565b9250602084013561279f81613793565b915060408401356001600160401b038111156127b9578182fd5b6127c586828701611f7c565b9150509250925092565b600080600080608085870312156127e4578182fd5b84356127ef81613793565b935060208501356127ff81613793565b9250604085013561280f81613793565b9150606085013561281f81613793565b939692955090935050565b6000806040838503121561283c578182fd5b823561284781613793565b915060208301356001600160401b03811115612861578182fd5b61286d85828601611ddf565b9150509250929050565b6000806000806080858703121561288c578182fd5b843561289781613793565b935060208501356001600160401b038111156128b1578283fd5b6128bd87828801611f7c565b935050604085013561280f81613793565b60008060008060008060008789036101008112156128ea578586fd5b88356128f581613793565b97506040601f1982011215612908578586fd5b50604051604081016001600160401b03828210818311171561292657fe5b8160405260208b0135915061293a82613793565b90825260408a01359061294c82613793565b81602084015282985061296160608c01611dc9565b975060808b0135925080831115612976578384fd5b50506129848a828b01611f11565b94505061299360a08901611dc9565b92506129a160c08901611dc9565b91506129af60e08901611dc9565b905092959891949750929550565b6000602082840312156129ce578081fd5b81356001600160401b038111156129e3578182fd5b6129ef84828501611f11565b949350505050565b600060208284031215612a08578081fd5b81516125ba816137ab565b600060208284031215612a24578081fd5b5051919050565b600060208284031215612a3c578081fd5b81356001600160401b03811115612a51578182fd5b6129ef84828501611f7c565b60008060408385031215612a6f578182fd5b82356001600160401b03811115612a84578283fd5b612a9085828601611f7c565b95602094909401359450505050565b600060208284031215612ab0578081fd5b81516001600160401b0380821115612ac6578283fd5b9083019060c08286031215612ad9578283fd5b612ae360c0613753565b825182811115612af1578485fd5b612afd878286016121a9565b82525060208301516020820152612b1660408401611f71565b6040820152606083015160608201526080830151608082015260a083015182811115612b40578485fd5b612b4c87828601611eb7565b60a08301525095945050505050565b600060208284031215612b6c578081fd5b81516001600160401b0380821115612b82578283fd5b908301906102008286031215612b96578283fd5b610120612ba281613753565b835183811115612bb0578586fd5b612bbc88828701612274565b825250612bcc8760208601612322565b6020820152612bdc828501611fef565b6040820152612bee6101408501611fe0565b6060820152612c006101608501611f71565b6080820152612c126101808501611f71565b60a0820152612c246101a08501611f71565b60c08201526101c084015160e08201526101e0840151915082821115612c48578485fd5b612c5487838601611eb7565b6101008201529695505050505050565b600080600060608486031215612c78578081fd5b83356001600160401b0380821115612c8e578283fd5b9085019060c08288031215612ca1578283fd5b612cab60c0613753565b612cb483611dc9565b8152612cc260208401611dc9565b6020820152604083013582811115612cd8578485fd5b612ce489828601611ddf565b604083015250606083013582811115612cfb578485fd5b612d0789828601611ddf565b606083015250612d1960808401611f66565b6080820152612d2a60a08401611dc9565b60a08201529450612d4091505060208501611dc9565b9150612d4e60408501611dc9565b90509250925092565b600060408284031215612d68578081fd5b604051604081018181106001600160401b0382111715612d8457fe5b6040528251612d9281613793565b81526020830151612da281613793565b60208201529392505050565b600060208284031215612dbf578081fd5b81516001600160401b0380821115612dd5578283fd5b908301906101408286031215612de9578283fd5b604051608081018181108382111715612dfe57fe5b604052825182811115612e0f578485fd5b612e1b87828601611ffe565b825250612e2b8660208501612475565b6020820152612e3e8661010085016123aa565b604082015261012083015182811115612e55578485fd5b612e6187828601611eb7565b60608301525095945050505050565b600060808284031215612e81578081fd5b604051608081018181106001600160401b0382111715612e9d57fe5b6040528251612eab81613793565b81526020830151612ebb81613793565b60208201526040830151612ece81613793565b60408201526060830151612ee181613793565b60608201529392505050565b600060208284031215612efe578081fd5b81516001600160401b0380821115612f14578283fd5b908301906102408286031215612f28578283fd5b604051608081018181108382111715612f3d57fe5b604052825182811115612f4e578485fd5b612f5a878286016120e8565b825250612f6a86602085016124f1565b6020820152612f7d866101a085016123f2565b604082015261022083015182811115612e55578485fd5b6000815180845260208085019450808401835b83811015612fc357815187529582019590820190600101612fa7565b509495945050505050565b15159052565b60008151808452815b81811015612ff957602081850181015186830182015201612fdd565b8181111561300a5782602083870101525b50601f01601f19169290920160200192915050565b6003811061302957fe5b9052565b6009811061302957fe5b600060e0830160018060a01b038084511685526020818186015116818701528160408601511660408701528160608601511660608701528160808601511660808701528160a08601511660a087015260c085015160e060c08801528381518086526101008901915083830195508692505b808310156130ca578551851682529483019460019290920191908301906130a8565b50979650505050505050565b805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e08301525050565b6001600160a01b0391909116815260200190565b6001600160e01b031991909116815260200190565b600063ffffffff60e01b8616825260a0602083015261316f60a0830186612fd4565b6001600160a01b0394851660408401528351851660608401526020909301519093166080909101529392505050565b6000602082526125ba6020830184612fd4565b6000606082526131c46060830186612fd4565b846020840152828103604084015261020084518183526131e682840182613037565b91505060208501516131fb60208401826130d6565b50604085015161320f61012084018261302d565b50606085015161322361014084018261301f565b506080850151613237610160840182612fce565b5060a085015161324b610180840182612fce565b5060c085015161325f6101a0840182612fce565b5060e08501516101c08301526101008501518282036101e08401526132848282612f94565b98975050505050505050565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b03929092168252602082015260400190565b60208082526019908201527834b73b30b634b21034b734ba34b0b629b437b93a2a37b5b2b760391b604082015260600190565b60208082526010908201526f34b73b30b634b2103932b1b2b4bb32b960811b604082015260600190565b6020808252600e908201526d1a5b9d985b1a59081b585c9ad95d60921b604082015260600190565b6020808252601590820152740d2dcecc2d8d2c840e6cadcc8a8ded6cadce640e8f605b1b604082015260600190565b6020808252601190820152701a5b9d985b1a59081b5d5b1d1a58d85b1b607a1b604082015260600190565b6020808252601390820152721b9bdd0819db5e081dda1a5d195b1a5cdd1959606a1b604082015260600190565b60208082526014908201527334b73b30b634b2103332b2903932b1b2b4bb32b960611b604082015260600190565b6020808252601190820152703ab739bab83837b93a32b2103a37b5b2b760791b604082015260600190565b6020808252601290820152711d5b9cdd5c1c1bdc9d1959081b585c9ad95d60721b604082015260600190565b6020808252601790820152767265636569766572206e6f7420706f6f6c206c6f67696360481b604082015260600190565b6020808252601f908201527f696e76616c6964206d756c746963616c6c20706172616d73206c656e67746800604082015260600190565b6020808252601190820152700d2dcecc2d8d2c840e6eec2e040e0c2e8d607b1b604082015260600190565b6020808252601a908201527931b0b73737ba103ab73bb930b8103730ba34bb32903a37b5b2b760311b604082015260600190565b6020808252601b908201527a52656164696e67206279746573206f7574206f6620626f756e647360281b604082015260600190565b6020808252600d908201526c34b73b30b634b2103a37b5b2b760991b604082015260600190565b6020808252601e908201527f696e76616c696420696e697469616c436f6c6c61746572616c546f6b656e0000604082015260600190565b6020808252601c908201527b1d5b9cdd5c1c1bdc9d1959081dda5d1a191c985dd85b08185cdcd95d60221b604082015260600190565b6020808252601690820152753ab739bab83837b93a32b21039b437b93a2a37b5b2b760511b604082015260600190565b6020808252601590820152743ab739bab83837b93a32b2103637b733aa37b5b2b760591b604082015260600190565b6020808252600e908201526d6e6f7420706f6f6c206c6f67696360901b604082015260600190565b6020808252601990820152781a5b9d985b1a590818d85b1b189858dac818dbdb9d1c9858dd603a1b604082015260600190565b60208082526018908201527734b73b30b634b21034b734ba34b0b62637b733aa37b5b2b760411b604082015260600190565b6020808252600e908201526d0d2dcecc2d8d2c840d8cadccee8d60931b604082015260600190565b602080825260189082015277696e76616c6964206d756c746963616c6c20706172616d7360401b604082015260600190565b6020808252600f908201526e1d5b9cdd5c1c1bdc9d1959081ddb9d608a1b604082015260600190565b6040518181016001600160401b038111828210171561376e57fe5b604052919050565b60006001600160401b0382111561378957fe5b5060209081020190565b6001600160a01b03811681146137a857600080fd5b50565b80151581146137a857600080fdfea26469706673582212209760789cf002c1c3d327c901ac2d15a61bbd25d736d27f657e7dcc2581d166ff64736f6c63430007060033