{
  "_format": "hh-sol-artifact-1",
  "contractName": "Trust",
  "sourceName": "contracts/trust/Trust.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_owner",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_beneficiary",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_duration",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "EmptySignature",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "EmptySignature",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address payable",
          "name": "_to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_value",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "_data",
          "type": "bytes"
        },
        {
          "internalType": "bytes",
          "name": "_result",
          "type": "bytes"
        }
      ],
      "name": "FailedTransaction",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "bytes",
          "name": "_signature",
          "type": "bytes"
        },
        {
          "internalType": "bytes32",
          "name": "_s",
          "type": "bytes32"
        }
      ],
      "name": "InvalidSValue",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_hash",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "_rehash",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "_signer",
          "type": "address"
        },
        {
          "internalType": "bytes",
          "name": "_signature",
          "type": "bytes"
        }
      ],
      "name": "InvalidSignature",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "bytes",
          "name": "_signature",
          "type": "bytes"
        },
        {
          "internalType": "bytes1",
          "name": "_flag",
          "type": "bytes1"
        }
      ],
      "name": "InvalidSignatureFlag",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "bytes",
          "name": "_signature",
          "type": "bytes"
        }
      ],
      "name": "InvalidSignatureLength",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "bytes",
          "name": "_signature",
          "type": "bytes"
        },
        {
          "internalType": "uint256",
          "name": "_v",
          "type": "uint256"
        }
      ],
      "name": "InvalidVValue",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_sender",
          "type": "address"
        }
      ],
      "name": "NotOwner",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_unlocksAt",
          "type": "uint256"
        }
      ],
      "name": "NotUnlocked",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "bytes",
          "name": "_signature",
          "type": "bytes"
        }
      ],
      "name": "SignerIsAddress0",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_unlocksAt",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_elapsed",
          "type": "uint256"
        }
      ],
      "name": "UnlockInThePast",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_unlocksAt",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_diff",
          "type": "uint256"
        }
      ],
      "name": "UnlockTooEarly",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "bytes",
          "name": "_signature",
          "type": "bytes"
        },
        {
          "internalType": "uint256",
          "name": "_type",
          "type": "uint256"
        },
        {
          "internalType": "bool",
          "name": "_recoverMode",
          "type": "bool"
        }
      ],
      "name": "UnsupportedSignatureType",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address payable",
          "name": "_to",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_value",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "_data",
          "type": "bytes"
        },
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "_result",
          "type": "bytes"
        }
      ],
      "name": "SentTransaction",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_unlocksAt",
          "type": "uint256"
        }
      ],
      "name": "SetUnlocksAt",
      "type": "event"
    },
    {
      "stateMutability": "payable",
      "type": "fallback"
    },
    {
      "inputs": [],
      "name": "beneficiary",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "duration",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "isLocked",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_hash",
          "type": "bytes32"
        },
        {
          "internalType": "bytes",
          "name": "_signature",
          "type": "bytes"
        }
      ],
      "name": "isValidSignature",
      "outputs": [
        {
          "internalType": "bytes4",
          "name": "",
          "type": "bytes4"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes",
          "name": "_data",
          "type": "bytes"
        },
        {
          "internalType": "bytes",
          "name": "_signature",
          "type": "bytes"
        }
      ],
      "name": "isValidSignature",
      "outputs": [
        {
          "internalType": "bytes4",
          "name": "",
          "type": "bytes4"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address payable",
          "name": "_to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_value",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "_data",
          "type": "bytes"
        }
      ],
      "name": "sendTransaction",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_unlocksAt",
          "type": "uint256"
        }
      ],
      "name": "setUnlocksAt",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "unlocksAt",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "stateMutability": "payable",
      "type": "receive"
    }
  ],
  "bytecode": "0x60e060405260001960005534801561001657600080fd5b506040516116433803806116438339810160408190526100359161006c565b6001600160a01b03928316608052911660a05260c0526100a8565b80516001600160a01b038116811461006757600080fd5b919050565b60008060006060848603121561008157600080fd5b61008a84610050565b925061009860208501610050565b9150604084015190509250925092565b60805160a05160c05161152761011c6000396000818160ac0152610a7f0152600081816101640152818161036701528181610450015281816107de01526109ce0152600081816101bd015281816102f3015281816103db015281816104be015281816107a1015261098d01526115276000f3fe6080604052600436106100915760003560e01c80638da5cb5b11610063578063d97771421161004b578063d977714214610201578063e5e288e514610217578063f669fa631461024457005b80638da5cb5b146101ab578063a4e2d634146101df57005b80630fb5a6b41461009a5780631626ba7e146100e157806320c13b0b1461013257806338af3eed1461015257005b3661009857005b005b3480156100a657600080fd5b506100ce7f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b3480156100ed57600080fd5b506101016100fc36600461103f565b610264565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020016100d8565b34801561013e57600080fd5b5061010161014d36600461108b565b610657565b34801561015e57600080fd5b506101867f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100d8565b3480156101b757600080fd5b506101867f000000000000000000000000000000000000000000000000000000000000000081565b3480156101eb57600080fd5b50600054421060405190151581526020016100d8565b34801561020d57600080fd5b506100ce60005481565b34801561022357600080fd5b506102376102323660046110f7565b610787565b6040516100d891906111c4565b34801561025057600080fd5b5061009861025f3660046111de565b610975565b600081810361029f576040517fac241e1100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000808085856102b06001826111f7565b8181106102bf576102bf611237565b909101357fff0000000000000000000000000000000000000000000000000000000000000016915050600081900361031c577f000000000000000000000000000000000000000000000000000000000000000092504691506104bb565b7fff0000000000000000000000000000000000000000000000000000000000000081167f010000000000000000000000000000000000000000000000000000000000000003610390577f000000000000000000000000000000000000000000000000000000000000000092504691506104bb565b7fff0000000000000000000000000000000000000000000000000000000000000081167f020000000000000000000000000000000000000000000000000000000000000003610405577f00000000000000000000000000000000000000000000000000000000000000009250600091506104bb565b7fff0000000000000000000000000000000000000000000000000000000000000081167f03000000000000000000000000000000000000000000000000000000000000000361047a577f00000000000000000000000000000000000000000000000000000000000000009250600091506104bb565b8585826040517f6c1547a60000000000000000000000000000000000000000000000000000000081526004016104b2939291906112af565b60405180910390fd5b507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015610519575060005442105b15610556576000546040517fd69e0d530000000000000000000000000000000000000000000000000000000081526004016104b291815260200190565b6040805130602082015290810187905260608101829052600090608001604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052805160209091012090506105d18184886000896105bf6001826111f7565b926105cc939291906112f5565b610b1b565b61062b57868184886000896105e76001826111f7565b926105f4939291906112f5565b6040517f4ad591080000000000000000000000000000000000000000000000000000000081526004016104b295949392919061131f565b507f1626ba7e000000000000000000000000000000000000000000000000000000009695505050505050565b6000803073ffffffffffffffffffffffffffffffffffffffff16631626ba7e8787604051610686929190611366565b6040519081900381207fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1682526106c89188908890600401611376565b602060405180830381865afa1580156106e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107099190611399565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167f1626ba7e000000000000000000000000000000000000000000000000000000001461075c5761075c6113db565b507f20c13b0b0000000000000000000000000000000000000000000000000000000095945050505050565b60603373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610879573373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610837576040517f245aecd30000000000000000000000000000000000000000000000000000000081523360048201526024016104b2565b600054421015610879576000546040517fd69e0d530000000000000000000000000000000000000000000000000000000081526004016104b291815260200190565b6000808673ffffffffffffffffffffffffffffffffffffffff168686866040516108a4929190611366565b60006040518083038185875af1925050503d80600081146108e1576040519150601f19603f3d011682016040523d82523d6000602084013e6108e6565b606091505b50915091508161092c5786868686846040517fbf8cfdf50000000000000000000000000000000000000000000000000000000081526004016104b295949392919061140a565b7fabc60ff1b7e86602892345b3c6bbf996122378275ce8a919881e580f7975873a878787878560405161096395949392919061140a565b60405180910390a19695505050505050565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016148015906109f157503373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614155b15610a2a576040517f245aecd30000000000000000000000000000000000000000000000000000000081523360048201526024016104b2565b600080610a374284610d02565b915091508115610a7d576040517f4abceb3400000000000000000000000000000000000000000000000000000000815260048101849052602481018290526044016104b2565b7f0000000000000000000000000000000000000000000000000000000000000000811015610ae1576040517f74ae1ce600000000000000000000000000000000000000000000000000000000815260048101849052602481018290526044016104b2565b6040518381527fa9746ae027b7ef47c63b1f52298f217c87f5301bc6995023e74608efa725cfa09060200160405180910390a15050600055565b6000818103610b56576040517fac241e1100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008383610b656001826111f7565b818110610b7457610b74611237565b919091013560f81c9150506001811480610b8e5750600281145b15610bd3578473ffffffffffffffffffffffffffffffffffffffff16610bb5878686610d3a565b73ffffffffffffffffffffffffffffffffffffffff16149150610cf9565b60038103610cbe5773ffffffffffffffffffffffffffffffffffffffff8516631626ba7e8786600087610c076001826111f7565b92610c14939291906112f5565b6040518463ffffffff1660e01b8152600401610c3293929190611376565b602060405180830381865afa158015610c4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c739190611399565b7fffffffff00000000000000000000000000000000000000000000000000000000167f1626ba7e00000000000000000000000000000000000000000000000000000000149150610cf9565b83838260006040517f9dfba8520000000000000000000000000000000000000000000000000000000081526004016104b2949392919061145e565b50949350505050565b60008082841115610d22576001610d1984866111f7565b91509150610d33565b6000610d2e85856111f7565b915091505b9250929050565b600060428214610d7a5782826040517f2ee17a3d0000000000000000000000000000000000000000000000000000000081526004016104b292919061148a565b6000610d93610d8a6001856111f7565b85013560f81c90565b60ff169050604084013560f81c843560208601357f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0811115610e07578686826040517fad4aac760000000000000000000000000000000000000000000000000000000081526004016104b2939291906114a6565b8260ff16601b14158015610e1f57508260ff16601c14155b15610e5c578686846040517fe578897e0000000000000000000000000000000000000000000000000000000081526004016104b2939291906114ca565b60018403610ec9576040805160008152602081018083528a905260ff851691810191909152606081018390526080810182905260019060a0015b6020604051602081039080840390855afa158015610eb8573d6000803e3d6000fd5b505050602060405103519450610fa1565b60028403610f66576040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101899052600190605c01604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181528282528051602091820120600084529083018083525260ff861690820152606081018490526080810183905260a001610e96565b86868560016040517f9dfba8520000000000000000000000000000000000000000000000000000000081526004016104b2949392919061145e565b73ffffffffffffffffffffffffffffffffffffffff8516610ff25786866040517f6c1719d20000000000000000000000000000000000000000000000000000000081526004016104b292919061148a565b505050509392505050565b60008083601f84011261100f57600080fd5b50813567ffffffffffffffff81111561102757600080fd5b602083019150836020828501011115610d3357600080fd5b60008060006040848603121561105457600080fd5b83359250602084013567ffffffffffffffff81111561107257600080fd5b61107e86828701610ffd565b9497909650939450505050565b600080600080604085870312156110a157600080fd5b843567ffffffffffffffff808211156110b957600080fd5b6110c588838901610ffd565b909650945060208701359150808211156110de57600080fd5b506110eb87828801610ffd565b95989497509550505050565b6000806000806060858703121561110d57600080fd5b843573ffffffffffffffffffffffffffffffffffffffff8116811461113157600080fd5b935060208501359250604085013567ffffffffffffffff81111561115457600080fd5b6110eb87828801610ffd565b6000815180845260005b818110156111865760208185018101518683018201520161116a565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b6020815260006111d76020830184611160565b9392505050565b6000602082840312156111f057600080fd5b5035919050565b81810381811115611231577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b6040815260006112c3604083018587611266565b90507fff0000000000000000000000000000000000000000000000000000000000000083166020830152949350505050565b6000808585111561130557600080fd5b8386111561131257600080fd5b5050820193919092039150565b85815284602082015273ffffffffffffffffffffffffffffffffffffffff8416604082015260806060820152600061135b608083018486611266565b979650505050505050565b8183823760009101908152919050565b838152604060208201526000611390604083018486611266565b95945050505050565b6000602082840312156113ab57600080fd5b81517fffffffff00000000000000000000000000000000000000000000000000000000811681146111d757600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff86168152846020820152608060408201526000611440608083018587611266565b82810360608401526114528185611160565b98975050505050505050565b606081526000611472606083018688611266565b60208301949094525090151560409091015292915050565b60208152600061149e602083018486611266565b949350505050565b6040815260006114ba604083018587611266565b9050826020830152949350505050565b6040815260006114de604083018587611266565b905060ff8316602083015294935050505056fea2646970667358221220dd57b9a0ac05ead6118e886bca5bd469a71b12eca1cb5b7461bdee035c8eb51f64736f6c63430008120033",
  "deployedBytecode": "0x6080604052600436106100915760003560e01c80638da5cb5b11610063578063d97771421161004b578063d977714214610201578063e5e288e514610217578063f669fa631461024457005b80638da5cb5b146101ab578063a4e2d634146101df57005b80630fb5a6b41461009a5780631626ba7e146100e157806320c13b0b1461013257806338af3eed1461015257005b3661009857005b005b3480156100a657600080fd5b506100ce7f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b3480156100ed57600080fd5b506101016100fc36600461103f565b610264565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020016100d8565b34801561013e57600080fd5b5061010161014d36600461108b565b610657565b34801561015e57600080fd5b506101867f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100d8565b3480156101b757600080fd5b506101867f000000000000000000000000000000000000000000000000000000000000000081565b3480156101eb57600080fd5b50600054421060405190151581526020016100d8565b34801561020d57600080fd5b506100ce60005481565b34801561022357600080fd5b506102376102323660046110f7565b610787565b6040516100d891906111c4565b34801561025057600080fd5b5061009861025f3660046111de565b610975565b600081810361029f576040517fac241e1100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000808085856102b06001826111f7565b8181106102bf576102bf611237565b909101357fff0000000000000000000000000000000000000000000000000000000000000016915050600081900361031c577f000000000000000000000000000000000000000000000000000000000000000092504691506104bb565b7fff0000000000000000000000000000000000000000000000000000000000000081167f010000000000000000000000000000000000000000000000000000000000000003610390577f000000000000000000000000000000000000000000000000000000000000000092504691506104bb565b7fff0000000000000000000000000000000000000000000000000000000000000081167f020000000000000000000000000000000000000000000000000000000000000003610405577f00000000000000000000000000000000000000000000000000000000000000009250600091506104bb565b7fff0000000000000000000000000000000000000000000000000000000000000081167f03000000000000000000000000000000000000000000000000000000000000000361047a577f00000000000000000000000000000000000000000000000000000000000000009250600091506104bb565b8585826040517f6c1547a60000000000000000000000000000000000000000000000000000000081526004016104b2939291906112af565b60405180910390fd5b507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015610519575060005442105b15610556576000546040517fd69e0d530000000000000000000000000000000000000000000000000000000081526004016104b291815260200190565b6040805130602082015290810187905260608101829052600090608001604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052805160209091012090506105d18184886000896105bf6001826111f7565b926105cc939291906112f5565b610b1b565b61062b57868184886000896105e76001826111f7565b926105f4939291906112f5565b6040517f4ad591080000000000000000000000000000000000000000000000000000000081526004016104b295949392919061131f565b507f1626ba7e000000000000000000000000000000000000000000000000000000009695505050505050565b6000803073ffffffffffffffffffffffffffffffffffffffff16631626ba7e8787604051610686929190611366565b6040519081900381207fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1682526106c89188908890600401611376565b602060405180830381865afa1580156106e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107099190611399565b90507fffffffff0000000000000000000000000000000000000000000000000000000081167f1626ba7e000000000000000000000000000000000000000000000000000000001461075c5761075c6113db565b507f20c13b0b0000000000000000000000000000000000000000000000000000000095945050505050565b60603373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610879573373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610837576040517f245aecd30000000000000000000000000000000000000000000000000000000081523360048201526024016104b2565b600054421015610879576000546040517fd69e0d530000000000000000000000000000000000000000000000000000000081526004016104b291815260200190565b6000808673ffffffffffffffffffffffffffffffffffffffff168686866040516108a4929190611366565b60006040518083038185875af1925050503d80600081146108e1576040519150601f19603f3d011682016040523d82523d6000602084013e6108e6565b606091505b50915091508161092c5786868686846040517fbf8cfdf50000000000000000000000000000000000000000000000000000000081526004016104b295949392919061140a565b7fabc60ff1b7e86602892345b3c6bbf996122378275ce8a919881e580f7975873a878787878560405161096395949392919061140a565b60405180910390a19695505050505050565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016148015906109f157503373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614155b15610a2a576040517f245aecd30000000000000000000000000000000000000000000000000000000081523360048201526024016104b2565b600080610a374284610d02565b915091508115610a7d576040517f4abceb3400000000000000000000000000000000000000000000000000000000815260048101849052602481018290526044016104b2565b7f0000000000000000000000000000000000000000000000000000000000000000811015610ae1576040517f74ae1ce600000000000000000000000000000000000000000000000000000000815260048101849052602481018290526044016104b2565b6040518381527fa9746ae027b7ef47c63b1f52298f217c87f5301bc6995023e74608efa725cfa09060200160405180910390a15050600055565b6000818103610b56576040517fac241e1100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008383610b656001826111f7565b818110610b7457610b74611237565b919091013560f81c9150506001811480610b8e5750600281145b15610bd3578473ffffffffffffffffffffffffffffffffffffffff16610bb5878686610d3a565b73ffffffffffffffffffffffffffffffffffffffff16149150610cf9565b60038103610cbe5773ffffffffffffffffffffffffffffffffffffffff8516631626ba7e8786600087610c076001826111f7565b92610c14939291906112f5565b6040518463ffffffff1660e01b8152600401610c3293929190611376565b602060405180830381865afa158015610c4f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c739190611399565b7fffffffff00000000000000000000000000000000000000000000000000000000167f1626ba7e00000000000000000000000000000000000000000000000000000000149150610cf9565b83838260006040517f9dfba8520000000000000000000000000000000000000000000000000000000081526004016104b2949392919061145e565b50949350505050565b60008082841115610d22576001610d1984866111f7565b91509150610d33565b6000610d2e85856111f7565b915091505b9250929050565b600060428214610d7a5782826040517f2ee17a3d0000000000000000000000000000000000000000000000000000000081526004016104b292919061148a565b6000610d93610d8a6001856111f7565b85013560f81c90565b60ff169050604084013560f81c843560208601357f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0811115610e07578686826040517fad4aac760000000000000000000000000000000000000000000000000000000081526004016104b2939291906114a6565b8260ff16601b14158015610e1f57508260ff16601c14155b15610e5c578686846040517fe578897e0000000000000000000000000000000000000000000000000000000081526004016104b2939291906114ca565b60018403610ec9576040805160008152602081018083528a905260ff851691810191909152606081018390526080810182905260019060a0015b6020604051602081039080840390855afa158015610eb8573d6000803e3d6000fd5b505050602060405103519450610fa1565b60028403610f66576040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101899052600190605c01604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181528282528051602091820120600084529083018083525260ff861690820152606081018490526080810183905260a001610e96565b86868560016040517f9dfba8520000000000000000000000000000000000000000000000000000000081526004016104b2949392919061145e565b73ffffffffffffffffffffffffffffffffffffffff8516610ff25786866040517f6c1719d20000000000000000000000000000000000000000000000000000000081526004016104b292919061148a565b505050509392505050565b60008083601f84011261100f57600080fd5b50813567ffffffffffffffff81111561102757600080fd5b602083019150836020828501011115610d3357600080fd5b60008060006040848603121561105457600080fd5b83359250602084013567ffffffffffffffff81111561107257600080fd5b61107e86828701610ffd565b9497909650939450505050565b600080600080604085870312156110a157600080fd5b843567ffffffffffffffff808211156110b957600080fd5b6110c588838901610ffd565b909650945060208701359150808211156110de57600080fd5b506110eb87828801610ffd565b95989497509550505050565b6000806000806060858703121561110d57600080fd5b843573ffffffffffffffffffffffffffffffffffffffff8116811461113157600080fd5b935060208501359250604085013567ffffffffffffffff81111561115457600080fd5b6110eb87828801610ffd565b6000815180845260005b818110156111865760208185018101518683018201520161116a565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b6020815260006111d76020830184611160565b9392505050565b6000602082840312156111f057600080fd5b5035919050565b81810381811115611231577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b6040815260006112c3604083018587611266565b90507fff0000000000000000000000000000000000000000000000000000000000000083166020830152949350505050565b6000808585111561130557600080fd5b8386111561131257600080fd5b5050820193919092039150565b85815284602082015273ffffffffffffffffffffffffffffffffffffffff8416604082015260806060820152600061135b608083018486611266565b979650505050505050565b8183823760009101908152919050565b838152604060208201526000611390604083018486611266565b95945050505050565b6000602082840312156113ab57600080fd5b81517fffffffff00000000000000000000000000000000000000000000000000000000811681146111d757600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b73ffffffffffffffffffffffffffffffffffffffff86168152846020820152608060408201526000611440608083018587611266565b82810360608401526114528185611160565b98975050505050505050565b606081526000611472606083018688611266565b60208301949094525090151560409091015292915050565b60208152600061149e602083018486611266565b949350505050565b6040815260006114ba604083018587611266565b9050826020830152949350505050565b6040815260006114de604083018587611266565b905060ff8316602083015294935050505056fea2646970667358221220dd57b9a0ac05ead6118e886bca5bd469a71b12eca1cb5b7461bdee035c8eb51f64736f6c63430008120033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
