From c53c5ddc0c374ab93a7e561f2be86eb29153ca88 Mon Sep 17 00:00:00 2001 From: Bekket Date: Mon, 14 Nov 2022 17:16:09 +0400 Subject: [PATCH] abi and go files build --- addresses.txt | 7 ++++--- build/ERC20Sample.abi | 2 +- build/ERC20Sample.bin | 2 +- build/ERC721Sample.bin | 2 +- build/Union.bin | 2 +- contracts/Union.sol | 2 +- contracts/erc20/ERC20Sample.sol | 1 + go/ERC20.go | 2 +- 8 files changed, 11 insertions(+), 9 deletions(-) diff --git a/addresses.txt b/addresses.txt index 0602476..eee344c 100644 --- a/addresses.txt +++ b/addresses.txt @@ -1,8 +1,8 @@ Goerli: -TGPassport deployed to: 0x657726417347C408419c2F1C23CC4A684D4DDd2C -Union deployed to: 0xcFbE5b2D3f1E44a6fE469614741c16440ab19486 -Sample erc20 deployed to: 0xF2FbfAAE0cF9a2b266BCc0aF5d96731BC175429B +TGPassport deployed to: 0x05044C88AB66a058D523038039d64cd101b9D8c9 +Union deployed to: 0xef2DCEA186FA90FcD0c44C3caaE81E4586eE0685 +Sample erc20 deployed to: 0xFbC45497848cc7438c528015271d73B9d8712385 test dao address: 0x9b393D071fa16458cb6CE3256F50eD1D2c776F7D owner address: 0x16d97A46030C5D3D705bca45439e48529997D8b2 passport fee: BigNumber { value: "1000" } @@ -17,6 +17,7 @@ approved dao address: 0x9b393D071fa16458cb6CE3256F50eD1D2c776F7D + Second test data in Rinkeby: tgid : 1234 chatid: 123456 diff --git a/build/ERC20Sample.abi b/build/ERC20Sample.abi index 4886849..95198bc 100644 --- a/build/ERC20Sample.abi +++ b/build/ERC20Sample.abi @@ -1 +1 @@ -[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}] \ No newline at end of file +[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint256","name":"initialSupply","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}] \ No newline at end of file diff --git a/build/ERC20Sample.bin b/build/ERC20Sample.bin index 1a8b8fc..c953f4a 100644 --- a/build/ERC20Sample.bin +++ b/build/ERC20Sample.bin @@ -1 +1 @@ -60806040523480156200001157600080fd5b5060405162001e4b38038062001e4b833981810160405281019062000037919062000285565b818181600390805190602001906200005192919062000163565b5080600490805190602001906200006a92919062000163565b5050506200008d620000816200009560201b60201c565b6200009d60201b60201c565b505062000468565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b82805462000171906200038d565b90600052602060002090601f016020900481019282620001955760008555620001e1565b82601f10620001b057805160ff1916838001178555620001e1565b82800160010185558215620001e1579182015b82811115620001e0578251825591602001919060010190620001c3565b5b509050620001f09190620001f4565b5090565b5b808211156200020f576000816000905550600101620001f5565b5090565b60006200022a620002248462000321565b620002f8565b9050828152602081018484840111156200024357600080fd5b6200025084828562000357565b509392505050565b600082601f8301126200026a57600080fd5b81516200027c84826020860162000213565b91505092915050565b600080604083850312156200029957600080fd5b600083015167ffffffffffffffff811115620002b457600080fd5b620002c28582860162000258565b925050602083015167ffffffffffffffff811115620002e057600080fd5b620002ee8582860162000258565b9150509250929050565b60006200030462000317565b9050620003128282620003c3565b919050565b6000604051905090565b600067ffffffffffffffff8211156200033f576200033e62000428565b5b6200034a8262000457565b9050602081019050919050565b60005b83811015620003775780820151818401526020810190506200035a565b8381111562000387576000848401525b50505050565b60006002820490506001821680620003a657607f821691505b60208210811415620003bd57620003bc620003f9565b5b50919050565b620003ce8262000457565b810181811067ffffffffffffffff82111715620003f057620003ef62000428565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b6119d380620004786000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c806370a0823111610097578063a457c2d711610066578063a457c2d714610276578063a9059cbb146102a6578063dd62ed3e146102d6578063f2fde38b14610306576100f5565b806370a0823114610200578063715018a6146102305780638da5cb5b1461023a57806395d89b4114610258576100f5565b806323b872dd116100d357806323b872dd14610166578063313ce5671461019657806339509351146101b457806340c10f19146101e4576100f5565b806306fdde03146100fa578063095ea7b31461011857806318160ddd14610148575b600080fd5b610102610322565b60405161010f9190611398565b60405180910390f35b610132600480360381019061012d9190611153565b6103b4565b60405161013f919061137d565b60405180910390f35b6101506103d7565b60405161015d91906114fa565b60405180910390f35b610180600480360381019061017b9190611104565b6103e1565b60405161018d919061137d565b60405180910390f35b61019e610410565b6040516101ab9190611515565b60405180910390f35b6101ce60048036038101906101c99190611153565b610419565b6040516101db919061137d565b60405180910390f35b6101fe60048036038101906101f99190611153565b6104c3565b005b61021a6004803603810190610215919061109f565b61054d565b60405161022791906114fa565b60405180910390f35b610238610595565b005b61024261061d565b60405161024f9190611362565b60405180910390f35b610260610647565b60405161026d9190611398565b60405180910390f35b610290600480360381019061028b9190611153565b6106d9565b60405161029d919061137d565b60405180910390f35b6102c060048036038101906102bb9190611153565b6107c3565b6040516102cd919061137d565b60405180910390f35b6102f060048036038101906102eb91906110c8565b6107e6565b6040516102fd91906114fa565b60405180910390f35b610320600480360381019061031b919061109f565b61086d565b005b6060600380546103319061162a565b80601f016020809104026020016040519081016040528092919081815260200182805461035d9061162a565b80156103aa5780601f1061037f576101008083540402835291602001916103aa565b820191906000526020600020905b81548152906001019060200180831161038d57829003601f168201915b5050505050905090565b6000806103bf610965565b90506103cc81858561096d565b600191505092915050565b6000600254905090565b6000806103ec610965565b90506103f9858285610b38565b610404858585610bc4565b60019150509392505050565b60006012905090565b600080610424610965565b90506104b8818585600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546104b3919061154c565b61096d565b600191505092915050565b6104cb610965565b73ffffffffffffffffffffffffffffffffffffffff166104e961061d565b73ffffffffffffffffffffffffffffffffffffffff161461053f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105369061145a565b60405180910390fd5b6105498282610e45565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61059d610965565b73ffffffffffffffffffffffffffffffffffffffff166105bb61061d565b73ffffffffffffffffffffffffffffffffffffffff1614610611576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106089061145a565b60405180910390fd5b61061b6000610fa5565b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546106569061162a565b80601f01602080910402602001604051908101604052809291908181526020018280546106829061162a565b80156106cf5780601f106106a4576101008083540402835291602001916106cf565b820191906000526020600020905b8154815290600101906020018083116106b257829003601f168201915b5050505050905090565b6000806106e4610965565b90506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050838110156107aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a1906114ba565b60405180910390fd5b6107b7828686840361096d565b60019250505092915050565b6000806107ce610965565b90506107db818585610bc4565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610875610965565b73ffffffffffffffffffffffffffffffffffffffff1661089361061d565b73ffffffffffffffffffffffffffffffffffffffff16146108e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e09061145a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610959576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610950906113da565b60405180910390fd5b61096281610fa5565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156109dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d49061149a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610a4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a44906113fa565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610b2b91906114fa565b60405180910390a3505050565b6000610b4484846107e6565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610bbe5781811015610bb0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba79061141a565b60405180910390fd5b610bbd848484840361096d565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2b9061147a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ca4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9b906113ba565b60405180910390fd5b610caf83838361106b565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610d35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2c9061143a565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610dc8919061154c565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610e2c91906114fa565b60405180910390a3610e3f848484611070565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610eb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eac906114da565b60405180910390fd5b610ec16000838361106b565b8060026000828254610ed3919061154c565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610f28919061154c565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610f8d91906114fa565b60405180910390a3610fa160008383611070565b5050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b505050565b505050565b6000813590506110848161196f565b92915050565b60008135905061109981611986565b92915050565b6000602082840312156110b157600080fd5b60006110bf84828501611075565b91505092915050565b600080604083850312156110db57600080fd5b60006110e985828601611075565b92505060206110fa85828601611075565b9150509250929050565b60008060006060848603121561111957600080fd5b600061112786828701611075565b935050602061113886828701611075565b92505060406111498682870161108a565b9150509250925092565b6000806040838503121561116657600080fd5b600061117485828601611075565b92505060206111858582860161108a565b9150509250929050565b611198816115a2565b82525050565b6111a7816115b4565b82525050565b60006111b882611530565b6111c2818561153b565b93506111d28185602086016115f7565b6111db816116ba565b840191505092915050565b60006111f360238361153b565b91506111fe826116cb565b604082019050919050565b600061121660268361153b565b91506112218261171a565b604082019050919050565b600061123960228361153b565b915061124482611769565b604082019050919050565b600061125c601d8361153b565b9150611267826117b8565b602082019050919050565b600061127f60268361153b565b915061128a826117e1565b604082019050919050565b60006112a260208361153b565b91506112ad82611830565b602082019050919050565b60006112c560258361153b565b91506112d082611859565b604082019050919050565b60006112e860248361153b565b91506112f3826118a8565b604082019050919050565b600061130b60258361153b565b9150611316826118f7565b604082019050919050565b600061132e601f8361153b565b915061133982611946565b602082019050919050565b61134d816115e0565b82525050565b61135c816115ea565b82525050565b6000602082019050611377600083018461118f565b92915050565b6000602082019050611392600083018461119e565b92915050565b600060208201905081810360008301526113b281846111ad565b905092915050565b600060208201905081810360008301526113d3816111e6565b9050919050565b600060208201905081810360008301526113f381611209565b9050919050565b600060208201905081810360008301526114138161122c565b9050919050565b600060208201905081810360008301526114338161124f565b9050919050565b6000602082019050818103600083015261145381611272565b9050919050565b6000602082019050818103600083015261147381611295565b9050919050565b60006020820190508181036000830152611493816112b8565b9050919050565b600060208201905081810360008301526114b3816112db565b9050919050565b600060208201905081810360008301526114d3816112fe565b9050919050565b600060208201905081810360008301526114f381611321565b9050919050565b600060208201905061150f6000830184611344565b92915050565b600060208201905061152a6000830184611353565b92915050565b600081519050919050565b600082825260208201905092915050565b6000611557826115e0565b9150611562836115e0565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156115975761159661165c565b5b828201905092915050565b60006115ad826115c0565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156116155780820151818401526020810190506115fa565b83811115611624576000848401525b50505050565b6000600282049050600182168061164257607f821691505b602082108114156116565761165561168b565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b611978816115a2565b811461198357600080fd5b50565b61198f816115e0565b811461199a57600080fd5b5056fea2646970667358221220a97c052156f98ee159195fcdc128bc00e1e6468a872608e6d0f0c4871faf184c64736f6c63430008030033 \ No newline at end of file +60806040523480156200001157600080fd5b50604051620022b4380380620022b4833981810160405281019062000037919062000506565b8282816003908051906020019062000051929190620003cd565b5080600490805190602001906200006a929190620003cd565b5050506200008d62000081620000a860201b60201c565b620000b060201b60201c565b6200009f33826200017660201b60201c565b505050620008d1565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b62000186620000a860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620001ac6200022060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000205576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001fc90620005ed565b60405180910390fd5b6200021c82826200024a60201b620009651760201c565b5050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620002bd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002b4906200060f565b60405180910390fd5b620002d160008383620003c360201b60201c565b8060026000828254620002e59190620006be565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546200033c9190620006be565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620003a3919062000631565b60405180910390a3620003bf60008383620003c860201b60201c565b5050565b505050565b505050565b828054620003db906200075b565b90600052602060002090601f016020900481019282620003ff57600085556200044b565b82601f106200041a57805160ff19168380011785556200044b565b828001600101855582156200044b579182015b828111156200044a5782518255916020019190600101906200042d565b5b5090506200045a91906200045e565b5090565b5b80821115620004795760008160009055506001016200045f565b5090565b6000620004946200048e8462000677565b6200064e565b905082815260208101848484011115620004ad57600080fd5b620004ba84828562000725565b509392505050565b600082601f830112620004d457600080fd5b8151620004e68482602086016200047d565b91505092915050565b6000815190506200050081620008b7565b92915050565b6000806000606084860312156200051c57600080fd5b600084015167ffffffffffffffff8111156200053757600080fd5b6200054586828701620004c2565b935050602084015167ffffffffffffffff8111156200056357600080fd5b6200057186828701620004c2565b92505060406200058486828701620004ef565b9150509250925092565b60006200059d602083620006ad565b9150620005aa8262000865565b602082019050919050565b6000620005c4601f83620006ad565b9150620005d1826200088e565b602082019050919050565b620005e7816200071b565b82525050565b6000602082019050818103600083015262000608816200058e565b9050919050565b600060208201905081810360008301526200062a81620005b5565b9050919050565b6000602082019050620006486000830184620005dc565b92915050565b60006200065a6200066d565b905062000668828262000791565b919050565b6000604051905090565b600067ffffffffffffffff82111562000695576200069462000825565b5b620006a08262000854565b9050602081019050919050565b600082825260208201905092915050565b6000620006cb826200071b565b9150620006d8836200071b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000710576200070f620007c7565b5b828201905092915050565b6000819050919050565b60005b838110156200074557808201518184015260208101905062000728565b8381111562000755576000848401525b50505050565b600060028204905060018216806200077457607f821691505b602082108114156200078b576200078a620007f6565b5b50919050565b6200079c8262000854565b810181811067ffffffffffffffff82111715620007be57620007bd62000825565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b620008c2816200071b565b8114620008ce57600080fd5b50565b6119d380620008e16000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c806370a0823111610097578063a457c2d711610066578063a457c2d714610276578063a9059cbb146102a6578063dd62ed3e146102d6578063f2fde38b14610306576100f5565b806370a0823114610200578063715018a6146102305780638da5cb5b1461023a57806395d89b4114610258576100f5565b806323b872dd116100d357806323b872dd14610166578063313ce5671461019657806339509351146101b457806340c10f19146101e4576100f5565b806306fdde03146100fa578063095ea7b31461011857806318160ddd14610148575b600080fd5b610102610322565b60405161010f9190611398565b60405180910390f35b610132600480360381019061012d9190611153565b6103b4565b60405161013f919061137d565b60405180910390f35b6101506103d7565b60405161015d91906114fa565b60405180910390f35b610180600480360381019061017b9190611104565b6103e1565b60405161018d919061137d565b60405180910390f35b61019e610410565b6040516101ab9190611515565b60405180910390f35b6101ce60048036038101906101c99190611153565b610419565b6040516101db919061137d565b60405180910390f35b6101fe60048036038101906101f99190611153565b6104c3565b005b61021a6004803603810190610215919061109f565b61054d565b60405161022791906114fa565b60405180910390f35b610238610595565b005b61024261061d565b60405161024f9190611362565b60405180910390f35b610260610647565b60405161026d9190611398565b60405180910390f35b610290600480360381019061028b9190611153565b6106d9565b60405161029d919061137d565b60405180910390f35b6102c060048036038101906102bb9190611153565b6107c3565b6040516102cd919061137d565b60405180910390f35b6102f060048036038101906102eb91906110c8565b6107e6565b6040516102fd91906114fa565b60405180910390f35b610320600480360381019061031b919061109f565b61086d565b005b6060600380546103319061162a565b80601f016020809104026020016040519081016040528092919081815260200182805461035d9061162a565b80156103aa5780601f1061037f576101008083540402835291602001916103aa565b820191906000526020600020905b81548152906001019060200180831161038d57829003601f168201915b5050505050905090565b6000806103bf610ac5565b90506103cc818585610acd565b600191505092915050565b6000600254905090565b6000806103ec610ac5565b90506103f9858285610c98565b610404858585610d24565b60019150509392505050565b60006012905090565b600080610424610ac5565b90506104b8818585600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546104b3919061154c565b610acd565b600191505092915050565b6104cb610ac5565b73ffffffffffffffffffffffffffffffffffffffff166104e961061d565b73ffffffffffffffffffffffffffffffffffffffff161461053f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105369061145a565b60405180910390fd5b6105498282610965565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61059d610ac5565b73ffffffffffffffffffffffffffffffffffffffff166105bb61061d565b73ffffffffffffffffffffffffffffffffffffffff1614610611576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106089061145a565b60405180910390fd5b61061b6000610fa5565b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546106569061162a565b80601f01602080910402602001604051908101604052809291908181526020018280546106829061162a565b80156106cf5780601f106106a4576101008083540402835291602001916106cf565b820191906000526020600020905b8154815290600101906020018083116106b257829003601f168201915b5050505050905090565b6000806106e4610ac5565b90506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050838110156107aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a1906114ba565b60405180910390fd5b6107b78286868403610acd565b60019250505092915050565b6000806107ce610ac5565b90506107db818585610d24565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610875610ac5565b73ffffffffffffffffffffffffffffffffffffffff1661089361061d565b73ffffffffffffffffffffffffffffffffffffffff16146108e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e09061145a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610959576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610950906113da565b60405180910390fd5b61096281610fa5565b50565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156109d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cc906114da565b60405180910390fd5b6109e16000838361106b565b80600260008282546109f3919061154c565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610a48919061154c565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610aad91906114fa565b60405180910390a3610ac160008383611070565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610b3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b349061149a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610bad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba4906113fa565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610c8b91906114fa565b60405180910390a3505050565b6000610ca484846107e6565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610d1e5781811015610d10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d079061141a565b60405180910390fd5b610d1d8484848403610acd565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8b9061147a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610e04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfb906113ba565b60405180910390fd5b610e0f83838361106b565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610e95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8c9061143a565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610f28919061154c565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610f8c91906114fa565b60405180910390a3610f9f848484611070565b50505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b505050565b505050565b6000813590506110848161196f565b92915050565b60008135905061109981611986565b92915050565b6000602082840312156110b157600080fd5b60006110bf84828501611075565b91505092915050565b600080604083850312156110db57600080fd5b60006110e985828601611075565b92505060206110fa85828601611075565b9150509250929050565b60008060006060848603121561111957600080fd5b600061112786828701611075565b935050602061113886828701611075565b92505060406111498682870161108a565b9150509250925092565b6000806040838503121561116657600080fd5b600061117485828601611075565b92505060206111858582860161108a565b9150509250929050565b611198816115a2565b82525050565b6111a7816115b4565b82525050565b60006111b882611530565b6111c2818561153b565b93506111d28185602086016115f7565b6111db816116ba565b840191505092915050565b60006111f360238361153b565b91506111fe826116cb565b604082019050919050565b600061121660268361153b565b91506112218261171a565b604082019050919050565b600061123960228361153b565b915061124482611769565b604082019050919050565b600061125c601d8361153b565b9150611267826117b8565b602082019050919050565b600061127f60268361153b565b915061128a826117e1565b604082019050919050565b60006112a260208361153b565b91506112ad82611830565b602082019050919050565b60006112c560258361153b565b91506112d082611859565b604082019050919050565b60006112e860248361153b565b91506112f3826118a8565b604082019050919050565b600061130b60258361153b565b9150611316826118f7565b604082019050919050565b600061132e601f8361153b565b915061133982611946565b602082019050919050565b61134d816115e0565b82525050565b61135c816115ea565b82525050565b6000602082019050611377600083018461118f565b92915050565b6000602082019050611392600083018461119e565b92915050565b600060208201905081810360008301526113b281846111ad565b905092915050565b600060208201905081810360008301526113d3816111e6565b9050919050565b600060208201905081810360008301526113f381611209565b9050919050565b600060208201905081810360008301526114138161122c565b9050919050565b600060208201905081810360008301526114338161124f565b9050919050565b6000602082019050818103600083015261145381611272565b9050919050565b6000602082019050818103600083015261147381611295565b9050919050565b60006020820190508181036000830152611493816112b8565b9050919050565b600060208201905081810360008301526114b3816112db565b9050919050565b600060208201905081810360008301526114d3816112fe565b9050919050565b600060208201905081810360008301526114f381611321565b9050919050565b600060208201905061150f6000830184611344565b92915050565b600060208201905061152a6000830184611353565b92915050565b600081519050919050565b600082825260208201905092915050565b6000611557826115e0565b9150611562836115e0565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156115975761159661165c565b5b828201905092915050565b60006115ad826115c0565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156116155780820151818401526020810190506115fa565b83811115611624576000848401525b50505050565b6000600282049050600182168061164257607f821691505b602082108114156116565761165561168b565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b611978816115a2565b811461198357600080fd5b50565b61198f816115e0565b811461199a57600080fd5b5056fea2646970667358221220823fe64a2dcd3a3e16bd9c2330b1cba836399b24d441c894d8daf83910be8ff364736f6c63430008030033 \ No newline at end of file diff --git a/build/ERC721Sample.bin b/build/ERC721Sample.bin index cc10587..0a6816d 100644 --- a/build/ERC721Sample.bin +++ b/build/ERC721Sample.bin @@ -1 +1 @@ -60806040523480156200001157600080fd5b506040516200385038038062003850833981810160405281019062000037919062000285565b818181600090805190602001906200005192919062000163565b5080600190805190602001906200006a92919062000163565b5050506200008d620000816200009560201b60201c565b6200009d60201b60201c565b505062000468565b600033905090565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b82805462000171906200038d565b90600052602060002090601f016020900481019282620001955760008555620001e1565b82601f10620001b057805160ff1916838001178555620001e1565b82800160010185558215620001e1579182015b82811115620001e0578251825591602001919060010190620001c3565b5b509050620001f09190620001f4565b5090565b5b808211156200020f576000816000905550600101620001f5565b5090565b60006200022a620002248462000321565b620002f8565b9050828152602081018484840111156200024357600080fd5b6200025084828562000357565b509392505050565b600082601f8301126200026a57600080fd5b81516200027c84826020860162000213565b91505092915050565b600080604083850312156200029957600080fd5b600083015167ffffffffffffffff811115620002b457600080fd5b620002c28582860162000258565b925050602083015167ffffffffffffffff811115620002e057600080fd5b620002ee8582860162000258565b9150509250929050565b60006200030462000317565b9050620003128282620003c3565b919050565b6000604051905090565b600067ffffffffffffffff8211156200033f576200033e62000428565b5b6200034a8262000457565b9050602081019050919050565b60005b83811015620003775780820151818401526020810190506200035a565b8381111562000387576000848401525b50505050565b60006002820490506001821680620003a657607f821691505b60208210811415620003bd57620003bc620003f9565b5b50919050565b620003ce8262000457565b810181811067ffffffffffffffff82111715620003f057620003ef62000428565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b6133d880620004786000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c806370a08231116100ad578063b88d4fde11610071578063b88d4fde14610343578063c87b56dd1461035f578063e985e9c51461038f578063e9c2e14b146103bf578063f2fde38b146103ef5761012c565b806370a08231146102b1578063715018a6146102e15780638da5cb5b146102eb57806395d89b4114610309578063a22cb465146103275761012c565b806323b872dd116100f457806323b872dd146101e95780632f745c591461020557806342842e0e146102355780634f6ccce7146102515780636352211e146102815761012c565b806301ffc9a71461013157806306fdde0314610161578063081812fc1461017f578063095ea7b3146101af57806318160ddd146101cb575b600080fd5b61014b6004803603810190610146919061238f565b61040b565b6040516101589190612804565b60405180910390f35b610169610485565b604051610176919061281f565b60405180910390f35b610199600480360381019061019491906123e1565b610517565b6040516101a69190612774565b60405180910390f35b6101c960048036038101906101c49190612353565b61059c565b005b6101d36106b4565b6040516101e09190612a81565b60405180910390f35b61020360048036038101906101fe919061224d565b6106c1565b005b61021f600480360381019061021a9190612353565b610721565b60405161022c9190612a81565b60405180910390f35b61024f600480360381019061024a919061224d565b6107c6565b005b61026b600480360381019061026691906123e1565b6107e6565b6040516102789190612a81565b60405180910390f35b61029b600480360381019061029691906123e1565b61087d565b6040516102a89190612774565b60405180910390f35b6102cb60048036038101906102c691906121e8565b61092f565b6040516102d89190612a81565b60405180910390f35b6102e96109e7565b005b6102f3610a6f565b6040516103009190612774565b60405180910390f35b610311610a99565b60405161031e919061281f565b60405180910390f35b610341600480360381019061033c9190612317565b610b2b565b005b61035d6004803603810190610358919061229c565b610b41565b005b610379600480360381019061037491906123e1565b610ba3565b604051610386919061281f565b60405180910390f35b6103a960048036038101906103a49190612211565b610c4a565b6040516103b69190612804565b60405180910390f35b6103d960048036038101906103d491906121e8565b610cde565b6040516103e69190612a81565b60405180910390f35b610409600480360381019061040491906121e8565b610dc0565b005b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061047e575061047d82610eb8565b5b9050919050565b60606000805461049490612ca6565b80601f01602080910402602001604051908101604052809291908181526020018280546104c090612ca6565b801561050d5780601f106104e25761010080835404028352916020019161050d565b820191906000526020600020905b8154815290600101906020018083116104f057829003601f168201915b5050505050905090565b600061052282610f9a565b610561576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610558906129c1565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006105a78261087d565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610618576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060f90612a21565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610637611006565b73ffffffffffffffffffffffffffffffffffffffff161480610666575061066581610660611006565b610c4a565b5b6106a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069c90612941565b60405180910390fd5b6106af838361100e565b505050565b6000600880549050905090565b6106d26106cc611006565b826110c7565b610711576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070890612a41565b60405180910390fd5b61071c8383836111a5565b505050565b600061072c8361092f565b821061076d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076490612841565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b6107e183838360405180602001604052806000815250610b41565b505050565b60006107f06106b4565b8210610831576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082890612a61565b60405180910390fd5b6008828154811061086b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002001549050919050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610926576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091d90612981565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156109a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099790612961565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109ef611006565b73ffffffffffffffffffffffffffffffffffffffff16610a0d610a6f565b73ffffffffffffffffffffffffffffffffffffffff1614610a63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5a906129e1565b60405180910390fd5b610a6d600061140c565b565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610aa890612ca6565b80601f0160208091040260200160405190810160405280929190818152602001828054610ad490612ca6565b8015610b215780601f10610af657610100808354040283529160200191610b21565b820191906000526020600020905b815481529060010190602001808311610b0457829003601f168201915b5050505050905090565b610b3d610b36611006565b83836114d2565b5050565b610b52610b4c611006565b836110c7565b610b91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8890612a41565b60405180910390fd5b610b9d8484848461163f565b50505050565b6060610bae82610f9a565b610bed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be490612a01565b60405180910390fd5b6000610bf761169b565b90506000815111610c175760405180602001604052806000815250610c42565b80610c21846116b2565b604051602001610c32929190612750565b6040516020818303038152906040525b915050919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000610ce8611006565b73ffffffffffffffffffffffffffffffffffffffff16610d06610a6f565b73ffffffffffffffffffffffffffffffffffffffff1614610d5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d53906129e1565b60405180910390fd5b610d66600b61185f565b6000610d72600b611875565b9050610d7e8382611883565b7f926cf7568edfc999d006009720ee2cdecd12e636d81b861c1c58cdadf855673f8382604051610daf9291906127db565b60405180910390a180915050919050565b610dc8611006565b73ffffffffffffffffffffffffffffffffffffffff16610de6610a6f565b73ffffffffffffffffffffffffffffffffffffffff1614610e3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e33906129e1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610eac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea390612881565b60405180910390fd5b610eb58161140c565b50565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610f8357507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610f935750610f9282611a5d565b5b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166110818361087d565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60006110d282610f9a565b611111576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110890612921565b60405180910390fd5b600061111c8361087d565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061118b57508373ffffffffffffffffffffffffffffffffffffffff1661117384610517565b73ffffffffffffffffffffffffffffffffffffffff16145b8061119c575061119b8185610c4a565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff166111c58261087d565b73ffffffffffffffffffffffffffffffffffffffff161461121b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611212906128a1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561128b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611282906128e1565b60405180910390fd5b611296838383611ac7565b6112a160008261100e565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546112f19190612bbc565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546113489190612b35565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611407838383611bdb565b505050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611541576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153890612901565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516116329190612804565b60405180910390a3505050565b61164a8484846111a5565b61165684848484611be0565b611695576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168c90612861565b60405180910390fd5b50505050565b606060405180602001604052806000815250905090565b606060008214156116fa576040518060400160405280600181526020017f3000000000000000000000000000000000000000000000000000000000000000815250905061185a565b600082905060005b6000821461172c57808061171590612d09565b915050600a826117259190612b8b565b9150611702565b60008167ffffffffffffffff81111561176e577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156117a05781602001600182028036833780820191505090505b5090505b60008514611853576001826117b99190612bbc565b9150600a856117c89190612d52565b60306117d49190612b35565b60f81b818381518110611810577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a8561184c9190612b8b565b94506117a4565b8093505050505b919050565b6001816000016000828254019250508190555050565b600081600001549050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156118f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ea906129a1565b60405180910390fd5b6118fc81610f9a565b1561193c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611933906128c1565b60405180910390fd5b61194860008383611ac7565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546119989190612b35565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611a5960008383611bdb565b5050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b611ad2838383611d77565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611b1557611b1081611d7c565b611b54565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611b5357611b528382611dc5565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b9757611b9281611f32565b611bd6565b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611bd557611bd48282612075565b5b5b505050565b505050565b6000611c018473ffffffffffffffffffffffffffffffffffffffff166120f4565b15611d6a578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02611c2a611006565b8786866040518563ffffffff1660e01b8152600401611c4c949392919061278f565b602060405180830381600087803b158015611c6657600080fd5b505af1925050508015611c9757506040513d601f19601f82011682018060405250810190611c9491906123b8565b60015b611d1a573d8060008114611cc7576040519150601f19603f3d011682016040523d82523d6000602084013e611ccc565b606091505b50600081511415611d12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0990612861565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050611d6f565b600190505b949350505050565b505050565b6008805490506009600083815260200190815260200160002081905550600881908060018154018082558091505060019003906000526020600020016000909190919091505550565b60006001611dd28461092f565b611ddc9190612bbc565b9050600060076000848152602001908152602001600020549050818114611ec1576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816007600083815260200190815260200160002081905550505b6007600084815260200190815260200160002060009055600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b60006001600880549050611f469190612bbc565b9050600060096000848152602001908152602001600020549050600060088381548110611f9c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020015490508060088381548110611fe4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020018190555081600960008381526020019081526020016000208190555060096000858152602001908152602001600020600090556008805480612059577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b6001900381819060005260206000200160009055905550505050565b60006120808361092f565b905081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806007600084815260200190815260200160002081905550505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600061212a61212584612ac1565b612a9c565b90508281526020810184848401111561214257600080fd5b61214d848285612c64565b509392505050565b60008135905061216481613346565b92915050565b6000813590506121798161335d565b92915050565b60008135905061218e81613374565b92915050565b6000815190506121a381613374565b92915050565b600082601f8301126121ba57600080fd5b81356121ca848260208601612117565b91505092915050565b6000813590506121e28161338b565b92915050565b6000602082840312156121fa57600080fd5b600061220884828501612155565b91505092915050565b6000806040838503121561222457600080fd5b600061223285828601612155565b925050602061224385828601612155565b9150509250929050565b60008060006060848603121561226257600080fd5b600061227086828701612155565b935050602061228186828701612155565b9250506040612292868287016121d3565b9150509250925092565b600080600080608085870312156122b257600080fd5b60006122c087828801612155565b94505060206122d187828801612155565b93505060406122e2878288016121d3565b925050606085013567ffffffffffffffff8111156122ff57600080fd5b61230b878288016121a9565b91505092959194509250565b6000806040838503121561232a57600080fd5b600061233885828601612155565b92505060206123498582860161216a565b9150509250929050565b6000806040838503121561236657600080fd5b600061237485828601612155565b9250506020612385858286016121d3565b9150509250929050565b6000602082840312156123a157600080fd5b60006123af8482850161217f565b91505092915050565b6000602082840312156123ca57600080fd5b60006123d884828501612194565b91505092915050565b6000602082840312156123f357600080fd5b6000612401848285016121d3565b91505092915050565b61241381612bf0565b82525050565b61242281612c02565b82525050565b600061243382612af2565b61243d8185612b08565b935061244d818560208601612c73565b61245681612e3f565b840191505092915050565b600061246c82612afd565b6124768185612b19565b9350612486818560208601612c73565b61248f81612e3f565b840191505092915050565b60006124a582612afd565b6124af8185612b2a565b93506124bf818560208601612c73565b80840191505092915050565b60006124d8602b83612b19565b91506124e382612e50565b604082019050919050565b60006124fb603283612b19565b915061250682612e9f565b604082019050919050565b600061251e602683612b19565b915061252982612eee565b604082019050919050565b6000612541602583612b19565b915061254c82612f3d565b604082019050919050565b6000612564601c83612b19565b915061256f82612f8c565b602082019050919050565b6000612587602483612b19565b915061259282612fb5565b604082019050919050565b60006125aa601983612b19565b91506125b582613004565b602082019050919050565b60006125cd602c83612b19565b91506125d88261302d565b604082019050919050565b60006125f0603883612b19565b91506125fb8261307c565b604082019050919050565b6000612613602a83612b19565b915061261e826130cb565b604082019050919050565b6000612636602983612b19565b91506126418261311a565b604082019050919050565b6000612659602083612b19565b915061266482613169565b602082019050919050565b600061267c602c83612b19565b915061268782613192565b604082019050919050565b600061269f602083612b19565b91506126aa826131e1565b602082019050919050565b60006126c2602f83612b19565b91506126cd8261320a565b604082019050919050565b60006126e5602183612b19565b91506126f082613259565b604082019050919050565b6000612708603183612b19565b9150612713826132a8565b604082019050919050565b600061272b602c83612b19565b9150612736826132f7565b604082019050919050565b61274a81612c5a565b82525050565b600061275c828561249a565b9150612768828461249a565b91508190509392505050565b6000602082019050612789600083018461240a565b92915050565b60006080820190506127a4600083018761240a565b6127b1602083018661240a565b6127be6040830185612741565b81810360608301526127d08184612428565b905095945050505050565b60006040820190506127f0600083018561240a565b6127fd6020830184612741565b9392505050565b60006020820190506128196000830184612419565b92915050565b600060208201905081810360008301526128398184612461565b905092915050565b6000602082019050818103600083015261285a816124cb565b9050919050565b6000602082019050818103600083015261287a816124ee565b9050919050565b6000602082019050818103600083015261289a81612511565b9050919050565b600060208201905081810360008301526128ba81612534565b9050919050565b600060208201905081810360008301526128da81612557565b9050919050565b600060208201905081810360008301526128fa8161257a565b9050919050565b6000602082019050818103600083015261291a8161259d565b9050919050565b6000602082019050818103600083015261293a816125c0565b9050919050565b6000602082019050818103600083015261295a816125e3565b9050919050565b6000602082019050818103600083015261297a81612606565b9050919050565b6000602082019050818103600083015261299a81612629565b9050919050565b600060208201905081810360008301526129ba8161264c565b9050919050565b600060208201905081810360008301526129da8161266f565b9050919050565b600060208201905081810360008301526129fa81612692565b9050919050565b60006020820190508181036000830152612a1a816126b5565b9050919050565b60006020820190508181036000830152612a3a816126d8565b9050919050565b60006020820190508181036000830152612a5a816126fb565b9050919050565b60006020820190508181036000830152612a7a8161271e565b9050919050565b6000602082019050612a966000830184612741565b92915050565b6000612aa6612ab7565b9050612ab28282612cd8565b919050565b6000604051905090565b600067ffffffffffffffff821115612adc57612adb612e10565b5b612ae582612e3f565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000612b4082612c5a565b9150612b4b83612c5a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612b8057612b7f612d83565b5b828201905092915050565b6000612b9682612c5a565b9150612ba183612c5a565b925082612bb157612bb0612db2565b5b828204905092915050565b6000612bc782612c5a565b9150612bd283612c5a565b925082821015612be557612be4612d83565b5b828203905092915050565b6000612bfb82612c3a565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015612c91578082015181840152602081019050612c76565b83811115612ca0576000848401525b50505050565b60006002820490506001821680612cbe57607f821691505b60208210811415612cd257612cd1612de1565b5b50919050565b612ce182612e3f565b810181811067ffffffffffffffff82111715612d0057612cff612e10565b5b80604052505050565b6000612d1482612c5a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612d4757612d46612d83565b5b600182019050919050565b6000612d5d82612c5a565b9150612d6883612c5a565b925082612d7857612d77612db2565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b61334f81612bf0565b811461335a57600080fd5b50565b61336681612c02565b811461337157600080fd5b50565b61337d81612c0e565b811461338857600080fd5b50565b61339481612c5a565b811461339f57600080fd5b5056fea26469706673582212205f344be343c63620d13cdc5ac33c67d9cd0f6f934da066fd30a7ffbb5811e23764736f6c63430008030033 \ No newline at end of file +60806040523480156200001157600080fd5b506040516200385038038062003850833981810160405281019062000037919062000285565b818181600090805190602001906200005192919062000163565b5080600190805190602001906200006a92919062000163565b5050506200008d620000816200009560201b60201c565b6200009d60201b60201c565b505062000468565b600033905090565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b82805462000171906200038d565b90600052602060002090601f016020900481019282620001955760008555620001e1565b82601f10620001b057805160ff1916838001178555620001e1565b82800160010185558215620001e1579182015b82811115620001e0578251825591602001919060010190620001c3565b5b509050620001f09190620001f4565b5090565b5b808211156200020f576000816000905550600101620001f5565b5090565b60006200022a620002248462000321565b620002f8565b9050828152602081018484840111156200024357600080fd5b6200025084828562000357565b509392505050565b600082601f8301126200026a57600080fd5b81516200027c84826020860162000213565b91505092915050565b600080604083850312156200029957600080fd5b600083015167ffffffffffffffff811115620002b457600080fd5b620002c28582860162000258565b925050602083015167ffffffffffffffff811115620002e057600080fd5b620002ee8582860162000258565b9150509250929050565b60006200030462000317565b9050620003128282620003c3565b919050565b6000604051905090565b600067ffffffffffffffff8211156200033f576200033e62000428565b5b6200034a8262000457565b9050602081019050919050565b60005b83811015620003775780820151818401526020810190506200035a565b8381111562000387576000848401525b50505050565b60006002820490506001821680620003a657607f821691505b60208210811415620003bd57620003bc620003f9565b5b50919050565b620003ce8262000457565b810181811067ffffffffffffffff82111715620003f057620003ef62000428565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b6133d880620004786000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c806370a08231116100ad578063b88d4fde11610071578063b88d4fde14610343578063c87b56dd1461035f578063e985e9c51461038f578063e9c2e14b146103bf578063f2fde38b146103ef5761012c565b806370a08231146102b1578063715018a6146102e15780638da5cb5b146102eb57806395d89b4114610309578063a22cb465146103275761012c565b806323b872dd116100f457806323b872dd146101e95780632f745c591461020557806342842e0e146102355780634f6ccce7146102515780636352211e146102815761012c565b806301ffc9a71461013157806306fdde0314610161578063081812fc1461017f578063095ea7b3146101af57806318160ddd146101cb575b600080fd5b61014b6004803603810190610146919061238f565b61040b565b6040516101589190612804565b60405180910390f35b610169610485565b604051610176919061281f565b60405180910390f35b610199600480360381019061019491906123e1565b610517565b6040516101a69190612774565b60405180910390f35b6101c960048036038101906101c49190612353565b61059c565b005b6101d36106b4565b6040516101e09190612a81565b60405180910390f35b61020360048036038101906101fe919061224d565b6106c1565b005b61021f600480360381019061021a9190612353565b610721565b60405161022c9190612a81565b60405180910390f35b61024f600480360381019061024a919061224d565b6107c6565b005b61026b600480360381019061026691906123e1565b6107e6565b6040516102789190612a81565b60405180910390f35b61029b600480360381019061029691906123e1565b61087d565b6040516102a89190612774565b60405180910390f35b6102cb60048036038101906102c691906121e8565b61092f565b6040516102d89190612a81565b60405180910390f35b6102e96109e7565b005b6102f3610a6f565b6040516103009190612774565b60405180910390f35b610311610a99565b60405161031e919061281f565b60405180910390f35b610341600480360381019061033c9190612317565b610b2b565b005b61035d6004803603810190610358919061229c565b610b41565b005b610379600480360381019061037491906123e1565b610ba3565b604051610386919061281f565b60405180910390f35b6103a960048036038101906103a49190612211565b610c4a565b6040516103b69190612804565b60405180910390f35b6103d960048036038101906103d491906121e8565b610cde565b6040516103e69190612a81565b60405180910390f35b610409600480360381019061040491906121e8565b610dc0565b005b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061047e575061047d82610eb8565b5b9050919050565b60606000805461049490612ca6565b80601f01602080910402602001604051908101604052809291908181526020018280546104c090612ca6565b801561050d5780601f106104e25761010080835404028352916020019161050d565b820191906000526020600020905b8154815290600101906020018083116104f057829003601f168201915b5050505050905090565b600061052282610f9a565b610561576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610558906129c1565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006105a78261087d565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610618576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060f90612a21565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610637611006565b73ffffffffffffffffffffffffffffffffffffffff161480610666575061066581610660611006565b610c4a565b5b6106a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069c90612941565b60405180910390fd5b6106af838361100e565b505050565b6000600880549050905090565b6106d26106cc611006565b826110c7565b610711576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070890612a41565b60405180910390fd5b61071c8383836111a5565b505050565b600061072c8361092f565b821061076d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076490612841565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b6107e183838360405180602001604052806000815250610b41565b505050565b60006107f06106b4565b8210610831576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082890612a61565b60405180910390fd5b6008828154811061086b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90600052602060002001549050919050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610926576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091d90612981565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156109a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099790612961565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109ef611006565b73ffffffffffffffffffffffffffffffffffffffff16610a0d610a6f565b73ffffffffffffffffffffffffffffffffffffffff1614610a63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5a906129e1565b60405180910390fd5b610a6d600061140c565b565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610aa890612ca6565b80601f0160208091040260200160405190810160405280929190818152602001828054610ad490612ca6565b8015610b215780601f10610af657610100808354040283529160200191610b21565b820191906000526020600020905b815481529060010190602001808311610b0457829003601f168201915b5050505050905090565b610b3d610b36611006565b83836114d2565b5050565b610b52610b4c611006565b836110c7565b610b91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8890612a41565b60405180910390fd5b610b9d8484848461163f565b50505050565b6060610bae82610f9a565b610bed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be490612a01565b60405180910390fd5b6000610bf761169b565b90506000815111610c175760405180602001604052806000815250610c42565b80610c21846116b2565b604051602001610c32929190612750565b6040516020818303038152906040525b915050919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000610ce8611006565b73ffffffffffffffffffffffffffffffffffffffff16610d06610a6f565b73ffffffffffffffffffffffffffffffffffffffff1614610d5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d53906129e1565b60405180910390fd5b610d66600b61185f565b6000610d72600b611875565b9050610d7e8382611883565b7f926cf7568edfc999d006009720ee2cdecd12e636d81b861c1c58cdadf855673f8382604051610daf9291906127db565b60405180910390a180915050919050565b610dc8611006565b73ffffffffffffffffffffffffffffffffffffffff16610de6610a6f565b73ffffffffffffffffffffffffffffffffffffffff1614610e3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e33906129e1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610eac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea390612881565b60405180910390fd5b610eb58161140c565b50565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610f8357507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610f935750610f9282611a5d565b5b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166110818361087d565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60006110d282610f9a565b611111576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110890612921565b60405180910390fd5b600061111c8361087d565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061118b57508373ffffffffffffffffffffffffffffffffffffffff1661117384610517565b73ffffffffffffffffffffffffffffffffffffffff16145b8061119c575061119b8185610c4a565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff166111c58261087d565b73ffffffffffffffffffffffffffffffffffffffff161461121b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611212906128a1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561128b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611282906128e1565b60405180910390fd5b611296838383611ac7565b6112a160008261100e565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546112f19190612bbc565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546113489190612b35565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611407838383611bdb565b505050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611541576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153890612901565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516116329190612804565b60405180910390a3505050565b61164a8484846111a5565b61165684848484611be0565b611695576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168c90612861565b60405180910390fd5b50505050565b606060405180602001604052806000815250905090565b606060008214156116fa576040518060400160405280600181526020017f3000000000000000000000000000000000000000000000000000000000000000815250905061185a565b600082905060005b6000821461172c57808061171590612d09565b915050600a826117259190612b8b565b9150611702565b60008167ffffffffffffffff81111561176e577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156117a05781602001600182028036833780820191505090505b5090505b60008514611853576001826117b99190612bbc565b9150600a856117c89190612d52565b60306117d49190612b35565b60f81b818381518110611810577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a8561184c9190612b8b565b94506117a4565b8093505050505b919050565b6001816000016000828254019250508190555050565b600081600001549050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156118f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ea906129a1565b60405180910390fd5b6118fc81610f9a565b1561193c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611933906128c1565b60405180910390fd5b61194860008383611ac7565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546119989190612b35565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611a5960008383611bdb565b5050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b611ad2838383611d77565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611b1557611b1081611d7c565b611b54565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611b5357611b528382611dc5565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b9757611b9281611f32565b611bd6565b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611bd557611bd48282612075565b5b5b505050565b505050565b6000611c018473ffffffffffffffffffffffffffffffffffffffff166120f4565b15611d6a578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02611c2a611006565b8786866040518563ffffffff1660e01b8152600401611c4c949392919061278f565b602060405180830381600087803b158015611c6657600080fd5b505af1925050508015611c9757506040513d601f19601f82011682018060405250810190611c9491906123b8565b60015b611d1a573d8060008114611cc7576040519150601f19603f3d011682016040523d82523d6000602084013e611ccc565b606091505b50600081511415611d12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0990612861565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050611d6f565b600190505b949350505050565b505050565b6008805490506009600083815260200190815260200160002081905550600881908060018154018082558091505060019003906000526020600020016000909190919091505550565b60006001611dd28461092f565b611ddc9190612bbc565b9050600060076000848152602001908152602001600020549050818114611ec1576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816007600083815260200190815260200160002081905550505b6007600084815260200190815260200160002060009055600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b60006001600880549050611f469190612bbc565b9050600060096000848152602001908152602001600020549050600060088381548110611f9c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020015490508060088381548110611fe4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b906000526020600020018190555081600960008381526020019081526020016000208190555060096000858152602001908152602001600020600090556008805480612059577f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b6001900381819060005260206000200160009055905550505050565b60006120808361092f565b905081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806007600084815260200190815260200160002081905550505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600061212a61212584612ac1565b612a9c565b90508281526020810184848401111561214257600080fd5b61214d848285612c64565b509392505050565b60008135905061216481613346565b92915050565b6000813590506121798161335d565b92915050565b60008135905061218e81613374565b92915050565b6000815190506121a381613374565b92915050565b600082601f8301126121ba57600080fd5b81356121ca848260208601612117565b91505092915050565b6000813590506121e28161338b565b92915050565b6000602082840312156121fa57600080fd5b600061220884828501612155565b91505092915050565b6000806040838503121561222457600080fd5b600061223285828601612155565b925050602061224385828601612155565b9150509250929050565b60008060006060848603121561226257600080fd5b600061227086828701612155565b935050602061228186828701612155565b9250506040612292868287016121d3565b9150509250925092565b600080600080608085870312156122b257600080fd5b60006122c087828801612155565b94505060206122d187828801612155565b93505060406122e2878288016121d3565b925050606085013567ffffffffffffffff8111156122ff57600080fd5b61230b878288016121a9565b91505092959194509250565b6000806040838503121561232a57600080fd5b600061233885828601612155565b92505060206123498582860161216a565b9150509250929050565b6000806040838503121561236657600080fd5b600061237485828601612155565b9250506020612385858286016121d3565b9150509250929050565b6000602082840312156123a157600080fd5b60006123af8482850161217f565b91505092915050565b6000602082840312156123ca57600080fd5b60006123d884828501612194565b91505092915050565b6000602082840312156123f357600080fd5b6000612401848285016121d3565b91505092915050565b61241381612bf0565b82525050565b61242281612c02565b82525050565b600061243382612af2565b61243d8185612b08565b935061244d818560208601612c73565b61245681612e3f565b840191505092915050565b600061246c82612afd565b6124768185612b19565b9350612486818560208601612c73565b61248f81612e3f565b840191505092915050565b60006124a582612afd565b6124af8185612b2a565b93506124bf818560208601612c73565b80840191505092915050565b60006124d8602b83612b19565b91506124e382612e50565b604082019050919050565b60006124fb603283612b19565b915061250682612e9f565b604082019050919050565b600061251e602683612b19565b915061252982612eee565b604082019050919050565b6000612541602583612b19565b915061254c82612f3d565b604082019050919050565b6000612564601c83612b19565b915061256f82612f8c565b602082019050919050565b6000612587602483612b19565b915061259282612fb5565b604082019050919050565b60006125aa601983612b19565b91506125b582613004565b602082019050919050565b60006125cd602c83612b19565b91506125d88261302d565b604082019050919050565b60006125f0603883612b19565b91506125fb8261307c565b604082019050919050565b6000612613602a83612b19565b915061261e826130cb565b604082019050919050565b6000612636602983612b19565b91506126418261311a565b604082019050919050565b6000612659602083612b19565b915061266482613169565b602082019050919050565b600061267c602c83612b19565b915061268782613192565b604082019050919050565b600061269f602083612b19565b91506126aa826131e1565b602082019050919050565b60006126c2602f83612b19565b91506126cd8261320a565b604082019050919050565b60006126e5602183612b19565b91506126f082613259565b604082019050919050565b6000612708603183612b19565b9150612713826132a8565b604082019050919050565b600061272b602c83612b19565b9150612736826132f7565b604082019050919050565b61274a81612c5a565b82525050565b600061275c828561249a565b9150612768828461249a565b91508190509392505050565b6000602082019050612789600083018461240a565b92915050565b60006080820190506127a4600083018761240a565b6127b1602083018661240a565b6127be6040830185612741565b81810360608301526127d08184612428565b905095945050505050565b60006040820190506127f0600083018561240a565b6127fd6020830184612741565b9392505050565b60006020820190506128196000830184612419565b92915050565b600060208201905081810360008301526128398184612461565b905092915050565b6000602082019050818103600083015261285a816124cb565b9050919050565b6000602082019050818103600083015261287a816124ee565b9050919050565b6000602082019050818103600083015261289a81612511565b9050919050565b600060208201905081810360008301526128ba81612534565b9050919050565b600060208201905081810360008301526128da81612557565b9050919050565b600060208201905081810360008301526128fa8161257a565b9050919050565b6000602082019050818103600083015261291a8161259d565b9050919050565b6000602082019050818103600083015261293a816125c0565b9050919050565b6000602082019050818103600083015261295a816125e3565b9050919050565b6000602082019050818103600083015261297a81612606565b9050919050565b6000602082019050818103600083015261299a81612629565b9050919050565b600060208201905081810360008301526129ba8161264c565b9050919050565b600060208201905081810360008301526129da8161266f565b9050919050565b600060208201905081810360008301526129fa81612692565b9050919050565b60006020820190508181036000830152612a1a816126b5565b9050919050565b60006020820190508181036000830152612a3a816126d8565b9050919050565b60006020820190508181036000830152612a5a816126fb565b9050919050565b60006020820190508181036000830152612a7a8161271e565b9050919050565b6000602082019050612a966000830184612741565b92915050565b6000612aa6612ab7565b9050612ab28282612cd8565b919050565b6000604051905090565b600067ffffffffffffffff821115612adc57612adb612e10565b5b612ae582612e3f565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000612b4082612c5a565b9150612b4b83612c5a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612b8057612b7f612d83565b5b828201905092915050565b6000612b9682612c5a565b9150612ba183612c5a565b925082612bb157612bb0612db2565b5b828204905092915050565b6000612bc782612c5a565b9150612bd283612c5a565b925082821015612be557612be4612d83565b5b828203905092915050565b6000612bfb82612c3a565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015612c91578082015181840152602081019050612c76565b83811115612ca0576000848401525b50505050565b60006002820490506001821680612cbe57607f821691505b60208210811415612cd257612cd1612de1565b5b50919050565b612ce182612e3f565b810181811067ffffffffffffffff82111715612d0057612cff612e10565b5b80604052505050565b6000612d1482612c5a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612d4757612d46612d83565b5b600182019050919050565b6000612d5d82612c5a565b9150612d6883612c5a565b925082612d7857612d77612db2565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b61334f81612bf0565b811461335a57600080fd5b50565b61336681612c02565b811461337157600080fd5b50565b61337d81612c0e565b811461338857600080fd5b50565b61339481612c5a565b811461339f57600080fd5b5056fea2646970667358221220ec3e66db97f792ad60b9091805b5245b6072241fc9b7c75443af036833caa0d064736f6c63430008030033 \ No newline at end of file diff --git a/build/Union.bin b/build/Union.bin index 91f613f..e9c22b4 100644 --- a/build/Union.bin +++ b/build/Union.bin @@ -1 +1 @@ -6080604052620000146200013060201b60201c565b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200006157600080fd5b5060405162002ced38038062002ced83398181016040528101906200008791906200023c565b620000a76200009b6200015960201b60201c565b6200016160201b60201c565b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050620002b6565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008151905062000236816200029c565b92915050565b6000602082840312156200024f57600080fd5b60006200025f8482850162000225565b91505092915050565b600062000275826200027c565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b620002a78162000268565b8114620002b357600080fd5b50565b612a2780620002c66000396000f3fe6080604052600436106100a75760003560e01c8063c25f3cf611610064578063c25f3cf614610187578063d4d8f892146101ca578063d698b364146101f5578063d6b2da8e14610232578063e57bede41461026f578063f2fde38b146102ac576100a7565b806336b9f727146100ac578063715018a6146100d55780637527d5a1146100ec5780638da5cb5b14610117578063ad8f866014610142578063b9f7076f1461016b575b600080fd5b3480156100b857600080fd5b506100d360048036038101906100ce9190611e1a565b6102d5565b005b3480156100e157600080fd5b506100ea6107de565b005b3480156100f857600080fd5b50610101610866565b60405161010e9190612287565b60405180910390f35b34801561012357600080fd5b5061012c61088c565b60405161013991906121db565b60405180910390f35b34801561014e57600080fd5b5061016960048036038101906101649190611e1a565b6108b5565b005b61018560048036038101906101809190611ebe565b610ec9565b005b34801561019357600080fd5b506101ae60048036038101906101a99190611e1a565b611613565b6040516101c197969594939291906121f6565b60405180910390f35b3480156101d657600080fd5b506101df611764565b6040516101ec91906124d9565b60405180910390f35b34801561020157600080fd5b5061021c60048036038101906102179190611f5f565b611775565b60405161022991906122a2565b60405180910390f35b34801561023e57600080fd5b5061025960048036038101906102549190611e95565b6117ac565b60405161026691906121db565b60405180910390f35b34801561027b57600080fd5b5061029660048036038101906102919190611e95565b6117df565b6040516102a391906121db565b60405180910390f35b3480156102b857600080fd5b506102d360048036038101906102ce9190611e1a565b611827565b005b6102dd61191f565b73ffffffffffffffffffffffffffffffffffffffff166102fb61088c565b73ffffffffffffffffffffffffffffffffffffffff1614610351576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161034890612499565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060e00160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900460070b60070b60070b815260200160008201601c9054906101000a900460ff161515151581526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160149054906101000a900460ff1660028111156104cc577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6002811115610504577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b81526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160038201805461056e9061269c565b80601f016020809104026020016040519081016040528092919081815260200182805461059a9061269c565b80156105e75780601f106105bc576101008083540402835291602001916105e7565b820191906000526020600020905b8154815290600101906020018083116105ca57829003601f168201915b505050505081525050905060001515816040015115151461063d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610634906124b9565b60405180910390fd5b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556000820160146101000a81549067ffffffffffffffff021916905560008201601c6101000a81549060ff02191690556001820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001820160146101000a81549060ff02191690556002820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556003820160006107459190611c27565b505060036000826020015160070b60070b815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690557fd06e11c55c5f21676305517c655a0188744d3bee09361e15470276872d56a0b98160200151826060015183608001518460a001518560c001516040516107d29594939291906122bd565b60405180910390a15050565b6107e661191f565b73ffffffffffffffffffffffffffffffffffffffff1661080461088c565b73ffffffffffffffffffffffffffffffffffffffff161461085a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085190612499565b60405180910390fd5b6108646000611927565b565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6108bd61191f565b73ffffffffffffffffffffffffffffffffffffffff166108db61088c565b73ffffffffffffffffffffffffffffffffffffffff1614610931576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092890612499565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060e00160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900460070b60070b60070b815260200160008201601c9054906101000a900460ff161515151581526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160149054906101000a900460ff166002811115610aac577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6002811115610ae4577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b81526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382018054610b4e9061269c565b80601f0160208091040260200160405190810160405280929190818152602001828054610b7a9061269c565b8015610bc75780601f10610b9c57610100808354040283529160200191610bc7565b820191906000526020600020905b815481529060010190602001808311610baa57829003601f168201915b5050505050815250509050600015158160400151151514610c1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c14906124b9565b60405180910390fd5b600181604001901515908115158152505080600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548167ffffffffffffffff021916908360070b67ffffffffffffffff160217905550604082015181600001601c6101000a81548160ff02191690831515021790555060608201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060808201518160010160146101000a81548160ff02191690836002811115610d9f577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b021790555060a08201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060c0820151816003019080519060200190610e07929190611c67565b50905050610e1560056119eb565b6004816020015190806001815401808255809150506001900390600052602060002090600491828204019190066008029091909190916101000a81548167ffffffffffffffff021916908360070b67ffffffffffffffff1602179055507f19c3744c2d10eda4d05b727f02a712a414539c26678f5f988d98f9635afcac288160200151826060015183608001518460a001518560c00151604051610ebd9594939291906122bd565b60405180910390a15050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630c2fc6e3886040518263ffffffff1660e01b8152600401610f2691906122a2565b60206040518083038186803b158015610f3e57600080fd5b505afa158015610f52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f769190611e43565b90503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610fe6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fdd906123d9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600360008860070b60070b815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461108e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108590612459565b60405180910390fd5b84600360008860070b60070b815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006110f28585611a01565b9050600115158115151461113b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113290612479565b60405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166348dc15616040518163ffffffff1660e01b815260040160206040518083038186803b1580156111a357600080fd5b505afa1580156111b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111db9190611f88565b6001819055506040518060e001604052803373ffffffffffffffffffffffffffffffffffffffff1681526020018860070b81526020016000151581526020018773ffffffffffffffffffffffffffffffffffffffff16815260200186600281111561126f577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b81526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548167ffffffffffffffff021916908360070b67ffffffffffffffff160217905550604082015181600001601c6101000a81548160ff02191690831515021790555060608201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060808201518160010160146101000a81548160ff02191690836002811115611404577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b021790555060a08201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060c082015181600301908051906020019061146c929190611c67565b509050506000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166001546040516114ba906121c6565b60006040518083038185875af1925050503d80600081146114f7576040519150601f19603f3d011682016040523d82523d6000602084013e6114fc565b606091505b5050905080611540576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153790612419565b60405180910390fd5b6001543414611584576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157b90612439565b60405180910390fd5b7f0ae33dac4eb1cdcaf489d2a9a56c45d17257612cad7c531513d4e425951349e2888a898989896040516115bd96959493929190612371565b60405180910390a18760070b7fefcac77603ca996faafa29a1d72a90249e186f4a4af6ad89434b18a66b6e9cd98a89898989604051611600959493929190612317565b60405180910390a2505050505050505050565b60066020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060000160149054906101000a900460070b9080600001601c9054906101000a900460ff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160149054906101000a900460ff16908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060030180546116e19061269c565b80601f016020809104026020016040519081016040528092919081815260200182805461170d9061269c565b801561175a5780601f1061172f5761010080835404028352916020019161175a565b820191906000526020600020905b81548152906001019060200180831161173d57829003601f168201915b5050505050905087565b60006117706005611c19565b905090565b6004818154811061178557600080fd5b9060005260206000209060049182820401919006600802915054906101000a900460070b81565b60036020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600360008460070b60070b815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905080915050919050565b61182f61191f565b73ffffffffffffffffffffffffffffffffffffffff1661184d61088c565b73ffffffffffffffffffffffffffffffffffffffff16146118a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189a90612499565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611913576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190a906123f9565b60405180910390fd5b61191c81611927565b50565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001816000016000828254019250508190555050565b6000600280811115611a3c577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b836002811115611a75577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415611b12578173ffffffffffffffffffffffffffffffffffffffff166301ffc9a763780e9d6360e01b6040518263ffffffff1660e01b8152600401611abb919061226c565b60206040518083038186803b158015611ad357600080fd5b505afa158015611ae7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b0b9190611e6c565b9050611c13565b60006002811115611b4c577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b836002811115611b85577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415611c125760128273ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015611bd357600080fd5b505afa158015611be7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c0b9190611fb1565b60ff161490505b5b92915050565b600081600001549050919050565b508054611c339061269c565b6000825580601f10611c455750611c64565b601f016020900490600052602060002090810190611c639190611ced565b5b50565b828054611c739061269c565b90600052602060002090601f016020900481019282611c955760008555611cdc565b82601f10611cae57805160ff1916838001178555611cdc565b82800160010185558215611cdc579182015b82811115611cdb578251825591602001919060010190611cc0565b5b509050611ce99190611ced565b5090565b5b80821115611d06576000816000905550600101611cee565b5090565b6000611d1d611d1884612519565b6124f4565b905082815260208101848484011115611d3557600080fd5b611d4084828561265a565b509392505050565b600081359050611d578161296e565b92915050565b600081519050611d6c8161296e565b92915050565b600081519050611d8181612985565b92915050565b600081359050611d968161299c565b92915050565b600081359050611dab816129ac565b92915050565b600082601f830112611dc257600080fd5b8135611dd2848260208601611d0a565b91505092915050565b600081359050611dea816129c3565b92915050565b600081519050611dff816129c3565b92915050565b600081519050611e14816129da565b92915050565b600060208284031215611e2c57600080fd5b6000611e3a84828501611d48565b91505092915050565b600060208284031215611e5557600080fd5b6000611e6384828501611d5d565b91505092915050565b600060208284031215611e7e57600080fd5b6000611e8c84828501611d72565b91505092915050565b600060208284031215611ea757600080fd5b6000611eb584828501611d9c565b91505092915050565b60008060008060008060c08789031215611ed757600080fd5b6000611ee589828a01611d9c565b9650506020611ef689828a01611d9c565b9550506040611f0789828a01611d48565b9450506060611f1889828a01611d87565b9350506080611f2989828a01611d48565b92505060a087013567ffffffffffffffff811115611f4657600080fd5b611f5289828a01611db1565b9150509295509295509295565b600060208284031215611f7157600080fd5b6000611f7f84828501611ddb565b91505092915050565b600060208284031215611f9a57600080fd5b6000611fa884828501611df0565b91505092915050565b600060208284031215611fc357600080fd5b6000611fd184828501611e05565b91505092915050565b611fe381612571565b82525050565b611ff281612583565b82525050565b6120018161258f565b82525050565b61201081612612565b82525050565b61201f81612636565b82525050565b61202e81612648565b82525050565b61203d816125ce565b82525050565b600061204e8261254a565b6120588185612560565b9350612068818560208601612669565b6120718161278c565b840191505092915050565b6000612089601d83612560565b91506120948261279d565b602082019050919050565b60006120ac602683612560565b91506120b7826127c6565b604082019050919050565b60006120cf601683612560565b91506120da82612815565b602082019050919050565b60006120f2601883612560565b91506120fd8261283e565b602082019050919050565b6000612115601c83612560565b915061212082612867565b602082019050919050565b6000612138602f83612560565b915061214382612890565b604082019050919050565b600061215b602083612560565b9150612166826128df565b602082019050919050565b600061217e600083612555565b915061218982612908565b600082019050919050565b60006121a1603283612560565b91506121ac8261290b565b604082019050919050565b6121c0816125fb565b82525050565b60006121d182612171565b9150819050919050565b60006020820190506121f06000830184611fda565b92915050565b600060e08201905061220b600083018a611fda565b6122186020830189612034565b6122256040830188611fe9565b6122326060830187611fda565b61223f6080830186612016565b61224c60a0830185611fda565b81810360c083015261225e8184612043565b905098975050505050505050565b60006020820190506122816000830184611ff8565b92915050565b600060208201905061229c6000830184612007565b92915050565b60006020820190506122b76000830184612034565b92915050565b600060a0820190506122d26000830188612025565b6122df6020830187611fda565b6122ec6040830186612016565b6122f96060830185611fda565b818103608083015261230b8184612043565b90509695505050505050565b600060a08201905061232c6000830188612034565b6123396020830187611fda565b6123466040830186612016565b6123536060830185611fda565b81810360808301526123658184612043565b90509695505050505050565b600060c0820190506123866000830189612034565b6123936020830188612034565b6123a06040830187611fda565b6123ad6060830186612016565b6123ba6080830185611fda565b81810360a08301526123cc8184612043565b9050979650505050505050565b600060208201905081810360008301526123f28161207c565b9050919050565b600060208201905081810360008301526124128161209f565b9050919050565b60006020820190508181036000830152612432816120c2565b9050919050565b60006020820190508181036000830152612452816120e5565b9050919050565b6000602082019050818103600083015261247281612108565b9050919050565b600060208201905081810360008301526124928161212b565b9050919050565b600060208201905081810360008301526124b28161214e565b9050919050565b600060208201905081810360008301526124d281612194565b9050919050565b60006020820190506124ee60008301846121b7565b92915050565b60006124fe61250f565b905061250a82826126ce565b919050565b6000604051905090565b600067ffffffffffffffff8211156125345761253361275d565b5b61253d8261278c565b9050602081019050919050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b600061257c826125db565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b60008190506125c98261295a565b919050565b60008160070b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061261d82612624565b9050919050565b600061262f826125db565b9050919050565b6000612641826125bb565b9050919050565b6000612653826125ce565b9050919050565b82818337600083830152505050565b60005b8381101561268757808201518184015260208101905061266c565b83811115612696576000848401525b50505050565b600060028204905060018216806126b457607f821691505b602082108114156126c8576126c761272e565b5b50919050565b6126d78261278c565b810181811067ffffffffffffffff821117156126f6576126f561275d565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f5573657220646964206e6f742072656769737472656420696e20544750000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f556e61626c6520746f207472616e736665722066656500000000000000000000600082015250565b7f50617373706f727420666565206973206e6f7420706169640000000000000000600082015250565b7f746869732063686174207467696420616c72656164792074616b656e00000000600082015250565b7f436f6e747261637420646f6573206e6f74206d61746368207769746820636f7260008201527f726573706f6e64696e6720747970650000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b50565b7f616c726561647920686173206265656e20617070726f766564204f522064696460008201527f6e2774206170706c69656420617420616c6c0000000000000000000000000000602082015250565b6003811061296b5761296a6126ff565b5b50565b61297781612571565b811461298257600080fd5b50565b61298e81612583565b811461299957600080fd5b50565b600381106129a957600080fd5b50565b6129b5816125ce565b81146129c057600080fd5b50565b6129cc816125fb565b81146129d757600080fd5b50565b6129e381612605565b81146129ee57600080fd5b5056fea2646970667358221220caaff0f320df471f78596d9cf496a8dadaecea6fac6521810373b18d7e16797264736f6c63430008030033 \ No newline at end of file +6080604052620000146200013060201b60201c565b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200006157600080fd5b5060405162002ced38038062002ced83398181016040528101906200008791906200023c565b620000a76200009b6200015960201b60201c565b6200016160201b60201c565b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050620002b6565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008151905062000236816200029c565b92915050565b6000602082840312156200024f57600080fd5b60006200025f8482850162000225565b91505092915050565b600062000275826200027c565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b620002a78162000268565b8114620002b357600080fd5b50565b612a2780620002c66000396000f3fe6080604052600436106100a75760003560e01c8063c25f3cf611610064578063c25f3cf614610187578063d4d8f892146101ca578063d698b364146101f5578063d6b2da8e14610232578063e57bede41461026f578063f2fde38b146102ac576100a7565b806336b9f727146100ac578063715018a6146100d55780637527d5a1146100ec5780638da5cb5b14610117578063ad8f866014610142578063b9f7076f1461016b575b600080fd5b3480156100b857600080fd5b506100d360048036038101906100ce9190611e1a565b6102d5565b005b3480156100e157600080fd5b506100ea6107de565b005b3480156100f857600080fd5b50610101610866565b60405161010e9190612287565b60405180910390f35b34801561012357600080fd5b5061012c61088c565b60405161013991906121db565b60405180910390f35b34801561014e57600080fd5b5061016960048036038101906101649190611e1a565b6108b5565b005b61018560048036038101906101809190611ebe565b610ec9565b005b34801561019357600080fd5b506101ae60048036038101906101a99190611e1a565b611613565b6040516101c197969594939291906121f6565b60405180910390f35b3480156101d657600080fd5b506101df611764565b6040516101ec91906124d9565b60405180910390f35b34801561020157600080fd5b5061021c60048036038101906102179190611f5f565b611775565b60405161022991906122a2565b60405180910390f35b34801561023e57600080fd5b5061025960048036038101906102549190611e95565b6117ac565b60405161026691906121db565b60405180910390f35b34801561027b57600080fd5b5061029660048036038101906102919190611e95565b6117df565b6040516102a391906121db565b60405180910390f35b3480156102b857600080fd5b506102d360048036038101906102ce9190611e1a565b611827565b005b6102dd61191f565b73ffffffffffffffffffffffffffffffffffffffff166102fb61088c565b73ffffffffffffffffffffffffffffffffffffffff1614610351576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161034890612499565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060e00160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900460070b60070b60070b815260200160008201601c9054906101000a900460ff161515151581526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160149054906101000a900460ff1660028111156104cc577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6002811115610504577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b81526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160038201805461056e9061269c565b80601f016020809104026020016040519081016040528092919081815260200182805461059a9061269c565b80156105e75780601f106105bc576101008083540402835291602001916105e7565b820191906000526020600020905b8154815290600101906020018083116105ca57829003601f168201915b505050505081525050905060001515816040015115151461063d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610634906124b9565b60405180910390fd5b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556000820160146101000a81549067ffffffffffffffff021916905560008201601c6101000a81549060ff02191690556001820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001820160146101000a81549060ff02191690556002820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556003820160006107459190611c27565b505060036000826020015160070b60070b815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690557fd06e11c55c5f21676305517c655a0188744d3bee09361e15470276872d56a0b98160200151826060015183608001518460a001518560c001516040516107d29594939291906122bd565b60405180910390a15050565b6107e661191f565b73ffffffffffffffffffffffffffffffffffffffff1661080461088c565b73ffffffffffffffffffffffffffffffffffffffff161461085a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085190612499565b60405180910390fd5b6108646000611927565b565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6108bd61191f565b73ffffffffffffffffffffffffffffffffffffffff166108db61088c565b73ffffffffffffffffffffffffffffffffffffffff1614610931576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092890612499565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060e00160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900460070b60070b60070b815260200160008201601c9054906101000a900460ff161515151581526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160149054906101000a900460ff166002811115610aac577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6002811115610ae4577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b81526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382018054610b4e9061269c565b80601f0160208091040260200160405190810160405280929190818152602001828054610b7a9061269c565b8015610bc75780601f10610b9c57610100808354040283529160200191610bc7565b820191906000526020600020905b815481529060010190602001808311610baa57829003601f168201915b5050505050815250509050600015158160400151151514610c1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c14906124b9565b60405180910390fd5b600181604001901515908115158152505080600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548167ffffffffffffffff021916908360070b67ffffffffffffffff160217905550604082015181600001601c6101000a81548160ff02191690831515021790555060608201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060808201518160010160146101000a81548160ff02191690836002811115610d9f577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b021790555060a08201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060c0820151816003019080519060200190610e07929190611c67565b50905050610e1560056119eb565b6004816020015190806001815401808255809150506001900390600052602060002090600491828204019190066008029091909190916101000a81548167ffffffffffffffff021916908360070b67ffffffffffffffff1602179055507f19c3744c2d10eda4d05b727f02a712a414539c26678f5f988d98f9635afcac288160200151826060015183608001518460a001518560c00151604051610ebd9594939291906122bd565b60405180910390a15050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630c2fc6e3886040518263ffffffff1660e01b8152600401610f2691906122a2565b60206040518083038186803b158015610f3e57600080fd5b505afa158015610f52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f769190611e43565b90503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610fe6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fdd906123d9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600360008860070b60070b815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461108e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108590612459565b60405180910390fd5b84600360008860070b60070b815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006110f28585611a01565b9050600115158115151461113b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113290612479565b60405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166348dc15616040518163ffffffff1660e01b815260040160206040518083038186803b1580156111a357600080fd5b505afa1580156111b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111db9190611f88565b6001819055506040518060e001604052803373ffffffffffffffffffffffffffffffffffffffff1681526020018860070b81526020016000151581526020018773ffffffffffffffffffffffffffffffffffffffff16815260200186600281111561126f577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b81526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548167ffffffffffffffff021916908360070b67ffffffffffffffff160217905550604082015181600001601c6101000a81548160ff02191690831515021790555060608201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060808201518160010160146101000a81548160ff02191690836002811115611404577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b021790555060a08201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060c082015181600301908051906020019061146c929190611c67565b509050506000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166001546040516114ba906121c6565b60006040518083038185875af1925050503d80600081146114f7576040519150601f19603f3d011682016040523d82523d6000602084013e6114fc565b606091505b5050905080611540576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153790612419565b60405180910390fd5b6001543414611584576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157b90612439565b60405180910390fd5b7f0ae33dac4eb1cdcaf489d2a9a56c45d17257612cad7c531513d4e425951349e2888a898989896040516115bd96959493929190612371565b60405180910390a18760070b7fefcac77603ca996faafa29a1d72a90249e186f4a4af6ad89434b18a66b6e9cd98a89898989604051611600959493929190612317565b60405180910390a2505050505050505050565b60066020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060000160149054906101000a900460070b9080600001601c9054906101000a900460ff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160149054906101000a900460ff16908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060030180546116e19061269c565b80601f016020809104026020016040519081016040528092919081815260200182805461170d9061269c565b801561175a5780601f1061172f5761010080835404028352916020019161175a565b820191906000526020600020905b81548152906001019060200180831161173d57829003601f168201915b5050505050905087565b60006117706005611c19565b905090565b6004818154811061178557600080fd5b9060005260206000209060049182820401919006600802915054906101000a900460070b81565b60036020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600360008460070b60070b815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905080915050919050565b61182f61191f565b73ffffffffffffffffffffffffffffffffffffffff1661184d61088c565b73ffffffffffffffffffffffffffffffffffffffff16146118a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189a90612499565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611913576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190a906123f9565b60405180910390fd5b61191c81611927565b50565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001816000016000828254019250508190555050565b6000600280811115611a3c577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b836002811115611a75577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415611b12578173ffffffffffffffffffffffffffffffffffffffff166301ffc9a763780e9d6360e01b6040518263ffffffff1660e01b8152600401611abb919061226c565b60206040518083038186803b158015611ad357600080fd5b505afa158015611ae7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b0b9190611e6c565b9050611c13565b60006002811115611b4c577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b836002811115611b85577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415611c125760128273ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015611bd357600080fd5b505afa158015611be7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c0b9190611fb1565b60ff161490505b5b92915050565b600081600001549050919050565b508054611c339061269c565b6000825580601f10611c455750611c64565b601f016020900490600052602060002090810190611c639190611ced565b5b50565b828054611c739061269c565b90600052602060002090601f016020900481019282611c955760008555611cdc565b82601f10611cae57805160ff1916838001178555611cdc565b82800160010185558215611cdc579182015b82811115611cdb578251825591602001919060010190611cc0565b5b509050611ce99190611ced565b5090565b5b80821115611d06576000816000905550600101611cee565b5090565b6000611d1d611d1884612519565b6124f4565b905082815260208101848484011115611d3557600080fd5b611d4084828561265a565b509392505050565b600081359050611d578161296e565b92915050565b600081519050611d6c8161296e565b92915050565b600081519050611d8181612985565b92915050565b600081359050611d968161299c565b92915050565b600081359050611dab816129ac565b92915050565b600082601f830112611dc257600080fd5b8135611dd2848260208601611d0a565b91505092915050565b600081359050611dea816129c3565b92915050565b600081519050611dff816129c3565b92915050565b600081519050611e14816129da565b92915050565b600060208284031215611e2c57600080fd5b6000611e3a84828501611d48565b91505092915050565b600060208284031215611e5557600080fd5b6000611e6384828501611d5d565b91505092915050565b600060208284031215611e7e57600080fd5b6000611e8c84828501611d72565b91505092915050565b600060208284031215611ea757600080fd5b6000611eb584828501611d9c565b91505092915050565b60008060008060008060c08789031215611ed757600080fd5b6000611ee589828a01611d9c565b9650506020611ef689828a01611d9c565b9550506040611f0789828a01611d48565b9450506060611f1889828a01611d87565b9350506080611f2989828a01611d48565b92505060a087013567ffffffffffffffff811115611f4657600080fd5b611f5289828a01611db1565b9150509295509295509295565b600060208284031215611f7157600080fd5b6000611f7f84828501611ddb565b91505092915050565b600060208284031215611f9a57600080fd5b6000611fa884828501611df0565b91505092915050565b600060208284031215611fc357600080fd5b6000611fd184828501611e05565b91505092915050565b611fe381612571565b82525050565b611ff281612583565b82525050565b6120018161258f565b82525050565b61201081612612565b82525050565b61201f81612636565b82525050565b61202e81612648565b82525050565b61203d816125ce565b82525050565b600061204e8261254a565b6120588185612560565b9350612068818560208601612669565b6120718161278c565b840191505092915050565b6000612089601d83612560565b91506120948261279d565b602082019050919050565b60006120ac602683612560565b91506120b7826127c6565b604082019050919050565b60006120cf601683612560565b91506120da82612815565b602082019050919050565b60006120f2601883612560565b91506120fd8261283e565b602082019050919050565b6000612115601c83612560565b915061212082612867565b602082019050919050565b6000612138602f83612560565b915061214382612890565b604082019050919050565b600061215b602083612560565b9150612166826128df565b602082019050919050565b600061217e600083612555565b915061218982612908565b600082019050919050565b60006121a1603283612560565b91506121ac8261290b565b604082019050919050565b6121c0816125fb565b82525050565b60006121d182612171565b9150819050919050565b60006020820190506121f06000830184611fda565b92915050565b600060e08201905061220b600083018a611fda565b6122186020830189612034565b6122256040830188611fe9565b6122326060830187611fda565b61223f6080830186612016565b61224c60a0830185611fda565b81810360c083015261225e8184612043565b905098975050505050505050565b60006020820190506122816000830184611ff8565b92915050565b600060208201905061229c6000830184612007565b92915050565b60006020820190506122b76000830184612034565b92915050565b600060a0820190506122d26000830188612025565b6122df6020830187611fda565b6122ec6040830186612016565b6122f96060830185611fda565b818103608083015261230b8184612043565b90509695505050505050565b600060a08201905061232c6000830188612034565b6123396020830187611fda565b6123466040830186612016565b6123536060830185611fda565b81810360808301526123658184612043565b90509695505050505050565b600060c0820190506123866000830189612034565b6123936020830188612034565b6123a06040830187611fda565b6123ad6060830186612016565b6123ba6080830185611fda565b81810360a08301526123cc8184612043565b9050979650505050505050565b600060208201905081810360008301526123f28161207c565b9050919050565b600060208201905081810360008301526124128161209f565b9050919050565b60006020820190508181036000830152612432816120c2565b9050919050565b60006020820190508181036000830152612452816120e5565b9050919050565b6000602082019050818103600083015261247281612108565b9050919050565b600060208201905081810360008301526124928161212b565b9050919050565b600060208201905081810360008301526124b28161214e565b9050919050565b600060208201905081810360008301526124d281612194565b9050919050565b60006020820190506124ee60008301846121b7565b92915050565b60006124fe61250f565b905061250a82826126ce565b919050565b6000604051905090565b600067ffffffffffffffff8211156125345761253361275d565b5b61253d8261278c565b9050602081019050919050565b600081519050919050565b600081905092915050565b600082825260208201905092915050565b600061257c826125db565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b60008190506125c98261295a565b919050565b60008160070b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061261d82612624565b9050919050565b600061262f826125db565b9050919050565b6000612641826125bb565b9050919050565b6000612653826125ce565b9050919050565b82818337600083830152505050565b60005b8381101561268757808201518184015260208101905061266c565b83811115612696576000848401525b50505050565b600060028204905060018216806126b457607f821691505b602082108114156126c8576126c761272e565b5b50919050565b6126d78261278c565b810181811067ffffffffffffffff821117156126f6576126f561275d565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f5573657220646964206e6f742072656769737472656420696e20544750000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f556e61626c6520746f207472616e736665722066656500000000000000000000600082015250565b7f50617373706f727420666565206973206e6f7420706169640000000000000000600082015250565b7f746869732063686174207467696420616c72656164792074616b656e00000000600082015250565b7f436f6e747261637420646f6573206e6f74206d61746368207769746820636f7260008201527f726573706f6e64696e6720747970650000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b50565b7f616c726561647920686173206265656e20617070726f766564204f522064696460008201527f6e2774206170706c69656420617420616c6c0000000000000000000000000000602082015250565b6003811061296b5761296a6126ff565b5b50565b61297781612571565b811461298257600080fd5b50565b61298e81612583565b811461299957600080fd5b50565b600381106129a957600080fd5b50565b6129b5816125ce565b81146129c057600080fd5b50565b6129cc816125fb565b81146129d757600080fd5b50565b6129e381612605565b81146129ee57600080fd5b5056fea2646970667358221220ee91be731501a5e910d404576ff0dcf7427284ab4b514dc63841020f662de50f64736f6c63430008030033 \ No newline at end of file diff --git a/contracts/Union.sol b/contracts/Union.sol index ce72ac9..43bcbe0 100644 --- a/contracts/Union.sol +++ b/contracts/Union.sol @@ -164,7 +164,7 @@ contract Union is Ownable { (success) = IERC20Metadata(votingTokenContract_).decimals() == 18; } // TODO: add check for snapshot - + } diff --git a/contracts/erc20/ERC20Sample.sol b/contracts/erc20/ERC20Sample.sol index 330e7c9..5fc9045 100644 --- a/contracts/erc20/ERC20Sample.sol +++ b/contracts/erc20/ERC20Sample.sol @@ -2,6 +2,7 @@ pragma solidity ^0.8.0; // in-direct imports + import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol"; import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; diff --git a/go/ERC20.go b/go/ERC20.go index f295051..bbdea93 100644 --- a/go/ERC20.go +++ b/go/ERC20.go @@ -30,7 +30,7 @@ var ( // TokenERC20MetaData contains all meta data concerning the TokenERC20 contract. var TokenERC20MetaData = &bind.MetaData{ - ABI: "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", + ABI: "[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"initialSupply\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]", } // TokenERC20ABI is the input ABI used to generate the binding from.