0 txs
0 calls
constructor
constructor(address _mathLib, address _router)
functions
calcExpectedCollateralLiquidity
viewfunction calcExpectedCollateralLiquidity(uint256 midPx, uint256 strikePx) view returns (uint256)
checkPoolPriceDifference
viewfunction checkPoolPriceDifference(uint256 price, address lpPool, uint256 decimals0, uint256 threshold) view returns (bool)
isRebalanceBeforeDeposit
viewfunction isRebalanceBeforeDeposit(address vault) view returns (bool)
mathLib
viewfunction mathLib() view returns (address)
router
viewfunction router() view returns (address)
validatePath
viewfunction validatePath(bytes path, address token0, address token1) view returns (bool)
validateRange
viewfunction validateRange(uint256 range, uint256 rangeLimit, int24 currTick, int24 tickLower, int24 tickUpper, uint256 decimals0, bool checkWithinRange) view returns (bool)
calcBestPath
nonpayablefunction calcBestPath(uint256 amount, bytes[] paths) returns (bytes bestPath)
checkHedgeSize
nonpayablefunction checkHedgeSize(address gsPool, uint256 gsTokenId, uint256 totalLiquidity, uint256 colToLiquidityRatio, uint256 hedgeSize, uint256 collateralLimit, uint256 maxBorrowed)
checkLoanCollateralization
nonpayablefunction checkLoanCollateralization(address gsPool, uint256 gsTokenId)
events
No events.
errors
MaxTick
error MaxTick()
creation bytecode
0x60c06040523480156200001157600080fd5b506040516200324a3803806200324a833981016040819052620000349162000069565b6001600160a01b039081166080521660a052620000a1565b80516001600160a01b03811681146200006457600080fd5b919050565b600080604083850312156200007d57600080fd5b62000088836200004c565b915062000098602084016200004c565b90509250929050565b60805160a05161316e620000dc6000396000818161012b015261096d0152600081816101b101528181610d560152610e2e015261316e6000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806389cdfb8f1161006657806389cdfb8f14610126578063c429dfa214610165578063e13b91eb14610178578063f26802cf14610199578063f887ea40146101ac57600080fd5b80632e1cf40b146100a35780634d5b33ba146100cb57806360122ff2146100e05780636bd23b791461010057806386ba229914610113575b600080fd5b6100b66100b1366004611f0f565b6101d3565b60405190151581526020015b60405180910390f35b6100de6100d9366004611f72565b6101ea565b005b6100f36100ee366004611fea565b6104e6565b6040516100c291906120f6565b6100b661010e366004612126565b610550565b6100b66101213660046121a1565b610778565b61014d7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100c2565b6100b66101733660046121de565b6107b1565b61018b6101863660046121fb565b6109f0565b6040519081526020016100c2565b6100de6101a736600461221d565b610aa8565b61014d7f000000000000000000000000000000000000000000000000000000000000000081565b60006101e0848484610bcb565b90505b9392505050565b85156104dd57604051631b2d298360e11b8152600481018790526000906001600160a01b0389169063365a530690602401600060405180830381865afa158015610238573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261026091908101906124a8565b90506000868260c00151670de0b6b3a764000061027d9190612731565b6001600160801b03166102909190612772565b905060008261012001516000815181106102ac576102ac612786565b60200260200101516001600160801b03168361012001516001815181106102d5576102d5612786565b60200260200101516001600160801b0316670de0b6b3a76400006102f9919061279c565b6103039190612772565b905060008360c001516001600160801b031661037985610120015160018151811061033057610330612786565b60200260200101516001600160801b031686610120015160008151811061035957610359612786565b60200260200101516001600160801b0316610374919061279c565b610c97565b61038b90670de0b6b3a764000061279c565b6103959190612772565b90506127106103a4878961279c565b6103ae9190612772565b83101580156103d357506127106103c5878561279c565b6103cf9190612772565b8710155b6104115760405162461bcd60e51b815260206004820152600a60248201526948454447455f53495a4560b01b60448201526064015b60405180910390fd5b61271061041e878a61279c565b6104289190612772565b811015801561044d575061271061043f878361279c565b6104499190612772565b8810155b61048c5760405162461bcd60e51b815260206004820152601060248201526f434f4c4c41544552414c5f524154494f60801b6044820152606401610408565b848460c001516001600160801b031611156104d85760405162461bcd60e51b815260206004820152600c60248201526b13505617d093d49493d5d15160a21b6044820152606401610408565b505050505b50505050505050565b8051606090600090815b8181101561054757600085828151811061050c5761050c612786565b60200260200101519050805160001461053e57600061052b8883610d2c565b90508481111561053c578094508195505b505b506001016104f0565b50505092915050565b6000866000036105625750600161076d565b81156105ac57610573600388612772565b61057d90886127b3565b96508460020b8660020b13158061059a57508360020b8660020b12155b156105a75750600061076d565b6105d4565b8460020b8660020b1315806105c757508360020b8660020b12155b156105d45750600161076d565b60006105f16105e287610eba565b6001600160a01b0316856111e6565b9050600061061061060187610eba565b6001600160a01b0316866111e6565b90506000610621610374838561279c565b905060006106378c670de0b6b3a76400006127b3565b61064983670de0b6b3a764000061279c565b6106539190612772565b90506000670de0b6b3a764000061066a8e826127b3565b610674908561279c565b61067e9190612772565b905086156106b757610692828660326111ff565b806106a457506106a4818560326111ff565b156106b75760009550505050505061076d565b6106d06106ca655af3107a40008f612772565b8d611259565b9c506106de8d6127106127b3565b6106ea8461271061279c565b6106f49190612772565b91506127106107038e826127b3565b61070d908561279c565b6107179190612772565b905060006107366107278d610eba565b6001600160a01b03168a6111e6565b90506000838211801561074857508282105b9050881561075e57965061076d95505050505050565b15965061076d95505050505050565b979650505050505050565b60008160000361078a575060006107a9565b60006107986105e28661126f565b90506107a58682856112e0565b9150505b949350505050565b600080826001600160a01b031663fef840ff6040518163ffffffff1660e01b815260040161054060405180830381865afa1580156107f3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061081791906127fb565b905060006040518061010001604052808361022001516001600160a01b031681526020018361024001516001600160a01b0316815260200183610520015181526020016000815260200160008152602001836103800151151581526020018361028001516001600160a01b0316815260200183608001518152509050836001600160a01b03166311ebc6196040518163ffffffff1660e01b815260040160a060405180830381865afa1580156108d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f59190612ac2565b505050506060820190815260408051636ff55f8560e01b815283516001600160a01b039081166004830152602085015181166024830152918401516044820152915160648301526080830151608483015260a0830151151560a483015260c0830151811660c483015260e083015160e48301526000917f000000000000000000000000000000000000000000000000000000000000000090911690636ff55f85906101040161014060405180830381865afa1580156109b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109dc9190612b0f565b606090920151915191909111949350505050565b6000808311610a2f5760405162461bcd60e51b815260206004820152600b60248201526a0b48aa49ebe9a9288bea0b60ab1b6044820152606401610408565b600083610a4484670de0b6b3a764000061279c565b610a4e9190612772565b9050610a6281670de0b6b3a76400006127b3565b610a7761037483670de0b6b3a764000061279c565b610a8290600261279c565b610a9490670de0b6b3a764000061279c565b610a9e9190612772565b9150505b92915050565b6000826001600160a01b031663f30878c16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ae8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0c9190612b99565b6040516359cffb9b60e11b81526001600160a01b03858116600483015260248201859052919091169063b39ff73690604401602060405180830381865afa158015610b5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7f9190612bb6565b90508015610bc65760405162461bcd60e51b8152602060048201526014602482015273155391115497d0d3d3131055115490531256915160621b6044820152606401610408565b505050565b6000610bd68461133a565b610c40576035845110158015610c1457506001600160a01b038316610c096008610c03876000601c61136a565b906114c1565b6001600160a01b0316145b8015610c395750816001600160a01b0316610c2e85611575565b6001600160a01b0316145b90506101e3565b602d845110158015610c6b5750826001600160a01b0316610c608561158f565b6001600160a01b0316145b80156101e05750816001600160a01b0316610c8585611575565b6001600160a01b031614949350505050565b600081600003610ca957506000919050565b506001600160881b03811160071b81811c68ffffffffffffffffff1060061b1781811c64ffffffffff1060051b1781811c62ffffff1060041b1781811c620100000160b5600192831c1b0260121c80830401811c80830401811c80830401811c80830401811c80830401811c80830401811c80830401901c908190048111900390565b6000610d378261133a565b15610e06576040516305916ccd60e21b81526000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690631645b33490610d8d9087908790600401612bd3565b6000604051808303816000875af1158015610dac573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610dd49190810190612d3e565b5090508060018251610de69190612da1565b81518110610df657610df6612786565b6020026020010151915050610aa2565b600080610e128461159b565b60405163cbaa782560e01b815291935091506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cbaa782590610e6790889086908690600401612db4565b6000604051808303816000875af1158015610e86573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610eae9190810190612ed4565b50909695505050505050565b60008060008360020b12610ed1578260020b610ede565b8260020b610ede90612fb3565b9050610eed620d89e719612fcf565b62ffffff16811115610f125760405163d63f4fb360e01b815260040160405180910390fd5b600081600116600003610f2957600160801b610f3b565b6ffffcb933bd6fad37aa2d162d1a5940015b6001600160881b031690506002821615610f65576ffff97272373d413259a46990580e213a0260801c5b6004821615610f84576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615610fa3576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615610fc2576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615610fe1576fff973b41fa98c081472e6896dfb254c00260801c5b6040821615611000576fff2ea16466c96a3843ec78b326b528610260801c5b608082161561101f576ffe5dee046a99a2a811c461f1969c30530260801c5b61010082161561103f576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b61020082161561105f576ff987a7253ac413176f2b074cf7815e540260801c5b61040082161561107f576ff3392b0822b70005940c7a398e4b70f30260801c5b61080082161561109f576fe7159475a2c29b7443b29c7fa6e889d90260801c5b6110008216156110bf576fd097f3bdfd2022b8845ad8f792aa58250260801c5b6120008216156110df576fa9f746462d870fdf8a65dc1f90e061e50260801c5b6140008216156110ff576f70d869a156d2a1b890bb3df62baf32f70260801c5b61800082161561111f576f31be135f97d08fd981231505542fcfa60260801c5b62010000821615611140576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b62020000821615611160576e5d6af8dedb81196699c329225ee6040260801c5b6204000082161561117f576d2216e584f5fa1ea926041bedfe980260801c5b6208000082161561119c576b048a170391f7dc42444e8fa20260801c5b60008460020b13156111bd5780600019816111b9576111b961275c565b0490505b6401000000008106156111d15760016111d4565b60005b60ff16602082901c0192505050919050565b6000806111f3848461186e565b9050610a9e818061279c565b600061120d826103e86127b3565b8361121a866103e861279c565b6112249190612772565b1015806101e05750611238826103e8612da1565b83611245866103e861279c565b61124f9190612772565b1115949350505050565b600081831061126857816101e3565b5090919050565b6000816001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e060405180830381865afa1580156112af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112d39190612ff1565b5094979650505050505050565b6000816000036112f2575060006101e3565b6000836113018661271061279c565b61130b9190612772565b905061131961271084611259565b9250612710808401908490038183118061076d575090911095945050505050565b6000602d825110158015610aa257506019601483516113599190612da1565b6113639190613070565b1592915050565b60608161137881601f6127b3565b10156113b75760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606401610408565b826113c283826127b3565b10156114015760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606401610408565b61140b82846127b3565b8451101561144f5760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b6044820152606401610408565b60608215801561146e57604051915060008252602082016040526114b8565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156114a757805183526020928301920161148f565b5050858452601f01601f1916604052505b50949350505050565b6000816114cf8160146127b3565b10156115125760405162461bcd60e51b8152602060048201526012602482015271746f416464726573735f6f766572666c6f7760701b6044820152606401610408565b61151d8260146127b3565b835110156115655760405162461bcd60e51b8152602060048201526015602482015274746f416464726573735f6f75744f66426f756e647360581b6044820152606401610408565b500160200151600160601b900490565b6000610aa2601483516115889190612da1565b83906114c1565b6000610aa282826114c1565b60608060006115a984611892565b9050806001600160401b038111156115c3576115c3611da5565b6040519080825280602002602001820160405280156115f657816020015b60608152602001906001900390816115e15790505b509250806001600160401b0381111561161157611611611da5565b60405190808252806020026020018201604052801561163a578160200160208202803683370190505b5060408051600080825260208201909252919350805b865161165e601460086127b3565b61166890836127b3565b1161183e576116778782611a65565b6001600160401b031685838151811061169257611692612786565b602090810291909101015260080160006116ac88836114c1565b6040516bffffffffffffffffffffffff19606083901b1660208201526014939093019290915060340160405160208183030381529060405293505b875160036116f7600260146127b3565b61170191906127b3565b61170b90846127b3565b11158015611720575061171e8883611b10565b155b156117c757836117308984611b5b565b604051602001611741929190613084565b60408051601f19818403018152919052935060029190910190836117658984611c06565b6040516020016117769291906130b6565b60408051601f198184030181529190529350600391909101908361179a89846114c1565b6040516020016117ab9291906130e8565b60405160208183030381529060405293506014820191506116e7565b875160036117d7600260146127b3565b6117e191906127b3565b6117eb90846127b3565b111580156117fe57506117fe8883611b10565b156118385761180c84611cb1565b8387848151811061181f5761181f612786565b6020908102919091010152600190920191601991909101905b50611650565b61184783611cb1565b8286838151811061185a5761185a612786565b602002602001018190525050505050915091565b6000600160601b61187e83610c97565b611888908561279c565b6101e39190612772565b60006035825110156118db5760405162461bcd60e51b81526020600482015260126024820152710929cac82989288bea6a09892a8bea082a8960731b6044820152606401610408565b81516011600060036118ef600260146127b3565b6118f991906127b3565b611903848461279c565b61190d9190613070565b905060005b60ff811015611a125780600361192a600260146127b3565b61193491906127b3565b61193e919061279c565b61194890836127b3565b94508415611a005760008561195f601460086127b3565b611969919061279c565b851015611977576000611998565b85611984601460086127b3565b61198e919061279c565b6119989086612da1565b905060036119a8600260146127b3565b6119b291906127b3565b6119bc9082613070565b6000036119fe57600060036119d3600260146127b3565b6119dd91906127b3565b6119e79083612772565b9050600181106119fc57505050505050919050565b505b505b80611a0a8161311f565b915050611912565b5060405162461bcd60e51b815260206004820152602160248201527f4e6f2076616c6964206b20666f756e6420666f7220676976656e206c656e67746044820152600d60fb1b6064820152608401610408565b600081611a738160086127b3565b1015611ab55760405162461bcd60e51b8152602060048201526011602482015270746f55696e7436345f6f766572666c6f7760781b6044820152606401610408565b611ac08260086127b3565b83511015611b075760405162461bcd60e51b8152602060048201526014602482015273746f55696e7436345f6f75744f66426f756e647360601b6044820152606401610408565b50016008015190565b81516000906003611b23600260146127b3565b611b2d91906127b3565b611b3790846127b3565b111580156101e35750611b4a8383611cf8565b6001600160c81b0316159392505050565b600081611b698160026127b3565b1015611bab5760405162461bcd60e51b8152602060048201526011602482015270746f55696e7431365f6f766572666c6f7760781b6044820152606401610408565b611bb68260026127b3565b83511015611bfd5760405162461bcd60e51b8152602060048201526014602482015273746f55696e7431365f6f75744f66426f756e647360601b6044820152606401610408565b50016002015190565b600081611c148160036127b3565b1015611c565760405162461bcd60e51b8152602060048201526011602482015270746f55696e7432345f6f766572666c6f7760781b6044820152606401610408565b611c618260036127b3565b83511015611ca85760405162461bcd60e51b8152602060048201526014602482015273746f55696e7432345f6f75744f66426f756e647360601b6044820152606401610408565b50016003015190565b611cba8161133a565b611cf55760405162461bcd60e51b815260206004820152600c60248201526b0929cac82989288bea082a8960a31b6044820152606401610408565b50565b600081611d068160196127b3565b1015611d495760405162461bcd60e51b8152602060048201526012602482015271746f55696e743230305f6f766572666c6f7760701b6044820152606401610408565b611d548260196127b3565b83511015611d9c5760405162461bcd60e51b8152602060048201526015602482015274746f55696e743230305f6f75744f66426f756e647360581b6044820152606401610408565b50016019015190565b634e487b7160e01b600052604160045260246000fd5b6040516103e081016001600160401b0381118282101715611dde57611dde611da5565b60405290565b60405161054081016001600160401b0381118282101715611dde57611dde611da5565b60405161014081016001600160401b0381118282101715611dde57611dde611da5565b60405161010081016001600160401b0381118282101715611dde57611dde611da5565b604051601f8201601f191681016001600160401b0381118282101715611e7557611e75611da5565b604052919050565b60006001600160401b03821115611e9657611e96611da5565b50601f01601f191660200190565b600082601f830112611eb557600080fd5b8135611ec8611ec382611e7d565b611e4d565b818152846020838601011115611edd57600080fd5b816020850160208301376000918101602001919091529392505050565b6001600160a01b0381168114611cf557600080fd5b600080600060608486031215611f2457600080fd5b83356001600160401b03811115611f3a57600080fd5b611f4686828701611ea4565b9350506020840135611f5781611efa565b91506040840135611f6781611efa565b809150509250925092565b600080600080600080600060e0888a031215611f8d57600080fd5b8735611f9881611efa565b9960208901359950604089013598606081013598506080810135975060a0810135965060c00135945092505050565b60006001600160401b03821115611fe057611fe0611da5565b5060051b60200190565b60008060408385031215611ffd57600080fd5b823591506020808401356001600160401b038082111561201c57600080fd5b818601915086601f83011261203057600080fd5b813561203e611ec382611fc7565b81815260059190911b8301840190848101908983111561205d57600080fd5b8585015b83811015612095578035858111156120795760008081fd5b6120878c89838a0101611ea4565b845250918601918601612061565b508096505050505050509250929050565b60005b838110156120c15781810151838201526020016120a9565b50506000910152565b600081518084526120e28160208601602086016120a6565b601f01601f19169290920160200192915050565b6020815260006101e360208301846120ca565b8060020b8114611cf557600080fd5b8015158114611cf557600080fd5b600080600080600080600060e0888a03121561214157600080fd5b8735965060208801359550604088013561215a81612109565b9450606088013561216a81612109565b9350608088013561217a81612109565b925060a0880135915060c088013561219181612118565b8091505092959891949750929550565b600080600080608085870312156121b757600080fd5b8435935060208501356121c981611efa565b93969395505050506040820135916060013590565b6000602082840312156121f057600080fd5b81356101e381611efa565b6000806040838503121561220e57600080fd5b50508035926020909101359150565b6000806040838503121561223057600080fd5b823561223b81611efa565b946020939093013593505050565b805161225481611efa565b919050565b80516bffffffffffffffffffffffff8116811461225457600080fd5b80516001600160801b038116811461225457600080fd5b600082601f83011261229d57600080fd5b815160206122ad611ec383611fc7565b82815260059290921b840181019181810190868411156122cc57600080fd5b8286015b848110156122ee576122e181612275565b83529183019183016122d0565b509695505050505050565b805161ffff8116811461225457600080fd5b805160ff8116811461225457600080fd5b805161225481612118565b600082601f83011261233857600080fd5b81516020612348611ec383611fc7565b82815260059290921b8401810191818101908684111561236757600080fd5b8286015b848110156122ee57805161237e81611efa565b835291830191830161236b565b600082601f83011261239c57600080fd5b815160206123ac611ec383611fc7565b82815260059290921b840181019181810190868411156123cb57600080fd5b8286015b848110156122ee576123e08161230b565b83529183019183016123cf565b600082601f8301126123fe57600080fd5b8151602061240e611ec383611fc7565b82815260059290921b8401810191818101908684111561242d57600080fd5b8286015b848110156122ee5780516001600160401b038111156124505760008081fd5b8701603f810189136124625760008081fd5b848101516040612474611ec383611e7d565b8281528b828486010111156124895760008081fd5b612498838983018487016120a6565b8652505050918301918301612431565b6000602082840312156124ba57600080fd5b81516001600160401b03808211156124d157600080fd5b908301906103e082860312156124e657600080fd5b6124ee611dbb565b825181526020830151602082015261250860408401612249565b604082015261251960608401612259565b606082015261252a60808401612275565b608082015261253b60a08401612275565b60a082015261254c60c08401612275565b60c082015260e083015160e0820152610100808401518183015250610120808401518381111561257b57600080fd5b6125878882870161228c565b82840152505061014061259b818501612249565b908201526101606125ad8482016122f9565b908201526101806125bf84820161230b565b908201526101a083810151908201526101c06125dc81850161231c565b908201526101e0838101519082015261020080840151908201526102208084015190820152610240808401518381111561261557600080fd5b61262188828701612327565b828401525050610260808401518381111561263b57600080fd5b6126478882870161238b565b828401525050610280808401518381111561266157600080fd5b61266d888287016123ed565b8284015250506102a0808401518381111561268757600080fd5b612693888287016123ed565b8284015250506102c091506126a9828401612249565b828201526102e091506126bd828401612249565b91810191909152610300828101519082015261032080830151908201526103408083015190820152610360808301519082015261038080830151908201526103a080830151908201526103c091820151918101919091529392505050565b634e487b7160e01b600052601160045260246000fd5b6001600160801b038181168382160280821691908281146127545761275461271b565b505092915050565b634e487b7160e01b600052601260045260246000fd5b6000826127815761278161275c565b500490565b634e487b7160e01b600052603260045260246000fd5b8082028115828204841417610aa257610aa261271b565b80820180821115610aa257610aa261271b565b80516001600160401b038116811461225457600080fd5b805162ffffff8116811461225457600080fd5b805161225481612109565b6000610540828403121561280e57600080fd5b612816611de4565b61281f83612249565b815261282d602084016122f9565b602082015261283e604084016122f9565b604082015261284f606084016122f9565b60608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152506101208084015181830152506101408084015181830152506101606128ae818501612275565b908201526101806128c0848201612275565b908201526101a083810151908201526101c080840151908201526101e06128e8818501612249565b908201526102006128fa848201612249565b9082015261022061290c848201612249565b9082015261024061291e848201612249565b90820152610260612930848201612249565b90820152610280612942848201612249565b908201526102a0612954848201612249565b908201526102c0612966848201612249565b908201526102e0612978848201612249565b9082015261030061298a848201612249565b9082015261032061299c848201612249565b908201526103406129ae848201612249565b908201526103606129c0848201612249565b908201526103806129d284820161231c565b908201526103a06129e48482016127c6565b908201526103c06129f68482016127c6565b908201526103e0612a0884820161230b565b90820152610400612a1a84820161230b565b90820152610420612a2c8482016127dd565b90820152610440612a3e8482016127f0565b90820152610460612a508482016127f0565b90820152610480612a628482016127f0565b908201526104a0612a748482016127c6565b908201526104c0612a868482016122f9565b908201526104e0612a98848201612249565b90820152610500612aaa84820161230b565b90820152610520928301519281019290925250919050565b600080600080600060a08688031215612ada57600080fd5b855194506020860151935060408601519250606086015191506080860151612b0181612118565b809150509295509295909350565b60006101408284031215612b2257600080fd5b612b2a611e07565b825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e0820152610100808401518183015250610120612b8e81850161230b565b908201529392505050565b600060208284031215612bab57600080fd5b81516101e381611efa565b600060208284031215612bc857600080fd5b81516101e381612118565b8281526040602082015260006101e060408301846120ca565b600082601f830112612bfd57600080fd5b81516020612c0d611ec383611fc7565b82815260059290921b84018101918181019086841115612c2c57600080fd5b8286015b848110156122ee5780518352918301918301612c30565b600082601f830112612c5857600080fd5b81516020612c68611ec383611fc7565b82815260089290921b84018101918181019086841115612c8757600080fd5b8286015b848110156122ee576101008189031215612ca55760008081fd5b612cad611e2a565b8151612cb881611efa565b8152612cc5828601612249565b858201526040612cd6818401612249565b908201526060612ce78382016122f9565b908201526080612cf88382016127dd565b9082015260a0612d09838201612249565b9082015260c0612d1a838201612249565b9082015260e0612d2b838201612249565b9082015283529183019161010001612c8b565b60008060408385031215612d5157600080fd5b82516001600160401b0380821115612d6857600080fd5b612d7486838701612bec565b93506020850151915080821115612d8a57600080fd5b50612d9785828601612c47565b9150509250929050565b81810381811115610aa257610aa261271b565b600060608201858352602060608185015281865180845260808601915060808160051b870101935082880160005b82811015612e1057607f19888703018452612dfe8683516120ca565b95509284019290840190600101612de2565b50505050838203604085015284518083528186019282019060005b81811015612e4757845183529383019391830191600101612e2b565b509098975050505050505050565b600082601f830112612e6657600080fd5b81516020612e76611ec383611fc7565b82815260059290921b84018101918181019086841115612e9557600080fd5b8286015b848110156122ee5780516001600160401b03811115612eb85760008081fd5b612ec68986838b0101612c47565b845250918301918301612e99565b600080600060608486031215612ee957600080fd5b835192506020808501516001600160401b0380821115612f0857600080fd5b818701915087601f830112612f1c57600080fd5b8151612f2a611ec382611fc7565b81815260059190911b8301840190848101908a831115612f4957600080fd5b8585015b83811015612f8157805185811115612f655760008081fd5b612f738d89838a0101612bec565b845250918601918601612f4d565b5060408a01519097509450505080831115612f9b57600080fd5b5050612fa986828701612e55565b9150509250925092565b6000600160ff1b8201612fc857612fc861271b565b5060000390565b60008160020b627fffff198103612fe857612fe861271b565b60000392915050565b600080600080600080600060e0888a03121561300c57600080fd5b875161301781611efa565b602089015190975061302881612109565b9550613036604089016122f9565b9450613044606089016122f9565b9350613052608089016122f9565b925061306060a0890161230b565b915060c088015161219181612118565b60008261307f5761307f61275c565b500690565b600083516130968184602088016120a6565b60f09390931b6001600160f01b0319169190920190815260020192915050565b600083516130c88184602088016120a6565b60e89390931b6001600160e81b0319169190920190815260030192915050565b600083516130fa8184602088016120a6565b60609390931b6bffffffffffffffffffffffff19169190920190815260140192915050565b6000600182016131315761313161271b565b506001019056fea2646970667358221220328655cf965f41cdc4c87e83eb9b12f800bffe05e2132e00c3cc0b716e5d489e64736f6c6343000815003300000000000000000000000022801e12ff90e8c9dc6c17e0fa21ed42a2d41f430000000000000000000000004689903fbbd2b49b872cf1f315bf60d2eb831698