{
    "_format": "hh-sol-artifact-1",
    "contractName": "NORI",
    "sourceName": "contracts/NORI.sol",
    "abi": [
        {
            "inputs": [],
            "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": false,
                    "internalType": "uint8",
                    "name": "version",
                    "type": "uint8"
                }
            ],
            "name": "Initialized",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "account",
                    "type": "address"
                }
            ],
            "name": "Paused",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "bytes32",
                    "name": "role",
                    "type": "bytes32"
                },
                {
                    "indexed": true,
                    "internalType": "bytes32",
                    "name": "previousAdminRole",
                    "type": "bytes32"
                },
                {
                    "indexed": true,
                    "internalType": "bytes32",
                    "name": "newAdminRole",
                    "type": "bytes32"
                }
            ],
            "name": "RoleAdminChanged",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "bytes32",
                    "name": "role",
                    "type": "bytes32"
                },
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "account",
                    "type": "address"
                },
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "sender",
                    "type": "address"
                }
            ],
            "name": "RoleGranted",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "bytes32",
                    "name": "role",
                    "type": "bytes32"
                },
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "account",
                    "type": "address"
                },
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "sender",
                    "type": "address"
                }
            ],
            "name": "RoleRevoked",
            "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"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "account",
                    "type": "address"
                }
            ],
            "name": "Unpaused",
            "type": "event"
        },
        {
            "inputs": [],
            "name": "DEFAULT_ADMIN_ROLE",
            "outputs": [
                {
                    "internalType": "bytes32",
                    "name": "",
                    "type": "bytes32"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "DOMAIN_SEPARATOR",
            "outputs": [
                {
                    "internalType": "bytes32",
                    "name": "",
                    "type": "bytes32"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "PAUSER_ROLE",
            "outputs": [
                {
                    "internalType": "bytes32",
                    "name": "",
                    "type": "bytes32"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "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": [
                {
                    "internalType": "uint256",
                    "name": "amount",
                    "type": "uint256"
                }
            ],
            "name": "burn",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "account",
                    "type": "address"
                },
                {
                    "internalType": "uint256",
                    "name": "amount",
                    "type": "uint256"
                }
            ],
            "name": "burnFrom",
            "outputs": [],
            "stateMutability": "nonpayable",
            "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": "bytes32",
                    "name": "role",
                    "type": "bytes32"
                }
            ],
            "name": "getRoleAdmin",
            "outputs": [
                {
                    "internalType": "bytes32",
                    "name": "",
                    "type": "bytes32"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "role",
                    "type": "bytes32"
                },
                {
                    "internalType": "uint256",
                    "name": "index",
                    "type": "uint256"
                }
            ],
            "name": "getRoleMember",
            "outputs": [
                {
                    "internalType": "address",
                    "name": "",
                    "type": "address"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "role",
                    "type": "bytes32"
                }
            ],
            "name": "getRoleMemberCount",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "role",
                    "type": "bytes32"
                },
                {
                    "internalType": "address",
                    "name": "account",
                    "type": "address"
                }
            ],
            "name": "grantRole",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "role",
                    "type": "bytes32"
                },
                {
                    "internalType": "address",
                    "name": "account",
                    "type": "address"
                }
            ],
            "name": "hasRole",
            "outputs": [
                {
                    "internalType": "bool",
                    "name": "",
                    "type": "bool"
                }
            ],
            "stateMutability": "view",
            "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": [],
            "name": "initialize",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes[]",
                    "name": "data",
                    "type": "bytes[]"
                }
            ],
            "name": "multicall",
            "outputs": [
                {
                    "internalType": "bytes[]",
                    "name": "results",
                    "type": "bytes[]"
                }
            ],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "name",
            "outputs": [
                {
                    "internalType": "string",
                    "name": "",
                    "type": "string"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "owner",
                    "type": "address"
                }
            ],
            "name": "nonces",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "pause",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "paused",
            "outputs": [
                {
                    "internalType": "bool",
                    "name": "",
                    "type": "bool"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "owner",
                    "type": "address"
                },
                {
                    "internalType": "address",
                    "name": "spender",
                    "type": "address"
                },
                {
                    "internalType": "uint256",
                    "name": "value",
                    "type": "uint256"
                },
                {
                    "internalType": "uint256",
                    "name": "deadline",
                    "type": "uint256"
                },
                {
                    "internalType": "uint8",
                    "name": "v",
                    "type": "uint8"
                },
                {
                    "internalType": "bytes32",
                    "name": "r",
                    "type": "bytes32"
                },
                {
                    "internalType": "bytes32",
                    "name": "s",
                    "type": "bytes32"
                }
            ],
            "name": "permit",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "role",
                    "type": "bytes32"
                },
                {
                    "internalType": "address",
                    "name": "account",
                    "type": "address"
                }
            ],
            "name": "renounceRole",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "role",
                    "type": "bytes32"
                },
                {
                    "internalType": "address",
                    "name": "account",
                    "type": "address"
                }
            ],
            "name": "revokeRole",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes4",
                    "name": "interfaceId",
                    "type": "bytes4"
                }
            ],
            "name": "supportsInterface",
            "outputs": [
                {
                    "internalType": "bool",
                    "name": "",
                    "type": "bool"
                }
            ],
            "stateMutability": "view",
            "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": [],
            "name": "unpause",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        }
    ],
    "bytecode": "0x60806040523480156200001157600080fd5b50620000226200002860201b60201c565b620001d3565b600060019054906101000a900460ff16156200007b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000729062000176565b60405180910390fd5b60ff801660008054906101000a900460ff1660ff161015620000ed5760ff6000806101000a81548160ff021916908360ff1602179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860ff604051620000e49190620001b6565b60405180910390a15b565b600082825260208201905092915050565b7f496e697469616c697a61626c653a20636f6e747261637420697320696e69746960008201527f616c697a696e6700000000000000000000000000000000000000000000000000602082015250565b60006200015e602783620000ef565b91506200016b8262000100565b604082019050919050565b6000602082019050818103600083015262000191816200014f565b9050919050565b600060ff82169050919050565b620001b08162000198565b82525050565b6000602082019050620001cd6000830184620001a5565b92915050565b6148de80620001e36000396000f3fe608060405234801561001057600080fd5b50600436106101755760003560e01c806301ffc9a71461017a57806306fdde03146101aa578063095ea7b3146101c857806318160ddd146101f857806323b872dd14610216578063248a9ca3146102465780632f2ff15d14610276578063313ce567146102925780633644e515146102b057806336568abe146102ce57806339509351146102ea5780633f4ba83a1461031a57806342966c68146103245780635c975abb1461034057806370a082311461035e57806379cc67901461038e5780637ecebe00146103aa5780638129fc1c146103da5780638456cb59146103e45780639010d07c146103ee57806391d148541461041e57806395d89b411461044e578063a217fddf1461046c578063a457c2d71461048a578063a9059cbb146104ba578063ac9650d8146104ea578063ca15c8731461051a578063d505accf1461054a578063d547741f14610566578063dd62ed3e14610582578063e63ab1e9146105b2575b600080fd5b610194600480360381019061018f9190612d7a565b6105d0565b6040516101a19190612dc2565b60405180910390f35b6101b261064a565b6040516101bf9190612e6d565b60405180910390f35b6101e260048036038101906101dd9190612f23565b6106dc565b6040516101ef9190612dc2565b60405180910390f35b6102006106ff565b60405161020d9190612f72565b60405180910390f35b610230600480360381019061022b9190612f8d565b610709565b60405161023d9190612dc2565b60405180910390f35b610260600480360381019061025b9190613016565b610738565b60405161026d9190613052565b60405180910390f35b610290600480360381019061028b919061306d565b610759565b005b61029a61077a565b6040516102a791906130c9565b60405180910390f35b6102b8610783565b6040516102c59190613052565b60405180910390f35b6102e860048036038101906102e3919061306d565b610792565b005b61030460048036038101906102ff9190612f23565b610815565b6040516103119190612dc2565b60405180910390f35b61032261084c565b005b61033e600480360381019061033991906130e4565b610881565b005b610348610895565b6040516103559190612dc2565b60405180910390f35b61037860048036038101906103739190613111565b6108ad565b6040516103859190612f72565b60405180910390f35b6103a860048036038101906103a39190612f23565b6108f6565b005b6103c460048036038101906103bf9190613111565b610916565b6040516103d19190612f72565b60405180910390f35b6103e2610966565b005b6103ec610c1f565b005b6104086004803603810190610403919061313e565b610c54565b604051610415919061318d565b60405180910390f35b6104386004803603810190610433919061306d565b610c84565b6040516104459190612dc2565b60405180910390f35b610456610cf0565b6040516104639190612e6d565b60405180910390f35b610474610d82565b6040516104819190613052565b60405180910390f35b6104a4600480360381019061049f9190612f23565b610d89565b6040516104b19190612dc2565b60405180910390f35b6104d460048036038101906104cf9190612f23565b610e00565b6040516104e19190612dc2565b60405180910390f35b61050460048036038101906104ff919061320d565b610e23565b6040516105119190613371565b60405180910390f35b610534600480360381019061052f9190613016565b610f2f565b6040516105419190612f72565b60405180910390f35b610564600480360381019061055f91906133bf565b610f54565b005b610580600480360381019061057b919061306d565b611096565b005b61059c60048036038101906105979190613461565b6110b7565b6040516105a99190612f72565b60405180910390f35b6105ba61113e565b6040516105c79190613052565b60405180910390f35b60007f5a05180f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610643575061064282611162565b5b9050919050565b606060368054610659906134d0565b80601f0160208091040260200160405190810160405280929190818152602001828054610685906134d0565b80156106d25780601f106106a7576101008083540402835291602001916106d2565b820191906000526020600020905b8154815290600101906020018083116106b557829003601f168201915b5050505050905090565b6000806106e76111dc565b90506106f48185856111e4565b600191505092915050565b6000603554905090565b6000806107146111dc565b90506107218582856111fc565b61072c858585611288565b60019150509392505050565b60006101946000838152602001908152602001600020600101549050919050565b61076282610738565b61076b81611501565b6107758383611515565b505050565b60006012905090565b600061078d61152b565b905090565b61079a6111dc565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610807576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107fe90613573565b60405180910390fd5b610811828261156b565b5050565b6000806108206111dc565b905061084181858561083285896110b7565b61083c91906135c2565b6111e4565b600191505092915050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a61087681611501565b61087e611581565b50565b61089261088c6111dc565b826115e5565b50565b600061013060009054906101000a900460ff16905090565b6000603360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610908826109026111dc565b836111fc565b61091282826115e5565b5050565b600061095f60cb60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206117b4565b9050919050565b60008060019054906101000a900460ff161590508080156109975750600160008054906101000a900460ff1660ff16105b806109c457506109a6306117c2565b1580156109c35750600160008054906101000a900460ff1660ff16145b5b610a03576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109fa90613668565b60405180910390fd5b60016000806101000a81548160ff021916908360ff1602179055508015610a40576001600060016101000a81548160ff0219169083151502179055505b610a486117e5565b610a50611836565b610a58611887565b610a606118d8565b610a68611929565b610adc6040518060400160405280600481526020017f4e4f5249000000000000000000000000000000000000000000000000000000008152506040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250611996565b610b506040518060400160405280600481526020017f4e4f5249000000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f4e4f524900000000000000000000000000000000000000000000000000000000815250611a11565b610b8e6040518060400160405280600481526020017f4e4f524900000000000000000000000000000000000000000000000000000000815250611a84565b610b96611ad6565b610b9e611b27565b610ba6611bbd565b610bc3610bb16111dc565b6b019d971e4fe8401e74000000611c0e565b8015610c1c5760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024986001604051610c1391906136cd565b60405180910390a15b50565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610c4981611501565b610c51611d65565b50565b6000610c7c826101c66000868152602001908152602001600020611dc990919063ffffffff16565b905092915050565b6000610194600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b606060378054610cff906134d0565b80601f0160208091040260200160405190810160405280929190818152602001828054610d2b906134d0565b8015610d785780601f10610d4d57610100808354040283529160200191610d78565b820191906000526020600020905b815481529060010190602001808311610d5b57829003601f168201915b5050505050905090565b6000801b81565b600080610d946111dc565b90506000610da282866110b7565b905083811015610de7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dde9061375a565b60405180910390fd5b610df482868684036111e4565b60019250505092915050565b600080610e0b6111dc565b9050610e18818585611288565b600191505092915050565b60608282905067ffffffffffffffff811115610e4257610e4161377a565b5b604051908082528060200260200182016040528015610e7557816020015b6060815260200190600190039081610e605790505b50905060005b83839050811015610f2857610ef730858584818110610e9d57610e9c6137a9565b5b9050602002810190610eaf91906137e7565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611de3565b828281518110610f0a57610f096137a9565b5b60200260200101819052508080610f209061384a565b915050610e7b565b5092915050565b6000610f4d6101c66000848152602001908152602001600020611ec7565b9050919050565b83421115610f97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8e906138de565b60405180910390fd5b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9888888610fc68c611edc565b89604051602001610fdc969594939291906138fe565b6040516020818303038152906040528051906020012090506000610fff82611f3a565b9050600061100f82878787611f54565b90508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461107f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611076906139ab565b60405180910390fd5b61108a8a8a8a6111e4565b50505050505050505050565b61109f82610738565b6110a881611501565b6110b2838361156b565b505050565b6000603460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806111d557506111d482611f7f565b5b9050919050565b600033905090565b6111ec611fe9565b6111f7838383612033565b505050565b600061120884846110b7565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146112825781811015611274576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126b90613a17565b60405180910390fd5b61128184848484036111e4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ee90613aa9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611366576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135d90613b3b565b60405180910390fd5b6113718383836121fc565b6000603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156113f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ef90613bcd565b60405180910390fd5b818103603360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516114e89190612f72565b60405180910390a36114fb848484612214565b50505050565b6115128161150d6111dc565b612219565b50565b61151d611fe9565b611527828261229e565b5050565b60006115667f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6115596122d3565b6115616122dd565b6122e7565b905090565b611573611fe9565b61157d8282612321565b5050565b611589612356565b600061013060006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6115ce6111dc565b6040516115db919061318d565b60405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611654576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164b90613c5f565b60405180910390fd5b611660826000836121fc565b6000603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156116e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116de90613cf1565b60405180910390fd5b818103603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081603560008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161179b9190612f72565b60405180910390a36117af83600084612214565b505050565b600081600001549050919050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060019054906101000a900460ff16611834576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182b90613d83565b60405180910390fd5b565b600060019054906101000a900460ff16611885576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187c90613d83565b60405180910390fd5b565b600060019054906101000a900460ff166118d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cd90613d83565b60405180910390fd5b565b600060019054906101000a900460ff16611927576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191e90613d83565b60405180910390fd5b565b600060019054906101000a900460ff16611978576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196f90613d83565b60405180910390fd5b600061013060006101000a81548160ff021916908315150217905550565b600060019054906101000a900460ff166119e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119dc90613d83565b60405180910390fd5b600082805190602001209050600082805190602001209050816097819055508060988190555050505050565b600060019054906101000a900460ff16611a60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5790613d83565b60405180910390fd5b8160369081611a6f9190613f45565b508060379081611a7f9190613f45565b505050565b600060019054906101000a900460ff16611ad3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aca90613d83565b60405180910390fd5b50565b600060019054906101000a900460ff16611b25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1c90613d83565b60405180910390fd5b565b600060019054906101000a900460ff16611b76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6d90613d83565b60405180910390fd5b611b8a6000801b611b856111dc565b611515565b611bbb7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a611bb66111dc565b611515565b565b600060019054906101000a900460ff16611c0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0390613d83565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7490614063565b60405180910390fd5b611c89600083836121fc565b8060356000828254611c9b91906135c2565b9250508190555080603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d4d9190612f72565b60405180910390a3611d6160008383612214565b5050565b611d6d611fe9565b600161013060006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611db26111dc565b604051611dbf919061318d565b60405180910390a1565b6000611dd8836000018361239f565b60001c905092915050565b6060611dee836117c2565b611e2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e24906140f5565b60405180910390fd5b6000808473ffffffffffffffffffffffffffffffffffffffff1684604051611e559190614151565b600060405180830381855af49150503d8060008114611e90576040519150601f19603f3d011682016040523d82523d6000602084013e611e95565b606091505b5091509150611ebd8282604051806060016040528060278152602001614882602791396123ca565b9250505092915050565b6000611ed5826000016123ec565b9050919050565b60008060cb60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050611f29816117b4565b9150611f34816123fd565b50919050565b6000611f4d611f4761152b565b83612413565b9050919050565b6000806000611f6587878787612446565b91509150611f7281612528565b8192505050949350505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b611ff1610895565b15612031576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612028906141b4565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036120a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209990614246565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612111576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612108906142d8565b60405180910390fd5b80603460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516121ef9190612f72565b60405180910390a3505050565b612204611fe9565b61220f83838361268e565b505050565b505050565b6122238282610c84565b61229a5761223081612693565b61223e8360001c60206126c0565b60405160200161224f9291906143cc565b6040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122919190612e6d565b60405180910390fd5b5050565b6122a882826128fc565b6122ce816101c660008581526020019081526020016000206129de90919063ffffffff16565b505050565b6000609754905090565b6000609854905090565b60008383834630604051602001612302959493929190614406565b6040516020818303038152906040528051906020012090509392505050565b61232b8282612a0e565b612351816101c66000858152602001908152602001600020612af190919063ffffffff16565b505050565b61235e610895565b61239d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612394906144a5565b60405180910390fd5b565b60008260000182815481106123b7576123b66137a9565b5b9060005260206000200154905092915050565b606083156123da578290506123e5565b6123e48383612b21565b5b9392505050565b600081600001805490509050919050565b6001816000016000828254019250508190555050565b60008282604051602001612428929190614532565b60405160208183030381529060405280519060200120905092915050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08360001c111561248157600060039150915061251f565b6000600187878787604051600081526020016040526040516124a69493929190614569565b6020604051602081039080840390855afa1580156124c8573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036125165760006001925092505061251f565b80600092509250505b94509492505050565b6000600481111561253c5761253b6145ae565b5b81600481111561254f5761254e6145ae565b5b031561268b5760016004811115612569576125686145ae565b5b81600481111561257c5761257b6145ae565b5b036125bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125b390614629565b60405180910390fd5b600260048111156125d0576125cf6145ae565b5b8160048111156125e3576125e26145ae565b5b03612623576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161261a90614695565b60405180910390fd5b60036004811115612637576126366145ae565b5b81600481111561264a576126496145ae565b5b0361268a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161268190614727565b60405180910390fd5b5b50565b505050565b60606126b98273ffffffffffffffffffffffffffffffffffffffff16601460ff166126c0565b9050919050565b6060600060028360026126d39190614747565b6126dd91906135c2565b67ffffffffffffffff8111156126f6576126f561377a565b5b6040519080825280601f01601f1916602001820160405280156127285781602001600182028036833780820191505090505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106127605761275f6137a9565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106127c4576127c36137a9565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600060018460026128049190614747565b61280e91906135c2565b90505b60018111156128ae577f3031323334353637383961626364656600000000000000000000000000000000600f8616601081106128505761284f6137a9565b5b1a60f81b828281518110612867576128666137a9565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c9450806128a790614789565b9050612811565b50600084146128f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128e9906147fe565b60405180910390fd5b8091505092915050565b6129068282610c84565b6129da576001610194600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061297f6111dc565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6000612a06836000018373ffffffffffffffffffffffffffffffffffffffff1660001b612b71565b905092915050565b612a188282610c84565b15612aed576000610194600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550612a926111dc565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b6000612b19836000018373ffffffffffffffffffffffffffffffffffffffff1660001b612be1565b905092915050565b600082511115612b345781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b689190612e6d565b60405180910390fd5b6000612b7d8383612cf5565b612bd6578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050612bdb565b600090505b92915050565b60008083600101600084815260200190815260200160002054905060008114612ce9576000600182612c13919061481e565b9050600060018660000180549050612c2b919061481e565b9050818114612c9a576000866000018281548110612c4c57612c4b6137a9565b5b9060005260206000200154905080876000018481548110612c7057612c6f6137a9565b5b90600052602060002001819055508387600101600083815260200190815260200160002081905550505b85600001805480612cae57612cad614852565b5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050612cef565b60009150505b92915050565b600080836001016000848152602001908152602001600020541415905092915050565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612d5781612d22565b8114612d6257600080fd5b50565b600081359050612d7481612d4e565b92915050565b600060208284031215612d9057612d8f612d18565b5b6000612d9e84828501612d65565b91505092915050565b60008115159050919050565b612dbc81612da7565b82525050565b6000602082019050612dd76000830184612db3565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612e17578082015181840152602081019050612dfc565b60008484015250505050565b6000601f19601f8301169050919050565b6000612e3f82612ddd565b612e498185612de8565b9350612e59818560208601612df9565b612e6281612e23565b840191505092915050565b60006020820190508181036000830152612e878184612e34565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612eba82612e8f565b9050919050565b612eca81612eaf565b8114612ed557600080fd5b50565b600081359050612ee781612ec1565b92915050565b6000819050919050565b612f0081612eed565b8114612f0b57600080fd5b50565b600081359050612f1d81612ef7565b92915050565b60008060408385031215612f3a57612f39612d18565b5b6000612f4885828601612ed8565b9250506020612f5985828601612f0e565b9150509250929050565b612f6c81612eed565b82525050565b6000602082019050612f876000830184612f63565b92915050565b600080600060608486031215612fa657612fa5612d18565b5b6000612fb486828701612ed8565b9350506020612fc586828701612ed8565b9250506040612fd686828701612f0e565b9150509250925092565b6000819050919050565b612ff381612fe0565b8114612ffe57600080fd5b50565b60008135905061301081612fea565b92915050565b60006020828403121561302c5761302b612d18565b5b600061303a84828501613001565b91505092915050565b61304c81612fe0565b82525050565b60006020820190506130676000830184613043565b92915050565b6000806040838503121561308457613083612d18565b5b600061309285828601613001565b92505060206130a385828601612ed8565b9150509250929050565b600060ff82169050919050565b6130c3816130ad565b82525050565b60006020820190506130de60008301846130ba565b92915050565b6000602082840312156130fa576130f9612d18565b5b600061310884828501612f0e565b91505092915050565b60006020828403121561312757613126612d18565b5b600061313584828501612ed8565b91505092915050565b6000806040838503121561315557613154612d18565b5b600061316385828601613001565b925050602061317485828601612f0e565b9150509250929050565b61318781612eaf565b82525050565b60006020820190506131a2600083018461317e565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126131cd576131cc6131a8565b5b8235905067ffffffffffffffff8111156131ea576131e96131ad565b5b602083019150836020820283011115613206576132056131b2565b5b9250929050565b6000806020838503121561322457613223612d18565b5b600083013567ffffffffffffffff81111561324257613241612d1d565b5b61324e858286016131b7565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600081519050919050565b600082825260208201905092915050565b60006132ad82613286565b6132b78185613291565b93506132c7818560208601612df9565b6132d081612e23565b840191505092915050565b60006132e783836132a2565b905092915050565b6000602082019050919050565b60006133078261325a565b6133118185613265565b93508360208202850161332385613276565b8060005b8581101561335f578484038952815161334085826132db565b945061334b836132ef565b925060208a01995050600181019050613327565b50829750879550505050505092915050565b6000602082019050818103600083015261338b81846132fc565b905092915050565b61339c816130ad565b81146133a757600080fd5b50565b6000813590506133b981613393565b92915050565b600080600080600080600060e0888a0312156133de576133dd612d18565b5b60006133ec8a828b01612ed8565b97505060206133fd8a828b01612ed8565b965050604061340e8a828b01612f0e565b955050606061341f8a828b01612f0e565b94505060806134308a828b016133aa565b93505060a06134418a828b01613001565b92505060c06134528a828b01613001565b91505092959891949750929550565b6000806040838503121561347857613477612d18565b5b600061348685828601612ed8565b925050602061349785828601612ed8565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806134e857607f821691505b6020821081036134fb576134fa6134a1565b5b50919050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b600061355d602f83612de8565b915061356882613501565b604082019050919050565b6000602082019050818103600083015261358c81613550565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006135cd82612eed565b91506135d883612eed565b92508282019050808211156135f0576135ef613593565b5b92915050565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b6000613652602e83612de8565b915061365d826135f6565b604082019050919050565b6000602082019050818103600083015261368181613645565b9050919050565b6000819050919050565b6000819050919050565b60006136b76136b26136ad84613688565b613692565b6130ad565b9050919050565b6136c78161369c565b82525050565b60006020820190506136e260008301846136be565b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613744602583612de8565b915061374f826136e8565b604082019050919050565b6000602082019050818103600083015261377381613737565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b600080fd5b600080fd5b60008083356001602003843603038112613804576138036137d8565b5b80840192508235915067ffffffffffffffff821115613826576138256137dd565b5b602083019250600182023603831315613842576138416137e2565b5b509250929050565b600061385582612eed565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361388757613886613593565b5b600182019050919050565b7f45524332305065726d69743a206578706972656420646561646c696e65000000600082015250565b60006138c8601d83612de8565b91506138d382613892565b602082019050919050565b600060208201905081810360008301526138f7816138bb565b9050919050565b600060c0820190506139136000830189613043565b613920602083018861317e565b61392d604083018761317e565b61393a6060830186612f63565b6139476080830185612f63565b61395460a0830184612f63565b979650505050505050565b7f45524332305065726d69743a20696e76616c6964207369676e61747572650000600082015250565b6000613995601e83612de8565b91506139a08261395f565b602082019050919050565b600060208201905081810360008301526139c481613988565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613a01601d83612de8565b9150613a0c826139cb565b602082019050919050565b60006020820190508181036000830152613a30816139f4565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613a93602583612de8565b9150613a9e82613a37565b604082019050919050565b60006020820190508181036000830152613ac281613a86565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613b25602383612de8565b9150613b3082613ac9565b604082019050919050565b60006020820190508181036000830152613b5481613b18565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613bb7602683612de8565b9150613bc282613b5b565b604082019050919050565b60006020820190508181036000830152613be681613baa565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000613c49602183612de8565b9150613c5482613bed565b604082019050919050565b60006020820190508181036000830152613c7881613c3c565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000613cdb602283612de8565b9150613ce682613c7f565b604082019050919050565b60006020820190508181036000830152613d0a81613cce565b9050919050565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b6000613d6d602b83612de8565b9150613d7882613d11565b604082019050919050565b60006020820190508181036000830152613d9c81613d60565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302613e057fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613dc8565b613e0f8683613dc8565b95508019841693508086168417925050509392505050565b6000613e42613e3d613e3884612eed565b613692565b612eed565b9050919050565b6000819050919050565b613e5c83613e27565b613e70613e6882613e49565b848454613dd5565b825550505050565b600090565b613e85613e78565b613e90818484613e53565b505050565b5b81811015613eb457613ea9600082613e7d565b600181019050613e96565b5050565b601f821115613ef957613eca81613da3565b613ed384613db8565b81016020851015613ee2578190505b613ef6613eee85613db8565b830182613e95565b50505b505050565b600082821c905092915050565b6000613f1c60001984600802613efe565b1980831691505092915050565b6000613f358383613f0b565b9150826002028217905092915050565b613f4e82612ddd565b67ffffffffffffffff811115613f6757613f6661377a565b5b613f7182546134d0565b613f7c828285613eb8565b600060209050601f831160018114613faf5760008415613f9d578287015190505b613fa78582613f29565b86555061400f565b601f198416613fbd86613da3565b60005b82811015613fe557848901518255600182019150602085019450602081019050613fc0565b868310156140025784890151613ffe601f891682613f0b565b8355505b6001600288020188555050505b505050505050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600061404d601f83612de8565b915061405882614017565b602082019050919050565b6000602082019050818103600083015261407c81614040565b9050919050565b7f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60008201527f6e74726163740000000000000000000000000000000000000000000000000000602082015250565b60006140df602683612de8565b91506140ea82614083565b604082019050919050565b6000602082019050818103600083015261410e816140d2565b9050919050565b600081905092915050565b600061412b82613286565b6141358185614115565b9350614145818560208601612df9565b80840191505092915050565b600061415d8284614120565b915081905092915050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b600061419e601083612de8565b91506141a982614168565b602082019050919050565b600060208201905081810360008301526141cd81614191565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614230602483612de8565b915061423b826141d4565b604082019050919050565b6000602082019050818103600083015261425f81614223565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006142c2602283612de8565b91506142cd82614266565b604082019050919050565b600060208201905081810360008301526142f1816142b5565b9050919050565b600081905092915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b60006143396017836142f8565b915061434482614303565b601782019050919050565b600061435a82612ddd565b61436481856142f8565b9350614374818560208601612df9565b80840191505092915050565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b60006143b66011836142f8565b91506143c182614380565b601182019050919050565b60006143d78261432c565b91506143e3828561434f565b91506143ee826143a9565b91506143fa828461434f565b91508190509392505050565b600060a08201905061441b6000830188613043565b6144286020830187613043565b6144356040830186613043565b6144426060830185612f63565b61444f608083018461317e565b9695505050505050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b600061448f601483612de8565b915061449a82614459565b602082019050919050565b600060208201905081810360008301526144be81614482565b9050919050565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b60006144fb6002836142f8565b9150614506826144c5565b600282019050919050565b6000819050919050565b61452c61452782612fe0565b614511565b82525050565b600061453d826144ee565b9150614549828561451b565b602082019150614559828461451b565b6020820191508190509392505050565b600060808201905061457e6000830187613043565b61458b60208301866130ba565b6145986040830185613043565b6145a56060830184613043565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f45434453413a20696e76616c6964207369676e61747572650000000000000000600082015250565b6000614613601883612de8565b915061461e826145dd565b602082019050919050565b6000602082019050818103600083015261464281614606565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265206c656e67746800600082015250565b600061467f601f83612de8565b915061468a82614649565b602082019050919050565b600060208201905081810360008301526146ae81614672565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265202773272076616c60008201527f7565000000000000000000000000000000000000000000000000000000000000602082015250565b6000614711602283612de8565b915061471c826146b5565b604082019050919050565b6000602082019050818103600083015261474081614704565b9050919050565b600061475282612eed565b915061475d83612eed565b925082820261476b81612eed565b9150828204841483151761478257614781613593565b5b5092915050565b600061479482612eed565b9150600082036147a7576147a6613593565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b60006147e8602083612de8565b91506147f3826147b2565b602082019050919050565b60006020820190508181036000830152614817816147db565b9050919050565b600061482982612eed565b915061483483612eed565b925082820390508181111561484c5761484b613593565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203ef932a78b294b08a871675a3efb312ca17b0c31c5af9fb33100739f05d7f69764736f6c63430008110033",
    "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101755760003560e01c806301ffc9a71461017a57806306fdde03146101aa578063095ea7b3146101c857806318160ddd146101f857806323b872dd14610216578063248a9ca3146102465780632f2ff15d14610276578063313ce567146102925780633644e515146102b057806336568abe146102ce57806339509351146102ea5780633f4ba83a1461031a57806342966c68146103245780635c975abb1461034057806370a082311461035e57806379cc67901461038e5780637ecebe00146103aa5780638129fc1c146103da5780638456cb59146103e45780639010d07c146103ee57806391d148541461041e57806395d89b411461044e578063a217fddf1461046c578063a457c2d71461048a578063a9059cbb146104ba578063ac9650d8146104ea578063ca15c8731461051a578063d505accf1461054a578063d547741f14610566578063dd62ed3e14610582578063e63ab1e9146105b2575b600080fd5b610194600480360381019061018f9190612d7a565b6105d0565b6040516101a19190612dc2565b60405180910390f35b6101b261064a565b6040516101bf9190612e6d565b60405180910390f35b6101e260048036038101906101dd9190612f23565b6106dc565b6040516101ef9190612dc2565b60405180910390f35b6102006106ff565b60405161020d9190612f72565b60405180910390f35b610230600480360381019061022b9190612f8d565b610709565b60405161023d9190612dc2565b60405180910390f35b610260600480360381019061025b9190613016565b610738565b60405161026d9190613052565b60405180910390f35b610290600480360381019061028b919061306d565b610759565b005b61029a61077a565b6040516102a791906130c9565b60405180910390f35b6102b8610783565b6040516102c59190613052565b60405180910390f35b6102e860048036038101906102e3919061306d565b610792565b005b61030460048036038101906102ff9190612f23565b610815565b6040516103119190612dc2565b60405180910390f35b61032261084c565b005b61033e600480360381019061033991906130e4565b610881565b005b610348610895565b6040516103559190612dc2565b60405180910390f35b61037860048036038101906103739190613111565b6108ad565b6040516103859190612f72565b60405180910390f35b6103a860048036038101906103a39190612f23565b6108f6565b005b6103c460048036038101906103bf9190613111565b610916565b6040516103d19190612f72565b60405180910390f35b6103e2610966565b005b6103ec610c1f565b005b6104086004803603810190610403919061313e565b610c54565b604051610415919061318d565b60405180910390f35b6104386004803603810190610433919061306d565b610c84565b6040516104459190612dc2565b60405180910390f35b610456610cf0565b6040516104639190612e6d565b60405180910390f35b610474610d82565b6040516104819190613052565b60405180910390f35b6104a4600480360381019061049f9190612f23565b610d89565b6040516104b19190612dc2565b60405180910390f35b6104d460048036038101906104cf9190612f23565b610e00565b6040516104e19190612dc2565b60405180910390f35b61050460048036038101906104ff919061320d565b610e23565b6040516105119190613371565b60405180910390f35b610534600480360381019061052f9190613016565b610f2f565b6040516105419190612f72565b60405180910390f35b610564600480360381019061055f91906133bf565b610f54565b005b610580600480360381019061057b919061306d565b611096565b005b61059c60048036038101906105979190613461565b6110b7565b6040516105a99190612f72565b60405180910390f35b6105ba61113e565b6040516105c79190613052565b60405180910390f35b60007f5a05180f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610643575061064282611162565b5b9050919050565b606060368054610659906134d0565b80601f0160208091040260200160405190810160405280929190818152602001828054610685906134d0565b80156106d25780601f106106a7576101008083540402835291602001916106d2565b820191906000526020600020905b8154815290600101906020018083116106b557829003601f168201915b5050505050905090565b6000806106e76111dc565b90506106f48185856111e4565b600191505092915050565b6000603554905090565b6000806107146111dc565b90506107218582856111fc565b61072c858585611288565b60019150509392505050565b60006101946000838152602001908152602001600020600101549050919050565b61076282610738565b61076b81611501565b6107758383611515565b505050565b60006012905090565b600061078d61152b565b905090565b61079a6111dc565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610807576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107fe90613573565b60405180910390fd5b610811828261156b565b5050565b6000806108206111dc565b905061084181858561083285896110b7565b61083c91906135c2565b6111e4565b600191505092915050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a61087681611501565b61087e611581565b50565b61089261088c6111dc565b826115e5565b50565b600061013060009054906101000a900460ff16905090565b6000603360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610908826109026111dc565b836111fc565b61091282826115e5565b5050565b600061095f60cb60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206117b4565b9050919050565b60008060019054906101000a900460ff161590508080156109975750600160008054906101000a900460ff1660ff16105b806109c457506109a6306117c2565b1580156109c35750600160008054906101000a900460ff1660ff16145b5b610a03576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109fa90613668565b60405180910390fd5b60016000806101000a81548160ff021916908360ff1602179055508015610a40576001600060016101000a81548160ff0219169083151502179055505b610a486117e5565b610a50611836565b610a58611887565b610a606118d8565b610a68611929565b610adc6040518060400160405280600481526020017f4e4f5249000000000000000000000000000000000000000000000000000000008152506040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250611996565b610b506040518060400160405280600481526020017f4e4f5249000000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f4e4f524900000000000000000000000000000000000000000000000000000000815250611a11565b610b8e6040518060400160405280600481526020017f4e4f524900000000000000000000000000000000000000000000000000000000815250611a84565b610b96611ad6565b610b9e611b27565b610ba6611bbd565b610bc3610bb16111dc565b6b019d971e4fe8401e74000000611c0e565b8015610c1c5760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024986001604051610c1391906136cd565b60405180910390a15b50565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610c4981611501565b610c51611d65565b50565b6000610c7c826101c66000868152602001908152602001600020611dc990919063ffffffff16565b905092915050565b6000610194600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b606060378054610cff906134d0565b80601f0160208091040260200160405190810160405280929190818152602001828054610d2b906134d0565b8015610d785780601f10610d4d57610100808354040283529160200191610d78565b820191906000526020600020905b815481529060010190602001808311610d5b57829003601f168201915b5050505050905090565b6000801b81565b600080610d946111dc565b90506000610da282866110b7565b905083811015610de7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dde9061375a565b60405180910390fd5b610df482868684036111e4565b60019250505092915050565b600080610e0b6111dc565b9050610e18818585611288565b600191505092915050565b60608282905067ffffffffffffffff811115610e4257610e4161377a565b5b604051908082528060200260200182016040528015610e7557816020015b6060815260200190600190039081610e605790505b50905060005b83839050811015610f2857610ef730858584818110610e9d57610e9c6137a9565b5b9050602002810190610eaf91906137e7565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050611de3565b828281518110610f0a57610f096137a9565b5b60200260200101819052508080610f209061384a565b915050610e7b565b5092915050565b6000610f4d6101c66000848152602001908152602001600020611ec7565b9050919050565b83421115610f97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8e906138de565b60405180910390fd5b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9888888610fc68c611edc565b89604051602001610fdc969594939291906138fe565b6040516020818303038152906040528051906020012090506000610fff82611f3a565b9050600061100f82878787611f54565b90508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461107f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611076906139ab565b60405180910390fd5b61108a8a8a8a6111e4565b50505050505050505050565b61109f82610738565b6110a881611501565b6110b2838361156b565b505050565b6000603460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806111d557506111d482611f7f565b5b9050919050565b600033905090565b6111ec611fe9565b6111f7838383612033565b505050565b600061120884846110b7565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146112825781811015611274576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126b90613a17565b60405180910390fd5b61128184848484036111e4565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ee90613aa9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611366576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135d90613b3b565b60405180910390fd5b6113718383836121fc565b6000603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156113f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ef90613bcd565b60405180910390fd5b818103603360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516114e89190612f72565b60405180910390a36114fb848484612214565b50505050565b6115128161150d6111dc565b612219565b50565b61151d611fe9565b611527828261229e565b5050565b60006115667f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6115596122d3565b6115616122dd565b6122e7565b905090565b611573611fe9565b61157d8282612321565b5050565b611589612356565b600061013060006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6115ce6111dc565b6040516115db919061318d565b60405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611654576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164b90613c5f565b60405180910390fd5b611660826000836121fc565b6000603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156116e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116de90613cf1565b60405180910390fd5b818103603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081603560008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161179b9190612f72565b60405180910390a36117af83600084612214565b505050565b600081600001549050919050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060019054906101000a900460ff16611834576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182b90613d83565b60405180910390fd5b565b600060019054906101000a900460ff16611885576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187c90613d83565b60405180910390fd5b565b600060019054906101000a900460ff166118d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cd90613d83565b60405180910390fd5b565b600060019054906101000a900460ff16611927576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191e90613d83565b60405180910390fd5b565b600060019054906101000a900460ff16611978576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196f90613d83565b60405180910390fd5b600061013060006101000a81548160ff021916908315150217905550565b600060019054906101000a900460ff166119e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119dc90613d83565b60405180910390fd5b600082805190602001209050600082805190602001209050816097819055508060988190555050505050565b600060019054906101000a900460ff16611a60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5790613d83565b60405180910390fd5b8160369081611a6f9190613f45565b508060379081611a7f9190613f45565b505050565b600060019054906101000a900460ff16611ad3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aca90613d83565b60405180910390fd5b50565b600060019054906101000a900460ff16611b25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1c90613d83565b60405180910390fd5b565b600060019054906101000a900460ff16611b76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6d90613d83565b60405180910390fd5b611b8a6000801b611b856111dc565b611515565b611bbb7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a611bb66111dc565b611515565b565b600060019054906101000a900460ff16611c0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0390613d83565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7490614063565b60405180910390fd5b611c89600083836121fc565b8060356000828254611c9b91906135c2565b9250508190555080603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d4d9190612f72565b60405180910390a3611d6160008383612214565b5050565b611d6d611fe9565b600161013060006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611db26111dc565b604051611dbf919061318d565b60405180910390a1565b6000611dd8836000018361239f565b60001c905092915050565b6060611dee836117c2565b611e2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e24906140f5565b60405180910390fd5b6000808473ffffffffffffffffffffffffffffffffffffffff1684604051611e559190614151565b600060405180830381855af49150503d8060008114611e90576040519150601f19603f3d011682016040523d82523d6000602084013e611e95565b606091505b5091509150611ebd8282604051806060016040528060278152602001614882602791396123ca565b9250505092915050565b6000611ed5826000016123ec565b9050919050565b60008060cb60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050611f29816117b4565b9150611f34816123fd565b50919050565b6000611f4d611f4761152b565b83612413565b9050919050565b6000806000611f6587878787612446565b91509150611f7281612528565b8192505050949350505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b611ff1610895565b15612031576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612028906141b4565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036120a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209990614246565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612111576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612108906142d8565b60405180910390fd5b80603460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516121ef9190612f72565b60405180910390a3505050565b612204611fe9565b61220f83838361268e565b505050565b505050565b6122238282610c84565b61229a5761223081612693565b61223e8360001c60206126c0565b60405160200161224f9291906143cc565b6040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122919190612e6d565b60405180910390fd5b5050565b6122a882826128fc565b6122ce816101c660008581526020019081526020016000206129de90919063ffffffff16565b505050565b6000609754905090565b6000609854905090565b60008383834630604051602001612302959493929190614406565b6040516020818303038152906040528051906020012090509392505050565b61232b8282612a0e565b612351816101c66000858152602001908152602001600020612af190919063ffffffff16565b505050565b61235e610895565b61239d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612394906144a5565b60405180910390fd5b565b60008260000182815481106123b7576123b66137a9565b5b9060005260206000200154905092915050565b606083156123da578290506123e5565b6123e48383612b21565b5b9392505050565b600081600001805490509050919050565b6001816000016000828254019250508190555050565b60008282604051602001612428929190614532565b60405160208183030381529060405280519060200120905092915050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08360001c111561248157600060039150915061251f565b6000600187878787604051600081526020016040526040516124a69493929190614569565b6020604051602081039080840390855afa1580156124c8573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036125165760006001925092505061251f565b80600092509250505b94509492505050565b6000600481111561253c5761253b6145ae565b5b81600481111561254f5761254e6145ae565b5b031561268b5760016004811115612569576125686145ae565b5b81600481111561257c5761257b6145ae565b5b036125bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125b390614629565b60405180910390fd5b600260048111156125d0576125cf6145ae565b5b8160048111156125e3576125e26145ae565b5b03612623576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161261a90614695565b60405180910390fd5b60036004811115612637576126366145ae565b5b81600481111561264a576126496145ae565b5b0361268a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161268190614727565b60405180910390fd5b5b50565b505050565b60606126b98273ffffffffffffffffffffffffffffffffffffffff16601460ff166126c0565b9050919050565b6060600060028360026126d39190614747565b6126dd91906135c2565b67ffffffffffffffff8111156126f6576126f561377a565b5b6040519080825280601f01601f1916602001820160405280156127285781602001600182028036833780820191505090505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106127605761275f6137a9565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106127c4576127c36137a9565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600060018460026128049190614747565b61280e91906135c2565b90505b60018111156128ae577f3031323334353637383961626364656600000000000000000000000000000000600f8616601081106128505761284f6137a9565b5b1a60f81b828281518110612867576128666137a9565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c9450806128a790614789565b9050612811565b50600084146128f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128e9906147fe565b60405180910390fd5b8091505092915050565b6129068282610c84565b6129da576001610194600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061297f6111dc565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6000612a06836000018373ffffffffffffffffffffffffffffffffffffffff1660001b612b71565b905092915050565b612a188282610c84565b15612aed576000610194600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550612a926111dc565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b6000612b19836000018373ffffffffffffffffffffffffffffffffffffffff1660001b612be1565b905092915050565b600082511115612b345781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b689190612e6d565b60405180910390fd5b6000612b7d8383612cf5565b612bd6578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050612bdb565b600090505b92915050565b60008083600101600084815260200190815260200160002054905060008114612ce9576000600182612c13919061481e565b9050600060018660000180549050612c2b919061481e565b9050818114612c9a576000866000018281548110612c4c57612c4b6137a9565b5b9060005260206000200154905080876000018481548110612c7057612c6f6137a9565b5b90600052602060002001819055508387600101600083815260200190815260200160002081905550505b85600001805480612cae57612cad614852565b5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050612cef565b60009150505b92915050565b600080836001016000848152602001908152602001600020541415905092915050565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612d5781612d22565b8114612d6257600080fd5b50565b600081359050612d7481612d4e565b92915050565b600060208284031215612d9057612d8f612d18565b5b6000612d9e84828501612d65565b91505092915050565b60008115159050919050565b612dbc81612da7565b82525050565b6000602082019050612dd76000830184612db3565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612e17578082015181840152602081019050612dfc565b60008484015250505050565b6000601f19601f8301169050919050565b6000612e3f82612ddd565b612e498185612de8565b9350612e59818560208601612df9565b612e6281612e23565b840191505092915050565b60006020820190508181036000830152612e878184612e34565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612eba82612e8f565b9050919050565b612eca81612eaf565b8114612ed557600080fd5b50565b600081359050612ee781612ec1565b92915050565b6000819050919050565b612f0081612eed565b8114612f0b57600080fd5b50565b600081359050612f1d81612ef7565b92915050565b60008060408385031215612f3a57612f39612d18565b5b6000612f4885828601612ed8565b9250506020612f5985828601612f0e565b9150509250929050565b612f6c81612eed565b82525050565b6000602082019050612f876000830184612f63565b92915050565b600080600060608486031215612fa657612fa5612d18565b5b6000612fb486828701612ed8565b9350506020612fc586828701612ed8565b9250506040612fd686828701612f0e565b9150509250925092565b6000819050919050565b612ff381612fe0565b8114612ffe57600080fd5b50565b60008135905061301081612fea565b92915050565b60006020828403121561302c5761302b612d18565b5b600061303a84828501613001565b91505092915050565b61304c81612fe0565b82525050565b60006020820190506130676000830184613043565b92915050565b6000806040838503121561308457613083612d18565b5b600061309285828601613001565b92505060206130a385828601612ed8565b9150509250929050565b600060ff82169050919050565b6130c3816130ad565b82525050565b60006020820190506130de60008301846130ba565b92915050565b6000602082840312156130fa576130f9612d18565b5b600061310884828501612f0e565b91505092915050565b60006020828403121561312757613126612d18565b5b600061313584828501612ed8565b91505092915050565b6000806040838503121561315557613154612d18565b5b600061316385828601613001565b925050602061317485828601612f0e565b9150509250929050565b61318781612eaf565b82525050565b60006020820190506131a2600083018461317e565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126131cd576131cc6131a8565b5b8235905067ffffffffffffffff8111156131ea576131e96131ad565b5b602083019150836020820283011115613206576132056131b2565b5b9250929050565b6000806020838503121561322457613223612d18565b5b600083013567ffffffffffffffff81111561324257613241612d1d565b5b61324e858286016131b7565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600081519050919050565b600082825260208201905092915050565b60006132ad82613286565b6132b78185613291565b93506132c7818560208601612df9565b6132d081612e23565b840191505092915050565b60006132e783836132a2565b905092915050565b6000602082019050919050565b60006133078261325a565b6133118185613265565b93508360208202850161332385613276565b8060005b8581101561335f578484038952815161334085826132db565b945061334b836132ef565b925060208a01995050600181019050613327565b50829750879550505050505092915050565b6000602082019050818103600083015261338b81846132fc565b905092915050565b61339c816130ad565b81146133a757600080fd5b50565b6000813590506133b981613393565b92915050565b600080600080600080600060e0888a0312156133de576133dd612d18565b5b60006133ec8a828b01612ed8565b97505060206133fd8a828b01612ed8565b965050604061340e8a828b01612f0e565b955050606061341f8a828b01612f0e565b94505060806134308a828b016133aa565b93505060a06134418a828b01613001565b92505060c06134528a828b01613001565b91505092959891949750929550565b6000806040838503121561347857613477612d18565b5b600061348685828601612ed8565b925050602061349785828601612ed8565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806134e857607f821691505b6020821081036134fb576134fa6134a1565b5b50919050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b600061355d602f83612de8565b915061356882613501565b604082019050919050565b6000602082019050818103600083015261358c81613550565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006135cd82612eed565b91506135d883612eed565b92508282019050808211156135f0576135ef613593565b5b92915050565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b6000613652602e83612de8565b915061365d826135f6565b604082019050919050565b6000602082019050818103600083015261368181613645565b9050919050565b6000819050919050565b6000819050919050565b60006136b76136b26136ad84613688565b613692565b6130ad565b9050919050565b6136c78161369c565b82525050565b60006020820190506136e260008301846136be565b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613744602583612de8565b915061374f826136e8565b604082019050919050565b6000602082019050818103600083015261377381613737565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b600080fd5b600080fd5b60008083356001602003843603038112613804576138036137d8565b5b80840192508235915067ffffffffffffffff821115613826576138256137dd565b5b602083019250600182023603831315613842576138416137e2565b5b509250929050565b600061385582612eed565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361388757613886613593565b5b600182019050919050565b7f45524332305065726d69743a206578706972656420646561646c696e65000000600082015250565b60006138c8601d83612de8565b91506138d382613892565b602082019050919050565b600060208201905081810360008301526138f7816138bb565b9050919050565b600060c0820190506139136000830189613043565b613920602083018861317e565b61392d604083018761317e565b61393a6060830186612f63565b6139476080830185612f63565b61395460a0830184612f63565b979650505050505050565b7f45524332305065726d69743a20696e76616c6964207369676e61747572650000600082015250565b6000613995601e83612de8565b91506139a08261395f565b602082019050919050565b600060208201905081810360008301526139c481613988565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613a01601d83612de8565b9150613a0c826139cb565b602082019050919050565b60006020820190508181036000830152613a30816139f4565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613a93602583612de8565b9150613a9e82613a37565b604082019050919050565b60006020820190508181036000830152613ac281613a86565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613b25602383612de8565b9150613b3082613ac9565b604082019050919050565b60006020820190508181036000830152613b5481613b18565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613bb7602683612de8565b9150613bc282613b5b565b604082019050919050565b60006020820190508181036000830152613be681613baa565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000613c49602183612de8565b9150613c5482613bed565b604082019050919050565b60006020820190508181036000830152613c7881613c3c565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000613cdb602283612de8565b9150613ce682613c7f565b604082019050919050565b60006020820190508181036000830152613d0a81613cce565b9050919050565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b6000613d6d602b83612de8565b9150613d7882613d11565b604082019050919050565b60006020820190508181036000830152613d9c81613d60565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302613e057fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613dc8565b613e0f8683613dc8565b95508019841693508086168417925050509392505050565b6000613e42613e3d613e3884612eed565b613692565b612eed565b9050919050565b6000819050919050565b613e5c83613e27565b613e70613e6882613e49565b848454613dd5565b825550505050565b600090565b613e85613e78565b613e90818484613e53565b505050565b5b81811015613eb457613ea9600082613e7d565b600181019050613e96565b5050565b601f821115613ef957613eca81613da3565b613ed384613db8565b81016020851015613ee2578190505b613ef6613eee85613db8565b830182613e95565b50505b505050565b600082821c905092915050565b6000613f1c60001984600802613efe565b1980831691505092915050565b6000613f358383613f0b565b9150826002028217905092915050565b613f4e82612ddd565b67ffffffffffffffff811115613f6757613f6661377a565b5b613f7182546134d0565b613f7c828285613eb8565b600060209050601f831160018114613faf5760008415613f9d578287015190505b613fa78582613f29565b86555061400f565b601f198416613fbd86613da3565b60005b82811015613fe557848901518255600182019150602085019450602081019050613fc0565b868310156140025784890151613ffe601f891682613f0b565b8355505b6001600288020188555050505b505050505050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600061404d601f83612de8565b915061405882614017565b602082019050919050565b6000602082019050818103600083015261407c81614040565b9050919050565b7f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60008201527f6e74726163740000000000000000000000000000000000000000000000000000602082015250565b60006140df602683612de8565b91506140ea82614083565b604082019050919050565b6000602082019050818103600083015261410e816140d2565b9050919050565b600081905092915050565b600061412b82613286565b6141358185614115565b9350614145818560208601612df9565b80840191505092915050565b600061415d8284614120565b915081905092915050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b600061419e601083612de8565b91506141a982614168565b602082019050919050565b600060208201905081810360008301526141cd81614191565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614230602483612de8565b915061423b826141d4565b604082019050919050565b6000602082019050818103600083015261425f81614223565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006142c2602283612de8565b91506142cd82614266565b604082019050919050565b600060208201905081810360008301526142f1816142b5565b9050919050565b600081905092915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b60006143396017836142f8565b915061434482614303565b601782019050919050565b600061435a82612ddd565b61436481856142f8565b9350614374818560208601612df9565b80840191505092915050565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b60006143b66011836142f8565b91506143c182614380565b601182019050919050565b60006143d78261432c565b91506143e3828561434f565b91506143ee826143a9565b91506143fa828461434f565b91508190509392505050565b600060a08201905061441b6000830188613043565b6144286020830187613043565b6144356040830186613043565b6144426060830185612f63565b61444f608083018461317e565b9695505050505050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b600061448f601483612de8565b915061449a82614459565b602082019050919050565b600060208201905081810360008301526144be81614482565b9050919050565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b60006144fb6002836142f8565b9150614506826144c5565b600282019050919050565b6000819050919050565b61452c61452782612fe0565b614511565b82525050565b600061453d826144ee565b9150614549828561451b565b602082019150614559828461451b565b6020820191508190509392505050565b600060808201905061457e6000830187613043565b61458b60208301866130ba565b6145986040830185613043565b6145a56060830184613043565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f45434453413a20696e76616c6964207369676e61747572650000000000000000600082015250565b6000614613601883612de8565b915061461e826145dd565b602082019050919050565b6000602082019050818103600083015261464281614606565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265206c656e67746800600082015250565b600061467f601f83612de8565b915061468a82614649565b602082019050919050565b600060208201905081810360008301526146ae81614672565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265202773272076616c60008201527f7565000000000000000000000000000000000000000000000000000000000000602082015250565b6000614711602283612de8565b915061471c826146b5565b604082019050919050565b6000602082019050818103600083015261474081614704565b9050919050565b600061475282612eed565b915061475d83612eed565b925082820261476b81612eed565b9150828204841483151761478257614781613593565b5b5092915050565b600061479482612eed565b9150600082036147a7576147a6613593565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b60006147e8602083612de8565b91506147f3826147b2565b602082019050919050565b60006020820190508181036000830152614817816147db565b9050919050565b600061482982612eed565b915061483483612eed565b925082820390508181111561484c5761484b613593565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212203ef932a78b294b08a871675a3efb312ca17b0c31c5af9fb33100739f05d7f69764736f6c63430008110033",
    "linkReferences": {},
    "deployedLinkReferences": {}
}
