{
  "_format": "hh-sol-artifact-1",
  "contractName": "ClaimIssuer",
  "sourceName": "contracts/ClaimIssuer.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "initialManagementKey",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "executionId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "approved",
          "type": "bool"
        }
      ],
      "name": "Approved",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "claimId",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "topic",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "scheme",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "issuer",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "signature",
          "type": "bytes"
        },
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        },
        {
          "indexed": false,
          "internalType": "string",
          "name": "uri",
          "type": "string"
        }
      ],
      "name": "ClaimAdded",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "claimId",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "topic",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "scheme",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "issuer",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "signature",
          "type": "bytes"
        },
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        },
        {
          "indexed": false,
          "internalType": "string",
          "name": "uri",
          "type": "string"
        }
      ],
      "name": "ClaimChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "claimId",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "topic",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "scheme",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "issuer",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "signature",
          "type": "bytes"
        },
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        },
        {
          "indexed": false,
          "internalType": "string",
          "name": "uri",
          "type": "string"
        }
      ],
      "name": "ClaimRemoved",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes",
          "name": "signature",
          "type": "bytes"
        }
      ],
      "name": "ClaimRevoked",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "executionId",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "Executed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "executionId",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "ExecutionFailed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "executionId",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "ExecutionRequested",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "key",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "purpose",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "keyType",
          "type": "uint256"
        }
      ],
      "name": "KeyAdded",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "key",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "purpose",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "keyType",
          "type": "uint256"
        }
      ],
      "name": "KeyRemoved",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_topic",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_scheme",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "_issuer",
          "type": "address"
        },
        {
          "internalType": "bytes",
          "name": "_signature",
          "type": "bytes"
        },
        {
          "internalType": "bytes",
          "name": "_data",
          "type": "bytes"
        },
        {
          "internalType": "string",
          "name": "_uri",
          "type": "string"
        }
      ],
      "name": "addClaim",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "claimRequestId",
          "type": "bytes32"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_key",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "_purpose",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_type",
          "type": "uint256"
        }
      ],
      "name": "addKey",
      "outputs": [
        {
          "internalType": "bool",
          "name": "success",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_id",
          "type": "uint256"
        },
        {
          "internalType": "bool",
          "name": "_approve",
          "type": "bool"
        }
      ],
      "name": "approve",
      "outputs": [
        {
          "internalType": "bool",
          "name": "success",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_value",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "_data",
          "type": "bytes"
        }
      ],
      "name": "execute",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "executionId",
          "type": "uint256"
        }
      ],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_claimId",
          "type": "bytes32"
        }
      ],
      "name": "getClaim",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "topic",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "scheme",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "issuer",
          "type": "address"
        },
        {
          "internalType": "bytes",
          "name": "signature",
          "type": "bytes"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        },
        {
          "internalType": "string",
          "name": "uri",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_topic",
          "type": "uint256"
        }
      ],
      "name": "getClaimIdsByTopic",
      "outputs": [
        {
          "internalType": "bytes32[]",
          "name": "claimIds",
          "type": "bytes32[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_key",
          "type": "bytes32"
        }
      ],
      "name": "getKey",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "purposes",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256",
          "name": "keyType",
          "type": "uint256"
        },
        {
          "internalType": "bytes32",
          "name": "key",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_key",
          "type": "bytes32"
        }
      ],
      "name": "getKeyPurposes",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "_purposes",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_purpose",
          "type": "uint256"
        }
      ],
      "name": "getKeysByPurpose",
      "outputs": [
        {
          "internalType": "bytes32[]",
          "name": "keys",
          "type": "bytes32[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes",
          "name": "sig",
          "type": "bytes"
        },
        {
          "internalType": "bytes32",
          "name": "dataHash",
          "type": "bytes32"
        }
      ],
      "name": "getRecoveredAddress",
      "outputs": [
        {
          "internalType": "address",
          "name": "addr",
          "type": "address"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "initialManagementKey",
          "type": "address"
        }
      ],
      "name": "initialize",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes",
          "name": "_sig",
          "type": "bytes"
        }
      ],
      "name": "isClaimRevoked",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IIdentity",
          "name": "_identity",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "claimTopic",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "sig",
          "type": "bytes"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "isClaimValid",
      "outputs": [
        {
          "internalType": "bool",
          "name": "claimValid",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_key",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "_purpose",
          "type": "uint256"
        }
      ],
      "name": "keyHasPurpose",
      "outputs": [
        {
          "internalType": "bool",
          "name": "result",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_claimId",
          "type": "bytes32"
        }
      ],
      "name": "removeClaim",
      "outputs": [
        {
          "internalType": "bool",
          "name": "success",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_key",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "_purpose",
          "type": "uint256"
        }
      ],
      "name": "removeKey",
      "outputs": [
        {
          "internalType": "bool",
          "name": "success",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_claimId",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "_identity",
          "type": "address"
        }
      ],
      "name": "revokeClaim",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes",
          "name": "signature",
          "type": "bytes"
        }
      ],
      "name": "revokeClaimBySignature",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "name": "revokedClaims",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "version",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    }
  ],
  "bytecode": "0x60806040526000600660006101000a81548160ff0219169083151502179055506000600660016101000a81548160ff0219169083151502179055503480156200004757600080fd5b506040516200533f3803806200533f83398181016040528101906200006d9190620003c7565b8060008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620000e1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000d8906200045a565b60405180910390fd5b80620000fe57620000f8826200012360201b60201c565b6200011a565b6001600660006101000a81548160ff0219169083151502179055505b5050506200051c565b600660009054906101000a900460ff1615806200014c57506200014b620002d060201b60201c565b5b6200018e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200018590620004cc565b60405180910390fd5b6001600660006101000a81548160ff0219169083151502179055506001600660016101000a81548160ff021916908315150217905550600081604051602001620001d99190620004ff565b6040516020818303038152906040528051906020012090508060016000838152602001908152602001600020600201819055506040518060200160405280600160ff168152506001600083815260200190815260200160002060000190600162000245929190620002e7565b506001806000838152602001908152602001600020600101819055506002600060018152602001908152602001600020819080600181540180825580915050600190039060005260206000200160009091909190915055600180827f480000bb1edad8ca1470381cc334b1917fbd51c6531f3a623ea8e0ec7e38a6e960405160405180910390a45050565b6000803090506000813b9050600081149250505090565b8280548282559060005260206000209081019282156200032b579160200282015b828111156200032a578251829060ff1690559160200191906001019062000308565b5b5090506200033a91906200033e565b5090565b5b80821115620003595760008160009055506001016200033f565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200038f8262000362565b9050919050565b620003a18162000382565b8114620003ad57600080fd5b50565b600081519050620003c18162000396565b92915050565b600060208284031215620003e057620003df6200035d565b5b6000620003f084828501620003b0565b91505092915050565b600082825260208201905092915050565b7f696e76616c696420617267756d656e74202d207a65726f206164647265737300600082015250565b600062000442601f83620003f9565b91506200044f826200040a565b602082019050919050565b60006020820190508181036000830152620004758162000433565b9050919050565b7f496e697469616c206b65792077617320616c72656164792073657475702e0000600082015250565b6000620004b4601e83620003f9565b9150620004c1826200047c565b602082019050919050565b60006020820190508181036000830152620004e781620004a5565b9050919050565b620004f98162000382565b82525050565b6000602082019050620005166000830184620004ee565b92915050565b614e13806200052c6000396000f3fe60806040526004361061011f5760003560e01c80639f7f9edd116100a0578063c4d66de811610064578063c4d66de814610486578063c9100bcb146104af578063d202158d146104f1578063d23452491461052e578063fb307b341461056b5761011f565b80639f7f9edd14610376578063b1a34e0d1461039f578063b61d27f6146103dc578063c0969a6e1461040c578063c3b129e3146104495761011f565b806354fd4d50116100e757806354fd4d501461025757806373c3370814610282578063747442d3146102bf57806380e9e9e1146102fc5780639010f726146103395761011f565b806312aaac70146101245780631d381240146101635780632646b264146101a05780634eee424a146101dd57806353d413c51461021a575b600080fd5b34801561013057600080fd5b5061014b60048036038101906101469190612da6565b6105a8565b60405161015a93929190612eb9565b60405180910390f35b34801561016f57600080fd5b5061018a60048036038101906101859190612f23565b610650565b6040516101979190612f91565b60405180910390f35b3480156101ac57600080fd5b506101c760048036038101906101c291906130f2565b610978565b6040516101d49190612f91565b60405180910390f35b3480156101e957600080fd5b5061020460048036038101906101ff9190612da6565b6109be565b6040516102119190612f91565b60405180910390f35b34801561022657600080fd5b50610241600480360381019061023c919061313b565b610d95565b60405161024e9190612f91565b60405180910390f35b34801561026357600080fd5b5061026c611232565b60405161027991906131fa565b60405180910390f35b34801561028e57600080fd5b506102a960048036038101906102a4919061327a565b61126f565b6040516102b69190612f91565b60405180910390f35b3480156102cb57600080fd5b506102e660048036038101906102e191906132e6565b6114fd565b6040516102f39190612f91565b60405180910390f35b34801561030857600080fd5b50610323600480360381019061031e9190613326565b611a71565b6040516103309190613411565b60405180910390f35b34801561034557600080fd5b50610360600480360381019061035b9190613326565b611adc565b60405161036d9190613411565b60405180910390f35b34801561038257600080fd5b5061039d60048036038101906103989190613493565b611b47565b005b3480156103ab57600080fd5b506103c660048036038101906103c19190613581565b611d32565b6040516103d39190613662565b60405180910390f35b6103f660048036038101906103f1919061367d565b6121aa565b60405161040391906136ec565b60405180910390f35b34801561041857600080fd5b50610433600480360381019061042e9190613745565b6123d1565b6040516104409190612f91565b60405180910390f35b34801561045557600080fd5b50610470600480360381019061046b91906137e4565b6124ab565b60405161047d919061384f565b60405180910390f35b34801561049257600080fd5b506104ad60048036038101906104a8919061386a565b61255b565b005b3480156104bb57600080fd5b506104d660048036038101906104d19190612da6565b6125d6565b6040516104e8969594939291906138ec565b60405180910390f35b3480156104fd57600080fd5b506105186004803603810190610513919061313b565b612840565b6040516105259190612f91565b60405180910390f35b34801561053a57600080fd5b50610555600480360381019061055091906130f2565b61295a565b6040516105629190612f91565b60405180910390f35b34801561057757600080fd5b50610592600480360381019061058d9190612da6565b612990565b60405161059f9190613962565b60405180910390f35b606060008060016000858152602001908152602001600020600001600160008681526020019081526020016000206001015460016000878152602001908152602001600020600201548280548060200260200160405190810160405280929190818152602001828054801561063c57602002820191906000526020600020905b815481526020019060010190808311610628575b505050505092509250925092509193909250565b600060011515600660019054906101000a900460ff161515146106a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069f906139f6565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061070f575061070e336040516020016106f1919061384f565b604051602081830303815290604052805190602001206001612840565b5b61074e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074590613a88565b60405180910390fd5b83600160008681526020019081526020016000206002015403610899576000600160008681526020019081526020016000206000018054806020026020016040519081016040528092919081815260200182805480156107cd57602002820191906000526020600020905b8154815260200190600101908083116107b9575b5050505050905060005b81518110156108555760008282815181106107f5576107f4613aa8565b5b60200260200101519050858103610841576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083890613b49565b60405180910390fd5b50808061084d90613b98565b9150506107d7565b506001600086815260200190815260200160002060000184908060018154018082558091505060019003906000526020600020016000909190919091505550610904565b836001600086815260200190815260200160002060020181905550604051806020016040528084815250600160008681526020019081526020016000206000019060016108e7929190612bb2565b508160016000868152602001908152602001600020600101819055505b600260008481526020019081526020016000208490806001815401808255809150506001900390600052602060002001600090919091909150558183857f480000bb1edad8ca1470381cc334b1917fbd51c6531f3a623ea8e0ec7e38a6e960405160405180910390a4600190509392505050565b600060388260405161098a9190613c1c565b908152602001604051809103902060009054906101000a900460ff16156109b457600190506109b9565b600090505b919050565b600060011515600660019054906101000a900460ff16151514610a16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0d906139f6565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610a7d5750610a7c33604051602001610a5f919061384f565b604051602081830303815290604052805190602001206003612840565b5b610abc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab390613ca5565b60405180910390fd5b60006004600084815260200190815260200160002060000154905060008103610b1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1190613d37565b60405180910390fd5b600080600560008481526020019081526020016000208054905090505b84600560008581526020019081526020016000208381548110610b5d57610b5c613aa8565b5b906000526020600020015414610b83578180610b7890613b98565b925050808210610b37575b60056000848152602001908152602001600020600182610ba39190613d57565b81548110610bb457610bb3613aa8565b5b9060005260206000200154600560008581526020019081526020016000208381548110610be457610be3613aa8565b5b906000526020600020018190555060056000848152602001908152602001600020805480610c1557610c14613d8b565b5b600190038181906000526020600020016000905590556004600086815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683867f3cf57863a89432c61c4a27073c6ee39e8a764bff5a05aebfbcdcdc80b2e6130a600460008a815260200190815260200160002060010154600460008b8152602001908152602001600020600301600460008c8152602001908152602001600020600401600460008d8152602001908152602001600020600501604051610d049493929190613f4c565b60405180910390a46004600086815260200190815260200160002060008082016000905560018201600090556002820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600382016000610d679190612bff565b600482016000610d779190612bff565b600582016000610d879190612c3f565b505060019350505050919050565b600060011515600660019054906101000a900460ff16151514610ded576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de4906139f6565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610e545750610e5333604051602001610e36919061384f565b604051602081830303815290604052805190602001206001612840565b5b610e93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8a90613a88565b60405180910390fd5b82600160008581526020019081526020016000206002015414610eeb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee290614018565b60405180910390fd5b600060016000858152602001908152602001600020600001805480602002602001604051908101604052809291908181526020018280548015610f4d57602002820191906000526020600020905b815481526020019060010190808311610f39575b5050505050905060005b83828281518110610f6b57610f6a613aa8565b5b602002602001015114610fce578080610f8390613b98565b91505081518103610fc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc0906140aa565b60405180910390fd5b610f57565b8160018351610fdd9190613d57565b81518110610fee57610fed613aa8565b5b602002602001015182828151811061100957611008613aa8565b5b6020026020010181815250508160016000878152602001908152602001600020600001908051906020019061103f929190612c7f565b506001600086815260200190815260200160002060000180548061106657611065613d8b565b5b60019003818190600052602060002001600090559055600080600260008781526020019081526020016000208054905090505b866002600088815260200190815260200160002083815481106110bf576110be613aa8565b5b9060005260206000200154146110e55781806110da90613b98565b925050808210611099575b600260008781526020019081526020016000206001826111059190613d57565b8154811061111657611115613aa8565b5b906000526020600020015460026000888152602001908152602001600020838154811061114657611145613aa8565b5b90600052602060002001819055506002600087815260200190815260200160002080548061117757611176613d8b565b5b600190038181906000526020600020016000905590556000600160008981526020019081526020016000206001015490506000600186516111b89190613d57565b036111f45760016000898152602001908152602001600020600080820160006111e19190612ccc565b6001820160009055600282016000905550505b8087897f585a4aef50f8267a92b32412b331b20f7f8b96f2245b253b9cc50dcc621d339760405160405180910390a460019550505050505092915050565b60606040518060400160405280600581526020017f322e322e31000000000000000000000000000000000000000000000000000000815250905090565b600060011515600660019054906101000a900460ff161515146112c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112be906139f6565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061132e575061132d33604051602001611310919061384f565b604051602081830303815290604052805190602001206001612840565b5b61136d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136490613a88565b60405180910390fd5b60008060006060808673ffffffffffffffffffffffffffffffffffffffff1663c9100bcb896040518263ffffffff1660e01b81526004016113ae9190613662565b600060405180830381865afa1580156113cb573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906113f491906141d4565b5080955081965082975083985084995050505050506038826040516114199190613c1c565b908152602001604051809103902060009054906101000a900460ff1615611475576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146c90614301565b60405180910390fd5b60016038836040516114879190613c1c565b908152602001604051809103902060006101000a81548160ff021916908315150217905550816040516114ba9190613c1c565b60405180910390207f7f484e37f24c0a92f81dd74afa3027b3ea31f2e9fb6b9fa29fe9865f81ac556960405160405180910390a260019550505050505092915050565b600060011515600660019054906101000a900460ff16151514611555576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154c906139f6565b60405180910390fd5b6000548310611599576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159090614393565b60405180910390fd5b6003600084815260200190815260200160002060030160019054906101000a900460ff16156115fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f4906143ff565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff166003600085815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036116db576116973360405160200161167a919061384f565b604051602081830303815290604052805190602001206001612840565b6116d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cd90614491565b60405180910390fd5b61174c565b61170c336040516020016116ef919061384f565b604051602081830303815290604052805190602001206002612840565b61174b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611742906144fd565b60405180910390fd5b5b827fb3932da477fe5d6c8ff2eafef050c0f3a1af18fc07121001482600f36f3715d88360405161177c9190612f91565b60405180910390a26001151582151503611a375760016003600085815260200190815260200160002060030160006101000a81548160ff0219169083151502179055506003600084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660036000858152602001908152602001600020600101546003600086815260200190815260200160002060020160405161184691906145a0565b60006040518083038185875af1925050503d8060008114611883576040519150601f19603f3d011682016040523d82523d6000602084013e611888565b606091505b505080915050801561197d5760016003600085815260200190815260200160002060030160016101000a81548160ff02191690831515021790555060036000848152602001908152602001600020600101546003600085815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16847f1f920dbda597d7bf95035464170fa58d0a4b57f13a1c315ace6793b9f63688b86003600088815260200190815260200160002060020160405161196c91906145b7565b60405180910390a460019050611a6b565b60036000848152602001908152602001600020600101546003600085815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16847fe10c49d9f7c71da23262367013434763cfdb2332267641728d25cd712c5c6a6860036000888152602001908152602001600020600201604051611a2691906145b7565b60405180910390a460009050611a6b565b60006003600085815260200190815260200160002060030160006101000a81548160ff021916908315150217905550600090505b92915050565b606060056000838152602001908152602001600020805480602002602001604051908101604052809291908181526020018280548015611ad057602002820191906000526020600020905b815481526020019060010190808311611abc575b50505050509050919050565b606060026000838152602001908152602001600020805480602002602001604051908101604052809291908181526020018280548015611b3b57602002820191906000526020600020905b815481526020019060010190808311611b27575b50505050509050919050565b60011515600660019054906101000a900460ff16151514611b9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b94906139f6565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611c045750611c0333604051602001611be6919061384f565b604051602081830303815290604052805190602001206001612840565b5b611c43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3a90613a88565b60405180910390fd5b60388282604051611c559291906145fe565b908152602001604051809103902060009054906101000a900460ff1615611cb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca890614301565b60405180910390fd5b600160388383604051611cc59291906145fe565b908152602001604051809103902060006101000a81548160ff0219169083151502179055508181604051611cfa9291906145fe565b60405180910390207f7f484e37f24c0a92f81dd74afa3027b3ea31f2e9fb6b9fa29fe9865f81ac556960405160405180910390a25050565b600060011515600660019054906101000a900460ff16151514611d8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d81906139f6565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611df15750611df033604051602001611dd3919061384f565b604051602081830303815290604052805190602001206003612840565b5b611e30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2790613ca5565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614611f23578473ffffffffffffffffffffffffffffffffffffffff1663c0969a6e308987876040518563ffffffff1660e01b8152600401611ea29493929190614676565b602060405180830381865afa158015611ebf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ee391906146de565b611f22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1990614757565b60405180910390fd5b5b60008588604051602001611f38929190614777565b60405160208183030381529060405280519060200120905087600460008381526020019081526020016000206000018190555086600460008381526020019081526020016000206001018190555084600460008381526020019081526020016000206003019081611fa9919061492d565b5083600460008381526020019081526020016000206004019081611fcd919061492d565b5082600460008381526020019081526020016000206005019081611ff19190614a45565b508573ffffffffffffffffffffffffffffffffffffffff166004600083815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146121455760056000898152602001908152602001600020819080600181540180825580915050600190039060005260206000200160009091909190915055856004600083815260200190815260200160002060020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508573ffffffffffffffffffffffffffffffffffffffff1688827f46149b18aa084502c3f12bc75e19eda8bda8d102b82cce8474677a6d0d5f43c58a8989896040516121389493929190614b17565b60405180910390a461219c565b8573ffffffffffffffffffffffffffffffffffffffff1688827f3bab293fc00db832d7619a9299914251b8747c036867ec056cbd506f60135b138a8989896040516121939493929190614b17565b60405180910390a45b809150509695505050505050565b600060011515600660019054906101000a900460ff16151514612202576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f9906139f6565b60405180910390fd5b600080549050846003600083815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508360036000838152602001908152602001600020600101819055508260036000838152602001908152602001600020600201908161229b919061492d565b506000808154809291906122ae90613b98565b9190505550838573ffffffffffffffffffffffffffffffffffffffff16827f8afcfabcb00e47a53a8fc3e9f23ff47ee1926194bb1350dd007c50b412a6cee8866040516122fb9190614b71565b60405180910390a461233433604051602001612317919061384f565b604051602081830303815290604052805190602001206001612840565b1561234a576123448160016114fd565b506123c6565b3073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156123b357506123b233604051602001612395919061384f565b604051602081830303815290604052805190602001206002612840565b5b156123c5576123c38160016114fd565b505b5b809150509392505050565b6000808585846040516020016123e993929190614b93565b6040516020818303038152906040528051906020012090506000816040516020016124149190614c49565b604051602081830303815290604052805190602001209050600061243886836124ab565b905060008160405160200161244d919061384f565b604051602081830303815290604052805190602001209050612470816003612840565b801561248857506000151561248488610978565b1515145b1561249a5760019450505050506124a3565b60009450505050505b949350505050565b60008060008060418651146124c65760009350505050612555565b6020860151925060408601519150606086015160001a9050601b8160ff1610156124fa57601b816124f79190614c7c565b90505b60006001868386866040516000815260200160405260405161251f9493929190614cc0565b6020604051602081039080840390855afa158015612541573d6000803e3d6000fd5b505050602060405103519050809450505050505b92915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036125ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125c190614d51565b60405180910390fd5b6125d3816129fe565b50565b6000806000606080606060046000888152602001908152602001600020600001546004600089815260200190815260200160002060010154600460008a815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600460008b8152602001908152602001600020600301600460008c8152602001908152602001600020600401600460008d815260200190815260200160002060050182805461269390613de9565b80601f01602080910402602001604051908101604052809291908181526020018280546126bf90613de9565b801561270c5780601f106126e15761010080835404028352916020019161270c565b820191906000526020600020905b8154815290600101906020018083116126ef57829003601f168201915b5050505050925081805461271f90613de9565b80601f016020809104026020016040519081016040528092919081815260200182805461274b90613de9565b80156127985780601f1061276d57610100808354040283529160200191612798565b820191906000526020600020905b81548152906001019060200180831161277b57829003601f168201915b505050505091508080546127ab90613de9565b80601f01602080910402602001604051908101604052809291908181526020018280546127d790613de9565b80156128245780601f106127f957610100808354040283529160200191612824565b820191906000526020600020905b81548152906001019060200180831161280757829003601f168201915b5050505050905095509550955095509550955091939550919395565b60008060016000858152602001908152602001600020604051806060016040529081600082018054806020026020016040519081016040528092919081815260200182805480156128b057602002820191906000526020600020905b81548152602001906001019080831161289c575b505050505081526020016001820154815260200160028201548152505090506000801b8160400151036128e7576000915050612954565b60005b81600001515181101561294d576000826000015182815181106129105761290f613aa8565b5b60200260200101519050600181148061292857508481145b156129395760019350505050612954565b50808061294590613b98565b9150506128ea565b5060009150505b92915050565b6038818051602081018201805184825260208301602085012081835280955050505050506000915054906101000a900460ff1681565b6060600160008381526020019081526020016000206000018054806020026020016040519081016040528092919081815260200182805480156129f257602002820191906000526020600020905b8154815260200190600101908083116129de575b50505050509050919050565b600660009054906101000a900460ff161580612a1e5750612a1d612b9b565b5b612a5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a5490614dbd565b60405180910390fd5b6001600660006101000a81548160ff0219169083151502179055506001600660016101000a81548160ff021916908315150217905550600081604051602001612aa6919061384f565b6040516020818303038152906040528051906020012090508060016000838152602001908152602001600020600201819055506040518060200160405280600160ff1681525060016000838152602001908152602001600020600001906001612b10929190612ced565b506001806000838152602001908152602001600020600101819055506002600060018152602001908152602001600020819080600181540180825580915050600190039060005260206000200160009091909190915055600180827f480000bb1edad8ca1470381cc334b1917fbd51c6531f3a623ea8e0ec7e38a6e960405160405180910390a45050565b6000803090506000813b9050600081149250505090565b828054828255906000526020600020908101928215612bee579160200282015b82811115612bed578251825591602001919060010190612bd2565b5b509050612bfb9190612d3f565b5090565b508054612c0b90613de9565b6000825580601f10612c1d5750612c3c565b601f016020900490600052602060002090810190612c3b9190612d3f565b5b50565b508054612c4b90613de9565b6000825580601f10612c5d5750612c7c565b601f016020900490600052602060002090810190612c7b9190612d3f565b5b50565b828054828255906000526020600020908101928215612cbb579160200282015b82811115612cba578251825591602001919060010190612c9f565b5b509050612cc89190612d3f565b5090565b5080546000825590600052602060002090810190612cea9190612d3f565b50565b828054828255906000526020600020908101928215612d2e579160200282015b82811115612d2d578251829060ff16905591602001919060010190612d0d565b5b509050612d3b9190612d3f565b5090565b5b80821115612d58576000816000905550600101612d40565b5090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b612d8381612d70565b8114612d8e57600080fd5b50565b600081359050612da081612d7a565b92915050565b600060208284031215612dbc57612dbb612d66565b5b6000612dca84828501612d91565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000819050919050565b612e1281612dff565b82525050565b6000612e248383612e09565b60208301905092915050565b6000602082019050919050565b6000612e4882612dd3565b612e528185612dde565b9350612e5d83612def565b8060005b83811015612e8e578151612e758882612e18565b9750612e8083612e30565b925050600181019050612e61565b5085935050505092915050565b612ea481612dff565b82525050565b612eb381612d70565b82525050565b60006060820190508181036000830152612ed38186612e3d565b9050612ee26020830185612e9b565b612eef6040830184612eaa565b949350505050565b612f0081612dff565b8114612f0b57600080fd5b50565b600081359050612f1d81612ef7565b92915050565b600080600060608486031215612f3c57612f3b612d66565b5b6000612f4a86828701612d91565b9350506020612f5b86828701612f0e565b9250506040612f6c86828701612f0e565b9150509250925092565b60008115159050919050565b612f8b81612f76565b82525050565b6000602082019050612fa66000830184612f82565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612fff82612fb6565b810181811067ffffffffffffffff8211171561301e5761301d612fc7565b5b80604052505050565b6000613031612d5c565b905061303d8282612ff6565b919050565b600067ffffffffffffffff82111561305d5761305c612fc7565b5b61306682612fb6565b9050602081019050919050565b82818337600083830152505050565b600061309561309084613042565b613027565b9050828152602081018484840111156130b1576130b0612fb1565b5b6130bc848285613073565b509392505050565b600082601f8301126130d9576130d8612fac565b5b81356130e9848260208601613082565b91505092915050565b60006020828403121561310857613107612d66565b5b600082013567ffffffffffffffff81111561312657613125612d6b565b5b613132848285016130c4565b91505092915050565b6000806040838503121561315257613151612d66565b5b600061316085828601612d91565b925050602061317185828601612f0e565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b838110156131b557808201518184015260208101905061319a565b60008484015250505050565b60006131cc8261317b565b6131d68185613186565b93506131e6818560208601613197565b6131ef81612fb6565b840191505092915050565b6000602082019050818103600083015261321481846131c1565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006132478261321c565b9050919050565b6132578161323c565b811461326257600080fd5b50565b6000813590506132748161324e565b92915050565b6000806040838503121561329157613290612d66565b5b600061329f85828601612d91565b92505060206132b085828601613265565b9150509250929050565b6132c381612f76565b81146132ce57600080fd5b50565b6000813590506132e0816132ba565b92915050565b600080604083850312156132fd576132fc612d66565b5b600061330b85828601612f0e565b925050602061331c858286016132d1565b9150509250929050565b60006020828403121561333c5761333b612d66565b5b600061334a84828501612f0e565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61338881612d70565b82525050565b600061339a838361337f565b60208301905092915050565b6000602082019050919050565b60006133be82613353565b6133c8818561335e565b93506133d38361336f565b8060005b838110156134045781516133eb888261338e565b97506133f6836133a6565b9250506001810190506133d7565b5085935050505092915050565b6000602082019050818103600083015261342b81846133b3565b905092915050565b600080fd5b600080fd5b60008083601f84011261345357613452612fac565b5b8235905067ffffffffffffffff8111156134705761346f613433565b5b60208301915083600182028301111561348c5761348b613438565b5b9250929050565b600080602083850312156134aa576134a9612d66565b5b600083013567ffffffffffffffff8111156134c8576134c7612d6b565b5b6134d48582860161343d565b92509250509250929050565b600067ffffffffffffffff8211156134fb576134fa612fc7565b5b61350482612fb6565b9050602081019050919050565b600061352461351f846134e0565b613027565b9050828152602081018484840111156135405761353f612fb1565b5b61354b848285613073565b509392505050565b600082601f83011261356857613567612fac565b5b8135613578848260208601613511565b91505092915050565b60008060008060008060c0878903121561359e5761359d612d66565b5b60006135ac89828a01612f0e565b96505060206135bd89828a01612f0e565b95505060406135ce89828a01613265565b945050606087013567ffffffffffffffff8111156135ef576135ee612d6b565b5b6135fb89828a016130c4565b935050608087013567ffffffffffffffff81111561361c5761361b612d6b565b5b61362889828a016130c4565b92505060a087013567ffffffffffffffff81111561364957613648612d6b565b5b61365589828a01613553565b9150509295509295509295565b60006020820190506136776000830184612eaa565b92915050565b60008060006060848603121561369657613695612d66565b5b60006136a486828701613265565b93505060206136b586828701612f0e565b925050604084013567ffffffffffffffff8111156136d6576136d5612d6b565b5b6136e2868287016130c4565b9150509250925092565b60006020820190506137016000830184612e9b565b92915050565b60006137128261323c565b9050919050565b61372281613707565b811461372d57600080fd5b50565b60008135905061373f81613719565b92915050565b6000806000806080858703121561375f5761375e612d66565b5b600061376d87828801613730565b945050602061377e87828801612f0e565b935050604085013567ffffffffffffffff81111561379f5761379e612d6b565b5b6137ab878288016130c4565b925050606085013567ffffffffffffffff8111156137cc576137cb612d6b565b5b6137d8878288016130c4565b91505092959194509250565b600080604083850312156137fb576137fa612d66565b5b600083013567ffffffffffffffff81111561381957613818612d6b565b5b613825858286016130c4565b925050602061383685828601612d91565b9150509250929050565b6138498161323c565b82525050565b60006020820190506138646000830184613840565b92915050565b6000602082840312156138805761387f612d66565b5b600061388e84828501613265565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60006138be82613897565b6138c881856138a2565b93506138d8818560208601613197565b6138e181612fb6565b840191505092915050565b600060c0820190506139016000830189612e9b565b61390e6020830188612e9b565b61391b6040830187613840565b818103606083015261392d81866138b3565b9050818103608083015261394181856138b3565b905081810360a083015261395581846131c1565b9050979650505050505050565b6000602082019050818103600083015261397c8184612e3d565b905092915050565b7f496e746572616374696e67207769746820746865206c69627261727920636f6e60008201527f747261637420697320666f7262696464656e2e00000000000000000000000000602082015250565b60006139e0603383613186565b91506139eb82613984565b604082019050919050565b60006020820190508181036000830152613a0f816139d3565b9050919050565b7f5065726d697373696f6e733a2053656e64657220646f6573206e6f742068617660008201527f65206d616e6167656d656e74206b657900000000000000000000000000000000602082015250565b6000613a72603083613186565b9150613a7d82613a16565b604082019050919050565b60006020820190508181036000830152613aa181613a65565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f436f6e666c6963743a204b657920616c72656164792068617320707572706f7360008201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b6000613b33602183613186565b9150613b3e82613ad7565b604082019050919050565b60006020820190508181036000830152613b6281613b26565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613ba382612dff565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613bd557613bd4613b69565b5b600182019050919050565b600081905092915050565b6000613bf682613897565b613c008185613be0565b9350613c10818560208601613197565b80840191505092915050565b6000613c288284613beb565b915081905092915050565b7f5065726d697373696f6e733a2053656e64657220646f6573206e6f742068617660008201527f6520636c61696d207369676e6572206b65790000000000000000000000000000602082015250565b6000613c8f603283613186565b9150613c9a82613c33565b604082019050919050565b60006020820190508181036000830152613cbe81613c82565b9050919050565b7f4e6f6e4578697374696e673a205468657265206973206e6f20636c61696d207760008201527f6974682074686973204944000000000000000000000000000000000000000000602082015250565b6000613d21602b83613186565b9150613d2c82613cc5565b604082019050919050565b60006020820190508181036000830152613d5081613d14565b9050919050565b6000613d6282612dff565b9150613d6d83612dff565b9250828203905081811115613d8557613d84613b69565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613e0157607f821691505b602082108103613e1457613e13613dba565b5b50919050565b60008190508160005260206000209050919050565b60008154613e3c81613de9565b613e4681866138a2565b94506001821660008114613e615760018114613e7757613eaa565b60ff198316865281151560200286019350613eaa565b613e8085613e1a565b60005b83811015613ea257815481890152600182019150602081019050613e83565b808801955050505b50505092915050565b60008190508160005260206000209050919050565b60008154613ed581613de9565b613edf8186613186565b94506001821660008114613efa5760018114613f1057613f43565b60ff198316865281151560200286019350613f43565b613f1985613eb3565b60005b83811015613f3b57815481890152600182019150602081019050613f1c565b808801955050505b50505092915050565b6000608082019050613f616000830187612e9b565b8181036020830152613f738186613e2f565b90508181036040830152613f878185613e2f565b90508181036060830152613f9b8184613ec8565b905095945050505050565b7f4e6f6e4578697374696e673a204b65792069736e27742072656769737465726560008201527f6400000000000000000000000000000000000000000000000000000000000000602082015250565b6000614002602183613186565b915061400d82613fa6565b604082019050919050565b6000602082019050818103600083015261403181613ff5565b9050919050565b7f4e6f6e4578697374696e673a204b657920646f65736e2774206861766520737560008201527f636820707572706f736500000000000000000000000000000000000000000000602082015250565b6000614094602a83613186565b915061409f82614038565b604082019050919050565b600060208201905081810360008301526140c381614087565b9050919050565b6000815190506140d981612ef7565b92915050565b6000815190506140ee8161324e565b92915050565b600061410761410284613042565b613027565b90508281526020810184848401111561412357614122612fb1565b5b61412e848285613197565b509392505050565b600082601f83011261414b5761414a612fac565b5b815161415b8482602086016140f4565b91505092915050565b6000614177614172846134e0565b613027565b90508281526020810184848401111561419357614192612fb1565b5b61419e848285613197565b509392505050565b600082601f8301126141bb576141ba612fac565b5b81516141cb848260208601614164565b91505092915050565b60008060008060008060c087890312156141f1576141f0612d66565b5b60006141ff89828a016140ca565b965050602061421089828a016140ca565b955050604061422189828a016140df565b945050606087015167ffffffffffffffff81111561424257614241612d6b565b5b61424e89828a01614136565b935050608087015167ffffffffffffffff81111561426f5761426e612d6b565b5b61427b89828a01614136565b92505060a087015167ffffffffffffffff81111561429c5761429b612d6b565b5b6142a889828a016141a6565b9150509295509295509295565b7f436f6e666c6963743a20436c61696d20616c7265616479207265766f6b656400600082015250565b60006142eb601f83613186565b91506142f6826142b5565b602082019050919050565b6000602082019050818103600083015261431a816142de565b9050919050565b7f43616e6e6f7420617070726f76652061206e6f6e2d6578697374696e6720657860008201527f65637574696f6e00000000000000000000000000000000000000000000000000602082015250565b600061437d602783613186565b915061438882614321565b604082019050919050565b600060208201905081810360008301526143ac81614370565b9050919050565b7f5265717565737420616c72656164792065786563757465640000000000000000600082015250565b60006143e9601883613186565b91506143f4826143b3565b602082019050919050565b60006020820190508181036000830152614418816143dc565b9050919050565b7f53656e64657220646f6573206e6f742068617665206d616e6167656d656e742060008201527f6b65790000000000000000000000000000000000000000000000000000000000602082015250565b600061447b602383613186565b91506144868261441f565b604082019050919050565b600060208201905081810360008301526144aa8161446e565b9050919050565b7f53656e64657220646f6573206e6f74206861766520616374696f6e206b657900600082015250565b60006144e7601f83613186565b91506144f2826144b1565b602082019050919050565b60006020820190508181036000830152614516816144da565b9050919050565b6000815461452a81613de9565b6145348186613be0565b9450600182166000811461454f576001811461456457614597565b60ff1983168652811515820286019350614597565b61456d85613e1a565b60005b8381101561458f57815481890152600182019150602081019050614570565b838801955050505b50505092915050565b60006145ac828461451d565b915081905092915050565b600060208201905081810360008301526145d18184613e2f565b905092915050565b60006145e58385613be0565b93506145f2838584613073565b82840190509392505050565b600061460b8284866145d9565b91508190509392505050565b6000819050919050565b600061463c6146376146328461321c565b614617565b61321c565b9050919050565b600061464e82614621565b9050919050565b600061466082614643565b9050919050565b61467081614655565b82525050565b600060808201905061468b6000830187614667565b6146986020830186612e9b565b81810360408301526146aa81856138b3565b905081810360608301526146be81846138b3565b905095945050505050565b6000815190506146d8816132ba565b92915050565b6000602082840312156146f4576146f3612d66565b5b6000614702848285016146c9565b91505092915050565b7f696e76616c696420636c61696d00000000000000000000000000000000000000600082015250565b6000614741600d83613186565b915061474c8261470b565b602082019050919050565b6000602082019050818103600083015261477081614734565b9050919050565b600060408201905061478c6000830185613840565b6147996020830184612e9b565b9392505050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026147ed7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826147b0565b6147f786836147b0565b95508019841693508086168417925050509392505050565b600061482a61482561482084612dff565b614617565b612dff565b9050919050565b6000819050919050565b6148448361480f565b61485861485082614831565b8484546147bd565b825550505050565b600090565b61486d614860565b61487881848461483b565b505050565b5b8181101561489c57614891600082614865565b60018101905061487e565b5050565b601f8211156148e1576148b281613e1a565b6148bb846147a0565b810160208510156148ca578190505b6148de6148d6856147a0565b83018261487d565b50505b505050565b600082821c905092915050565b6000614904600019846008026148e6565b1980831691505092915050565b600061491d83836148f3565b9150826002028217905092915050565b61493682613897565b67ffffffffffffffff81111561494f5761494e612fc7565b5b6149598254613de9565b6149648282856148a0565b600060209050601f8311600181146149975760008415614985578287015190505b61498f8582614911565b8655506149f7565b601f1984166149a586613e1a565b60005b828110156149cd578489015182556001820191506020850194506020810190506149a8565b868310156149ea57848901516149e6601f8916826148f3565b8355505b6001600288020188555050505b505050505050565b601f821115614a4057614a1181613eb3565b614a1a846147a0565b81016020851015614a29578190505b614a3d614a35856147a0565b83018261487d565b50505b505050565b614a4e8261317b565b67ffffffffffffffff811115614a6757614a66612fc7565b5b614a718254613de9565b614a7c8282856149ff565b600060209050601f831160018114614aaf5760008415614a9d578287015190505b614aa78582614911565b865550614b0f565b601f198416614abd86613eb3565b60005b82811015614ae557848901518255600182019150602085019450602081019050614ac0565b86831015614b025784890151614afe601f8916826148f3565b8355505b6001600288020188555050505b505050505050565b6000608082019050614b2c6000830187612e9b565b8181036020830152614b3e81866138b3565b90508181036040830152614b5281856138b3565b90508181036060830152614b6681846131c1565b905095945050505050565b60006020820190508181036000830152614b8b81846138b3565b905092915050565b6000606082019050614ba86000830186614667565b614bb56020830185612e9b565b8181036040830152614bc781846138b3565b9050949350505050565b600081905092915050565b7f19457468657265756d205369676e6564204d6573736167653a0a333200000000600082015250565b6000614c12601c83614bd1565b9150614c1d82614bdc565b601c82019050919050565b6000819050919050565b614c43614c3e82612d70565b614c28565b82525050565b6000614c5482614c05565b9150614c608284614c32565b60208201915081905092915050565b600060ff82169050919050565b6000614c8782614c6f565b9150614c9283614c6f565b9250828201905060ff811115614cab57614caa613b69565b5b92915050565b614cba81614c6f565b82525050565b6000608082019050614cd56000830187612eaa565b614ce26020830186614cb1565b614cef6040830185612eaa565b614cfc6060830184612eaa565b95945050505050565b7f696e76616c696420617267756d656e74202d207a65726f206164647265737300600082015250565b6000614d3b601f83613186565b9150614d4682614d05565b602082019050919050565b60006020820190508181036000830152614d6a81614d2e565b9050919050565b7f496e697469616c206b65792077617320616c72656164792073657475702e0000600082015250565b6000614da7601e83613186565b9150614db282614d71565b602082019050919050565b60006020820190508181036000830152614dd681614d9a565b905091905056fea264697066735822122012e0b2d421217def100b24b630b77c211de5630db0979e891465c4e98ae8fd6a64736f6c63430008110033",
  "deployedBytecode": "0x60806040526004361061011f5760003560e01c80639f7f9edd116100a0578063c4d66de811610064578063c4d66de814610486578063c9100bcb146104af578063d202158d146104f1578063d23452491461052e578063fb307b341461056b5761011f565b80639f7f9edd14610376578063b1a34e0d1461039f578063b61d27f6146103dc578063c0969a6e1461040c578063c3b129e3146104495761011f565b806354fd4d50116100e757806354fd4d501461025757806373c3370814610282578063747442d3146102bf57806380e9e9e1146102fc5780639010f726146103395761011f565b806312aaac70146101245780631d381240146101635780632646b264146101a05780634eee424a146101dd57806353d413c51461021a575b600080fd5b34801561013057600080fd5b5061014b60048036038101906101469190612da6565b6105a8565b60405161015a93929190612eb9565b60405180910390f35b34801561016f57600080fd5b5061018a60048036038101906101859190612f23565b610650565b6040516101979190612f91565b60405180910390f35b3480156101ac57600080fd5b506101c760048036038101906101c291906130f2565b610978565b6040516101d49190612f91565b60405180910390f35b3480156101e957600080fd5b5061020460048036038101906101ff9190612da6565b6109be565b6040516102119190612f91565b60405180910390f35b34801561022657600080fd5b50610241600480360381019061023c919061313b565b610d95565b60405161024e9190612f91565b60405180910390f35b34801561026357600080fd5b5061026c611232565b60405161027991906131fa565b60405180910390f35b34801561028e57600080fd5b506102a960048036038101906102a4919061327a565b61126f565b6040516102b69190612f91565b60405180910390f35b3480156102cb57600080fd5b506102e660048036038101906102e191906132e6565b6114fd565b6040516102f39190612f91565b60405180910390f35b34801561030857600080fd5b50610323600480360381019061031e9190613326565b611a71565b6040516103309190613411565b60405180910390f35b34801561034557600080fd5b50610360600480360381019061035b9190613326565b611adc565b60405161036d9190613411565b60405180910390f35b34801561038257600080fd5b5061039d60048036038101906103989190613493565b611b47565b005b3480156103ab57600080fd5b506103c660048036038101906103c19190613581565b611d32565b6040516103d39190613662565b60405180910390f35b6103f660048036038101906103f1919061367d565b6121aa565b60405161040391906136ec565b60405180910390f35b34801561041857600080fd5b50610433600480360381019061042e9190613745565b6123d1565b6040516104409190612f91565b60405180910390f35b34801561045557600080fd5b50610470600480360381019061046b91906137e4565b6124ab565b60405161047d919061384f565b60405180910390f35b34801561049257600080fd5b506104ad60048036038101906104a8919061386a565b61255b565b005b3480156104bb57600080fd5b506104d660048036038101906104d19190612da6565b6125d6565b6040516104e8969594939291906138ec565b60405180910390f35b3480156104fd57600080fd5b506105186004803603810190610513919061313b565b612840565b6040516105259190612f91565b60405180910390f35b34801561053a57600080fd5b50610555600480360381019061055091906130f2565b61295a565b6040516105629190612f91565b60405180910390f35b34801561057757600080fd5b50610592600480360381019061058d9190612da6565b612990565b60405161059f9190613962565b60405180910390f35b606060008060016000858152602001908152602001600020600001600160008681526020019081526020016000206001015460016000878152602001908152602001600020600201548280548060200260200160405190810160405280929190818152602001828054801561063c57602002820191906000526020600020905b815481526020019060010190808311610628575b505050505092509250925092509193909250565b600060011515600660019054906101000a900460ff161515146106a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069f906139f6565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061070f575061070e336040516020016106f1919061384f565b604051602081830303815290604052805190602001206001612840565b5b61074e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161074590613a88565b60405180910390fd5b83600160008681526020019081526020016000206002015403610899576000600160008681526020019081526020016000206000018054806020026020016040519081016040528092919081815260200182805480156107cd57602002820191906000526020600020905b8154815260200190600101908083116107b9575b5050505050905060005b81518110156108555760008282815181106107f5576107f4613aa8565b5b60200260200101519050858103610841576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083890613b49565b60405180910390fd5b50808061084d90613b98565b9150506107d7565b506001600086815260200190815260200160002060000184908060018154018082558091505060019003906000526020600020016000909190919091505550610904565b836001600086815260200190815260200160002060020181905550604051806020016040528084815250600160008681526020019081526020016000206000019060016108e7929190612bb2565b508160016000868152602001908152602001600020600101819055505b600260008481526020019081526020016000208490806001815401808255809150506001900390600052602060002001600090919091909150558183857f480000bb1edad8ca1470381cc334b1917fbd51c6531f3a623ea8e0ec7e38a6e960405160405180910390a4600190509392505050565b600060388260405161098a9190613c1c565b908152602001604051809103902060009054906101000a900460ff16156109b457600190506109b9565b600090505b919050565b600060011515600660019054906101000a900460ff16151514610a16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0d906139f6565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610a7d5750610a7c33604051602001610a5f919061384f565b604051602081830303815290604052805190602001206003612840565b5b610abc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab390613ca5565b60405180910390fd5b60006004600084815260200190815260200160002060000154905060008103610b1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1190613d37565b60405180910390fd5b600080600560008481526020019081526020016000208054905090505b84600560008581526020019081526020016000208381548110610b5d57610b5c613aa8565b5b906000526020600020015414610b83578180610b7890613b98565b925050808210610b37575b60056000848152602001908152602001600020600182610ba39190613d57565b81548110610bb457610bb3613aa8565b5b9060005260206000200154600560008581526020019081526020016000208381548110610be457610be3613aa8565b5b906000526020600020018190555060056000848152602001908152602001600020805480610c1557610c14613d8b565b5b600190038181906000526020600020016000905590556004600086815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683867f3cf57863a89432c61c4a27073c6ee39e8a764bff5a05aebfbcdcdc80b2e6130a600460008a815260200190815260200160002060010154600460008b8152602001908152602001600020600301600460008c8152602001908152602001600020600401600460008d8152602001908152602001600020600501604051610d049493929190613f4c565b60405180910390a46004600086815260200190815260200160002060008082016000905560018201600090556002820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600382016000610d679190612bff565b600482016000610d779190612bff565b600582016000610d879190612c3f565b505060019350505050919050565b600060011515600660019054906101000a900460ff16151514610ded576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de4906139f6565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610e545750610e5333604051602001610e36919061384f565b604051602081830303815290604052805190602001206001612840565b5b610e93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8a90613a88565b60405180910390fd5b82600160008581526020019081526020016000206002015414610eeb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee290614018565b60405180910390fd5b600060016000858152602001908152602001600020600001805480602002602001604051908101604052809291908181526020018280548015610f4d57602002820191906000526020600020905b815481526020019060010190808311610f39575b5050505050905060005b83828281518110610f6b57610f6a613aa8565b5b602002602001015114610fce578080610f8390613b98565b91505081518103610fc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc0906140aa565b60405180910390fd5b610f57565b8160018351610fdd9190613d57565b81518110610fee57610fed613aa8565b5b602002602001015182828151811061100957611008613aa8565b5b6020026020010181815250508160016000878152602001908152602001600020600001908051906020019061103f929190612c7f565b506001600086815260200190815260200160002060000180548061106657611065613d8b565b5b60019003818190600052602060002001600090559055600080600260008781526020019081526020016000208054905090505b866002600088815260200190815260200160002083815481106110bf576110be613aa8565b5b9060005260206000200154146110e55781806110da90613b98565b925050808210611099575b600260008781526020019081526020016000206001826111059190613d57565b8154811061111657611115613aa8565b5b906000526020600020015460026000888152602001908152602001600020838154811061114657611145613aa8565b5b90600052602060002001819055506002600087815260200190815260200160002080548061117757611176613d8b565b5b600190038181906000526020600020016000905590556000600160008981526020019081526020016000206001015490506000600186516111b89190613d57565b036111f45760016000898152602001908152602001600020600080820160006111e19190612ccc565b6001820160009055600282016000905550505b8087897f585a4aef50f8267a92b32412b331b20f7f8b96f2245b253b9cc50dcc621d339760405160405180910390a460019550505050505092915050565b60606040518060400160405280600581526020017f322e322e31000000000000000000000000000000000000000000000000000000815250905090565b600060011515600660019054906101000a900460ff161515146112c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112be906139f6565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061132e575061132d33604051602001611310919061384f565b604051602081830303815290604052805190602001206001612840565b5b61136d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136490613a88565b60405180910390fd5b60008060006060808673ffffffffffffffffffffffffffffffffffffffff1663c9100bcb896040518263ffffffff1660e01b81526004016113ae9190613662565b600060405180830381865afa1580156113cb573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906113f491906141d4565b5080955081965082975083985084995050505050506038826040516114199190613c1c565b908152602001604051809103902060009054906101000a900460ff1615611475576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146c90614301565b60405180910390fd5b60016038836040516114879190613c1c565b908152602001604051809103902060006101000a81548160ff021916908315150217905550816040516114ba9190613c1c565b60405180910390207f7f484e37f24c0a92f81dd74afa3027b3ea31f2e9fb6b9fa29fe9865f81ac556960405160405180910390a260019550505050505092915050565b600060011515600660019054906101000a900460ff16151514611555576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154c906139f6565b60405180910390fd5b6000548310611599576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159090614393565b60405180910390fd5b6003600084815260200190815260200160002060030160019054906101000a900460ff16156115fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f4906143ff565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff166003600085815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036116db576116973360405160200161167a919061384f565b604051602081830303815290604052805190602001206001612840565b6116d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cd90614491565b60405180910390fd5b61174c565b61170c336040516020016116ef919061384f565b604051602081830303815290604052805190602001206002612840565b61174b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611742906144fd565b60405180910390fd5b5b827fb3932da477fe5d6c8ff2eafef050c0f3a1af18fc07121001482600f36f3715d88360405161177c9190612f91565b60405180910390a26001151582151503611a375760016003600085815260200190815260200160002060030160006101000a81548160ff0219169083151502179055506003600084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660036000858152602001908152602001600020600101546003600086815260200190815260200160002060020160405161184691906145a0565b60006040518083038185875af1925050503d8060008114611883576040519150601f19603f3d011682016040523d82523d6000602084013e611888565b606091505b505080915050801561197d5760016003600085815260200190815260200160002060030160016101000a81548160ff02191690831515021790555060036000848152602001908152602001600020600101546003600085815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16847f1f920dbda597d7bf95035464170fa58d0a4b57f13a1c315ace6793b9f63688b86003600088815260200190815260200160002060020160405161196c91906145b7565b60405180910390a460019050611a6b565b60036000848152602001908152602001600020600101546003600085815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16847fe10c49d9f7c71da23262367013434763cfdb2332267641728d25cd712c5c6a6860036000888152602001908152602001600020600201604051611a2691906145b7565b60405180910390a460009050611a6b565b60006003600085815260200190815260200160002060030160006101000a81548160ff021916908315150217905550600090505b92915050565b606060056000838152602001908152602001600020805480602002602001604051908101604052809291908181526020018280548015611ad057602002820191906000526020600020905b815481526020019060010190808311611abc575b50505050509050919050565b606060026000838152602001908152602001600020805480602002602001604051908101604052809291908181526020018280548015611b3b57602002820191906000526020600020905b815481526020019060010190808311611b27575b50505050509050919050565b60011515600660019054906101000a900460ff16151514611b9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b94906139f6565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611c045750611c0333604051602001611be6919061384f565b604051602081830303815290604052805190602001206001612840565b5b611c43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3a90613a88565b60405180910390fd5b60388282604051611c559291906145fe565b908152602001604051809103902060009054906101000a900460ff1615611cb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca890614301565b60405180910390fd5b600160388383604051611cc59291906145fe565b908152602001604051809103902060006101000a81548160ff0219169083151502179055508181604051611cfa9291906145fe565b60405180910390207f7f484e37f24c0a92f81dd74afa3027b3ea31f2e9fb6b9fa29fe9865f81ac556960405160405180910390a25050565b600060011515600660019054906101000a900460ff16151514611d8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d81906139f6565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611df15750611df033604051602001611dd3919061384f565b604051602081830303815290604052805190602001206003612840565b5b611e30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2790613ca5565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614611f23578473ffffffffffffffffffffffffffffffffffffffff1663c0969a6e308987876040518563ffffffff1660e01b8152600401611ea29493929190614676565b602060405180830381865afa158015611ebf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ee391906146de565b611f22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1990614757565b60405180910390fd5b5b60008588604051602001611f38929190614777565b60405160208183030381529060405280519060200120905087600460008381526020019081526020016000206000018190555086600460008381526020019081526020016000206001018190555084600460008381526020019081526020016000206003019081611fa9919061492d565b5083600460008381526020019081526020016000206004019081611fcd919061492d565b5082600460008381526020019081526020016000206005019081611ff19190614a45565b508573ffffffffffffffffffffffffffffffffffffffff166004600083815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146121455760056000898152602001908152602001600020819080600181540180825580915050600190039060005260206000200160009091909190915055856004600083815260200190815260200160002060020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508573ffffffffffffffffffffffffffffffffffffffff1688827f46149b18aa084502c3f12bc75e19eda8bda8d102b82cce8474677a6d0d5f43c58a8989896040516121389493929190614b17565b60405180910390a461219c565b8573ffffffffffffffffffffffffffffffffffffffff1688827f3bab293fc00db832d7619a9299914251b8747c036867ec056cbd506f60135b138a8989896040516121939493929190614b17565b60405180910390a45b809150509695505050505050565b600060011515600660019054906101000a900460ff16151514612202576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f9906139f6565b60405180910390fd5b600080549050846003600083815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508360036000838152602001908152602001600020600101819055508260036000838152602001908152602001600020600201908161229b919061492d565b506000808154809291906122ae90613b98565b9190505550838573ffffffffffffffffffffffffffffffffffffffff16827f8afcfabcb00e47a53a8fc3e9f23ff47ee1926194bb1350dd007c50b412a6cee8866040516122fb9190614b71565b60405180910390a461233433604051602001612317919061384f565b604051602081830303815290604052805190602001206001612840565b1561234a576123448160016114fd565b506123c6565b3073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156123b357506123b233604051602001612395919061384f565b604051602081830303815290604052805190602001206002612840565b5b156123c5576123c38160016114fd565b505b5b809150509392505050565b6000808585846040516020016123e993929190614b93565b6040516020818303038152906040528051906020012090506000816040516020016124149190614c49565b604051602081830303815290604052805190602001209050600061243886836124ab565b905060008160405160200161244d919061384f565b604051602081830303815290604052805190602001209050612470816003612840565b801561248857506000151561248488610978565b1515145b1561249a5760019450505050506124a3565b60009450505050505b949350505050565b60008060008060418651146124c65760009350505050612555565b6020860151925060408601519150606086015160001a9050601b8160ff1610156124fa57601b816124f79190614c7c565b90505b60006001868386866040516000815260200160405260405161251f9493929190614cc0565b6020604051602081039080840390855afa158015612541573d6000803e3d6000fd5b505050602060405103519050809450505050505b92915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036125ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125c190614d51565b60405180910390fd5b6125d3816129fe565b50565b6000806000606080606060046000888152602001908152602001600020600001546004600089815260200190815260200160002060010154600460008a815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600460008b8152602001908152602001600020600301600460008c8152602001908152602001600020600401600460008d815260200190815260200160002060050182805461269390613de9565b80601f01602080910402602001604051908101604052809291908181526020018280546126bf90613de9565b801561270c5780601f106126e15761010080835404028352916020019161270c565b820191906000526020600020905b8154815290600101906020018083116126ef57829003601f168201915b5050505050925081805461271f90613de9565b80601f016020809104026020016040519081016040528092919081815260200182805461274b90613de9565b80156127985780601f1061276d57610100808354040283529160200191612798565b820191906000526020600020905b81548152906001019060200180831161277b57829003601f168201915b505050505091508080546127ab90613de9565b80601f01602080910402602001604051908101604052809291908181526020018280546127d790613de9565b80156128245780601f106127f957610100808354040283529160200191612824565b820191906000526020600020905b81548152906001019060200180831161280757829003601f168201915b5050505050905095509550955095509550955091939550919395565b60008060016000858152602001908152602001600020604051806060016040529081600082018054806020026020016040519081016040528092919081815260200182805480156128b057602002820191906000526020600020905b81548152602001906001019080831161289c575b505050505081526020016001820154815260200160028201548152505090506000801b8160400151036128e7576000915050612954565b60005b81600001515181101561294d576000826000015182815181106129105761290f613aa8565b5b60200260200101519050600181148061292857508481145b156129395760019350505050612954565b50808061294590613b98565b9150506128ea565b5060009150505b92915050565b6038818051602081018201805184825260208301602085012081835280955050505050506000915054906101000a900460ff1681565b6060600160008381526020019081526020016000206000018054806020026020016040519081016040528092919081815260200182805480156129f257602002820191906000526020600020905b8154815260200190600101908083116129de575b50505050509050919050565b600660009054906101000a900460ff161580612a1e5750612a1d612b9b565b5b612a5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a5490614dbd565b60405180910390fd5b6001600660006101000a81548160ff0219169083151502179055506001600660016101000a81548160ff021916908315150217905550600081604051602001612aa6919061384f565b6040516020818303038152906040528051906020012090508060016000838152602001908152602001600020600201819055506040518060200160405280600160ff1681525060016000838152602001908152602001600020600001906001612b10929190612ced565b506001806000838152602001908152602001600020600101819055506002600060018152602001908152602001600020819080600181540180825580915050600190039060005260206000200160009091909190915055600180827f480000bb1edad8ca1470381cc334b1917fbd51c6531f3a623ea8e0ec7e38a6e960405160405180910390a45050565b6000803090506000813b9050600081149250505090565b828054828255906000526020600020908101928215612bee579160200282015b82811115612bed578251825591602001919060010190612bd2565b5b509050612bfb9190612d3f565b5090565b508054612c0b90613de9565b6000825580601f10612c1d5750612c3c565b601f016020900490600052602060002090810190612c3b9190612d3f565b5b50565b508054612c4b90613de9565b6000825580601f10612c5d5750612c7c565b601f016020900490600052602060002090810190612c7b9190612d3f565b5b50565b828054828255906000526020600020908101928215612cbb579160200282015b82811115612cba578251825591602001919060010190612c9f565b5b509050612cc89190612d3f565b5090565b5080546000825590600052602060002090810190612cea9190612d3f565b50565b828054828255906000526020600020908101928215612d2e579160200282015b82811115612d2d578251829060ff16905591602001919060010190612d0d565b5b509050612d3b9190612d3f565b5090565b5b80821115612d58576000816000905550600101612d40565b5090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b612d8381612d70565b8114612d8e57600080fd5b50565b600081359050612da081612d7a565b92915050565b600060208284031215612dbc57612dbb612d66565b5b6000612dca84828501612d91565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000819050919050565b612e1281612dff565b82525050565b6000612e248383612e09565b60208301905092915050565b6000602082019050919050565b6000612e4882612dd3565b612e528185612dde565b9350612e5d83612def565b8060005b83811015612e8e578151612e758882612e18565b9750612e8083612e30565b925050600181019050612e61565b5085935050505092915050565b612ea481612dff565b82525050565b612eb381612d70565b82525050565b60006060820190508181036000830152612ed38186612e3d565b9050612ee26020830185612e9b565b612eef6040830184612eaa565b949350505050565b612f0081612dff565b8114612f0b57600080fd5b50565b600081359050612f1d81612ef7565b92915050565b600080600060608486031215612f3c57612f3b612d66565b5b6000612f4a86828701612d91565b9350506020612f5b86828701612f0e565b9250506040612f6c86828701612f0e565b9150509250925092565b60008115159050919050565b612f8b81612f76565b82525050565b6000602082019050612fa66000830184612f82565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612fff82612fb6565b810181811067ffffffffffffffff8211171561301e5761301d612fc7565b5b80604052505050565b6000613031612d5c565b905061303d8282612ff6565b919050565b600067ffffffffffffffff82111561305d5761305c612fc7565b5b61306682612fb6565b9050602081019050919050565b82818337600083830152505050565b600061309561309084613042565b613027565b9050828152602081018484840111156130b1576130b0612fb1565b5b6130bc848285613073565b509392505050565b600082601f8301126130d9576130d8612fac565b5b81356130e9848260208601613082565b91505092915050565b60006020828403121561310857613107612d66565b5b600082013567ffffffffffffffff81111561312657613125612d6b565b5b613132848285016130c4565b91505092915050565b6000806040838503121561315257613151612d66565b5b600061316085828601612d91565b925050602061317185828601612f0e565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b838110156131b557808201518184015260208101905061319a565b60008484015250505050565b60006131cc8261317b565b6131d68185613186565b93506131e6818560208601613197565b6131ef81612fb6565b840191505092915050565b6000602082019050818103600083015261321481846131c1565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006132478261321c565b9050919050565b6132578161323c565b811461326257600080fd5b50565b6000813590506132748161324e565b92915050565b6000806040838503121561329157613290612d66565b5b600061329f85828601612d91565b92505060206132b085828601613265565b9150509250929050565b6132c381612f76565b81146132ce57600080fd5b50565b6000813590506132e0816132ba565b92915050565b600080604083850312156132fd576132fc612d66565b5b600061330b85828601612f0e565b925050602061331c858286016132d1565b9150509250929050565b60006020828403121561333c5761333b612d66565b5b600061334a84828501612f0e565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61338881612d70565b82525050565b600061339a838361337f565b60208301905092915050565b6000602082019050919050565b60006133be82613353565b6133c8818561335e565b93506133d38361336f565b8060005b838110156134045781516133eb888261338e565b97506133f6836133a6565b9250506001810190506133d7565b5085935050505092915050565b6000602082019050818103600083015261342b81846133b3565b905092915050565b600080fd5b600080fd5b60008083601f84011261345357613452612fac565b5b8235905067ffffffffffffffff8111156134705761346f613433565b5b60208301915083600182028301111561348c5761348b613438565b5b9250929050565b600080602083850312156134aa576134a9612d66565b5b600083013567ffffffffffffffff8111156134c8576134c7612d6b565b5b6134d48582860161343d565b92509250509250929050565b600067ffffffffffffffff8211156134fb576134fa612fc7565b5b61350482612fb6565b9050602081019050919050565b600061352461351f846134e0565b613027565b9050828152602081018484840111156135405761353f612fb1565b5b61354b848285613073565b509392505050565b600082601f83011261356857613567612fac565b5b8135613578848260208601613511565b91505092915050565b60008060008060008060c0878903121561359e5761359d612d66565b5b60006135ac89828a01612f0e565b96505060206135bd89828a01612f0e565b95505060406135ce89828a01613265565b945050606087013567ffffffffffffffff8111156135ef576135ee612d6b565b5b6135fb89828a016130c4565b935050608087013567ffffffffffffffff81111561361c5761361b612d6b565b5b61362889828a016130c4565b92505060a087013567ffffffffffffffff81111561364957613648612d6b565b5b61365589828a01613553565b9150509295509295509295565b60006020820190506136776000830184612eaa565b92915050565b60008060006060848603121561369657613695612d66565b5b60006136a486828701613265565b93505060206136b586828701612f0e565b925050604084013567ffffffffffffffff8111156136d6576136d5612d6b565b5b6136e2868287016130c4565b9150509250925092565b60006020820190506137016000830184612e9b565b92915050565b60006137128261323c565b9050919050565b61372281613707565b811461372d57600080fd5b50565b60008135905061373f81613719565b92915050565b6000806000806080858703121561375f5761375e612d66565b5b600061376d87828801613730565b945050602061377e87828801612f0e565b935050604085013567ffffffffffffffff81111561379f5761379e612d6b565b5b6137ab878288016130c4565b925050606085013567ffffffffffffffff8111156137cc576137cb612d6b565b5b6137d8878288016130c4565b91505092959194509250565b600080604083850312156137fb576137fa612d66565b5b600083013567ffffffffffffffff81111561381957613818612d6b565b5b613825858286016130c4565b925050602061383685828601612d91565b9150509250929050565b6138498161323c565b82525050565b60006020820190506138646000830184613840565b92915050565b6000602082840312156138805761387f612d66565b5b600061388e84828501613265565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60006138be82613897565b6138c881856138a2565b93506138d8818560208601613197565b6138e181612fb6565b840191505092915050565b600060c0820190506139016000830189612e9b565b61390e6020830188612e9b565b61391b6040830187613840565b818103606083015261392d81866138b3565b9050818103608083015261394181856138b3565b905081810360a083015261395581846131c1565b9050979650505050505050565b6000602082019050818103600083015261397c8184612e3d565b905092915050565b7f496e746572616374696e67207769746820746865206c69627261727920636f6e60008201527f747261637420697320666f7262696464656e2e00000000000000000000000000602082015250565b60006139e0603383613186565b91506139eb82613984565b604082019050919050565b60006020820190508181036000830152613a0f816139d3565b9050919050565b7f5065726d697373696f6e733a2053656e64657220646f6573206e6f742068617660008201527f65206d616e6167656d656e74206b657900000000000000000000000000000000602082015250565b6000613a72603083613186565b9150613a7d82613a16565b604082019050919050565b60006020820190508181036000830152613aa181613a65565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f436f6e666c6963743a204b657920616c72656164792068617320707572706f7360008201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b6000613b33602183613186565b9150613b3e82613ad7565b604082019050919050565b60006020820190508181036000830152613b6281613b26565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613ba382612dff565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613bd557613bd4613b69565b5b600182019050919050565b600081905092915050565b6000613bf682613897565b613c008185613be0565b9350613c10818560208601613197565b80840191505092915050565b6000613c288284613beb565b915081905092915050565b7f5065726d697373696f6e733a2053656e64657220646f6573206e6f742068617660008201527f6520636c61696d207369676e6572206b65790000000000000000000000000000602082015250565b6000613c8f603283613186565b9150613c9a82613c33565b604082019050919050565b60006020820190508181036000830152613cbe81613c82565b9050919050565b7f4e6f6e4578697374696e673a205468657265206973206e6f20636c61696d207760008201527f6974682074686973204944000000000000000000000000000000000000000000602082015250565b6000613d21602b83613186565b9150613d2c82613cc5565b604082019050919050565b60006020820190508181036000830152613d5081613d14565b9050919050565b6000613d6282612dff565b9150613d6d83612dff565b9250828203905081811115613d8557613d84613b69565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613e0157607f821691505b602082108103613e1457613e13613dba565b5b50919050565b60008190508160005260206000209050919050565b60008154613e3c81613de9565b613e4681866138a2565b94506001821660008114613e615760018114613e7757613eaa565b60ff198316865281151560200286019350613eaa565b613e8085613e1a565b60005b83811015613ea257815481890152600182019150602081019050613e83565b808801955050505b50505092915050565b60008190508160005260206000209050919050565b60008154613ed581613de9565b613edf8186613186565b94506001821660008114613efa5760018114613f1057613f43565b60ff198316865281151560200286019350613f43565b613f1985613eb3565b60005b83811015613f3b57815481890152600182019150602081019050613f1c565b808801955050505b50505092915050565b6000608082019050613f616000830187612e9b565b8181036020830152613f738186613e2f565b90508181036040830152613f878185613e2f565b90508181036060830152613f9b8184613ec8565b905095945050505050565b7f4e6f6e4578697374696e673a204b65792069736e27742072656769737465726560008201527f6400000000000000000000000000000000000000000000000000000000000000602082015250565b6000614002602183613186565b915061400d82613fa6565b604082019050919050565b6000602082019050818103600083015261403181613ff5565b9050919050565b7f4e6f6e4578697374696e673a204b657920646f65736e2774206861766520737560008201527f636820707572706f736500000000000000000000000000000000000000000000602082015250565b6000614094602a83613186565b915061409f82614038565b604082019050919050565b600060208201905081810360008301526140c381614087565b9050919050565b6000815190506140d981612ef7565b92915050565b6000815190506140ee8161324e565b92915050565b600061410761410284613042565b613027565b90508281526020810184848401111561412357614122612fb1565b5b61412e848285613197565b509392505050565b600082601f83011261414b5761414a612fac565b5b815161415b8482602086016140f4565b91505092915050565b6000614177614172846134e0565b613027565b90508281526020810184848401111561419357614192612fb1565b5b61419e848285613197565b509392505050565b600082601f8301126141bb576141ba612fac565b5b81516141cb848260208601614164565b91505092915050565b60008060008060008060c087890312156141f1576141f0612d66565b5b60006141ff89828a016140ca565b965050602061421089828a016140ca565b955050604061422189828a016140df565b945050606087015167ffffffffffffffff81111561424257614241612d6b565b5b61424e89828a01614136565b935050608087015167ffffffffffffffff81111561426f5761426e612d6b565b5b61427b89828a01614136565b92505060a087015167ffffffffffffffff81111561429c5761429b612d6b565b5b6142a889828a016141a6565b9150509295509295509295565b7f436f6e666c6963743a20436c61696d20616c7265616479207265766f6b656400600082015250565b60006142eb601f83613186565b91506142f6826142b5565b602082019050919050565b6000602082019050818103600083015261431a816142de565b9050919050565b7f43616e6e6f7420617070726f76652061206e6f6e2d6578697374696e6720657860008201527f65637574696f6e00000000000000000000000000000000000000000000000000602082015250565b600061437d602783613186565b915061438882614321565b604082019050919050565b600060208201905081810360008301526143ac81614370565b9050919050565b7f5265717565737420616c72656164792065786563757465640000000000000000600082015250565b60006143e9601883613186565b91506143f4826143b3565b602082019050919050565b60006020820190508181036000830152614418816143dc565b9050919050565b7f53656e64657220646f6573206e6f742068617665206d616e6167656d656e742060008201527f6b65790000000000000000000000000000000000000000000000000000000000602082015250565b600061447b602383613186565b91506144868261441f565b604082019050919050565b600060208201905081810360008301526144aa8161446e565b9050919050565b7f53656e64657220646f6573206e6f74206861766520616374696f6e206b657900600082015250565b60006144e7601f83613186565b91506144f2826144b1565b602082019050919050565b60006020820190508181036000830152614516816144da565b9050919050565b6000815461452a81613de9565b6145348186613be0565b9450600182166000811461454f576001811461456457614597565b60ff1983168652811515820286019350614597565b61456d85613e1a565b60005b8381101561458f57815481890152600182019150602081019050614570565b838801955050505b50505092915050565b60006145ac828461451d565b915081905092915050565b600060208201905081810360008301526145d18184613e2f565b905092915050565b60006145e58385613be0565b93506145f2838584613073565b82840190509392505050565b600061460b8284866145d9565b91508190509392505050565b6000819050919050565b600061463c6146376146328461321c565b614617565b61321c565b9050919050565b600061464e82614621565b9050919050565b600061466082614643565b9050919050565b61467081614655565b82525050565b600060808201905061468b6000830187614667565b6146986020830186612e9b565b81810360408301526146aa81856138b3565b905081810360608301526146be81846138b3565b905095945050505050565b6000815190506146d8816132ba565b92915050565b6000602082840312156146f4576146f3612d66565b5b6000614702848285016146c9565b91505092915050565b7f696e76616c696420636c61696d00000000000000000000000000000000000000600082015250565b6000614741600d83613186565b915061474c8261470b565b602082019050919050565b6000602082019050818103600083015261477081614734565b9050919050565b600060408201905061478c6000830185613840565b6147996020830184612e9b565b9392505050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026147ed7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826147b0565b6147f786836147b0565b95508019841693508086168417925050509392505050565b600061482a61482561482084612dff565b614617565b612dff565b9050919050565b6000819050919050565b6148448361480f565b61485861485082614831565b8484546147bd565b825550505050565b600090565b61486d614860565b61487881848461483b565b505050565b5b8181101561489c57614891600082614865565b60018101905061487e565b5050565b601f8211156148e1576148b281613e1a565b6148bb846147a0565b810160208510156148ca578190505b6148de6148d6856147a0565b83018261487d565b50505b505050565b600082821c905092915050565b6000614904600019846008026148e6565b1980831691505092915050565b600061491d83836148f3565b9150826002028217905092915050565b61493682613897565b67ffffffffffffffff81111561494f5761494e612fc7565b5b6149598254613de9565b6149648282856148a0565b600060209050601f8311600181146149975760008415614985578287015190505b61498f8582614911565b8655506149f7565b601f1984166149a586613e1a565b60005b828110156149cd578489015182556001820191506020850194506020810190506149a8565b868310156149ea57848901516149e6601f8916826148f3565b8355505b6001600288020188555050505b505050505050565b601f821115614a4057614a1181613eb3565b614a1a846147a0565b81016020851015614a29578190505b614a3d614a35856147a0565b83018261487d565b50505b505050565b614a4e8261317b565b67ffffffffffffffff811115614a6757614a66612fc7565b5b614a718254613de9565b614a7c8282856149ff565b600060209050601f831160018114614aaf5760008415614a9d578287015190505b614aa78582614911565b865550614b0f565b601f198416614abd86613eb3565b60005b82811015614ae557848901518255600182019150602085019450602081019050614ac0565b86831015614b025784890151614afe601f8916826148f3565b8355505b6001600288020188555050505b505050505050565b6000608082019050614b2c6000830187612e9b565b8181036020830152614b3e81866138b3565b90508181036040830152614b5281856138b3565b90508181036060830152614b6681846131c1565b905095945050505050565b60006020820190508181036000830152614b8b81846138b3565b905092915050565b6000606082019050614ba86000830186614667565b614bb56020830185612e9b565b8181036040830152614bc781846138b3565b9050949350505050565b600081905092915050565b7f19457468657265756d205369676e6564204d6573736167653a0a333200000000600082015250565b6000614c12601c83614bd1565b9150614c1d82614bdc565b601c82019050919050565b6000819050919050565b614c43614c3e82612d70565b614c28565b82525050565b6000614c5482614c05565b9150614c608284614c32565b60208201915081905092915050565b600060ff82169050919050565b6000614c8782614c6f565b9150614c9283614c6f565b9250828201905060ff811115614cab57614caa613b69565b5b92915050565b614cba81614c6f565b82525050565b6000608082019050614cd56000830187612eaa565b614ce26020830186614cb1565b614cef6040830185612eaa565b614cfc6060830184612eaa565b95945050505050565b7f696e76616c696420617267756d656e74202d207a65726f206164647265737300600082015250565b6000614d3b601f83613186565b9150614d4682614d05565b602082019050919050565b60006020820190508181036000830152614d6a81614d2e565b9050919050565b7f496e697469616c206b65792077617320616c72656164792073657475702e0000600082015250565b6000614da7601e83613186565b9150614db282614d71565b602082019050919050565b60006020820190508181036000830152614dd681614d9a565b905091905056fea264697066735822122012e0b2d421217def100b24b630b77c211de5630db0979e891465c4e98ae8fd6a64736f6c63430008110033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
