{
  "contractName": "EVMScriptRegistryFactory",
  "abi": [
    {
      "constant": true,
      "inputs": [],
      "name": "baseReg",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "baseCallScript",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_dao",
          "type": "address"
        }
      ],
      "name": "newEVMScriptRegistry",
      "outputs": [
        {
          "name": "reg",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b506100196100df565b604051809103906000f080158015610035573d6000803e3d6000fd5b506000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061007d6100ef565b604051809103906000f080158015610099573d6000803e3d6000fd5b50600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506100ff565b6040516121ab80610bc383390190565b604051610c7f80612d6e83390190565b610ab58061010e6000396000f300608060405260043610610057576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063127d679c1461005c57806333404143146100b35780634de50a3a14610136575b600080fd5b34801561006857600080fd5b5061007161018d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156100bf57600080fd5b506100f4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506101b2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561014257600080fd5b5061014b610a63565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000606060008273ffffffffffffffffffffffffffffffffffffffff16638129fc1c90507c010000000000000000000000000000000000000000000000000000000002604051602401604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505091508373ffffffffffffffffffffffffffffffffffffffff1663c050a7a67fddbcfd564f642ab5627cf68b9b7d374fb4f8a36e941a75d89c87998cef03bd616001026000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff168560016040518563ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018085600019166000191681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200183151515158152602001828103825284818151815260200191508051906020019080838360005b83811015610374578082015181840152602081019050610359565b50505050905090810190601f1680156103a15780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1580156103c357600080fd5b505af11580156103d7573d6000803e3d6000fd5b505050506040513d60208110156103ed57600080fd5b810190808051906020019092919050505092508373ffffffffffffffffffffffffffffffffffffffff1663de2873596040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561046457600080fd5b505af1158015610478573d6000803e3d6000fd5b505050506040513d602081101561048e57600080fd5b810190808051906020019092919050505090508073ffffffffffffffffffffffffffffffffffffffff1663be03847830858673ffffffffffffffffffffffffffffffffffffffff166319f3d10f6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561052357600080fd5b505af1158015610537573d6000803e3d6000fd5b505050506040513d602081101561054d57600080fd5b8101908080519060200190929190505050306040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001945050505050600060405180830381600087803b15801561065257600080fd5b505af1158015610666573d6000803e3d6000fd5b505050508273ffffffffffffffffffffffffffffffffffffffff166387a16f12600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561072757600080fd5b505af115801561073b573d6000803e3d6000fd5b505050506040513d602081101561075157600080fd5b8101908080519060200190929190505050508073ffffffffffffffffffffffffffffffffffffffff16639d0effdb30858673ffffffffffffffffffffffffffffffffffffffff166319f3d10f6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156107e557600080fd5b505af11580156107f9573d6000803e3d6000fd5b505050506040513d602081101561080f57600080fd5b81019080805190602001909291905050506040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600019166000191681526020019350505050600060405180830381600087803b1580156108e057600080fd5b505af11580156108f4573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663a885508a848573ffffffffffffffffffffffffffffffffffffffff166319f3d10f6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561097957600080fd5b505af115801561098d573d6000803e3d6000fd5b505050506040513d60208110156109a357600080fd5b81019080805190602001909291905050506040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001826000191660001916815260200192505050600060405180830381600087803b158015610a4157600080fd5b505af1158015610a55573d6000803e3d6000fd5b505050508292505050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582017e8ffe2ec073790776346c3522478758d4c42e0ba835f5d4a893265ff5acec5002960806040526200001d62000023640100000000026401000000009004565b62000309565b60006200003e6200015e640100000000026401000000009004565b146040805190810160405280601881526020017f494e49545f414c52454144595f494e495449414c495a4544000000000000000081525090151562000121576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015620000e5578082015181840152602081019050620000c8565b50505050905090810190601f168015620001135780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506200015c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff620001ab640100000000026401000000009004565b565b6000620001a67febb05b386a8d34882b8711d156f463690983dc47815980fb82aeeff1aa43579e60010260001916620002f76401000000000262001d8c176401000000009004565b905090565b6000620001c66200015e640100000000026401000000009004565b146040805190810160405280601881526020017f494e49545f414c52454144595f494e495449414c495a45440000000000000000815250901515620002a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156200026d57808201518184015260208101905062000250565b50505050905090810190601f1680156200029b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50620002f4817febb05b386a8d34882b8711d156f463690983dc47815980fb82aeeff1aa43579e60010260001916620003026401000000000262001e4e179091906401000000009004565b50565b600081549050919050565b8082555050565b611e9280620003196000396000f300608060405260043610610107576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806304bf2a7f1461010c5780630803fac0146101b557806319f3d10f146101e45780632914b9bd1461021757806332f0a3b5146102c05780635ca4d4bb146103175780637e7db6e11461034457806380afdea81461039f5780638129fc1c146103d257806387a16f12146103e95780638b3dd749146104405780639d4941d81461046b578063a1658fad146104ae578063a479e5081461055a578063bd8fde1c146105b1578063cff606a0146105e4578063d4aae0c414610611578063de4796ed14610668578063f97a05df14610697575b600080fd5b34801561011857600080fd5b50610173600480360381019080803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061070f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101c157600080fd5b506101ca610786565b604051808215151515815260200191505060405180910390f35b3480156101f057600080fd5b506101f96107b1565b60405180826000191660001916815260200191505060405180910390f35b34801561022357600080fd5b5061027e600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506107d8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102cc57600080fd5b506102d56108f7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561032357600080fd5b50610342600480360381019080803590602001909291905050506109a4565b005b34801561035057600080fd5b50610385600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c4e565b604051808215151515815260200191505060405180910390f35b3480156103ab57600080fd5b506103b4610c59565b60405180826000191660001916815260200191505060405180910390f35b3480156103de57600080fd5b506103e7610c90565b005b3480156103f557600080fd5b5061042a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d8c565b6040518082815260200191505060405180910390f35b34801561044c57600080fd5b50610455610fd8565b6040518082815260200191505060405180910390f35b34801561047757600080fd5b506104ac600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061100f565b005b3480156104ba57600080fd5b50610540600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560001916906020019092919080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050611441565b604051808215151515815260200191505060405180910390f35b34801561056657600080fd5b5061056f611648565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105bd57600080fd5b506105c6611763565b60405180826000191660001916815260200191505060405180910390f35b3480156105f057600080fd5b5061060f6004803603810190808035906020019092919050505061178a565b005b34801561061d57600080fd5b50610626611b27565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561067457600080fd5b5061067d611b5e565b604051808215151515815260200191505060405180910390f35b3480156106a357600080fd5b506106c260048036038101908080359060200190929190505050611b8f565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390f35b600080600061071d84611be0565b63ffffffff1691506001600083815260200190815260200160002090508060000160149054906101000a900460ff1661075757600061077d565b8060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b92505050919050565b600080610791610fd8565b9050600081141580156107ab5750806107a8611bf4565b10155b91505090565b7fc4e90f38eea8c4212a009ca7b8947943ba4d4a58d19b683417f65291d1cd9ed260010281565b60006107e2611648565b73ffffffffffffffffffffffffffffffffffffffff166304bf2a7f836040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561086957808201518184015260208101905061084e565b50505050905090810190601f1680156108965780820380516001836020036101000a031916815260200191505b5092505050602060405180830381600087803b1580156108b557600080fd5b505af11580156108c9573d6000803e3d6000fd5b505050506040513d60208110156108df57600080fd5b81019080805190602001909291905050509050919050565b6000610901611b27565b73ffffffffffffffffffffffffffffffffffffffff166332f0a3b56040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561096457600080fd5b505af1158015610978573d6000803e3d6000fd5b505050506040513d602081101561098e57600080fd5b8101908080519060200190929190505050905090565b60007ff7a450ef335e1892cb42c8ca72e7242359d7711924b75db5717410da3f614aa36001026109d383611bfc565b6109de338383611441565b6040805190810160405280600f81526020017f4150505f415554485f4641494c45440000000000000000000000000000000000815250901515610abc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610a81578082015181840152602081019050610a66565b50505050905090810190601f168015610aae5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506001600085815260200190815260200160002092508260000160149054906101000a900460ff166040805190810160405280601881526020017f45564d5245475f4558454355544f525f44495341424c45440000000000000000815250901515610bc2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610b87578082015181840152602081019050610b6c565b50505050905090810190601f168015610bb45780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008360000160146101000a81548160ff0219169083151502179055508260000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16847fc13cd9238f8ab1e5ab1f95cde77e89288fe5c328d04739adffd57b144b408fd160405160405180910390a350505050565b600060019050919050565b6000610c8b7fd625496217aa6a3453eecb9c3489dc5a53e6c67b444329ea2b2cbc9ff547639b60010260001916611c54565b905090565b6000610c9a610fd8565b146040805190810160405280601881526020017f494e49545f414c52454144595f494e495449414c495a45440000000000000000815250901515610d79576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610d3e578082015181840152602081019050610d23565b50505050905090810190601f168015610d6b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50610d82611c5f565b6001600081905550565b6000807fc4e90f38eea8c4212a009ca7b8947943ba4d4a58d19b683417f65291d1cd9ed2600102610dee33826000604051908082528060200260200182016040528015610de85781602001602082028038833980820191505090505b50611441565b6040805190810160405280600f81526020017f4150505f415554485f4641494c45440000000000000000000000000000000000815250901515610ecc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610e91578082015181840152602081019050610e76565b50505050905090810190601f168015610ebe5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008081548092919060010191905055915060408051908101604052808573ffffffffffffffffffffffffffffffffffffffff168152602001600115158152506001600084815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548160ff0219169083151502179055509050508373ffffffffffffffffffffffffffffffffffffffff16827f7697fa3288629310075a63816e294207c84f3cfc18ccf8e18eb917ec0bb5669960405160405180910390a38192505050919050565b600061100a7febb05b386a8d34882b8711d156f463690983dc47815980fb82aeeff1aa43579e60010260001916611d8c565b905090565b60008061101b83610c4e565b6040805190810160405280601281526020017f5245434f5645525f444953414c4c4f57454400000000000000000000000000008152509015156110f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156110be5780820151818401526020810190506110a3565b50505050905090810190601f1680156110eb5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506111026108f7565b915061110d82611d97565b6040805190810160405280601a81526020017f5245434f5645525f5641554c545f4e4f545f434f4e54524143540000000000008152509015156111eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156111b0578082015181840152602081019050611195565b50505050905090810190601f1680156111dd5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611284578173ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f1935050505015801561127e573d6000803e3d6000fd5b5061143c565b8273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561131f57600080fd5b505af1158015611333573d6000803e3d6000fd5b505050506040513d602081101561134957600080fd5b810190808051906020019092919050505090508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156113ff57600080fd5b505af1158015611413573d6000803e3d6000fd5b505050506040513d602081101561142957600080fd5b8101908080519060200190929190505050505b505050565b60008060606000611450610786565b151561145f576000935061163e565b611467611b27565b9250600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156114a7576000935061163e565b602085510290508491508082528273ffffffffffffffffffffffffffffffffffffffff1663fdef9106883089866040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001836000191660001916815260200180602001828103825283818151815260200191508051906020019080838360005b838110156115b1578082015181840152602081019050611596565b50505050905090810190601f1680156115de5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15801561160057600080fd5b505af1158015611614573d6000803e3d6000fd5b505050506040513d602081101561162a57600080fd5b810190808051906020019092919050505093505b5050509392505050565b600080611653611b27565b73ffffffffffffffffffffffffffffffffffffffff1663be00bbd87fd6f028ca0e8edb4a8c9757ca4fdccab25fa1e0317da1188108f7d2dee14902fb6001027fddbcfd564f642ab5627cf68b9b7d374fb4f8a36e941a75d89c87998cef03bd616001026040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808360001916600019168152602001826000191660001916815260200192505050602060405180830381600087803b15801561171f57600080fd5b505af1158015611733573d6000803e3d6000fd5b505050506040513d602081101561174957600080fd5b810190808051906020019092919050505090508091505090565b7ff7a450ef335e1892cb42c8ca72e7242359d7711924b75db5717410da3f614aa360010281565b60007ff7a450ef335e1892cb42c8ca72e7242359d7711924b75db5717410da3f614aa36001026117b983611bfc565b6117c4338383611441565b6040805190810160405280600f81526020017f4150505f415554485f4641494c454400000000000000000000000000000000008152509015156118a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561186757808201518184015260208101905061184c565b50505050905090810190601f1680156118945780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50836000811180156118b5575060005481105b6040805190810160405280601a81526020017f45564d5245475f494e4558495354454e545f4558454355544f52000000000000815250901515611993576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561195857808201518184015260208101905061193d565b50505050905090810190601f1680156119855780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506001600086815260200190815260200160002093508360000160149054906101000a900460ff16156040805190810160405280601781526020017f45564d5245475f4558454355544f525f454e41424c4544000000000000000000815250901515611a9a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611a5f578082015181840152602081019050611a44565b50505050905090810190601f168015611a8c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060018460000160146101000a81548160ff0219169083151502179055508360000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16857f7697fa3288629310075a63816e294207c84f3cfc18ccf8e18eb917ec0bb5669960405160405180910390a35050505050565b6000611b597f4172f0f7d2289153072b0a6ca36959e0cbe2efc3afe50fc81636caa96338137b60010260001916611de9565b905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611b89610fd8565b14905090565b60016020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060000160149054906101000a900460ff16905082565b6000611bed826000611df4565b9050919050565b600043905090565b60606001604051908082528060200260200182016040528015611c2e5781602001602082028038833980820191505090505b50905081816000815181101515611c4157fe5b9060200190602002018181525050919050565b600081549050919050565b6000611c69610fd8565b146040805190810160405280601881526020017f494e49545f414c52454144595f494e495449414c495a45440000000000000000815250901515611d48576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611d0d578082015181840152602081019050611cf2565b50505050905090810190601f168015611d3a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50611d8a611d54611bf4565b7febb05b386a8d34882b8711d156f463690983dc47815980fb82aeeff1aa43579e60010260001916611e4e90919063ffffffff16565b565b600081549050919050565b600080600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611dd85760009150611de3565b823b90506000811191505b50919050565b600081549050919050565b600080611e018484611e55565b90507c01000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000082160491505092915050565b8082555050565b6000816020018301519050929150505600a165627a7a72305820f6de821ba13da33a6a3f25e07d05b2861370d1c1dfb01b6c6c98278148612e3c0029608060405261001b610020640100000000026401000000009004565b6102f2565b6000610039610153640100000000026401000000009004565b146040805190810160405280601881526020017f494e49545f414c52454144595f494e495449414c495a45440000000000000000815250901515610118576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156100dd5780820151818401526020810190506100c2565b50505050905090810190601f16801561010a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506101517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61019d640100000000026401000000009004565b565b60006101987febb05b386a8d34882b8711d156f463690983dc47815980fb82aeeff1aa43579e600102600019166102e06401000000000261092f176401000000009004565b905090565b60006101b6610153640100000000026401000000009004565b146040805190810160405280601881526020017f494e49545f414c52454144595f494e495449414c495a45440000000000000000815250901515610295576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561025a57808201518184015260208101905061023f565b50505050905090810190601f1680156102875780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506102dd817febb05b386a8d34882b8711d156f463690983dc47815980fb82aeeff1aa43579e600102600019166102eb6401000000000261094b179091906401000000009004565b50565b600081549050919050565b8082555050565b61097e806103016000396000f30060806040526004361061006d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630803fac014610072578063279cea35146100a15780638333d9b2146101855780638b3dd749146101b8578063de4796ed146101e3575b600080fd5b34801561007e57600080fd5b50610087610212565b604051808215151515815260200191505060405180910390f35b3480156100ad57600080fd5b5061010a60048036038101908080359060200190820180359060200191909192939192939080359060200190820180359060200191909192939192939080359060200190820180359060200191909192939192939050505061023d565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561014a57808201518184015260208101905061012f565b50505050905090810190601f1680156101775780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561019157600080fd5b5061019a6107e0565b60405180826000191660001916815260200191505060405180910390f35b3480156101c457600080fd5b506101cd61080b565b6040518082815260200191505060405180910390f35b3480156101ef57600080fd5b506101f8610842565b604051808215151515815260200191505060405180910390f35b60008061021d61080b565b905060008114158015610237575080610234610873565b10155b91505090565b60606000806000806000806000610252610212565b6040805190810160405280601481526020017f494e49545f4e4f545f494e495449414c495a4544000000000000000000000000815250901515610330576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156102f55780820151818401526020810190506102da565b50505050905090810190601f1680156103225780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600496505b8d8d90508710156107cf57610386878f8f8080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505061087b90919063ffffffff16565b9550600094505b898990508510156104de5789898681811015156103a657fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614156040805190810160405280601981526020017f45564d43414c4c535f424c41434b4c49535445445f43414c4c000000000000008152509015156104d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561049557808201518184015260208101905061047a565b50505050905090810190601f1680156104c25780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50848060010195505061038d565b8573ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f9dcff9d94fbfdb4622d11edb383005f95e78efb446c72d92f8e615c6025c470360405160405180910390a4610597601488018f8f8080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050506108c590919063ffffffff16565b63ffffffff1693506004601488010192506105ed838f8f8080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505061091f90919063ffffffff16565b915083830196508d8d90508711156040805190810160405280601781526020017f45564d43414c4c535f494e56414c49445f4c454e4754480000000000000000008152509015156106d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561069e578082015181840152602081019050610683565b50505050905090810190601f1680156106cb5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600080858460008a6113885a03f19050806040805190810160405280601681526020017f45564d43414c4c535f43414c4c5f5245564552544544000000000000000000008152509015156107c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561078e578082015181840152602081019050610773565b50505050905090810190601f1680156107bb5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50610336565b505050505050509695505050505050565b60007f2dc858a00f3e417be1394b87c07158e989ec681ce8cc68a9093680ac1a870302600102905090565b600061083d7febb05b386a8d34882b8711d156f463690983dc47815980fb82aeeff1aa43579e6001026000191661092f565b905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61086d61080b565b14905090565b600043905090565b600080610888848461093a565b90506c010000000000000000000000007fffffffffffffffffffffffffffffffffffffffff00000000000000000000000082160491505092915050565b6000806108d2848461093a565b90507c01000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000082160491505092915050565b6000816020018301905092915050565b600081549050919050565b600081602001830151905092915050565b80825550505600a165627a7a7230582070f719b45c4958e00bbe635c87199e6eb50a1c7e2c6f163906ff4dab4f9d95670029",
  "deployedBytecode": "0x608060405260043610610057576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063127d679c1461005c57806333404143146100b35780634de50a3a14610136575b600080fd5b34801561006857600080fd5b5061007161018d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156100bf57600080fd5b506100f4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506101b2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561014257600080fd5b5061014b610a63565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000606060008273ffffffffffffffffffffffffffffffffffffffff16638129fc1c90507c010000000000000000000000000000000000000000000000000000000002604051602401604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505091508373ffffffffffffffffffffffffffffffffffffffff1663c050a7a67fddbcfd564f642ab5627cf68b9b7d374fb4f8a36e941a75d89c87998cef03bd616001026000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff168560016040518563ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018085600019166000191681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018060200183151515158152602001828103825284818151815260200191508051906020019080838360005b83811015610374578082015181840152602081019050610359565b50505050905090810190601f1680156103a15780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1580156103c357600080fd5b505af11580156103d7573d6000803e3d6000fd5b505050506040513d60208110156103ed57600080fd5b810190808051906020019092919050505092508373ffffffffffffffffffffffffffffffffffffffff1663de2873596040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561046457600080fd5b505af1158015610478573d6000803e3d6000fd5b505050506040513d602081101561048e57600080fd5b810190808051906020019092919050505090508073ffffffffffffffffffffffffffffffffffffffff1663be03847830858673ffffffffffffffffffffffffffffffffffffffff166319f3d10f6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561052357600080fd5b505af1158015610537573d6000803e3d6000fd5b505050506040513d602081101561054d57600080fd5b8101908080519060200190929190505050306040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183600019166000191681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001945050505050600060405180830381600087803b15801561065257600080fd5b505af1158015610666573d6000803e3d6000fd5b505050508273ffffffffffffffffffffffffffffffffffffffff166387a16f12600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561072757600080fd5b505af115801561073b573d6000803e3d6000fd5b505050506040513d602081101561075157600080fd5b8101908080519060200190929190505050508073ffffffffffffffffffffffffffffffffffffffff16639d0effdb30858673ffffffffffffffffffffffffffffffffffffffff166319f3d10f6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156107e557600080fd5b505af11580156107f9573d6000803e3d6000fd5b505050506040513d602081101561080f57600080fd5b81019080805190602001909291905050506040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182600019166000191681526020019350505050600060405180830381600087803b1580156108e057600080fd5b505af11580156108f4573d6000803e3d6000fd5b505050508073ffffffffffffffffffffffffffffffffffffffff1663a885508a848573ffffffffffffffffffffffffffffffffffffffff166319f3d10f6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561097957600080fd5b505af115801561098d573d6000803e3d6000fd5b505050506040513d60208110156109a357600080fd5b81019080805190602001909291905050506040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001826000191660001916815260200192505050600060405180830381600087803b158015610a4157600080fd5b505af1158015610a55573d6000803e3d6000fd5b505050508292505050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a7230582017e8ffe2ec073790776346c3522478758d4c42e0ba835f5d4a893265ff5acec50029",
  "sourceMap": "225:989:42:-;;;380:135;8:9:-1;5:2;;;30:1;27;20:12;5:2;380:135:42;421:23;;:::i;:::-;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;421:23:42;411:7;;:33;;;;;;;;;;;;;;;;;;490:17;;:::i;:::-;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;490:17:42;454:14;;:54;;;;;;;;;;;;;;;;;;225:989;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;",
  "deployedSourceMap": "225:989:42:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;295:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;295:32:42;;;;;;;;;;;;;;;;;;;;;;;;;;;521:691;;8:9:-1;5:2;;;30:1;27;20:12;5:2;521:691:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;333:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;333:40:42;;;;;;;;;;;;;;;;;;;;;;;;;;;295:32;;;;;;;;;;;;;:::o;521:691::-;580:21;613:24;813:7;663:3;:14;;;:23;;;;640:47;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;640:47:42;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;640:47:42;613:74;;721:4;:25;;;330:66:36;747:25:42;;774:7;;;;;;;;;;;783:11;796:4;721:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;721:80:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;721:80:42;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;721:80:42;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;721:80:42;;;;;;;;;;;;;;;;697:105;;827:4;:8;;;:10;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;827:10:42;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;827:10:42;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;827:10:42;;;;;;;;;;;;;;;;813:25;;849:3;:20;;;870:4;876:3;881;:30;;;:32;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;881:32:42;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;881:32:42;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;881:32:42;;;;;;;;;;;;;;;;915:4;849:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;849:71:42;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;849:71:42;;;;931:3;:21;;;953:14;;;;;;;;;;;931:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;931:37:42;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;931:37:42;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;931:37:42;;;;;;;;;;;;;;;;;1043:3;:20;;;1064:4;1070:3;1075;:30;;;:32;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1075:32:42;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1075:32:42;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1075:32:42;;;;;;;;;;;;;;;;1043:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1043:65:42;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1043:65:42;;;;1118:3;:27;;;1146:3;1151;:30;;;:32;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1151:32:42;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1151:32:42;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1151:32:42;;;;;;;;;;;;;;;;1118:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1118:66:42;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1118:66:42;;;;1202:3;1195:10;;521:691;;;;;:::o;333:40::-;;;;;;;;;;;;;:::o",
  "source": "pragma solidity 0.4.24;\n\nimport \"../evmscript/IEVMScriptExecutor.sol\";\nimport \"../evmscript/EVMScriptRegistry.sol\";\n\nimport \"../evmscript/executors/CallsScript.sol\";\n\nimport \"../kernel/Kernel.sol\";\nimport \"../acl/ACL.sol\";\n\n\ncontract EVMScriptRegistryFactory is EVMScriptRegistryConstants {\n    EVMScriptRegistry public baseReg;\n    IEVMScriptExecutor public baseCallScript;\n\n    constructor() public {\n        baseReg = new EVMScriptRegistry();\n        baseCallScript = IEVMScriptExecutor(new CallsScript());\n    }\n\n    function newEVMScriptRegistry(Kernel _dao) public returns (EVMScriptRegistry reg) {\n        bytes memory initPayload = abi.encodeWithSelector(reg.initialize.selector);\n        reg = EVMScriptRegistry(_dao.newPinnedAppInstance(EVMSCRIPT_REGISTRY_APP_ID, baseReg, initPayload, true));\n\n        ACL acl = ACL(_dao.acl());\n\n        acl.createPermission(this, reg, reg.REGISTRY_ADD_EXECUTOR_ROLE(), this);\n\n        reg.addScriptExecutor(baseCallScript);     // spec 1 = CallsScript\n\n        // Clean up the permissions\n        acl.revokePermission(this, reg, reg.REGISTRY_ADD_EXECUTOR_ROLE());\n        acl.removePermissionManager(reg, reg.REGISTRY_ADD_EXECUTOR_ROLE());\n\n        return reg;\n    }\n}\n",
  "sourcePath": "@aragon/os/contracts/factory/EVMScriptRegistryFactory.sol",
  "ast": {
    "absolutePath": "@aragon/os/contracts/factory/EVMScriptRegistryFactory.sol",
    "exportedSymbols": {
      "EVMScriptRegistryFactory": [
        10197
      ]
    },
    "id": 10198,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 10092,
        "literals": [
          "solidity",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:42"
      },
      {
        "absolutePath": "@aragon/os/contracts/evmscript/IEVMScriptExecutor.sol",
        "file": "../evmscript/IEVMScriptExecutor.sol",
        "id": 10093,
        "nodeType": "ImportDirective",
        "scope": 10198,
        "sourceUnit": 9497,
        "src": "25:45:42",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@aragon/os/contracts/evmscript/EVMScriptRegistry.sol",
        "file": "../evmscript/EVMScriptRegistry.sol",
        "id": 10094,
        "nodeType": "ImportDirective",
        "scope": 10198,
        "sourceUnit": 9288,
        "src": "71:44:42",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@aragon/os/contracts/evmscript/executors/CallsScript.sol",
        "file": "../evmscript/executors/CallsScript.sol",
        "id": 10095,
        "nodeType": "ImportDirective",
        "scope": 10198,
        "sourceUnit": 9778,
        "src": "117:48:42",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@aragon/os/contracts/kernel/Kernel.sol",
        "file": "../kernel/Kernel.sol",
        "id": 10096,
        "nodeType": "ImportDirective",
        "scope": 10198,
        "sourceUnit": 10748,
        "src": "167:30:42",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@aragon/os/contracts/acl/ACL.sol",
        "file": "../acl/ACL.sol",
        "id": 10097,
        "nodeType": "ImportDirective",
        "scope": 10198,
        "sourceUnit": 7167,
        "src": "198:24:42",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 10098,
              "name": "EVMScriptRegistryConstants",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 9503,
              "src": "262:26:42",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_EVMScriptRegistryConstants_$9503",
                "typeString": "contract EVMScriptRegistryConstants"
              }
            },
            "id": 10099,
            "nodeType": "InheritanceSpecifier",
            "src": "262:26:42"
          }
        ],
        "contractDependencies": [
          9287,
          9503,
          9777
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 10197,
        "linearizedBaseContracts": [
          10197,
          9503
        ],
        "name": "EVMScriptRegistryFactory",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 10101,
            "name": "baseReg",
            "nodeType": "VariableDeclaration",
            "scope": 10197,
            "src": "295:32:42",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
              "typeString": "contract EVMScriptRegistry"
            },
            "typeName": {
              "contractScope": null,
              "id": 10100,
              "name": "EVMScriptRegistry",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 9287,
              "src": "295:17:42",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                "typeString": "contract EVMScriptRegistry"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 10103,
            "name": "baseCallScript",
            "nodeType": "VariableDeclaration",
            "scope": 10197,
            "src": "333:40:42",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_IEVMScriptExecutor_$9496",
              "typeString": "contract IEVMScriptExecutor"
            },
            "typeName": {
              "contractScope": null,
              "id": 10102,
              "name": "IEVMScriptExecutor",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 9496,
              "src": "333:18:42",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_IEVMScriptExecutor_$9496",
                "typeString": "contract IEVMScriptExecutor"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 10120,
              "nodeType": "Block",
              "src": "401:114:42",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 10110,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 10106,
                      "name": "baseReg",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10101,
                      "src": "411:7:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                        "typeString": "contract EVMScriptRegistry"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "id": 10108,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "NewExpression",
                        "src": "421:21:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_EVMScriptRegistry_$9287_$",
                          "typeString": "function () returns (contract EVMScriptRegistry)"
                        },
                        "typeName": {
                          "contractScope": null,
                          "id": 10107,
                          "name": "EVMScriptRegistry",
                          "nodeType": "UserDefinedTypeName",
                          "referencedDeclaration": 9287,
                          "src": "425:17:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                            "typeString": "contract EVMScriptRegistry"
                          }
                        }
                      },
                      "id": 10109,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "421:23:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                        "typeString": "contract EVMScriptRegistry"
                      }
                    },
                    "src": "411:33:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                      "typeString": "contract EVMScriptRegistry"
                    }
                  },
                  "id": 10111,
                  "nodeType": "ExpressionStatement",
                  "src": "411:33:42"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 10118,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 10112,
                      "name": "baseCallScript",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10103,
                      "src": "454:14:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IEVMScriptExecutor_$9496",
                        "typeString": "contract IEVMScriptExecutor"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 10115,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "NewExpression",
                            "src": "490:15:42",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_CallsScript_$9777_$",
                              "typeString": "function () returns (contract CallsScript)"
                            },
                            "typeName": {
                              "contractScope": null,
                              "id": 10114,
                              "name": "CallsScript",
                              "nodeType": "UserDefinedTypeName",
                              "referencedDeclaration": 9777,
                              "src": "494:11:42",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_CallsScript_$9777",
                                "typeString": "contract CallsScript"
                              }
                            }
                          },
                          "id": 10116,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "490:17:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_CallsScript_$9777",
                            "typeString": "contract CallsScript"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_CallsScript_$9777",
                            "typeString": "contract CallsScript"
                          }
                        ],
                        "id": 10113,
                        "name": "IEVMScriptExecutor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9496,
                        "src": "471:18:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_IEVMScriptExecutor_$9496_$",
                          "typeString": "type(contract IEVMScriptExecutor)"
                        }
                      },
                      "id": 10117,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "471:37:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IEVMScriptExecutor_$9496",
                        "typeString": "contract IEVMScriptExecutor"
                      }
                    },
                    "src": "454:54:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IEVMScriptExecutor_$9496",
                      "typeString": "contract IEVMScriptExecutor"
                    }
                  },
                  "id": 10119,
                  "nodeType": "ExpressionStatement",
                  "src": "454:54:42"
                }
              ]
            },
            "documentation": null,
            "id": 10121,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 10104,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "391:2:42"
            },
            "payable": false,
            "returnParameters": {
              "id": 10105,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "401:0:42"
            },
            "scope": 10197,
            "src": "380:135:42",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 10195,
              "nodeType": "Block",
              "src": "603:609:42",
              "statements": [
                {
                  "assignments": [
                    10129
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 10129,
                      "name": "initPayload",
                      "nodeType": "VariableDeclaration",
                      "scope": 10196,
                      "src": "613:24:42",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes"
                      },
                      "typeName": {
                        "id": 10128,
                        "name": "bytes",
                        "nodeType": "ElementaryTypeName",
                        "src": "613:5:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage_ptr",
                          "typeString": "bytes"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 10136,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 10132,
                            "name": "reg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10126,
                            "src": "663:3:42",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                              "typeString": "contract EVMScriptRegistry"
                            }
                          },
                          "id": 10133,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "initialize",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 9149,
                          "src": "663:14:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_nonpayable$__$returns$__$",
                            "typeString": "function () external"
                          }
                        },
                        "id": 10134,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "selector",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "663:23:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 10130,
                        "name": "abi",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12657,
                        "src": "640:3:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_abi",
                          "typeString": "abi"
                        }
                      },
                      "id": 10131,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "encodeWithSelector",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "640:22:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$",
                        "typeString": "function (bytes4) pure returns (bytes memory)"
                      }
                    },
                    "id": 10135,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "640:47:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_memory_ptr",
                      "typeString": "bytes memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "613:74:42"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 10147,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 10137,
                      "name": "reg",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10126,
                      "src": "697:3:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                        "typeString": "contract EVMScriptRegistry"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 10141,
                              "name": "EVMSCRIPT_REGISTRY_APP_ID",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 9502,
                              "src": "747:25:42",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 10142,
                              "name": "baseReg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10101,
                              "src": "774:7:42",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                                "typeString": "contract EVMScriptRegistry"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 10143,
                              "name": "initPayload",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10129,
                              "src": "783:11:42",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "74727565",
                              "id": 10144,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "796:4:42",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "true"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                                "typeString": "contract EVMScriptRegistry"
                              },
                              {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              },
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 10139,
                              "name": "_dao",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10123,
                              "src": "721:4:42",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Kernel_$10747",
                                "typeString": "contract Kernel"
                              }
                            },
                            "id": 10140,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "newPinnedAppInstance",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 10488,
                            "src": "721:25:42",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_bool_$returns$_t_contract$_ERCProxy_$11872_$",
                              "typeString": "function (bytes32,address,bytes memory,bool) external returns (contract ERCProxy)"
                            }
                          },
                          "id": 10145,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "721:80:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_ERCProxy_$11872",
                            "typeString": "contract ERCProxy"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_ERCProxy_$11872",
                            "typeString": "contract ERCProxy"
                          }
                        ],
                        "id": 10138,
                        "name": "EVMScriptRegistry",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9287,
                        "src": "703:17:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_EVMScriptRegistry_$9287_$",
                          "typeString": "type(contract EVMScriptRegistry)"
                        }
                      },
                      "id": 10146,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "703:99:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                        "typeString": "contract EVMScriptRegistry"
                      }
                    },
                    "src": "697:105:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                      "typeString": "contract EVMScriptRegistry"
                    }
                  },
                  "id": 10148,
                  "nodeType": "ExpressionStatement",
                  "src": "697:105:42"
                },
                {
                  "assignments": [
                    10150
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 10150,
                      "name": "acl",
                      "nodeType": "VariableDeclaration",
                      "scope": 10196,
                      "src": "813:7:42",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ACL_$7166",
                        "typeString": "contract ACL"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 10149,
                        "name": "ACL",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 7166,
                        "src": "813:3:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 10156,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 10152,
                            "name": "_dao",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10123,
                            "src": "827:4:42",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Kernel_$10747",
                              "typeString": "contract Kernel"
                            }
                          },
                          "id": 10153,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "acl",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 10609,
                          "src": "827:8:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_IACL_$7681_$",
                            "typeString": "function () view external returns (contract IACL)"
                          }
                        },
                        "id": 10154,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "827:10:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IACL_$7681",
                          "typeString": "contract IACL"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_IACL_$7681",
                          "typeString": "contract IACL"
                        }
                      ],
                      "id": 10151,
                      "name": "ACL",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7166,
                      "src": "823:3:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_contract$_ACL_$7166_$",
                        "typeString": "type(contract ACL)"
                      }
                    },
                    "id": 10155,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "823:15:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ACL_$7166",
                      "typeString": "contract ACL"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "813:25:42"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 10160,
                        "name": "this",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12771,
                        "src": "870:4:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_EVMScriptRegistryFactory_$10197",
                          "typeString": "contract EVMScriptRegistryFactory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 10161,
                        "name": "reg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10126,
                        "src": "876:3:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                          "typeString": "contract EVMScriptRegistry"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 10162,
                            "name": "reg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10126,
                            "src": "881:3:42",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                              "typeString": "contract EVMScriptRegistry"
                            }
                          },
                          "id": 10163,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "REGISTRY_ADD_EXECUTOR_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 9084,
                          "src": "881:30:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 10164,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "881:32:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 10165,
                        "name": "this",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12771,
                        "src": "915:4:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_EVMScriptRegistryFactory_$10197",
                          "typeString": "contract EVMScriptRegistryFactory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_EVMScriptRegistryFactory_$10197",
                          "typeString": "contract EVMScriptRegistryFactory"
                        },
                        {
                          "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                          "typeString": "contract EVMScriptRegistry"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_contract$_EVMScriptRegistryFactory_$10197",
                          "typeString": "contract EVMScriptRegistryFactory"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 10157,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10150,
                        "src": "849:3:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 10159,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "createPermission",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6082,
                      "src": "849:20:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (address,address,bytes32,address) external"
                      }
                    },
                    "id": 10166,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "849:71:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10167,
                  "nodeType": "ExpressionStatement",
                  "src": "849:71:42"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 10171,
                        "name": "baseCallScript",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10103,
                        "src": "953:14:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IEVMScriptExecutor_$9496",
                          "typeString": "contract IEVMScriptExecutor"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_IEVMScriptExecutor_$9496",
                          "typeString": "contract IEVMScriptExecutor"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 10168,
                        "name": "reg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10126,
                        "src": "931:3:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                          "typeString": "contract EVMScriptRegistry"
                        }
                      },
                      "id": 10170,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "addScriptExecutor",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 9181,
                      "src": "931:21:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_contract$_IEVMScriptExecutor_$9496_$returns$_t_uint256_$",
                        "typeString": "function (contract IEVMScriptExecutor) external returns (uint256)"
                      }
                    },
                    "id": 10172,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "931:37:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 10173,
                  "nodeType": "ExpressionStatement",
                  "src": "931:37:42"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 10177,
                        "name": "this",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12771,
                        "src": "1064:4:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_EVMScriptRegistryFactory_$10197",
                          "typeString": "contract EVMScriptRegistryFactory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 10178,
                        "name": "reg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10126,
                        "src": "1070:3:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                          "typeString": "contract EVMScriptRegistry"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 10179,
                            "name": "reg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10126,
                            "src": "1075:3:42",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                              "typeString": "contract EVMScriptRegistry"
                            }
                          },
                          "id": 10180,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "REGISTRY_ADD_EXECUTOR_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 9084,
                          "src": "1075:30:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 10181,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1075:32:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_EVMScriptRegistryFactory_$10197",
                          "typeString": "contract EVMScriptRegistryFactory"
                        },
                        {
                          "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                          "typeString": "contract EVMScriptRegistry"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 10174,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10150,
                        "src": "1043:3:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 10176,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "revokePermission",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6160,
                      "src": "1043:20:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,address,bytes32) external"
                      }
                    },
                    "id": 10182,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1043:65:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10183,
                  "nodeType": "ExpressionStatement",
                  "src": "1043:65:42"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 10187,
                        "name": "reg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10126,
                        "src": "1146:3:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                          "typeString": "contract EVMScriptRegistry"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 10188,
                            "name": "reg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10126,
                            "src": "1151:3:42",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                              "typeString": "contract EVMScriptRegistry"
                            }
                          },
                          "id": 10189,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "REGISTRY_ADD_EXECUTOR_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 9084,
                          "src": "1151:30:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 10190,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1151:32:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                          "typeString": "contract EVMScriptRegistry"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 10184,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10150,
                        "src": "1118:3:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 10186,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "removePermissionManager",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6200,
                      "src": "1118:27:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,bytes32) external"
                      }
                    },
                    "id": 10191,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1118:66:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10192,
                  "nodeType": "ExpressionStatement",
                  "src": "1118:66:42"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 10193,
                    "name": "reg",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 10126,
                    "src": "1202:3:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                      "typeString": "contract EVMScriptRegistry"
                    }
                  },
                  "functionReturnParameters": 10127,
                  "id": 10194,
                  "nodeType": "Return",
                  "src": "1195:10:42"
                }
              ]
            },
            "documentation": null,
            "id": 10196,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "newEVMScriptRegistry",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 10124,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10123,
                  "name": "_dao",
                  "nodeType": "VariableDeclaration",
                  "scope": 10196,
                  "src": "551:11:42",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_Kernel_$10747",
                    "typeString": "contract Kernel"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 10122,
                    "name": "Kernel",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 10747,
                    "src": "551:6:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Kernel_$10747",
                      "typeString": "contract Kernel"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "550:13:42"
            },
            "payable": false,
            "returnParameters": {
              "id": 10127,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10126,
                  "name": "reg",
                  "nodeType": "VariableDeclaration",
                  "scope": 10196,
                  "src": "580:21:42",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                    "typeString": "contract EVMScriptRegistry"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 10125,
                    "name": "EVMScriptRegistry",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 9287,
                    "src": "580:17:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                      "typeString": "contract EVMScriptRegistry"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "579:23:42"
            },
            "scope": 10197,
            "src": "521:691:42",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 10198,
        "src": "225:989:42"
      }
    ],
    "src": "0:1215:42"
  },
  "legacyAST": {
    "absolutePath": "@aragon/os/contracts/factory/EVMScriptRegistryFactory.sol",
    "exportedSymbols": {
      "EVMScriptRegistryFactory": [
        10197
      ]
    },
    "id": 10198,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 10092,
        "literals": [
          "solidity",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:42"
      },
      {
        "absolutePath": "@aragon/os/contracts/evmscript/IEVMScriptExecutor.sol",
        "file": "../evmscript/IEVMScriptExecutor.sol",
        "id": 10093,
        "nodeType": "ImportDirective",
        "scope": 10198,
        "sourceUnit": 9497,
        "src": "25:45:42",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@aragon/os/contracts/evmscript/EVMScriptRegistry.sol",
        "file": "../evmscript/EVMScriptRegistry.sol",
        "id": 10094,
        "nodeType": "ImportDirective",
        "scope": 10198,
        "sourceUnit": 9288,
        "src": "71:44:42",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@aragon/os/contracts/evmscript/executors/CallsScript.sol",
        "file": "../evmscript/executors/CallsScript.sol",
        "id": 10095,
        "nodeType": "ImportDirective",
        "scope": 10198,
        "sourceUnit": 9778,
        "src": "117:48:42",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@aragon/os/contracts/kernel/Kernel.sol",
        "file": "../kernel/Kernel.sol",
        "id": 10096,
        "nodeType": "ImportDirective",
        "scope": 10198,
        "sourceUnit": 10748,
        "src": "167:30:42",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@aragon/os/contracts/acl/ACL.sol",
        "file": "../acl/ACL.sol",
        "id": 10097,
        "nodeType": "ImportDirective",
        "scope": 10198,
        "sourceUnit": 7167,
        "src": "198:24:42",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 10098,
              "name": "EVMScriptRegistryConstants",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 9503,
              "src": "262:26:42",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_EVMScriptRegistryConstants_$9503",
                "typeString": "contract EVMScriptRegistryConstants"
              }
            },
            "id": 10099,
            "nodeType": "InheritanceSpecifier",
            "src": "262:26:42"
          }
        ],
        "contractDependencies": [
          9287,
          9503,
          9777
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 10197,
        "linearizedBaseContracts": [
          10197,
          9503
        ],
        "name": "EVMScriptRegistryFactory",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 10101,
            "name": "baseReg",
            "nodeType": "VariableDeclaration",
            "scope": 10197,
            "src": "295:32:42",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
              "typeString": "contract EVMScriptRegistry"
            },
            "typeName": {
              "contractScope": null,
              "id": 10100,
              "name": "EVMScriptRegistry",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 9287,
              "src": "295:17:42",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                "typeString": "contract EVMScriptRegistry"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 10103,
            "name": "baseCallScript",
            "nodeType": "VariableDeclaration",
            "scope": 10197,
            "src": "333:40:42",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_IEVMScriptExecutor_$9496",
              "typeString": "contract IEVMScriptExecutor"
            },
            "typeName": {
              "contractScope": null,
              "id": 10102,
              "name": "IEVMScriptExecutor",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 9496,
              "src": "333:18:42",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_IEVMScriptExecutor_$9496",
                "typeString": "contract IEVMScriptExecutor"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 10120,
              "nodeType": "Block",
              "src": "401:114:42",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 10110,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 10106,
                      "name": "baseReg",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10101,
                      "src": "411:7:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                        "typeString": "contract EVMScriptRegistry"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "id": 10108,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "NewExpression",
                        "src": "421:21:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_EVMScriptRegistry_$9287_$",
                          "typeString": "function () returns (contract EVMScriptRegistry)"
                        },
                        "typeName": {
                          "contractScope": null,
                          "id": 10107,
                          "name": "EVMScriptRegistry",
                          "nodeType": "UserDefinedTypeName",
                          "referencedDeclaration": 9287,
                          "src": "425:17:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                            "typeString": "contract EVMScriptRegistry"
                          }
                        }
                      },
                      "id": 10109,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "421:23:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                        "typeString": "contract EVMScriptRegistry"
                      }
                    },
                    "src": "411:33:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                      "typeString": "contract EVMScriptRegistry"
                    }
                  },
                  "id": 10111,
                  "nodeType": "ExpressionStatement",
                  "src": "411:33:42"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 10118,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 10112,
                      "name": "baseCallScript",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10103,
                      "src": "454:14:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IEVMScriptExecutor_$9496",
                        "typeString": "contract IEVMScriptExecutor"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 10115,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "NewExpression",
                            "src": "490:15:42",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_CallsScript_$9777_$",
                              "typeString": "function () returns (contract CallsScript)"
                            },
                            "typeName": {
                              "contractScope": null,
                              "id": 10114,
                              "name": "CallsScript",
                              "nodeType": "UserDefinedTypeName",
                              "referencedDeclaration": 9777,
                              "src": "494:11:42",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_CallsScript_$9777",
                                "typeString": "contract CallsScript"
                              }
                            }
                          },
                          "id": 10116,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "490:17:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_CallsScript_$9777",
                            "typeString": "contract CallsScript"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_CallsScript_$9777",
                            "typeString": "contract CallsScript"
                          }
                        ],
                        "id": 10113,
                        "name": "IEVMScriptExecutor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9496,
                        "src": "471:18:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_IEVMScriptExecutor_$9496_$",
                          "typeString": "type(contract IEVMScriptExecutor)"
                        }
                      },
                      "id": 10117,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "471:37:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IEVMScriptExecutor_$9496",
                        "typeString": "contract IEVMScriptExecutor"
                      }
                    },
                    "src": "454:54:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IEVMScriptExecutor_$9496",
                      "typeString": "contract IEVMScriptExecutor"
                    }
                  },
                  "id": 10119,
                  "nodeType": "ExpressionStatement",
                  "src": "454:54:42"
                }
              ]
            },
            "documentation": null,
            "id": 10121,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 10104,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "391:2:42"
            },
            "payable": false,
            "returnParameters": {
              "id": 10105,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "401:0:42"
            },
            "scope": 10197,
            "src": "380:135:42",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 10195,
              "nodeType": "Block",
              "src": "603:609:42",
              "statements": [
                {
                  "assignments": [
                    10129
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 10129,
                      "name": "initPayload",
                      "nodeType": "VariableDeclaration",
                      "scope": 10196,
                      "src": "613:24:42",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes"
                      },
                      "typeName": {
                        "id": 10128,
                        "name": "bytes",
                        "nodeType": "ElementaryTypeName",
                        "src": "613:5:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage_ptr",
                          "typeString": "bytes"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 10136,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 10132,
                            "name": "reg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10126,
                            "src": "663:3:42",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                              "typeString": "contract EVMScriptRegistry"
                            }
                          },
                          "id": 10133,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "initialize",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 9149,
                          "src": "663:14:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_nonpayable$__$returns$__$",
                            "typeString": "function () external"
                          }
                        },
                        "id": 10134,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "selector",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "663:23:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 10130,
                        "name": "abi",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12657,
                        "src": "640:3:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_abi",
                          "typeString": "abi"
                        }
                      },
                      "id": 10131,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "encodeWithSelector",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "640:22:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$",
                        "typeString": "function (bytes4) pure returns (bytes memory)"
                      }
                    },
                    "id": 10135,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "640:47:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_memory_ptr",
                      "typeString": "bytes memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "613:74:42"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 10147,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 10137,
                      "name": "reg",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10126,
                      "src": "697:3:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                        "typeString": "contract EVMScriptRegistry"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 10141,
                              "name": "EVMSCRIPT_REGISTRY_APP_ID",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 9502,
                              "src": "747:25:42",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 10142,
                              "name": "baseReg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10101,
                              "src": "774:7:42",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                                "typeString": "contract EVMScriptRegistry"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 10143,
                              "name": "initPayload",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10129,
                              "src": "783:11:42",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "74727565",
                              "id": 10144,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "bool",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "796:4:42",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "value": "true"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              {
                                "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                                "typeString": "contract EVMScriptRegistry"
                              },
                              {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              },
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 10139,
                              "name": "_dao",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10123,
                              "src": "721:4:42",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Kernel_$10747",
                                "typeString": "contract Kernel"
                              }
                            },
                            "id": 10140,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "newPinnedAppInstance",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 10488,
                            "src": "721:25:42",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_bool_$returns$_t_contract$_ERCProxy_$11872_$",
                              "typeString": "function (bytes32,address,bytes memory,bool) external returns (contract ERCProxy)"
                            }
                          },
                          "id": 10145,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "721:80:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_ERCProxy_$11872",
                            "typeString": "contract ERCProxy"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_ERCProxy_$11872",
                            "typeString": "contract ERCProxy"
                          }
                        ],
                        "id": 10138,
                        "name": "EVMScriptRegistry",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9287,
                        "src": "703:17:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_EVMScriptRegistry_$9287_$",
                          "typeString": "type(contract EVMScriptRegistry)"
                        }
                      },
                      "id": 10146,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "703:99:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                        "typeString": "contract EVMScriptRegistry"
                      }
                    },
                    "src": "697:105:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                      "typeString": "contract EVMScriptRegistry"
                    }
                  },
                  "id": 10148,
                  "nodeType": "ExpressionStatement",
                  "src": "697:105:42"
                },
                {
                  "assignments": [
                    10150
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 10150,
                      "name": "acl",
                      "nodeType": "VariableDeclaration",
                      "scope": 10196,
                      "src": "813:7:42",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ACL_$7166",
                        "typeString": "contract ACL"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 10149,
                        "name": "ACL",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 7166,
                        "src": "813:3:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 10156,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 10152,
                            "name": "_dao",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10123,
                            "src": "827:4:42",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Kernel_$10747",
                              "typeString": "contract Kernel"
                            }
                          },
                          "id": 10153,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "acl",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 10609,
                          "src": "827:8:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_IACL_$7681_$",
                            "typeString": "function () view external returns (contract IACL)"
                          }
                        },
                        "id": 10154,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "827:10:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IACL_$7681",
                          "typeString": "contract IACL"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_IACL_$7681",
                          "typeString": "contract IACL"
                        }
                      ],
                      "id": 10151,
                      "name": "ACL",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7166,
                      "src": "823:3:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_contract$_ACL_$7166_$",
                        "typeString": "type(contract ACL)"
                      }
                    },
                    "id": 10155,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "823:15:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ACL_$7166",
                      "typeString": "contract ACL"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "813:25:42"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 10160,
                        "name": "this",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12771,
                        "src": "870:4:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_EVMScriptRegistryFactory_$10197",
                          "typeString": "contract EVMScriptRegistryFactory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 10161,
                        "name": "reg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10126,
                        "src": "876:3:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                          "typeString": "contract EVMScriptRegistry"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 10162,
                            "name": "reg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10126,
                            "src": "881:3:42",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                              "typeString": "contract EVMScriptRegistry"
                            }
                          },
                          "id": 10163,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "REGISTRY_ADD_EXECUTOR_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 9084,
                          "src": "881:30:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 10164,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "881:32:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 10165,
                        "name": "this",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12771,
                        "src": "915:4:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_EVMScriptRegistryFactory_$10197",
                          "typeString": "contract EVMScriptRegistryFactory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_EVMScriptRegistryFactory_$10197",
                          "typeString": "contract EVMScriptRegistryFactory"
                        },
                        {
                          "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                          "typeString": "contract EVMScriptRegistry"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_contract$_EVMScriptRegistryFactory_$10197",
                          "typeString": "contract EVMScriptRegistryFactory"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 10157,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10150,
                        "src": "849:3:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 10159,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "createPermission",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6082,
                      "src": "849:20:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (address,address,bytes32,address) external"
                      }
                    },
                    "id": 10166,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "849:71:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10167,
                  "nodeType": "ExpressionStatement",
                  "src": "849:71:42"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 10171,
                        "name": "baseCallScript",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10103,
                        "src": "953:14:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IEVMScriptExecutor_$9496",
                          "typeString": "contract IEVMScriptExecutor"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_IEVMScriptExecutor_$9496",
                          "typeString": "contract IEVMScriptExecutor"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 10168,
                        "name": "reg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10126,
                        "src": "931:3:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                          "typeString": "contract EVMScriptRegistry"
                        }
                      },
                      "id": 10170,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "addScriptExecutor",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 9181,
                      "src": "931:21:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_contract$_IEVMScriptExecutor_$9496_$returns$_t_uint256_$",
                        "typeString": "function (contract IEVMScriptExecutor) external returns (uint256)"
                      }
                    },
                    "id": 10172,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "931:37:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 10173,
                  "nodeType": "ExpressionStatement",
                  "src": "931:37:42"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 10177,
                        "name": "this",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 12771,
                        "src": "1064:4:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_EVMScriptRegistryFactory_$10197",
                          "typeString": "contract EVMScriptRegistryFactory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 10178,
                        "name": "reg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10126,
                        "src": "1070:3:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                          "typeString": "contract EVMScriptRegistry"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 10179,
                            "name": "reg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10126,
                            "src": "1075:3:42",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                              "typeString": "contract EVMScriptRegistry"
                            }
                          },
                          "id": 10180,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "REGISTRY_ADD_EXECUTOR_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 9084,
                          "src": "1075:30:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 10181,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1075:32:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_EVMScriptRegistryFactory_$10197",
                          "typeString": "contract EVMScriptRegistryFactory"
                        },
                        {
                          "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                          "typeString": "contract EVMScriptRegistry"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 10174,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10150,
                        "src": "1043:3:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 10176,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "revokePermission",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6160,
                      "src": "1043:20:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,address,bytes32) external"
                      }
                    },
                    "id": 10182,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1043:65:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10183,
                  "nodeType": "ExpressionStatement",
                  "src": "1043:65:42"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 10187,
                        "name": "reg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10126,
                        "src": "1146:3:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                          "typeString": "contract EVMScriptRegistry"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 10188,
                            "name": "reg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10126,
                            "src": "1151:3:42",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                              "typeString": "contract EVMScriptRegistry"
                            }
                          },
                          "id": 10189,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "REGISTRY_ADD_EXECUTOR_ROLE",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 9084,
                          "src": "1151:30:42",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                            "typeString": "function () view external returns (bytes32)"
                          }
                        },
                        "id": 10190,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1151:32:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                          "typeString": "contract EVMScriptRegistry"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 10184,
                        "name": "acl",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10150,
                        "src": "1118:3:42",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ACL_$7166",
                          "typeString": "contract ACL"
                        }
                      },
                      "id": 10186,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "removePermissionManager",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6200,
                      "src": "1118:27:42",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_bytes32_$returns$__$",
                        "typeString": "function (address,bytes32) external"
                      }
                    },
                    "id": 10191,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1118:66:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10192,
                  "nodeType": "ExpressionStatement",
                  "src": "1118:66:42"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 10193,
                    "name": "reg",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 10126,
                    "src": "1202:3:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                      "typeString": "contract EVMScriptRegistry"
                    }
                  },
                  "functionReturnParameters": 10127,
                  "id": 10194,
                  "nodeType": "Return",
                  "src": "1195:10:42"
                }
              ]
            },
            "documentation": null,
            "id": 10196,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "newEVMScriptRegistry",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 10124,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10123,
                  "name": "_dao",
                  "nodeType": "VariableDeclaration",
                  "scope": 10196,
                  "src": "551:11:42",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_Kernel_$10747",
                    "typeString": "contract Kernel"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 10122,
                    "name": "Kernel",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 10747,
                    "src": "551:6:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Kernel_$10747",
                      "typeString": "contract Kernel"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "550:13:42"
            },
            "payable": false,
            "returnParameters": {
              "id": 10127,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10126,
                  "name": "reg",
                  "nodeType": "VariableDeclaration",
                  "scope": 10196,
                  "src": "580:21:42",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                    "typeString": "contract EVMScriptRegistry"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 10125,
                    "name": "EVMScriptRegistry",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 9287,
                    "src": "580:17:42",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_EVMScriptRegistry_$9287",
                      "typeString": "contract EVMScriptRegistry"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "579:23:42"
            },
            "scope": 10197,
            "src": "521:691:42",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 10198,
        "src": "225:989:42"
      }
    ],
    "src": "0:1215:42"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.24+commit.e67f0147.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.0.1",
  "updatedAt": "2019-03-29T09:45:33.519Z",
  "devdoc": {
    "methods": {}
  },
  "userdoc": {
    "methods": {}
  }
}