{
    "abi": [
        {
            "constant": false,
            "inputs": [
                {
                    "name": "alerter",
                    "type": "address"
                }
            ],
            "name": "removeAlerter",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function",
            "signature": "0x01a12fd3"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "name": "",
                    "type": "address"
                }
            ],
            "name": "reserveKNCWallet",
            "outputs": [
                {
                    "name": "",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function",
            "signature": "0x0a377f3a"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "name": "",
                    "type": "address"
                },
                {
                    "name": "",
                    "type": "address"
                }
            ],
            "name": "reserveFeeToWallet",
            "outputs": [
                {
                    "name": "",
                    "type": "uint256"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function",
            "signature": "0x22dbf6d2"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "pendingAdmin",
            "outputs": [
                {
                    "name": "",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function",
            "signature": "0x26782247"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "getOperators",
            "outputs": [
                {
                    "name": "",
                    "type": "address[]"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function",
            "signature": "0x27a099d8"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "name": "",
                    "type": "address"
                }
            ],
            "name": "reserveFeeToBurn",
            "outputs": [
                {
                    "name": "",
                    "type": "uint256"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function",
            "signature": "0x2b84fe83"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "taxWallet",
            "outputs": [
                {
                    "name": "",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function",
            "signature": "0x2dc0562d"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "name": "",
                    "type": "address"
                }
            ],
            "name": "reserveFeesInBps",
            "outputs": [
                {
                    "name": "",
                    "type": "uint256"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function",
            "signature": "0x384c4d2f"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "taxFeeBps",
            "outputs": [
                {
                    "name": "",
                    "type": "uint256"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function",
            "signature": "0x3b215823"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "token",
                    "type": "address"
                },
                {
                    "name": "amount",
                    "type": "uint256"
                },
                {
                    "name": "sendTo",
                    "type": "address"
                }
            ],
            "name": "withdrawToken",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function",
            "signature": "0x3ccdbb28"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "newAlerter",
                    "type": "address"
                }
            ],
            "name": "addAlerter",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function",
            "signature": "0x408ee7fe"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "name": "",
                    "type": "address"
                }
            ],
            "name": "walletFeesInBps",
            "outputs": [
                {
                    "name": "",
                    "type": "uint256"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function",
            "signature": "0x45ab63b9"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "newAdmin",
                    "type": "address"
                }
            ],
            "name": "transferAdmin",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function",
            "signature": "0x75829def"
        },
        {
            "constant": false,
            "inputs": [],
            "name": "claimAdmin",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function",
            "signature": "0x77f50f97"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "newAdmin",
                    "type": "address"
                }
            ],
            "name": "transferAdminQuickly",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function",
            "signature": "0x7acc8678"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "getAlerters",
            "outputs": [
                {
                    "name": "",
                    "type": "address[]"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function",
            "signature": "0x7c423f54"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "kncPerETHRate",
            "outputs": [
                {
                    "name": "",
                    "type": "uint256"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function",
            "signature": "0x820b9f1e"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "newOperator",
                    "type": "address"
                }
            ],
            "name": "addOperator",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function",
            "signature": "0x9870d7fe"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "operator",
                    "type": "address"
                }
            ],
            "name": "removeOperator",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function",
            "signature": "0xac8a584a"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "kyberNetwork",
            "outputs": [
                {
                    "name": "",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function",
            "signature": "0xb78b842d"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "amount",
                    "type": "uint256"
                },
                {
                    "name": "sendTo",
                    "type": "address"
                }
            ],
            "name": "withdrawEther",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function",
            "signature": "0xce56c454"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "name": "",
                    "type": "address"
                }
            ],
            "name": "feePayedPerReserve",
            "outputs": [
                {
                    "name": "",
                    "type": "uint256"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function",
            "signature": "0xdc93f7c9"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "knc",
            "outputs": [
                {
                    "name": "",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function",
            "signature": "0xe61387e0"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "admin",
            "outputs": [
                {
                    "name": "",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function",
            "signature": "0xf851a440"
        },
        {
            "inputs": [
                {
                    "name": "_admin",
                    "type": "address"
                },
                {
                    "name": "kncToken",
                    "type": "address"
                },
                {
                    "name": "_kyberNetwork",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "constructor",
            "signature": "constructor"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "name": "reserve",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "name": "feeInBps",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "name": "kncWallet",
                    "type": "address"
                }
            ],
            "name": "ReserveDataSet",
            "type": "event",
            "signature": "0x999efec8241b9b7a1d9c2d2e207cde178cb3a02ca6a94d070eecb369674ead6f"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "name": "wallet",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "name": "feesInBps",
                    "type": "uint256"
                }
            ],
            "name": "WalletFeesSet",
            "type": "event",
            "signature": "0x19f0c31fd2313f709ad6b9f15595720ff5765b72b394025288ac4f355fee0952"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "name": "feesInBps",
                    "type": "uint256"
                }
            ],
            "name": "TaxFeesSet",
            "type": "event",
            "signature": "0x560f2dab6b3f89e548b63a9eabb6e43ec0e70bb81bdc69e5dc578c72bab629f5"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "name": "taxWallet",
                    "type": "address"
                }
            ],
            "name": "TaxWalletSet",
            "type": "event",
            "signature": "0x847d0f7f2b16c8dd0b72c0606e65e8bf1b624633d37905b0e08145a295ab8758"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "name": "reserve",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "name": "wallet",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "name": "walletFee",
                    "type": "uint256"
                }
            ],
            "name": "AssignFeeToWallet",
            "type": "event",
            "signature": "0x366bc34352215bf0bd3b527cfd6718605e1f5938777e42bcd8ed92f578368f52"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "name": "reserve",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "name": "burnFee",
                    "type": "uint256"
                }
            ],
            "name": "AssignBurnFees",
            "type": "event",
            "signature": "0xf838f6ddc89706878e3c3e698e9b5cbfbf2c0e3d3dcd0bd2e00f1ccf313e0185"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "name": "reserve",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "name": "sender",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "name": "quantity",
                    "type": "uint256"
                }
            ],
            "name": "BurnAssignedFees",
            "type": "event",
            "signature": "0x2f8d2d194cbe1816411754a2fc9478a11f0707da481b11cff7c69791eb877ee1"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "name": "reserve",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "name": "sender",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "name": "taxWallet",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "name": "quantity",
                    "type": "uint256"
                }
            ],
            "name": "SendTaxFee",
            "type": "event",
            "signature": "0x540d888e67a7f36992e365be9fddab5e2fd60e27b220d330c18f04650fd562e0"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "name": "wallet",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "name": "reserve",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "name": "sender",
                    "type": "address"
                }
            ],
            "name": "SendWalletFees",
            "type": "event",
            "signature": "0xb3f3e7375c0c0c4f7dd94069a5a4e68667827491318da786c818b8c7a794924e"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "name": "token",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "name": "amount",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "name": "sendTo",
                    "type": "address"
                }
            ],
            "name": "TokenWithdraw",
            "type": "event",
            "signature": "0x72cb8a894ddb372ceec3d2a7648d86f17d5a15caae0e986c53109b8a9a9385e6"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "name": "amount",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "name": "sendTo",
                    "type": "address"
                }
            ],
            "name": "EtherWithdraw",
            "type": "event",
            "signature": "0xec47e7ed86c86774d1a72c19f35c639911393fe7c1a34031fdbd260890da90de"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "name": "pendingAdmin",
                    "type": "address"
                }
            ],
            "name": "TransferAdminPending",
            "type": "event",
            "signature": "0x3b81caf78fa51ecbc8acb482fd7012a277b428d9b80f9d156e8a54107496cc40"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "name": "newAdmin",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "name": "previousAdmin",
                    "type": "address"
                }
            ],
            "name": "AdminClaimed",
            "type": "event",
            "signature": "0x65da1cfc2c2e81576ad96afb24a581f8e109b7a403b35cbd3243a1c99efdb9ed"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "name": "newAlerter",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "name": "isAdd",
                    "type": "bool"
                }
            ],
            "name": "AlerterAdded",
            "type": "event",
            "signature": "0x5611bf3e417d124f97bf2c788843ea8bb502b66079fbee02158ef30b172cb762"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "name": "newOperator",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "name": "isAdd",
                    "type": "bool"
                }
            ],
            "name": "OperatorAdded",
            "type": "event",
            "signature": "0x091a7a4b85135fdd7e8dbc18b12fabe5cc191ea867aa3c2e1a24a102af61d58b"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "reserve",
                    "type": "address"
                },
                {
                    "name": "feesInBps",
                    "type": "uint256"
                },
                {
                    "name": "kncWallet",
                    "type": "address"
                }
            ],
            "name": "setReserveData",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function",
            "signature": "0x46b8c49e"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "wallet",
                    "type": "address"
                },
                {
                    "name": "feesInBps",
                    "type": "uint256"
                }
            ],
            "name": "setWalletFees",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function",
            "signature": "0x65dfc20f"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "_taxFeeBps",
                    "type": "uint256"
                }
            ],
            "name": "setTaxInBps",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function",
            "signature": "0x9fad2dcb"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "_taxWallet",
                    "type": "address"
                }
            ],
            "name": "setTaxWallet",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function",
            "signature": "0xea414b28"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "rate",
                    "type": "uint256"
                }
            ],
            "name": "setKNCRate",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function",
            "signature": "0x1e4b5652"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "tradeWeiAmount",
                    "type": "uint256"
                },
                {
                    "name": "reserve",
                    "type": "address"
                },
                {
                    "name": "wallet",
                    "type": "address"
                }
            ],
            "name": "handleFees",
            "outputs": [
                {
                    "name": "",
                    "type": "bool"
                }
            ],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function",
            "signature": "0xfd062d3b"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "reserve",
                    "type": "address"
                }
            ],
            "name": "burnReserveFees",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function",
            "signature": "0xf6486cad"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "wallet",
                    "type": "address"
                },
                {
                    "name": "reserve",
                    "type": "address"
                }
            ],
            "name": "sendFeeToWallet",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function",
            "signature": "0xdd3ff4f6"
        }
    ],
    "bytecode": "0x60806040526000600e5561012c6011553480156200001c57600080fd5b5060405160608062003554833981018060405281019080805190602001909291908051906020019092919080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515620000d157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156200010e57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156200014b57600080fd5b80601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550826000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505061333480620002206000396000f300608060405260043610610196576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806301a12fd31461019b5780630a377f3a146101de5780631e4b56521461026157806322dbf6d21461028e578063267822471461030557806327a099d81461035c5780632b84fe83146103c85780632dc0562d1461041f578063384c4d2f146104765780633b215823146104cd5780633ccdbb28146104f8578063408ee7fe1461056557806345ab63b9146105a857806346b8c49e146105ff57806365dfc20f1461066c57806375829def146106b957806377f50f97146106fc5780637acc8678146107135780637c423f5414610756578063820b9f1e146107c25780639870d7fe146107ed5780639fad2dcb14610830578063ac8a584a1461085d578063b78b842d146108a0578063ce56c454146108f7578063dc93f7c914610944578063dd3ff4f61461099b578063e61387e0146109fe578063ea414b2814610a55578063f6486cad14610a98578063f851a44014610adb578063fd062d3b14610b32575b600080fd5b3480156101a757600080fd5b506101dc600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bb7565b005b3480156101ea57600080fd5b5061021f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e76565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561026d57600080fd5b5061028c60048036038101908080359060200190929190505050610ea9565b005b34801561029a57600080fd5b506102ef600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f2a565b6040518082815260200191505060405180910390f35b34801561031157600080fd5b5061031a610f4f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561036857600080fd5b50610371610f75565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156103b4578082015181840152602081019050610399565b505050509050019250505060405180910390f35b3480156103d457600080fd5b50610409600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611003565b6040518082815260200191505060405180910390f35b34801561042b57600080fd5b5061043461101b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561048257600080fd5b506104b7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611041565b6040518082815260200191505060405180910390f35b3480156104d957600080fd5b506104e2611059565b6040518082815260200191505060405180910390f35b34801561050457600080fd5b50610563600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061105f565b005b34801561057157600080fd5b506105a6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611247565b005b3480156105b457600080fd5b506105e9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611440565b6040518082815260200191505060405180910390f35b34801561060b57600080fd5b5061066a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611458565b005b34801561067857600080fd5b506106b7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611664565b005b3480156106c557600080fd5b506106fa600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611782565b005b34801561070857600080fd5b506107116118e2565b005b34801561071f57600080fd5b50610754600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611abe565b005b34801561076257600080fd5b5061076b611cb3565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156107ae578082015181840152602081019050610793565b505050509050019250505060405180910390f35b3480156107ce57600080fd5b506107d7611d41565b6040518082815260200191505060405180910390f35b3480156107f957600080fd5b5061082e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d47565b005b34801561083c57600080fd5b5061085b60048036038101908080359060200190929190505050611f40565b005b34801561086957600080fd5b5061089e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611fec565b005b3480156108ac57600080fd5b506108b56122ae565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561090357600080fd5b5061094260048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506122d4565b005b34801561095057600080fd5b50610985600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506123e5565b6040518082815260200191505060405180910390f35b3480156109a757600080fd5b506109fc600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506123fd565b005b348015610a0a57600080fd5b50610a136127b3565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610a6157600080fd5b50610a96600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506127d9565b005b348015610aa457600080fd5b50610ad9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612917565b005b348015610ae757600080fd5b50610af0612f34565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610b3e57600080fd5b50610b9d60048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612f59565b604051808215151515815260200191505060405180910390f35b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c1457600080fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610c6c57600080fd5b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600090505b600580549050811015610e72578173ffffffffffffffffffffffffffffffffffffffff16600582815481101515610cfc57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610e67576005600160058054905003815481101515610d5a57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600582815481101515610d9457fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506005805480919060019003610df191906132b7565b507f5611bf3e417d124f97bf2c788843ea8bb502b66079fbee02158ef30b172cb762826000604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a1610e72565b806001019050610cc9565b5050565b60086020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f0457600080fd5b620f4240670de0b6b3a7640000028111151515610f2057600080fd5b8060118190555050565b600c602052816000526040600020602052806000526040600020600091509150505481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606004805480602002602001604051908101604052809291908181526020018280548015610ff957602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610faf575b5050505050905090565b600a6020528060005260406000206000915090505481565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60076020528060005260406000206000915090505481565b600e5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156110ba57600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb82846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561115d57600080fd5b505af1158015611171573d6000803e3d6000fd5b505050506040513d602081101561118757600080fd5b810190808051906020019092919050505015156111a357600080fd5b7f72cb8a894ddb372ceec3d2a7648d86f17d5a15caae0e986c53109b8a9a9385e6838383604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001935050505060405180910390a1505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156112a257600080fd5b600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515156112fb57600080fd5b603260058054905010151561130f57600080fd5b7f5611bf3e417d124f97bf2c788843ea8bb502b66079fbee02158ef30b172cb762816001604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a16001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060058190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60096020528060005260406000206000915090505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156114b357600080fd5b6064821015156114c257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156114fe57600080fd5b81600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f999efec8241b9b7a1d9c2d2e207cde178cb3a02ca6a94d070eecb369674ead6f838383604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001935050505060405180910390a1505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156116bf57600080fd5b612710811015156116cf57600080fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f19f0c31fd2313f709ad6b9f15595720ff5765b72b394025288ac4f355fee09528282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156117dd57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561181957600080fd5b7f3b81caf78fa51ecbc8acb482fd7012a277b428d9b80f9d156e8a54107496cc40600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a180600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561193e57600080fd5b7f65da1cfc2c2e81576ad96afb24a581f8e109b7a403b35cbd3243a1c99efdb9ed600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a1600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b1957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611b5557600080fd5b7f3b81caf78fa51ecbc8acb482fd7012a277b428d9b80f9d156e8a54107496cc4081604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a17f65da1cfc2c2e81576ad96afb24a581f8e109b7a403b35cbd3243a1c99efdb9ed816000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a1806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606005805480602002602001604051908101604052809291908181526020018280548015611d3757602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611ced575b5050505050905090565b60115481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611da257600080fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515611dfb57600080fd5b6032600480549050101515611e0f57600080fd5b7f091a7a4b85135fdd7e8dbc18b12fabe5cc191ea867aa3c2e1a24a102af61d58b816001604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a16001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060048190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f9b57600080fd5b61271081101515611fab57600080fd5b80600e819055507f560f2dab6b3f89e548b63a9eabb6e43ec0e70bb81bdc69e5dc578c72bab629f5816040518082815260200191505060405180910390a150565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561204957600080fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156120a157600080fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600090505b6004805490508110156122aa578173ffffffffffffffffffffffffffffffffffffffff1660048281548110151561213157fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561229f57600460016004805490500381548110151561218f57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166004828154811015156121c957fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160048181805490500391508161222991906132b7565b507f091a7a4b85135fdd7e8dbc18b12fabe5cc191ea867aa3c2e1a24a102af61d58b826000604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a16122aa565b8060010190506120fe565b5050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561232f57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015612375573d6000803e3d6000fd5b507fec47e7ed86c86774d1a72c19f35c639911393fe7c1a34031fdbd260890da90de8282604051808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a15050565b600b6020528060005260406000206000915090505481565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060018111151561248d57600080fd5b6001600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685600185036040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15801561266a57600080fd5b505af115801561267e573d6000803e3d6000fd5b505050506040513d602081101561269457600080fd5b810190808051906020019092919050505015156126b057600080fd5b60018103600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff167fb3f3e7375c0c0c4f7dd94069a5a4e68667827491318da786c818b8c7a794924e8333604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a2505050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561283457600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561287057600080fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f847d0f7f2b16c8dd0b72c0606e65e8bf1b624633d37905b0e08145a295ab875881604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b600080600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205491506000905060028211151561296f57600080fd5b6001600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614158015612a1657506000600e5414155b15612ceb57612710600e546001840302811515612a2f57fe5b0490508060018303111515612a4357600080fd5b80820391506000811115612cea57600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b158015612bcb57600080fd5b505af1158015612bdf573d6000803e3d6000fd5b505050506040513d6020811015612bf557600080fd5b81019080805190602001909291905050501515612c1157600080fd5b8273ffffffffffffffffffffffffffffffffffffffff167f540d888e67a7f36992e365be9fddab5e2fd60e27b220d330c18f04650fd562e033600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a25b5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166379cc6790600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600185036040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612e1257600080fd5b505af1158015612e26573d6000803e3d6000fd5b505050506040513d6020811015612e3c57600080fd5b81019080805190602001909291905050501515612e5857600080fd5b600182820103600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff167f2f8d2d194cbe1816411754a2fc9478a11f0707da481b11cff7c69791eb877ee13360018503604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a2505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000806000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612fbd57600080fd5b6b204fce5e3e250261100000008811151515612fd857600080fd5b620f4240670de0b6b3a76400000260115411151515612ff657600080fd5b60115488029350612710600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054850281151561304b57fe5b049250612710600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054840281151561309c57fe5b0491508183101515156130ae57600080fd5b818303905060008211156131e65781600c60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055507f366bc34352215bf0bd3b527cfd6718605e1f5938777e42bcd8ed92f578368f52878784604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001935050505060405180910390a15b60008111156132a8577ff838f6ddc89706878e3c3e698e9b5cbfbf2c0e3d3dcd0bd2e00f1ccf313e01858782604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a180600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b60019450505050509392505050565b8154818355818111156132de578183600052602060002091820191016132dd91906132e3565b5b505050565b61330591905b808211156133015760008160009055506001016132e9565b5090565b905600a165627a7a72305820cfe43ea2404810a5dcde783a5dac86523a5d59eabbe1920da95edfdcc01639b20029"
}
