@stargatefinance/stg-evm-sdk-v2 0.0.28 → 0.0.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/artifacts/src/feelibs/FeeLibV1.sol/FeeLibV1.json +3 -3
- package/artifacts/src/messaging/TokenMessaging.sol/TokenMessaging.json +33 -2
- package/artifacts/src/messaging/TokenMessagingOptions.sol/TokenMessagingOptions.json +28 -2
- package/deployments/bsc-sandbox-local/CreditMessaging.json +31 -26
- package/deployments/bsc-sandbox-local/FeeLibV1USDC.json +17 -17
- package/deployments/bsc-sandbox-local/FeeLibV1USDT.json +19 -19
- package/deployments/bsc-sandbox-local/RewardLib.json +7 -7
- package/deployments/bsc-sandbox-local/RewardRegistryLib.json +7 -7
- package/deployments/bsc-sandbox-local/RewardTokenMock.json +12 -12
- package/deployments/bsc-sandbox-local/StargateMultiRewarder.json +47 -47
- package/deployments/bsc-sandbox-local/StargateOFTUSDC.json +21 -21
- package/deployments/bsc-sandbox-local/StargateOFTUSDT.json +24 -24
- package/deployments/bsc-sandbox-local/StargateStaking.json +24 -24
- package/deployments/bsc-sandbox-local/TokenMessaging.json +74 -28
- package/deployments/bsc-sandbox-local/Treasurer.json +18 -18
- package/deployments/bsc-sandbox-local/USDCImpl.json +28 -28
- package/deployments/bsc-sandbox-local/USDCProxy.json +5 -5
- package/deployments/bsc-sandbox-local/USDCSignatureLib.json +7 -7
- package/deployments/bsc-sandbox-local/USDT.json +8 -8
- package/deployments/ethereum-sandbox-local/CreditMessaging.json +26 -21
- package/deployments/ethereum-sandbox-local/FeeLibV1ETH.json +12 -12
- package/deployments/ethereum-sandbox-local/FeeLibV1USDC.json +12 -12
- package/deployments/ethereum-sandbox-local/FeeLibV1USDT.json +12 -12
- package/deployments/ethereum-sandbox-local/RewardLib.json +5 -5
- package/deployments/ethereum-sandbox-local/RewardRegistryLib.json +5 -5
- package/deployments/ethereum-sandbox-local/RewardTokenMock.json +8 -8
- package/deployments/ethereum-sandbox-local/StargateMultiRewarder.json +39 -39
- package/deployments/ethereum-sandbox-local/StargatePoolNative.json +16 -16
- package/deployments/ethereum-sandbox-local/StargatePoolUSDC.json +18 -18
- package/deployments/ethereum-sandbox-local/StargatePoolUSDT.json +22 -22
- package/deployments/ethereum-sandbox-local/StargateStaking.json +20 -20
- package/deployments/ethereum-sandbox-local/TokenMessaging.json +69 -23
- package/deployments/ethereum-sandbox-local/Treasurer.json +13 -13
- package/deployments/ethereum-sandbox-local/USDCImpl.json +26 -26
- package/deployments/ethereum-sandbox-local/USDCProxy.json +5 -5
- package/deployments/ethereum-sandbox-local/USDCSignatureLib.json +5 -5
- package/deployments/ethereum-sandbox-local/USDT.json +6 -6
- package/deployments/polygon-sandbox-local/CreditMessaging.json +26 -21
- package/deployments/polygon-sandbox-local/FeeLibV1ETH.json +12 -12
- package/deployments/polygon-sandbox-local/FeeLibV1USDC.json +12 -12
- package/deployments/polygon-sandbox-local/FeeLibV1USDT.json +12 -12
- package/deployments/polygon-sandbox-local/OFTTokenETH.json +9 -9
- package/deployments/polygon-sandbox-local/RewardLib.json +5 -5
- package/deployments/polygon-sandbox-local/RewardRegistryLib.json +5 -5
- package/deployments/polygon-sandbox-local/RewardTokenMock.json +8 -8
- package/deployments/polygon-sandbox-local/StargateMultiRewarder.json +39 -39
- package/deployments/polygon-sandbox-local/StargateOFTETH.json +16 -16
- package/deployments/polygon-sandbox-local/StargateOFTUSDC.json +16 -16
- package/deployments/polygon-sandbox-local/StargatePoolUSDT.json +22 -22
- package/deployments/polygon-sandbox-local/StargateStaking.json +20 -20
- package/deployments/polygon-sandbox-local/TokenMessaging.json +69 -23
- package/deployments/polygon-sandbox-local/Treasurer.json +13 -13
- package/deployments/polygon-sandbox-local/USDCImpl.json +26 -26
- package/deployments/polygon-sandbox-local/USDCProxy.json +5 -5
- package/deployments/polygon-sandbox-local/USDCSignatureLib.json +5 -5
- package/deployments/polygon-sandbox-local/USDT.json +6 -6
- package/package.json +2 -2
- package/deployments/bsc-sandbox-local/FeeLibV1ETH.json +0 -606
- package/deployments/bsc-sandbox-local/PoolTokenETH.json +0 -607
- package/deployments/bsc-sandbox-local/StargatePoolETH.json +0 -2420
|
@@ -171,7 +171,7 @@
|
|
|
171
171
|
"type": "uint64"
|
|
172
172
|
}
|
|
173
173
|
],
|
|
174
|
-
"stateMutability": "
|
|
174
|
+
"stateMutability": "view",
|
|
175
175
|
"type": "function"
|
|
176
176
|
},
|
|
177
177
|
{
|
|
@@ -395,8 +395,8 @@
|
|
|
395
395
|
"type": "function"
|
|
396
396
|
}
|
|
397
397
|
],
|
|
398
|
-
"bytecode": "
|
|
399
|
-
"deployedBytecode": "
|
|
398
|
+
"bytecode": "0x60c06040523480156200001157600080fd5b506040516200107538038062001075833981016040819052620000349162000136565b6200003f33620000e6565b6001600160a01b038116608081905260408051630b484de560e11b815290516316909bca916004808201926020929091908290030181865afa1580156200008a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000b0919062000168565b6001811115620000c457620000c46200018b565b60a0816001811115620000db57620000db6200018b565b8152505050620001a1565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156200014957600080fd5b81516001600160a01b03811681146200016157600080fd5b9392505050565b6000602082840312156200017b57600080fd5b8151600281106200016157600080fd5b634e487b7160e01b600052602160045260246000fd5b60805160a051610ea1620001d46000396000818160c8015261061401526000818161024f015261030f0152610ea16000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c8063715018a6116100765780638da5cb5b1161005b5780638da5cb5b146102b1578063b8f1c460146102cf578063f2fde38b146102e257600080fd5b8063715018a61461029657806381993cd01461029e57600080fd5b806343d9564d116100a757806343d9564d1461020957806368a78781146102355780636c099dee1461024a57600080fd5b806316909bca146100c35780632e80d70114610100575b600080fd5b6100ea7f000000000000000000000000000000000000000000000000000000000000000081565b6040516100f79190610b3c565b60405180910390f35b6101bb61010e366004610b91565b60016020526000908152604090205460ff81169067ffffffffffffffff6101008204811691690100000000000000000081049091169062ffffff7101000000000000000000000000000000000082048116917401000000000000000000000000000000000000000081048216917701000000000000000000000000000000000000000000000082048116917a01000000000000000000000000000000000000000000000000000090041687565b60408051971515885267ffffffffffffffff9687166020890152959094169486019490945262ffffff91821660608601528116608085015291821660a08401521660c082015260e0016100f7565b61021c610217366004610bac565b6102f5565b60405167ffffffffffffffff90911681526020016100f7565b610248610243366004610bef565b610377565b005b6102717f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100f7565b610248610543565b61021c6102ac366004610bac565b610557565b60005473ffffffffffffffffffffffffffffffffffffffff16610271565b6102486102dd366004610c75565b6106f2565b6102486102f0366004610cb1565b610778565b60003373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610366576040517f32cbf11b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61036f82610557565b90505b919050565b61037f610834565b620f42408462ffffff16118061039c5750620f42408362ffffff16115b806103ae5750620f42408262ffffff16115b806103cc57508567ffffffffffffffff168567ffffffffffffffff16105b15610403576040517fcb1d3d2f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600160008963ffffffff1663ffffffff1681526020019081526020016000209050868160000160016101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550858160000160096101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550848160000160116101000a81548162ffffff021916908362ffffff160217905550838160000160146101000a81548162ffffff021916908362ffffff160217905550828160000160176101000a81548162ffffff021916908362ffffff1602179055508181600001601a6101000a81548162ffffff021916908362ffffff1602179055507f3d36fffb5220a07a64c12b747423f0dc01a37a0a9d1b3ac2ae00325f688812d28882604051610531929190610ce7565b60405180910390a15050505050505050565b61054b610834565b61055560006108b5565b565b60008060018161056d6040860160208701610b91565b63ffffffff1681526020810191909152604001600020805490915060ff16156105c2576040517f1dd7776600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006105d46060850160408601610d74565b905060006105e86080860160608701610d74565b83549091507a010000000000000000000000000000000000000000000000000000900462ffffff1660017f0000000000000000000000000000000000000000000000000000000000000000600181111561064457610644610b0d565b1480610658575067ffffffffffffffff8216155b80610666575062ffffff8116155b1561068657610675848461092a565b61067f9084610dbe565b94506106e9565b8167ffffffffffffffff168367ffffffffffffffff16116106b5576106ab8184610a3c565b61067f9084610ddf565b6106c8846106c38486610dbe565b61092a565b6106d28284610a3c565b6106dc9085610ddf565b6106e69190610dbe565b94505b50505050919050565b6106fa610834565b63ffffffff821660008181526001602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168515159081179091558251938452908301527f0ec04394b19756dd5cac9bd350faf4aa4448cd0658118f0b86496179e726c4a1910160405180910390a15050565b610780610834565b73ffffffffffffffffffffffffffffffffffffffff8116610828576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610831816108b5565b50565b60005473ffffffffffffffffffffffffffffffffffffffff163314610555576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161081f565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b8154600090819067ffffffffffffffff610100909104811690841611156109ba57835467ffffffffffffffff69010000000000000000009091048116908416111561099657835477010000000000000000000000000000000000000000000000900462ffffff166109d7565b835474010000000000000000000000000000000000000000900462ffffff166109d7565b835471010000000000000000000000000000000000900462ffffff165b62ffffff1690506000811180156109f8575060008367ffffffffffffffff16115b15610a3557610a32620f4240610a188367ffffffffffffffff8716610e00565b610a229190610e1d565b610a2d906001610e58565b610a6f565b91505b5092915050565b6000610a68620f4240610a5e62ffffff861667ffffffffffffffff8616610e00565b610a2d9190610e1d565b9392505050565b600067ffffffffffffffff821115610b09576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201527f3420626974730000000000000000000000000000000000000000000000000000606482015260840161081f565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6020810160028310610b77577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b803563ffffffff8116811461037257600080fd5b600060208284031215610ba357600080fd5b610a6882610b7d565b600060c08284031215610bbe57600080fd5b50919050565b803567ffffffffffffffff8116811461037257600080fd5b803562ffffff8116811461037257600080fd5b600080600080600080600060e0888a031215610c0a57600080fd5b610c1388610b7d565b9650610c2160208901610bc4565b9550610c2f60408901610bc4565b9450610c3d60608901610bdc565b9350610c4b60808901610bdc565b9250610c5960a08901610bdc565b9150610c6760c08901610bdc565b905092959891949750929550565b60008060408385031215610c8857600080fd5b610c9183610b7d565b915060208301358015158114610ca657600080fd5b809150509250929050565b600060208284031215610cc357600080fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610a6857600080fd5b63ffffffff83168152815460ff81161515602083015267ffffffffffffffff600882901c81166040840152604882901c16606083015262ffffff608882901c8116608084015260a082811c82169084015261010083019190610d5560c08501828460b81c1662ffffff169052565b610d6b60e08501828460d01c1662ffffff169052565b50509392505050565b600060208284031215610d8657600080fd5b610a6882610bc4565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b67ffffffffffffffff828116828216039080821115610a3557610a35610d8f565b67ffffffffffffffff818116838216019080821115610a3557610a35610d8f565b8082028115828204841417610e1757610e17610d8f565b92915050565b600082610e53577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b80820180821115610e1757610e17610d8f56fea26469706673582212202fa333211e109330f67ccb03d126e3b47de757cd3087d6b38ac81862ddc152ca64736f6c63430008160033",
|
|
399
|
+
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100be5760003560e01c8063715018a6116100765780638da5cb5b1161005b5780638da5cb5b146102b1578063b8f1c460146102cf578063f2fde38b146102e257600080fd5b8063715018a61461029657806381993cd01461029e57600080fd5b806343d9564d116100a757806343d9564d1461020957806368a78781146102355780636c099dee1461024a57600080fd5b806316909bca146100c35780632e80d70114610100575b600080fd5b6100ea7f000000000000000000000000000000000000000000000000000000000000000081565b6040516100f79190610b3c565b60405180910390f35b6101bb61010e366004610b91565b60016020526000908152604090205460ff81169067ffffffffffffffff6101008204811691690100000000000000000081049091169062ffffff7101000000000000000000000000000000000082048116917401000000000000000000000000000000000000000081048216917701000000000000000000000000000000000000000000000082048116917a01000000000000000000000000000000000000000000000000000090041687565b60408051971515885267ffffffffffffffff9687166020890152959094169486019490945262ffffff91821660608601528116608085015291821660a08401521660c082015260e0016100f7565b61021c610217366004610bac565b6102f5565b60405167ffffffffffffffff90911681526020016100f7565b610248610243366004610bef565b610377565b005b6102717f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100f7565b610248610543565b61021c6102ac366004610bac565b610557565b60005473ffffffffffffffffffffffffffffffffffffffff16610271565b6102486102dd366004610c75565b6106f2565b6102486102f0366004610cb1565b610778565b60003373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610366576040517f32cbf11b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61036f82610557565b90505b919050565b61037f610834565b620f42408462ffffff16118061039c5750620f42408362ffffff16115b806103ae5750620f42408262ffffff16115b806103cc57508567ffffffffffffffff168567ffffffffffffffff16105b15610403576040517fcb1d3d2f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600160008963ffffffff1663ffffffff1681526020019081526020016000209050868160000160016101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550858160000160096101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550848160000160116101000a81548162ffffff021916908362ffffff160217905550838160000160146101000a81548162ffffff021916908362ffffff160217905550828160000160176101000a81548162ffffff021916908362ffffff1602179055508181600001601a6101000a81548162ffffff021916908362ffffff1602179055507f3d36fffb5220a07a64c12b747423f0dc01a37a0a9d1b3ac2ae00325f688812d28882604051610531929190610ce7565b60405180910390a15050505050505050565b61054b610834565b61055560006108b5565b565b60008060018161056d6040860160208701610b91565b63ffffffff1681526020810191909152604001600020805490915060ff16156105c2576040517f1dd7776600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006105d46060850160408601610d74565b905060006105e86080860160608701610d74565b83549091507a010000000000000000000000000000000000000000000000000000900462ffffff1660017f0000000000000000000000000000000000000000000000000000000000000000600181111561064457610644610b0d565b1480610658575067ffffffffffffffff8216155b80610666575062ffffff8116155b1561068657610675848461092a565b61067f9084610dbe565b94506106e9565b8167ffffffffffffffff168367ffffffffffffffff16116106b5576106ab8184610a3c565b61067f9084610ddf565b6106c8846106c38486610dbe565b61092a565b6106d28284610a3c565b6106dc9085610ddf565b6106e69190610dbe565b94505b50505050919050565b6106fa610834565b63ffffffff821660008181526001602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168515159081179091558251938452908301527f0ec04394b19756dd5cac9bd350faf4aa4448cd0658118f0b86496179e726c4a1910160405180910390a15050565b610780610834565b73ffffffffffffffffffffffffffffffffffffffff8116610828576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610831816108b5565b50565b60005473ffffffffffffffffffffffffffffffffffffffff163314610555576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161081f565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b8154600090819067ffffffffffffffff610100909104811690841611156109ba57835467ffffffffffffffff69010000000000000000009091048116908416111561099657835477010000000000000000000000000000000000000000000000900462ffffff166109d7565b835474010000000000000000000000000000000000000000900462ffffff166109d7565b835471010000000000000000000000000000000000900462ffffff165b62ffffff1690506000811180156109f8575060008367ffffffffffffffff16115b15610a3557610a32620f4240610a188367ffffffffffffffff8716610e00565b610a229190610e1d565b610a2d906001610e58565b610a6f565b91505b5092915050565b6000610a68620f4240610a5e62ffffff861667ffffffffffffffff8616610e00565b610a2d9190610e1d565b9392505050565b600067ffffffffffffffff821115610b09576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201527f3420626974730000000000000000000000000000000000000000000000000000606482015260840161081f565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6020810160028310610b77577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b803563ffffffff8116811461037257600080fd5b600060208284031215610ba357600080fd5b610a6882610b7d565b600060c08284031215610bbe57600080fd5b50919050565b803567ffffffffffffffff8116811461037257600080fd5b803562ffffff8116811461037257600080fd5b600080600080600080600060e0888a031215610c0a57600080fd5b610c1388610b7d565b9650610c2160208901610bc4565b9550610c2f60408901610bc4565b9450610c3d60608901610bdc565b9350610c4b60808901610bdc565b9250610c5960a08901610bdc565b9150610c6760c08901610bdc565b905092959891949750929550565b60008060408385031215610c8857600080fd5b610c9183610b7d565b915060208301358015158114610ca657600080fd5b809150509250929050565b600060208284031215610cc357600080fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610a6857600080fd5b63ffffffff83168152815460ff81161515602083015267ffffffffffffffff600882901c81166040840152604882901c16606083015262ffffff608882901c8116608084015260a082811c82169084015261010083019190610d5560c08501828460b81c1662ffffff169052565b610d6b60e08501828460d01c1662ffffff169052565b50509392505050565b600060208284031215610d8657600080fd5b610a6882610bc4565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b67ffffffffffffffff828116828216039080821115610a3557610a35610d8f565b67ffffffffffffffff818116838216019080821115610a3557610a35610d8f565b8082028115828204841417610e1757610e17610d8f565b92915050565b600082610e53577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b80820180821115610e1757610e17610d8f56fea26469706673582212202fa333211e109330f67ccb03d126e3b47de757cd3087d6b38ac81862ddc152ca64736f6c63430008160033",
|
|
400
400
|
"linkReferences": {},
|
|
401
401
|
"deployedLinkReferences": {}
|
|
402
402
|
}
|
|
@@ -132,6 +132,11 @@
|
|
|
132
132
|
"name": "Messaging_MaxNumPassengersExceedsQueueCapacity",
|
|
133
133
|
"type": "error"
|
|
134
134
|
},
|
|
135
|
+
{
|
|
136
|
+
"inputs": [],
|
|
137
|
+
"name": "Messaging_NotEnoughPassengers",
|
|
138
|
+
"type": "error"
|
|
139
|
+
},
|
|
135
140
|
{
|
|
136
141
|
"inputs": [],
|
|
137
142
|
"name": "Messaging_Unauthorized",
|
|
@@ -544,6 +549,32 @@
|
|
|
544
549
|
"name": "PreCrimeSet",
|
|
545
550
|
"type": "event"
|
|
546
551
|
},
|
|
552
|
+
{
|
|
553
|
+
"inputs": [],
|
|
554
|
+
"name": "MSG_TYPE_BUS",
|
|
555
|
+
"outputs": [
|
|
556
|
+
{
|
|
557
|
+
"internalType": "uint8",
|
|
558
|
+
"name": "",
|
|
559
|
+
"type": "uint8"
|
|
560
|
+
}
|
|
561
|
+
],
|
|
562
|
+
"stateMutability": "view",
|
|
563
|
+
"type": "function"
|
|
564
|
+
},
|
|
565
|
+
{
|
|
566
|
+
"inputs": [],
|
|
567
|
+
"name": "MSG_TYPE_TAXI",
|
|
568
|
+
"outputs": [
|
|
569
|
+
{
|
|
570
|
+
"internalType": "uint8",
|
|
571
|
+
"name": "",
|
|
572
|
+
"type": "uint8"
|
|
573
|
+
}
|
|
574
|
+
],
|
|
575
|
+
"stateMutability": "view",
|
|
576
|
+
"type": "function"
|
|
577
|
+
},
|
|
547
578
|
{
|
|
548
579
|
"inputs": [
|
|
549
580
|
{
|
|
@@ -1821,8 +1852,8 @@
|
|
|
1821
1852
|
"type": "function"
|
|
1822
1853
|
}
|
|
1823
1854
|
],
|
|
1824
|
-
"bytecode": "0x60e06040523480156200001157600080fd5b506040516200540038038062005400833981016040819052620000349162000207565b82828181818162000045336200019a565b6001600160a01b0380831660805281166200007357604051632d618d8160e21b815260040160405180910390fd5b60805160405163ca5eb5e160e01b81526001600160a01b0383811660048301529091169063ca5eb5e190602401600060405180830381600087803b158015620000bb57600080fd5b505af1158015620000d0573d6000803e3d6000fd5b5050505050505050505060028166ffffffffffffff16101562000106576040516327f53ac760e01b815260040160405180910390fd5b8066ffffffffffffff1660a08166ffffffffffffff16815250506080516001600160a01b031663416ecebf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000161573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000187919062000260565b63ffffffff1660c052506200028f915050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200020257600080fd5b919050565b6000806000606084860312156200021d57600080fd5b6200022884620001ea565b92506200023860208501620001ea565b9150604084015166ffffffffffffff811681146200025557600080fd5b809150509250925092565b6000602082840312156200027357600080fd5b815163ffffffff811681146200028857600080fd5b9392505050565b60805160a05160c0516150fb620003056000396000611a9801526000818161079101528181610aea01528181610c3b01528181610e50015281816111550152818161158701526115d101526000818161047e01528181610b4101528181611bbb01528181612321015261264701526150fb6000f3fe6080604052600436106102f25760003560e01c806385afd4531161018f578063c39d902c116100e1578063e4c572cc1161008a578063f912278a11610064578063f912278a14610a4f578063ff6fb30014610a84578063ff7bd03d14610a9757600080fd5b8063e4c572cc146109d0578063f2fde38b146109f0578063f8d50da614610a1057600080fd5b8063d117b562116100bb578063d117b56214610932578063d42438851461097f578063d8e8dbc71461099f57600080fd5b8063c39d902c146108df578063ca5eb5e1146108ff578063d045a0dc1461091f57600080fd5b8063b37c9a7f11610143578063bb0b6a531161011d578063bb0b6a5314610871578063bc70b354146108ac578063bd815db0146108cc57600080fd5b8063b37c9a7f14610811578063b731ea0a14610831578063b98bd0701461085157600080fd5b80638f71f7dd116101745780638f71f7dd1461075f57806390fdb20c1461077f578063917df23b146107cb57600080fd5b806385afd453146107135780638da5cb5b1461074157600080fd5b80635f6d9ae411610248578063715018a6116101fc5780637d25a05e116101d65780637d25a05e1461069757806382413eac146106d3578063826f1fb1146106f357600080fd5b8063715018a614610602578063731dbe0c1461061757806375d2208c1461067757600080fd5b806365b9bacb1161022d57806365b9bacb146104f65780636763d689146105165780636ad9914d1461053657600080fd5b80635f6d9ae4146104a057806364e4ac27146104d657600080fd5b806332e4e363116102aa5780635535d461116102845780635535d4611461040f5780635a0dfe4d1461043c5780635e280f111461046c57600080fd5b806332e4e363146103a45780633400288b146103dc57806352ae2879146103fc57600080fd5b806317442b70116102db57806317442b70146103425780632dca2f51146103645780633292cf021461038457600080fd5b8063086431ec146102f757806313137d651461032d575b600080fd5b34801561030357600080fd5b50610317610312366004613bf8565b610ab7565b6040516103249190613c4b565b60405180910390f35b61034061033b366004613c91565b610b3f565b005b34801561034e57600080fd5b5060408051600181526002602082015201610324565b34801561037057600080fd5b5061034061037f366004613d30565b610c31565b34801561039057600080fd5b5061031761039f366004613d8f565b610d06565b3480156103b057600080fd5b506005546103c4906001600160a01b031681565b6040516001600160a01b039091168152602001610324565b3480156103e857600080fd5b506103406103f7366004613ddd565b610d4f565b34801561040857600080fd5b50306103c4565b34801561041b57600080fd5b5061042f61042a366004613e19565b610d65565b6040516103249190613e93565b34801561044857600080fd5b5061045c610457366004613ddd565b610e0a565b6040519015158152602001610324565b34801561047857600080fd5b506103c47f000000000000000000000000000000000000000000000000000000000000000081565b3480156104ac57600080fd5b506103c46104bb366004613ead565b6004602052600090815260409020546001600160a01b031681565b6104e96104e4366004613bf8565b610e29565b6040516103249190613efc565b34801561050257600080fd5b50610340610511366004613f0a565b610ed3565b34801561052257600080fd5b50610340610531366004613f0a565b610f53565b34801561054257600080fd5b506105b6610551366004613f4b565b6008602052600090815260409020805460019091015460ff8216916effffffffffffffffffffffffffffff6101008204811692700100000000000000000000000000000000909204169066ffffffffffffff8082169167010000000000000090041685565b6040805160ff90961686526effffffffffffffffffffffffffffff9485166020870152939092169284019290925266ffffffffffffff918216606084015216608082015260a001610324565b34801561060e57600080fd5b50610340610fd3565b34801561062357600080fd5b50610656610632366004613f4b565b6009602052600090815260409020546fffffffffffffffffffffffffffffffff1681565b6040516fffffffffffffffffffffffffffffffff9091168152602001610324565b34801561068357600080fd5b50610317610692366004613f66565b610fe7565b3480156106a357600080fd5b506106ba6106b2366004613ddd565b600092915050565b60405167ffffffffffffffff9091168152602001610324565b3480156106df57600080fd5b5061045c6106ee366004613f90565b611037565b3480156106ff57600080fd5b5061034061070e366004613ff6565b611098565b34801561071f57600080fd5b5061073361072e366004614011565b61110d565b604051610324929190614023565b34801561074d57600080fd5b506000546001600160a01b03166103c4565b34801561076b57600080fd5b5061034061077a36600461405f565b611230565b34801561078b57600080fd5b506107b37f000000000000000000000000000000000000000000000000000000000000000081565b60405166ffffffffffffff9091168152602001610324565b3480156107d757600080fd5b506002546107fe9074010000000000000000000000000000000000000000900461ffff1681565b60405161ffff9091168152602001610324565b34801561081d57600080fd5b5061034061082c3660046140d7565b6114f3565b34801561083d57600080fd5b506002546103c4906001600160a01b031681565b34801561085d57600080fd5b5061034061086c366004614131565b6116eb565b34801561087d57600080fd5b5061089e61088c366004613f4b565b60016020526000908152604090205481565b604051908152602001610324565b3480156108b857600080fd5b5061042f6108c7366004614173565b611705565b6103406108da366004614131565b6118c6565b3480156108eb57600080fd5b506103406108fa3660046141f3565b611a52565b34801561090b57600080fd5b5061034061091a366004613ff6565b611b7b565b61034061092d366004613c91565b611c13565b34801561093e57600080fd5b5061089e61094d366004614236565b63ffffffff909116600090815260086020908152604080832066ffffffffffffff909416835260029093019052205490565b34801561098b57600080fd5b5061034061099a366004613ff6565b611c5b565b3480156109ab57600080fd5b506107fe6109ba366004613ff6565b60036020526000908152604090205461ffff1681565b3480156109dc57600080fd5b506103406109eb366004613ead565b611cc9565b3480156109fc57600080fd5b50610340610a0b366004613ff6565b611d4c565b348015610a1c57600080fd5b50610656610a2b366004613f4b565b6007602052600090815260409020546fffffffffffffffffffffffffffffffff1681565b348015610a5b57600080fd5b50610a6f610a6a366004613ddd565b611df6565b60408051928352602083019190915201610324565b6104e9610a92366004614260565b611eee565b348015610aa357600080fd5b5061045c610ab23660046142c1565b611f3b565b604080518082019091526000808252602082015263ffffffff80851660009081526008602052604081209091610b1491907f00000000000000000000000000000000000000000000000000000000000000009087908790611f7116565b9050600080610b23878461228e565b91509150610b34878383600061230b565b979650505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610ba8576040517f91ac5e4f0000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b60208701803590610bc290610bbd908a613f4b565b6123e3565b14610c1957610bd46020880188613f4b565b6040517fc26bebcc00000000000000000000000000000000000000000000000000000000815263ffffffff909116600482015260208801356024820152604401610b9f565b610c2887878787878787612438565b50505050505050565b610c39612464565b7f000000000000000000000000000000000000000000000000000000000000000066ffffffffffffff168160ff1610610c9e576040517f31843b5600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b63ffffffff8083166000908152600860205260409020610cc09183906124d816565b6040805163ffffffff8416815260ff831660208201527ff9fa6c3c4dbf13c4a8348c3102ef22789aa450b81e492b853e93f9701e08958091015b60405180910390a15050565b6040805180820190915260008082526020820152600080610d2685612507565b9092509050610d46610d3e6040870160208801613f4b565b83838761230b565b95945050505050565b610d57612464565b610d61828261257e565b5050565b600660209081526000928352604080842090915290825290208054610d89906142dd565b80601f0160208091040260200160405190810160405280929190818152602001828054610db5906142dd565b8015610e025780601f10610dd757610100808354040283529160200191610e02565b820191906000526020600020905b815481529060010190602001808311610de557829003601f168201915b505050505081565b63ffffffff821660009081526001602052604090205481145b92915050565b610e31613b53565b63ffffffff80851660009081526008602052604081209091610e7a91907f000000000000000000000000000000000000000000000000000000000000000090879087906125cc16565b9050600080610e89878461228e565b91509150610eaf878383604051806040016040528034815260200160008152503361263b565b9350610ec987846000015185602001518760000151612714565b5050509392505050565b610edb612464565b63ffffffff821660008181526007602090815260409182902080546fffffffffffffffffffffffffffffffff19166fffffffffffffffffffffffffffffffff86169081179091558251938452908301527f2de2cdf6b9f29bfb9afedda6cf015c5fcb9832c9c0c3dcc06d501d964cf565379101610cfa565b610f5b612464565b63ffffffff821660008181526009602090815260409182902080546fffffffffffffffffffffffffffffffff19166fffffffffffffffffffffffffffffffff86169081179091558251938452908301527f5b9fac6cf74b12ad67aa143075523ab25ca781b0f611c4897b31d1500f2ae9629101610cfa565b610fdb612464565b610fe5600061276c565b565b604080518082019091526000808252602082015263ffffffff808416600090815260086020526040902061101d9184906127d416565b6fffffffffffffffffffffffffffffffff16815292915050565b60006110438484612872565b1561108c57600061105485856128d6565b50505061ffff81166000908152600460205260409020549091506001600160a01b0380851691160361108a576001915050611090565b505b5060005b949350505050565b6110a0612464565b600580547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081179091556040519081527f5767d79cd17d7554509a4dd59a5a7a9175c7e36466455d7b2fa4788228808579906020015b60405180910390a150565b611115613b53565b60408051808201909152600081526060602082015260006111353361297b565b905060006111496040860160208701613f4b565b905060008060006111ea7f00000000000000000000000000000000000000000000000000000000000000008560405180608001604052808961ffff1681526020018c6040013581526020018c60600160208101906111a79190614340565b67ffffffffffffffff1681526020016111c660a08e0160808f0161435d565b1515905263ffffffff8089166000908152600860205260409020939291906129d716565b60408051808201825266ffffffffffffff90941684526020840192909252908901516fffffffffffffffffffffffffffffffff9190911690529698969750505050505050565b611238612464565b8061ffff16600003611276576040517fe447547600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60025461ffff740100000000000000000000000000000000000000009091048116908216111561131f57600280547fffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000061ffff8416908102919091179091556040519081527f8f1145f51954bc9512a08693182e170a57b63ca4f6acc321b87c526970f4c0179060200160405180910390a15b6001600160a01b0380831660009081526003602090815260408083205461ffff868116855260049093529220549116911681156113905761ffff8216600090815260046020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690555b6001600160a01b038116156113de576001600160a01b038116600090815260036020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001690555b6001600160a01b03841661142a5761ffff8316600090815260046020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556114a7565b6001600160a01b038416600081815260036020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001661ffff891690811790915583526004909152902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690911790555b604080516001600160a01b038616815261ffff851660208201527fac53470cf8e9e3d673caa7d47cd7db36c0d38cf37fc147c70c92bc0c1c4734f591015b60405180910390a150505050565b6114fb612464565b60005b838110156116e45760006008600087878581811061151e5761151e614378565b90506020020160208101906115339190613f4b565b63ffffffff16815260208101919091526040016000908120600181015490925066ffffffffffffff908116908616101561157a57600182015466ffffffffffffff1661157c565b845b905060006115ab60017f00000000000000000000000000000000000000000000000000000000000000006143d6565b66ffffffffffffff168566ffffffffffffff1610156115ca57846115f5565b6115f560017f00000000000000000000000000000000000000000000000000000000000000006143d6565b9050815b8166ffffffffffffff168166ffffffffffffff16116116615766ffffffffffffff8116600090815260028501602052604090207f4600000000000000000000000000000000000000000000000000000000000000905580611659816143fd565b9150506115f9565b507f67f9f72c3363a683d34792d61421ee605a284c875fe6db2293d46cb024ae9bdc88888681811061169557611695614378565b90506020020160208101906116aa9190613f4b565b6040805163ffffffff909216825266ffffffffffffff808616602084015284169082015260600160405180910390a15050506001016114fe565b5050505050565b6116f3612464565b610d6161170082846144f7565b612ba0565b63ffffffff8416600090815260066020908152604080832061ffff87168452909152812080546060929190611739906142dd565b80601f0160208091040260200160405190810160405280929190818152602001828054611765906142dd565b80156117b25780601f10611787576101008083540402835291602001916117b2565b820191906000526020600020905b81548152906001019060200180831161179557829003601f168201915b5050505050905080516000036118025783838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509294506110909350505050565b6000839003611812579050611090565b600283106118905761185984848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612ca792505050565b80611867846002818861460d565b60405160200161187993929190614637565b604051602081830303815290604052915050611090565b83836040517f9a6d49cd000000000000000000000000000000000000000000000000000000008152600401610b9f92919061468a565b60005b818110156119b857368383838181106118e4576118e4614378565b90506020028101906118f6919061469e565b90506119126119086020830183613f4b565b6020830135610e0a565b61191c57506119b0565b3063d045a0dc60c08301358360a081013561193b6101008301836146dc565b61194c610100890160e08a01613ff6565b61195a6101208a018a6146dc565b6040518963ffffffff1660e01b815260040161197c979695949392919061477f565b6000604051808303818588803b15801561199557600080fd5b505af11580156119a9573d6000803e3d6000fd5b5050505050505b6001016118c9565b50336001600160a01b0316638e9e70996040518163ffffffff1660e01b8152600401600060405180830381865afa1580156119f7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611a1f91908101906147d6565b6040517f8351eea7000000000000000000000000000000000000000000000000000000008152600401610b9f9190613e93565b6005546001600160a01b03163314611a96576040517fc63aab2c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff168363ffffffff1603611afb576040517fa27dd10200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b63ffffffff8084166000908152600860205260409020611b1f9184908490612cec16565b6040805163ffffffff851681526effffffffffffffffffffffffffffff848116602083015283168183015290517fb8611e882dee0ae26e55604af1d40fa9f0ec18a0e28dcee93da3b15239930caf9181900360600190a1505050565b611b83612464565b6040517fca5eb5e10000000000000000000000000000000000000000000000000000000081526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e190602401600060405180830381600087803b158015611bff57600080fd5b505af11580156116e4573d6000803e3d6000fd5b333014611c4c576040517f14d4a4e800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610c2887878787878787610c19565b611c63612464565b600280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081179091556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c242776090602001611102565b611cd1612464565b600280547fffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000061ffff8416908102919091179091556040519081527f8f1145f51954bc9512a08693182e170a57b63ca4f6acc321b87c526970f4c01790602001611102565b611d54612464565b6001600160a01b038116611dea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610b9f565b611df38161276c565b50565b60008080611e0584602b614844565b67ffffffffffffffff811115611e1d57611e1d614423565b6040519080825280601f01601f191660200182016040528015611e47576020820181803683370190505b5090506000611e5860008084612d66565b90506000611e6887846000612d98565b905085611e78888484600061230b565b51611e83919061488a565b63ffffffff881660009081526009602052604081205491965090611ec69089908690611ec1906fffffffffffffffffffffffffffffffff168b614844565b612d98565b905086611ed6898584600061230b565b51611ee1919061488a565b9450505050509250929050565b611ef6613b53565b600080611f0286612507565b9092509050611f31611f1a6040880160208901613f4b565b8383611f2b368a90038a018a61489e565b8861263b565b9695505050505050565b6000602082018035906001908390611f539086613f4b565b63ffffffff1681526020810191909152604001600020541492915050565b604080516080810182526000808252602082018190529181018290526060808201529080611f9f858561301b565b6001890154919350915066ffffffffffffff8083166701000000000000009092041614611ff8576040517ff288005700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60ff82166020840181905266ffffffffffffff8216845215806120225750865460ff908116908316115b1561205e576040517fc5ad74c700000000000000000000000000000000000000000000000000000000815260ff83166004820152602401610b9f565b600066ffffffffffffff8216156120b157600288016000886120816001866143d6565b61208b91906148d0565b66ffffffffffffff1666ffffffffffffff168152602001908152602001600020546120b4565b60005b905060075b858110156121955760008782886120d182602b6148f6565b926120de9392919061460d565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060405192935061212892869250849150602001614909565b604051602081830303815290604052805190602001209250600081602a8151811061215557612155614378565b60209101015160f81c6001149050801561218057604087018051906121798261492f565b60ff169052505b5061218e9050602b826148f6565b90506120b9565b50600060016121a760ff86168561494e565b6121b191906143d6565b60018a015490915066ffffffffffffff90811690821610158061220457506002890160006121df8a846148d0565b66ffffffffffffff1666ffffffffffffff168152602001908152602001600020548214155b1561223b576040517f5b3f67cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612248866007818a61460d565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505060608601525092979650505050505050565b63ffffffff8216600090815260096020526040908190205490820151606083810151909283926fffffffffffffffffffffffffffffffff909116916122d89160ff16908390612d66565b9250600081856040015160ff166122ef919061496e565b905061230086866060015183612d98565b925050509250929050565b60408051808201909152600080825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff16815260200161236e896123e3565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b81526004016123a39291906149a2565b6040805180830381865afa1580156123bf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d469190614a69565b63ffffffff811660009081526001602052604081205480610e23576040517ff6ff4fb700000000000000000000000000000000000000000000000000000000815263ffffffff84166004820152602401610b9f565b61244285856130bf565b15612458576124538787878761310f565b610c28565b610c28878787876133bd565b6000546001600160a01b03163314610fe5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b9f565b81547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff91909116179055565b60608060006125153361297b565b905061254f6125276020860186613ff6565b82604087013561253d6080890160608a01614340565b61254a60808a018a6146dc565b61348b565b92506125766125646040860160208701613f4b565b61257160a08701876146dc565b613530565b915050915091565b63ffffffff8216600081815260016020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b9101610cfa565b60408051608081018252600080825260208201819052918101919091526060808201526125fb85858585611f71565b9050806020015160ff168160000151018560010160076101000a81548166ffffffffffffff021916908366ffffffffffffff160217905550949350505050565b612643613b53565b82517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff1681526020016126958c6123e3565b81526020018a815260200189815260200160008960200151111515815250866040518463ffffffff1660e01b81526004016126d19291906149a2565b60806040518083038185885af11580156126ef573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b349190614a85565b6040805163ffffffff8616815266ffffffffffffff8516602082015260ff841691810191909152606081018290527fac3ae656fc8519b8303cdfef076feabd744d2095edbae20d58c938a105d9f0d1906080016114e5565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000816127f857825461010090046effffffffffffffffffffffffffffff16612820565b825470010000000000000000000000000000000090046effffffffffffffffffffffffffffff165b6effffffffffffffffffffffffffffff1690506000819003610e23576040517f5bc181900000000000000000000000000000000000000000000000000000000081528215156004820152602401610b9f565b6000602b8210156128af576040517fde01ff2300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600183836000816128c2576128c2614378565b919091013560f81c91909114949350505050565b6000808060606128ea60036001878961460d565b6128f391614acf565b60f01c935061290660236003878961460d565b61290f91614b15565b925061291f602b6023878961460d565b61292891614b33565b60c01c915061293a85602b818961460d565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509699959850939650909450505050565b6001600160a01b03811660009081526003602052604081205461ffff16908190036129d2576040517f8b6fecb700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b600184810180547fffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000811666ffffffffffffff91821680850183169190911792839055926060926000928881166701000000000000009092048116860390920190911610612a70576040517ffa36e2ba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612a7984613639565b9150612a928460600151886127d490919063ffffffff16565b9050600066ffffffffffffff841615612af6578760020160008866ffffffffffffff166001870366ffffffffffffff1681612acf57612acf61485b565b0666ffffffffffffff1666ffffffffffffff16815260200190815260200160002054612af9565b60005b90508083604051602001612b0e929190614909565b604051602081830303815290604052805190602001208860020160008987612b3691906148d0565b66ffffffffffffff1666ffffffffffffff168152602001908152602001600020819055507fd73bff10645d27f6036f6a705dfca85bd9801a94175d09d4b5a4029acc4109a2868585604051612b8d93929190614b79565b60405180910390a1509450945094915050565b60005b8151811015612c7757612bd2828281518110612bc157612bc1614378565b602002602001015160400151612ca7565b818181518110612be457612be4614378565b60200260200101516040015160066000848481518110612c0657612c06614378565b60200260200101516000015163ffffffff1663ffffffff1681526020019081526020016000206000848481518110612c4057612c40614378565b60200260200101516020015161ffff1661ffff1681526020019081526020016000209081612c6e9190614bf7565b50600101612ba3565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b674816040516111029190614cb7565b600281015161ffff8116600314610d6157816040517f9a6d49cd000000000000000000000000000000000000000000000000000000008152600401610b9f9190613e93565b82547fff000000000000000000000000000000000000000000000000000000000000ff166101006effffffffffffffffffffffffffffff938416027fff000000000000000000000000000000ffffffffffffffffffffffffffffffff16177001000000000000000000000000000000009190921602179055565b60606002848484604051602001612d809493929190614d60565b60405160208183030381529060405290509392505050565b63ffffffff83166000908152600660209081526040808320838052909152812080546060929190612dc8906142dd565b80601f0160208091040260200160405190810160405280929190818152602001828054612df4906142dd565b8015612e415780601f10612e1657610100808354040283529160200191612e41565b820191906000526020600020905b815481529060010190602001808311612e2457829003601f168201915b505050505090506000612e53866136df565b90506000602b8651612e65919061488a565b612e81906fffffffffffffffffffffffffffffffff8416614844565b9050600080866fffffffffffffffffffffffffffffffff1611612f27576040517f0100000000000000000000000000000000000000000000000000000000000000602082018190527e11000000000000000000000000000000000000000000000000000000000000602183015260238201526fffffffffffffffffffffffffffffffff19608084901b166024820152603401604051602081830303815290604052612fb6565b6040517f0100000000000000000000000000000000000000000000000000000000000000602082018190527e21000000000000000000000000000000000000000000000000000000000000602183015260238201526fffffffffffffffffffffffffffffffff19608084811b8216602484015288901b1660348201526044016040516020818303038152906040525b90506002845110612fea578381604051602001612fd4929190614dd6565b6040516020818303038152906040529450613010565b600381604051602001612ffe929190614e05565b60405160208183030381529060405294505b505050509392505050565b6000808260078110806130435750602b613036600783614e50565b6130409190614e63565b15155b1561307a576040517fbcbb94ef00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61308860076000868861460d565b61309191614e77565b60c81c91506130b5602b6130a6600784614e50565b6130b0919061488a565b613741565b9250509250929050565b600060218210156130fc576040517fe907cd4f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600283836000816128c2576128c2614378565b600080600061311e85856137d8565b9250925092506000836fffffffffffffffffffffffffffffffff16118015613161575061314b828461496e565b6fffffffffffffffffffffffffffffffff163414155b15613198576040517f07098ab800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3460005b82518160ff1610156133a0576000838260ff16815181106131bf576131bf614378565b6020026020010151905060006131d8826000015161398c565b905060006131e7836020015190565b90506000876fffffffffffffffffffffffffffffffff1611801561320c575082606001515b156132e65761322f81886fffffffffffffffffffffffffffffffff1660016139e0565b1561329257604080516001600160a01b03831681526fffffffffffffffffffffffffffffffff891660208201819052909603957f2d0eb51492ddbee9e95192a44349b114ecfdaacebba5e8aa735b12f14ab1affa910160405180910390a16132e6565b604080516001600160a01b03831681526fffffffffffffffffffffffffffffffff891660208201527f4e2061832d78c1622b4b41b221d1791733ba77cd67e86bba10b3e61194d55eb2910160405180910390a15b816001600160a01b0316634458a7ab8d8d876040518060600160405280876001600160a01b03168152602001896040015167ffffffffffffffff168152602001604051806020016040528060008152508152506040518563ffffffff1660e01b81526004016133589493929190614ef9565b600060405180830381600087803b15801561337257600080fd5b505af1158015613386573d6000803e3d6000fd5b5050505050505080806133989061492f565b91505061319c565b5080156133b3576133b333826000613a99565b5050505050505050565b6000806000806133cd86866128d6565b935093509350935060006133de8490565b905060006133eb8661398c565b9050806001600160a01b0316634458a7ab8b8b60006040518060600160405280886001600160a01b031681526020018a67ffffffffffffffff168152602001898152506040518563ffffffff1660e01b815260040161344d9493929190614ef9565b600060405180830381600087803b15801561346757600080fd5b505af115801561347b573d6000803e3d6000fd5b5050505050505050505050505050565b60606001868686856134d35786868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061350192505050565b6001600160a01b038b1687876040516020016134f193929190614f28565b6040516020818303038152906040525b604051602001613515959493929190614f42565b60405160208183030381529060405290509695505050505050565b6060600061353d856136df565b905061354c8560008686611705565b91508151600014613587578160016011600184604051602001613573959493929190614fec565b604051602081830303815290604052610d46565b6040517e0300000000000000000000000000000000000000000000000000000000000060208201527f0100000000000000000000000000000000000000000000000000000000000000602282018190527e11000000000000000000000000000000000000000000000000000000000000602383015260258201526fffffffffffffffffffffffffffffffff19608083901b16602682015260360160405160208183030381529060405295945050505050565b606081600001518260200151836040015184606001516040516020016136c9949392919060f09490941b7fffff000000000000000000000000000000000000000000000000000000000000168452600284019290925260c01b7fffffffffffffffff000000000000000000000000000000000000000000000000166022830152151560f81b602a820152602b0190565b6040516020818303038152906040529050919050565b63ffffffff81166000908152600760205260408120546fffffffffffffffffffffffffffffffff16908190036129d2576040517fc960f36b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060ff8211156137d4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203860448201527f20626974730000000000000000000000000000000000000000000000000000006064820152608401610b9f565b5090565b6000806060836021811015613819576040517f262c503d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61382760116001878961460d565b6138309161508e565b60801c935061384360216011878961460d565b61384c9161508e565b60801c92506000602b613860602184614e50565b61386a919061488a565b90508067ffffffffffffffff81111561388557613885614423565b6040519080825280602002602001820160405280156138d757816020015b6040805160808101825260008082526020808301829052928201819052606082015282526000199092019101816138a35790505b509250602160005b828160ff1610156139815761394289838a6138fb602b836148f6565b926139089392919061460d565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613adf92505050565b858260ff168151811061395757613957614378565b602090810291909101015261396d602b836148f6565b9150806139798161492f565b9150506138df565b505050509250925092565b61ffff81166000908152600460205260409020546001600160a01b0316806129d2576040517f8b6fecb700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081613a3b576040516001600160a01b038516908490600081818185875af1925050503d8060008114613a30576040519150601f19603f3d011682016040523d82523d6000602084013e613a35565b606091505b50613a90565b6040516001600160a01b038516906108fc9085906000818181858888f193505050503d8060008114613a89576040519150601f19603f3d011682016040523d82523d6000602084013e613a8e565b606091505b505b50949350505050565b613aa48383836139e0565b613ada576040517f7c75c3d200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b6040805160808101825260008082526020820181905291810182905260608101919091525060028101516022820151602a830151602b909301516040805160808101825261ffff9094168452602084019290925267ffffffffffffffff9093169082015260ff909116600114606082015290565b604051806060016040528060008019168152602001600067ffffffffffffffff168152602001613b96604051806040016040528060008152602001600081525090565b905290565b803563ffffffff811681146129d257600080fd5b60008083601f840112613bc157600080fd5b50813567ffffffffffffffff811115613bd957600080fd5b602083019150836020828501011115613bf157600080fd5b9250929050565b600080600060408486031215613c0d57600080fd5b613c1684613b9b565b9250602084013567ffffffffffffffff811115613c3257600080fd5b613c3e86828701613baf565b9497909650939450505050565b815181526020808301519082015260408101610e23565b600060608284031215613c7457600080fd5b50919050565b80356001600160a01b03811681146129d257600080fd5b600080600080600080600060e0888a031215613cac57600080fd5b613cb68989613c62565b965060608801359550608088013567ffffffffffffffff80821115613cda57600080fd5b613ce68b838c01613baf565b9097509550859150613cfa60a08b01613c7a565b945060c08a0135915080821115613d1057600080fd5b50613d1d8a828b01613baf565b989b979a50959850939692959293505050565b60008060408385031215613d4357600080fd5b613d4c83613b9b565b9150602083013560ff81168114613d6257600080fd5b809150509250929050565b600060c08284031215613c7457600080fd5b803580151581146129d257600080fd5b60008060408385031215613da257600080fd5b823567ffffffffffffffff811115613db957600080fd5b613dc585828601613d6d565b925050613dd460208401613d7f565b90509250929050565b60008060408385031215613df057600080fd5b613df983613b9b565b946020939093013593505050565b803561ffff811681146129d257600080fd5b60008060408385031215613e2c57600080fd5b613e3583613b9b565b9150613dd460208401613e07565b60005b83811015613e5e578181015183820152602001613e46565b50506000910152565b60008151808452613e7f816020860160208601613e43565b601f01601f19169290920160200192915050565b602081526000613ea66020830184613e67565b9392505050565b600060208284031215613ebf57600080fd5b613ea682613e07565b8051825267ffffffffffffffff60208201511660208301526040810151613ada604084018280518252602090810151910152565b60808101610e238284613ec8565b60008060408385031215613f1d57600080fd5b613f2683613b9b565b915060208301356fffffffffffffffffffffffffffffffff81168114613d6257600080fd5b600060208284031215613f5d57600080fd5b613ea682613b9b565b60008060408385031215613f7957600080fd5b613f8283613b9b565b9150613dd460208401613d7f565b60008060008060a08587031215613fa657600080fd5b613fb08686613c62565b9350606085013567ffffffffffffffff811115613fcc57600080fd5b613fd887828801613baf565b9094509250613feb905060808601613c7a565b905092959194509250565b60006020828403121561400857600080fd5b613ea682613c7a565b600060a08284031215613c7457600080fd5b61402d8184613ec8565b60a0608082015266ffffffffffffff82511660a082015260006020830151604060c0840152610d4660e0840182613e67565b6000806040838503121561407257600080fd5b613e3583613c7a565b60008083601f84011261408d57600080fd5b50813567ffffffffffffffff8111156140a557600080fd5b6020830191508360208260051b8501011115613bf157600080fd5b803566ffffffffffffff811681146129d257600080fd5b600080600080606085870312156140ed57600080fd5b843567ffffffffffffffff81111561410457600080fd5b6141108782880161407b565b90955093506141239050602086016140c0565b9150613feb604086016140c0565b6000806020838503121561414457600080fd5b823567ffffffffffffffff81111561415b57600080fd5b6141678582860161407b565b90969095509350505050565b6000806000806060858703121561418957600080fd5b61419285613b9b565b93506141a060208601613e07565b9250604085013567ffffffffffffffff8111156141bc57600080fd5b6141c887828801613baf565b95989497509550505050565b80356effffffffffffffffffffffffffffff811681146129d257600080fd5b60008060006060848603121561420857600080fd5b61421184613b9b565b925061421f602085016141d4565b915061422d604085016141d4565b90509250925092565b6000806040838503121561424957600080fd5b61425283613b9b565b9150613dd4602084016140c0565b6000806000838503608081121561427657600080fd5b843567ffffffffffffffff81111561428d57600080fd5b61429987828801613d6d565b9450506040601f19820112156142ae57600080fd5b5060208401915061422d60608501613c7a565b6000606082840312156142d357600080fd5b613ea68383613c62565b600181811c908216806142f157607f821691505b602082108103613c74577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b67ffffffffffffffff81168114611df357600080fd5b60006020828403121561435257600080fd5b8135613ea68161432a565b60006020828403121561436f57600080fd5b613ea682613d7f565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b66ffffffffffffff8281168282160390808211156143f6576143f66143a7565b5092915050565b600066ffffffffffffff808316818103614419576144196143a7565b6001019392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff8111828210171561447557614475614423565b60405290565b6040805190810167ffffffffffffffff8111828210171561447557614475614423565b604051601f8201601f1916810167ffffffffffffffff811182821017156144c7576144c7614423565b604052919050565b600067ffffffffffffffff8211156144e9576144e9614423565b50601f01601f191660200190565b600067ffffffffffffffff8084111561451257614512614423565b8360051b602061452381830161449e565b86815291850191818101903684111561453b57600080fd5b865b84811015614601578035868111156145555760008081fd5b880160603682900312156145695760008081fd5b614571614452565b61457a82613b9b565b8152614587868301613e07565b868201526040808301358981111561459f5760008081fd5b929092019136601f8401126145b45760008081fd5b82356145c76145c2826144cf565b61449e565b81815236898387010111156145dc5760008081fd5b818986018a83013760009181018901919091529082015284525091830191830161453d565b50979650505050505050565b6000808585111561461d57600080fd5b8386111561462a57600080fd5b5050820193919092039150565b60008451614649818460208901613e43565b8201838582376000930192835250909392505050565b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b60208152600061109060208301848661465f565b600082357ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec18336030181126146d257600080fd5b9190910192915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261471157600080fd5b83018035915067ffffffffffffffff82111561472c57600080fd5b602001915036819003821315613bf157600080fd5b63ffffffff61474f82613b9b565b16825260208101356020830152604081013561476a8161432a565b67ffffffffffffffff81166040840152505050565b6147898189614741565b86606082015260e0608082015260006147a660e08301878961465f565b6001600160a01b03861660a084015282810360c08401526147c881858761465f565b9a9950505050505050505050565b6000602082840312156147e857600080fd5b815167ffffffffffffffff8111156147ff57600080fd5b8201601f8101841361481057600080fd5b805161481e6145c2826144cf565b81815285602083850101111561483357600080fd5b610d46826020830160208601613e43565b8082028115828204841417610e2357610e236143a7565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000826148995761489961485b565b500490565b6000604082840312156148b057600080fd5b6148b861447b565b82358152602083013560208201528091505092915050565b600066ffffffffffffff808416806148ea576148ea61485b565b92169190910692915050565b80820180821115610e2357610e236143a7565b82815260008251614921816020850160208701613e43565b919091016020019392505050565b600060ff821660ff8103614945576149456143a7565b60010192915050565b66ffffffffffffff8181168382160190808211156143f6576143f66143a7565b6fffffffffffffffffffffffffffffffff81811683821602808216919082811461499a5761499a6143a7565b505092915050565b6040815263ffffffff8351166040820152602083015160608201526000604084015160a060808401526149d860e0840182613e67565b905060608501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08483030160a0850152614a138282613e67565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b600060408284031215614a4b57600080fd5b614a5361447b565b9050815181526020820151602082015292915050565b600060408284031215614a7b57600080fd5b613ea68383614a39565b600060808284031215614a9757600080fd5b614a9f614452565b825181526020830151614ab18161432a565b6020820152614ac38460408501614a39565b60408201529392505050565b7fffff000000000000000000000000000000000000000000000000000000000000813581811691600285101561499a5760029490940360031b84901b1690921692915050565b80356020831015610e2357600019602084900360031b1b1692915050565b7fffffffffffffffff000000000000000000000000000000000000000000000000813581811691600885101561499a5760089490940360031b84901b1690921692915050565b63ffffffff8416815266ffffffffffffff83166020820152606060408201526000610d466060830184613e67565b601f821115613ada576000816000526020600020601f850160051c81016020861015614bd05750805b601f850160051c820191505b81811015614bef57828155600101614bdc565b505050505050565b815167ffffffffffffffff811115614c1157614c11614423565b614c2581614c1f84546142dd565b84614ba7565b602080601f831160018114614c5a5760008415614c425750858301515b600019600386901b1c1916600185901b178555614bef565b600085815260208120601f198616915b82811015614c8957888601518255948401946001909101908401614c6a565b5085821015614ca75787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b83811015614d52578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc00185528151805163ffffffff1684528781015161ffff16888501528601516060878501819052614d3e81860183613e67565b968901969450505090860190600101614ce0565b509098975050505050505050565b7fff000000000000000000000000000000000000000000000000000000000000008560f81b16815260006fffffffffffffffffffffffffffffffff19808660801b166001840152808560801b166011840152508251614dc6816021850160208701613e43565b9190910160210195945050505050565b60008351614de8818460208801613e43565b835190830190614dfc818360208801613e43565b01949350505050565b7fffff0000000000000000000000000000000000000000000000000000000000008360f01b16815260008251614e42816002850160208701613e43565b919091016002019392505050565b81810381811115610e2357610e236143a7565b600082614e7257614e7261485b565b500690565b7fffffffffffffff00000000000000000000000000000000000000000000000000813581811691600785101561499a5760079490940360031b84901b1690921692915050565b6001600160a01b03815116825267ffffffffffffffff602082015116602083015260006040820151606060408501526110906060850182613e67565b614f038186614741565b83606082015260ff8316608082015260c060a08201526000611f3160c0830184614ebd565b838152818360208301376000910160200190815292915050565b7fff000000000000000000000000000000000000000000000000000000000000008660f81b1681527fffff0000000000000000000000000000000000000000000000000000000000008560f01b1660018201528360038201527fffffffffffffffff0000000000000000000000000000000000000000000000008360c01b16602382015260008251614fdb81602b850160208701613e43565b91909101602b019695505050505050565b60008651614ffe818460208b01613e43565b60f896871b7fff000000000000000000000000000000000000000000000000000000000000009081169390910192835260f09590951b7fffff000000000000000000000000000000000000000000000000000000000000166001830152509190931b909116600382015260809190911b6fffffffffffffffffffffffffffffffff19166004820152601401919050565b6fffffffffffffffffffffffffffffffff19813581811691601085101561499a5760109490940360031b84901b169092169291505056fea2646970667358221220892fb095bc8b8584927db04aed5a3f8bd2754eeeb2c614025cc86fe67f619acf64736f6c63430008160033",
|
|
1825
|
-
"deployedBytecode": "0x6080604052600436106102f25760003560e01c806385afd4531161018f578063c39d902c116100e1578063e4c572cc1161008a578063f912278a11610064578063f912278a14610a4f578063ff6fb30014610a84578063ff7bd03d14610a9757600080fd5b8063e4c572cc146109d0578063f2fde38b146109f0578063f8d50da614610a1057600080fd5b8063d117b562116100bb578063d117b56214610932578063d42438851461097f578063d8e8dbc71461099f57600080fd5b8063c39d902c146108df578063ca5eb5e1146108ff578063d045a0dc1461091f57600080fd5b8063b37c9a7f11610143578063bb0b6a531161011d578063bb0b6a5314610871578063bc70b354146108ac578063bd815db0146108cc57600080fd5b8063b37c9a7f14610811578063b731ea0a14610831578063b98bd0701461085157600080fd5b80638f71f7dd116101745780638f71f7dd1461075f57806390fdb20c1461077f578063917df23b146107cb57600080fd5b806385afd453146107135780638da5cb5b1461074157600080fd5b80635f6d9ae411610248578063715018a6116101fc5780637d25a05e116101d65780637d25a05e1461069757806382413eac146106d3578063826f1fb1146106f357600080fd5b8063715018a614610602578063731dbe0c1461061757806375d2208c1461067757600080fd5b806365b9bacb1161022d57806365b9bacb146104f65780636763d689146105165780636ad9914d1461053657600080fd5b80635f6d9ae4146104a057806364e4ac27146104d657600080fd5b806332e4e363116102aa5780635535d461116102845780635535d4611461040f5780635a0dfe4d1461043c5780635e280f111461046c57600080fd5b806332e4e363146103a45780633400288b146103dc57806352ae2879146103fc57600080fd5b806317442b70116102db57806317442b70146103425780632dca2f51146103645780633292cf021461038457600080fd5b8063086431ec146102f757806313137d651461032d575b600080fd5b34801561030357600080fd5b50610317610312366004613bf8565b610ab7565b6040516103249190613c4b565b60405180910390f35b61034061033b366004613c91565b610b3f565b005b34801561034e57600080fd5b5060408051600181526002602082015201610324565b34801561037057600080fd5b5061034061037f366004613d30565b610c31565b34801561039057600080fd5b5061031761039f366004613d8f565b610d06565b3480156103b057600080fd5b506005546103c4906001600160a01b031681565b6040516001600160a01b039091168152602001610324565b3480156103e857600080fd5b506103406103f7366004613ddd565b610d4f565b34801561040857600080fd5b50306103c4565b34801561041b57600080fd5b5061042f61042a366004613e19565b610d65565b6040516103249190613e93565b34801561044857600080fd5b5061045c610457366004613ddd565b610e0a565b6040519015158152602001610324565b34801561047857600080fd5b506103c47f000000000000000000000000000000000000000000000000000000000000000081565b3480156104ac57600080fd5b506103c46104bb366004613ead565b6004602052600090815260409020546001600160a01b031681565b6104e96104e4366004613bf8565b610e29565b6040516103249190613efc565b34801561050257600080fd5b50610340610511366004613f0a565b610ed3565b34801561052257600080fd5b50610340610531366004613f0a565b610f53565b34801561054257600080fd5b506105b6610551366004613f4b565b6008602052600090815260409020805460019091015460ff8216916effffffffffffffffffffffffffffff6101008204811692700100000000000000000000000000000000909204169066ffffffffffffff8082169167010000000000000090041685565b6040805160ff90961686526effffffffffffffffffffffffffffff9485166020870152939092169284019290925266ffffffffffffff918216606084015216608082015260a001610324565b34801561060e57600080fd5b50610340610fd3565b34801561062357600080fd5b50610656610632366004613f4b565b6009602052600090815260409020546fffffffffffffffffffffffffffffffff1681565b6040516fffffffffffffffffffffffffffffffff9091168152602001610324565b34801561068357600080fd5b50610317610692366004613f66565b610fe7565b3480156106a357600080fd5b506106ba6106b2366004613ddd565b600092915050565b60405167ffffffffffffffff9091168152602001610324565b3480156106df57600080fd5b5061045c6106ee366004613f90565b611037565b3480156106ff57600080fd5b5061034061070e366004613ff6565b611098565b34801561071f57600080fd5b5061073361072e366004614011565b61110d565b604051610324929190614023565b34801561074d57600080fd5b506000546001600160a01b03166103c4565b34801561076b57600080fd5b5061034061077a36600461405f565b611230565b34801561078b57600080fd5b506107b37f000000000000000000000000000000000000000000000000000000000000000081565b60405166ffffffffffffff9091168152602001610324565b3480156107d757600080fd5b506002546107fe9074010000000000000000000000000000000000000000900461ffff1681565b60405161ffff9091168152602001610324565b34801561081d57600080fd5b5061034061082c3660046140d7565b6114f3565b34801561083d57600080fd5b506002546103c4906001600160a01b031681565b34801561085d57600080fd5b5061034061086c366004614131565b6116eb565b34801561087d57600080fd5b5061089e61088c366004613f4b565b60016020526000908152604090205481565b604051908152602001610324565b3480156108b857600080fd5b5061042f6108c7366004614173565b611705565b6103406108da366004614131565b6118c6565b3480156108eb57600080fd5b506103406108fa3660046141f3565b611a52565b34801561090b57600080fd5b5061034061091a366004613ff6565b611b7b565b61034061092d366004613c91565b611c13565b34801561093e57600080fd5b5061089e61094d366004614236565b63ffffffff909116600090815260086020908152604080832066ffffffffffffff909416835260029093019052205490565b34801561098b57600080fd5b5061034061099a366004613ff6565b611c5b565b3480156109ab57600080fd5b506107fe6109ba366004613ff6565b60036020526000908152604090205461ffff1681565b3480156109dc57600080fd5b506103406109eb366004613ead565b611cc9565b3480156109fc57600080fd5b50610340610a0b366004613ff6565b611d4c565b348015610a1c57600080fd5b50610656610a2b366004613f4b565b6007602052600090815260409020546fffffffffffffffffffffffffffffffff1681565b348015610a5b57600080fd5b50610a6f610a6a366004613ddd565b611df6565b60408051928352602083019190915201610324565b6104e9610a92366004614260565b611eee565b348015610aa357600080fd5b5061045c610ab23660046142c1565b611f3b565b604080518082019091526000808252602082015263ffffffff80851660009081526008602052604081209091610b1491907f00000000000000000000000000000000000000000000000000000000000000009087908790611f7116565b9050600080610b23878461228e565b91509150610b34878383600061230b565b979650505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610ba8576040517f91ac5e4f0000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b60208701803590610bc290610bbd908a613f4b565b6123e3565b14610c1957610bd46020880188613f4b565b6040517fc26bebcc00000000000000000000000000000000000000000000000000000000815263ffffffff909116600482015260208801356024820152604401610b9f565b610c2887878787878787612438565b50505050505050565b610c39612464565b7f000000000000000000000000000000000000000000000000000000000000000066ffffffffffffff168160ff1610610c9e576040517f31843b5600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b63ffffffff8083166000908152600860205260409020610cc09183906124d816565b6040805163ffffffff8416815260ff831660208201527ff9fa6c3c4dbf13c4a8348c3102ef22789aa450b81e492b853e93f9701e08958091015b60405180910390a15050565b6040805180820190915260008082526020820152600080610d2685612507565b9092509050610d46610d3e6040870160208801613f4b565b83838761230b565b95945050505050565b610d57612464565b610d61828261257e565b5050565b600660209081526000928352604080842090915290825290208054610d89906142dd565b80601f0160208091040260200160405190810160405280929190818152602001828054610db5906142dd565b8015610e025780601f10610dd757610100808354040283529160200191610e02565b820191906000526020600020905b815481529060010190602001808311610de557829003601f168201915b505050505081565b63ffffffff821660009081526001602052604090205481145b92915050565b610e31613b53565b63ffffffff80851660009081526008602052604081209091610e7a91907f000000000000000000000000000000000000000000000000000000000000000090879087906125cc16565b9050600080610e89878461228e565b91509150610eaf878383604051806040016040528034815260200160008152503361263b565b9350610ec987846000015185602001518760000151612714565b5050509392505050565b610edb612464565b63ffffffff821660008181526007602090815260409182902080546fffffffffffffffffffffffffffffffff19166fffffffffffffffffffffffffffffffff86169081179091558251938452908301527f2de2cdf6b9f29bfb9afedda6cf015c5fcb9832c9c0c3dcc06d501d964cf565379101610cfa565b610f5b612464565b63ffffffff821660008181526009602090815260409182902080546fffffffffffffffffffffffffffffffff19166fffffffffffffffffffffffffffffffff86169081179091558251938452908301527f5b9fac6cf74b12ad67aa143075523ab25ca781b0f611c4897b31d1500f2ae9629101610cfa565b610fdb612464565b610fe5600061276c565b565b604080518082019091526000808252602082015263ffffffff808416600090815260086020526040902061101d9184906127d416565b6fffffffffffffffffffffffffffffffff16815292915050565b60006110438484612872565b1561108c57600061105485856128d6565b50505061ffff81166000908152600460205260409020549091506001600160a01b0380851691160361108a576001915050611090565b505b5060005b949350505050565b6110a0612464565b600580547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081179091556040519081527f5767d79cd17d7554509a4dd59a5a7a9175c7e36466455d7b2fa4788228808579906020015b60405180910390a150565b611115613b53565b60408051808201909152600081526060602082015260006111353361297b565b905060006111496040860160208701613f4b565b905060008060006111ea7f00000000000000000000000000000000000000000000000000000000000000008560405180608001604052808961ffff1681526020018c6040013581526020018c60600160208101906111a79190614340565b67ffffffffffffffff1681526020016111c660a08e0160808f0161435d565b1515905263ffffffff8089166000908152600860205260409020939291906129d716565b60408051808201825266ffffffffffffff90941684526020840192909252908901516fffffffffffffffffffffffffffffffff9190911690529698969750505050505050565b611238612464565b8061ffff16600003611276576040517fe447547600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60025461ffff740100000000000000000000000000000000000000009091048116908216111561131f57600280547fffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000061ffff8416908102919091179091556040519081527f8f1145f51954bc9512a08693182e170a57b63ca4f6acc321b87c526970f4c0179060200160405180910390a15b6001600160a01b0380831660009081526003602090815260408083205461ffff868116855260049093529220549116911681156113905761ffff8216600090815260046020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690555b6001600160a01b038116156113de576001600160a01b038116600090815260036020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001690555b6001600160a01b03841661142a5761ffff8316600090815260046020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556114a7565b6001600160a01b038416600081815260036020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001661ffff891690811790915583526004909152902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690911790555b604080516001600160a01b038616815261ffff851660208201527fac53470cf8e9e3d673caa7d47cd7db36c0d38cf37fc147c70c92bc0c1c4734f591015b60405180910390a150505050565b6114fb612464565b60005b838110156116e45760006008600087878581811061151e5761151e614378565b90506020020160208101906115339190613f4b565b63ffffffff16815260208101919091526040016000908120600181015490925066ffffffffffffff908116908616101561157a57600182015466ffffffffffffff1661157c565b845b905060006115ab60017f00000000000000000000000000000000000000000000000000000000000000006143d6565b66ffffffffffffff168566ffffffffffffff1610156115ca57846115f5565b6115f560017f00000000000000000000000000000000000000000000000000000000000000006143d6565b9050815b8166ffffffffffffff168166ffffffffffffff16116116615766ffffffffffffff8116600090815260028501602052604090207f4600000000000000000000000000000000000000000000000000000000000000905580611659816143fd565b9150506115f9565b507f67f9f72c3363a683d34792d61421ee605a284c875fe6db2293d46cb024ae9bdc88888681811061169557611695614378565b90506020020160208101906116aa9190613f4b565b6040805163ffffffff909216825266ffffffffffffff808616602084015284169082015260600160405180910390a15050506001016114fe565b5050505050565b6116f3612464565b610d6161170082846144f7565b612ba0565b63ffffffff8416600090815260066020908152604080832061ffff87168452909152812080546060929190611739906142dd565b80601f0160208091040260200160405190810160405280929190818152602001828054611765906142dd565b80156117b25780601f10611787576101008083540402835291602001916117b2565b820191906000526020600020905b81548152906001019060200180831161179557829003601f168201915b5050505050905080516000036118025783838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509294506110909350505050565b6000839003611812579050611090565b600283106118905761185984848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612ca792505050565b80611867846002818861460d565b60405160200161187993929190614637565b604051602081830303815290604052915050611090565b83836040517f9a6d49cd000000000000000000000000000000000000000000000000000000008152600401610b9f92919061468a565b60005b818110156119b857368383838181106118e4576118e4614378565b90506020028101906118f6919061469e565b90506119126119086020830183613f4b565b6020830135610e0a565b61191c57506119b0565b3063d045a0dc60c08301358360a081013561193b6101008301836146dc565b61194c610100890160e08a01613ff6565b61195a6101208a018a6146dc565b6040518963ffffffff1660e01b815260040161197c979695949392919061477f565b6000604051808303818588803b15801561199557600080fd5b505af11580156119a9573d6000803e3d6000fd5b5050505050505b6001016118c9565b50336001600160a01b0316638e9e70996040518163ffffffff1660e01b8152600401600060405180830381865afa1580156119f7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611a1f91908101906147d6565b6040517f8351eea7000000000000000000000000000000000000000000000000000000008152600401610b9f9190613e93565b6005546001600160a01b03163314611a96576040517fc63aab2c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff168363ffffffff1603611afb576040517fa27dd10200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b63ffffffff8084166000908152600860205260409020611b1f9184908490612cec16565b6040805163ffffffff851681526effffffffffffffffffffffffffffff848116602083015283168183015290517fb8611e882dee0ae26e55604af1d40fa9f0ec18a0e28dcee93da3b15239930caf9181900360600190a1505050565b611b83612464565b6040517fca5eb5e10000000000000000000000000000000000000000000000000000000081526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e190602401600060405180830381600087803b158015611bff57600080fd5b505af11580156116e4573d6000803e3d6000fd5b333014611c4c576040517f14d4a4e800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610c2887878787878787610c19565b611c63612464565b600280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081179091556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c242776090602001611102565b611cd1612464565b600280547fffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000061ffff8416908102919091179091556040519081527f8f1145f51954bc9512a08693182e170a57b63ca4f6acc321b87c526970f4c01790602001611102565b611d54612464565b6001600160a01b038116611dea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610b9f565b611df38161276c565b50565b60008080611e0584602b614844565b67ffffffffffffffff811115611e1d57611e1d614423565b6040519080825280601f01601f191660200182016040528015611e47576020820181803683370190505b5090506000611e5860008084612d66565b90506000611e6887846000612d98565b905085611e78888484600061230b565b51611e83919061488a565b63ffffffff881660009081526009602052604081205491965090611ec69089908690611ec1906fffffffffffffffffffffffffffffffff168b614844565b612d98565b905086611ed6898584600061230b565b51611ee1919061488a565b9450505050509250929050565b611ef6613b53565b600080611f0286612507565b9092509050611f31611f1a6040880160208901613f4b565b8383611f2b368a90038a018a61489e565b8861263b565b9695505050505050565b6000602082018035906001908390611f539086613f4b565b63ffffffff1681526020810191909152604001600020541492915050565b604080516080810182526000808252602082018190529181018290526060808201529080611f9f858561301b565b6001890154919350915066ffffffffffffff8083166701000000000000009092041614611ff8576040517ff288005700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60ff82166020840181905266ffffffffffffff8216845215806120225750865460ff908116908316115b1561205e576040517fc5ad74c700000000000000000000000000000000000000000000000000000000815260ff83166004820152602401610b9f565b600066ffffffffffffff8216156120b157600288016000886120816001866143d6565b61208b91906148d0565b66ffffffffffffff1666ffffffffffffff168152602001908152602001600020546120b4565b60005b905060075b858110156121955760008782886120d182602b6148f6565b926120de9392919061460d565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060405192935061212892869250849150602001614909565b604051602081830303815290604052805190602001209250600081602a8151811061215557612155614378565b60209101015160f81c6001149050801561218057604087018051906121798261492f565b60ff169052505b5061218e9050602b826148f6565b90506120b9565b50600060016121a760ff86168561494e565b6121b191906143d6565b60018a015490915066ffffffffffffff90811690821610158061220457506002890160006121df8a846148d0565b66ffffffffffffff1666ffffffffffffff168152602001908152602001600020548214155b1561223b576040517f5b3f67cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612248866007818a61460d565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505060608601525092979650505050505050565b63ffffffff8216600090815260096020526040908190205490820151606083810151909283926fffffffffffffffffffffffffffffffff909116916122d89160ff16908390612d66565b9250600081856040015160ff166122ef919061496e565b905061230086866060015183612d98565b925050509250929050565b60408051808201909152600080825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff16815260200161236e896123e3565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b81526004016123a39291906149a2565b6040805180830381865afa1580156123bf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d469190614a69565b63ffffffff811660009081526001602052604081205480610e23576040517ff6ff4fb700000000000000000000000000000000000000000000000000000000815263ffffffff84166004820152602401610b9f565b61244285856130bf565b15612458576124538787878761310f565b610c28565b610c28878787876133bd565b6000546001600160a01b03163314610fe5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b9f565b81547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff91909116179055565b60608060006125153361297b565b905061254f6125276020860186613ff6565b82604087013561253d6080890160608a01614340565b61254a60808a018a6146dc565b61348b565b92506125766125646040860160208701613f4b565b61257160a08701876146dc565b613530565b915050915091565b63ffffffff8216600081815260016020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b9101610cfa565b60408051608081018252600080825260208201819052918101919091526060808201526125fb85858585611f71565b9050806020015160ff168160000151018560010160076101000a81548166ffffffffffffff021916908366ffffffffffffff160217905550949350505050565b612643613b53565b82517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff1681526020016126958c6123e3565b81526020018a815260200189815260200160008960200151111515815250866040518463ffffffff1660e01b81526004016126d19291906149a2565b60806040518083038185885af11580156126ef573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b349190614a85565b6040805163ffffffff8616815266ffffffffffffff8516602082015260ff841691810191909152606081018290527fac3ae656fc8519b8303cdfef076feabd744d2095edbae20d58c938a105d9f0d1906080016114e5565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000816127f857825461010090046effffffffffffffffffffffffffffff16612820565b825470010000000000000000000000000000000090046effffffffffffffffffffffffffffff165b6effffffffffffffffffffffffffffff1690506000819003610e23576040517f5bc181900000000000000000000000000000000000000000000000000000000081528215156004820152602401610b9f565b6000602b8210156128af576040517fde01ff2300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600183836000816128c2576128c2614378565b919091013560f81c91909114949350505050565b6000808060606128ea60036001878961460d565b6128f391614acf565b60f01c935061290660236003878961460d565b61290f91614b15565b925061291f602b6023878961460d565b61292891614b33565b60c01c915061293a85602b818961460d565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509699959850939650909450505050565b6001600160a01b03811660009081526003602052604081205461ffff16908190036129d2576040517f8b6fecb700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b600184810180547fffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000811666ffffffffffffff91821680850183169190911792839055926060926000928881166701000000000000009092048116860390920190911610612a70576040517ffa36e2ba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612a7984613639565b9150612a928460600151886127d490919063ffffffff16565b9050600066ffffffffffffff841615612af6578760020160008866ffffffffffffff166001870366ffffffffffffff1681612acf57612acf61485b565b0666ffffffffffffff1666ffffffffffffff16815260200190815260200160002054612af9565b60005b90508083604051602001612b0e929190614909565b604051602081830303815290604052805190602001208860020160008987612b3691906148d0565b66ffffffffffffff1666ffffffffffffff168152602001908152602001600020819055507fd73bff10645d27f6036f6a705dfca85bd9801a94175d09d4b5a4029acc4109a2868585604051612b8d93929190614b79565b60405180910390a1509450945094915050565b60005b8151811015612c7757612bd2828281518110612bc157612bc1614378565b602002602001015160400151612ca7565b818181518110612be457612be4614378565b60200260200101516040015160066000848481518110612c0657612c06614378565b60200260200101516000015163ffffffff1663ffffffff1681526020019081526020016000206000848481518110612c4057612c40614378565b60200260200101516020015161ffff1661ffff1681526020019081526020016000209081612c6e9190614bf7565b50600101612ba3565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b674816040516111029190614cb7565b600281015161ffff8116600314610d6157816040517f9a6d49cd000000000000000000000000000000000000000000000000000000008152600401610b9f9190613e93565b82547fff000000000000000000000000000000000000000000000000000000000000ff166101006effffffffffffffffffffffffffffff938416027fff000000000000000000000000000000ffffffffffffffffffffffffffffffff16177001000000000000000000000000000000009190921602179055565b60606002848484604051602001612d809493929190614d60565b60405160208183030381529060405290509392505050565b63ffffffff83166000908152600660209081526040808320838052909152812080546060929190612dc8906142dd565b80601f0160208091040260200160405190810160405280929190818152602001828054612df4906142dd565b8015612e415780601f10612e1657610100808354040283529160200191612e41565b820191906000526020600020905b815481529060010190602001808311612e2457829003601f168201915b505050505090506000612e53866136df565b90506000602b8651612e65919061488a565b612e81906fffffffffffffffffffffffffffffffff8416614844565b9050600080866fffffffffffffffffffffffffffffffff1611612f27576040517f0100000000000000000000000000000000000000000000000000000000000000602082018190527e11000000000000000000000000000000000000000000000000000000000000602183015260238201526fffffffffffffffffffffffffffffffff19608084901b166024820152603401604051602081830303815290604052612fb6565b6040517f0100000000000000000000000000000000000000000000000000000000000000602082018190527e21000000000000000000000000000000000000000000000000000000000000602183015260238201526fffffffffffffffffffffffffffffffff19608084811b8216602484015288901b1660348201526044016040516020818303038152906040525b90506002845110612fea578381604051602001612fd4929190614dd6565b6040516020818303038152906040529450613010565b600381604051602001612ffe929190614e05565b60405160208183030381529060405294505b505050509392505050565b6000808260078110806130435750602b613036600783614e50565b6130409190614e63565b15155b1561307a576040517fbcbb94ef00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61308860076000868861460d565b61309191614e77565b60c81c91506130b5602b6130a6600784614e50565b6130b0919061488a565b613741565b9250509250929050565b600060218210156130fc576040517fe907cd4f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600283836000816128c2576128c2614378565b600080600061311e85856137d8565b9250925092506000836fffffffffffffffffffffffffffffffff16118015613161575061314b828461496e565b6fffffffffffffffffffffffffffffffff163414155b15613198576040517f07098ab800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3460005b82518160ff1610156133a0576000838260ff16815181106131bf576131bf614378565b6020026020010151905060006131d8826000015161398c565b905060006131e7836020015190565b90506000876fffffffffffffffffffffffffffffffff1611801561320c575082606001515b156132e65761322f81886fffffffffffffffffffffffffffffffff1660016139e0565b1561329257604080516001600160a01b03831681526fffffffffffffffffffffffffffffffff891660208201819052909603957f2d0eb51492ddbee9e95192a44349b114ecfdaacebba5e8aa735b12f14ab1affa910160405180910390a16132e6565b604080516001600160a01b03831681526fffffffffffffffffffffffffffffffff891660208201527f4e2061832d78c1622b4b41b221d1791733ba77cd67e86bba10b3e61194d55eb2910160405180910390a15b816001600160a01b0316634458a7ab8d8d876040518060600160405280876001600160a01b03168152602001896040015167ffffffffffffffff168152602001604051806020016040528060008152508152506040518563ffffffff1660e01b81526004016133589493929190614ef9565b600060405180830381600087803b15801561337257600080fd5b505af1158015613386573d6000803e3d6000fd5b5050505050505080806133989061492f565b91505061319c565b5080156133b3576133b333826000613a99565b5050505050505050565b6000806000806133cd86866128d6565b935093509350935060006133de8490565b905060006133eb8661398c565b9050806001600160a01b0316634458a7ab8b8b60006040518060600160405280886001600160a01b031681526020018a67ffffffffffffffff168152602001898152506040518563ffffffff1660e01b815260040161344d9493929190614ef9565b600060405180830381600087803b15801561346757600080fd5b505af115801561347b573d6000803e3d6000fd5b5050505050505050505050505050565b60606001868686856134d35786868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061350192505050565b6001600160a01b038b1687876040516020016134f193929190614f28565b6040516020818303038152906040525b604051602001613515959493929190614f42565b60405160208183030381529060405290509695505050505050565b6060600061353d856136df565b905061354c8560008686611705565b91508151600014613587578160016011600184604051602001613573959493929190614fec565b604051602081830303815290604052610d46565b6040517e0300000000000000000000000000000000000000000000000000000000000060208201527f0100000000000000000000000000000000000000000000000000000000000000602282018190527e11000000000000000000000000000000000000000000000000000000000000602383015260258201526fffffffffffffffffffffffffffffffff19608083901b16602682015260360160405160208183030381529060405295945050505050565b606081600001518260200151836040015184606001516040516020016136c9949392919060f09490941b7fffff000000000000000000000000000000000000000000000000000000000000168452600284019290925260c01b7fffffffffffffffff000000000000000000000000000000000000000000000000166022830152151560f81b602a820152602b0190565b6040516020818303038152906040529050919050565b63ffffffff81166000908152600760205260408120546fffffffffffffffffffffffffffffffff16908190036129d2576040517fc960f36b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060ff8211156137d4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203860448201527f20626974730000000000000000000000000000000000000000000000000000006064820152608401610b9f565b5090565b6000806060836021811015613819576040517f262c503d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61382760116001878961460d565b6138309161508e565b60801c935061384360216011878961460d565b61384c9161508e565b60801c92506000602b613860602184614e50565b61386a919061488a565b90508067ffffffffffffffff81111561388557613885614423565b6040519080825280602002602001820160405280156138d757816020015b6040805160808101825260008082526020808301829052928201819052606082015282526000199092019101816138a35790505b509250602160005b828160ff1610156139815761394289838a6138fb602b836148f6565b926139089392919061460d565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613adf92505050565b858260ff168151811061395757613957614378565b602090810291909101015261396d602b836148f6565b9150806139798161492f565b9150506138df565b505050509250925092565b61ffff81166000908152600460205260409020546001600160a01b0316806129d2576040517f8b6fecb700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081613a3b576040516001600160a01b038516908490600081818185875af1925050503d8060008114613a30576040519150601f19603f3d011682016040523d82523d6000602084013e613a35565b606091505b50613a90565b6040516001600160a01b038516906108fc9085906000818181858888f193505050503d8060008114613a89576040519150601f19603f3d011682016040523d82523d6000602084013e613a8e565b606091505b505b50949350505050565b613aa48383836139e0565b613ada576040517f7c75c3d200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b6040805160808101825260008082526020820181905291810182905260608101919091525060028101516022820151602a830151602b909301516040805160808101825261ffff9094168452602084019290925267ffffffffffffffff9093169082015260ff909116600114606082015290565b604051806060016040528060008019168152602001600067ffffffffffffffff168152602001613b96604051806040016040528060008152602001600081525090565b905290565b803563ffffffff811681146129d257600080fd5b60008083601f840112613bc157600080fd5b50813567ffffffffffffffff811115613bd957600080fd5b602083019150836020828501011115613bf157600080fd5b9250929050565b600080600060408486031215613c0d57600080fd5b613c1684613b9b565b9250602084013567ffffffffffffffff811115613c3257600080fd5b613c3e86828701613baf565b9497909650939450505050565b815181526020808301519082015260408101610e23565b600060608284031215613c7457600080fd5b50919050565b80356001600160a01b03811681146129d257600080fd5b600080600080600080600060e0888a031215613cac57600080fd5b613cb68989613c62565b965060608801359550608088013567ffffffffffffffff80821115613cda57600080fd5b613ce68b838c01613baf565b9097509550859150613cfa60a08b01613c7a565b945060c08a0135915080821115613d1057600080fd5b50613d1d8a828b01613baf565b989b979a50959850939692959293505050565b60008060408385031215613d4357600080fd5b613d4c83613b9b565b9150602083013560ff81168114613d6257600080fd5b809150509250929050565b600060c08284031215613c7457600080fd5b803580151581146129d257600080fd5b60008060408385031215613da257600080fd5b823567ffffffffffffffff811115613db957600080fd5b613dc585828601613d6d565b925050613dd460208401613d7f565b90509250929050565b60008060408385031215613df057600080fd5b613df983613b9b565b946020939093013593505050565b803561ffff811681146129d257600080fd5b60008060408385031215613e2c57600080fd5b613e3583613b9b565b9150613dd460208401613e07565b60005b83811015613e5e578181015183820152602001613e46565b50506000910152565b60008151808452613e7f816020860160208601613e43565b601f01601f19169290920160200192915050565b602081526000613ea66020830184613e67565b9392505050565b600060208284031215613ebf57600080fd5b613ea682613e07565b8051825267ffffffffffffffff60208201511660208301526040810151613ada604084018280518252602090810151910152565b60808101610e238284613ec8565b60008060408385031215613f1d57600080fd5b613f2683613b9b565b915060208301356fffffffffffffffffffffffffffffffff81168114613d6257600080fd5b600060208284031215613f5d57600080fd5b613ea682613b9b565b60008060408385031215613f7957600080fd5b613f8283613b9b565b9150613dd460208401613d7f565b60008060008060a08587031215613fa657600080fd5b613fb08686613c62565b9350606085013567ffffffffffffffff811115613fcc57600080fd5b613fd887828801613baf565b9094509250613feb905060808601613c7a565b905092959194509250565b60006020828403121561400857600080fd5b613ea682613c7a565b600060a08284031215613c7457600080fd5b61402d8184613ec8565b60a0608082015266ffffffffffffff82511660a082015260006020830151604060c0840152610d4660e0840182613e67565b6000806040838503121561407257600080fd5b613e3583613c7a565b60008083601f84011261408d57600080fd5b50813567ffffffffffffffff8111156140a557600080fd5b6020830191508360208260051b8501011115613bf157600080fd5b803566ffffffffffffff811681146129d257600080fd5b600080600080606085870312156140ed57600080fd5b843567ffffffffffffffff81111561410457600080fd5b6141108782880161407b565b90955093506141239050602086016140c0565b9150613feb604086016140c0565b6000806020838503121561414457600080fd5b823567ffffffffffffffff81111561415b57600080fd5b6141678582860161407b565b90969095509350505050565b6000806000806060858703121561418957600080fd5b61419285613b9b565b93506141a060208601613e07565b9250604085013567ffffffffffffffff8111156141bc57600080fd5b6141c887828801613baf565b95989497509550505050565b80356effffffffffffffffffffffffffffff811681146129d257600080fd5b60008060006060848603121561420857600080fd5b61421184613b9b565b925061421f602085016141d4565b915061422d604085016141d4565b90509250925092565b6000806040838503121561424957600080fd5b61425283613b9b565b9150613dd4602084016140c0565b6000806000838503608081121561427657600080fd5b843567ffffffffffffffff81111561428d57600080fd5b61429987828801613d6d565b9450506040601f19820112156142ae57600080fd5b5060208401915061422d60608501613c7a565b6000606082840312156142d357600080fd5b613ea68383613c62565b600181811c908216806142f157607f821691505b602082108103613c74577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b67ffffffffffffffff81168114611df357600080fd5b60006020828403121561435257600080fd5b8135613ea68161432a565b60006020828403121561436f57600080fd5b613ea682613d7f565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b66ffffffffffffff8281168282160390808211156143f6576143f66143a7565b5092915050565b600066ffffffffffffff808316818103614419576144196143a7565b6001019392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff8111828210171561447557614475614423565b60405290565b6040805190810167ffffffffffffffff8111828210171561447557614475614423565b604051601f8201601f1916810167ffffffffffffffff811182821017156144c7576144c7614423565b604052919050565b600067ffffffffffffffff8211156144e9576144e9614423565b50601f01601f191660200190565b600067ffffffffffffffff8084111561451257614512614423565b8360051b602061452381830161449e565b86815291850191818101903684111561453b57600080fd5b865b84811015614601578035868111156145555760008081fd5b880160603682900312156145695760008081fd5b614571614452565b61457a82613b9b565b8152614587868301613e07565b868201526040808301358981111561459f5760008081fd5b929092019136601f8401126145b45760008081fd5b82356145c76145c2826144cf565b61449e565b81815236898387010111156145dc5760008081fd5b818986018a83013760009181018901919091529082015284525091830191830161453d565b50979650505050505050565b6000808585111561461d57600080fd5b8386111561462a57600080fd5b5050820193919092039150565b60008451614649818460208901613e43565b8201838582376000930192835250909392505050565b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b60208152600061109060208301848661465f565b600082357ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec18336030181126146d257600080fd5b9190910192915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261471157600080fd5b83018035915067ffffffffffffffff82111561472c57600080fd5b602001915036819003821315613bf157600080fd5b63ffffffff61474f82613b9b565b16825260208101356020830152604081013561476a8161432a565b67ffffffffffffffff81166040840152505050565b6147898189614741565b86606082015260e0608082015260006147a660e08301878961465f565b6001600160a01b03861660a084015282810360c08401526147c881858761465f565b9a9950505050505050505050565b6000602082840312156147e857600080fd5b815167ffffffffffffffff8111156147ff57600080fd5b8201601f8101841361481057600080fd5b805161481e6145c2826144cf565b81815285602083850101111561483357600080fd5b610d46826020830160208601613e43565b8082028115828204841417610e2357610e236143a7565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000826148995761489961485b565b500490565b6000604082840312156148b057600080fd5b6148b861447b565b82358152602083013560208201528091505092915050565b600066ffffffffffffff808416806148ea576148ea61485b565b92169190910692915050565b80820180821115610e2357610e236143a7565b82815260008251614921816020850160208701613e43565b919091016020019392505050565b600060ff821660ff8103614945576149456143a7565b60010192915050565b66ffffffffffffff8181168382160190808211156143f6576143f66143a7565b6fffffffffffffffffffffffffffffffff81811683821602808216919082811461499a5761499a6143a7565b505092915050565b6040815263ffffffff8351166040820152602083015160608201526000604084015160a060808401526149d860e0840182613e67565b905060608501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08483030160a0850152614a138282613e67565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b600060408284031215614a4b57600080fd5b614a5361447b565b9050815181526020820151602082015292915050565b600060408284031215614a7b57600080fd5b613ea68383614a39565b600060808284031215614a9757600080fd5b614a9f614452565b825181526020830151614ab18161432a565b6020820152614ac38460408501614a39565b60408201529392505050565b7fffff000000000000000000000000000000000000000000000000000000000000813581811691600285101561499a5760029490940360031b84901b1690921692915050565b80356020831015610e2357600019602084900360031b1b1692915050565b7fffffffffffffffff000000000000000000000000000000000000000000000000813581811691600885101561499a5760089490940360031b84901b1690921692915050565b63ffffffff8416815266ffffffffffffff83166020820152606060408201526000610d466060830184613e67565b601f821115613ada576000816000526020600020601f850160051c81016020861015614bd05750805b601f850160051c820191505b81811015614bef57828155600101614bdc565b505050505050565b815167ffffffffffffffff811115614c1157614c11614423565b614c2581614c1f84546142dd565b84614ba7565b602080601f831160018114614c5a5760008415614c425750858301515b600019600386901b1c1916600185901b178555614bef565b600085815260208120601f198616915b82811015614c8957888601518255948401946001909101908401614c6a565b5085821015614ca75787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b83811015614d52578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc00185528151805163ffffffff1684528781015161ffff16888501528601516060878501819052614d3e81860183613e67565b968901969450505090860190600101614ce0565b509098975050505050505050565b7fff000000000000000000000000000000000000000000000000000000000000008560f81b16815260006fffffffffffffffffffffffffffffffff19808660801b166001840152808560801b166011840152508251614dc6816021850160208701613e43565b9190910160210195945050505050565b60008351614de8818460208801613e43565b835190830190614dfc818360208801613e43565b01949350505050565b7fffff0000000000000000000000000000000000000000000000000000000000008360f01b16815260008251614e42816002850160208701613e43565b919091016002019392505050565b81810381811115610e2357610e236143a7565b600082614e7257614e7261485b565b500690565b7fffffffffffffff00000000000000000000000000000000000000000000000000813581811691600785101561499a5760079490940360031b84901b1690921692915050565b6001600160a01b03815116825267ffffffffffffffff602082015116602083015260006040820151606060408501526110906060850182613e67565b614f038186614741565b83606082015260ff8316608082015260c060a08201526000611f3160c0830184614ebd565b838152818360208301376000910160200190815292915050565b7fff000000000000000000000000000000000000000000000000000000000000008660f81b1681527fffff0000000000000000000000000000000000000000000000000000000000008560f01b1660018201528360038201527fffffffffffffffff0000000000000000000000000000000000000000000000008360c01b16602382015260008251614fdb81602b850160208701613e43565b91909101602b019695505050505050565b60008651614ffe818460208b01613e43565b60f896871b7fff000000000000000000000000000000000000000000000000000000000000009081169390910192835260f09590951b7fffff000000000000000000000000000000000000000000000000000000000000166001830152509190931b909116600382015260809190911b6fffffffffffffffffffffffffffffffff19166004820152601401919050565b6fffffffffffffffffffffffffffffffff19813581811691601085101561499a5760109490940360031b84901b169092169291505056fea2646970667358221220892fb095bc8b8584927db04aed5a3f8bd2754eeeb2c614025cc86fe67f619acf64736f6c63430008160033",
|
|
1855
|
+
"bytecode": "0x60e06040523480156200001157600080fd5b506040516200553c3803806200553c833981016040819052620000349162000207565b82828181818162000045336200019a565b6001600160a01b0380831660805281166200007357604051632d618d8160e21b815260040160405180910390fd5b60805160405163ca5eb5e160e01b81526001600160a01b0383811660048301529091169063ca5eb5e190602401600060405180830381600087803b158015620000bb57600080fd5b505af1158015620000d0573d6000803e3d6000fd5b5050505050505050505060028166ffffffffffffff16101562000106576040516327f53ac760e01b815260040160405180910390fd5b8066ffffffffffffff1660a08166ffffffffffffff16815250506080516001600160a01b031663416ecebf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000161573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000187919062000260565b63ffffffff1660c052506200028f915050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200020257600080fd5b919050565b6000806000606084860312156200021d57600080fd5b6200022884620001ea565b92506200023860208501620001ea565b9150604084015166ffffffffffffff811681146200025557600080fd5b809150509250925092565b6000602082840312156200027357600080fd5b815163ffffffff811681146200028857600080fd5b9392505050565b60805160a05160c051615237620003056000396000611aea0152600081816107ce01528181610b3c01528181610c8d01528181610ea2015281816111a7015281816115d901526116230152600081816104bb01528181610b9301528181611c0d015281816123b701526126dd01526152376000f3fe6080604052600436106103085760003560e01c806385afd4531161019a578063c39d902c116100e1578063e4c572cc1161008a578063f912278a11610064578063f912278a14610aa1578063ff6fb30014610ad6578063ff7bd03d14610ae957600080fd5b8063e4c572cc14610a22578063f2fde38b14610a42578063f8d50da614610a6257600080fd5b8063d117b562116100bb578063d117b56214610984578063d4243885146109d1578063d8e8dbc7146109f157600080fd5b8063c39d902c14610931578063ca5eb5e114610951578063d045a0dc1461097157600080fd5b8063b731ea0a11610143578063bc70b3541161011d578063bc70b354146108e9578063bd815db014610909578063c239f1ad1461091c57600080fd5b8063b731ea0a1461086e578063b98bd0701461088e578063bb0b6a53146108ae57600080fd5b806390fdb20c1161017457806390fdb20c146107bc578063917df23b14610808578063b37c9a7f1461084e57600080fd5b806385afd453146107505780638da5cb5b1461077e5780638f71f7dd1461079c57600080fd5b80635e280f111161025e578063715018a6116102075780637d25a05e116101e15780637d25a05e146106d457806382413eac14610710578063826f1fb11461073057600080fd5b8063715018a61461063f578063731dbe0c1461065457806375d2208c146106b457600080fd5b806365b9bacb1161023857806365b9bacb146105335780636763d689146105535780636ad9914d1461057357600080fd5b80635e280f11146104a95780635f6d9ae4146104dd57806364e4ac271461051357600080fd5b806332e4e363116102c057806352ae28791161029a57806352ae2879146104395780635535d4611461044c5780635a0dfe4d1461047957600080fd5b806332e4e363146103ba5780633400288b146103f257806345655a161461041257600080fd5b806317442b70116102f157806317442b70146103585780632dca2f511461037a5780633292cf021461039a57600080fd5b8063086431ec1461030d57806313137d6514610343575b600080fd5b34801561031957600080fd5b5061032d610328366004613d34565b610b09565b60405161033a9190613d87565b60405180910390f35b610356610351366004613dcd565b610b91565b005b34801561036457600080fd5b506040805160018152600260208201520161033a565b34801561038657600080fd5b50610356610395366004613e6c565b610c83565b3480156103a657600080fd5b5061032d6103b5366004613ecb565b610d58565b3480156103c657600080fd5b506005546103da906001600160a01b031681565b6040516001600160a01b03909116815260200161033a565b3480156103fe57600080fd5b5061035661040d366004613f19565b610da1565b34801561041e57600080fd5b50610427600181565b60405160ff909116815260200161033a565b34801561044557600080fd5b50306103da565b34801561045857600080fd5b5061046c610467366004613f55565b610db7565b60405161033a9190613fcf565b34801561048557600080fd5b50610499610494366004613f19565b610e5c565b604051901515815260200161033a565b3480156104b557600080fd5b506103da7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104e957600080fd5b506103da6104f8366004613fe9565b6004602052600090815260409020546001600160a01b031681565b610526610521366004613d34565b610e7b565b60405161033a9190614038565b34801561053f57600080fd5b5061035661054e366004614046565b610f25565b34801561055f57600080fd5b5061035661056e366004614046565b610fa5565b34801561057f57600080fd5b506105f361058e366004614087565b6008602052600090815260409020805460019091015460ff8216916effffffffffffffffffffffffffffff6101008204811692700100000000000000000000000000000000909204169066ffffffffffffff8082169167010000000000000090041685565b6040805160ff90961686526effffffffffffffffffffffffffffff9485166020870152939092169284019290925266ffffffffffffff918216606084015216608082015260a00161033a565b34801561064b57600080fd5b50610356611025565b34801561066057600080fd5b5061069361066f366004614087565b6009602052600090815260409020546fffffffffffffffffffffffffffffffff1681565b6040516fffffffffffffffffffffffffffffffff909116815260200161033a565b3480156106c057600080fd5b5061032d6106cf3660046140a2565b611039565b3480156106e057600080fd5b506106f76106ef366004613f19565b600092915050565b60405167ffffffffffffffff909116815260200161033a565b34801561071c57600080fd5b5061049961072b3660046140cc565b611089565b34801561073c57600080fd5b5061035661074b366004614132565b6110ea565b34801561075c57600080fd5b5061077061076b36600461414d565b61115f565b60405161033a92919061415f565b34801561078a57600080fd5b506000546001600160a01b03166103da565b3480156107a857600080fd5b506103566107b736600461419b565b611282565b3480156107c857600080fd5b506107f07f000000000000000000000000000000000000000000000000000000000000000081565b60405166ffffffffffffff909116815260200161033a565b34801561081457600080fd5b5060025461083b9074010000000000000000000000000000000000000000900461ffff1681565b60405161ffff909116815260200161033a565b34801561085a57600080fd5b50610356610869366004614213565b611545565b34801561087a57600080fd5b506002546103da906001600160a01b031681565b34801561089a57600080fd5b506103566108a936600461426d565b61173d565b3480156108ba57600080fd5b506108db6108c9366004614087565b60016020526000908152604090205481565b60405190815260200161033a565b3480156108f557600080fd5b5061046c6109043660046142af565b611757565b61035661091736600461426d565b611918565b34801561092857600080fd5b50610427600281565b34801561093d57600080fd5b5061035661094c36600461432f565b611aa4565b34801561095d57600080fd5b5061035661096c366004614132565b611bcd565b61035661097f366004613dcd565b611c65565b34801561099057600080fd5b506108db61099f366004614372565b63ffffffff909116600090815260086020908152604080832066ffffffffffffff909416835260029093019052205490565b3480156109dd57600080fd5b506103566109ec366004614132565b611cad565b3480156109fd57600080fd5b5061083b610a0c366004614132565b60036020526000908152604090205461ffff1681565b348015610a2e57600080fd5b50610356610a3d366004613fe9565b611d1b565b348015610a4e57600080fd5b50610356610a5d366004614132565b611d9e565b348015610a6e57600080fd5b50610693610a7d366004614087565b6007602052600090815260409020546fffffffffffffffffffffffffffffffff1681565b348015610aad57600080fd5b50610ac1610abc366004613f19565b611e48565b6040805192835260208301919091520161033a565b610526610ae436600461439c565b611f84565b348015610af557600080fd5b50610499610b043660046143fd565b611fd1565b604080518082019091526000808252602082015263ffffffff80851660009081526008602052604081209091610b6691907f0000000000000000000000000000000000000000000000000000000000000000908790879061200716565b9050600080610b758784612324565b91509150610b8687838360006123a1565b979650505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610bfa576040517f91ac5e4f0000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b60208701803590610c1490610c0f908a614087565b612479565b14610c6b57610c266020880188614087565b6040517fc26bebcc00000000000000000000000000000000000000000000000000000000815263ffffffff909116600482015260208801356024820152604401610bf1565b610c7a878787878787876124ce565b50505050505050565b610c8b6124fa565b7f000000000000000000000000000000000000000000000000000000000000000066ffffffffffffff168160ff1610610cf0576040517f31843b5600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b63ffffffff8083166000908152600860205260409020610d1291839061256e16565b6040805163ffffffff8416815260ff831660208201527ff9fa6c3c4dbf13c4a8348c3102ef22789aa450b81e492b853e93f9701e08958091015b60405180910390a15050565b6040805180820190915260008082526020820152600080610d788561259d565b9092509050610d98610d906040870160208801614087565b8383876123a1565b95945050505050565b610da96124fa565b610db38282612614565b5050565b600660209081526000928352604080842090915290825290208054610ddb90614419565b80601f0160208091040260200160405190810160405280929190818152602001828054610e0790614419565b8015610e545780601f10610e2957610100808354040283529160200191610e54565b820191906000526020600020905b815481529060010190602001808311610e3757829003601f168201915b505050505081565b63ffffffff821660009081526001602052604090205481145b92915050565b610e83613c8f565b63ffffffff80851660009081526008602052604081209091610ecc91907f0000000000000000000000000000000000000000000000000000000000000000908790879061266216565b9050600080610edb8784612324565b91509150610f0187838360405180604001604052803481526020016000815250336126d1565b9350610f1b878460000151856020015187600001516127aa565b5050509392505050565b610f2d6124fa565b63ffffffff821660008181526007602090815260409182902080546fffffffffffffffffffffffffffffffff19166fffffffffffffffffffffffffffffffff86169081179091558251938452908301527f2de2cdf6b9f29bfb9afedda6cf015c5fcb9832c9c0c3dcc06d501d964cf565379101610d4c565b610fad6124fa565b63ffffffff821660008181526009602090815260409182902080546fffffffffffffffffffffffffffffffff19166fffffffffffffffffffffffffffffffff86169081179091558251938452908301527f5b9fac6cf74b12ad67aa143075523ab25ca781b0f611c4897b31d1500f2ae9629101610d4c565b61102d6124fa565b6110376000612802565b565b604080518082019091526000808252602082015263ffffffff808416600090815260086020526040902061106f91849061286a16565b6fffffffffffffffffffffffffffffffff16815292915050565b60006110958484612908565b156110de5760006110a6858561296c565b50505061ffff81166000908152600460205260409020549091506001600160a01b038085169116036110dc5760019150506110e2565b505b5060005b949350505050565b6110f26124fa565b600580547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081179091556040519081527f5767d79cd17d7554509a4dd59a5a7a9175c7e36466455d7b2fa4788228808579906020015b60405180910390a150565b611167613c8f565b604080518082019091526000815260606020820152600061118733612a11565b9050600061119b6040860160208701614087565b9050600080600061123c7f00000000000000000000000000000000000000000000000000000000000000008560405180608001604052808961ffff1681526020018c6040013581526020018c60600160208101906111f9919061447c565b67ffffffffffffffff16815260200161121860a08e0160808f01614499565b1515905263ffffffff808916600090815260086020526040902093929190612a6d16565b60408051808201825266ffffffffffffff90941684526020840192909252908901516fffffffffffffffffffffffffffffffff9190911690529698969750505050505050565b61128a6124fa565b8061ffff166000036112c8576040517fe447547600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60025461ffff740100000000000000000000000000000000000000009091048116908216111561137157600280547fffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000061ffff8416908102919091179091556040519081527f8f1145f51954bc9512a08693182e170a57b63ca4f6acc321b87c526970f4c0179060200160405180910390a15b6001600160a01b0380831660009081526003602090815260408083205461ffff868116855260049093529220549116911681156113e25761ffff8216600090815260046020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690555b6001600160a01b03811615611430576001600160a01b038116600090815260036020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001690555b6001600160a01b03841661147c5761ffff8316600090815260046020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556114f9565b6001600160a01b038416600081815260036020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001661ffff891690811790915583526004909152902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690911790555b604080516001600160a01b038616815261ffff851660208201527fac53470cf8e9e3d673caa7d47cd7db36c0d38cf37fc147c70c92bc0c1c4734f591015b60405180910390a150505050565b61154d6124fa565b60005b8381101561173657600060086000878785818110611570576115706144b4565b90506020020160208101906115859190614087565b63ffffffff16815260208101919091526040016000908120600181015490925066ffffffffffffff90811690861610156115cc57600182015466ffffffffffffff166115ce565b845b905060006115fd60017f0000000000000000000000000000000000000000000000000000000000000000614512565b66ffffffffffffff168566ffffffffffffff16101561161c5784611647565b61164760017f0000000000000000000000000000000000000000000000000000000000000000614512565b9050815b8166ffffffffffffff168166ffffffffffffff16116116b35766ffffffffffffff8116600090815260028501602052604090207f46000000000000000000000000000000000000000000000000000000000000009055806116ab81614539565b91505061164b565b507f67f9f72c3363a683d34792d61421ee605a284c875fe6db2293d46cb024ae9bdc8888868181106116e7576116e76144b4565b90506020020160208101906116fc9190614087565b6040805163ffffffff909216825266ffffffffffffff808616602084015284169082015260600160405180910390a1505050600101611550565b5050505050565b6117456124fa565b610db36117528284614633565b612c36565b63ffffffff8416600090815260066020908152604080832061ffff8716845290915281208054606092919061178b90614419565b80601f01602080910402602001604051908101604052809291908181526020018280546117b790614419565b80156118045780601f106117d957610100808354040283529160200191611804565b820191906000526020600020905b8154815290600101906020018083116117e757829003601f168201915b5050505050905080516000036118545783838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509294506110e29350505050565b60008390036118645790506110e2565b600283106118e2576118ab84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612d3d92505050565b806118b98460028188614749565b6040516020016118cb93929190614773565b6040516020818303038152906040529150506110e2565b83836040517f9a6d49cd000000000000000000000000000000000000000000000000000000008152600401610bf19291906147c6565b60005b81811015611a0a5736838383818110611936576119366144b4565b905060200281019061194891906147da565b905061196461195a6020830183614087565b6020830135610e5c565b61196e5750611a02565b3063d045a0dc60c08301358360a081013561198d610100830183614818565b61199e610100890160e08a01614132565b6119ac6101208a018a614818565b6040518963ffffffff1660e01b81526004016119ce97969594939291906148bb565b6000604051808303818588803b1580156119e757600080fd5b505af11580156119fb573d6000803e3d6000fd5b5050505050505b60010161191b565b50336001600160a01b0316638e9e70996040518163ffffffff1660e01b8152600401600060405180830381865afa158015611a49573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611a719190810190614912565b6040517f8351eea7000000000000000000000000000000000000000000000000000000008152600401610bf19190613fcf565b6005546001600160a01b03163314611ae8576040517fc63aab2c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff168363ffffffff1603611b4d576040517fa27dd10200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b63ffffffff8084166000908152600860205260409020611b719184908490612d8216565b6040805163ffffffff851681526effffffffffffffffffffffffffffff848116602083015283168183015290517fb8611e882dee0ae26e55604af1d40fa9f0ec18a0e28dcee93da3b15239930caf9181900360600190a1505050565b611bd56124fa565b6040517fca5eb5e10000000000000000000000000000000000000000000000000000000081526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e190602401600060405180830381600087803b158015611c5157600080fd5b505af1158015611736573d6000803e3d6000fd5b333014611c9e576040517f14d4a4e800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610c7a87878787878787610c6b565b611cb56124fa565b600280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081179091556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c242776090602001611154565b611d236124fa565b600280547fffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000061ffff8416908102919091179091556040519081527f8f1145f51954bc9512a08693182e170a57b63ca4f6acc321b87c526970f4c01790602001611154565b611da66124fa565b6001600160a01b038116611e3c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610bf1565b611e4581612802565b50565b60008082600003611e85576040517fe3a9395200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611e9284602b614980565b67ffffffffffffffff811115611eaa57611eaa61455f565b6040519080825280601f01601f191660200182016040528015611ed4576020820181803683370190505b5090506000611ee560008084612dfc565b90506000611ef587846000612e2e565b905085611f0588848460006123a1565b51611f1091906149c6565b63ffffffff881660009081526009602052604081205491965090611f5c9089908690611f5790611f52906fffffffffffffffffffffffffffffffff168c614980565b6130b5565b612e2e565b905086611f6c89858460006123a1565b51611f7791906149c6565b9450505050509250929050565b611f8c613c8f565b600080611f988661259d565b9092509050611fc7611fb06040880160208901614087565b8383611fc1368a90038a018a6149da565b886126d1565b9695505050505050565b6000602082018035906001908390611fe99086614087565b63ffffffff1681526020810191909152604001600020541492915050565b604080516080810182526000808252602082018190529181018290526060808201529080612035858561315b565b6001890154919350915066ffffffffffffff808316670100000000000000909204161461208e576040517ff288005700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60ff82166020840181905266ffffffffffffff8216845215806120b85750865460ff908116908316115b156120f4576040517fc5ad74c700000000000000000000000000000000000000000000000000000000815260ff83166004820152602401610bf1565b600066ffffffffffffff8216156121475760028801600088612117600186614512565b6121219190614a0c565b66ffffffffffffff1666ffffffffffffff1681526020019081526020016000205461214a565b60005b905060075b8581101561222b57600087828861216782602b614a32565b9261217493929190614749565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040519293506121be92869250849150602001614a45565b604051602081830303815290604052805190602001209250600081602a815181106121eb576121eb6144b4565b60209101015160f81c60011490508015612216576040870180519061220f82614a6b565b60ff169052505b506122249050602b82614a32565b905061214f565b506000600161223d60ff861685614a8a565b6122479190614512565b60018a015490915066ffffffffffffff90811690821610158061229a57506002890160006122758a84614a0c565b66ffffffffffffff1666ffffffffffffff168152602001908152602001600020548214155b156122d1576040517f5b3f67cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6122de866007818a614749565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505060608601525092979650505050505050565b63ffffffff8216600090815260096020526040908190205490820151606083810151909283926fffffffffffffffffffffffffffffffff9091169161236e9160ff16908390612dfc565b9250600081856040015160ff166123859190614aaa565b905061239686866060015183612e2e565b925050509250929050565b60408051808201909152600080825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff16815260200161240489612479565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b8152600401612439929190614ade565b6040805180830381865afa158015612455573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d989190614ba5565b63ffffffff811660009081526001602052604081205480610e75576040517ff6ff4fb700000000000000000000000000000000000000000000000000000000815263ffffffff84166004820152602401610bf1565b6124d885856131ff565b156124ee576124e98787878761324f565b610c7a565b610c7a878787876134fd565b6000546001600160a01b03163314611037576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610bf1565b81547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff91909116179055565b60608060006125ab33612a11565b90506125e56125bd6020860186614132565b8260408701356125d36080890160608a0161447c565b6125e060808a018a614818565b6135cb565b925061260c6125fa6040860160208701614087565b61260760a0870187614818565b613670565b915050915091565b63ffffffff8216600081815260016020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b9101610d4c565b604080516080810182526000808252602082018190529181019190915260608082015261269185858585612007565b9050806020015160ff168160000151018560010160076101000a81548166ffffffffffffff021916908366ffffffffffffff160217905550949350505050565b6126d9613c8f565b82517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff16815260200161272b8c612479565b81526020018a815260200189815260200160008960200151111515815250866040518463ffffffff1660e01b8152600401612767929190614ade565b60806040518083038185885af1158015612785573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b869190614bc1565b6040805163ffffffff8616815266ffffffffffffff8516602082015260ff841691810191909152606081018290527fac3ae656fc8519b8303cdfef076feabd744d2095edbae20d58c938a105d9f0d190608001611537565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008161288e57825461010090046effffffffffffffffffffffffffffff166128b6565b825470010000000000000000000000000000000090046effffffffffffffffffffffffffffff165b6effffffffffffffffffffffffffffff1690506000819003610e75576040517f5bc181900000000000000000000000000000000000000000000000000000000081528215156004820152602401610bf1565b6000602b821015612945576040517fde01ff2300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018383600081612958576129586144b4565b919091013560f81c91909114949350505050565b600080806060612980600360018789614749565b61298991614c0b565b60f01c935061299c602360038789614749565b6129a591614c51565b92506129b5602b60238789614749565b6129be91614c6f565b60c01c91506129d085602b8189614749565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509699959850939650909450505050565b6001600160a01b03811660009081526003602052604081205461ffff1690819003612a68576040517f8b6fecb700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b600184810180547fffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000811666ffffffffffffff91821680850183169190911792839055926060926000928881166701000000000000009092048116860390920190911610612b06576040517ffa36e2ba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612b0f84613779565b9150612b2884606001518861286a90919063ffffffff16565b9050600066ffffffffffffff841615612b8c578760020160008866ffffffffffffff166001870366ffffffffffffff1681612b6557612b65614997565b0666ffffffffffffff1666ffffffffffffff16815260200190815260200160002054612b8f565b60005b90508083604051602001612ba4929190614a45565b604051602081830303815290604052805190602001208860020160008987612bcc9190614a0c565b66ffffffffffffff1666ffffffffffffff168152602001908152602001600020819055507fd73bff10645d27f6036f6a705dfca85bd9801a94175d09d4b5a4029acc4109a2868585604051612c2393929190614cb5565b60405180910390a1509450945094915050565b60005b8151811015612d0d57612c68828281518110612c5757612c576144b4565b602002602001015160400151612d3d565b818181518110612c7a57612c7a6144b4565b60200260200101516040015160066000848481518110612c9c57612c9c6144b4565b60200260200101516000015163ffffffff1663ffffffff1681526020019081526020016000206000848481518110612cd657612cd66144b4565b60200260200101516020015161ffff1661ffff1681526020019081526020016000209081612d049190614d33565b50600101612c39565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b674816040516111549190614df3565b600281015161ffff8116600314610db357816040517f9a6d49cd000000000000000000000000000000000000000000000000000000008152600401610bf19190613fcf565b82547fff000000000000000000000000000000000000000000000000000000000000ff166101006effffffffffffffffffffffffffffff938416027fff000000000000000000000000000000ffffffffffffffffffffffffffffffff16177001000000000000000000000000000000009190921602179055565b60606002848484604051602001612e169493929190614e9c565b60405160208183030381529060405290509392505050565b63ffffffff8316600090815260066020908152604080832060028452909152812080546060929190612e5f90614419565b80601f0160208091040260200160405190810160405280929190818152602001828054612e8b90614419565b8015612ed85780601f10612ead57610100808354040283529160200191612ed8565b820191906000526020600020905b815481529060010190602001808311612ebb57829003601f168201915b505050505090506000612eea8661381f565b90506000612f1b602b8751612eff91906149c6565b611f52906fffffffffffffffffffffffffffffffff8516614980565b9050600080866fffffffffffffffffffffffffffffffff1611612fc1576040517f0100000000000000000000000000000000000000000000000000000000000000602082018190527e11000000000000000000000000000000000000000000000000000000000000602183015260238201526fffffffffffffffffffffffffffffffff19608084901b166024820152603401604051602081830303815290604052613050565b6040517f0100000000000000000000000000000000000000000000000000000000000000602082018190527e21000000000000000000000000000000000000000000000000000000000000602183015260238201526fffffffffffffffffffffffffffffffff19608084811b8216602484015288901b1660348201526044016040516020818303038152906040525b9050600284511061308457838160405160200161306e929190614f12565b60405160208183030381529060405294506130aa565b600381604051602001613098929190614f41565b60405160208183030381529060405294505b505050509392505050565b60006fffffffffffffffffffffffffffffffff821115613157576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203160448201527f32382062697473000000000000000000000000000000000000000000000000006064820152608401610bf1565b5090565b6000808260078110806131835750602b613176600783614f8c565b6131809190614f9f565b15155b156131ba576040517fbcbb94ef00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6131c8600760008688614749565b6131d191614fb3565b60c81c91506131f5602b6131e6600784614f8c565b6131f091906149c6565b613881565b9250509250929050565b6000602182101561323c576040517fe907cd4f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60028383600081612958576129586144b4565b600080600061325e8585613914565b9250925092506000836fffffffffffffffffffffffffffffffff161180156132a1575061328b8284614aaa565b6fffffffffffffffffffffffffffffffff163414155b156132d8576040517f07098ab800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3460005b82518160ff1610156134e0576000838260ff16815181106132ff576132ff6144b4565b6020026020010151905060006133188260000151613ac8565b90506000613327836020015190565b90506000876fffffffffffffffffffffffffffffffff1611801561334c575082606001515b156134265761336f81886fffffffffffffffffffffffffffffffff166001613b1c565b156133d257604080516001600160a01b03831681526fffffffffffffffffffffffffffffffff891660208201819052909603957f2d0eb51492ddbee9e95192a44349b114ecfdaacebba5e8aa735b12f14ab1affa910160405180910390a1613426565b604080516001600160a01b03831681526fffffffffffffffffffffffffffffffff891660208201527f4e2061832d78c1622b4b41b221d1791733ba77cd67e86bba10b3e61194d55eb2910160405180910390a15b816001600160a01b0316634458a7ab8d8d876040518060600160405280876001600160a01b03168152602001896040015167ffffffffffffffff168152602001604051806020016040528060008152508152506040518563ffffffff1660e01b81526004016134989493929190615035565b600060405180830381600087803b1580156134b257600080fd5b505af11580156134c6573d6000803e3d6000fd5b5050505050505080806134d890614a6b565b9150506132dc565b5080156134f3576134f333826000613bd5565b5050505050505050565b60008060008061350d868661296c565b9350935093509350600061351e8490565b9050600061352b86613ac8565b9050806001600160a01b0316634458a7ab8b8b60006040518060600160405280886001600160a01b031681526020018a67ffffffffffffffff168152602001898152506040518563ffffffff1660e01b815260040161358d9493929190615035565b600060405180830381600087803b1580156135a757600080fd5b505af11580156135bb573d6000803e3d6000fd5b5050505050505050505050505050565b60606001868686856136135786868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061364192505050565b6001600160a01b038b16878760405160200161363193929190615064565b6040516020818303038152906040525b60405160200161365595949392919061507e565b60405160208183030381529060405290509695505050505050565b6060600061367d8561381f565b905061368c8560018686611757565b915081516000146136c75781600160116001846040516020016136b3959493929190615128565b604051602081830303815290604052610d98565b6040517e0300000000000000000000000000000000000000000000000000000000000060208201527f0100000000000000000000000000000000000000000000000000000000000000602282018190527e11000000000000000000000000000000000000000000000000000000000000602383015260258201526fffffffffffffffffffffffffffffffff19608083901b16602682015260360160405160208183030381529060405295945050505050565b60608160000151826020015183604001518460600151604051602001613809949392919060f09490941b7fffff000000000000000000000000000000000000000000000000000000000000168452600284019290925260c01b7fffffffffffffffff000000000000000000000000000000000000000000000000166022830152151560f81b602a820152602b0190565b6040516020818303038152906040529050919050565b63ffffffff81166000908152600760205260408120546fffffffffffffffffffffffffffffffff1690819003612a68576040517fc960f36b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060ff821115613157576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203860448201527f20626974730000000000000000000000000000000000000000000000000000006064820152608401610bf1565b6000806060836021811015613955576040517f262c503d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613963601160018789614749565b61396c916151ca565b60801c935061397f602160118789614749565b613988916151ca565b60801c92506000602b61399c602184614f8c565b6139a691906149c6565b90508067ffffffffffffffff8111156139c1576139c161455f565b604051908082528060200260200182016040528015613a1357816020015b6040805160808101825260008082526020808301829052928201819052606082015282526000199092019101816139df5790505b509250602160005b828160ff161015613abd57613a7e89838a613a37602b83614a32565b92613a4493929190614749565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613c1b92505050565b858260ff1681518110613a9357613a936144b4565b6020908102919091010152613aa9602b83614a32565b915080613ab581614a6b565b915050613a1b565b505050509250925092565b61ffff81166000908152600460205260409020546001600160a01b031680612a68576040517f8b6fecb700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081613b77576040516001600160a01b038516908490600081818185875af1925050503d8060008114613b6c576040519150601f19603f3d011682016040523d82523d6000602084013e613b71565b606091505b50613bcc565b6040516001600160a01b038516906108fc9085906000818181858888f193505050503d8060008114613bc5576040519150601f19603f3d011682016040523d82523d6000602084013e613bca565b606091505b505b50949350505050565b613be0838383613b1c565b613c16576040517f7c75c3d200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b6040805160808101825260008082526020820181905291810182905260608101919091525060028101516022820151602a830151602b909301516040805160808101825261ffff9094168452602084019290925267ffffffffffffffff9093169082015260ff909116600114606082015290565b604051806060016040528060008019168152602001600067ffffffffffffffff168152602001613cd2604051806040016040528060008152602001600081525090565b905290565b803563ffffffff81168114612a6857600080fd5b60008083601f840112613cfd57600080fd5b50813567ffffffffffffffff811115613d1557600080fd5b602083019150836020828501011115613d2d57600080fd5b9250929050565b600080600060408486031215613d4957600080fd5b613d5284613cd7565b9250602084013567ffffffffffffffff811115613d6e57600080fd5b613d7a86828701613ceb565b9497909650939450505050565b815181526020808301519082015260408101610e75565b600060608284031215613db057600080fd5b50919050565b80356001600160a01b0381168114612a6857600080fd5b600080600080600080600060e0888a031215613de857600080fd5b613df28989613d9e565b965060608801359550608088013567ffffffffffffffff80821115613e1657600080fd5b613e228b838c01613ceb565b9097509550859150613e3660a08b01613db6565b945060c08a0135915080821115613e4c57600080fd5b50613e598a828b01613ceb565b989b979a50959850939692959293505050565b60008060408385031215613e7f57600080fd5b613e8883613cd7565b9150602083013560ff81168114613e9e57600080fd5b809150509250929050565b600060c08284031215613db057600080fd5b80358015158114612a6857600080fd5b60008060408385031215613ede57600080fd5b823567ffffffffffffffff811115613ef557600080fd5b613f0185828601613ea9565b925050613f1060208401613ebb565b90509250929050565b60008060408385031215613f2c57600080fd5b613f3583613cd7565b946020939093013593505050565b803561ffff81168114612a6857600080fd5b60008060408385031215613f6857600080fd5b613f7183613cd7565b9150613f1060208401613f43565b60005b83811015613f9a578181015183820152602001613f82565b50506000910152565b60008151808452613fbb816020860160208601613f7f565b601f01601f19169290920160200192915050565b602081526000613fe26020830184613fa3565b9392505050565b600060208284031215613ffb57600080fd5b613fe282613f43565b8051825267ffffffffffffffff60208201511660208301526040810151613c16604084018280518252602090810151910152565b60808101610e758284614004565b6000806040838503121561405957600080fd5b61406283613cd7565b915060208301356fffffffffffffffffffffffffffffffff81168114613e9e57600080fd5b60006020828403121561409957600080fd5b613fe282613cd7565b600080604083850312156140b557600080fd5b6140be83613cd7565b9150613f1060208401613ebb565b60008060008060a085870312156140e257600080fd5b6140ec8686613d9e565b9350606085013567ffffffffffffffff81111561410857600080fd5b61411487828801613ceb565b9094509250614127905060808601613db6565b905092959194509250565b60006020828403121561414457600080fd5b613fe282613db6565b600060a08284031215613db057600080fd5b6141698184614004565b60a0608082015266ffffffffffffff82511660a082015260006020830151604060c0840152610d9860e0840182613fa3565b600080604083850312156141ae57600080fd5b613f7183613db6565b60008083601f8401126141c957600080fd5b50813567ffffffffffffffff8111156141e157600080fd5b6020830191508360208260051b8501011115613d2d57600080fd5b803566ffffffffffffff81168114612a6857600080fd5b6000806000806060858703121561422957600080fd5b843567ffffffffffffffff81111561424057600080fd5b61424c878288016141b7565b909550935061425f9050602086016141fc565b9150614127604086016141fc565b6000806020838503121561428057600080fd5b823567ffffffffffffffff81111561429757600080fd5b6142a3858286016141b7565b90969095509350505050565b600080600080606085870312156142c557600080fd5b6142ce85613cd7565b93506142dc60208601613f43565b9250604085013567ffffffffffffffff8111156142f857600080fd5b61430487828801613ceb565b95989497509550505050565b80356effffffffffffffffffffffffffffff81168114612a6857600080fd5b60008060006060848603121561434457600080fd5b61434d84613cd7565b925061435b60208501614310565b915061436960408501614310565b90509250925092565b6000806040838503121561438557600080fd5b61438e83613cd7565b9150613f10602084016141fc565b600080600083850360808112156143b257600080fd5b843567ffffffffffffffff8111156143c957600080fd5b6143d587828801613ea9565b9450506040601f19820112156143ea57600080fd5b5060208401915061436960608501613db6565b60006060828403121561440f57600080fd5b613fe28383613d9e565b600181811c9082168061442d57607f821691505b602082108103613db0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b67ffffffffffffffff81168114611e4557600080fd5b60006020828403121561448e57600080fd5b8135613fe281614466565b6000602082840312156144ab57600080fd5b613fe282613ebb565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b66ffffffffffffff828116828216039080821115614532576145326144e3565b5092915050565b600066ffffffffffffff808316818103614555576145556144e3565b6001019392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff811182821017156145b1576145b161455f565b60405290565b6040805190810167ffffffffffffffff811182821017156145b1576145b161455f565b604051601f8201601f1916810167ffffffffffffffff811182821017156146035761460361455f565b604052919050565b600067ffffffffffffffff8211156146255761462561455f565b50601f01601f191660200190565b600067ffffffffffffffff8084111561464e5761464e61455f565b8360051b602061465f8183016145da565b86815291850191818101903684111561467757600080fd5b865b8481101561473d578035868111156146915760008081fd5b880160603682900312156146a55760008081fd5b6146ad61458e565b6146b682613cd7565b81526146c3868301613f43565b86820152604080830135898111156146db5760008081fd5b929092019136601f8401126146f05760008081fd5b82356147036146fe8261460b565b6145da565b81815236898387010111156147185760008081fd5b818986018a830137600091810189019190915290820152845250918301918301614679565b50979650505050505050565b6000808585111561475957600080fd5b8386111561476657600080fd5b5050820193919092039150565b60008451614785818460208901613f7f565b8201838582376000930192835250909392505050565b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b6020815260006110e260208301848661479b565b600082357ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec183360301811261480e57600080fd5b9190910192915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261484d57600080fd5b83018035915067ffffffffffffffff82111561486857600080fd5b602001915036819003821315613d2d57600080fd5b63ffffffff61488b82613cd7565b1682526020810135602083015260408101356148a681614466565b67ffffffffffffffff81166040840152505050565b6148c5818961487d565b86606082015260e0608082015260006148e260e08301878961479b565b6001600160a01b03861660a084015282810360c084015261490481858761479b565b9a9950505050505050505050565b60006020828403121561492457600080fd5b815167ffffffffffffffff81111561493b57600080fd5b8201601f8101841361494c57600080fd5b805161495a6146fe8261460b565b81815285602083850101111561496f57600080fd5b610d98826020830160208601613f7f565b8082028115828204841417610e7557610e756144e3565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000826149d5576149d5614997565b500490565b6000604082840312156149ec57600080fd5b6149f46145b7565b82358152602083013560208201528091505092915050565b600066ffffffffffffff80841680614a2657614a26614997565b92169190910692915050565b80820180821115610e7557610e756144e3565b82815260008251614a5d816020850160208701613f7f565b919091016020019392505050565b600060ff821660ff8103614a8157614a816144e3565b60010192915050565b66ffffffffffffff818116838216019080821115614532576145326144e3565b6fffffffffffffffffffffffffffffffff818116838216028082169190828114614ad657614ad66144e3565b505092915050565b6040815263ffffffff8351166040820152602083015160608201526000604084015160a06080840152614b1460e0840182613fa3565b905060608501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08483030160a0850152614b4f8282613fa3565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b600060408284031215614b8757600080fd5b614b8f6145b7565b9050815181526020820151602082015292915050565b600060408284031215614bb757600080fd5b613fe28383614b75565b600060808284031215614bd357600080fd5b614bdb61458e565b825181526020830151614bed81614466565b6020820152614bff8460408501614b75565b60408201529392505050565b7fffff0000000000000000000000000000000000000000000000000000000000008135818116916002851015614ad65760029490940360031b84901b1690921692915050565b80356020831015610e7557600019602084900360031b1b1692915050565b7fffffffffffffffff0000000000000000000000000000000000000000000000008135818116916008851015614ad65760089490940360031b84901b1690921692915050565b63ffffffff8416815266ffffffffffffff83166020820152606060408201526000610d986060830184613fa3565b601f821115613c16576000816000526020600020601f850160051c81016020861015614d0c5750805b601f850160051c820191505b81811015614d2b57828155600101614d18565b505050505050565b815167ffffffffffffffff811115614d4d57614d4d61455f565b614d6181614d5b8454614419565b84614ce3565b602080601f831160018114614d965760008415614d7e5750858301515b600019600386901b1c1916600185901b178555614d2b565b600085815260208120601f198616915b82811015614dc557888601518255948401946001909101908401614da6565b5085821015614de35787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b83811015614e8e578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc00185528151805163ffffffff1684528781015161ffff16888501528601516060878501819052614e7a81860183613fa3565b968901969450505090860190600101614e1c565b509098975050505050505050565b7fff000000000000000000000000000000000000000000000000000000000000008560f81b16815260006fffffffffffffffffffffffffffffffff19808660801b166001840152808560801b166011840152508251614f02816021850160208701613f7f565b9190910160210195945050505050565b60008351614f24818460208801613f7f565b835190830190614f38818360208801613f7f565b01949350505050565b7fffff0000000000000000000000000000000000000000000000000000000000008360f01b16815260008251614f7e816002850160208701613f7f565b919091016002019392505050565b81810381811115610e7557610e756144e3565b600082614fae57614fae614997565b500690565b7fffffffffffffff000000000000000000000000000000000000000000000000008135818116916007851015614ad65760079490940360031b84901b1690921692915050565b6001600160a01b03815116825267ffffffffffffffff602082015116602083015260006040820151606060408501526110e26060850182613fa3565b61503f818661487d565b83606082015260ff8316608082015260c060a08201526000611fc760c0830184614ff9565b838152818360208301376000910160200190815292915050565b7fff000000000000000000000000000000000000000000000000000000000000008660f81b1681527fffff0000000000000000000000000000000000000000000000000000000000008560f01b1660018201528360038201527fffffffffffffffff0000000000000000000000000000000000000000000000008360c01b1660238201526000825161511781602b850160208701613f7f565b91909101602b019695505050505050565b6000865161513a818460208b01613f7f565b60f896871b7fff000000000000000000000000000000000000000000000000000000000000009081169390910192835260f09590951b7fffff000000000000000000000000000000000000000000000000000000000000166001830152509190931b909116600382015260809190911b6fffffffffffffffffffffffffffffffff19166004820152601401919050565b6fffffffffffffffffffffffffffffffff198135818116916010851015614ad65760109490940360031b84901b169092169291505056fea2646970667358221220c1be9ace4cd32339259f8bbfcc6a3f1a920f96cf2b30d4a1db62feaa1b9b2e6764736f6c63430008160033",
|
|
1856
|
+
"deployedBytecode": "0x6080604052600436106103085760003560e01c806385afd4531161019a578063c39d902c116100e1578063e4c572cc1161008a578063f912278a11610064578063f912278a14610aa1578063ff6fb30014610ad6578063ff7bd03d14610ae957600080fd5b8063e4c572cc14610a22578063f2fde38b14610a42578063f8d50da614610a6257600080fd5b8063d117b562116100bb578063d117b56214610984578063d4243885146109d1578063d8e8dbc7146109f157600080fd5b8063c39d902c14610931578063ca5eb5e114610951578063d045a0dc1461097157600080fd5b8063b731ea0a11610143578063bc70b3541161011d578063bc70b354146108e9578063bd815db014610909578063c239f1ad1461091c57600080fd5b8063b731ea0a1461086e578063b98bd0701461088e578063bb0b6a53146108ae57600080fd5b806390fdb20c1161017457806390fdb20c146107bc578063917df23b14610808578063b37c9a7f1461084e57600080fd5b806385afd453146107505780638da5cb5b1461077e5780638f71f7dd1461079c57600080fd5b80635e280f111161025e578063715018a6116102075780637d25a05e116101e15780637d25a05e146106d457806382413eac14610710578063826f1fb11461073057600080fd5b8063715018a61461063f578063731dbe0c1461065457806375d2208c146106b457600080fd5b806365b9bacb1161023857806365b9bacb146105335780636763d689146105535780636ad9914d1461057357600080fd5b80635e280f11146104a95780635f6d9ae4146104dd57806364e4ac271461051357600080fd5b806332e4e363116102c057806352ae28791161029a57806352ae2879146104395780635535d4611461044c5780635a0dfe4d1461047957600080fd5b806332e4e363146103ba5780633400288b146103f257806345655a161461041257600080fd5b806317442b70116102f157806317442b70146103585780632dca2f511461037a5780633292cf021461039a57600080fd5b8063086431ec1461030d57806313137d6514610343575b600080fd5b34801561031957600080fd5b5061032d610328366004613d34565b610b09565b60405161033a9190613d87565b60405180910390f35b610356610351366004613dcd565b610b91565b005b34801561036457600080fd5b506040805160018152600260208201520161033a565b34801561038657600080fd5b50610356610395366004613e6c565b610c83565b3480156103a657600080fd5b5061032d6103b5366004613ecb565b610d58565b3480156103c657600080fd5b506005546103da906001600160a01b031681565b6040516001600160a01b03909116815260200161033a565b3480156103fe57600080fd5b5061035661040d366004613f19565b610da1565b34801561041e57600080fd5b50610427600181565b60405160ff909116815260200161033a565b34801561044557600080fd5b50306103da565b34801561045857600080fd5b5061046c610467366004613f55565b610db7565b60405161033a9190613fcf565b34801561048557600080fd5b50610499610494366004613f19565b610e5c565b604051901515815260200161033a565b3480156104b557600080fd5b506103da7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104e957600080fd5b506103da6104f8366004613fe9565b6004602052600090815260409020546001600160a01b031681565b610526610521366004613d34565b610e7b565b60405161033a9190614038565b34801561053f57600080fd5b5061035661054e366004614046565b610f25565b34801561055f57600080fd5b5061035661056e366004614046565b610fa5565b34801561057f57600080fd5b506105f361058e366004614087565b6008602052600090815260409020805460019091015460ff8216916effffffffffffffffffffffffffffff6101008204811692700100000000000000000000000000000000909204169066ffffffffffffff8082169167010000000000000090041685565b6040805160ff90961686526effffffffffffffffffffffffffffff9485166020870152939092169284019290925266ffffffffffffff918216606084015216608082015260a00161033a565b34801561064b57600080fd5b50610356611025565b34801561066057600080fd5b5061069361066f366004614087565b6009602052600090815260409020546fffffffffffffffffffffffffffffffff1681565b6040516fffffffffffffffffffffffffffffffff909116815260200161033a565b3480156106c057600080fd5b5061032d6106cf3660046140a2565b611039565b3480156106e057600080fd5b506106f76106ef366004613f19565b600092915050565b60405167ffffffffffffffff909116815260200161033a565b34801561071c57600080fd5b5061049961072b3660046140cc565b611089565b34801561073c57600080fd5b5061035661074b366004614132565b6110ea565b34801561075c57600080fd5b5061077061076b36600461414d565b61115f565b60405161033a92919061415f565b34801561078a57600080fd5b506000546001600160a01b03166103da565b3480156107a857600080fd5b506103566107b736600461419b565b611282565b3480156107c857600080fd5b506107f07f000000000000000000000000000000000000000000000000000000000000000081565b60405166ffffffffffffff909116815260200161033a565b34801561081457600080fd5b5060025461083b9074010000000000000000000000000000000000000000900461ffff1681565b60405161ffff909116815260200161033a565b34801561085a57600080fd5b50610356610869366004614213565b611545565b34801561087a57600080fd5b506002546103da906001600160a01b031681565b34801561089a57600080fd5b506103566108a936600461426d565b61173d565b3480156108ba57600080fd5b506108db6108c9366004614087565b60016020526000908152604090205481565b60405190815260200161033a565b3480156108f557600080fd5b5061046c6109043660046142af565b611757565b61035661091736600461426d565b611918565b34801561092857600080fd5b50610427600281565b34801561093d57600080fd5b5061035661094c36600461432f565b611aa4565b34801561095d57600080fd5b5061035661096c366004614132565b611bcd565b61035661097f366004613dcd565b611c65565b34801561099057600080fd5b506108db61099f366004614372565b63ffffffff909116600090815260086020908152604080832066ffffffffffffff909416835260029093019052205490565b3480156109dd57600080fd5b506103566109ec366004614132565b611cad565b3480156109fd57600080fd5b5061083b610a0c366004614132565b60036020526000908152604090205461ffff1681565b348015610a2e57600080fd5b50610356610a3d366004613fe9565b611d1b565b348015610a4e57600080fd5b50610356610a5d366004614132565b611d9e565b348015610a6e57600080fd5b50610693610a7d366004614087565b6007602052600090815260409020546fffffffffffffffffffffffffffffffff1681565b348015610aad57600080fd5b50610ac1610abc366004613f19565b611e48565b6040805192835260208301919091520161033a565b610526610ae436600461439c565b611f84565b348015610af557600080fd5b50610499610b043660046143fd565b611fd1565b604080518082019091526000808252602082015263ffffffff80851660009081526008602052604081209091610b6691907f0000000000000000000000000000000000000000000000000000000000000000908790879061200716565b9050600080610b758784612324565b91509150610b8687838360006123a1565b979650505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610bfa576040517f91ac5e4f0000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b60208701803590610c1490610c0f908a614087565b612479565b14610c6b57610c266020880188614087565b6040517fc26bebcc00000000000000000000000000000000000000000000000000000000815263ffffffff909116600482015260208801356024820152604401610bf1565b610c7a878787878787876124ce565b50505050505050565b610c8b6124fa565b7f000000000000000000000000000000000000000000000000000000000000000066ffffffffffffff168160ff1610610cf0576040517f31843b5600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b63ffffffff8083166000908152600860205260409020610d1291839061256e16565b6040805163ffffffff8416815260ff831660208201527ff9fa6c3c4dbf13c4a8348c3102ef22789aa450b81e492b853e93f9701e08958091015b60405180910390a15050565b6040805180820190915260008082526020820152600080610d788561259d565b9092509050610d98610d906040870160208801614087565b8383876123a1565b95945050505050565b610da96124fa565b610db38282612614565b5050565b600660209081526000928352604080842090915290825290208054610ddb90614419565b80601f0160208091040260200160405190810160405280929190818152602001828054610e0790614419565b8015610e545780601f10610e2957610100808354040283529160200191610e54565b820191906000526020600020905b815481529060010190602001808311610e3757829003601f168201915b505050505081565b63ffffffff821660009081526001602052604090205481145b92915050565b610e83613c8f565b63ffffffff80851660009081526008602052604081209091610ecc91907f0000000000000000000000000000000000000000000000000000000000000000908790879061266216565b9050600080610edb8784612324565b91509150610f0187838360405180604001604052803481526020016000815250336126d1565b9350610f1b878460000151856020015187600001516127aa565b5050509392505050565b610f2d6124fa565b63ffffffff821660008181526007602090815260409182902080546fffffffffffffffffffffffffffffffff19166fffffffffffffffffffffffffffffffff86169081179091558251938452908301527f2de2cdf6b9f29bfb9afedda6cf015c5fcb9832c9c0c3dcc06d501d964cf565379101610d4c565b610fad6124fa565b63ffffffff821660008181526009602090815260409182902080546fffffffffffffffffffffffffffffffff19166fffffffffffffffffffffffffffffffff86169081179091558251938452908301527f5b9fac6cf74b12ad67aa143075523ab25ca781b0f611c4897b31d1500f2ae9629101610d4c565b61102d6124fa565b6110376000612802565b565b604080518082019091526000808252602082015263ffffffff808416600090815260086020526040902061106f91849061286a16565b6fffffffffffffffffffffffffffffffff16815292915050565b60006110958484612908565b156110de5760006110a6858561296c565b50505061ffff81166000908152600460205260409020549091506001600160a01b038085169116036110dc5760019150506110e2565b505b5060005b949350505050565b6110f26124fa565b600580547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081179091556040519081527f5767d79cd17d7554509a4dd59a5a7a9175c7e36466455d7b2fa4788228808579906020015b60405180910390a150565b611167613c8f565b604080518082019091526000815260606020820152600061118733612a11565b9050600061119b6040860160208701614087565b9050600080600061123c7f00000000000000000000000000000000000000000000000000000000000000008560405180608001604052808961ffff1681526020018c6040013581526020018c60600160208101906111f9919061447c565b67ffffffffffffffff16815260200161121860a08e0160808f01614499565b1515905263ffffffff808916600090815260086020526040902093929190612a6d16565b60408051808201825266ffffffffffffff90941684526020840192909252908901516fffffffffffffffffffffffffffffffff9190911690529698969750505050505050565b61128a6124fa565b8061ffff166000036112c8576040517fe447547600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60025461ffff740100000000000000000000000000000000000000009091048116908216111561137157600280547fffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000061ffff8416908102919091179091556040519081527f8f1145f51954bc9512a08693182e170a57b63ca4f6acc321b87c526970f4c0179060200160405180910390a15b6001600160a01b0380831660009081526003602090815260408083205461ffff868116855260049093529220549116911681156113e25761ffff8216600090815260046020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690555b6001600160a01b03811615611430576001600160a01b038116600090815260036020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001690555b6001600160a01b03841661147c5761ffff8316600090815260046020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556114f9565b6001600160a01b038416600081815260036020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001661ffff891690811790915583526004909152902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690911790555b604080516001600160a01b038616815261ffff851660208201527fac53470cf8e9e3d673caa7d47cd7db36c0d38cf37fc147c70c92bc0c1c4734f591015b60405180910390a150505050565b61154d6124fa565b60005b8381101561173657600060086000878785818110611570576115706144b4565b90506020020160208101906115859190614087565b63ffffffff16815260208101919091526040016000908120600181015490925066ffffffffffffff90811690861610156115cc57600182015466ffffffffffffff166115ce565b845b905060006115fd60017f0000000000000000000000000000000000000000000000000000000000000000614512565b66ffffffffffffff168566ffffffffffffff16101561161c5784611647565b61164760017f0000000000000000000000000000000000000000000000000000000000000000614512565b9050815b8166ffffffffffffff168166ffffffffffffff16116116b35766ffffffffffffff8116600090815260028501602052604090207f46000000000000000000000000000000000000000000000000000000000000009055806116ab81614539565b91505061164b565b507f67f9f72c3363a683d34792d61421ee605a284c875fe6db2293d46cb024ae9bdc8888868181106116e7576116e76144b4565b90506020020160208101906116fc9190614087565b6040805163ffffffff909216825266ffffffffffffff808616602084015284169082015260600160405180910390a1505050600101611550565b5050505050565b6117456124fa565b610db36117528284614633565b612c36565b63ffffffff8416600090815260066020908152604080832061ffff8716845290915281208054606092919061178b90614419565b80601f01602080910402602001604051908101604052809291908181526020018280546117b790614419565b80156118045780601f106117d957610100808354040283529160200191611804565b820191906000526020600020905b8154815290600101906020018083116117e757829003601f168201915b5050505050905080516000036118545783838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509294506110e29350505050565b60008390036118645790506110e2565b600283106118e2576118ab84848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612d3d92505050565b806118b98460028188614749565b6040516020016118cb93929190614773565b6040516020818303038152906040529150506110e2565b83836040517f9a6d49cd000000000000000000000000000000000000000000000000000000008152600401610bf19291906147c6565b60005b81811015611a0a5736838383818110611936576119366144b4565b905060200281019061194891906147da565b905061196461195a6020830183614087565b6020830135610e5c565b61196e5750611a02565b3063d045a0dc60c08301358360a081013561198d610100830183614818565b61199e610100890160e08a01614132565b6119ac6101208a018a614818565b6040518963ffffffff1660e01b81526004016119ce97969594939291906148bb565b6000604051808303818588803b1580156119e757600080fd5b505af11580156119fb573d6000803e3d6000fd5b5050505050505b60010161191b565b50336001600160a01b0316638e9e70996040518163ffffffff1660e01b8152600401600060405180830381865afa158015611a49573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611a719190810190614912565b6040517f8351eea7000000000000000000000000000000000000000000000000000000008152600401610bf19190613fcf565b6005546001600160a01b03163314611ae8576040517fc63aab2c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff168363ffffffff1603611b4d576040517fa27dd10200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b63ffffffff8084166000908152600860205260409020611b719184908490612d8216565b6040805163ffffffff851681526effffffffffffffffffffffffffffff848116602083015283168183015290517fb8611e882dee0ae26e55604af1d40fa9f0ec18a0e28dcee93da3b15239930caf9181900360600190a1505050565b611bd56124fa565b6040517fca5eb5e10000000000000000000000000000000000000000000000000000000081526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e190602401600060405180830381600087803b158015611c5157600080fd5b505af1158015611736573d6000803e3d6000fd5b333014611c9e576040517f14d4a4e800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610c7a87878787878787610c6b565b611cb56124fa565b600280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081179091556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c242776090602001611154565b611d236124fa565b600280547fffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000061ffff8416908102919091179091556040519081527f8f1145f51954bc9512a08693182e170a57b63ca4f6acc321b87c526970f4c01790602001611154565b611da66124fa565b6001600160a01b038116611e3c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610bf1565b611e4581612802565b50565b60008082600003611e85576040517fe3a9395200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611e9284602b614980565b67ffffffffffffffff811115611eaa57611eaa61455f565b6040519080825280601f01601f191660200182016040528015611ed4576020820181803683370190505b5090506000611ee560008084612dfc565b90506000611ef587846000612e2e565b905085611f0588848460006123a1565b51611f1091906149c6565b63ffffffff881660009081526009602052604081205491965090611f5c9089908690611f5790611f52906fffffffffffffffffffffffffffffffff168c614980565b6130b5565b612e2e565b905086611f6c89858460006123a1565b51611f7791906149c6565b9450505050509250929050565b611f8c613c8f565b600080611f988661259d565b9092509050611fc7611fb06040880160208901614087565b8383611fc1368a90038a018a6149da565b886126d1565b9695505050505050565b6000602082018035906001908390611fe99086614087565b63ffffffff1681526020810191909152604001600020541492915050565b604080516080810182526000808252602082018190529181018290526060808201529080612035858561315b565b6001890154919350915066ffffffffffffff808316670100000000000000909204161461208e576040517ff288005700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60ff82166020840181905266ffffffffffffff8216845215806120b85750865460ff908116908316115b156120f4576040517fc5ad74c700000000000000000000000000000000000000000000000000000000815260ff83166004820152602401610bf1565b600066ffffffffffffff8216156121475760028801600088612117600186614512565b6121219190614a0c565b66ffffffffffffff1666ffffffffffffff1681526020019081526020016000205461214a565b60005b905060075b8581101561222b57600087828861216782602b614a32565b9261217493929190614749565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040519293506121be92869250849150602001614a45565b604051602081830303815290604052805190602001209250600081602a815181106121eb576121eb6144b4565b60209101015160f81c60011490508015612216576040870180519061220f82614a6b565b60ff169052505b506122249050602b82614a32565b905061214f565b506000600161223d60ff861685614a8a565b6122479190614512565b60018a015490915066ffffffffffffff90811690821610158061229a57506002890160006122758a84614a0c565b66ffffffffffffff1666ffffffffffffff168152602001908152602001600020548214155b156122d1576040517f5b3f67cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6122de866007818a614749565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505060608601525092979650505050505050565b63ffffffff8216600090815260096020526040908190205490820151606083810151909283926fffffffffffffffffffffffffffffffff9091169161236e9160ff16908390612dfc565b9250600081856040015160ff166123859190614aaa565b905061239686866060015183612e2e565b925050509250929050565b60408051808201909152600080825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff16815260200161240489612479565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b8152600401612439929190614ade565b6040805180830381865afa158015612455573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d989190614ba5565b63ffffffff811660009081526001602052604081205480610e75576040517ff6ff4fb700000000000000000000000000000000000000000000000000000000815263ffffffff84166004820152602401610bf1565b6124d885856131ff565b156124ee576124e98787878761324f565b610c7a565b610c7a878787876134fd565b6000546001600160a01b03163314611037576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610bf1565b81547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff91909116179055565b60608060006125ab33612a11565b90506125e56125bd6020860186614132565b8260408701356125d36080890160608a0161447c565b6125e060808a018a614818565b6135cb565b925061260c6125fa6040860160208701614087565b61260760a0870187614818565b613670565b915050915091565b63ffffffff8216600081815260016020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b9101610d4c565b604080516080810182526000808252602082018190529181019190915260608082015261269185858585612007565b9050806020015160ff168160000151018560010160076101000a81548166ffffffffffffff021916908366ffffffffffffff160217905550949350505050565b6126d9613c8f565b82517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff16815260200161272b8c612479565b81526020018a815260200189815260200160008960200151111515815250866040518463ffffffff1660e01b8152600401612767929190614ade565b60806040518083038185885af1158015612785573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b869190614bc1565b6040805163ffffffff8616815266ffffffffffffff8516602082015260ff841691810191909152606081018290527fac3ae656fc8519b8303cdfef076feabd744d2095edbae20d58c938a105d9f0d190608001611537565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008161288e57825461010090046effffffffffffffffffffffffffffff166128b6565b825470010000000000000000000000000000000090046effffffffffffffffffffffffffffff165b6effffffffffffffffffffffffffffff1690506000819003610e75576040517f5bc181900000000000000000000000000000000000000000000000000000000081528215156004820152602401610bf1565b6000602b821015612945576040517fde01ff2300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60018383600081612958576129586144b4565b919091013560f81c91909114949350505050565b600080806060612980600360018789614749565b61298991614c0b565b60f01c935061299c602360038789614749565b6129a591614c51565b92506129b5602b60238789614749565b6129be91614c6f565b60c01c91506129d085602b8189614749565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509699959850939650909450505050565b6001600160a01b03811660009081526003602052604081205461ffff1690819003612a68576040517f8b6fecb700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b600184810180547fffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000811666ffffffffffffff91821680850183169190911792839055926060926000928881166701000000000000009092048116860390920190911610612b06576040517ffa36e2ba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612b0f84613779565b9150612b2884606001518861286a90919063ffffffff16565b9050600066ffffffffffffff841615612b8c578760020160008866ffffffffffffff166001870366ffffffffffffff1681612b6557612b65614997565b0666ffffffffffffff1666ffffffffffffff16815260200190815260200160002054612b8f565b60005b90508083604051602001612ba4929190614a45565b604051602081830303815290604052805190602001208860020160008987612bcc9190614a0c565b66ffffffffffffff1666ffffffffffffff168152602001908152602001600020819055507fd73bff10645d27f6036f6a705dfca85bd9801a94175d09d4b5a4029acc4109a2868585604051612c2393929190614cb5565b60405180910390a1509450945094915050565b60005b8151811015612d0d57612c68828281518110612c5757612c576144b4565b602002602001015160400151612d3d565b818181518110612c7a57612c7a6144b4565b60200260200101516040015160066000848481518110612c9c57612c9c6144b4565b60200260200101516000015163ffffffff1663ffffffff1681526020019081526020016000206000848481518110612cd657612cd66144b4565b60200260200101516020015161ffff1661ffff1681526020019081526020016000209081612d049190614d33565b50600101612c39565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b674816040516111549190614df3565b600281015161ffff8116600314610db357816040517f9a6d49cd000000000000000000000000000000000000000000000000000000008152600401610bf19190613fcf565b82547fff000000000000000000000000000000000000000000000000000000000000ff166101006effffffffffffffffffffffffffffff938416027fff000000000000000000000000000000ffffffffffffffffffffffffffffffff16177001000000000000000000000000000000009190921602179055565b60606002848484604051602001612e169493929190614e9c565b60405160208183030381529060405290509392505050565b63ffffffff8316600090815260066020908152604080832060028452909152812080546060929190612e5f90614419565b80601f0160208091040260200160405190810160405280929190818152602001828054612e8b90614419565b8015612ed85780601f10612ead57610100808354040283529160200191612ed8565b820191906000526020600020905b815481529060010190602001808311612ebb57829003601f168201915b505050505090506000612eea8661381f565b90506000612f1b602b8751612eff91906149c6565b611f52906fffffffffffffffffffffffffffffffff8516614980565b9050600080866fffffffffffffffffffffffffffffffff1611612fc1576040517f0100000000000000000000000000000000000000000000000000000000000000602082018190527e11000000000000000000000000000000000000000000000000000000000000602183015260238201526fffffffffffffffffffffffffffffffff19608084901b166024820152603401604051602081830303815290604052613050565b6040517f0100000000000000000000000000000000000000000000000000000000000000602082018190527e21000000000000000000000000000000000000000000000000000000000000602183015260238201526fffffffffffffffffffffffffffffffff19608084811b8216602484015288901b1660348201526044016040516020818303038152906040525b9050600284511061308457838160405160200161306e929190614f12565b60405160208183030381529060405294506130aa565b600381604051602001613098929190614f41565b60405160208183030381529060405294505b505050509392505050565b60006fffffffffffffffffffffffffffffffff821115613157576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203160448201527f32382062697473000000000000000000000000000000000000000000000000006064820152608401610bf1565b5090565b6000808260078110806131835750602b613176600783614f8c565b6131809190614f9f565b15155b156131ba576040517fbcbb94ef00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6131c8600760008688614749565b6131d191614fb3565b60c81c91506131f5602b6131e6600784614f8c565b6131f091906149c6565b613881565b9250509250929050565b6000602182101561323c576040517fe907cd4f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60028383600081612958576129586144b4565b600080600061325e8585613914565b9250925092506000836fffffffffffffffffffffffffffffffff161180156132a1575061328b8284614aaa565b6fffffffffffffffffffffffffffffffff163414155b156132d8576040517f07098ab800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b3460005b82518160ff1610156134e0576000838260ff16815181106132ff576132ff6144b4565b6020026020010151905060006133188260000151613ac8565b90506000613327836020015190565b90506000876fffffffffffffffffffffffffffffffff1611801561334c575082606001515b156134265761336f81886fffffffffffffffffffffffffffffffff166001613b1c565b156133d257604080516001600160a01b03831681526fffffffffffffffffffffffffffffffff891660208201819052909603957f2d0eb51492ddbee9e95192a44349b114ecfdaacebba5e8aa735b12f14ab1affa910160405180910390a1613426565b604080516001600160a01b03831681526fffffffffffffffffffffffffffffffff891660208201527f4e2061832d78c1622b4b41b221d1791733ba77cd67e86bba10b3e61194d55eb2910160405180910390a15b816001600160a01b0316634458a7ab8d8d876040518060600160405280876001600160a01b03168152602001896040015167ffffffffffffffff168152602001604051806020016040528060008152508152506040518563ffffffff1660e01b81526004016134989493929190615035565b600060405180830381600087803b1580156134b257600080fd5b505af11580156134c6573d6000803e3d6000fd5b5050505050505080806134d890614a6b565b9150506132dc565b5080156134f3576134f333826000613bd5565b5050505050505050565b60008060008061350d868661296c565b9350935093509350600061351e8490565b9050600061352b86613ac8565b9050806001600160a01b0316634458a7ab8b8b60006040518060600160405280886001600160a01b031681526020018a67ffffffffffffffff168152602001898152506040518563ffffffff1660e01b815260040161358d9493929190615035565b600060405180830381600087803b1580156135a757600080fd5b505af11580156135bb573d6000803e3d6000fd5b5050505050505050505050505050565b60606001868686856136135786868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061364192505050565b6001600160a01b038b16878760405160200161363193929190615064565b6040516020818303038152906040525b60405160200161365595949392919061507e565b60405160208183030381529060405290509695505050505050565b6060600061367d8561381f565b905061368c8560018686611757565b915081516000146136c75781600160116001846040516020016136b3959493929190615128565b604051602081830303815290604052610d98565b6040517e0300000000000000000000000000000000000000000000000000000000000060208201527f0100000000000000000000000000000000000000000000000000000000000000602282018190527e11000000000000000000000000000000000000000000000000000000000000602383015260258201526fffffffffffffffffffffffffffffffff19608083901b16602682015260360160405160208183030381529060405295945050505050565b60608160000151826020015183604001518460600151604051602001613809949392919060f09490941b7fffff000000000000000000000000000000000000000000000000000000000000168452600284019290925260c01b7fffffffffffffffff000000000000000000000000000000000000000000000000166022830152151560f81b602a820152602b0190565b6040516020818303038152906040529050919050565b63ffffffff81166000908152600760205260408120546fffffffffffffffffffffffffffffffff1690819003612a68576040517fc960f36b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060ff821115613157576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203860448201527f20626974730000000000000000000000000000000000000000000000000000006064820152608401610bf1565b6000806060836021811015613955576040517f262c503d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613963601160018789614749565b61396c916151ca565b60801c935061397f602160118789614749565b613988916151ca565b60801c92506000602b61399c602184614f8c565b6139a691906149c6565b90508067ffffffffffffffff8111156139c1576139c161455f565b604051908082528060200260200182016040528015613a1357816020015b6040805160808101825260008082526020808301829052928201819052606082015282526000199092019101816139df5790505b509250602160005b828160ff161015613abd57613a7e89838a613a37602b83614a32565b92613a4493929190614749565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613c1b92505050565b858260ff1681518110613a9357613a936144b4565b6020908102919091010152613aa9602b83614a32565b915080613ab581614a6b565b915050613a1b565b505050509250925092565b61ffff81166000908152600460205260409020546001600160a01b031680612a68576040517f8b6fecb700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081613b77576040516001600160a01b038516908490600081818185875af1925050503d8060008114613b6c576040519150601f19603f3d011682016040523d82523d6000602084013e613b71565b606091505b50613bcc565b6040516001600160a01b038516906108fc9085906000818181858888f193505050503d8060008114613bc5576040519150601f19603f3d011682016040523d82523d6000602084013e613bca565b606091505b505b50949350505050565b613be0838383613b1c565b613c16576040517f7c75c3d200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b6040805160808101825260008082526020820181905291810182905260608101919091525060028101516022820151602a830151602b909301516040805160808101825261ffff9094168452602084019290925267ffffffffffffffff9093169082015260ff909116600114606082015290565b604051806060016040528060008019168152602001600067ffffffffffffffff168152602001613cd2604051806040016040528060008152602001600081525090565b905290565b803563ffffffff81168114612a6857600080fd5b60008083601f840112613cfd57600080fd5b50813567ffffffffffffffff811115613d1557600080fd5b602083019150836020828501011115613d2d57600080fd5b9250929050565b600080600060408486031215613d4957600080fd5b613d5284613cd7565b9250602084013567ffffffffffffffff811115613d6e57600080fd5b613d7a86828701613ceb565b9497909650939450505050565b815181526020808301519082015260408101610e75565b600060608284031215613db057600080fd5b50919050565b80356001600160a01b0381168114612a6857600080fd5b600080600080600080600060e0888a031215613de857600080fd5b613df28989613d9e565b965060608801359550608088013567ffffffffffffffff80821115613e1657600080fd5b613e228b838c01613ceb565b9097509550859150613e3660a08b01613db6565b945060c08a0135915080821115613e4c57600080fd5b50613e598a828b01613ceb565b989b979a50959850939692959293505050565b60008060408385031215613e7f57600080fd5b613e8883613cd7565b9150602083013560ff81168114613e9e57600080fd5b809150509250929050565b600060c08284031215613db057600080fd5b80358015158114612a6857600080fd5b60008060408385031215613ede57600080fd5b823567ffffffffffffffff811115613ef557600080fd5b613f0185828601613ea9565b925050613f1060208401613ebb565b90509250929050565b60008060408385031215613f2c57600080fd5b613f3583613cd7565b946020939093013593505050565b803561ffff81168114612a6857600080fd5b60008060408385031215613f6857600080fd5b613f7183613cd7565b9150613f1060208401613f43565b60005b83811015613f9a578181015183820152602001613f82565b50506000910152565b60008151808452613fbb816020860160208601613f7f565b601f01601f19169290920160200192915050565b602081526000613fe26020830184613fa3565b9392505050565b600060208284031215613ffb57600080fd5b613fe282613f43565b8051825267ffffffffffffffff60208201511660208301526040810151613c16604084018280518252602090810151910152565b60808101610e758284614004565b6000806040838503121561405957600080fd5b61406283613cd7565b915060208301356fffffffffffffffffffffffffffffffff81168114613e9e57600080fd5b60006020828403121561409957600080fd5b613fe282613cd7565b600080604083850312156140b557600080fd5b6140be83613cd7565b9150613f1060208401613ebb565b60008060008060a085870312156140e257600080fd5b6140ec8686613d9e565b9350606085013567ffffffffffffffff81111561410857600080fd5b61411487828801613ceb565b9094509250614127905060808601613db6565b905092959194509250565b60006020828403121561414457600080fd5b613fe282613db6565b600060a08284031215613db057600080fd5b6141698184614004565b60a0608082015266ffffffffffffff82511660a082015260006020830151604060c0840152610d9860e0840182613fa3565b600080604083850312156141ae57600080fd5b613f7183613db6565b60008083601f8401126141c957600080fd5b50813567ffffffffffffffff8111156141e157600080fd5b6020830191508360208260051b8501011115613d2d57600080fd5b803566ffffffffffffff81168114612a6857600080fd5b6000806000806060858703121561422957600080fd5b843567ffffffffffffffff81111561424057600080fd5b61424c878288016141b7565b909550935061425f9050602086016141fc565b9150614127604086016141fc565b6000806020838503121561428057600080fd5b823567ffffffffffffffff81111561429757600080fd5b6142a3858286016141b7565b90969095509350505050565b600080600080606085870312156142c557600080fd5b6142ce85613cd7565b93506142dc60208601613f43565b9250604085013567ffffffffffffffff8111156142f857600080fd5b61430487828801613ceb565b95989497509550505050565b80356effffffffffffffffffffffffffffff81168114612a6857600080fd5b60008060006060848603121561434457600080fd5b61434d84613cd7565b925061435b60208501614310565b915061436960408501614310565b90509250925092565b6000806040838503121561438557600080fd5b61438e83613cd7565b9150613f10602084016141fc565b600080600083850360808112156143b257600080fd5b843567ffffffffffffffff8111156143c957600080fd5b6143d587828801613ea9565b9450506040601f19820112156143ea57600080fd5b5060208401915061436960608501613db6565b60006060828403121561440f57600080fd5b613fe28383613d9e565b600181811c9082168061442d57607f821691505b602082108103613db0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b67ffffffffffffffff81168114611e4557600080fd5b60006020828403121561448e57600080fd5b8135613fe281614466565b6000602082840312156144ab57600080fd5b613fe282613ebb565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b66ffffffffffffff828116828216039080821115614532576145326144e3565b5092915050565b600066ffffffffffffff808316818103614555576145556144e3565b6001019392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff811182821017156145b1576145b161455f565b60405290565b6040805190810167ffffffffffffffff811182821017156145b1576145b161455f565b604051601f8201601f1916810167ffffffffffffffff811182821017156146035761460361455f565b604052919050565b600067ffffffffffffffff8211156146255761462561455f565b50601f01601f191660200190565b600067ffffffffffffffff8084111561464e5761464e61455f565b8360051b602061465f8183016145da565b86815291850191818101903684111561467757600080fd5b865b8481101561473d578035868111156146915760008081fd5b880160603682900312156146a55760008081fd5b6146ad61458e565b6146b682613cd7565b81526146c3868301613f43565b86820152604080830135898111156146db5760008081fd5b929092019136601f8401126146f05760008081fd5b82356147036146fe8261460b565b6145da565b81815236898387010111156147185760008081fd5b818986018a830137600091810189019190915290820152845250918301918301614679565b50979650505050505050565b6000808585111561475957600080fd5b8386111561476657600080fd5b5050820193919092039150565b60008451614785818460208901613f7f565b8201838582376000930192835250909392505050565b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b6020815260006110e260208301848661479b565b600082357ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec183360301811261480e57600080fd5b9190910192915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261484d57600080fd5b83018035915067ffffffffffffffff82111561486857600080fd5b602001915036819003821315613d2d57600080fd5b63ffffffff61488b82613cd7565b1682526020810135602083015260408101356148a681614466565b67ffffffffffffffff81166040840152505050565b6148c5818961487d565b86606082015260e0608082015260006148e260e08301878961479b565b6001600160a01b03861660a084015282810360c084015261490481858761479b565b9a9950505050505050505050565b60006020828403121561492457600080fd5b815167ffffffffffffffff81111561493b57600080fd5b8201601f8101841361494c57600080fd5b805161495a6146fe8261460b565b81815285602083850101111561496f57600080fd5b610d98826020830160208601613f7f565b8082028115828204841417610e7557610e756144e3565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000826149d5576149d5614997565b500490565b6000604082840312156149ec57600080fd5b6149f46145b7565b82358152602083013560208201528091505092915050565b600066ffffffffffffff80841680614a2657614a26614997565b92169190910692915050565b80820180821115610e7557610e756144e3565b82815260008251614a5d816020850160208701613f7f565b919091016020019392505050565b600060ff821660ff8103614a8157614a816144e3565b60010192915050565b66ffffffffffffff818116838216019080821115614532576145326144e3565b6fffffffffffffffffffffffffffffffff818116838216028082169190828114614ad657614ad66144e3565b505092915050565b6040815263ffffffff8351166040820152602083015160608201526000604084015160a06080840152614b1460e0840182613fa3565b905060608501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08483030160a0850152614b4f8282613fa3565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b600060408284031215614b8757600080fd5b614b8f6145b7565b9050815181526020820151602082015292915050565b600060408284031215614bb757600080fd5b613fe28383614b75565b600060808284031215614bd357600080fd5b614bdb61458e565b825181526020830151614bed81614466565b6020820152614bff8460408501614b75565b60408201529392505050565b7fffff0000000000000000000000000000000000000000000000000000000000008135818116916002851015614ad65760029490940360031b84901b1690921692915050565b80356020831015610e7557600019602084900360031b1b1692915050565b7fffffffffffffffff0000000000000000000000000000000000000000000000008135818116916008851015614ad65760089490940360031b84901b1690921692915050565b63ffffffff8416815266ffffffffffffff83166020820152606060408201526000610d986060830184613fa3565b601f821115613c16576000816000526020600020601f850160051c81016020861015614d0c5750805b601f850160051c820191505b81811015614d2b57828155600101614d18565b505050505050565b815167ffffffffffffffff811115614d4d57614d4d61455f565b614d6181614d5b8454614419565b84614ce3565b602080601f831160018114614d965760008415614d7e5750858301515b600019600386901b1c1916600185901b178555614d2b565b600085815260208120601f198616915b82811015614dc557888601518255948401946001909101908401614da6565b5085821015614de35787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b83811015614e8e578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc00185528151805163ffffffff1684528781015161ffff16888501528601516060878501819052614e7a81860183613fa3565b968901969450505090860190600101614e1c565b509098975050505050505050565b7fff000000000000000000000000000000000000000000000000000000000000008560f81b16815260006fffffffffffffffffffffffffffffffff19808660801b166001840152808560801b166011840152508251614f02816021850160208701613f7f565b9190910160210195945050505050565b60008351614f24818460208801613f7f565b835190830190614f38818360208801613f7f565b01949350505050565b7fffff0000000000000000000000000000000000000000000000000000000000008360f01b16815260008251614f7e816002850160208701613f7f565b919091016002019392505050565b81810381811115610e7557610e756144e3565b600082614fae57614fae614997565b500690565b7fffffffffffffff000000000000000000000000000000000000000000000000008135818116916007851015614ad65760079490940360031b84901b1690921692915050565b6001600160a01b03815116825267ffffffffffffffff602082015116602083015260006040820151606060408501526110e26060850182613fa3565b61503f818661487d565b83606082015260ff8316608082015260c060a08201526000611fc760c0830184614ff9565b838152818360208301376000910160200190815292915050565b7fff000000000000000000000000000000000000000000000000000000000000008660f81b1681527fffff0000000000000000000000000000000000000000000000000000000000008560f01b1660018201528360038201527fffffffffffffffff0000000000000000000000000000000000000000000000008360c01b1660238201526000825161511781602b850160208701613f7f565b91909101602b019695505050505050565b6000865161513a818460208b01613f7f565b60f896871b7fff000000000000000000000000000000000000000000000000000000000000009081169390910192835260f09590951b7fffff000000000000000000000000000000000000000000000000000000000000166001830152509190931b909116600382015260809190911b6fffffffffffffffffffffffffffffffff19166004820152601401919050565b6fffffffffffffffffffffffffffffffff198135818116916010851015614ad65760109490940360031b84901b169092169291505056fea2646970667358221220c1be9ace4cd32339259f8bbfcc6a3f1a920f96cf2b30d4a1db62feaa1b9b2e6764736f6c63430008160033",
|
|
1826
1857
|
"linkReferences": {},
|
|
1827
1858
|
"deployedLinkReferences": {}
|
|
1828
1859
|
}
|