12 txs
0 calls
constructor
constructor()
functions
AERODROME_FACTORY
viewfunction AERODROME_FACTORY() view returns (address)
AERODROME_ROUTER
viewfunction AERODROME_ROUTER() view returns (address)
AIRDROP_ADDRESS
viewfunction AIRDROP_ADDRESS() view returns (address)
AIRDROP_SHARE
viewfunction AIRDROP_SHARE() view returns (uint256)
ALIENBASE_FACTORY
viewfunction ALIENBASE_FACTORY() view returns (address)
ALIENBASE_QUOTER
viewfunction ALIENBASE_QUOTER() view returns (address)
ALIENBASE_ROUTER
viewfunction ALIENBASE_ROUTER() view returns (address)
allowance
viewfunction allowance(address owner, address spender) view returns (uint256)
balanceOf
viewfunction balanceOf(address account) view returns (uint256)
BASE_USDC
viewfunction BASE_USDC() view returns (address)
BASE_WETH
viewfunction BASE_WETH() view returns (address)
BASESWAP_FACTORY
viewfunction BASESWAP_FACTORY() view returns (address)
BASESWAP_ROUTER
viewfunction BASESWAP_ROUTER() view returns (address)
BASESWAP_V2_FACTORY
viewfunction BASESWAP_V2_FACTORY() view returns (address)
BASESWAP_V2_ROUTER
viewfunction BASESWAP_V2_ROUTER() view returns (address)
BASESWAP_V3_FACTORY
viewfunction BASESWAP_V3_FACTORY() view returns (address)
BASESWAP_V3_ROUTER
viewfunction BASESWAP_V3_ROUTER() view returns (address)
COMMUNITY_ADDRESS
viewfunction COMMUNITY_ADDRESS() view returns (address)
COMMUNITY_SHARE
viewfunction COMMUNITY_SHARE() view returns (uint256)
decimals
viewfunction decimals() view returns (uint8)
description
viewfunction description() view returns (string)
DEVELOPER_ADDRESS
viewfunction DEVELOPER_ADDRESS() view returns (address)
DEVELOPER_SHARE
viewfunction DEVELOPER_SHARE() view returns (uint256)
isExcludedFromTax
viewfunction isExcludedFromTax(address) view returns (bool)
isLiquidityPool
viewfunction isLiquidityPool(address) view returns (bool)
isUniswapV4Pool
viewfunction isUniswapV4Pool(address) view returns (bool)
logo
viewfunction logo() view returns (string)
name
viewfunction name() view returns (string)
owner
viewfunction owner() view returns (address)
SUSHISWAP_V2_FACTORY
viewfunction SUSHISWAP_V2_FACTORY() view returns (address)
SUSHISWAP_V2_ROUTER
viewfunction SUSHISWAP_V2_ROUTER() view returns (address)
SUSHISWAP_V3_FACTORY
viewfunction SUSHISWAP_V3_FACTORY() view returns (address)
SUSHISWAP_V3_ROUTER
viewfunction SUSHISWAP_V3_ROUTER() view returns (address)
symbol
viewfunction symbol() view returns (string)
TAX_RATE
viewfunction TAX_RATE() view returns (uint256)
telegram
viewfunction telegram() view returns (string)
TOTAL_SUPPLY
viewfunction TOTAL_SUPPLY() view returns (uint256)
totalSupply
viewfunction totalSupply() view returns (uint256)
TREASURY_ADDRESS
viewfunction TREASURY_ADDRESS() view returns (address)
TREASURY_SHARE
viewfunction TREASURY_SHARE() view returns (uint256)
function twitter() view returns (string)
UNISWAP_V3_FACTORY_BASE
viewfunction UNISWAP_V3_FACTORY_BASE() view returns (address)
UNISWAP_V3_ROUTER_BASE
viewfunction UNISWAP_V3_ROUTER_BASE() view returns (address)
UNISWAP_V4_PERMIT2
viewfunction UNISWAP_V4_PERMIT2() view returns (address)
UNISWAP_V4_ROUTER
viewfunction UNISWAP_V4_ROUTER() view returns (address)
UNISWAP_V4_SINGLETON_FACTORY
viewfunction UNISWAP_V4_SINGLETON_FACTORY() view returns (address)
website
viewfunction website() view returns (string)
addAerodromeLiquidityPool
nonpayablefunction addAerodromeLiquidityPool(address tokenB, bool stable)
addAlienBasePool
nonpayablefunction addAlienBasePool(address tokenB, uint24 fee)
addBaseSwapLiquidityPool
nonpayablefunction addBaseSwapLiquidityPool(address tokenB)
addLiquidityPoolToExcluded
nonpayablefunction addLiquidityPoolToExcluded(address lpAddress)
addUniswapV4Pool
nonpayablefunction addUniswapV4Pool(address poolAddress)
approve
nonpayablefunction approve(address spender, uint256 amount) returns (bool)
batchAddLiquidityPoolsToExcluded
nonpayablefunction batchAddLiquidityPoolsToExcluded(address[] lpAddresses)
batchAddUniswapV4Pools
nonpayablefunction batchAddUniswapV4Pools(address[] poolAddresses)
excludeFromTax
nonpayablefunction excludeFromTax(address account)
transfer
nonpayablefunction transfer(address to, uint256 amount) returns (bool)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 amount) returns (bool)
updateDescription
nonpayablefunction updateDescription(string _description)
updateLogo
nonpayablefunction updateLogo(string _logo)
updateProjectInfo
nonpayablefunction updateProjectInfo(string _logo, string _website, string _twitter, string _telegram, string _description)
updateTelegram
nonpayablefunction updateTelegram(string _telegram)
updateTwitter
nonpayablefunction updateTwitter(string _twitter)
updateWebsite
nonpayablefunction updateWebsite(string _website)
events
AddressExcludedFromTax
event AddressExcludedFromTax(address indexed excludedAddress)
Approval
event Approval(address indexed owner, address indexed spender, uint256 value)
DescriptionUpdated
event DescriptionUpdated(string newDescription)
LiquidityPoolAdded
event LiquidityPoolAdded(address indexed lpAddress)
LogoUpdated
event LogoUpdated(string newLogo)
TaxCollected
event TaxCollected(address indexed from, address indexed to, uint256 taxAmount)
TelegramUpdated
event TelegramUpdated(string newTelegram)
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
TwitterUpdated
event TwitterUpdated(string newTwitter)
UniswapV4PoolAdded
event UniswapV4PoolAdded(address indexed poolAddress)
WebsiteUpdated
event WebsiteUpdated(string newWebsite)
errors
No errors.
creation bytecode
0x608060405234801562000010575f80fd5b506040518060400160405280600481526020017f4149434c000000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f4149434c0000000000000000000000000000000000000000000000000000000081525081600390816200008e919062000d76565b508060049081620000a0919062000d76565b50505033600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060600160405280602d81526020016200702c602d9139600590816200010d919062000d76565b506040518060400160405280601d81526020017f68747470733a2f2f7777772e616963727970746f6c6162732e78797a2f0000008152506006908162000154919062000d76565b506040518060400160405280601b81526020017f68747470733a2f2f782e636f6d2f616963727970746f5f323032350000000000815250600790816200019b919062000d76565b506040518060400160405280601a81526020017f68747470733a2f2f742e6d652f61695f63727970746f3230323500000000000081525060089081620001e2919062000d76565b50604051806103600160405280610327815260200162006d0561032791396009908162000210919062000d76565b506b033b2e3c9fd0803ce8000000606460146b033b2e3c9fd0803ce80000006200023b919062000e87565b62000247919062000efe565b6064600f6b033b2e3c9fd0803ce800000062000264919062000e87565b62000270919062000efe565b606460196b033b2e3c9fd0803ce80000006200028d919062000e87565b62000299919062000efe565b606460286b033b2e3c9fd0803ce8000000620002b6919062000e87565b620002c2919062000efe565b620002ce919062000f35565b620002da919062000f35565b620002e6919062000f35565b1462000329576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003209062000ff3565b60405180910390fd5b620003777397853e9d10d720c9cd7beea35da8c36b9cfd91c8606460286b033b2e3c9fd0803ce80000006200035f919062000e87565b6200036b919062000efe565b620009a360201b60201c565b620003c573f08d3b58261297891883a10c0b7695ad6a105813606460196b033b2e3c9fd0803ce8000000620003ad919062000e87565b620003b9919062000efe565b620009a360201b60201c565b6200041373ca20831baba91c4a1c1c85aa18ac9df63c5079a36064600f6b033b2e3c9fd0803ce8000000620003fb919062000e87565b62000407919062000efe565b620009a360201b60201c565b620004617376f6304218d47263c8975bf7a06cc66f69844a56606460146b033b2e3c9fd0803ce800000062000449919062000e87565b62000455919062000efe565b620009a360201b60201c565b6001600b5f73f08d3b58261297891883a10c0b7695ad6a10581373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f732626664c2603336e57b271c5c0b26f421741e48173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f7393c31f18c5107812cc4f36bbb89865a9546a098373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f6e22d473030f116ddee9f6b43ac78ba373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f73327df1e6de05895d2ab08513aadd9313fe505d2d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f73cf77a3ba9a5ca399b7c97c74d54e5b1beb874e4373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f73e592427a0aece92de3edee1f18e0157c0586156473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f733d4e44eb1374240ce5f1b871ab261cd16335b76a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f731b02da8cb0d097eb8d57a175b88c7d8b4799750673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f731b02da8cb0d097eb8d57a175b88c7d8b4799750673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f73327df1e6de05895d2ab08513aadd9313fe505d2d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f732626664c2603336e57b271c5c0b26f421741e48173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620010ad565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000a14576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a0b9062001061565b60405180910390fd5b62000a275f838362000b0860201b60201c565b8060025f82825462000a3a919062000f35565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000ae9919062001092565b60405180910390a362000b045f838362000b0d60201b60201c565b5050565b505050565b505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000b8e57607f821691505b60208210810362000ba45762000ba362000b49565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000c087fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000bcb565b62000c14868362000bcb565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000c5e62000c5862000c528462000c2c565b62000c35565b62000c2c565b9050919050565b5f819050919050565b62000c798362000c3e565b62000c9162000c888262000c65565b84845462000bd7565b825550505050565b5f90565b62000ca762000c99565b62000cb481848462000c6e565b505050565b5b8181101562000cdb5762000ccf5f8262000c9d565b60018101905062000cba565b5050565b601f82111562000d2a5762000cf48162000baa565b62000cff8462000bbc565b8101602085101562000d0f578190505b62000d2762000d1e8562000bbc565b83018262000cb9565b50505b505050565b5f82821c905092915050565b5f62000d4c5f198460080262000d2f565b1980831691505092915050565b5f62000d66838362000d3b565b9150826002028217905092915050565b62000d818262000b12565b67ffffffffffffffff81111562000d9d5762000d9c62000b1c565b5b62000da9825462000b76565b62000db682828562000cdf565b5f60209050601f83116001811462000dec575f841562000dd7578287015190505b62000de3858262000d59565b86555062000e52565b601f19841662000dfc8662000baa565b5f5b8281101562000e255784890151825560018201915060208501945060208101905062000dfe565b8683101562000e45578489015162000e41601f89168262000d3b565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f62000e938262000c2c565b915062000ea08362000c2c565b925082820262000eb08162000c2c565b9150828204841483151762000eca5762000ec962000e5a565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f62000f0a8262000c2c565b915062000f178362000c2c565b92508262000f2a5762000f2962000ed1565b5b828204905092915050565b5f62000f418262000c2c565b915062000f4e8362000c2c565b925082820190508082111562000f695762000f6862000e5a565b5b92915050565b5f82825260208201905092915050565b7f446973747269627574696f6e2073686172657320646f206e6f7420657175616c5f8201527f20746f74616c20737570706c7900000000000000000000000000000000000000602082015250565b5f62000fdb602d8362000f6f565b915062000fe88262000f7f565b604082019050919050565b5f6020820190508181035f8301526200100c8162000fcd565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62001049601f8362000f6f565b9150620010568262001013565b602082019050919050565b5f6020820190508181035f8301526200107a816200103b565b9050919050565b6200108c8162000c2c565b82525050565b5f602082019050620010a75f83018462001081565b92915050565b615c4a80620010bb5f395ff3fe608060405234801561000f575f80fd5b50600436106103ce575f3560e01c80638da5cb5b116101fd578063cb4ca63111610118578063dc43bdba116100ab578063e735b48a1161007a578063e735b48a14610b40578063e85455d714610b5c578063f1b54ff914610b8c578063fb7f21eb14610ba8576103ce565b8063dc43bdba14610ab8578063dd62ed3e14610ad6578063df3f25b414610b06578063e6c7e52a14610b22576103ce565b8063d3f189bd116100e7578063d3f189bd14610a44578063d3f6466414610a62578063d538ae7114610a7e578063db37bab414610a9a576103ce565b8063cb4ca631146109aa578063cbcbf1fe146109da578063cc1977e514610a0a578063ce96ccee14610a28576103ce565b8063b07e429711610190578063bbe133341161015f578063bbe1333414610932578063beb0a41614610950578063c5cfbd231461096e578063c623c5431461098c576103ce565b8063b07e4297146108bc578063b26772f4146108da578063b609c05f146108f6578063bb9df68014610914576103ce565b80639cc30811116101cc5780639cc30811146108325780639f174c6f14610850578063a9059cbb1461086e578063abfaeee01461089e576103ce565b80638da5cb5b146107ba578063902d55a5146107d857806395d89b41146107f657806397e970b414610814576103ce565b806335d8e194116102ed5780635c31bda91161028057806370a082311161024f57806370a08231146107305780637284e416146107605780637c67b1b01461077e57806383f170be1461079c576103ce565b80635c31bda9146106be57806360d1259e146106dc57806367475859146106f857806369b1e36414610714576103ce565b806347ecb665116102bc57806347ecb665146106485780634c56e581146106665780634cef1f35146106845780635a6ea8a4146106a2576103ce565b806335d8e194146105d05780633a2c6904146105ee5780633c17760a1461060c578063454e66c81461062a576103ce565b806315cb51ce1161036557806323b872dd1161033457806323b872dd146105485780632edb5a1f14610578578063313ce5671461059457806332696174146105b2576103ce565b806315cb51ce146104d057806316357107146104ee57806318160ddd1461050c578063221dc85d1461052a576103ce565b8063095ea7b3116103a1578063095ea7b31461044a5780630b045c671461047a5780630b3dec231461049857806312f9d14d146104b4576103ce565b806302b04384146103d257806305ba4749146103f057806306fdde031461040e57806307604b1a1461042c575b5f80fd5b6103da610bc6565b6040516103e79190614864565b60405180910390f35b6103f8610bde565b6040516104059190614864565b60405180910390f35b610416610bf6565b6040516104239190614907565b60405180910390f35b610434610c86565b6040516104419190614864565b60405180910390f35b610464600480360381019061045f9190614995565b610c9e565b60405161047191906149ed565b60405180910390f35b610482610cb4565b60405161048f9190614a15565b60405180910390f35b6104b260048036038101906104ad9190614a8f565b610cdc565b005b6104ce60048036038101906104c99190614c02565b610f4d565b005b6104d8611026565b6040516104e59190614864565b60405180910390f35b6104f661103e565b6040516105039190614864565b60405180910390f35b610514611056565b6040516105219190614a15565b60405180910390f35b61053261105f565b60405161053f9190614864565b60405180910390f35b610562600480360381019061055d9190614c49565b611077565b60405161056f91906149ed565b60405180910390f35b610592600480360381019061058d9190614a8f565b611099565b005b61059c6113f0565b6040516105a99190614cb4565b60405180910390f35b6105ba6113f8565b6040516105c79190614a15565b60405180910390f35b6105d8611420565b6040516105e59190614864565b60405180910390f35b6105f6611438565b6040516106039190614864565b60405180910390f35b610614611450565b6040516106219190614864565b60405180910390f35b610632611468565b60405161063f9190614864565b60405180910390f35b610650611480565b60405161065d9190614907565b60405180910390f35b61066e61150c565b60405161067b9190614864565b60405180910390f35b61068c611524565b6040516106999190614864565b60405180910390f35b6106bc60048036038101906106b79190614ccd565b611537565b005b6106c6611724565b6040516106d39190614864565b60405180910390f35b6106f660048036038101906106f19190614ccd565b61173c565b005b610712600480360381019061070d9190614c02565b6118d4565b005b61072e60048036038101906107299190614d22565b6119ad565b005b61074a60048036038101906107459190614ccd565b611b3c565b6040516107579190614a15565b60405180910390f35b610768611b81565b6040516107759190614907565b60405180910390f35b610786611c0d565b6040516107939190614864565b60405180910390f35b6107a4611c25565b6040516107b19190614a15565b60405180910390f35b6107c2611c2a565b6040516107cf9190614864565b60405180910390f35b6107e0611c4f565b6040516107ed9190614a15565b60405180910390f35b6107fe611c5f565b60405161080b9190614907565b60405180910390f35b61081c611cef565b6040516108299190614864565b60405180910390f35b61083a611d07565b6040516108479190614864565b60405180910390f35b610858611d1f565b6040516108659190614a15565b60405180910390f35b61088860048036038101906108839190614995565b611d47565b60405161089591906149ed565b60405180910390f35b6108a6611d5d565b6040516108b39190614907565b60405180910390f35b6108c4611de9565b6040516108d19190614864565b60405180910390f35b6108f460048036038101906108ef9190614ccd565b611e01565b005b6108fe611fa3565b60405161090b9190614864565b60405180910390f35b61091c611fbb565b6040516109299190614864565b60405180910390f35b61093a611fd3565b6040516109479190614864565b60405180910390f35b610958611feb565b6040516109659190614907565b60405180910390f35b610976612077565b6040516109839190614864565b60405180910390f35b61099461208f565b6040516109a19190614a15565b60405180910390f35b6109c460048036038101906109bf9190614ccd565b6120b7565b6040516109d191906149ed565b60405180910390f35b6109f460048036038101906109ef9190614ccd565b6120d4565b604051610a0191906149ed565b60405180910390f35b610a126120f1565b604051610a1f9190614864565b60405180910390f35b610a426004803603810190610a3d9190614ccd565b612109565b005b610a4c61238e565b604051610a599190614864565b60405180910390f35b610a7c6004803603810190610a779190614c02565b6123a6565b005b610a986004803603810190610a939190614d98565b61247f565b005b610aa261260e565b604051610aaf9190614864565b60405180910390f35b610ac0612626565b604051610acd9190614864565b60405180910390f35b610af06004803603810190610aeb9190614dd6565b61263e565b604051610afd9190614a15565b60405180910390f35b610b206004803603810190610b1b9190614e14565b6126c0565b005b610b2a6128eb565b604051610b379190614864565b60405180910390f35b610b5a6004803603810190610b559190614c02565b612903565b005b610b766004803603810190610b719190614ccd565b6129dc565b604051610b8391906149ed565b60405180910390f35b610ba66004803603810190610ba19190614c02565b6129f9565b005b610bb0612ad2565b604051610bbd9190614907565b60405180910390f35b7397853e9d10d720c9cd7beea35da8c36b9cfd91c881565b732626664c2603336e57b271c5c0b26f421741e48181565b606060038054610c0590614f44565b80601f0160208091040260200160405190810160405280929190818152602001828054610c3190614f44565b8015610c7c5780601f10610c5357610100808354040283529160200191610c7c565b820191905f5260205f20905b815481529060010190602001808311610c5f57829003601f168201915b5050505050905090565b73f08d3b58261297891883a10c0b7695ad6a10581381565b5f610caa338484612b5e565b6001905092915050565b606460146b033b2e3c9fd0803ce8000000610ccf9190614fa1565b610cd9919061500f565b81565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6290615089565b60405180910390fd5b5f5b82829050811015610f48575f73ffffffffffffffffffffffffffffffffffffffff16838383818110610da257610da16150a7565b5b9050602002016020810190610db79190614ccd565b73ffffffffffffffffffffffffffffffffffffffff1614610f35576001600b5f858585818110610dea57610de96150a7565b5b9050602002016020810190610dff9190614ccd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f858585818110610e6657610e656150a7565b5b9050602002016020810190610e7b9190614ccd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550828282818110610edd57610edc6150a7565b5b9050602002016020810190610ef29190614ccd565b73ffffffffffffffffffffffffffffffffffffffff167fb893f883ef734b712208a877459424ee509832c57e0461fb1ac99ed4d42f2d8960405160405180910390a25b8080610f40906150d4565b915050610d6d565b505050565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610fdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd390615089565b60405180910390fd5b8060059081610feb91906152b8565b507fc778f70d50b8182c1a6ee1b11efa714a627c4aa1a04d69a579e6ce27ba3b32eb8160405161101b9190614907565b60405180910390a150565b73420dd381b31aef6683db6b902084cb0ffece40da81565b731b02da8cb0d097eb8d57a175b88c7d8b4799750681565b5f600254905090565b73fda619b6d20975be80a10332cd39b9a4b0faa8bb81565b5f611083843384612d21565b61108e848484612dac565b600190509392505050565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611128576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111f90615089565b60405180910390fd5b5f5b828290508110156113eb575f73ffffffffffffffffffffffffffffffffffffffff1683838381811061115f5761115e6150a7565b5b90506020020160208101906111749190614ccd565b73ffffffffffffffffffffffffffffffffffffffff16146113d8576001600b5f8585858181106111a7576111a66150a7565b5b90506020020160208101906111bc9190614ccd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f858585818110611223576112226150a7565b5b90506020020160208101906112389190614ccd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600d5f85858581811061129f5761129e6150a7565b5b90506020020160208101906112b49190614ccd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550828282818110611316576113156150a7565b5b905060200201602081019061132b9190614ccd565b73ffffffffffffffffffffffffffffffffffffffff167f6b1804eb358623653e5f5ea5af77d4f58be15fc0487dbbe3ee45dd43e122abbf60405160405180910390a28282828181106113805761137f6150a7565b5b90506020020160208101906113959190614ccd565b73ffffffffffffffffffffffffffffffffffffffff167fb893f883ef734b712208a877459424ee509832c57e0461fb1ac99ed4d42f2d8960405160405180910390a25b80806113e3906150d4565b91505061112a565b505050565b5f6012905090565b606460196b033b2e3c9fd0803ce80000006114139190614fa1565b61141d919061500f565b81565b73327df1e6de05895d2ab08513aadd9313fe505d2d81565b733e84e1e7a4edfcb279f3428dcea08eeb2ec0fe8a81565b7333128a8fc17869897dce68ed026d694621f6fdfd81565b73ca20831baba91c4a1c1c85aa18ac9df63c5079a381565b6008805461148d90614f44565b80601f01602080910402602001604051908101604052809291908181526020018280546114b990614f44565b80156115045780601f106114db57610100808354040283529160200191611504565b820191905f5260205f20905b8154815290600101906020018083116114e757829003601f168201915b505050505081565b73e592427a0aece92de3edee1f18e0157c0586156481565b6e22d473030f116ddee9f6b43ac78ba381565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146115c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115bd90615089565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611634576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162b906153d1565b60405180910390fd5b6001600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fb893f883ef734b712208a877459424ee509832c57e0461fb1ac99ed4d42f2d8960405160405180910390a250565b7393c31f18c5107812cc4f36bbb89865a9546a098381565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146117cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c290615089565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611839576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611830906153d1565b60405180910390fd5b6001600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fd5a202470ebb4b485ca6357b5e5c3c8ec646f96c8b825a96cb95569c363ceb9e60405160405180910390a250565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611963576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195a90615089565b60405180910390fd5b806007908161197291906152b8565b507fc9c367329a7bcca9b5a2955d46e46ee01873c0d0edab0e709ba952fafc6b48e4816040516119a29190614907565b60405180910390a150565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611a3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3390615089565b60405180910390fd5b5f611a4830848461326a565b90506001600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fb893f883ef734b712208a877459424ee509832c57e0461fb1ac99ed4d42f2d8960405160405180910390a2505050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60098054611b8e90614f44565b80601f0160208091040260200160405190810160405280929190818152602001828054611bba90614f44565b8015611c055780601f10611bdc57610100808354040283529160200191611c05565b820191905f5260205f20905b815481529060010190602001808311611be857829003601f168201915b505050505081565b7371524b4f93c58fcbf659783284e38825f062285981565b600581565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6b033b2e3c9fd0803ce800000081565b606060048054611c6e90614f44565b80601f0160208091040260200160405190810160405280929190818152602001828054611c9a90614f44565b8015611ce55780601f10611cbc57610100808354040283529160200191611ce5565b820191905f5260205f20905b815481529060010190602001808311611cc857829003601f168201915b5050505050905090565b73fda619b6d20975be80a10332cd39b9a4b0faa8bb81565b73c35dadb65012ec5796536bd9864ed8773abc74c481565b606460286b033b2e3c9fd0803ce8000000611d3a9190614fa1565b611d44919061500f565b81565b5f611d53338484612dac565b6001905092915050565b60078054611d6a90614f44565b80601f0160208091040260200160405190810160405280929190818152602001828054611d9690614f44565b8015611de15780601f10611db857610100808354040283529160200191611de1565b820191905f5260205f20905b815481529060010190602001808311611dc457829003601f168201915b505050505081565b73420000000000000000000000000000000000000681565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8790615089565b60405180910390fd5b5f611eb073fda619b6d20975be80a10332cd39b9a4b0faa8bb3084613327565b90506001600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fb893f883ef734b712208a877459424ee509832c57e0461fb1ac99ed4d42f2d8960405160405180910390a25050565b7333128a8fc17869897dce68ed026d694621f6fdfd81565b73833589fcd6edb6e08f4c7c32d4f71b54bda0291381565b731b02da8cb0d097eb8d57a175b88c7d8b4799750681565b60068054611ff890614f44565b80601f016020809104026020016040519081016040528092919081815260200182805461202490614f44565b801561206f5780601f106120465761010080835404028352916020019161206f565b820191905f5260205f20905b81548152906001019060200180831161205257829003601f168201915b505050505081565b733d4e44eb1374240ce5f1b871ab261cd16335b76a81565b6064600f6b033b2e3c9fd0803ce80000006120aa9190614fa1565b6120b4919061500f565b81565b600b602052805f5260405f205f915054906101000a900460ff1681565b600d602052805f5260405f205f915054906101000a900460ff1681565b732626664c2603336e57b271c5c0b26f421741e48181565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612198576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218f90615089565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612206576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121fd90615439565b60405180910390fd5b6001600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600d5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f6b1804eb358623653e5f5ea5af77d4f58be15fc0487dbbe3ee45dd43e122abbf60405160405180910390a28073ffffffffffffffffffffffffffffffffffffffff167fb893f883ef734b712208a877459424ee509832c57e0461fb1ac99ed4d42f2d8960405160405180910390a250565b7376f6304218d47263c8975bf7a06cc66f69844a5681565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612435576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161242c90615089565b60405180910390fd5b806008908161244491906152b8565b507f91221fdc02a4fce3ae5eaa1f65bf3a6d0922abee8f14c56c21bafa0f76db0857816040516124749190614907565b60405180910390a150565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461250e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161250590615089565b60405180910390fd5b5f61251a3084846133ce565b90506001600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fb893f883ef734b712208a877459424ee509832c57e0461fb1ac99ed4d42f2d8960405160405180910390a2505050565b73cf77a3ba9a5ca399b7c97c74d54e5b1beb874e4381565b73327df1e6de05895d2ab08513aadd9313fe505d2d81565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461274f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161274690615089565b60405180910390fd5b5f855111156127a057846005908161276791906152b8565b507fc778f70d50b8182c1a6ee1b11efa714a627c4aa1a04d69a579e6ce27ba3b32eb856040516127979190614907565b60405180910390a15b5f845111156127f15783600690816127b891906152b8565b507f516821af5d7fcea859a491c9cc2e615fe27fc4fde3fc6cce1d31f6f06cbdef08846040516127e89190614907565b60405180910390a15b5f8351111561284257826007908161280991906152b8565b507fc9c367329a7bcca9b5a2955d46e46ee01873c0d0edab0e709ba952fafc6b48e4836040516128399190614907565b60405180910390a15b5f8251111561289357816008908161285a91906152b8565b507f91221fdc02a4fce3ae5eaa1f65bf3a6d0922abee8f14c56c21bafa0f76db08578260405161288a9190614907565b60405180910390a15b5f815111156128e45780600990816128ab91906152b8565b507fdbdc84bdf4319ffa157f81d25dd54211090e37ca6a9d0b90e2b8098aaceed135816040516128db9190614907565b60405180910390a15b5050505050565b738bbe1d801acf1cf4c3e36c2b5e32250637759cc181565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612992576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161298990615089565b60405180910390fd5b80600990816129a191906152b8565b507fdbdc84bdf4319ffa157f81d25dd54211090e37ca6a9d0b90e2b8098aaceed135816040516129d19190614907565b60405180910390a150565b600c602052805f5260405f205f915054906101000a900460ff1681565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612a88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a7f90615089565b60405180910390fd5b8060069081612a9791906152b8565b507f516821af5d7fcea859a491c9cc2e615fe27fc4fde3fc6cce1d31f6f06cbdef0881604051612ac79190614907565b60405180910390a150565b60058054612adf90614f44565b80601f0160208091040260200160405190810160405280929190818152602001828054612b0b90614f44565b8015612b565780601f10612b2d57610100808354040283529160200191612b56565b820191905f5260205f20905b815481529060010190602001808311612b3957829003601f168201915b505050505081565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612bcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bc3906154c7565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612c3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c3190615555565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612d149190614a15565b60405180910390a3505050565b5f612d2c848461263e565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114612da65781811015612d98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d8f906155bd565b60405180910390fd5b612da58484848403612b5e565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612e1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e119061564b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612e88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e7f906156d9565b60405180910390fd5b612e928383613485565b5f600c5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612f2e5750600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b905073f08d3b58261297891883a10c0b7695ad6a10581373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480612fbd575073f08d3b58261297891883a10c0b7695ad6a10581373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b80612ff357503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8061302957503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b801561307b5750600b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b806130cc5750600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b156130e2576130dc84848461377b565b50613265565b801580156131875750600b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806131865750600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b5b1561319d5761319784848461377b565b50613265565b5f6103e86005846131ae9190614fa1565b6131b8919061500f565b90505f81846131c791906156f7565b90505f821115613256576131f08673f08d3b58261297891883a10c0b7695ad6a1058138461377b565b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f5d37fd68fe66745a199f8c603e00ae02183f4aabb8ec0089589b0b40c4ead5e18460405161324d9190614a15565b60405180910390a35b61326186868361377b565b5050505b505050565b5f805f8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16106132a75784866132aa565b85855b915091505f8282866040516020016132c4939291906157b4565b60405160208183030381529060405280519060200120905073420dd381b31aef6683db6b902084cb0ffece40da816040516020016133039291906158b7565b604051602081830303815290604052805190602001205f1c93505050509392505050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1610613364578385613367565b84845b915091505f828260405160200161337f9291906158f8565b60405160208183030381529060405280519060200120905086816040516020016133aa92919061596d565b604051602081830303815290604052805190602001205f1c93505050509392505050565b5f8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16111561340e57828480945081955050505b5f848484604051602001613424939291906159bd565b604051602081830303815290604052805190602001209050733e84e1e7a4edfcb279f3428dcea08eeb2ec0fe8a81604051602001613463929190615a3c565b604051602081830303815290604052805190602001205f1c9150509392505050565b600c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806135205750600c5f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b613777575f80823b91505f82111561353a57829050613556565b833b91505f82111561354e57839050613555565b5050613777565b5b5f613560826139e7565b90505f61356c83613baf565b90505f61357884613c8a565b90505f61358485613c90565b90505f61359086613dfd565b90505f61359c87613f16565b90505f6135a8886141b6565b905086806135b35750855b806135bb5750845b806135c35750835b806135cb5750825b806135d35750815b806135db5750805b1561376d576001600b5f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508215613729576001600d5f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508773ffffffffffffffffffffffffffffffffffffffff167f6b1804eb358623653e5f5ea5af77d4f58be15fc0487dbbe3ee45dd43e122abbf60405160405180910390a25b8773ffffffffffffffffffffffffffffffffffffffff167fb893f883ef734b712208a877459424ee509832c57e0461fb1ac99ed4d42f2d8960405160405180910390a25b5050505050505050505b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036137e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137e09061564b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613857576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161384e906156d9565b60405180910390fd5b61386283838361444f565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156138e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016138dc90615aed565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516139ce9190614a15565b60405180910390a36139e1848484614454565b50505050565b5f80613a0a307342000000000000000000000000000000000000066101f4614459565b90505f613a2e30734200000000000000000000000000000000000006610bb8614459565b90505f613a5230734200000000000000000000000000000000000006612710614459565b90505f613a763073833589fcd6edb6e08f4c7c32d4f71b54bda029136101f4614459565b90505f613a9a3073833589fcd6edb6e08f4c7c32d4f71b54bda02913610bb8614459565b90508473ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161480613b0157508373ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16145b80613b3757508273ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16145b80613b6d57508173ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16145b80613ba357508073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16145b95505050505050919050565b5f80613be473fda619b6d20975be80a10332cd39b9a4b0faa8bb30734200000000000000000000000000000000000006613327565b90505f613c1a73fda619b6d20975be80a10332cd39b9a4b0faa8bb3073833589fcd6edb6e08f4c7c32d4f71b54bda02913613327565b90508173ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480613c8157508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b92505050919050565b5f919050565b5f80613cb330734200000000000000000000000000000000000006610bb86133ce565b90505f613cd7307342000000000000000000000000000000000000066127106133ce565b90505f613cfb3073833589fcd6edb6e08f4c7c32d4f71b54bda029136101f46133ce565b90505f613d1f3073833589fcd6edb6e08f4c7c32d4f71b54bda02913610bb86133ce565b90508373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161480613d8657508273ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b80613dbc57508173ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b80613df257508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16145b945050505050919050565b5f600d5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615613e565760019050613f11565b8173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015613ebe57506040513d601f19601f82011682018060405250810190613ebb9190615b1f565b60015b613eca575f9050613f11565b738bbe1d801acf1cf4c3e36c2b5e32250637759cc173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16149150505b919050565b5f80732626664c2603336e57b271c5c0b26f421741e48173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480613fa557507393c31f18c5107812cc4f36bbb89865a9546a098373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b80613fef575073327df1e6de05895d2ab08513aadd9313fe505d2d73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b80614039575073cf77a3ba9a5ca399b7c97c74d54e5b1beb874e4373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b80614083575073e592427a0aece92de3edee1f18e0157c0586156473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b806140cd5750731b02da8cb0d097eb8d57a175b88c7d8b4799750673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b806141175750731b02da8cb0d097eb8d57a175b88c7d8b4799750673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b80614161575073327df1e6de05895d2ab08513aadd9313fe505d2d73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b806141ab5750732626664c2603336e57b271c5c0b26f421741e48173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b905080915050919050565b5f600c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561420f576001905061444a565b614218826139e7565b15614226576001905061444a565b61422f82614510565b1561423d576001905061444a565b61424682614521565b15614254576001905061444a565b61425d826145e2565b1561426b576001905061444a565b614274826146a3565b15614282576001905061444a565b61428b82614764565b15614299576001905061444a565b6142a282613c8a565b156142b0576001905061444a565b6142b982613c90565b156142c7576001905061444a565b5f823b90506103e88110156142df575f91505061444a565b8273ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561434757506040513d601f19601f820116820180604052508101906143449190615b5e565b60015b614354575f91505061444a565b8373ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156143bc57506040513d601f19601f820116820180604052508101906143b99190615b1f565b60015b614442578373ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561442857506040513d601f19601f820116820180604052508101906144259190615b1f565b60015b614436575f9250505061444a565b6001935050505061444a565b600193505050505b919050565b505050565b505050565b5f8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16111561449957828480945081955050505b5f8484846040516020016144af939291906159bd565b6040516020818303038152906040528051906020012090507333128a8fc17869897dce68ed026d694621f6fdfd816040516020016144ee929190615bd3565b604051602081830303815290604052805190602001205f1c9150509392505050565b5f61451a82613dfd565b9050919050565b5f8173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561458a57506040513d601f19601f820116820180604052508101906145879190615b1f565b60015b614596575f90506145dd565b73c35dadb65012ec5796536bd9864ed8773abc74c473ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16149150505b919050565b5f8173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561464b57506040513d601f19601f820116820180604052508101906146489190615b1f565b60015b614657575f905061469e565b7371524b4f93c58fcbf659783284e38825f062285973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16149150505b919050565b5f8173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561470c57506040513d601f19601f820116820180604052508101906147099190615b1f565b60015b614718575f905061475f565b73fda619b6d20975be80a10332cd39b9a4b0faa8bb73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16149150505b919050565b5f8173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156147cd57506040513d601f19601f820116820180604052508101906147ca9190615b1f565b60015b6147d9575f9050614820565b7333128a8fc17869897dce68ed026d694621f6fdfd73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16149150505b919050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61484e82614825565b9050919050565b61485e81614844565b82525050565b5f6020820190506148775f830184614855565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156148b4578082015181840152602081019050614899565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6148d98261487d565b6148e38185614887565b93506148f3818560208601614897565b6148fc816148bf565b840191505092915050565b5f6020820190508181035f83015261491f81846148cf565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b61494181614844565b811461494b575f80fd5b50565b5f8135905061495c81614938565b92915050565b5f819050919050565b61497481614962565b811461497e575f80fd5b50565b5f8135905061498f8161496b565b92915050565b5f80604083850312156149ab576149aa614930565b5b5f6149b88582860161494e565b92505060206149c985828601614981565b9150509250929050565b5f8115159050919050565b6149e7816149d3565b82525050565b5f602082019050614a005f8301846149de565b92915050565b614a0f81614962565b82525050565b5f602082019050614a285f830184614a06565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112614a4f57614a4e614a2e565b5b8235905067ffffffffffffffff811115614a6c57614a6b614a32565b5b602083019150836020820283011115614a8857614a87614a36565b5b9250929050565b5f8060208385031215614aa557614aa4614930565b5b5f83013567ffffffffffffffff811115614ac257614ac1614934565b5b614ace85828601614a3a565b92509250509250929050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b614b14826148bf565b810181811067ffffffffffffffff82111715614b3357614b32614ade565b5b80604052505050565b5f614b45614927565b9050614b518282614b0b565b919050565b5f67ffffffffffffffff821115614b7057614b6f614ade565b5b614b79826148bf565b9050602081019050919050565b828183375f83830152505050565b5f614ba6614ba184614b56565b614b3c565b905082815260208101848484011115614bc257614bc1614ada565b5b614bcd848285614b86565b509392505050565b5f82601f830112614be957614be8614a2e565b5b8135614bf9848260208601614b94565b91505092915050565b5f60208284031215614c1757614c16614930565b5b5f82013567ffffffffffffffff811115614c3457614c33614934565b5b614c4084828501614bd5565b91505092915050565b5f805f60608486031215614c6057614c5f614930565b5b5f614c6d8682870161494e565b9350506020614c7e8682870161494e565b9250506040614c8f86828701614981565b9150509250925092565b5f60ff82169050919050565b614cae81614c99565b82525050565b5f602082019050614cc75f830184614ca5565b92915050565b5f60208284031215614ce257614ce1614930565b5b5f614cef8482850161494e565b91505092915050565b614d01816149d3565b8114614d0b575f80fd5b50565b5f81359050614d1c81614cf8565b92915050565b5f8060408385031215614d3857614d37614930565b5b5f614d458582860161494e565b9250506020614d5685828601614d0e565b9150509250929050565b5f62ffffff82169050919050565b614d7781614d60565b8114614d81575f80fd5b50565b5f81359050614d9281614d6e565b92915050565b5f8060408385031215614dae57614dad614930565b5b5f614dbb8582860161494e565b9250506020614dcc85828601614d84565b9150509250929050565b5f8060408385031215614dec57614deb614930565b5b5f614df98582860161494e565b9250506020614e0a8582860161494e565b9150509250929050565b5f805f805f60a08688031215614e2d57614e2c614930565b5b5f86013567ffffffffffffffff811115614e4a57614e49614934565b5b614e5688828901614bd5565b955050602086013567ffffffffffffffff811115614e7757614e76614934565b5b614e8388828901614bd5565b945050604086013567ffffffffffffffff811115614ea457614ea3614934565b5b614eb088828901614bd5565b935050606086013567ffffffffffffffff811115614ed157614ed0614934565b5b614edd88828901614bd5565b925050608086013567ffffffffffffffff811115614efe57614efd614934565b5b614f0a88828901614bd5565b9150509295509295909350565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680614f5b57607f821691505b602082108103614f6e57614f6d614f17565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f614fab82614962565b9150614fb683614962565b9250828202614fc481614962565b91508282048414831517614fdb57614fda614f74565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61501982614962565b915061502483614962565b92508261503457615033614fe2565b5b828204905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f615073602083614887565b915061507e8261503f565b602082019050919050565b5f6020820190508181035f8301526150a081615067565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f6150de82614962565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036151105761510f614f74565b5b600182019050919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026151777fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8261513c565b615181868361513c565b95508019841693508086168417925050509392505050565b5f819050919050565b5f6151bc6151b76151b284614962565b615199565b614962565b9050919050565b5f819050919050565b6151d5836151a2565b6151e96151e1826151c3565b848454615148565b825550505050565b5f90565b6151fd6151f1565b6152088184846151cc565b505050565b5b8181101561522b576152205f826151f5565b60018101905061520e565b5050565b601f821115615270576152418161511b565b61524a8461512d565b81016020851015615259578190505b61526d6152658561512d565b83018261520d565b50505b505050565b5f82821c905092915050565b5f6152905f1984600802615275565b1980831691505092915050565b5f6152a88383615281565b9150826002028217905092915050565b6152c18261487d565b67ffffffffffffffff8111156152da576152d9614ade565b5b6152e48254614f44565b6152ef82828561522f565b5f60209050601f831160018114615320575f841561530e578287015190505b615318858261529d565b86555061537f565b601f19841661532e8661511b565b5f5b8281101561535557848901518255600182019150602085019450602081019050615330565b86831015615372578489015161536e601f891682615281565b8355505b6001600288020188555050505b505050505050565b7f496e76616c6964206164647265737300000000000000000000000000000000005f82015250565b5f6153bb600f83614887565b91506153c682615387565b602082019050919050565b5f6020820190508181035f8301526153e8816153af565b9050919050565b7f496e76616c696420706f6f6c20616464726573730000000000000000000000005f82015250565b5f615423601483614887565b915061542e826153ef565b602082019050919050565b5f6020820190508181035f83015261545081615417565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6154b1602483614887565b91506154bc82615457565b604082019050919050565b5f6020820190508181035f8301526154de816154a5565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61553f602283614887565b915061554a826154e5565b604082019050919050565b5f6020820190508181035f83015261556c81615533565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f6155a7601d83614887565b91506155b282615573565b602082019050919050565b5f6020820190508181035f8301526155d48161559b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f615635602583614887565b9150615640826155db565b604082019050919050565b5f6020820190508181035f83015261566281615629565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6156c3602383614887565b91506156ce82615669565b604082019050919050565b5f6020820190508181035f8301526156f0816156b7565b9050919050565b5f61570182614962565b915061570c83614962565b925082820390508181111561572457615723614f74565b5b92915050565b5f8160601b9050919050565b5f6157408261572a565b9050919050565b5f61575182615736565b9050919050565b61576961576482614844565b615747565b82525050565b5f8160f81b9050919050565b5f6157858261576f565b9050919050565b5f6157968261577b565b9050919050565b6157ae6157a9826149d3565b61578c565b82525050565b5f6157bf8286615758565b6014820191506157cf8285615758565b6014820191506157df828461579d565b600182019150819050949350505050565b5f81905092915050565b7fff000000000000000000000000000000000000000000000000000000000000005f82015250565b5f61582e6001836157f0565b9150615839826157fa565b600182019050919050565b5f819050919050565b5f819050919050565b61586761586282615844565b61584d565b82525050565b7f175afd22b2511a0c01126906e64347b663878b5b3e296ea8e48f79b8a33a70015f82015250565b5f6158a16020836157f0565b91506158ac8261586d565b602082019050919050565b5f6158c182615822565b91506158cd8285615758565b6014820191506158dd8284615856565b6020820191506158ec82615895565b91508190509392505050565b5f6159038285615758565b6014820191506159138284615758565b6014820191508190509392505050565b7fe2e87433120e32c4738a7d8f3271f3d872cbe16241d67537139158d90bac61d35f82015250565b5f6159576020836157f0565b915061596282615923565b602082019050919050565b5f61597782615822565b91506159838285615758565b6014820191506159938284615856565b6020820191506159a28261594b565b91508190509392505050565b6159b781614d60565b82525050565b5f6060820190506159d05f830186614855565b6159dd6020830185614855565b6159ea60408301846159ae565b949350505050565b7f1c5a6be5dad8f0eb9a3e434bad3eb519838da007264d019aa6e149c9cccae3ce5f82015250565b5f615a266020836157f0565b9150615a31826159f2565b602082019050919050565b5f615a4682615822565b9150615a528285615758565b601482019150615a628284615856565b602082019150615a7182615a1a565b91508190509392505050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f615ad7602683614887565b9150615ae282615a7d565b604082019050919050565b5f6020820190508181035f830152615b0481615acb565b9050919050565b5f81519050615b1981614938565b92915050565b5f60208284031215615b3457615b33614930565b5b5f615b4184828501615b0b565b91505092915050565b5f81519050615b588161496b565b92915050565b5f60208284031215615b7357615b72614930565b5b5f615b8084828501615b4a565b91505092915050565b7fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b545f82015250565b5f615bbd6020836157f0565b9150615bc882615b89565b602082019050919050565b5f615bdd82615822565b9150615be98285615758565b601482019150615bf98284615856565b602082019150615c0882615bb1565b9150819050939250505056fea2646970667358221220bf9bd65d39a69c33e0d39ffd51c889462f25d4bc7c6c867a22caa704d611e08d64736f6c63430008140033414943727970746f4c61627320697320612063727970746f63757272656e637920706c6174666f726d207468617420696e7465677261746573206172746966696369616c20696e74656c6c6967656e636520616e6420626c6f636b636861696e20746563686e6f6c6f67792c20616e6420697320636f6d6d697474656420746f2070726f766964696e67207573657273207769746820696e74656c6c6967656e74206d61726b657420696e73696768747320616e642074726164696e6720617373697374616e63652073657276696365732e2054686520706c6174666f726d207573657320616476616e63656420414920746563686e6f6c6f677920746f2070726f76696465207265616c2d74696d652063727970746f63757272656e6379206e65777320696e746572707265746174696f6e2c206d61726b6574207472656e6420616e616c797369732c20696e2d6465707468207265706f7274732c2063757272656e637920746563686e6963616c20616e616c797369732c20616e6420746f6b656e20736563757269747920646574656374696f6e2e20496e206164646974696f6e2c20414943727970746f4c616273206769766573206261636b20746f2074686520636f6d6d756e697479207468726f75676820667265652061697264726f7020616374697669746965732c20616c6c6f77696e6720757365727320746f20657870657269656e63652074686520706c6174666f726d277320696e6e6f766174697665207365727669636573206174207a65726f20636f73742e20496e20746865206675747572652c2074686520706c6174666f726d20706c616e7320746f206c61756e6368206120646563656e7472616c697a65642065786368616e6765202844455829206f6e206974732073656c662d6275696c74204c3220284c61796572203229207365636f6e642d6c61796572206e6574776f726b20616e6420696e746567726174652041492074726164696e67207369676e616c7320746f206272696e6720757365727320616e20656666696369656e742c206c6f772d636f737420616e6420696e74656c6c6967656e742074726164696e6720657870657269656e63652e68747470733a2f2f616963727970746f2e34657665726c616e642e73746f72652f414943727970746f2e706e67