{
    "_format": "hh-sol-artifact-1",
    "contractName": "BridgedPolygonNORI",
    "sourceName": "contracts/BridgedPolygonNORI.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": "DEPOSITOR_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": "address",
                    "name": "user",
                    "type": "address"
                },
                {
                    "internalType": "bytes",
                    "name": "depositData",
                    "type": "bytes"
                }
            ],
            "name": "deposit",
            "outputs": [],
            "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": [
                {
                    "internalType": "address",
                    "name": "childChainManagerProxy",
                    "type": "address"
                }
            ],
            "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"
        },
        {
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "amount",
                    "type": "uint256"
                }
            ],
            "name": "withdraw",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        }
    ],
    "bytecode": "0x60806040523480156200001157600080fd5b50620000226200002860201b60201c565b620001d3565b600060019054906101000a900460ff16156200007b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000729062000176565b60405180910390fd5b60ff801660008054906101000a900460ff1660ff161015620000ed5760ff6000806101000a81548160ff021916908360ff1602179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249860ff604051620000e49190620001b6565b60405180910390a15b565b600082825260208201905092915050565b7f496e697469616c697a61626c653a20636f6e747261637420697320696e69746960008201527f616c697a696e6700000000000000000000000000000000000000000000000000602082015250565b60006200015e602783620000ef565b91506200016b8262000100565b604082019050919050565b6000602082019050818103600083015262000191816200014f565b9050919050565b600060ff82169050919050565b620001b08162000198565b82525050565b6000602082019050620001cd6000830184620001a5565b92915050565b614ab180620001e36000396000f3fe608060405234801561001057600080fd5b50600436106101965760003560e01c806301ffc9a71461019b57806306fdde03146101cb578063095ea7b3146101e957806318160ddd1461021957806323b872dd14610237578063248a9ca3146102675780632e1a7d4d146102975780632f2ff15d146102b3578063313ce567146102cf5780633644e515146102ed57806336568abe1461030b57806339509351146103275780633f4ba83a1461035757806342966c68146103615780635c975abb1461037d57806370a082311461039b57806379cc6790146103cb5780637ecebe00146103e75780638456cb59146104175780639010d07c1461042157806391d148541461045157806395d89b4114610481578063a217fddf1461049f578063a3b0b5a3146104bd578063a457c2d7146104db578063a9059cbb1461050b578063ac9650d81461053b578063c4d66de81461056b578063ca15c87314610587578063cf2c52cb146105b7578063d505accf146105d3578063d547741f146105ef578063dd62ed3e1461060b578063e63ab1e91461063b575b600080fd5b6101b560048036038101906101b09190612e97565b610659565b6040516101c29190612edf565b60405180910390f35b6101d36106d3565b6040516101e09190612f8a565b60405180910390f35b61020360048036038101906101fe9190613040565b610765565b6040516102109190612edf565b60405180910390f35b610221610788565b60405161022e919061308f565b60405180910390f35b610251600480360381019061024c91906130aa565b610792565b60405161025e9190612edf565b60405180910390f35b610281600480360381019061027c9190613133565b6107c1565b60405161028e919061316f565b60405180910390f35b6102b160048036038101906102ac919061318a565b6107e2565b005b6102cd60048036038101906102c891906131b7565b6107f6565b005b6102d7610817565b6040516102e49190613213565b60405180910390f35b6102f5610820565b604051610302919061316f565b60405180910390f35b610325600480360381019061032091906131b7565b61082f565b005b610341600480360381019061033c9190613040565b6108b2565b60405161034e9190612edf565b60405180910390f35b61035f6108e9565b005b61037b6004803603810190610376919061318a565b61091e565b005b610385610932565b6040516103929190612edf565b60405180910390f35b6103b560048036038101906103b0919061322e565b61094a565b6040516103c2919061308f565b60405180910390f35b6103e560048036038101906103e09190613040565b610993565b005b61040160048036038101906103fc919061322e565b6109b3565b60405161040e919061308f565b60405180910390f35b61041f610a03565b005b61043b6004803603810190610436919061325b565b610a38565b60405161044891906132aa565b60405180910390f35b61046b600480360381019061046691906131b7565b610a68565b6040516104789190612edf565b60405180910390f35b610489610ad4565b6040516104969190612f8a565b60405180910390f35b6104a7610b66565b6040516104b4919061316f565b60405180910390f35b6104c5610b6d565b6040516104d2919061316f565b60405180910390f35b6104f560048036038101906104f09190613040565b610b91565b6040516105029190612edf565b60405180910390f35b61052560048036038101906105209190613040565b610c08565b6040516105329190612edf565b60405180910390f35b6105556004803603810190610550919061332a565b610c2b565b604051610562919061348e565b60405180910390f35b6105856004803603810190610580919061322e565b610d37565b005b6105a1600480360381019061059c9190613133565b610ffe565b6040516105ae919061308f565b60405180910390f35b6105d160048036038101906105cc9190613506565b611023565b005b6105ed60048036038101906105e89190613592565b611071565b005b610609600480360381019061060491906131b7565b6111b3565b005b61062560048036038101906106209190613634565b6111d4565b604051610632919061308f565b60405180910390f35b61064361125b565b604051610650919061316f565b60405180910390f35b60007f5a05180f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806106cc57506106cb8261127f565b5b9050919050565b6060603680546106e2906136a3565b80601f016020809104026020016040519081016040528092919081815260200182805461070e906136a3565b801561075b5780601f106107305761010080835404028352916020019161075b565b820191906000526020600020905b81548152906001019060200180831161073e57829003601f168201915b5050505050905090565b6000806107706112f9565b905061077d818585611301565b600191505092915050565b6000603554905090565b60008061079d6112f9565b90506107aa858285611319565b6107b58585856113a5565b60019150509392505050565b60006101946000838152602001908152602001600020600101549050919050565b6107f36107ed6112f9565b8261161e565b50565b6107ff826107c1565b610808816117ed565b6108128383611801565b505050565b60006012905090565b600061082a611817565b905090565b6108376112f9565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146108a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089b90613746565b60405180910390fd5b6108ae8282611857565b5050565b6000806108bd6112f9565b90506108de8185856108cf85896111d4565b6108d99190613795565b611301565b600191505092915050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610913816117ed565b61091b61186d565b50565b61092f6109296112f9565b8261161e565b50565b600061013060009054906101000a900460ff16905090565b6000603360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109a58261099f6112f9565b83611319565b6109af828261161e565b5050565b60006109fc60cb60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206118d1565b9050919050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610a2d816117ed565b610a356118df565b50565b6000610a60826101c6600086815260200190815260200160002061194390919063ffffffff16565b905092915050565b6000610194600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b606060378054610ae3906136a3565b80601f0160208091040260200160405190810160405280929190818152602001828054610b0f906136a3565b8015610b5c5780601f10610b3157610100808354040283529160200191610b5c565b820191906000526020600020905b815481529060010190602001808311610b3f57829003601f168201915b5050505050905090565b6000801b81565b7f8f4f2da22e8ac8f11e15f9fc141cddbb5deea8800186560abb6e68c5496619a981565b600080610b9c6112f9565b90506000610baa82866111d4565b905083811015610bef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be69061383b565b60405180910390fd5b610bfc8286868403611301565b60019250505092915050565b600080610c136112f9565b9050610c208185856113a5565b600191505092915050565b60608282905067ffffffffffffffff811115610c4a57610c4961385b565b5b604051908082528060200260200182016040528015610c7d57816020015b6060815260200190600190039081610c685790505b50905060005b83839050811015610d3057610cff30858584818110610ca557610ca461388a565b5b9050602002810190610cb791906138c8565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061195d565b828281518110610d1257610d1161388a565b5b60200260200101819052508080610d289061392b565b915050610c83565b5092915050565b60008060019054906101000a900460ff16159050808015610d685750600160008054906101000a900460ff1660ff16105b80610d955750610d7730611a41565b158015610d945750600160008054906101000a900460ff1660ff16145b5b610dd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dcb906139e5565b60405180910390fd5b60016000806101000a81548160ff021916908360ff1602179055508015610e11576001600060016101000a81548160ff0219169083151502179055505b610e19611a64565b610e21611ab5565b610e29611b06565b610e31611b57565b610e39611ba8565b610ead6040518060400160405280600481526020017f4e4f5249000000000000000000000000000000000000000000000000000000008152506040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250611c15565b610f216040518060400160405280600481526020017f4e4f5249000000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f4e4f524900000000000000000000000000000000000000000000000000000000815250611c90565b610f5f6040518060400160405280600481526020017f4e4f524900000000000000000000000000000000000000000000000000000000815250611d03565b610f67611d55565b610f6f611da6565b610f77611e3c565b610fa17f8f4f2da22e8ac8f11e15f9fc141cddbb5deea8800186560abb6e68c5496619a983611801565b8015610ffa5760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024986001604051610ff19190613a4a565b60405180910390a15b5050565b600061101c6101c66000848152602001908152602001600020611e8d565b9050919050565b7f8f4f2da22e8ac8f11e15f9fc141cddbb5deea8800186560abb6e68c5496619a961104d816117ed565b6000838381019061105e919061318a565b905061106a8582611ea2565b5050505050565b834211156110b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ab90613ab1565b60405180910390fd5b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98888886110e38c611ff9565b896040516020016110f996959493929190613ad1565b604051602081830303815290604052805190602001209050600061111c82612057565b9050600061112c82878787612071565b90508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461119c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119390613b7e565b60405180910390fd5b6111a78a8a8a611301565b50505050505050505050565b6111bc826107c1565b6111c5816117ed565b6111cf8383611857565b505050565b6000603460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806112f257506112f18261209c565b5b9050919050565b600033905090565b611309612106565b611314838383612150565b505050565b600061132584846111d4565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461139f5781811015611391576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138890613bea565b60405180910390fd5b61139e8484848403611301565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611414576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140b90613c7c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611483576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147a90613d0e565b60405180910390fd5b61148e838383612319565b6000603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611515576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150c90613da0565b60405180910390fd5b818103603360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611605919061308f565b60405180910390a3611618848484612331565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361168d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168490613e32565b60405180910390fd5b61169982600083612319565b6000603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611720576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171790613ec4565b60405180910390fd5b818103603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081603560008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516117d4919061308f565b60405180910390a36117e883600084612331565b505050565b6117fe816117f96112f9565b612336565b50565b611809612106565b61181382826123bb565b5050565b60006118527f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6118456123f0565b61184d6123fa565b612404565b905090565b61185f612106565b611869828261243e565b5050565b611875612473565b600061013060006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6118ba6112f9565b6040516118c791906132aa565b60405180910390a1565b600081600001549050919050565b6118e7612106565b600161013060006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861192c6112f9565b60405161193991906132aa565b60405180910390a1565b600061195283600001836124bc565b60001c905092915050565b606061196883611a41565b6119a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199e90613f56565b60405180910390fd5b6000808473ffffffffffffffffffffffffffffffffffffffff16846040516119cf9190613fb2565b600060405180830381855af49150503d8060008114611a0a576040519150601f19603f3d011682016040523d82523d6000602084013e611a0f565b606091505b5091509150611a378282604051806060016040528060278152602001614a55602791396124e7565b9250505092915050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060019054906101000a900460ff16611ab3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aaa9061403b565b60405180910390fd5b565b600060019054906101000a900460ff16611b04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611afb9061403b565b60405180910390fd5b565b600060019054906101000a900460ff16611b55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4c9061403b565b60405180910390fd5b565b600060019054906101000a900460ff16611ba6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9d9061403b565b60405180910390fd5b565b600060019054906101000a900460ff16611bf7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bee9061403b565b60405180910390fd5b600061013060006101000a81548160ff021916908315150217905550565b600060019054906101000a900460ff16611c64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5b9061403b565b60405180910390fd5b600082805190602001209050600082805190602001209050816097819055508060988190555050505050565b600060019054906101000a900460ff16611cdf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd69061403b565b60405180910390fd5b8160369081611cee91906141fd565b508060379081611cfe91906141fd565b505050565b600060019054906101000a900460ff16611d52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d499061403b565b60405180910390fd5b50565b600060019054906101000a900460ff16611da4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9b9061403b565b60405180910390fd5b565b600060019054906101000a900460ff16611df5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dec9061403b565b60405180910390fd5b611e096000801b611e046112f9565b611801565b611e3a7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a611e356112f9565b611801565b565b600060019054906101000a900460ff16611e8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e829061403b565b60405180910390fd5b565b6000611e9b82600001612509565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611f11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f089061431b565b60405180910390fd5b611f1d60008383612319565b8060356000828254611f2f9190613795565b9250508190555080603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611fe1919061308f565b60405180910390a3611ff560008383612331565b5050565b60008060cb60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050612046816118d1565b91506120518161251a565b50919050565b600061206a612064611817565b83612530565b9050919050565b600080600061208287878787612563565b9150915061208f81612645565b8192505050949350505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b61210e610932565b1561214e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214590614387565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036121bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b690614419565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361222e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612225906144ab565b60405180910390fd5b80603460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161230c919061308f565b60405180910390a3505050565b612321612106565b61232c8383836127ab565b505050565b505050565b6123408282610a68565b6123b75761234d816127b0565b61235b8360001c60206127dd565b60405160200161236c92919061459f565b6040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ae9190612f8a565b60405180910390fd5b5050565b6123c58282612a19565b6123eb816101c66000858152602001908152602001600020612afb90919063ffffffff16565b505050565b6000609754905090565b6000609854905090565b6000838383463060405160200161241f9594939291906145d9565b6040516020818303038152906040528051906020012090509392505050565b6124488282612b2b565b61246e816101c66000858152602001908152602001600020612c0e90919063ffffffff16565b505050565b61247b610932565b6124ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124b190614678565b60405180910390fd5b565b60008260000182815481106124d4576124d361388a565b5b9060005260206000200154905092915050565b606083156124f757829050612502565b6125018383612c3e565b5b9392505050565b600081600001805490509050919050565b6001816000016000828254019250508190555050565b60008282604051602001612545929190614705565b60405160208183030381529060405280519060200120905092915050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08360001c111561259e57600060039150915061263c565b6000600187878787604051600081526020016040526040516125c3949392919061473c565b6020604051602081039080840390855afa1580156125e5573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036126335760006001925092505061263c565b80600092509250505b94509492505050565b6000600481111561265957612658614781565b5b81600481111561266c5761266b614781565b5b03156127a8576001600481111561268657612685614781565b5b81600481111561269957612698614781565b5b036126d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126d0906147fc565b60405180910390fd5b600260048111156126ed576126ec614781565b5b816004811115612700576126ff614781565b5b03612740576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161273790614868565b60405180910390fd5b6003600481111561275457612753614781565b5b81600481111561276757612766614781565b5b036127a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161279e906148fa565b60405180910390fd5b5b50565b505050565b60606127d68273ffffffffffffffffffffffffffffffffffffffff16601460ff166127dd565b9050919050565b6060600060028360026127f0919061491a565b6127fa9190613795565b67ffffffffffffffff8111156128135761281261385b565b5b6040519080825280601f01601f1916602001820160405280156128455781602001600182028036833780820191505090505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061287d5761287c61388a565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106128e1576128e061388a565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060006001846002612921919061491a565b61292b9190613795565b90505b60018111156129cb577f3031323334353637383961626364656600000000000000000000000000000000600f86166010811061296d5761296c61388a565b5b1a60f81b8282815181106129845761298361388a565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c9450806129c49061495c565b905061292e565b5060008414612a0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a06906149d1565b60405180910390fd5b8091505092915050565b612a238282610a68565b612af7576001610194600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550612a9c6112f9565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6000612b23836000018373ffffffffffffffffffffffffffffffffffffffff1660001b612c8e565b905092915050565b612b358282610a68565b15612c0a576000610194600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550612baf6112f9565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b6000612c36836000018373ffffffffffffffffffffffffffffffffffffffff1660001b612cfe565b905092915050565b600082511115612c515781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c859190612f8a565b60405180910390fd5b6000612c9a8383612e12565b612cf3578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050612cf8565b600090505b92915050565b60008083600101600084815260200190815260200160002054905060008114612e06576000600182612d3091906149f1565b9050600060018660000180549050612d4891906149f1565b9050818114612db7576000866000018281548110612d6957612d6861388a565b5b9060005260206000200154905080876000018481548110612d8d57612d8c61388a565b5b90600052602060002001819055508387600101600083815260200190815260200160002081905550505b85600001805480612dcb57612dca614a25565b5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050612e0c565b60009150505b92915050565b600080836001016000848152602001908152602001600020541415905092915050565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612e7481612e3f565b8114612e7f57600080fd5b50565b600081359050612e9181612e6b565b92915050565b600060208284031215612ead57612eac612e35565b5b6000612ebb84828501612e82565b91505092915050565b60008115159050919050565b612ed981612ec4565b82525050565b6000602082019050612ef46000830184612ed0565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612f34578082015181840152602081019050612f19565b60008484015250505050565b6000601f19601f8301169050919050565b6000612f5c82612efa565b612f668185612f05565b9350612f76818560208601612f16565b612f7f81612f40565b840191505092915050565b60006020820190508181036000830152612fa48184612f51565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612fd782612fac565b9050919050565b612fe781612fcc565b8114612ff257600080fd5b50565b60008135905061300481612fde565b92915050565b6000819050919050565b61301d8161300a565b811461302857600080fd5b50565b60008135905061303a81613014565b92915050565b6000806040838503121561305757613056612e35565b5b600061306585828601612ff5565b92505060206130768582860161302b565b9150509250929050565b6130898161300a565b82525050565b60006020820190506130a46000830184613080565b92915050565b6000806000606084860312156130c3576130c2612e35565b5b60006130d186828701612ff5565b93505060206130e286828701612ff5565b92505060406130f38682870161302b565b9150509250925092565b6000819050919050565b613110816130fd565b811461311b57600080fd5b50565b60008135905061312d81613107565b92915050565b60006020828403121561314957613148612e35565b5b60006131578482850161311e565b91505092915050565b613169816130fd565b82525050565b60006020820190506131846000830184613160565b92915050565b6000602082840312156131a05761319f612e35565b5b60006131ae8482850161302b565b91505092915050565b600080604083850312156131ce576131cd612e35565b5b60006131dc8582860161311e565b92505060206131ed85828601612ff5565b9150509250929050565b600060ff82169050919050565b61320d816131f7565b82525050565b60006020820190506132286000830184613204565b92915050565b60006020828403121561324457613243612e35565b5b600061325284828501612ff5565b91505092915050565b6000806040838503121561327257613271612e35565b5b60006132808582860161311e565b92505060206132918582860161302b565b9150509250929050565b6132a481612fcc565b82525050565b60006020820190506132bf600083018461329b565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126132ea576132e96132c5565b5b8235905067ffffffffffffffff811115613307576133066132ca565b5b602083019150836020820283011115613323576133226132cf565b5b9250929050565b6000806020838503121561334157613340612e35565b5b600083013567ffffffffffffffff81111561335f5761335e612e3a565b5b61336b858286016132d4565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600081519050919050565b600082825260208201905092915050565b60006133ca826133a3565b6133d481856133ae565b93506133e4818560208601612f16565b6133ed81612f40565b840191505092915050565b600061340483836133bf565b905092915050565b6000602082019050919050565b600061342482613377565b61342e8185613382565b93508360208202850161344085613393565b8060005b8581101561347c578484038952815161345d85826133f8565b94506134688361340c565b925060208a01995050600181019050613444565b50829750879550505050505092915050565b600060208201905081810360008301526134a88184613419565b905092915050565b60008083601f8401126134c6576134c56132c5565b5b8235905067ffffffffffffffff8111156134e3576134e26132ca565b5b6020830191508360018202830111156134ff576134fe6132cf565b5b9250929050565b60008060006040848603121561351f5761351e612e35565b5b600061352d86828701612ff5565b935050602084013567ffffffffffffffff81111561354e5761354d612e3a565b5b61355a868287016134b0565b92509250509250925092565b61356f816131f7565b811461357a57600080fd5b50565b60008135905061358c81613566565b92915050565b600080600080600080600060e0888a0312156135b1576135b0612e35565b5b60006135bf8a828b01612ff5565b97505060206135d08a828b01612ff5565b96505060406135e18a828b0161302b565b95505060606135f28a828b0161302b565b94505060806136038a828b0161357d565b93505060a06136148a828b0161311e565b92505060c06136258a828b0161311e565b91505092959891949750929550565b6000806040838503121561364b5761364a612e35565b5b600061365985828601612ff5565b925050602061366a85828601612ff5565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806136bb57607f821691505b6020821081036136ce576136cd613674565b5b50919050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b6000613730602f83612f05565b915061373b826136d4565b604082019050919050565b6000602082019050818103600083015261375f81613723565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006137a08261300a565b91506137ab8361300a565b92508282019050808211156137c3576137c2613766565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613825602583612f05565b9150613830826137c9565b604082019050919050565b6000602082019050818103600083015261385481613818565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b600080fd5b600080fd5b600080833560016020038436030381126138e5576138e46138b9565b5b80840192508235915067ffffffffffffffff821115613907576139066138be565b5b602083019250600182023603831315613923576139226138c3565b5b509250929050565b60006139368261300a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361396857613967613766565b5b600182019050919050565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b60006139cf602e83612f05565b91506139da82613973565b604082019050919050565b600060208201905081810360008301526139fe816139c2565b9050919050565b6000819050919050565b6000819050919050565b6000613a34613a2f613a2a84613a05565b613a0f565b6131f7565b9050919050565b613a4481613a19565b82525050565b6000602082019050613a5f6000830184613a3b565b92915050565b7f45524332305065726d69743a206578706972656420646561646c696e65000000600082015250565b6000613a9b601d83612f05565b9150613aa682613a65565b602082019050919050565b60006020820190508181036000830152613aca81613a8e565b9050919050565b600060c082019050613ae66000830189613160565b613af3602083018861329b565b613b00604083018761329b565b613b0d6060830186613080565b613b1a6080830185613080565b613b2760a0830184613080565b979650505050505050565b7f45524332305065726d69743a20696e76616c6964207369676e61747572650000600082015250565b6000613b68601e83612f05565b9150613b7382613b32565b602082019050919050565b60006020820190508181036000830152613b9781613b5b565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613bd4601d83612f05565b9150613bdf82613b9e565b602082019050919050565b60006020820190508181036000830152613c0381613bc7565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613c66602583612f05565b9150613c7182613c0a565b604082019050919050565b60006020820190508181036000830152613c9581613c59565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613cf8602383612f05565b9150613d0382613c9c565b604082019050919050565b60006020820190508181036000830152613d2781613ceb565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613d8a602683612f05565b9150613d9582613d2e565b604082019050919050565b60006020820190508181036000830152613db981613d7d565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000613e1c602183612f05565b9150613e2782613dc0565b604082019050919050565b60006020820190508181036000830152613e4b81613e0f565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000613eae602283612f05565b9150613eb982613e52565b604082019050919050565b60006020820190508181036000830152613edd81613ea1565b9050919050565b7f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60008201527f6e74726163740000000000000000000000000000000000000000000000000000602082015250565b6000613f40602683612f05565b9150613f4b82613ee4565b604082019050919050565b60006020820190508181036000830152613f6f81613f33565b9050919050565b600081905092915050565b6000613f8c826133a3565b613f968185613f76565b9350613fa6818560208601612f16565b80840191505092915050565b6000613fbe8284613f81565b915081905092915050565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b6000614025602b83612f05565b915061403082613fc9565b604082019050919050565b6000602082019050818103600083015261405481614018565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026140bd7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82614080565b6140c78683614080565b95508019841693508086168417925050509392505050565b60006140fa6140f56140f08461300a565b613a0f565b61300a565b9050919050565b6000819050919050565b614114836140df565b61412861412082614101565b84845461408d565b825550505050565b600090565b61413d614130565b61414881848461410b565b505050565b5b8181101561416c57614161600082614135565b60018101905061414e565b5050565b601f8211156141b1576141828161405b565b61418b84614070565b8101602085101561419a578190505b6141ae6141a685614070565b83018261414d565b50505b505050565b600082821c905092915050565b60006141d4600019846008026141b6565b1980831691505092915050565b60006141ed83836141c3565b9150826002028217905092915050565b61420682612efa565b67ffffffffffffffff81111561421f5761421e61385b565b5b61422982546136a3565b614234828285614170565b600060209050601f8311600181146142675760008415614255578287015190505b61425f85826141e1565b8655506142c7565b601f1984166142758661405b565b60005b8281101561429d57848901518255600182019150602085019450602081019050614278565b868310156142ba57848901516142b6601f8916826141c3565b8355505b6001600288020188555050505b505050505050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000614305601f83612f05565b9150614310826142cf565b602082019050919050565b60006020820190508181036000830152614334816142f8565b9050919050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b6000614371601083612f05565b915061437c8261433b565b602082019050919050565b600060208201905081810360008301526143a081614364565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614403602483612f05565b915061440e826143a7565b604082019050919050565b60006020820190508181036000830152614432816143f6565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614495602283612f05565b91506144a082614439565b604082019050919050565b600060208201905081810360008301526144c481614488565b9050919050565b600081905092915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b600061450c6017836144cb565b9150614517826144d6565b601782019050919050565b600061452d82612efa565b61453781856144cb565b9350614547818560208601612f16565b80840191505092915050565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b60006145896011836144cb565b915061459482614553565b601182019050919050565b60006145aa826144ff565b91506145b68285614522565b91506145c18261457c565b91506145cd8284614522565b91508190509392505050565b600060a0820190506145ee6000830188613160565b6145fb6020830187613160565b6146086040830186613160565b6146156060830185613080565b614622608083018461329b565b9695505050505050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b6000614662601483612f05565b915061466d8261462c565b602082019050919050565b6000602082019050818103600083015261469181614655565b9050919050565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b60006146ce6002836144cb565b91506146d982614698565b600282019050919050565b6000819050919050565b6146ff6146fa826130fd565b6146e4565b82525050565b6000614710826146c1565b915061471c82856146ee565b60208201915061472c82846146ee565b6020820191508190509392505050565b60006080820190506147516000830187613160565b61475e6020830186613204565b61476b6040830185613160565b6147786060830184613160565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f45434453413a20696e76616c6964207369676e61747572650000000000000000600082015250565b60006147e6601883612f05565b91506147f1826147b0565b602082019050919050565b60006020820190508181036000830152614815816147d9565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265206c656e67746800600082015250565b6000614852601f83612f05565b915061485d8261481c565b602082019050919050565b6000602082019050818103600083015261488181614845565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265202773272076616c60008201527f7565000000000000000000000000000000000000000000000000000000000000602082015250565b60006148e4602283612f05565b91506148ef82614888565b604082019050919050565b60006020820190508181036000830152614913816148d7565b9050919050565b60006149258261300a565b91506149308361300a565b925082820261493e8161300a565b9150828204841483151761495557614954613766565b5b5092915050565b60006149678261300a565b91506000820361497a57614979613766565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b60006149bb602083612f05565b91506149c682614985565b602082019050919050565b600060208201905081810360008301526149ea816149ae565b9050919050565b60006149fc8261300a565b9150614a078361300a565b9250828203905081811115614a1f57614a1e613766565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220b0541d1bfef76ee31fcd51e5c16d61502aee2414d6f8cd8de3c6d46147f7230c64736f6c63430008110033",
    "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101965760003560e01c806301ffc9a71461019b57806306fdde03146101cb578063095ea7b3146101e957806318160ddd1461021957806323b872dd14610237578063248a9ca3146102675780632e1a7d4d146102975780632f2ff15d146102b3578063313ce567146102cf5780633644e515146102ed57806336568abe1461030b57806339509351146103275780633f4ba83a1461035757806342966c68146103615780635c975abb1461037d57806370a082311461039b57806379cc6790146103cb5780637ecebe00146103e75780638456cb59146104175780639010d07c1461042157806391d148541461045157806395d89b4114610481578063a217fddf1461049f578063a3b0b5a3146104bd578063a457c2d7146104db578063a9059cbb1461050b578063ac9650d81461053b578063c4d66de81461056b578063ca15c87314610587578063cf2c52cb146105b7578063d505accf146105d3578063d547741f146105ef578063dd62ed3e1461060b578063e63ab1e91461063b575b600080fd5b6101b560048036038101906101b09190612e97565b610659565b6040516101c29190612edf565b60405180910390f35b6101d36106d3565b6040516101e09190612f8a565b60405180910390f35b61020360048036038101906101fe9190613040565b610765565b6040516102109190612edf565b60405180910390f35b610221610788565b60405161022e919061308f565b60405180910390f35b610251600480360381019061024c91906130aa565b610792565b60405161025e9190612edf565b60405180910390f35b610281600480360381019061027c9190613133565b6107c1565b60405161028e919061316f565b60405180910390f35b6102b160048036038101906102ac919061318a565b6107e2565b005b6102cd60048036038101906102c891906131b7565b6107f6565b005b6102d7610817565b6040516102e49190613213565b60405180910390f35b6102f5610820565b604051610302919061316f565b60405180910390f35b610325600480360381019061032091906131b7565b61082f565b005b610341600480360381019061033c9190613040565b6108b2565b60405161034e9190612edf565b60405180910390f35b61035f6108e9565b005b61037b6004803603810190610376919061318a565b61091e565b005b610385610932565b6040516103929190612edf565b60405180910390f35b6103b560048036038101906103b0919061322e565b61094a565b6040516103c2919061308f565b60405180910390f35b6103e560048036038101906103e09190613040565b610993565b005b61040160048036038101906103fc919061322e565b6109b3565b60405161040e919061308f565b60405180910390f35b61041f610a03565b005b61043b6004803603810190610436919061325b565b610a38565b60405161044891906132aa565b60405180910390f35b61046b600480360381019061046691906131b7565b610a68565b6040516104789190612edf565b60405180910390f35b610489610ad4565b6040516104969190612f8a565b60405180910390f35b6104a7610b66565b6040516104b4919061316f565b60405180910390f35b6104c5610b6d565b6040516104d2919061316f565b60405180910390f35b6104f560048036038101906104f09190613040565b610b91565b6040516105029190612edf565b60405180910390f35b61052560048036038101906105209190613040565b610c08565b6040516105329190612edf565b60405180910390f35b6105556004803603810190610550919061332a565b610c2b565b604051610562919061348e565b60405180910390f35b6105856004803603810190610580919061322e565b610d37565b005b6105a1600480360381019061059c9190613133565b610ffe565b6040516105ae919061308f565b60405180910390f35b6105d160048036038101906105cc9190613506565b611023565b005b6105ed60048036038101906105e89190613592565b611071565b005b610609600480360381019061060491906131b7565b6111b3565b005b61062560048036038101906106209190613634565b6111d4565b604051610632919061308f565b60405180910390f35b61064361125b565b604051610650919061316f565b60405180910390f35b60007f5a05180f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806106cc57506106cb8261127f565b5b9050919050565b6060603680546106e2906136a3565b80601f016020809104026020016040519081016040528092919081815260200182805461070e906136a3565b801561075b5780601f106107305761010080835404028352916020019161075b565b820191906000526020600020905b81548152906001019060200180831161073e57829003601f168201915b5050505050905090565b6000806107706112f9565b905061077d818585611301565b600191505092915050565b6000603554905090565b60008061079d6112f9565b90506107aa858285611319565b6107b58585856113a5565b60019150509392505050565b60006101946000838152602001908152602001600020600101549050919050565b6107f36107ed6112f9565b8261161e565b50565b6107ff826107c1565b610808816117ed565b6108128383611801565b505050565b60006012905090565b600061082a611817565b905090565b6108376112f9565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146108a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089b90613746565b60405180910390fd5b6108ae8282611857565b5050565b6000806108bd6112f9565b90506108de8185856108cf85896111d4565b6108d99190613795565b611301565b600191505092915050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610913816117ed565b61091b61186d565b50565b61092f6109296112f9565b8261161e565b50565b600061013060009054906101000a900460ff16905090565b6000603360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109a58261099f6112f9565b83611319565b6109af828261161e565b5050565b60006109fc60cb60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206118d1565b9050919050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610a2d816117ed565b610a356118df565b50565b6000610a60826101c6600086815260200190815260200160002061194390919063ffffffff16565b905092915050565b6000610194600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b606060378054610ae3906136a3565b80601f0160208091040260200160405190810160405280929190818152602001828054610b0f906136a3565b8015610b5c5780601f10610b3157610100808354040283529160200191610b5c565b820191906000526020600020905b815481529060010190602001808311610b3f57829003601f168201915b5050505050905090565b6000801b81565b7f8f4f2da22e8ac8f11e15f9fc141cddbb5deea8800186560abb6e68c5496619a981565b600080610b9c6112f9565b90506000610baa82866111d4565b905083811015610bef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be69061383b565b60405180910390fd5b610bfc8286868403611301565b60019250505092915050565b600080610c136112f9565b9050610c208185856113a5565b600191505092915050565b60608282905067ffffffffffffffff811115610c4a57610c4961385b565b5b604051908082528060200260200182016040528015610c7d57816020015b6060815260200190600190039081610c685790505b50905060005b83839050811015610d3057610cff30858584818110610ca557610ca461388a565b5b9050602002810190610cb791906138c8565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061195d565b828281518110610d1257610d1161388a565b5b60200260200101819052508080610d289061392b565b915050610c83565b5092915050565b60008060019054906101000a900460ff16159050808015610d685750600160008054906101000a900460ff1660ff16105b80610d955750610d7730611a41565b158015610d945750600160008054906101000a900460ff1660ff16145b5b610dd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dcb906139e5565b60405180910390fd5b60016000806101000a81548160ff021916908360ff1602179055508015610e11576001600060016101000a81548160ff0219169083151502179055505b610e19611a64565b610e21611ab5565b610e29611b06565b610e31611b57565b610e39611ba8565b610ead6040518060400160405280600481526020017f4e4f5249000000000000000000000000000000000000000000000000000000008152506040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250611c15565b610f216040518060400160405280600481526020017f4e4f5249000000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f4e4f524900000000000000000000000000000000000000000000000000000000815250611c90565b610f5f6040518060400160405280600481526020017f4e4f524900000000000000000000000000000000000000000000000000000000815250611d03565b610f67611d55565b610f6f611da6565b610f77611e3c565b610fa17f8f4f2da22e8ac8f11e15f9fc141cddbb5deea8800186560abb6e68c5496619a983611801565b8015610ffa5760008060016101000a81548160ff0219169083151502179055507f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024986001604051610ff19190613a4a565b60405180910390a15b5050565b600061101c6101c66000848152602001908152602001600020611e8d565b9050919050565b7f8f4f2da22e8ac8f11e15f9fc141cddbb5deea8800186560abb6e68c5496619a961104d816117ed565b6000838381019061105e919061318a565b905061106a8582611ea2565b5050505050565b834211156110b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ab90613ab1565b60405180910390fd5b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98888886110e38c611ff9565b896040516020016110f996959493929190613ad1565b604051602081830303815290604052805190602001209050600061111c82612057565b9050600061112c82878787612071565b90508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461119c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119390613b7e565b60405180910390fd5b6111a78a8a8a611301565b50505050505050505050565b6111bc826107c1565b6111c5816117ed565b6111cf8383611857565b505050565b6000603460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806112f257506112f18261209c565b5b9050919050565b600033905090565b611309612106565b611314838383612150565b505050565b600061132584846111d4565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461139f5781811015611391576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138890613bea565b60405180910390fd5b61139e8484848403611301565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611414576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140b90613c7c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611483576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147a90613d0e565b60405180910390fd5b61148e838383612319565b6000603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611515576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150c90613da0565b60405180910390fd5b818103603360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611605919061308f565b60405180910390a3611618848484612331565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361168d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168490613e32565b60405180910390fd5b61169982600083612319565b6000603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611720576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171790613ec4565b60405180910390fd5b818103603360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081603560008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516117d4919061308f565b60405180910390a36117e883600084612331565b505050565b6117fe816117f96112f9565b612336565b50565b611809612106565b61181382826123bb565b5050565b60006118527f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6118456123f0565b61184d6123fa565b612404565b905090565b61185f612106565b611869828261243e565b5050565b611875612473565b600061013060006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6118ba6112f9565b6040516118c791906132aa565b60405180910390a1565b600081600001549050919050565b6118e7612106565b600161013060006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861192c6112f9565b60405161193991906132aa565b60405180910390a1565b600061195283600001836124bc565b60001c905092915050565b606061196883611a41565b6119a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199e90613f56565b60405180910390fd5b6000808473ffffffffffffffffffffffffffffffffffffffff16846040516119cf9190613fb2565b600060405180830381855af49150503d8060008114611a0a576040519150601f19603f3d011682016040523d82523d6000602084013e611a0f565b606091505b5091509150611a378282604051806060016040528060278152602001614a55602791396124e7565b9250505092915050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b600060019054906101000a900460ff16611ab3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aaa9061403b565b60405180910390fd5b565b600060019054906101000a900460ff16611b04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611afb9061403b565b60405180910390fd5b565b600060019054906101000a900460ff16611b55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4c9061403b565b60405180910390fd5b565b600060019054906101000a900460ff16611ba6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9d9061403b565b60405180910390fd5b565b600060019054906101000a900460ff16611bf7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bee9061403b565b60405180910390fd5b600061013060006101000a81548160ff021916908315150217905550565b600060019054906101000a900460ff16611c64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5b9061403b565b60405180910390fd5b600082805190602001209050600082805190602001209050816097819055508060988190555050505050565b600060019054906101000a900460ff16611cdf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd69061403b565b60405180910390fd5b8160369081611cee91906141fd565b508060379081611cfe91906141fd565b505050565b600060019054906101000a900460ff16611d52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d499061403b565b60405180910390fd5b50565b600060019054906101000a900460ff16611da4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9b9061403b565b60405180910390fd5b565b600060019054906101000a900460ff16611df5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dec9061403b565b60405180910390fd5b611e096000801b611e046112f9565b611801565b611e3a7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a611e356112f9565b611801565b565b600060019054906101000a900460ff16611e8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e829061403b565b60405180910390fd5b565b6000611e9b82600001612509565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611f11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f089061431b565b60405180910390fd5b611f1d60008383612319565b8060356000828254611f2f9190613795565b9250508190555080603360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611fe1919061308f565b60405180910390a3611ff560008383612331565b5050565b60008060cb60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050612046816118d1565b91506120518161251a565b50919050565b600061206a612064611817565b83612530565b9050919050565b600080600061208287878787612563565b9150915061208f81612645565b8192505050949350505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b61210e610932565b1561214e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214590614387565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036121bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b690614419565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361222e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612225906144ab565b60405180910390fd5b80603460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161230c919061308f565b60405180910390a3505050565b612321612106565b61232c8383836127ab565b505050565b505050565b6123408282610a68565b6123b75761234d816127b0565b61235b8360001c60206127dd565b60405160200161236c92919061459f565b6040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ae9190612f8a565b60405180910390fd5b5050565b6123c58282612a19565b6123eb816101c66000858152602001908152602001600020612afb90919063ffffffff16565b505050565b6000609754905090565b6000609854905090565b6000838383463060405160200161241f9594939291906145d9565b6040516020818303038152906040528051906020012090509392505050565b6124488282612b2b565b61246e816101c66000858152602001908152602001600020612c0e90919063ffffffff16565b505050565b61247b610932565b6124ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124b190614678565b60405180910390fd5b565b60008260000182815481106124d4576124d361388a565b5b9060005260206000200154905092915050565b606083156124f757829050612502565b6125018383612c3e565b5b9392505050565b600081600001805490509050919050565b6001816000016000828254019250508190555050565b60008282604051602001612545929190614705565b60405160208183030381529060405280519060200120905092915050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08360001c111561259e57600060039150915061263c565b6000600187878787604051600081526020016040526040516125c3949392919061473c565b6020604051602081039080840390855afa1580156125e5573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036126335760006001925092505061263c565b80600092509250505b94509492505050565b6000600481111561265957612658614781565b5b81600481111561266c5761266b614781565b5b03156127a8576001600481111561268657612685614781565b5b81600481111561269957612698614781565b5b036126d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126d0906147fc565b60405180910390fd5b600260048111156126ed576126ec614781565b5b816004811115612700576126ff614781565b5b03612740576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161273790614868565b60405180910390fd5b6003600481111561275457612753614781565b5b81600481111561276757612766614781565b5b036127a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161279e906148fa565b60405180910390fd5b5b50565b505050565b60606127d68273ffffffffffffffffffffffffffffffffffffffff16601460ff166127dd565b9050919050565b6060600060028360026127f0919061491a565b6127fa9190613795565b67ffffffffffffffff8111156128135761281261385b565b5b6040519080825280601f01601f1916602001820160405280156128455781602001600182028036833780820191505090505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061287d5761287c61388a565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106128e1576128e061388a565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060006001846002612921919061491a565b61292b9190613795565b90505b60018111156129cb577f3031323334353637383961626364656600000000000000000000000000000000600f86166010811061296d5761296c61388a565b5b1a60f81b8282815181106129845761298361388a565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c9450806129c49061495c565b905061292e565b5060008414612a0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a06906149d1565b60405180910390fd5b8091505092915050565b612a238282610a68565b612af7576001610194600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550612a9c6112f9565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6000612b23836000018373ffffffffffffffffffffffffffffffffffffffff1660001b612c8e565b905092915050565b612b358282610a68565b15612c0a576000610194600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550612baf6112f9565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b6000612c36836000018373ffffffffffffffffffffffffffffffffffffffff1660001b612cfe565b905092915050565b600082511115612c515781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c859190612f8a565b60405180910390fd5b6000612c9a8383612e12565b612cf3578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050612cf8565b600090505b92915050565b60008083600101600084815260200190815260200160002054905060008114612e06576000600182612d3091906149f1565b9050600060018660000180549050612d4891906149f1565b9050818114612db7576000866000018281548110612d6957612d6861388a565b5b9060005260206000200154905080876000018481548110612d8d57612d8c61388a565b5b90600052602060002001819055508387600101600083815260200190815260200160002081905550505b85600001805480612dcb57612dca614a25565b5b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050612e0c565b60009150505b92915050565b600080836001016000848152602001908152602001600020541415905092915050565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612e7481612e3f565b8114612e7f57600080fd5b50565b600081359050612e9181612e6b565b92915050565b600060208284031215612ead57612eac612e35565b5b6000612ebb84828501612e82565b91505092915050565b60008115159050919050565b612ed981612ec4565b82525050565b6000602082019050612ef46000830184612ed0565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612f34578082015181840152602081019050612f19565b60008484015250505050565b6000601f19601f8301169050919050565b6000612f5c82612efa565b612f668185612f05565b9350612f76818560208601612f16565b612f7f81612f40565b840191505092915050565b60006020820190508181036000830152612fa48184612f51565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612fd782612fac565b9050919050565b612fe781612fcc565b8114612ff257600080fd5b50565b60008135905061300481612fde565b92915050565b6000819050919050565b61301d8161300a565b811461302857600080fd5b50565b60008135905061303a81613014565b92915050565b6000806040838503121561305757613056612e35565b5b600061306585828601612ff5565b92505060206130768582860161302b565b9150509250929050565b6130898161300a565b82525050565b60006020820190506130a46000830184613080565b92915050565b6000806000606084860312156130c3576130c2612e35565b5b60006130d186828701612ff5565b93505060206130e286828701612ff5565b92505060406130f38682870161302b565b9150509250925092565b6000819050919050565b613110816130fd565b811461311b57600080fd5b50565b60008135905061312d81613107565b92915050565b60006020828403121561314957613148612e35565b5b60006131578482850161311e565b91505092915050565b613169816130fd565b82525050565b60006020820190506131846000830184613160565b92915050565b6000602082840312156131a05761319f612e35565b5b60006131ae8482850161302b565b91505092915050565b600080604083850312156131ce576131cd612e35565b5b60006131dc8582860161311e565b92505060206131ed85828601612ff5565b9150509250929050565b600060ff82169050919050565b61320d816131f7565b82525050565b60006020820190506132286000830184613204565b92915050565b60006020828403121561324457613243612e35565b5b600061325284828501612ff5565b91505092915050565b6000806040838503121561327257613271612e35565b5b60006132808582860161311e565b92505060206132918582860161302b565b9150509250929050565b6132a481612fcc565b82525050565b60006020820190506132bf600083018461329b565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126132ea576132e96132c5565b5b8235905067ffffffffffffffff811115613307576133066132ca565b5b602083019150836020820283011115613323576133226132cf565b5b9250929050565b6000806020838503121561334157613340612e35565b5b600083013567ffffffffffffffff81111561335f5761335e612e3a565b5b61336b858286016132d4565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600081519050919050565b600082825260208201905092915050565b60006133ca826133a3565b6133d481856133ae565b93506133e4818560208601612f16565b6133ed81612f40565b840191505092915050565b600061340483836133bf565b905092915050565b6000602082019050919050565b600061342482613377565b61342e8185613382565b93508360208202850161344085613393565b8060005b8581101561347c578484038952815161345d85826133f8565b94506134688361340c565b925060208a01995050600181019050613444565b50829750879550505050505092915050565b600060208201905081810360008301526134a88184613419565b905092915050565b60008083601f8401126134c6576134c56132c5565b5b8235905067ffffffffffffffff8111156134e3576134e26132ca565b5b6020830191508360018202830111156134ff576134fe6132cf565b5b9250929050565b60008060006040848603121561351f5761351e612e35565b5b600061352d86828701612ff5565b935050602084013567ffffffffffffffff81111561354e5761354d612e3a565b5b61355a868287016134b0565b92509250509250925092565b61356f816131f7565b811461357a57600080fd5b50565b60008135905061358c81613566565b92915050565b600080600080600080600060e0888a0312156135b1576135b0612e35565b5b60006135bf8a828b01612ff5565b97505060206135d08a828b01612ff5565b96505060406135e18a828b0161302b565b95505060606135f28a828b0161302b565b94505060806136038a828b0161357d565b93505060a06136148a828b0161311e565b92505060c06136258a828b0161311e565b91505092959891949750929550565b6000806040838503121561364b5761364a612e35565b5b600061365985828601612ff5565b925050602061366a85828601612ff5565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806136bb57607f821691505b6020821081036136ce576136cd613674565b5b50919050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b6000613730602f83612f05565b915061373b826136d4565b604082019050919050565b6000602082019050818103600083015261375f81613723565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006137a08261300a565b91506137ab8361300a565b92508282019050808211156137c3576137c2613766565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613825602583612f05565b9150613830826137c9565b604082019050919050565b6000602082019050818103600083015261385481613818565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b600080fd5b600080fd5b600080833560016020038436030381126138e5576138e46138b9565b5b80840192508235915067ffffffffffffffff821115613907576139066138be565b5b602083019250600182023603831315613923576139226138c3565b5b509250929050565b60006139368261300a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361396857613967613766565b5b600182019050919050565b7f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160008201527f647920696e697469616c697a6564000000000000000000000000000000000000602082015250565b60006139cf602e83612f05565b91506139da82613973565b604082019050919050565b600060208201905081810360008301526139fe816139c2565b9050919050565b6000819050919050565b6000819050919050565b6000613a34613a2f613a2a84613a05565b613a0f565b6131f7565b9050919050565b613a4481613a19565b82525050565b6000602082019050613a5f6000830184613a3b565b92915050565b7f45524332305065726d69743a206578706972656420646561646c696e65000000600082015250565b6000613a9b601d83612f05565b9150613aa682613a65565b602082019050919050565b60006020820190508181036000830152613aca81613a8e565b9050919050565b600060c082019050613ae66000830189613160565b613af3602083018861329b565b613b00604083018761329b565b613b0d6060830186613080565b613b1a6080830185613080565b613b2760a0830184613080565b979650505050505050565b7f45524332305065726d69743a20696e76616c6964207369676e61747572650000600082015250565b6000613b68601e83612f05565b9150613b7382613b32565b602082019050919050565b60006020820190508181036000830152613b9781613b5b565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613bd4601d83612f05565b9150613bdf82613b9e565b602082019050919050565b60006020820190508181036000830152613c0381613bc7565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613c66602583612f05565b9150613c7182613c0a565b604082019050919050565b60006020820190508181036000830152613c9581613c59565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613cf8602383612f05565b9150613d0382613c9c565b604082019050919050565b60006020820190508181036000830152613d2781613ceb565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613d8a602683612f05565b9150613d9582613d2e565b604082019050919050565b60006020820190508181036000830152613db981613d7d565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000613e1c602183612f05565b9150613e2782613dc0565b604082019050919050565b60006020820190508181036000830152613e4b81613e0f565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000613eae602283612f05565b9150613eb982613e52565b604082019050919050565b60006020820190508181036000830152613edd81613ea1565b9050919050565b7f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60008201527f6e74726163740000000000000000000000000000000000000000000000000000602082015250565b6000613f40602683612f05565b9150613f4b82613ee4565b604082019050919050565b60006020820190508181036000830152613f6f81613f33565b9050919050565b600081905092915050565b6000613f8c826133a3565b613f968185613f76565b9350613fa6818560208601612f16565b80840191505092915050565b6000613fbe8284613f81565b915081905092915050565b7f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960008201527f6e697469616c697a696e67000000000000000000000000000000000000000000602082015250565b6000614025602b83612f05565b915061403082613fc9565b604082019050919050565b6000602082019050818103600083015261405481614018565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026140bd7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82614080565b6140c78683614080565b95508019841693508086168417925050509392505050565b60006140fa6140f56140f08461300a565b613a0f565b61300a565b9050919050565b6000819050919050565b614114836140df565b61412861412082614101565b84845461408d565b825550505050565b600090565b61413d614130565b61414881848461410b565b505050565b5b8181101561416c57614161600082614135565b60018101905061414e565b5050565b601f8211156141b1576141828161405b565b61418b84614070565b8101602085101561419a578190505b6141ae6141a685614070565b83018261414d565b50505b505050565b600082821c905092915050565b60006141d4600019846008026141b6565b1980831691505092915050565b60006141ed83836141c3565b9150826002028217905092915050565b61420682612efa565b67ffffffffffffffff81111561421f5761421e61385b565b5b61422982546136a3565b614234828285614170565b600060209050601f8311600181146142675760008415614255578287015190505b61425f85826141e1565b8655506142c7565b601f1984166142758661405b565b60005b8281101561429d57848901518255600182019150602085019450602081019050614278565b868310156142ba57848901516142b6601f8916826141c3565b8355505b6001600288020188555050505b505050505050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000614305601f83612f05565b9150614310826142cf565b602082019050919050565b60006020820190508181036000830152614334816142f8565b9050919050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b6000614371601083612f05565b915061437c8261433b565b602082019050919050565b600060208201905081810360008301526143a081614364565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614403602483612f05565b915061440e826143a7565b604082019050919050565b60006020820190508181036000830152614432816143f6565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614495602283612f05565b91506144a082614439565b604082019050919050565b600060208201905081810360008301526144c481614488565b9050919050565b600081905092915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b600061450c6017836144cb565b9150614517826144d6565b601782019050919050565b600061452d82612efa565b61453781856144cb565b9350614547818560208601612f16565b80840191505092915050565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b60006145896011836144cb565b915061459482614553565b601182019050919050565b60006145aa826144ff565b91506145b68285614522565b91506145c18261457c565b91506145cd8284614522565b91508190509392505050565b600060a0820190506145ee6000830188613160565b6145fb6020830187613160565b6146086040830186613160565b6146156060830185613080565b614622608083018461329b565b9695505050505050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b6000614662601483612f05565b915061466d8261462c565b602082019050919050565b6000602082019050818103600083015261469181614655565b9050919050565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b60006146ce6002836144cb565b91506146d982614698565b600282019050919050565b6000819050919050565b6146ff6146fa826130fd565b6146e4565b82525050565b6000614710826146c1565b915061471c82856146ee565b60208201915061472c82846146ee565b6020820191508190509392505050565b60006080820190506147516000830187613160565b61475e6020830186613204565b61476b6040830185613160565b6147786060830184613160565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f45434453413a20696e76616c6964207369676e61747572650000000000000000600082015250565b60006147e6601883612f05565b91506147f1826147b0565b602082019050919050565b60006020820190508181036000830152614815816147d9565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265206c656e67746800600082015250565b6000614852601f83612f05565b915061485d8261481c565b602082019050919050565b6000602082019050818103600083015261488181614845565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265202773272076616c60008201527f7565000000000000000000000000000000000000000000000000000000000000602082015250565b60006148e4602283612f05565b91506148ef82614888565b604082019050919050565b60006020820190508181036000830152614913816148d7565b9050919050565b60006149258261300a565b91506149308361300a565b925082820261493e8161300a565b9150828204841483151761495557614954613766565b5b5092915050565b60006149678261300a565b91506000820361497a57614979613766565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b60006149bb602083612f05565b91506149c682614985565b602082019050919050565b600060208201905081810360008301526149ea816149ae565b9050919050565b60006149fc8261300a565b9150614a078361300a565b9250828203905081811115614a1f57614a1e613766565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220b0541d1bfef76ee31fcd51e5c16d61502aee2414d6f8cd8de3c6d46147f7230c64736f6c63430008110033",
    "linkReferences": {},
    "deployedLinkReferences": {}
}
