{
  "contractName": "DisputableAppMock",
  "abi": [
    {
      "constant": true,
      "inputs": [
        {
          "name": "_interfaceId",
          "type": "bytes4"
        }
      ],
      "name": "supportsInterface",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "hasInitialized",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_agreement",
          "type": "address"
        }
      ],
      "name": "setAgreement",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_script",
          "type": "bytes"
        }
      ],
      "name": "getEVMScriptExecutor",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getRecoveryVault",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_id",
          "type": "uint256"
        }
      ],
      "name": "closeAction",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "forwarderType",
      "outputs": [
        {
          "name": "",
          "type": "uint8"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_evmScript",
          "type": "bytes"
        },
        {
          "name": "_context",
          "type": "bytes"
        }
      ],
      "name": "forward",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "canChallenge",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getBlockNumberPublic",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "canClose",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_disputableActionId",
          "type": "uint256"
        }
      ],
      "name": "onDisputableActionAllowed",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getTimestampPublic",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "token",
          "type": "address"
        }
      ],
      "name": "allowRecoverability",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_disputableActionId",
          "type": "uint256"
        },
        {
          "name": "_challengeId",
          "type": "uint256"
        },
        {
          "name": "_challenger",
          "type": "address"
        }
      ],
      "name": "onDisputableActionChallenged",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "appId",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "initialize",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getInitializationBlock",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "CHALLENGE_ROLE",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "clock",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_token",
          "type": "address"
        }
      ],
      "name": "transferToVault",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_sender",
          "type": "address"
        },
        {
          "name": "_role",
          "type": "bytes32"
        },
        {
          "name": "_params",
          "type": "uint256[]"
        }
      ],
      "name": "canPerform",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getEVMScriptRegistry",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "SUBMIT_ROLE",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_disputableActionId",
          "type": "uint256"
        }
      ],
      "name": "onDisputableActionVoided",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_canClose",
          "type": "bool"
        },
        {
          "name": "_canChallenge",
          "type": "bool"
        },
        {
          "name": "_callbacksRevert",
          "type": "bool"
        }
      ],
      "name": "mockDisputable",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getAgreement",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_sender",
          "type": "address"
        },
        {
          "name": "_evmScript",
          "type": "bytes"
        }
      ],
      "name": "canForward",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_clock",
          "type": "address"
        }
      ],
      "name": "setClock",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "SET_AGREEMENT_ROLE",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "kernel",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "isPetrified",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_disputableActionId",
          "type": "uint256"
        }
      ],
      "name": "onDisputableActionRejected",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "isForwarder",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "DisputableSubmitted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "DisputableChallenged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "DisputableAllowed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "DisputableRejected",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "DisputableVoided",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "executor",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "script",
          "type": "bytes"
        },
        {
          "indexed": false,
          "name": "input",
          "type": "bytes"
        },
        {
          "indexed": false,
          "name": "returnData",
          "type": "bytes"
        }
      ],
      "name": "ScriptResult",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "vault",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "token",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "RecoverToVault",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "agreement",
          "type": "address"
        }
      ],
      "name": "AgreementSet",
      "type": "event"
    }
  ],
  "bytecode": "0x6080604052620000176401000000006200001d810204565b6200023b565b6200003064010000000062000125810204565b60408051808201909152601881527f494e49545f414c52454144595f494e495449414c495a45440000000000000000602082015290156200010c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015620000d0578181015183820152602001620000b6565b50505050905090810190601f168015620000fe5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506200012360001964010000000062000154810204565b565b60006200014f600080516020620024fe83398151915264010000000062001c146200023382021704565b905090565b6200016764010000000062000125810204565b60408051808201909152601881527f494e49545f414c52454144595f494e495449414c495a454400000000000000006020820152901562000206576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252838181518152602001915080519060200190808383600083811015620000d0578181015183820152602001620000b6565b5062000230600080516020620024fe83398151915282640100000000620017ba6200023782021704565b50565b5490565b9055565b6122b3806200024b6000396000f3006080604052600436106101ab5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166301ffc9a781146101b05780630803fac0146101fe5780631e9ae2f4146102135780632914b9bd1461023657806332f0a3b5146102ab5780633b92da72146102c057806357d0c179146102d85780635e754d55146103115780636ab6802b1461033d5780636da1dfac1461035557806376740b5b1461037c5780637ad267b6146103945780637e365950146103ac5780637e7db6e1146103c15780637f439ce0146103e257806380afdea8146104095780638129fc1c1461041e5780638b3dd749146104335780638f911dca1461044857806391ddadf41461045d5780639d4941d814610472578063a1658fad14610493578063a479e508146104fa578063a9c0c6941461050f578063b086306314610524578063b6a29ae81461053c578063bca60cf514610560578063c0774df314610575578063c3ff539c146105a2578063d35424fa146105c3578063d4aae0c4146105d8578063de4796ed146105ed578063f83a151514610602578063fd64eccb1461061a575b600080fd5b3480156101bc57600080fd5b506101ea7fffffffff000000000000000000000000000000000000000000000000000000006004351661062f565b604080519115158252519081900360200190f35b34801561020a57600080fd5b506101ea61068c565b34801561021f57600080fd5b50610234600160a060020a03600435166106b5565b005b34801561024257600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261028f9436949293602493928401919081908401838280828437509497506108dc9650505050505050565b60408051600160a060020a039092168252519081900360200190f35b3480156102b757600080fd5b5061028f6109db565b3480156102cc57600080fd5b50610234600435610a6d565b3480156102e457600080fd5b506102ed610a8b565b604051808260028111156102fd57fe5b60ff16815260200191505060405180910390f35b34801561031d57600080fd5b506102346024600480358281019290820135918135918201910135610a90565b34801561034957600080fd5b506101ea600435610be3565b34801561036157600080fd5b5061036a610c06565b60408051918252519081900360200190f35b34801561038857600080fd5b506101ea600435610c15565b3480156103a057600080fd5b50610234600435610c37565b3480156103b857600080fd5b5061036a610ce1565b3480156103cd57600080fd5b506101ea600160a060020a0360043516610ceb565b3480156103ee57600080fd5b50610234600435602435600160a060020a0360443516610cf1565b34801561041557600080fd5b5061036a610da2565b34801561042a57600080fd5b50610234610dcd565b34801561043f57600080fd5b5061036a610e3f565b34801561045457600080fd5b5061036a610e6a565b34801561046957600080fd5b5061028f610e8e565b34801561047e57600080fd5b50610234600160a060020a0360043516610e9d565b34801561049f57600080fd5b5060408051602060046044358181013583810280860185019096528085526101ea958335600160a060020a031695602480359636969560649593949201929182918501908490808284375094975061113b9650505050505050565b34801561050657600080fd5b5061028f6112a4565b34801561051b57600080fd5b5061036a611359565b34801561053057600080fd5b5061023460043561137d565b34801561054857600080fd5b50610234600435151560243515156044351515611427565b34801561056c57600080fd5b5061028f6114e5565b34801561058157600080fd5b506101ea60048035600160a060020a031690602480359081019101356114ef565b3480156105ae57600080fd5b50610234600160a060020a0360043516611533565b3480156105cf57600080fd5b5061036a61156d565b3480156105e457600080fd5b5061028f611591565b3480156105f957600080fd5b506101ea6115bc565b34801561060e57600080fd5b506102346004356115cf565b34801561062657600080fd5b506101ea611679565b600061063a8261167e565b8061068657507fffffffff0000000000000000000000000000000000000000000000000000000082167ff3d3bb5100000000000000000000000000000000000000000000000000000000145b92915050565b600080610697610e3f565b905080158015906106af5750806106ac6116d7565b10155b91505090565b604080516000808252602082019092527f8dad640ab1b088990c972676ada708447affc660890ec9fc9a5483241c49f036906106f4903390839061113b565b60408051808201909152600f81527f4150505f415554485f4641494c4544000000000000000000000000000000000060208201529015156107bb5760405160008051602061226883398151915281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610780578181015183820152602001610768565b50505050905090810190601f1680156107ad5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506107c461178f565b9150600160a060020a0382161580156107e55750600160a060020a03831615155b6040805190810160405280602081526020017f44495350555441424c455f41475245454d454e545f53544154455f494e56414c81525090151561087257604051600080516020612268833981519152815260040180806020018281038252838181518152602001915080519060200190808383600083811015610780578181015183820152602001610768565b506108a37f6dbe80ccdeafbf5f3fff5738b224414f85e9370da36f61bf21c65159df7409e98463ffffffff6117ba16565b604051600160a060020a038416907f64d4a120bf365888d0b3f10e4d7deb8415919eaad62ee6fb5f5619082d6f641890600090a2505050565b60006108e66112a4565b600160a060020a03166304bf2a7f836040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561095d578181015183820152602001610945565b50505050905090810190601f16801561098a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1580156109a957600080fd5b505af11580156109bd573d6000803e3d6000fd5b505050506040513d60208110156109d357600080fd5b505192915050565b60006109e5611591565b600160a060020a03166332f0a3b56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610a3b57600080fd5b505af1158015610a4f573d6000803e3d6000fd5b505050506040513d6020811015610a6557600080fd5b505190505b90565b600081815260026020526040902060010154610a88906117be565b50565b600290565b6000610acc3386868080601f01602080910402602001604051908101604052809392919081815260200183838082843750611848945050505050565b60408051808201909152601881527f44495350555441424c455f43414e4e4f545f5355424d495400000000000000006020820152901515610b5757604051600080516020612268833981519152815260040180806020018281038252838181518152602001915080519060200190808383600083811015610780578181015183820152602001610768565b505060018054808201909155604080516020601f8501819004810282018101909252838152610b9f918391908690869081908401838280828437503394506118849350505050565b60008281526002602052604080822060010192909255905182917f0e6009972f50cbd438e397db37b1096a96d117d4e1e11a96d05f84f6d1368b4f91a25050505050565b506000547501000000000000000000000000000000000000000000900460ff1690565b6000610c106116d7565b905090565b5060005474010000000000000000000000000000000000000000900460ff1690565b33610c4061178f565b600160a060020a0316146040805190810160405280601f81526020017f44495350555441424c455f53454e4445525f4e4f545f41475245454d454e5400815250901515610cd757604051600080516020612268833981519152815260040180806020018281038252838181518152602001915080519060200190808383600083811015610780578181015183820152602001610768565b50610a8881611977565b6000610c10611a62565b50600190565b33610cfa61178f565b600160a060020a0316146040805190810160405280601f81526020017f44495350555441424c455f53454e4445525f4e4f545f41475245454d454e5400815250901515610d9157604051600080516020612268833981519152815260040180806020018281038252838181518152602001915080519060200190808383600083811015610780578181015183820152602001610768565b50610d9d838383611b24565b505050565b6000610c107fd625496217aa6a3453eecb9c3489dc5a53e6c67b444329ea2b2cbc9ff547639b611c14565b610dd5611c18565b6000805475ff0000000000000000000000000000000000000000001974ff0000000000000000000000000000000000000000199091167401000000000000000000000000000000000000000017167501000000000000000000000000000000000000000000179055565b6000610c107febb05b386a8d34882b8711d156f463690983dc47815980fb82aeeff1aa43579e611c14565b7fef025787d7cd1a96d9014b8dc7b44899b8c1350859fb9e1e05f5a546dd65158d81565b600054600160a060020a031681565b6000806000610eab84610ceb565b60408051808201909152601281527f5245434f5645525f444953414c4c4f57454400000000000000000000000000006020820152901515610f3657604051600080516020612268833981519152815260040180806020018281038252838181518152602001915080519060200190808383600083811015610780578181015183820152602001610768565b50610f3f6109db565b9250610f4a83611ce9565b60408051808201909152601a81527f5245434f5645525f5641554c545f4e4f545f434f4e54524143540000000000006020820152901515610fd557604051600080516020612268833981519152815260040180806020018281038252838181518152602001915080519060200190808383600083811015610780578181015183820152602001610768565b50600160a060020a03841615156110265760405130319250600160a060020a0384169083156108fc029084906000818181858888f19350505050158015611020573d6000803e3d6000fd5b506110ea565b5082611041600160a060020a0382163063ffffffff611d1616565b915061105d600160a060020a038216848463ffffffff611e3016565b60408051808201909152601d81527f5245434f5645525f544f4b454e5f5452414e534645525f4641494c454400000060208201529015156110e857604051600080516020612268833981519152815260040180806020018281038252838181518152602001915080519060200190808383600083811015610780578181015183820152602001610768565b505b83600160a060020a031683600160a060020a03167f596caf56044b55fb8c4ca640089bbc2b63cae3e978b851f5745cbb7c5b288e02846040518082815260200191505060405180910390a350505050565b60008061114661068c565b1515611155576000915061129c565b61115d611591565b9050600160a060020a0381161515611178576000915061129c565b80600160a060020a031663fdef910686308761119388611ebb565b6040517c010000000000000000000000000000000000000000000000000000000063ffffffff8716028152600160a060020a03808616600483019081529085166024830152604482018490526080606483019081528351608484015283519192909160a490910190602085019080838360005b8381101561121e578181015183820152602001611206565b50505050905090810190601f16801561124b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15801561126d57600080fd5b505af1158015611281573d6000803e3d6000fd5b505050506040513d602081101561129757600080fd5b505191505b509392505050565b6000806112af611591565b604080517fbe00bbd80000000000000000000000000000000000000000000000000000000081527fd6f028ca0e8edb4a8c9757ca4fdccab25fa1e0317da1188108f7d2dee14902fb60048201527fddbcfd564f642ab5627cf68b9b7d374fb4f8a36e941a75d89c87998cef03bd6160248201529051600160a060020a03929092169163be00bbd8916044808201926020929091908290030181600087803b1580156109a957600080fd5b7f8a8601cc8e9efb544266baca5bffc5cea11aed5de937dc37810fd002b4010eac81565b3361138661178f565b600160a060020a0316146040805190810160405280601f81526020017f44495350555441424c455f53454e4445525f4e4f545f41475245454d454e540081525090151561141d57604051600080516020612268833981519152815260040180806020018281038252838181518152602001915080519060200190808383600083811015610780578181015183820152602001610768565b50610a8881611ec5565b6000805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000941515949094029390931775ff0000000000000000000000000000000000000000001916750100000000000000000000000000000000000000000092151592909202919091177fffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff1676010000000000000000000000000000000000000000000091151591909102179055565b6000610c1061178f565b600061152b8484848080601f01602080910402602001604051908101604052809392919081815260200183838082843750611848945050505050565b949350505050565b600080547fffffffffffffffffffffffff000000000000000000000000000000000000000016600160a060020a0392909216919091179055565b7f8dad640ab1b088990c972676ada708447affc660890ec9fc9a5483241c49f03681565b6000610c107f4172f0f7d2289153072b0a6ca36959e0cbe2efc3afe50fc81636caa96338137b611c14565b60006000196115c9610e3f565b14905090565b336115d861178f565b600160a060020a0316146040805190810160405280601f81526020017f44495350555441424c455f53454e4445525f4e4f545f41475245454d454e540081525090151561166f57604051600080516020612268833981519152815260040180806020018281038252838181518152602001915080519060200190808383600083811015610780578181015183820152602001610768565b50610a8881611fb0565b600190565b60006116898261209b565b806106865750507fffffffff00000000000000000000000000000000000000000000000000000000167f54053e6c000000000000000000000000000000000000000000000000000000001490565b60008054600160a060020a031615611787576000809054906101000a9004600160a060020a0316600160a060020a0316636da1dfac6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561175457600080fd5b505af1158015611768573d6000803e3d6000fd5b505050506040513d602081101561177e57600080fd5b50519050610a6a565b610c106120e5565b6000610c107f6dbe80ccdeafbf5f3fff5738b224414f85e9370da36f61bf21c65159df7409e9611c14565b9055565b60006117c86120e9565b905080600160a060020a0316633b92da72836040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b15801561182c57600080fd5b505af1158015611840573d6000803e3d6000fd5b505050505050565b600061187d837f8a8601cc8e9efb544266baca5bffc5cea11aed5de937dc37810fd002b4010eac6118788261218b565b61113b565b9392505050565b60008061188f6120e9565b905080600160a060020a031663e95fdd1d8686866040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808481526020018060200183600160a060020a0316600160a060020a03168152602001828103825284818151815260200191508051906020019080838360005b83811015611929578181015183820152602001611911565b50505050905090810190601f1680156119565780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b15801561126d57600080fd5b60005460408051808201909152601c81527f44495350555441424c455f43414c4c4241434b5f524556455254454400000000602082015290760100000000000000000000000000000000000000000000900460ff1615611a2157604051600080516020612268833981519152815260040180806020018281038252838181518152602001915080519060200190808383600083811015610780578181015183820152602001610768565b50600081815260026020526040808220805460ff191690555182917f059190fe13585ca1d86e9390e5e880a87f7e3f85513c64a73e21977da3489a5891a250565b60008054600160a060020a031615611b1c576000809054906101000a9004600160a060020a0316600160a060020a0316637e3659506040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611adf57600080fd5b505af1158015611af3573d6000803e3d6000fd5b505050506040513d6020811015611b0957600080fd5b505167ffffffffffffffff169050610a6a565b610c1061219f565b60005460408051808201909152601c81527f44495350555441424c455f43414c4c4241434b5f524556455254454400000000602082015290760100000000000000000000000000000000000000000000900460ff1615611bce57604051600080516020612268833981519152815260040180806020018281038252838181518152602001915080519060200190808383600083811015610780578181015183820152602001610768565b50600083815260026020526040808220805460ff191660011790555184917ff36b039bcc896a8a1d3de57db08d7f1069feef13eb3774453ada26099330f2cf91a2505050565b5490565b611c20610e3f565b60408051808201909152601881527f494e49545f414c52454144595f494e495449414c495a4544000000000000000060208201529015611caa57604051600080516020612268833981519152815260040180806020018281038252838181518152602001915080519060200190808383600083811015610780578181015183820152602001610768565b50611ce3611cb66116d7565b7febb05b386a8d34882b8711d156f463690983dc47815980fb82aeeff1aa43579e9063ffffffff6117ba16565b565b5490565b600080600160a060020a0383161515611d055760009150611d10565b823b90506000811191505b50919050565b60408051600160a060020a0383166024808301919091528251808303909101815260449091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f70a08231000000000000000000000000000000000000000000000000000000001790526000908180611d9686846121a7565b60408051808201909152601c81527f534146455f4552435f32305f42414c414e43455f52455645525445440000000060208201529193509150821515611e2657604051600080516020612268833981519152815260040180806020018281038252838181518152602001915080519060200190808383600083811015610780578181015183820152602001610768565b5095945050505050565b60408051600160a060020a038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052600090611eb285826121d8565b95945050505050565b8051602002815290565b60005460408051808201909152601c81527f44495350555441424c455f43414c4c4241434b5f524556455254454400000000602082015290760100000000000000000000000000000000000000000000900460ff1615611f6f57604051600080516020612268833981519152815260040180806020018281038252838181518152602001915080519060200190808383600083811015610780578181015183820152602001610768565b50600081815260026020526040808220805460ff191690555182917fd90452c54f8dd065aa9ffba440455867f94ab6bf6f0055510aab354846b47b3b91a250565b60005460408051808201909152601c81527f44495350555441424c455f43414c4c4241434b5f524556455254454400000000602082015290760100000000000000000000000000000000000000000000900460ff161561205a57604051600080516020612268833981519152815260040180806020018281038252838181518152602001915080519060200190808383600083811015610780578181015183820152602001610768565b50600081815260026020526040808220805460ff191690555182917fd5d7ef4d5f7b01779ebccea039a47495502bc2721e615e7536fbd6e6e2ec389391a250565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b4390565b6000806120f461178f565b6040805180820190915260208082527f44495350555441424c455f41475245454d454e545f53544154455f494e56414c90820152909150600160a060020a0382161515611d1057604051600080516020612268833981519152815260040180806020018281038252838181518152602001915080519060200190808383600083811015610780578181015183820152602001610768565b606061068682600160a060020a0316612226565b4290565b9055565b6000806000806040516020818751602089018a5afa925060008311156121cc57805191505b50909590945092505050565b6000806040516020818551602087016000895af1600081111561221c573d801561220957602081146122125761221a565b6001935061221a565b600183511493505b505b5090949350505050565b604080516001808252818301909252606091602080830190803883390190505090508181600081518110151561225857fe5b60209081029091010152919050560008c379a000000000000000000000000000000000000000000000000000000000a165627a7a72305820c1338988b5a3350b3842e98570abd3b6a225d2372e17fc1db592ea0741ef8a930029ebb05b386a8d34882b8711d156f463690983dc47815980fb82aeeff1aa43579e",
  "deployedBytecode": "0x6080604052600436106101ab5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166301ffc9a781146101b05780630803fac0146101fe5780631e9ae2f4146102135780632914b9bd1461023657806332f0a3b5146102ab5780633b92da72146102c057806357d0c179146102d85780635e754d55146103115780636ab6802b1461033d5780636da1dfac1461035557806376740b5b1461037c5780637ad267b6146103945780637e365950146103ac5780637e7db6e1146103c15780637f439ce0146103e257806380afdea8146104095780638129fc1c1461041e5780638b3dd749146104335780638f911dca1461044857806391ddadf41461045d5780639d4941d814610472578063a1658fad14610493578063a479e508146104fa578063a9c0c6941461050f578063b086306314610524578063b6a29ae81461053c578063bca60cf514610560578063c0774df314610575578063c3ff539c146105a2578063d35424fa146105c3578063d4aae0c4146105d8578063de4796ed146105ed578063f83a151514610602578063fd64eccb1461061a575b600080fd5b3480156101bc57600080fd5b506101ea7fffffffff000000000000000000000000000000000000000000000000000000006004351661062f565b604080519115158252519081900360200190f35b34801561020a57600080fd5b506101ea61068c565b34801561021f57600080fd5b50610234600160a060020a03600435166106b5565b005b34801561024257600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261028f9436949293602493928401919081908401838280828437509497506108dc9650505050505050565b60408051600160a060020a039092168252519081900360200190f35b3480156102b757600080fd5b5061028f6109db565b3480156102cc57600080fd5b50610234600435610a6d565b3480156102e457600080fd5b506102ed610a8b565b604051808260028111156102fd57fe5b60ff16815260200191505060405180910390f35b34801561031d57600080fd5b506102346024600480358281019290820135918135918201910135610a90565b34801561034957600080fd5b506101ea600435610be3565b34801561036157600080fd5b5061036a610c06565b60408051918252519081900360200190f35b34801561038857600080fd5b506101ea600435610c15565b3480156103a057600080fd5b50610234600435610c37565b3480156103b857600080fd5b5061036a610ce1565b3480156103cd57600080fd5b506101ea600160a060020a0360043516610ceb565b3480156103ee57600080fd5b50610234600435602435600160a060020a0360443516610cf1565b34801561041557600080fd5b5061036a610da2565b34801561042a57600080fd5b50610234610dcd565b34801561043f57600080fd5b5061036a610e3f565b34801561045457600080fd5b5061036a610e6a565b34801561046957600080fd5b5061028f610e8e565b34801561047e57600080fd5b50610234600160a060020a0360043516610e9d565b34801561049f57600080fd5b5060408051602060046044358181013583810280860185019096528085526101ea958335600160a060020a031695602480359636969560649593949201929182918501908490808284375094975061113b9650505050505050565b34801561050657600080fd5b5061028f6112a4565b34801561051b57600080fd5b5061036a611359565b34801561053057600080fd5b5061023460043561137d565b34801561054857600080fd5b50610234600435151560243515156044351515611427565b34801561056c57600080fd5b5061028f6114e5565b34801561058157600080fd5b506101ea60048035600160a060020a031690602480359081019101356114ef565b3480156105ae57600080fd5b50610234600160a060020a0360043516611533565b3480156105cf57600080fd5b5061036a61156d565b3480156105e457600080fd5b5061028f611591565b3480156105f957600080fd5b506101ea6115bc565b34801561060e57600080fd5b506102346004356115cf565b34801561062657600080fd5b506101ea611679565b600061063a8261167e565b8061068657507fffffffff0000000000000000000000000000000000000000000000000000000082167ff3d3bb5100000000000000000000000000000000000000000000000000000000145b92915050565b600080610697610e3f565b905080158015906106af5750806106ac6116d7565b10155b91505090565b604080516000808252602082019092527f8dad640ab1b088990c972676ada708447affc660890ec9fc9a5483241c49f036906106f4903390839061113b565b60408051808201909152600f81527f4150505f415554485f4641494c4544000000000000000000000000000000000060208201529015156107bb5760405160008051602061226883398151915281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610780578181015183820152602001610768565b50505050905090810190601f1680156107ad5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506107c461178f565b9150600160a060020a0382161580156107e55750600160a060020a03831615155b6040805190810160405280602081526020017f44495350555441424c455f41475245454d454e545f53544154455f494e56414c81525090151561087257604051600080516020612268833981519152815260040180806020018281038252838181518152602001915080519060200190808383600083811015610780578181015183820152602001610768565b506108a37f6dbe80ccdeafbf5f3fff5738b224414f85e9370da36f61bf21c65159df7409e98463ffffffff6117ba16565b604051600160a060020a038416907f64d4a120bf365888d0b3f10e4d7deb8415919eaad62ee6fb5f5619082d6f641890600090a2505050565b60006108e66112a4565b600160a060020a03166304bf2a7f836040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561095d578181015183820152602001610945565b50505050905090810190601f16801561098a5780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1580156109a957600080fd5b505af11580156109bd573d6000803e3d6000fd5b505050506040513d60208110156109d357600080fd5b505192915050565b60006109e5611591565b600160a060020a03166332f0a3b56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610a3b57600080fd5b505af1158015610a4f573d6000803e3d6000fd5b505050506040513d6020811015610a6557600080fd5b505190505b90565b600081815260026020526040902060010154610a88906117be565b50565b600290565b6000610acc3386868080601f01602080910402602001604051908101604052809392919081815260200183838082843750611848945050505050565b60408051808201909152601881527f44495350555441424c455f43414e4e4f545f5355424d495400000000000000006020820152901515610b5757604051600080516020612268833981519152815260040180806020018281038252838181518152602001915080519060200190808383600083811015610780578181015183820152602001610768565b505060018054808201909155604080516020601f8501819004810282018101909252838152610b9f918391908690869081908401838280828437503394506118849350505050565b60008281526002602052604080822060010192909255905182917f0e6009972f50cbd438e397db37b1096a96d117d4e1e11a96d05f84f6d1368b4f91a25050505050565b506000547501000000000000000000000000000000000000000000900460ff1690565b6000610c106116d7565b905090565b5060005474010000000000000000000000000000000000000000900460ff1690565b33610c4061178f565b600160a060020a0316146040805190810160405280601f81526020017f44495350555441424c455f53454e4445525f4e4f545f41475245454d454e5400815250901515610cd757604051600080516020612268833981519152815260040180806020018281038252838181518152602001915080519060200190808383600083811015610780578181015183820152602001610768565b50610a8881611977565b6000610c10611a62565b50600190565b33610cfa61178f565b600160a060020a0316146040805190810160405280601f81526020017f44495350555441424c455f53454e4445525f4e4f545f41475245454d454e5400815250901515610d9157604051600080516020612268833981519152815260040180806020018281038252838181518152602001915080519060200190808383600083811015610780578181015183820152602001610768565b50610d9d838383611b24565b505050565b6000610c107fd625496217aa6a3453eecb9c3489dc5a53e6c67b444329ea2b2cbc9ff547639b611c14565b610dd5611c18565b6000805475ff0000000000000000000000000000000000000000001974ff0000000000000000000000000000000000000000199091167401000000000000000000000000000000000000000017167501000000000000000000000000000000000000000000179055565b6000610c107febb05b386a8d34882b8711d156f463690983dc47815980fb82aeeff1aa43579e611c14565b7fef025787d7cd1a96d9014b8dc7b44899b8c1350859fb9e1e05f5a546dd65158d81565b600054600160a060020a031681565b6000806000610eab84610ceb565b60408051808201909152601281527f5245434f5645525f444953414c4c4f57454400000000000000000000000000006020820152901515610f3657604051600080516020612268833981519152815260040180806020018281038252838181518152602001915080519060200190808383600083811015610780578181015183820152602001610768565b50610f3f6109db565b9250610f4a83611ce9565b60408051808201909152601a81527f5245434f5645525f5641554c545f4e4f545f434f4e54524143540000000000006020820152901515610fd557604051600080516020612268833981519152815260040180806020018281038252838181518152602001915080519060200190808383600083811015610780578181015183820152602001610768565b50600160a060020a03841615156110265760405130319250600160a060020a0384169083156108fc029084906000818181858888f19350505050158015611020573d6000803e3d6000fd5b506110ea565b5082611041600160a060020a0382163063ffffffff611d1616565b915061105d600160a060020a038216848463ffffffff611e3016565b60408051808201909152601d81527f5245434f5645525f544f4b454e5f5452414e534645525f4641494c454400000060208201529015156110e857604051600080516020612268833981519152815260040180806020018281038252838181518152602001915080519060200190808383600083811015610780578181015183820152602001610768565b505b83600160a060020a031683600160a060020a03167f596caf56044b55fb8c4ca640089bbc2b63cae3e978b851f5745cbb7c5b288e02846040518082815260200191505060405180910390a350505050565b60008061114661068c565b1515611155576000915061129c565b61115d611591565b9050600160a060020a0381161515611178576000915061129c565b80600160a060020a031663fdef910686308761119388611ebb565b6040517c010000000000000000000000000000000000000000000000000000000063ffffffff8716028152600160a060020a03808616600483019081529085166024830152604482018490526080606483019081528351608484015283519192909160a490910190602085019080838360005b8381101561121e578181015183820152602001611206565b50505050905090810190601f16801561124b5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15801561126d57600080fd5b505af1158015611281573d6000803e3d6000fd5b505050506040513d602081101561129757600080fd5b505191505b509392505050565b6000806112af611591565b604080517fbe00bbd80000000000000000000000000000000000000000000000000000000081527fd6f028ca0e8edb4a8c9757ca4fdccab25fa1e0317da1188108f7d2dee14902fb60048201527fddbcfd564f642ab5627cf68b9b7d374fb4f8a36e941a75d89c87998cef03bd6160248201529051600160a060020a03929092169163be00bbd8916044808201926020929091908290030181600087803b1580156109a957600080fd5b7f8a8601cc8e9efb544266baca5bffc5cea11aed5de937dc37810fd002b4010eac81565b3361138661178f565b600160a060020a0316146040805190810160405280601f81526020017f44495350555441424c455f53454e4445525f4e4f545f41475245454d454e540081525090151561141d57604051600080516020612268833981519152815260040180806020018281038252838181518152602001915080519060200190808383600083811015610780578181015183820152602001610768565b50610a8881611ec5565b6000805474ff0000000000000000000000000000000000000000191674010000000000000000000000000000000000000000941515949094029390931775ff0000000000000000000000000000000000000000001916750100000000000000000000000000000000000000000092151592909202919091177fffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffff1676010000000000000000000000000000000000000000000091151591909102179055565b6000610c1061178f565b600061152b8484848080601f01602080910402602001604051908101604052809392919081815260200183838082843750611848945050505050565b949350505050565b600080547fffffffffffffffffffffffff000000000000000000000000000000000000000016600160a060020a0392909216919091179055565b7f8dad640ab1b088990c972676ada708447affc660890ec9fc9a5483241c49f03681565b6000610c107f4172f0f7d2289153072b0a6ca36959e0cbe2efc3afe50fc81636caa96338137b611c14565b60006000196115c9610e3f565b14905090565b336115d861178f565b600160a060020a0316146040805190810160405280601f81526020017f44495350555441424c455f53454e4445525f4e4f545f41475245454d454e540081525090151561166f57604051600080516020612268833981519152815260040180806020018281038252838181518152602001915080519060200190808383600083811015610780578181015183820152602001610768565b50610a8881611fb0565b600190565b60006116898261209b565b806106865750507fffffffff00000000000000000000000000000000000000000000000000000000167f54053e6c000000000000000000000000000000000000000000000000000000001490565b60008054600160a060020a031615611787576000809054906101000a9004600160a060020a0316600160a060020a0316636da1dfac6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561175457600080fd5b505af1158015611768573d6000803e3d6000fd5b505050506040513d602081101561177e57600080fd5b50519050610a6a565b610c106120e5565b6000610c107f6dbe80ccdeafbf5f3fff5738b224414f85e9370da36f61bf21c65159df7409e9611c14565b9055565b60006117c86120e9565b905080600160a060020a0316633b92da72836040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b15801561182c57600080fd5b505af1158015611840573d6000803e3d6000fd5b505050505050565b600061187d837f8a8601cc8e9efb544266baca5bffc5cea11aed5de937dc37810fd002b4010eac6118788261218b565b61113b565b9392505050565b60008061188f6120e9565b905080600160a060020a031663e95fdd1d8686866040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808481526020018060200183600160a060020a0316600160a060020a03168152602001828103825284818151815260200191508051906020019080838360005b83811015611929578181015183820152602001611911565b50505050905090810190601f1680156119565780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b15801561126d57600080fd5b60005460408051808201909152601c81527f44495350555441424c455f43414c4c4241434b5f524556455254454400000000602082015290760100000000000000000000000000000000000000000000900460ff1615611a2157604051600080516020612268833981519152815260040180806020018281038252838181518152602001915080519060200190808383600083811015610780578181015183820152602001610768565b50600081815260026020526040808220805460ff191690555182917f059190fe13585ca1d86e9390e5e880a87f7e3f85513c64a73e21977da3489a5891a250565b60008054600160a060020a031615611b1c576000809054906101000a9004600160a060020a0316600160a060020a0316637e3659506040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015611adf57600080fd5b505af1158015611af3573d6000803e3d6000fd5b505050506040513d6020811015611b0957600080fd5b505167ffffffffffffffff169050610a6a565b610c1061219f565b60005460408051808201909152601c81527f44495350555441424c455f43414c4c4241434b5f524556455254454400000000602082015290760100000000000000000000000000000000000000000000900460ff1615611bce57604051600080516020612268833981519152815260040180806020018281038252838181518152602001915080519060200190808383600083811015610780578181015183820152602001610768565b50600083815260026020526040808220805460ff191660011790555184917ff36b039bcc896a8a1d3de57db08d7f1069feef13eb3774453ada26099330f2cf91a2505050565b5490565b611c20610e3f565b60408051808201909152601881527f494e49545f414c52454144595f494e495449414c495a4544000000000000000060208201529015611caa57604051600080516020612268833981519152815260040180806020018281038252838181518152602001915080519060200190808383600083811015610780578181015183820152602001610768565b50611ce3611cb66116d7565b7febb05b386a8d34882b8711d156f463690983dc47815980fb82aeeff1aa43579e9063ffffffff6117ba16565b565b5490565b600080600160a060020a0383161515611d055760009150611d10565b823b90506000811191505b50919050565b60408051600160a060020a0383166024808301919091528251808303909101815260449091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f70a08231000000000000000000000000000000000000000000000000000000001790526000908180611d9686846121a7565b60408051808201909152601c81527f534146455f4552435f32305f42414c414e43455f52455645525445440000000060208201529193509150821515611e2657604051600080516020612268833981519152815260040180806020018281038252838181518152602001915080519060200190808383600083811015610780578181015183820152602001610768565b5095945050505050565b60408051600160a060020a038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052600090611eb285826121d8565b95945050505050565b8051602002815290565b60005460408051808201909152601c81527f44495350555441424c455f43414c4c4241434b5f524556455254454400000000602082015290760100000000000000000000000000000000000000000000900460ff1615611f6f57604051600080516020612268833981519152815260040180806020018281038252838181518152602001915080519060200190808383600083811015610780578181015183820152602001610768565b50600081815260026020526040808220805460ff191690555182917fd90452c54f8dd065aa9ffba440455867f94ab6bf6f0055510aab354846b47b3b91a250565b60005460408051808201909152601c81527f44495350555441424c455f43414c4c4241434b5f524556455254454400000000602082015290760100000000000000000000000000000000000000000000900460ff161561205a57604051600080516020612268833981519152815260040180806020018281038252838181518152602001915080519060200190808383600083811015610780578181015183820152602001610768565b50600081815260026020526040808220805460ff191690555182917fd5d7ef4d5f7b01779ebccea039a47495502bc2721e615e7536fbd6e6e2ec389391a250565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f01ffc9a70000000000000000000000000000000000000000000000000000000014919050565b4390565b6000806120f461178f565b6040805180820190915260208082527f44495350555441424c455f41475245454d454e545f53544154455f494e56414c90820152909150600160a060020a0382161515611d1057604051600080516020612268833981519152815260040180806020018281038252838181518152602001915080519060200190808383600083811015610780578181015183820152602001610768565b606061068682600160a060020a0316612226565b4290565b9055565b6000806000806040516020818751602089018a5afa925060008311156121cc57805191505b50909590945092505050565b6000806040516020818551602087016000895af1600081111561221c573d801561220957602081146122125761221a565b6001935061221a565b600183511493505b505b5090949350505050565b604080516001808252818301909252606091602080830190803883390190505090508181600081518110151561225857fe5b60209081029091010152919050560008c379a000000000000000000000000000000000000000000000000000000000a165627a7a72305820c1338988b5a3350b3842e98570abd3b6a225d2372e17fc1db592ea0741ef8a930029",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
