{
  "contractName": "UpgradeScheme",
  "abi": [
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "parameters",
      "outputs": [
        {
          "name": "voteParams",
          "type": "bytes32"
        },
        {
          "name": "intVote",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_avatar",
          "type": "address"
        },
        {
          "name": "_scheme",
          "type": "address"
        },
        {
          "name": "_params",
          "type": "bytes32"
        }
      ],
      "name": "proposeChangeUpgradingScheme",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "address"
        },
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "organizationsProposals",
      "outputs": [
        {
          "name": "upgradeContract",
          "type": "address"
        },
        {
          "name": "params",
          "type": "bytes32"
        },
        {
          "name": "proposalType",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_voteParams",
          "type": "bytes32"
        },
        {
          "name": "_intVote",
          "type": "address"
        }
      ],
      "name": "getParametersHash",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_hashedParameters",
          "type": "bytes32"
        }
      ],
      "name": "updateParameters",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "name": "_avatar",
          "type": "address"
        },
        {
          "name": "_param",
          "type": "int256"
        }
      ],
      "name": "execute",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_voteParams",
          "type": "bytes32"
        },
        {
          "name": "_intVote",
          "type": "address"
        }
      ],
      "name": "setParameters",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_avatar",
          "type": "address"
        },
        {
          "name": "_newController",
          "type": "address"
        }
      ],
      "name": "proposeUpgrade",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "hashedParameters",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_avatar",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "name": "_intVoteInterface",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_newController",
          "type": "address"
        }
      ],
      "name": "LogNewUpgradeProposal",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_avatar",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "_proposalId",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "name": "_intVoteInterface",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "newUpgradeScheme",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_params",
          "type": "bytes32"
        }
      ],
      "name": "LogChangeUpgradeSchemeProposal",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_avatar",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "LogProposalExecuted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_avatar",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "LogProposalDeleted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "proposalId",
          "type": "bytes32"
        }
      ],
      "name": "LogNewProposal",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    }
  ],
  "bytecode": "0x6060604052341561000f57600080fd5b60008054600160a060020a033316600160a060020a0319909116179055610de78061003b6000396000f3006060604052600436106100955763ffffffff60e060020a60003504166302506804811461009a578063049a8170146100d157806306e3a9781461010b5780632453732a1461015b5780632ac2af531461017d578063310ce4e21461019557806368e14dac146101ce578063887fbd1c146101f05780638da5cb5b14610215578063f2fde38b14610244578063f98e87ba14610263575b600080fd5b34156100a557600080fd5b6100b0600435610276565b604051918252600160a060020a031660208201526040908101905180910390f35b34156100dc57600080fd5b6100f9600160a060020a0360043581169060243516604435610298565b60405190815260200160405180910390f35b341561011657600080fd5b61012d600160a060020a0360043516602435610528565b604051600160a060020a03909316835260208301919091526040808301919091526060909101905180910390f35b341561016657600080fd5b6100f9600435600160a060020a036024351661055c565b341561018857600080fd5b610193600435610596565b005b34156101a057600080fd5b6101ba600435600160a060020a03602435166044356105b6565b604051901515815260200160405180910390f35b34156101d957600080fd5b6100f9600435600160a060020a0360243516610985565b34156101fb57600080fd5b6100f9600160a060020a03600435811690602435166109da565b341561022057600080fd5b610228610bf3565b604051600160a060020a03909116815260200160405180910390f35b341561024f57600080fd5b610193600160a060020a0360043516610c02565b341561026e57600080fd5b6100f9610c9d565b60036020526000908152604090208054600190910154600160a060020a031682565b60006102a2610d84565b6000806102ad610d9b565b600360006102ba8a610ca3565b81526020810191909152604090810160002090805190810160405281548152600190910154600160a060020a031660208201908152909450519250600160a060020a0383166388737b5e600286518b3060006040516020015260405160e060020a63ffffffff871602815260048101949094526024840192909252600160a060020a039081166044840152166064820152608401602060405180830381600087803b151561036757600080fd5b6102c65a03f1151561037857600080fd5b5050506040518051600160a060020a038a16600090815260026020818152604080842085855290915290912001549093501590506103b557600080fd5b60606040519081016040908152600160a060020a03808a16835260208084018a90526002838501819052918c16600090815291815282822086835290522090915081908151815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0391909116178155602082015160018201556040820151600290910155506020840151600160a060020a0316826000191689600160a060020a03167f3a5e331116b6f6d94570c5c9e927c8a26bf164f0a9c968ba1da461944541d66f8a8a604051600160a060020a03909216825260208201526040908101905180910390a482600160a060020a031663339e23d18360013360006040516020015260405160e060020a63ffffffff861602815260048101939093526024830191909152600160a060020a03166044820152606401602060405180830381600087803b151561050157600080fd5b6102c65a03f1151561051257600080fd5b5050506040518051509198975050505050505050565b60026020818152600093845260408085209091529183529120805460018201549190920154600160a060020a039092169183565b60008282604051918252600160a060020a03166c010000000000000000000000000260208201526034016040518091039020905092915050565b60005433600160a060020a039081169116146105b157600080fd5b600155565b6000806105c1610d9b565b600033600160a060020a0316600360006105da89610ca3565b8152602081019190915260400160002060010154600160a060020a03161461060157600080fd5b84600114156109315785600160a060020a0316638da5cb5b6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561065057600080fd5b6102c65a03f1151561066157600080fd5b5050506040518051600160a060020a03881660009081526002602090815260408083208c8452909152908190209195509091506060905190810160409081528254600160a060020a03168252600183015460208301526002909201549181019182529250516001141561075457600160a060020a0383166342427bf883518860006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b151561072e57600080fd5b6102c65a03f1151561073f57600080fd5b50505060405180519050151561075457600080fd5b8160400151600214156109315782600160a060020a0316639b51e35a308860006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b15156107c057600080fd5b6102c65a03f115156107d157600080fd5b5050506040518051915050600160a060020a03831663e869d45f83518460200151848a60006040516020015260405160e060020a63ffffffff8716028152600160a060020a03948516600482015260248101939093527fffffffff0000000000000000000000000000000000000000000000000000000090911660448301529091166064820152608401602060405180830381600087803b151561087457600080fd5b6102c65a03f1151561088557600080fd5b50505060405180519050151561089a57600080fd5b600160a060020a0330168251600160a060020a0316146109315782600160a060020a0316636c525b138760006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561090b57600080fd5b6102c65a03f1151561091c57600080fd5b50505060405180519050151561093157600080fd5b50505050600160a060020a03919091166000908152600260208181526040808420958452949052928120805473ffffffffffffffffffffffffffffffffffffffff1916815560018082018390559301555090565b600080610992848461055c565b60008181526003602052604090208581556001018054600160a060020a03861673ffffffffffffffffffffffffffffffffffffffff1990911617905591508190505092915050565b60006109e4610d84565b6000600360006109f387610ca3565b81526020810191909152604090810160002090805190810160405281548152600190910154600160a060020a03166020820190815290925051600160a060020a03166388737b5e60028451883060006040516020015260405160e060020a63ffffffff871602815260048101949094526024840192909252600160a060020a039081166044840152166064820152608401602060405180830381600087803b1515610a9d57600080fd5b6102c65a03f11515610aae57600080fd5b5050506040518051600160a060020a0387811660009081526002602081815260408084208685528252909220600191810191909155805473ffffffffffffffffffffffffffffffffffffffff1916928916929092179091559092508301905051600160a060020a0316816000191686600160a060020a03167fa96bac6ecd2db240cb777e078d2fceafc3cb9c2aceefe34b827f802d4a1a798087604051600160a060020a03909116815260200160405180910390a48160200151600160a060020a031663339e23d18260013360006040516020015260405160e060020a63ffffffff861602815260048101939093526024830191909152600160a060020a03166044820152606401602060405180830381600087803b1515610bcf57600080fd5b6102c65a03f11515610be057600080fd5b5050506040518051509095945050505050565b600054600160a060020a031681565b60005433600160a060020a03908116911614610c1d57600080fd5b600160a060020a0381161515610c3257600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60015481565b600081600160a060020a0316638da5cb5b6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610ceb57600080fd5b6102c65a03f11515610cfc57600080fd5b50505060405180519050600160a060020a0316631c4d5608308460006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b1515610d6457600080fd5b6102c65a03f11515610d7557600080fd5b50505060405180519392505050565b604080519081016040526000808252602082015290565b6060604051908101604090815260008083526020830181905290820152905600a165627a7a72305820cfe6e2218a70a8d80a8f8832721ccd4e3698007efc8160780c4b9e2bcbf9f2d20029",
  "deployedBytecode": "0x6060604052600436106100955763ffffffff60e060020a60003504166302506804811461009a578063049a8170146100d157806306e3a9781461010b5780632453732a1461015b5780632ac2af531461017d578063310ce4e21461019557806368e14dac146101ce578063887fbd1c146101f05780638da5cb5b14610215578063f2fde38b14610244578063f98e87ba14610263575b600080fd5b34156100a557600080fd5b6100b0600435610276565b604051918252600160a060020a031660208201526040908101905180910390f35b34156100dc57600080fd5b6100f9600160a060020a0360043581169060243516604435610298565b60405190815260200160405180910390f35b341561011657600080fd5b61012d600160a060020a0360043516602435610528565b604051600160a060020a03909316835260208301919091526040808301919091526060909101905180910390f35b341561016657600080fd5b6100f9600435600160a060020a036024351661055c565b341561018857600080fd5b610193600435610596565b005b34156101a057600080fd5b6101ba600435600160a060020a03602435166044356105b6565b604051901515815260200160405180910390f35b34156101d957600080fd5b6100f9600435600160a060020a0360243516610985565b34156101fb57600080fd5b6100f9600160a060020a03600435811690602435166109da565b341561022057600080fd5b610228610bf3565b604051600160a060020a03909116815260200160405180910390f35b341561024f57600080fd5b610193600160a060020a0360043516610c02565b341561026e57600080fd5b6100f9610c9d565b60036020526000908152604090208054600190910154600160a060020a031682565b60006102a2610d84565b6000806102ad610d9b565b600360006102ba8a610ca3565b81526020810191909152604090810160002090805190810160405281548152600190910154600160a060020a031660208201908152909450519250600160a060020a0383166388737b5e600286518b3060006040516020015260405160e060020a63ffffffff871602815260048101949094526024840192909252600160a060020a039081166044840152166064820152608401602060405180830381600087803b151561036757600080fd5b6102c65a03f1151561037857600080fd5b5050506040518051600160a060020a038a16600090815260026020818152604080842085855290915290912001549093501590506103b557600080fd5b60606040519081016040908152600160a060020a03808a16835260208084018a90526002838501819052918c16600090815291815282822086835290522090915081908151815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0391909116178155602082015160018201556040820151600290910155506020840151600160a060020a0316826000191689600160a060020a03167f3a5e331116b6f6d94570c5c9e927c8a26bf164f0a9c968ba1da461944541d66f8a8a604051600160a060020a03909216825260208201526040908101905180910390a482600160a060020a031663339e23d18360013360006040516020015260405160e060020a63ffffffff861602815260048101939093526024830191909152600160a060020a03166044820152606401602060405180830381600087803b151561050157600080fd5b6102c65a03f1151561051257600080fd5b5050506040518051509198975050505050505050565b60026020818152600093845260408085209091529183529120805460018201549190920154600160a060020a039092169183565b60008282604051918252600160a060020a03166c010000000000000000000000000260208201526034016040518091039020905092915050565b60005433600160a060020a039081169116146105b157600080fd5b600155565b6000806105c1610d9b565b600033600160a060020a0316600360006105da89610ca3565b8152602081019190915260400160002060010154600160a060020a03161461060157600080fd5b84600114156109315785600160a060020a0316638da5cb5b6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561065057600080fd5b6102c65a03f1151561066157600080fd5b5050506040518051600160a060020a03881660009081526002602090815260408083208c8452909152908190209195509091506060905190810160409081528254600160a060020a03168252600183015460208301526002909201549181019182529250516001141561075457600160a060020a0383166342427bf883518860006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b151561072e57600080fd5b6102c65a03f1151561073f57600080fd5b50505060405180519050151561075457600080fd5b8160400151600214156109315782600160a060020a0316639b51e35a308860006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b15156107c057600080fd5b6102c65a03f115156107d157600080fd5b5050506040518051915050600160a060020a03831663e869d45f83518460200151848a60006040516020015260405160e060020a63ffffffff8716028152600160a060020a03948516600482015260248101939093527fffffffff0000000000000000000000000000000000000000000000000000000090911660448301529091166064820152608401602060405180830381600087803b151561087457600080fd5b6102c65a03f1151561088557600080fd5b50505060405180519050151561089a57600080fd5b600160a060020a0330168251600160a060020a0316146109315782600160a060020a0316636c525b138760006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561090b57600080fd5b6102c65a03f1151561091c57600080fd5b50505060405180519050151561093157600080fd5b50505050600160a060020a03919091166000908152600260208181526040808420958452949052928120805473ffffffffffffffffffffffffffffffffffffffff1916815560018082018390559301555090565b600080610992848461055c565b60008181526003602052604090208581556001018054600160a060020a03861673ffffffffffffffffffffffffffffffffffffffff1990911617905591508190505092915050565b60006109e4610d84565b6000600360006109f387610ca3565b81526020810191909152604090810160002090805190810160405281548152600190910154600160a060020a03166020820190815290925051600160a060020a03166388737b5e60028451883060006040516020015260405160e060020a63ffffffff871602815260048101949094526024840192909252600160a060020a039081166044840152166064820152608401602060405180830381600087803b1515610a9d57600080fd5b6102c65a03f11515610aae57600080fd5b5050506040518051600160a060020a0387811660009081526002602081815260408084208685528252909220600191810191909155805473ffffffffffffffffffffffffffffffffffffffff1916928916929092179091559092508301905051600160a060020a0316816000191686600160a060020a03167fa96bac6ecd2db240cb777e078d2fceafc3cb9c2aceefe34b827f802d4a1a798087604051600160a060020a03909116815260200160405180910390a48160200151600160a060020a031663339e23d18260013360006040516020015260405160e060020a63ffffffff861602815260048101939093526024830191909152600160a060020a03166044820152606401602060405180830381600087803b1515610bcf57600080fd5b6102c65a03f11515610be057600080fd5b5050506040518051509095945050505050565b600054600160a060020a031681565b60005433600160a060020a03908116911614610c1d57600080fd5b600160a060020a0381161515610c3257600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60015481565b600081600160a060020a0316638da5cb5b6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610ceb57600080fd5b6102c65a03f11515610cfc57600080fd5b50505060405180519050600160a060020a0316631c4d5608308460006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b1515610d6457600080fd5b6102c65a03f11515610d7557600080fd5b50505060405180519392505050565b604080519081016040526000808252602082015290565b6060604051908101604090815260008083526020830181905290820152905600a165627a7a72305820cfe6e2218a70a8d80a8f8832721ccd4e3698007efc8160780c4b9e2bcbf9f2d20029",
  "sourceMap": "272:6229:27:-;;;1711:34;;;;;;;;501:5:33;:18;;-1:-1:-1;;;;;509:10:33;501:18;-1:-1:-1;;;;;;501:18:33;;;;;;272:6229:27;;;;;;",
  "deployedSourceMap": "272:6229:27:-;;;;;;;;;-1:-1:-1;;;272:6229:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1620:46;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1620:46:27;;;;;;;;;;;;;;;;3684:1053;;;;;;;;;;-1:-1:-1;;;;;3684:1053:27;;;;;;;;;;;;;;;;;;;;;;;;;;;1336:81;;;;;;;;;;-1:-1:-1;;;;;1336:81:27;;;;;;;;;;-1:-1:-1;;;;;1336:81:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2252:189;;;;;;;;;;;;-1:-1:-1;;;;;2252:189:27;;;;;455:157:25;;;;;;;;;;;;;;;;5052:1447:27;;;;;;;;;;;;-1:-1:-1;;;;;5052:1447:27;;;;;;;;;;;;;;;;;;;;;;;;1848:334;;;;;;;;;;;;-1:-1:-1;;;;;1848:334:27;;;;;2704:709;;;;;;;;;;-1:-1:-1;;;;;2704:709:27;;;;;;;;;;238:20:33;;;;;;;;;;;;;;;-1:-1:-1;;;;;238:20:33;;;;;;;;;;;;;;834:169;;;;;;;;;;-1:-1:-1;;;;;834:169:33;;;;;345:31:25;;;;;;;;;;;;1620:46:27;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1620:46:27;;:::o;3684:1053::-;3833:7;3856:24;;:::i;:::-;3941;3992:18;4206:31;;:::i;:::-;3883:10;:48;3894:36;3922:7;3894:27;:36::i;:::-;3883:48;;;;;;;;;;;;;;;;;3856:75;;;;;;;;;;;;;;;-1:-1:-1;;;;;3856:75:27;;;;;;;;;-1:-1:-1;3968:14:27;3941:41;-1:-1:-1;;;;;;4013:15:27;;;4029:1;4032:6;:17;4051:7;4080:4;4013:73;;;;;;;;-1:-1:-1;;;4013:73:27;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4013:73:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4100:31:27;;;;;;:22;:31;;;;;;;;:43;;;;;;;;;:56;;4013:73;;-1:-1:-1;4100:61:27;;-1:-1:-1;4096:100:27;;4177:8;;;4096:100;4240:123;;;;;;;;;;-1:-1:-1;;;;;4240:123:27;;;;;;;;;;;;4284:1;4240:123;;;;;;4373:31;;;4240:123;4373:31;;;;;;;;;:43;;;;;;4240:123;;-1:-1:-1;4240:123:27;;;4373:54;;;-1:-1:-1;;4373:54:27;-1:-1:-1;;;;;4373:54:27;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4527:14:27;;;;-1:-1:-1;;;;;4438:155:27;4503:10;4438:155;;;4482:7;-1:-1:-1;;;;;4438:155:27;;4555:7;4576;4438:155;;-1:-1:-1;;;;;4438:155:27;;;;;;;;;;;;;;;;;;;;4603:7;-1:-1:-1;;;;;4603:17:27;;4621:10;4633:1;4636:10;4603:44;;;;;;;;-1:-1:-1;;;4603:44:27;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4603:44:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4720:10:27;;3684:1053;-1:-1:-1;;;;;;;;3684:1053:27:o;1336:81::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1336:81:27;;;;;:::o;2252:189::-;2369:7;2411:11;2424:8;2401:32;;;;;-1:-1:-1;;;;;2401:32:27;;;;;;;;;;;;;;;;2392:42;;2252:189;;;;:::o;455:157:25:-;654:5:33;;640:10;-1:-1:-1;;;;;640:19:33;;;654:5;;640:19;632:28;;;;;;569:16:25;:36;455:157::o;5052:1447:27:-;5134:4;5427:30;5518:31;;:::i;:::-;5932:18;5284:10;-1:-1:-1;;;;;5216:78:27;:10;:56;5227:44;5262:7;5227:27;:44::i;:::-;5216:56;;;;;;;;;;;;;:64;;;-1:-1:-1;;;;;5216:64:27;:78;5208:87;;;;;;5350:6;5360:1;5350:11;5346:1065;;;5487:7;-1:-1:-1;;;;;5480:21:27;;:23;;;;;;;;;;;-1:-1:-1;;;5480:23:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5552:31:27;;;;;;:22;:31;;;;;;;;:44;;;;;;;;;;5480:23;;-1:-1:-1;5552:44:27;;-1:-1:-1;5518:78:27;;;;;;;;;;;;-1:-1:-1;;;;;5518:78:27;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5648:21:27;5673:1;5648:26;5644:188;;;-1:-1:-1;;;;;5699:28:27;;;5728:8;:24;5753:7;5699:62;;;;;;;;-1:-1:-1;;;5699:62:27;;;;;;-1:-1:-1;;;;;5699:62:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5698:63;5694:120;;;5785:8;;;5694:120;5886:8;:21;;;5911:1;5886:26;5882:511;;;5953:10;-1:-1:-1;;;;;5953:31:27;;5985:4;5990:7;5953:45;;;;;;;;-1:-1:-1;;;5953:45:27;;;;;;-1:-1:-1;;;;;5953:45:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;6022:25:27;;;6048:8;:24;6074:8;:15;;;6091:11;6103:7;6022:89;;;;;;;;-1:-1:-1;;;6022:89:27;;;;;;-1:-1:-1;;;;;6022:89:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6021:90;6017:147;;;6135:8;;;6017:147;-1:-1:-1;;;;;6221:4:27;6185:41;:8;:24;-1:-1:-1;;;;;6185:41:27;;6181:192;;6256:10;-1:-1:-1;;;;;6256:25:27;;6282:7;6256:34;;;;;;;;-1:-1:-1;;;6256:34:27;;;;;;-1:-1:-1;;;;;6256:34:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6255:35;6251:100;;;6318:8;;;6251:100;-1:-1:-1;;;;;;;;;6427:31:27;;;;;;;;:22;:31;;;;;;;;:44;;;;;;;;;6420:51;;-1:-1:-1;;6420:51:27;;;-1:-1:-1;6420:51:27;;;;;;;;;-1:-1:-1;;5052:1447:27:o;1848:334::-;1956:7;1979:18;2000:40;2018:11;2031:8;2000:17;:40::i;:::-;2050:22;;;;:10;:22;;;;;:47;;;2107:30;;:41;;-1:-1:-1;;;;;2107:41:27;;-1:-1:-1;;2107:41:27;;;;;;1979:61;-1:-1:-1;1979:61:27;;-1:-1:-1;1848:334:27;;;;;:::o;2704:709::-;2799:7;2822:24;;:::i;:::-;2907:18;2849:10;:48;2860:36;2888:7;2860:27;:36::i;:::-;2849:48;;;;;;;;;;;;;;;;;2822:75;;;;;;;;;;;;;;;-1:-1:-1;;;;;2822:75:27;;;;;;;;;-1:-1:-1;2928:14:27;-1:-1:-1;;;;;2928:22:27;;2951:1;2954:6;:17;2973:7;3002:4;2928:80;;;;;;;;-1:-1:-1;;;2928:80:27;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2928:80:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3018:31:27;;;;;;;:22;:31;;;;;;;;:43;;;;;;;;3077:1;3018:56;;;:60;;;;3088:76;;-1:-1:-1;;3088:76:27;;;;;;;;;;;3018:43;;-1:-1:-1;3217:14:27;;;-1:-1:-1;3217:14:27;-1:-1:-1;;;;;3174:74:27;3205:10;3174:74;;;3196:7;-1:-1:-1;;;;;3174:74:27;;3233:14;3174:74;;-1:-1:-1;;;;;3174:74:27;;;;;;;;;;;;;;3258:6;:14;;;-1:-1:-1;;;;;3258:24:27;;3283:10;3295:1;3298:10;3258:51;;;;;;;;-1:-1:-1;;;3258:51:27;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3258:51:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3396:10:27;;2704:709;-1:-1:-1;;;;;2704:709:27:o;238:20:33:-;;;-1:-1:-1;;;;;238:20:33;;:::o;834:169::-;654:5;;640:10;-1:-1:-1;;;;;640:19:33;;;654:5;;640:19;632:28;;;;;;-1:-1:-1;;;;;910:22:33;;;;902:31;;;;;;960:5;;-1:-1:-1;;;;;939:37:33;;;;960:5;939:37;;;;;;;;;;982:5;:16;;-1:-1:-1;;982:16:33;-1:-1:-1;;;;;982:16:33;;;;;;;;;;834:169::o;345:31:25:-;;;;:::o;707:191::-;786:7;832;-1:-1:-1;;;;;832:13:25;;:15;;;;;;;;;;;-1:-1:-1;;;832:15:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;812:56:25;;869:4;882:7;812:79;;;;;;;;-1:-1:-1;;;812:79:25;;;;;;-1:-1:-1;;;;;812:79:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;707:191;-1:-1:-1;;;707:191:25:o;272:6229:27:-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o",
  "source": "pragma solidity ^0.4.18;\n\nimport \"../VotingMachines/IntVoteInterface.sol\";\nimport \"./UniversalScheme.sol\";\n\n\n/**\n * @title A scheme to manage the upgrade of an organization.\n * @dev The scheme is used to upgrade the controller of an organization to a new controller.\n */\n\ncontract UpgradeScheme is UniversalScheme, ExecutableInterface {\n    event LogNewUpgradeProposal(\n        address indexed _avatar,\n        bytes32 indexed _proposalId,\n        address indexed _intVoteInterface,\n        address _newController\n    );\n    event LogChangeUpgradeSchemeProposal(\n        address indexed _avatar,\n        bytes32 indexed _proposalId,\n        address indexed _intVoteInterface,\n        address newUpgradeScheme,\n        bytes32 _params\n    );\n    event LogProposalExecuted(address indexed _avatar, bytes32 indexed _proposalId);\n    event LogProposalDeleted(address indexed _avatar, bytes32 indexed _proposalId);\n\n    // Details of an upgrade proposal:\n    struct UpgradeProposal {\n        address upgradeContract; // Either the new controller we upgrade to, or the new upgrading scheme.\n        bytes32 params; // Params for the new upgrading scheme.\n        uint proposalType; // 1: Upgrade controller, 2: change upgrade scheme.\n    }\n\n    // A mapping from the organization's (Avatar) address to the saved data of the organization:\n    mapping(address=>mapping(bytes32=>UpgradeProposal)) public organizationsProposals;\n\n    // A mapping from hashes to parameters (use to store a particular configuration on the controller)\n    struct Parameters {\n        bytes32 voteParams;\n        IntVoteInterface intVote;\n    }\n\n    mapping(bytes32=>Parameters) public parameters;\n\n    /**\n    * @dev Constructor\n    */\n    function UpgradeScheme() public {}\n\n    /**\n    * @dev hash the parameters, save them if necessary, and return the hash value\n    */\n    function setParameters(\n        bytes32 _voteParams,\n        IntVoteInterface _intVote\n    ) public returns(bytes32)\n    {\n        bytes32 paramsHash = getParametersHash(_voteParams, _intVote);\n        parameters[paramsHash].voteParams = _voteParams;\n        parameters[paramsHash].intVote = _intVote;\n        return paramsHash;\n    }\n\n    /**\n    * @dev return a hash of the given parameters\n    */\n    function getParametersHash(\n        bytes32 _voteParams,\n        IntVoteInterface _intVote\n    ) public pure returns(bytes32)\n    {\n        return  (keccak256(_voteParams, _intVote));\n    }\n\n    /**\n    * @dev propose an upgrade of the organization's controller\n    * @param _avatar avatar of the organization\n    * @param _newController address of the new controller that is being proposed\n    * @return an id which represents the proposal\n    */\n    function proposeUpgrade(Avatar _avatar, address _newController)\n        public\n        returns(bytes32)\n    {\n        Parameters memory params = parameters[getParametersFromController(_avatar)];\n        bytes32 proposalId = params.intVote.propose(2, params.voteParams, _avatar, ExecutableInterface(this));\n        organizationsProposals[_avatar][proposalId].proposalType = 1;\n        organizationsProposals[_avatar][proposalId].upgradeContract = _newController;\n        LogNewUpgradeProposal(_avatar, proposalId, params.intVote, _newController);\n        params.intVote.ownerVote(proposalId, 1, msg.sender); // Automatically votes `yes` in the name of the proposal submitter.*/\n        return proposalId;\n    }\n\n    /**\n    * @dev propose to replace this scheme by another upgrading scheme\n    * @param _avatar avatar of the organization\n    * @param _scheme address of the new upgrading scheme\n    * @param _params ???\n    * @return an id which represents the proposal\n    */\n    function proposeChangeUpgradingScheme(\n        Avatar _avatar,\n        address _scheme,\n        bytes32 _params\n    )\n        public\n        returns(bytes32)\n    {\n        Parameters memory params = parameters[getParametersFromController(_avatar)];\n        IntVoteInterface intVote = params.intVote;\n        bytes32 proposalId = intVote.propose(2, params.voteParams, _avatar, ExecutableInterface(this));\n        if (organizationsProposals[_avatar][proposalId].proposalType != 0) {\n            revert();\n        }\n\n        UpgradeProposal memory proposal = UpgradeProposal({\n            proposalType: 2,\n            upgradeContract: _scheme,\n            params: _params\n        });\n        organizationsProposals[_avatar][proposalId] = proposal;\n\n        LogChangeUpgradeSchemeProposal(\n            _avatar,\n            proposalId,\n            params.intVote,\n            _scheme,\n            _params\n        );\n        intVote.ownerVote(proposalId, 1, msg.sender); // Automatically votes `yes` in the name of the opener.\n        return proposalId;\n    }\n\n    /**\n    * @dev execution of proposals, can only be called by the voting machine in which the vote is held.\n    * @param _proposalId the ID of the voting in the voting machine\n    * @param _avatar address of the controller\n    * @param _param a parameter of the voting result, 0 is no and 1 is yes.\n    */\n    function execute(bytes32 _proposalId, address _avatar, int _param) public returns(bool) {\n        // Check the caller is indeed the voting machine:\n        require(parameters[getParametersFromController(Avatar(_avatar))].intVote == msg.sender);\n        // Check if vote was successful:\n        if (_param == 1) {\n\n        // Define controller and get the params:\n            ControllerInterface controller = ControllerInterface(Avatar(_avatar).owner());\n            UpgradeProposal memory proposal = organizationsProposals[_avatar][_proposalId];\n\n        // Upgrading controller:\n            if (proposal.proposalType == 1) {\n                if (!controller.upgradeController(proposal.upgradeContract,_avatar)) {\n                    revert();\n                  }\n                }\n\n        // Changing upgrade scheme:\n            if (proposal.proposalType == 2) {\n                bytes4 permissions = controller.getSchemePermissions(this,_avatar);\n\n                if (!controller.registerScheme(proposal.upgradeContract, proposal.params, permissions,_avatar)) {\n                    revert();\n                  }\n                if (proposal.upgradeContract != address(this) ) {\n                    if (!controller.unregisterSelf(_avatar)) {\n                        revert();\n                      }\n                    }\n                  }\n                }\n        delete organizationsProposals[_avatar][_proposalId];\n        return true;\n    }\n}\n",
  "sourcePath": "/home/travis/build/dev-matan-tsuberi/daostack/contracts/universalSchemes/UpgradeScheme.sol",
  "ast": {
    "attributes": {
      "absolutePath": "/home/travis/build/dev-matan-tsuberi/daostack/contracts/universalSchemes/UpgradeScheme.sol",
      "exportedSymbols": {
        "UpgradeScheme": [
          8883
        ]
      }
    },
    "children": [
      {
        "attributes": {
          "literals": [
            "solidity",
            "^",
            "0.4",
            ".18"
          ]
        },
        "id": 8486,
        "name": "PragmaDirective",
        "src": "0:24:27"
      },
      {
        "attributes": {
          "SourceUnit": 2652,
          "absolutePath": "/home/travis/build/dev-matan-tsuberi/daostack/contracts/VotingMachines/IntVoteInterface.sol",
          "file": "../VotingMachines/IntVoteInterface.sol",
          "scope": 8884,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 8487,
        "name": "ImportDirective",
        "src": "26:48:27"
      },
      {
        "attributes": {
          "SourceUnit": 8466,
          "absolutePath": "/home/travis/build/dev-matan-tsuberi/daostack/contracts/universalSchemes/UniversalScheme.sol",
          "file": "./UniversalScheme.sol",
          "scope": 8884,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 8488,
        "name": "ImportDirective",
        "src": "75:31:27"
      },
      {
        "attributes": {
          "contractDependencies": [
            6617,
            8465,
            8484,
            10301
          ],
          "contractKind": "contract",
          "documentation": "@title A scheme to manage the upgrade of an organization.\n@dev The scheme is used to upgrade the controller of an organization to a new controller.",
          "fullyImplemented": true,
          "linearizedBaseContracts": [
            8883,
            6617,
            8465,
            8484,
            10301
          ],
          "name": "UpgradeScheme",
          "scope": 8884
        },
        "children": [
          {
            "attributes": {
              "arguments": [
                null
              ]
            },
            "children": [
              {
                "attributes": {
                  "contractScope": null,
                  "name": "UniversalScheme",
                  "referencedDeclaration": 8465,
                  "type": "contract UniversalScheme"
                },
                "id": 8489,
                "name": "UserDefinedTypeName",
                "src": "298:15:27"
              }
            ],
            "id": 8490,
            "name": "InheritanceSpecifier",
            "src": "298:15:27"
          },
          {
            "attributes": {
              "arguments": [
                null
              ]
            },
            "children": [
              {
                "attributes": {
                  "contractScope": null,
                  "name": "ExecutableInterface",
                  "referencedDeclaration": 6617,
                  "type": "contract ExecutableInterface"
                },
                "id": 8491,
                "name": "UserDefinedTypeName",
                "src": "315:19:27"
              }
            ],
            "id": 8492,
            "name": "InheritanceSpecifier",
            "src": "315:19:27"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "LogNewUpgradeProposal"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_avatar",
                      "scope": 8502,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 8493,
                        "name": "ElementaryTypeName",
                        "src": "378:7:27"
                      }
                    ],
                    "id": 8494,
                    "name": "VariableDeclaration",
                    "src": "378:23:27"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_proposalId",
                      "scope": 8502,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 8495,
                        "name": "ElementaryTypeName",
                        "src": "411:7:27"
                      }
                    ],
                    "id": 8496,
                    "name": "VariableDeclaration",
                    "src": "411:27:27"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_intVoteInterface",
                      "scope": 8502,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 8497,
                        "name": "ElementaryTypeName",
                        "src": "448:7:27"
                      }
                    ],
                    "id": 8498,
                    "name": "VariableDeclaration",
                    "src": "448:33:27"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_newController",
                      "scope": 8502,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 8499,
                        "name": "ElementaryTypeName",
                        "src": "491:7:27"
                      }
                    ],
                    "id": 8500,
                    "name": "VariableDeclaration",
                    "src": "491:22:27"
                  }
                ],
                "id": 8501,
                "name": "ParameterList",
                "src": "368:151:27"
              }
            ],
            "id": 8502,
            "name": "EventDefinition",
            "src": "341:179:27"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "LogChangeUpgradeSchemeProposal"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_avatar",
                      "scope": 8514,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 8503,
                        "name": "ElementaryTypeName",
                        "src": "571:7:27"
                      }
                    ],
                    "id": 8504,
                    "name": "VariableDeclaration",
                    "src": "571:23:27"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_proposalId",
                      "scope": 8514,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 8505,
                        "name": "ElementaryTypeName",
                        "src": "604:7:27"
                      }
                    ],
                    "id": 8506,
                    "name": "VariableDeclaration",
                    "src": "604:27:27"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_intVoteInterface",
                      "scope": 8514,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 8507,
                        "name": "ElementaryTypeName",
                        "src": "641:7:27"
                      }
                    ],
                    "id": 8508,
                    "name": "VariableDeclaration",
                    "src": "641:33:27"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "newUpgradeScheme",
                      "scope": 8514,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 8509,
                        "name": "ElementaryTypeName",
                        "src": "684:7:27"
                      }
                    ],
                    "id": 8510,
                    "name": "VariableDeclaration",
                    "src": "684:24:27"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_params",
                      "scope": 8514,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 8511,
                        "name": "ElementaryTypeName",
                        "src": "718:7:27"
                      }
                    ],
                    "id": 8512,
                    "name": "VariableDeclaration",
                    "src": "718:15:27"
                  }
                ],
                "id": 8513,
                "name": "ParameterList",
                "src": "561:178:27"
              }
            ],
            "id": 8514,
            "name": "EventDefinition",
            "src": "525:215:27"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "LogProposalExecuted"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_avatar",
                      "scope": 8520,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 8515,
                        "name": "ElementaryTypeName",
                        "src": "771:7:27"
                      }
                    ],
                    "id": 8516,
                    "name": "VariableDeclaration",
                    "src": "771:23:27"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_proposalId",
                      "scope": 8520,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 8517,
                        "name": "ElementaryTypeName",
                        "src": "796:7:27"
                      }
                    ],
                    "id": 8518,
                    "name": "VariableDeclaration",
                    "src": "796:27:27"
                  }
                ],
                "id": 8519,
                "name": "ParameterList",
                "src": "770:54:27"
              }
            ],
            "id": 8520,
            "name": "EventDefinition",
            "src": "745:80:27"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "LogProposalDeleted"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_avatar",
                      "scope": 8526,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 8521,
                        "name": "ElementaryTypeName",
                        "src": "855:7:27"
                      }
                    ],
                    "id": 8522,
                    "name": "VariableDeclaration",
                    "src": "855:23:27"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_proposalId",
                      "scope": 8526,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 8523,
                        "name": "ElementaryTypeName",
                        "src": "880:7:27"
                      }
                    ],
                    "id": 8524,
                    "name": "VariableDeclaration",
                    "src": "880:27:27"
                  }
                ],
                "id": 8525,
                "name": "ParameterList",
                "src": "854:54:27"
              }
            ],
            "id": 8526,
            "name": "EventDefinition",
            "src": "830:79:27"
          },
          {
            "attributes": {
              "canonicalName": "UpgradeScheme.UpgradeProposal",
              "name": "UpgradeProposal",
              "scope": 8883,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "constant": false,
                  "name": "upgradeContract",
                  "scope": 8533,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "address",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "address",
                      "type": "address"
                    },
                    "id": 8527,
                    "name": "ElementaryTypeName",
                    "src": "987:7:27"
                  }
                ],
                "id": 8528,
                "name": "VariableDeclaration",
                "src": "987:23:27"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "params",
                  "scope": 8533,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "bytes32",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "bytes32",
                      "type": "bytes32"
                    },
                    "id": 8529,
                    "name": "ElementaryTypeName",
                    "src": "1093:7:27"
                  }
                ],
                "id": 8530,
                "name": "VariableDeclaration",
                "src": "1093:14:27"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "proposalType",
                  "scope": 8533,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "uint256",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "uint",
                      "type": "uint256"
                    },
                    "id": 8531,
                    "name": "ElementaryTypeName",
                    "src": "1157:4:27"
                  }
                ],
                "id": 8532,
                "name": "VariableDeclaration",
                "src": "1157:17:27"
              }
            ],
            "id": 8533,
            "name": "StructDefinition",
            "src": "954:279:27"
          },
          {
            "attributes": {
              "constant": false,
              "name": "organizationsProposals",
              "scope": 8883,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "mapping(address => mapping(bytes32 => struct UpgradeScheme.UpgradeProposal storage ref))",
              "value": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "type": "mapping(address => mapping(bytes32 => struct UpgradeScheme.UpgradeProposal storage ref))"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "address",
                      "type": "address"
                    },
                    "id": 8534,
                    "name": "ElementaryTypeName",
                    "src": "1344:7:27"
                  },
                  {
                    "attributes": {
                      "type": "mapping(bytes32 => struct UpgradeScheme.UpgradeProposal storage ref)"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 8535,
                        "name": "ElementaryTypeName",
                        "src": "1361:7:27"
                      },
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "UpgradeProposal",
                          "referencedDeclaration": 8533,
                          "type": "struct UpgradeScheme.UpgradeProposal storage pointer"
                        },
                        "id": 8536,
                        "name": "UserDefinedTypeName",
                        "src": "1370:15:27"
                      }
                    ],
                    "id": 8537,
                    "name": "Mapping",
                    "src": "1353:33:27"
                  }
                ],
                "id": 8538,
                "name": "Mapping",
                "src": "1336:51:27"
              }
            ],
            "id": 8539,
            "name": "VariableDeclaration",
            "src": "1336:81:27"
          },
          {
            "attributes": {
              "canonicalName": "UpgradeScheme.Parameters",
              "name": "Parameters",
              "scope": 8883,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "constant": false,
                  "name": "voteParams",
                  "scope": 8544,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "bytes32",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "bytes32",
                      "type": "bytes32"
                    },
                    "id": 8540,
                    "name": "ElementaryTypeName",
                    "src": "1555:7:27"
                  }
                ],
                "id": 8541,
                "name": "VariableDeclaration",
                "src": "1555:18:27"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "intVote",
                  "scope": 8544,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "contract IntVoteInterface",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "contractScope": null,
                      "name": "IntVoteInterface",
                      "referencedDeclaration": 2651,
                      "type": "contract IntVoteInterface"
                    },
                    "id": 8542,
                    "name": "UserDefinedTypeName",
                    "src": "1583:16:27"
                  }
                ],
                "id": 8543,
                "name": "VariableDeclaration",
                "src": "1583:24:27"
              }
            ],
            "id": 8544,
            "name": "StructDefinition",
            "src": "1527:87:27"
          },
          {
            "attributes": {
              "constant": false,
              "name": "parameters",
              "scope": 8883,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "mapping(bytes32 => struct UpgradeScheme.Parameters storage ref)",
              "value": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "type": "mapping(bytes32 => struct UpgradeScheme.Parameters storage ref)"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "bytes32",
                      "type": "bytes32"
                    },
                    "id": 8545,
                    "name": "ElementaryTypeName",
                    "src": "1628:7:27"
                  },
                  {
                    "attributes": {
                      "contractScope": null,
                      "name": "Parameters",
                      "referencedDeclaration": 8544,
                      "type": "struct UpgradeScheme.Parameters storage pointer"
                    },
                    "id": 8546,
                    "name": "UserDefinedTypeName",
                    "src": "1637:10:27"
                  }
                ],
                "id": 8547,
                "name": "Mapping",
                "src": "1620:28:27"
              }
            ],
            "id": 8548,
            "name": "VariableDeclaration",
            "src": "1620:46:27"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": true,
              "modifiers": [
                null
              ],
              "name": "UpgradeScheme",
              "payable": false,
              "scope": 8883,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 8549,
                "name": "ParameterList",
                "src": "1733:2:27"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 8550,
                "name": "ParameterList",
                "src": "1743:0:27"
              },
              {
                "attributes": {
                  "statements": [
                    null
                  ]
                },
                "children": [],
                "id": 8551,
                "name": "Block",
                "src": "1743:2:27"
              }
            ],
            "id": 8552,
            "name": "FunctionDefinition",
            "src": "1711:34:27"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "setParameters",
              "payable": false,
              "scope": 8883,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_voteParams",
                      "scope": 8585,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 8553,
                        "name": "ElementaryTypeName",
                        "src": "1880:7:27"
                      }
                    ],
                    "id": 8554,
                    "name": "VariableDeclaration",
                    "src": "1880:19:27"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_intVote",
                      "scope": 8585,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract IntVoteInterface",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "IntVoteInterface",
                          "referencedDeclaration": 2651,
                          "type": "contract IntVoteInterface"
                        },
                        "id": 8555,
                        "name": "UserDefinedTypeName",
                        "src": "1909:16:27"
                      }
                    ],
                    "id": 8556,
                    "name": "VariableDeclaration",
                    "src": "1909:25:27"
                  }
                ],
                "id": 8557,
                "name": "ParameterList",
                "src": "1870:70:27"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 8585,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 8558,
                        "name": "ElementaryTypeName",
                        "src": "1956:7:27"
                      }
                    ],
                    "id": 8559,
                    "name": "VariableDeclaration",
                    "src": "1956:7:27"
                  }
                ],
                "id": 8560,
                "name": "ParameterList",
                "src": "1955:9:27"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        8562
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "paramsHash",
                          "scope": 8585,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "bytes32",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "bytes32",
                              "type": "bytes32"
                            },
                            "id": 8561,
                            "name": "ElementaryTypeName",
                            "src": "1979:7:27"
                          }
                        ],
                        "id": 8562,
                        "name": "VariableDeclaration",
                        "src": "1979:18:27"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "bytes32",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_contract$_IntVoteInterface_$2651",
                                  "typeString": "contract IntVoteInterface"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8601,
                              "type": "function (bytes32,contract IntVoteInterface) pure returns (bytes32)",
                              "value": "getParametersHash"
                            },
                            "id": 8563,
                            "name": "Identifier",
                            "src": "2000:17:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8554,
                              "type": "bytes32",
                              "value": "_voteParams"
                            },
                            "id": 8564,
                            "name": "Identifier",
                            "src": "2018:11:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8556,
                              "type": "contract IntVoteInterface",
                              "value": "_intVote"
                            },
                            "id": 8565,
                            "name": "Identifier",
                            "src": "2031:8:27"
                          }
                        ],
                        "id": 8566,
                        "name": "FunctionCall",
                        "src": "2000:40:27"
                      }
                    ],
                    "id": 8567,
                    "name": "VariableDeclarationStatement",
                    "src": "1979:61:27"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "bytes32"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "member_name": "voteParams",
                              "referencedDeclaration": 8541,
                              "type": "bytes32"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct UpgradeScheme.Parameters storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8548,
                                      "type": "mapping(bytes32 => struct UpgradeScheme.Parameters storage ref)",
                                      "value": "parameters"
                                    },
                                    "id": 8568,
                                    "name": "Identifier",
                                    "src": "2050:10:27"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8562,
                                      "type": "bytes32",
                                      "value": "paramsHash"
                                    },
                                    "id": 8569,
                                    "name": "Identifier",
                                    "src": "2061:10:27"
                                  }
                                ],
                                "id": 8570,
                                "name": "IndexAccess",
                                "src": "2050:22:27"
                              }
                            ],
                            "id": 8571,
                            "name": "MemberAccess",
                            "src": "2050:33:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8554,
                              "type": "bytes32",
                              "value": "_voteParams"
                            },
                            "id": 8572,
                            "name": "Identifier",
                            "src": "2086:11:27"
                          }
                        ],
                        "id": 8573,
                        "name": "Assignment",
                        "src": "2050:47:27"
                      }
                    ],
                    "id": 8574,
                    "name": "ExpressionStatement",
                    "src": "2050:47:27"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "contract IntVoteInterface"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "member_name": "intVote",
                              "referencedDeclaration": 8543,
                              "type": "contract IntVoteInterface"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct UpgradeScheme.Parameters storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8548,
                                      "type": "mapping(bytes32 => struct UpgradeScheme.Parameters storage ref)",
                                      "value": "parameters"
                                    },
                                    "id": 8575,
                                    "name": "Identifier",
                                    "src": "2107:10:27"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8562,
                                      "type": "bytes32",
                                      "value": "paramsHash"
                                    },
                                    "id": 8576,
                                    "name": "Identifier",
                                    "src": "2118:10:27"
                                  }
                                ],
                                "id": 8577,
                                "name": "IndexAccess",
                                "src": "2107:22:27"
                              }
                            ],
                            "id": 8578,
                            "name": "MemberAccess",
                            "src": "2107:30:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8556,
                              "type": "contract IntVoteInterface",
                              "value": "_intVote"
                            },
                            "id": 8579,
                            "name": "Identifier",
                            "src": "2140:8:27"
                          }
                        ],
                        "id": 8580,
                        "name": "Assignment",
                        "src": "2107:41:27"
                      }
                    ],
                    "id": 8581,
                    "name": "ExpressionStatement",
                    "src": "2107:41:27"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 8560
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "overloadedDeclarations": [
                            null
                          ],
                          "referencedDeclaration": 8562,
                          "type": "bytes32",
                          "value": "paramsHash"
                        },
                        "id": 8582,
                        "name": "Identifier",
                        "src": "2165:10:27"
                      }
                    ],
                    "id": 8583,
                    "name": "Return",
                    "src": "2158:17:27"
                  }
                ],
                "id": 8584,
                "name": "Block",
                "src": "1969:213:27"
              }
            ],
            "id": 8585,
            "name": "FunctionDefinition",
            "src": "1848:334:27"
          },
          {
            "attributes": {
              "constant": true,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "getParametersHash",
              "payable": false,
              "scope": 8883,
              "stateMutability": "pure",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_voteParams",
                      "scope": 8601,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 8586,
                        "name": "ElementaryTypeName",
                        "src": "2288:7:27"
                      }
                    ],
                    "id": 8587,
                    "name": "VariableDeclaration",
                    "src": "2288:19:27"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_intVote",
                      "scope": 8601,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract IntVoteInterface",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "IntVoteInterface",
                          "referencedDeclaration": 2651,
                          "type": "contract IntVoteInterface"
                        },
                        "id": 8588,
                        "name": "UserDefinedTypeName",
                        "src": "2317:16:27"
                      }
                    ],
                    "id": 8589,
                    "name": "VariableDeclaration",
                    "src": "2317:25:27"
                  }
                ],
                "id": 8590,
                "name": "ParameterList",
                "src": "2278:70:27"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 8601,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 8591,
                        "name": "ElementaryTypeName",
                        "src": "2369:7:27"
                      }
                    ],
                    "id": 8592,
                    "name": "VariableDeclaration",
                    "src": "2369:7:27"
                  }
                ],
                "id": 8593,
                "name": "ParameterList",
                "src": "2368:9:27"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 8593
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "type": "bytes32"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "bytes32",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    {
                                      "typeIdentifier": "t_contract$_IntVoteInterface_$2651",
                                      "typeString": "contract IntVoteInterface"
                                    }
                                  ],
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10861,
                                  "type": "function () pure returns (bytes32)",
                                  "value": "keccak256"
                                },
                                "id": 8594,
                                "name": "Identifier",
                                "src": "2401:9:27"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8587,
                                  "type": "bytes32",
                                  "value": "_voteParams"
                                },
                                "id": 8595,
                                "name": "Identifier",
                                "src": "2411:11:27"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8589,
                                  "type": "contract IntVoteInterface",
                                  "value": "_intVote"
                                },
                                "id": 8596,
                                "name": "Identifier",
                                "src": "2424:8:27"
                              }
                            ],
                            "id": 8597,
                            "name": "FunctionCall",
                            "src": "2401:32:27"
                          }
                        ],
                        "id": 8598,
                        "name": "TupleExpression",
                        "src": "2400:34:27"
                      }
                    ],
                    "id": 8599,
                    "name": "Return",
                    "src": "2392:42:27"
                  }
                ],
                "id": 8600,
                "name": "Block",
                "src": "2382:59:27"
              }
            ],
            "id": 8601,
            "name": "FunctionDefinition",
            "src": "2252:189:27"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "proposeUpgrade",
              "payable": false,
              "scope": 8883,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 8672,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract Avatar",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "Avatar",
                          "referencedDeclaration": 3065,
                          "type": "contract Avatar"
                        },
                        "id": 8602,
                        "name": "UserDefinedTypeName",
                        "src": "2728:6:27"
                      }
                    ],
                    "id": 8603,
                    "name": "VariableDeclaration",
                    "src": "2728:14:27"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_newController",
                      "scope": 8672,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 8604,
                        "name": "ElementaryTypeName",
                        "src": "2744:7:27"
                      }
                    ],
                    "id": 8605,
                    "name": "VariableDeclaration",
                    "src": "2744:22:27"
                  }
                ],
                "id": 8606,
                "name": "ParameterList",
                "src": "2727:40:27"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 8672,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 8607,
                        "name": "ElementaryTypeName",
                        "src": "2799:7:27"
                      }
                    ],
                    "id": 8608,
                    "name": "VariableDeclaration",
                    "src": "2799:7:27"
                  }
                ],
                "id": 8609,
                "name": "ParameterList",
                "src": "2798:9:27"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        8611
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "params",
                          "scope": 8672,
                          "stateVariable": false,
                          "storageLocation": "memory",
                          "type": "struct UpgradeScheme.Parameters memory",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "Parameters",
                              "referencedDeclaration": 8544,
                              "type": "struct UpgradeScheme.Parameters storage pointer"
                            },
                            "id": 8610,
                            "name": "UserDefinedTypeName",
                            "src": "2822:10:27"
                          }
                        ],
                        "id": 8611,
                        "name": "VariableDeclaration",
                        "src": "2822:24:27"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "type": "struct UpgradeScheme.Parameters storage ref"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8548,
                              "type": "mapping(bytes32 => struct UpgradeScheme.Parameters storage ref)",
                              "value": "parameters"
                            },
                            "id": 8612,
                            "name": "Identifier",
                            "src": "2849:10:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "bytes32",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_contract$_Avatar_$3065",
                                      "typeString": "contract Avatar"
                                    }
                                  ],
                                  "overloadedDeclarations": [
                                    8464
                                  ],
                                  "referencedDeclaration": 8464,
                                  "type": "function (contract Avatar) view returns (bytes32)",
                                  "value": "getParametersFromController"
                                },
                                "id": 8613,
                                "name": "Identifier",
                                "src": "2860:27:27"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8603,
                                  "type": "contract Avatar",
                                  "value": "_avatar"
                                },
                                "id": 8614,
                                "name": "Identifier",
                                "src": "2888:7:27"
                              }
                            ],
                            "id": 8615,
                            "name": "FunctionCall",
                            "src": "2860:36:27"
                          }
                        ],
                        "id": 8616,
                        "name": "IndexAccess",
                        "src": "2849:48:27"
                      }
                    ],
                    "id": 8617,
                    "name": "VariableDeclarationStatement",
                    "src": "2822:75:27"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        8619
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "proposalId",
                          "scope": 8672,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "bytes32",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "bytes32",
                              "type": "bytes32"
                            },
                            "id": 8618,
                            "name": "ElementaryTypeName",
                            "src": "2907:7:27"
                          }
                        ],
                        "id": 8619,
                        "name": "VariableDeclaration",
                        "src": "2907:18:27"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "bytes32",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_2_by_1",
                                  "typeString": "int_const 2"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_contract$_Avatar_$3065",
                                  "typeString": "contract Avatar"
                                },
                                {
                                  "typeIdentifier": "t_contract$_ExecutableInterface_$6617",
                                  "typeString": "contract ExecutableInterface"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "propose",
                              "referencedDeclaration": 2563,
                              "type": "function (uint256,bytes32,address,contract ExecutableInterface) external returns (bytes32)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "intVote",
                                  "referencedDeclaration": 8543,
                                  "type": "contract IntVoteInterface"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8611,
                                      "type": "struct UpgradeScheme.Parameters memory",
                                      "value": "params"
                                    },
                                    "id": 8620,
                                    "name": "Identifier",
                                    "src": "2928:6:27"
                                  }
                                ],
                                "id": 8621,
                                "name": "MemberAccess",
                                "src": "2928:14:27"
                              }
                            ],
                            "id": 8622,
                            "name": "MemberAccess",
                            "src": "2928:22:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "32",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "number",
                              "type": "int_const 2",
                              "value": "2"
                            },
                            "id": 8623,
                            "name": "Literal",
                            "src": "2951:1:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "voteParams",
                              "referencedDeclaration": 8541,
                              "type": "bytes32"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8611,
                                  "type": "struct UpgradeScheme.Parameters memory",
                                  "value": "params"
                                },
                                "id": 8624,
                                "name": "Identifier",
                                "src": "2954:6:27"
                              }
                            ],
                            "id": 8625,
                            "name": "MemberAccess",
                            "src": "2954:17:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8603,
                              "type": "contract Avatar",
                              "value": "_avatar"
                            },
                            "id": 8626,
                            "name": "Identifier",
                            "src": "2973:7:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "contract ExecutableInterface",
                              "type_conversion": true
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_contract$_UpgradeScheme_$8883",
                                      "typeString": "contract UpgradeScheme"
                                    }
                                  ],
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6617,
                                  "type": "type(contract ExecutableInterface)",
                                  "value": "ExecutableInterface"
                                },
                                "id": 8627,
                                "name": "Identifier",
                                "src": "2982:19:27"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10956,
                                  "type": "contract UpgradeScheme",
                                  "value": "this"
                                },
                                "id": 8628,
                                "name": "Identifier",
                                "src": "3002:4:27"
                              }
                            ],
                            "id": 8629,
                            "name": "FunctionCall",
                            "src": "2982:25:27"
                          }
                        ],
                        "id": 8630,
                        "name": "FunctionCall",
                        "src": "2928:80:27"
                      }
                    ],
                    "id": 8631,
                    "name": "VariableDeclarationStatement",
                    "src": "2907:101:27"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "member_name": "proposalType",
                              "referencedDeclaration": 8532,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct UpgradeScheme.UpgradeProposal storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "mapping(bytes32 => struct UpgradeScheme.UpgradeProposal storage ref)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8539,
                                          "type": "mapping(address => mapping(bytes32 => struct UpgradeScheme.UpgradeProposal storage ref))",
                                          "value": "organizationsProposals"
                                        },
                                        "id": 8632,
                                        "name": "Identifier",
                                        "src": "3018:22:27"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8603,
                                          "type": "contract Avatar",
                                          "value": "_avatar"
                                        },
                                        "id": 8633,
                                        "name": "Identifier",
                                        "src": "3041:7:27"
                                      }
                                    ],
                                    "id": 8635,
                                    "name": "IndexAccess",
                                    "src": "3018:31:27"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8619,
                                      "type": "bytes32",
                                      "value": "proposalId"
                                    },
                                    "id": 8634,
                                    "name": "Identifier",
                                    "src": "3050:10:27"
                                  }
                                ],
                                "id": 8636,
                                "name": "IndexAccess",
                                "src": "3018:43:27"
                              }
                            ],
                            "id": 8637,
                            "name": "MemberAccess",
                            "src": "3018:56:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "31",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "number",
                              "type": "int_const 1",
                              "value": "1"
                            },
                            "id": 8638,
                            "name": "Literal",
                            "src": "3077:1:27"
                          }
                        ],
                        "id": 8639,
                        "name": "Assignment",
                        "src": "3018:60:27"
                      }
                    ],
                    "id": 8640,
                    "name": "ExpressionStatement",
                    "src": "3018:60:27"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "address"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "member_name": "upgradeContract",
                              "referencedDeclaration": 8528,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct UpgradeScheme.UpgradeProposal storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "mapping(bytes32 => struct UpgradeScheme.UpgradeProposal storage ref)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8539,
                                          "type": "mapping(address => mapping(bytes32 => struct UpgradeScheme.UpgradeProposal storage ref))",
                                          "value": "organizationsProposals"
                                        },
                                        "id": 8641,
                                        "name": "Identifier",
                                        "src": "3088:22:27"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8603,
                                          "type": "contract Avatar",
                                          "value": "_avatar"
                                        },
                                        "id": 8642,
                                        "name": "Identifier",
                                        "src": "3111:7:27"
                                      }
                                    ],
                                    "id": 8644,
                                    "name": "IndexAccess",
                                    "src": "3088:31:27"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8619,
                                      "type": "bytes32",
                                      "value": "proposalId"
                                    },
                                    "id": 8643,
                                    "name": "Identifier",
                                    "src": "3120:10:27"
                                  }
                                ],
                                "id": 8645,
                                "name": "IndexAccess",
                                "src": "3088:43:27"
                              }
                            ],
                            "id": 8646,
                            "name": "MemberAccess",
                            "src": "3088:59:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8605,
                              "type": "address",
                              "value": "_newController"
                            },
                            "id": 8647,
                            "name": "Identifier",
                            "src": "3150:14:27"
                          }
                        ],
                        "id": 8648,
                        "name": "Assignment",
                        "src": "3088:76:27"
                      }
                    ],
                    "id": 8649,
                    "name": "ExpressionStatement",
                    "src": "3088:76:27"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_Avatar_$3065",
                                  "typeString": "contract Avatar"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_contract$_IntVoteInterface_$2651",
                                  "typeString": "contract IntVoteInterface"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8502,
                              "type": "function (address,bytes32,address,address)",
                              "value": "LogNewUpgradeProposal"
                            },
                            "id": 8650,
                            "name": "Identifier",
                            "src": "3174:21:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8603,
                              "type": "contract Avatar",
                              "value": "_avatar"
                            },
                            "id": 8651,
                            "name": "Identifier",
                            "src": "3196:7:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8619,
                              "type": "bytes32",
                              "value": "proposalId"
                            },
                            "id": 8652,
                            "name": "Identifier",
                            "src": "3205:10:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "intVote",
                              "referencedDeclaration": 8543,
                              "type": "contract IntVoteInterface"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8611,
                                  "type": "struct UpgradeScheme.Parameters memory",
                                  "value": "params"
                                },
                                "id": 8653,
                                "name": "Identifier",
                                "src": "3217:6:27"
                              }
                            ],
                            "id": 8654,
                            "name": "MemberAccess",
                            "src": "3217:14:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8605,
                              "type": "address",
                              "value": "_newController"
                            },
                            "id": 8655,
                            "name": "Identifier",
                            "src": "3233:14:27"
                          }
                        ],
                        "id": 8656,
                        "name": "FunctionCall",
                        "src": "3174:74:27"
                      }
                    ],
                    "id": 8657,
                    "name": "ExpressionStatement",
                    "src": "3174:74:27"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "bool",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_rational_1_by_1",
                                  "typeString": "int_const 1"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "ownerVote",
                              "referencedDeclaration": 2590,
                              "type": "function (bytes32,uint256,address) external returns (bool)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "intVote",
                                  "referencedDeclaration": 8543,
                                  "type": "contract IntVoteInterface"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8611,
                                      "type": "struct UpgradeScheme.Parameters memory",
                                      "value": "params"
                                    },
                                    "id": 8658,
                                    "name": "Identifier",
                                    "src": "3258:6:27"
                                  }
                                ],
                                "id": 8661,
                                "name": "MemberAccess",
                                "src": "3258:14:27"
                              }
                            ],
                            "id": 8662,
                            "name": "MemberAccess",
                            "src": "3258:24:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8619,
                              "type": "bytes32",
                              "value": "proposalId"
                            },
                            "id": 8663,
                            "name": "Identifier",
                            "src": "3283:10:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "31",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "number",
                              "type": "int_const 1",
                              "value": "1"
                            },
                            "id": 8664,
                            "name": "Literal",
                            "src": "3295:1:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "sender",
                              "referencedDeclaration": null,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10867,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 8665,
                                "name": "Identifier",
                                "src": "3298:3:27"
                              }
                            ],
                            "id": 8666,
                            "name": "MemberAccess",
                            "src": "3298:10:27"
                          }
                        ],
                        "id": 8667,
                        "name": "FunctionCall",
                        "src": "3258:51:27"
                      }
                    ],
                    "id": 8668,
                    "name": "ExpressionStatement",
                    "src": "3258:51:27"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 8609
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "overloadedDeclarations": [
                            null
                          ],
                          "referencedDeclaration": 8619,
                          "type": "bytes32",
                          "value": "proposalId"
                        },
                        "id": 8669,
                        "name": "Identifier",
                        "src": "3396:10:27"
                      }
                    ],
                    "id": 8670,
                    "name": "Return",
                    "src": "3389:17:27"
                  }
                ],
                "id": 8671,
                "name": "Block",
                "src": "2812:601:27"
              }
            ],
            "id": 8672,
            "name": "FunctionDefinition",
            "src": "2704:709:27"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "proposeChangeUpgradingScheme",
              "payable": false,
              "scope": 8883,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 8759,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract Avatar",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "Avatar",
                          "referencedDeclaration": 3065,
                          "type": "contract Avatar"
                        },
                        "id": 8673,
                        "name": "UserDefinedTypeName",
                        "src": "3731:6:27"
                      }
                    ],
                    "id": 8674,
                    "name": "VariableDeclaration",
                    "src": "3731:14:27"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_scheme",
                      "scope": 8759,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 8675,
                        "name": "ElementaryTypeName",
                        "src": "3755:7:27"
                      }
                    ],
                    "id": 8676,
                    "name": "VariableDeclaration",
                    "src": "3755:15:27"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_params",
                      "scope": 8759,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 8677,
                        "name": "ElementaryTypeName",
                        "src": "3780:7:27"
                      }
                    ],
                    "id": 8678,
                    "name": "VariableDeclaration",
                    "src": "3780:15:27"
                  }
                ],
                "id": 8679,
                "name": "ParameterList",
                "src": "3721:80:27"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 8759,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 8680,
                        "name": "ElementaryTypeName",
                        "src": "3833:7:27"
                      }
                    ],
                    "id": 8681,
                    "name": "VariableDeclaration",
                    "src": "3833:7:27"
                  }
                ],
                "id": 8682,
                "name": "ParameterList",
                "src": "3832:9:27"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        8684
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "params",
                          "scope": 8759,
                          "stateVariable": false,
                          "storageLocation": "memory",
                          "type": "struct UpgradeScheme.Parameters memory",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "Parameters",
                              "referencedDeclaration": 8544,
                              "type": "struct UpgradeScheme.Parameters storage pointer"
                            },
                            "id": 8683,
                            "name": "UserDefinedTypeName",
                            "src": "3856:10:27"
                          }
                        ],
                        "id": 8684,
                        "name": "VariableDeclaration",
                        "src": "3856:24:27"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "type": "struct UpgradeScheme.Parameters storage ref"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8548,
                              "type": "mapping(bytes32 => struct UpgradeScheme.Parameters storage ref)",
                              "value": "parameters"
                            },
                            "id": 8685,
                            "name": "Identifier",
                            "src": "3883:10:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "bytes32",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_contract$_Avatar_$3065",
                                      "typeString": "contract Avatar"
                                    }
                                  ],
                                  "overloadedDeclarations": [
                                    8464
                                  ],
                                  "referencedDeclaration": 8464,
                                  "type": "function (contract Avatar) view returns (bytes32)",
                                  "value": "getParametersFromController"
                                },
                                "id": 8686,
                                "name": "Identifier",
                                "src": "3894:27:27"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8674,
                                  "type": "contract Avatar",
                                  "value": "_avatar"
                                },
                                "id": 8687,
                                "name": "Identifier",
                                "src": "3922:7:27"
                              }
                            ],
                            "id": 8688,
                            "name": "FunctionCall",
                            "src": "3894:36:27"
                          }
                        ],
                        "id": 8689,
                        "name": "IndexAccess",
                        "src": "3883:48:27"
                      }
                    ],
                    "id": 8690,
                    "name": "VariableDeclarationStatement",
                    "src": "3856:75:27"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        8692
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "intVote",
                          "scope": 8759,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "contract IntVoteInterface",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "IntVoteInterface",
                              "referencedDeclaration": 2651,
                              "type": "contract IntVoteInterface"
                            },
                            "id": 8691,
                            "name": "UserDefinedTypeName",
                            "src": "3941:16:27"
                          }
                        ],
                        "id": 8692,
                        "name": "VariableDeclaration",
                        "src": "3941:24:27"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "member_name": "intVote",
                          "referencedDeclaration": 8543,
                          "type": "contract IntVoteInterface"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8684,
                              "type": "struct UpgradeScheme.Parameters memory",
                              "value": "params"
                            },
                            "id": 8693,
                            "name": "Identifier",
                            "src": "3968:6:27"
                          }
                        ],
                        "id": 8694,
                        "name": "MemberAccess",
                        "src": "3968:14:27"
                      }
                    ],
                    "id": 8695,
                    "name": "VariableDeclarationStatement",
                    "src": "3941:41:27"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        8697
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "proposalId",
                          "scope": 8759,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "bytes32",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "bytes32",
                              "type": "bytes32"
                            },
                            "id": 8696,
                            "name": "ElementaryTypeName",
                            "src": "3992:7:27"
                          }
                        ],
                        "id": 8697,
                        "name": "VariableDeclaration",
                        "src": "3992:18:27"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "bytes32",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_2_by_1",
                                  "typeString": "int_const 2"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_contract$_Avatar_$3065",
                                  "typeString": "contract Avatar"
                                },
                                {
                                  "typeIdentifier": "t_contract$_ExecutableInterface_$6617",
                                  "typeString": "contract ExecutableInterface"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "propose",
                              "referencedDeclaration": 2563,
                              "type": "function (uint256,bytes32,address,contract ExecutableInterface) external returns (bytes32)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8692,
                                  "type": "contract IntVoteInterface",
                                  "value": "intVote"
                                },
                                "id": 8698,
                                "name": "Identifier",
                                "src": "4013:7:27"
                              }
                            ],
                            "id": 8699,
                            "name": "MemberAccess",
                            "src": "4013:15:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "32",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "number",
                              "type": "int_const 2",
                              "value": "2"
                            },
                            "id": 8700,
                            "name": "Literal",
                            "src": "4029:1:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "voteParams",
                              "referencedDeclaration": 8541,
                              "type": "bytes32"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8684,
                                  "type": "struct UpgradeScheme.Parameters memory",
                                  "value": "params"
                                },
                                "id": 8701,
                                "name": "Identifier",
                                "src": "4032:6:27"
                              }
                            ],
                            "id": 8702,
                            "name": "MemberAccess",
                            "src": "4032:17:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8674,
                              "type": "contract Avatar",
                              "value": "_avatar"
                            },
                            "id": 8703,
                            "name": "Identifier",
                            "src": "4051:7:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "type": "contract ExecutableInterface",
                              "type_conversion": true
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_contract$_UpgradeScheme_$8883",
                                      "typeString": "contract UpgradeScheme"
                                    }
                                  ],
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6617,
                                  "type": "type(contract ExecutableInterface)",
                                  "value": "ExecutableInterface"
                                },
                                "id": 8704,
                                "name": "Identifier",
                                "src": "4060:19:27"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10956,
                                  "type": "contract UpgradeScheme",
                                  "value": "this"
                                },
                                "id": 8705,
                                "name": "Identifier",
                                "src": "4080:4:27"
                              }
                            ],
                            "id": 8706,
                            "name": "FunctionCall",
                            "src": "4060:25:27"
                          }
                        ],
                        "id": 8707,
                        "name": "FunctionCall",
                        "src": "4013:73:27"
                      }
                    ],
                    "id": 8708,
                    "name": "VariableDeclarationStatement",
                    "src": "3992:94:27"
                  },
                  {
                    "attributes": {
                      "falseBody": null
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "!=",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "proposalType",
                              "referencedDeclaration": 8532,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct UpgradeScheme.UpgradeProposal storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "mapping(bytes32 => struct UpgradeScheme.UpgradeProposal storage ref)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8539,
                                          "type": "mapping(address => mapping(bytes32 => struct UpgradeScheme.UpgradeProposal storage ref))",
                                          "value": "organizationsProposals"
                                        },
                                        "id": 8709,
                                        "name": "Identifier",
                                        "src": "4100:22:27"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8674,
                                          "type": "contract Avatar",
                                          "value": "_avatar"
                                        },
                                        "id": 8710,
                                        "name": "Identifier",
                                        "src": "4123:7:27"
                                      }
                                    ],
                                    "id": 8711,
                                    "name": "IndexAccess",
                                    "src": "4100:31:27"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8697,
                                      "type": "bytes32",
                                      "value": "proposalId"
                                    },
                                    "id": 8712,
                                    "name": "Identifier",
                                    "src": "4132:10:27"
                                  }
                                ],
                                "id": 8713,
                                "name": "IndexAccess",
                                "src": "4100:43:27"
                              }
                            ],
                            "id": 8714,
                            "name": "MemberAccess",
                            "src": "4100:56:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 8715,
                            "name": "Literal",
                            "src": "4160:1:27"
                          }
                        ],
                        "id": 8716,
                        "name": "BinaryOperation",
                        "src": "4100:61:27"
                      },
                      {
                        "children": [
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    null
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "tuple()",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        null
                                      ],
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10871,
                                      "type": "function () pure",
                                      "value": "revert"
                                    },
                                    "id": 8717,
                                    "name": "Identifier",
                                    "src": "4177:6:27"
                                  }
                                ],
                                "id": 8718,
                                "name": "FunctionCall",
                                "src": "4177:8:27"
                              }
                            ],
                            "id": 8719,
                            "name": "ExpressionStatement",
                            "src": "4177:8:27"
                          }
                        ],
                        "id": 8720,
                        "name": "Block",
                        "src": "4163:33:27"
                      }
                    ],
                    "id": 8721,
                    "name": "IfStatement",
                    "src": "4096:100:27"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        8723
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "proposal",
                          "scope": 8759,
                          "stateVariable": false,
                          "storageLocation": "memory",
                          "type": "struct UpgradeScheme.UpgradeProposal memory",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "UpgradeProposal",
                              "referencedDeclaration": 8533,
                              "type": "struct UpgradeScheme.UpgradeProposal storage pointer"
                            },
                            "id": 8722,
                            "name": "UserDefinedTypeName",
                            "src": "4206:15:27"
                          }
                        ],
                        "id": 8723,
                        "name": "VariableDeclaration",
                        "src": "4206:31:27"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": true,
                          "lValueRequested": false,
                          "names": [
                            "proposalType",
                            "upgradeContract",
                            "params"
                          ],
                          "type": "struct UpgradeScheme.UpgradeProposal memory",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8533,
                              "type": "type(struct UpgradeScheme.UpgradeProposal storage pointer)",
                              "value": "UpgradeProposal"
                            },
                            "id": 8724,
                            "name": "Identifier",
                            "src": "4240:15:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "32",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "number",
                              "type": "int_const 2",
                              "value": "2"
                            },
                            "id": 8725,
                            "name": "Literal",
                            "src": "4284:1:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8676,
                              "type": "address",
                              "value": "_scheme"
                            },
                            "id": 8726,
                            "name": "Identifier",
                            "src": "4316:7:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8678,
                              "type": "bytes32",
                              "value": "_params"
                            },
                            "id": 8727,
                            "name": "Identifier",
                            "src": "4345:7:27"
                          }
                        ],
                        "id": 8728,
                        "name": "FunctionCall",
                        "src": "4240:123:27"
                      }
                    ],
                    "id": 8729,
                    "name": "VariableDeclarationStatement",
                    "src": "4206:157:27"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "struct UpgradeScheme.UpgradeProposal storage ref"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "type": "struct UpgradeScheme.UpgradeProposal storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "mapping(bytes32 => struct UpgradeScheme.UpgradeProposal storage ref)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8539,
                                      "type": "mapping(address => mapping(bytes32 => struct UpgradeScheme.UpgradeProposal storage ref))",
                                      "value": "organizationsProposals"
                                    },
                                    "id": 8730,
                                    "name": "Identifier",
                                    "src": "4373:22:27"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8674,
                                      "type": "contract Avatar",
                                      "value": "_avatar"
                                    },
                                    "id": 8731,
                                    "name": "Identifier",
                                    "src": "4396:7:27"
                                  }
                                ],
                                "id": 8733,
                                "name": "IndexAccess",
                                "src": "4373:31:27"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8697,
                                  "type": "bytes32",
                                  "value": "proposalId"
                                },
                                "id": 8732,
                                "name": "Identifier",
                                "src": "4405:10:27"
                              }
                            ],
                            "id": 8734,
                            "name": "IndexAccess",
                            "src": "4373:43:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8723,
                              "type": "struct UpgradeScheme.UpgradeProposal memory",
                              "value": "proposal"
                            },
                            "id": 8735,
                            "name": "Identifier",
                            "src": "4419:8:27"
                          }
                        ],
                        "id": 8736,
                        "name": "Assignment",
                        "src": "4373:54:27"
                      }
                    ],
                    "id": 8737,
                    "name": "ExpressionStatement",
                    "src": "4373:54:27"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_Avatar_$3065",
                                  "typeString": "contract Avatar"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_contract$_IntVoteInterface_$2651",
                                  "typeString": "contract IntVoteInterface"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8514,
                              "type": "function (address,bytes32,address,address,bytes32)",
                              "value": "LogChangeUpgradeSchemeProposal"
                            },
                            "id": 8738,
                            "name": "Identifier",
                            "src": "4438:30:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8674,
                              "type": "contract Avatar",
                              "value": "_avatar"
                            },
                            "id": 8739,
                            "name": "Identifier",
                            "src": "4482:7:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8697,
                              "type": "bytes32",
                              "value": "proposalId"
                            },
                            "id": 8740,
                            "name": "Identifier",
                            "src": "4503:10:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "intVote",
                              "referencedDeclaration": 8543,
                              "type": "contract IntVoteInterface"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8684,
                                  "type": "struct UpgradeScheme.Parameters memory",
                                  "value": "params"
                                },
                                "id": 8741,
                                "name": "Identifier",
                                "src": "4527:6:27"
                              }
                            ],
                            "id": 8742,
                            "name": "MemberAccess",
                            "src": "4527:14:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8676,
                              "type": "address",
                              "value": "_scheme"
                            },
                            "id": 8743,
                            "name": "Identifier",
                            "src": "4555:7:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8678,
                              "type": "bytes32",
                              "value": "_params"
                            },
                            "id": 8744,
                            "name": "Identifier",
                            "src": "4576:7:27"
                          }
                        ],
                        "id": 8745,
                        "name": "FunctionCall",
                        "src": "4438:155:27"
                      }
                    ],
                    "id": 8746,
                    "name": "ExpressionStatement",
                    "src": "4438:155:27"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "bool",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_rational_1_by_1",
                                  "typeString": "int_const 1"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "ownerVote",
                              "referencedDeclaration": 2590,
                              "type": "function (bytes32,uint256,address) external returns (bool)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8692,
                                  "type": "contract IntVoteInterface",
                                  "value": "intVote"
                                },
                                "id": 8747,
                                "name": "Identifier",
                                "src": "4603:7:27"
                              }
                            ],
                            "id": 8749,
                            "name": "MemberAccess",
                            "src": "4603:17:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8697,
                              "type": "bytes32",
                              "value": "proposalId"
                            },
                            "id": 8750,
                            "name": "Identifier",
                            "src": "4621:10:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "31",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "number",
                              "type": "int_const 1",
                              "value": "1"
                            },
                            "id": 8751,
                            "name": "Literal",
                            "src": "4633:1:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "sender",
                              "referencedDeclaration": null,
                              "type": "address"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10867,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 8752,
                                "name": "Identifier",
                                "src": "4636:3:27"
                              }
                            ],
                            "id": 8753,
                            "name": "MemberAccess",
                            "src": "4636:10:27"
                          }
                        ],
                        "id": 8754,
                        "name": "FunctionCall",
                        "src": "4603:44:27"
                      }
                    ],
                    "id": 8755,
                    "name": "ExpressionStatement",
                    "src": "4603:44:27"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 8682
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "overloadedDeclarations": [
                            null
                          ],
                          "referencedDeclaration": 8697,
                          "type": "bytes32",
                          "value": "proposalId"
                        },
                        "id": 8756,
                        "name": "Identifier",
                        "src": "4720:10:27"
                      }
                    ],
                    "id": 8757,
                    "name": "Return",
                    "src": "4713:17:27"
                  }
                ],
                "id": 8758,
                "name": "Block",
                "src": "3846:891:27"
              }
            ],
            "id": 8759,
            "name": "FunctionDefinition",
            "src": "3684:1053:27"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "execute",
              "payable": false,
              "scope": 8883,
              "stateMutability": "nonpayable",
              "superFunction": 6616,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_proposalId",
                      "scope": 8882,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 8760,
                        "name": "ElementaryTypeName",
                        "src": "5069:7:27"
                      }
                    ],
                    "id": 8761,
                    "name": "VariableDeclaration",
                    "src": "5069:19:27"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 8882,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 8762,
                        "name": "ElementaryTypeName",
                        "src": "5090:7:27"
                      }
                    ],
                    "id": 8763,
                    "name": "VariableDeclaration",
                    "src": "5090:15:27"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_param",
                      "scope": 8882,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int",
                          "type": "int256"
                        },
                        "id": 8764,
                        "name": "ElementaryTypeName",
                        "src": "5107:3:27"
                      }
                    ],
                    "id": 8765,
                    "name": "VariableDeclaration",
                    "src": "5107:10:27"
                  }
                ],
                "id": 8766,
                "name": "ParameterList",
                "src": "5068:50:27"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 8882,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 8767,
                        "name": "ElementaryTypeName",
                        "src": "5134:4:27"
                      }
                    ],
                    "id": 8768,
                    "name": "VariableDeclaration",
                    "src": "5134:4:27"
                  }
                ],
                "id": 8769,
                "name": "ParameterList",
                "src": "5133:6:27"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10870,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 8770,
                            "name": "Identifier",
                            "src": "5208:7:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "==",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "intVote",
                                  "referencedDeclaration": 8543,
                                  "type": "contract IntVoteInterface"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "struct UpgradeScheme.Parameters storage ref"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8548,
                                          "type": "mapping(bytes32 => struct UpgradeScheme.Parameters storage ref)",
                                          "value": "parameters"
                                        },
                                        "id": 8771,
                                        "name": "Identifier",
                                        "src": "5216:10:27"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "isStructConstructorCall": false,
                                          "lValueRequested": false,
                                          "names": [
                                            null
                                          ],
                                          "type": "bytes32",
                                          "type_conversion": false
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_contract$_Avatar_$3065",
                                                  "typeString": "contract Avatar"
                                                }
                                              ],
                                              "overloadedDeclarations": [
                                                8464
                                              ],
                                              "referencedDeclaration": 8464,
                                              "type": "function (contract Avatar) view returns (bytes32)",
                                              "value": "getParametersFromController"
                                            },
                                            "id": 8772,
                                            "name": "Identifier",
                                            "src": "5227:27:27"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "isStructConstructorCall": false,
                                              "lValueRequested": false,
                                              "names": [
                                                null
                                              ],
                                              "type": "contract Avatar",
                                              "type_conversion": true
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": [
                                                    {
                                                      "typeIdentifier": "t_address",
                                                      "typeString": "address"
                                                    }
                                                  ],
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 3065,
                                                  "type": "type(contract Avatar)",
                                                  "value": "Avatar"
                                                },
                                                "id": 8773,
                                                "name": "Identifier",
                                                "src": "5255:6:27"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 8763,
                                                  "type": "address",
                                                  "value": "_avatar"
                                                },
                                                "id": 8774,
                                                "name": "Identifier",
                                                "src": "5262:7:27"
                                              }
                                            ],
                                            "id": 8775,
                                            "name": "FunctionCall",
                                            "src": "5255:15:27"
                                          }
                                        ],
                                        "id": 8776,
                                        "name": "FunctionCall",
                                        "src": "5227:44:27"
                                      }
                                    ],
                                    "id": 8777,
                                    "name": "IndexAccess",
                                    "src": "5216:56:27"
                                  }
                                ],
                                "id": 8778,
                                "name": "MemberAccess",
                                "src": "5216:64:27"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "sender",
                                  "referencedDeclaration": null,
                                  "type": "address"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10867,
                                      "type": "msg",
                                      "value": "msg"
                                    },
                                    "id": 8779,
                                    "name": "Identifier",
                                    "src": "5284:3:27"
                                  }
                                ],
                                "id": 8780,
                                "name": "MemberAccess",
                                "src": "5284:10:27"
                              }
                            ],
                            "id": 8781,
                            "name": "BinaryOperation",
                            "src": "5216:78:27"
                          }
                        ],
                        "id": 8782,
                        "name": "FunctionCall",
                        "src": "5208:87:27"
                      }
                    ],
                    "id": 8783,
                    "name": "ExpressionStatement",
                    "src": "5208:87:27"
                  },
                  {
                    "attributes": {
                      "falseBody": null
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "==",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8765,
                              "type": "int256",
                              "value": "_param"
                            },
                            "id": 8784,
                            "name": "Identifier",
                            "src": "5350:6:27"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "31",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "number",
                              "type": "int_const 1",
                              "value": "1"
                            },
                            "id": 8785,
                            "name": "Literal",
                            "src": "5360:1:27"
                          }
                        ],
                        "id": 8786,
                        "name": "BinaryOperation",
                        "src": "5350:11:27"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "assignments": [
                                8788
                              ]
                            },
                            "children": [
                              {
                                "attributes": {
                                  "constant": false,
                                  "name": "controller",
                                  "scope": 8882,
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "type": "contract ControllerInterface",
                                  "value": null,
                                  "visibility": "internal"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "contractScope": null,
                                      "name": "ControllerInterface",
                                      "referencedDeclaration": 4364,
                                      "type": "contract ControllerInterface"
                                    },
                                    "id": 8787,
                                    "name": "UserDefinedTypeName",
                                    "src": "5427:19:27"
                                  }
                                ],
                                "id": 8788,
                                "name": "VariableDeclaration",
                                "src": "5427:30:27"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "type": "contract ControllerInterface",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      ],
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 4364,
                                      "type": "type(contract ControllerInterface)",
                                      "value": "ControllerInterface"
                                    },
                                    "id": 8789,
                                    "name": "Identifier",
                                    "src": "5460:19:27"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        null
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "type": "address",
                                      "type_conversion": false
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            null
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "owner",
                                          "referencedDeclaration": 10249,
                                          "type": "function () view external returns (address)"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "isStructConstructorCall": false,
                                              "lValueRequested": false,
                                              "names": [
                                                null
                                              ],
                                              "type": "contract Avatar",
                                              "type_conversion": true
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": [
                                                    {
                                                      "typeIdentifier": "t_address",
                                                      "typeString": "address"
                                                    }
                                                  ],
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 3065,
                                                  "type": "type(contract Avatar)",
                                                  "value": "Avatar"
                                                },
                                                "id": 8790,
                                                "name": "Identifier",
                                                "src": "5480:6:27"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 8763,
                                                  "type": "address",
                                                  "value": "_avatar"
                                                },
                                                "id": 8791,
                                                "name": "Identifier",
                                                "src": "5487:7:27"
                                              }
                                            ],
                                            "id": 8792,
                                            "name": "FunctionCall",
                                            "src": "5480:15:27"
                                          }
                                        ],
                                        "id": 8793,
                                        "name": "MemberAccess",
                                        "src": "5480:21:27"
                                      }
                                    ],
                                    "id": 8794,
                                    "name": "FunctionCall",
                                    "src": "5480:23:27"
                                  }
                                ],
                                "id": 8795,
                                "name": "FunctionCall",
                                "src": "5460:44:27"
                              }
                            ],
                            "id": 8796,
                            "name": "VariableDeclarationStatement",
                            "src": "5427:77:27"
                          },
                          {
                            "attributes": {
                              "assignments": [
                                8798
                              ]
                            },
                            "children": [
                              {
                                "attributes": {
                                  "constant": false,
                                  "name": "proposal",
                                  "scope": 8882,
                                  "stateVariable": false,
                                  "storageLocation": "memory",
                                  "type": "struct UpgradeScheme.UpgradeProposal memory",
                                  "value": null,
                                  "visibility": "internal"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "contractScope": null,
                                      "name": "UpgradeProposal",
                                      "referencedDeclaration": 8533,
                                      "type": "struct UpgradeScheme.UpgradeProposal storage pointer"
                                    },
                                    "id": 8797,
                                    "name": "UserDefinedTypeName",
                                    "src": "5518:15:27"
                                  }
                                ],
                                "id": 8798,
                                "name": "VariableDeclaration",
                                "src": "5518:31:27"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct UpgradeScheme.UpgradeProposal storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "mapping(bytes32 => struct UpgradeScheme.UpgradeProposal storage ref)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8539,
                                          "type": "mapping(address => mapping(bytes32 => struct UpgradeScheme.UpgradeProposal storage ref))",
                                          "value": "organizationsProposals"
                                        },
                                        "id": 8799,
                                        "name": "Identifier",
                                        "src": "5552:22:27"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8763,
                                          "type": "address",
                                          "value": "_avatar"
                                        },
                                        "id": 8800,
                                        "name": "Identifier",
                                        "src": "5575:7:27"
                                      }
                                    ],
                                    "id": 8801,
                                    "name": "IndexAccess",
                                    "src": "5552:31:27"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8761,
                                      "type": "bytes32",
                                      "value": "_proposalId"
                                    },
                                    "id": 8802,
                                    "name": "Identifier",
                                    "src": "5584:11:27"
                                  }
                                ],
                                "id": 8803,
                                "name": "IndexAccess",
                                "src": "5552:44:27"
                              }
                            ],
                            "id": 8804,
                            "name": "VariableDeclarationStatement",
                            "src": "5518:78:27"
                          },
                          {
                            "attributes": {
                              "falseBody": null
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "==",
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "proposalType",
                                      "referencedDeclaration": 8532,
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8798,
                                          "type": "struct UpgradeScheme.UpgradeProposal memory",
                                          "value": "proposal"
                                        },
                                        "id": 8805,
                                        "name": "Identifier",
                                        "src": "5648:8:27"
                                      }
                                    ],
                                    "id": 8806,
                                    "name": "MemberAccess",
                                    "src": "5648:21:27"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "31",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "number",
                                      "type": "int_const 1",
                                      "value": "1"
                                    },
                                    "id": 8807,
                                    "name": "Literal",
                                    "src": "5673:1:27"
                                  }
                                ],
                                "id": 8808,
                                "name": "BinaryOperation",
                                "src": "5648:26:27"
                              },
                              {
                                "children": [
                                  {
                                    "attributes": {
                                      "falseBody": null
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "!",
                                          "prefix": true,
                                          "type": "bool"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "isStructConstructorCall": false,
                                              "lValueRequested": false,
                                              "names": [
                                                null
                                              ],
                                              "type": "bool",
                                              "type_conversion": false
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": [
                                                    {
                                                      "typeIdentifier": "t_address",
                                                      "typeString": "address"
                                                    },
                                                    {
                                                      "typeIdentifier": "t_address",
                                                      "typeString": "address"
                                                    }
                                                  ],
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "member_name": "upgradeController",
                                                  "referencedDeclaration": 4288,
                                                  "type": "function (address,address) external returns (bool)"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 8788,
                                                      "type": "contract ControllerInterface",
                                                      "value": "controller"
                                                    },
                                                    "id": 8809,
                                                    "name": "Identifier",
                                                    "src": "5699:10:27"
                                                  }
                                                ],
                                                "id": 8810,
                                                "name": "MemberAccess",
                                                "src": "5699:28:27"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "isConstant": false,
                                                  "isLValue": true,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "member_name": "upgradeContract",
                                                  "referencedDeclaration": 8528,
                                                  "type": "address"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 8798,
                                                      "type": "struct UpgradeScheme.UpgradeProposal memory",
                                                      "value": "proposal"
                                                    },
                                                    "id": 8811,
                                                    "name": "Identifier",
                                                    "src": "5728:8:27"
                                                  }
                                                ],
                                                "id": 8812,
                                                "name": "MemberAccess",
                                                "src": "5728:24:27"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 8763,
                                                  "type": "address",
                                                  "value": "_avatar"
                                                },
                                                "id": 8813,
                                                "name": "Identifier",
                                                "src": "5753:7:27"
                                              }
                                            ],
                                            "id": 8814,
                                            "name": "FunctionCall",
                                            "src": "5699:62:27"
                                          }
                                        ],
                                        "id": 8815,
                                        "name": "UnaryOperation",
                                        "src": "5698:63:27"
                                      },
                                      {
                                        "children": [
                                          {
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "arguments": [
                                                    null
                                                  ],
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": false,
                                                  "isStructConstructorCall": false,
                                                  "lValueRequested": false,
                                                  "names": [
                                                    null
                                                  ],
                                                  "type": "tuple()",
                                                  "type_conversion": false
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": [
                                                        null
                                                      ],
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 10871,
                                                      "type": "function () pure",
                                                      "value": "revert"
                                                    },
                                                    "id": 8816,
                                                    "name": "Identifier",
                                                    "src": "5785:6:27"
                                                  }
                                                ],
                                                "id": 8817,
                                                "name": "FunctionCall",
                                                "src": "5785:8:27"
                                              }
                                            ],
                                            "id": 8818,
                                            "name": "ExpressionStatement",
                                            "src": "5785:8:27"
                                          }
                                        ],
                                        "id": 8819,
                                        "name": "Block",
                                        "src": "5763:51:27"
                                      }
                                    ],
                                    "id": 8820,
                                    "name": "IfStatement",
                                    "src": "5694:120:27"
                                  }
                                ],
                                "id": 8821,
                                "name": "Block",
                                "src": "5676:156:27"
                              }
                            ],
                            "id": 8822,
                            "name": "IfStatement",
                            "src": "5644:188:27"
                          },
                          {
                            "attributes": {
                              "falseBody": null
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "==",
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "proposalType",
                                      "referencedDeclaration": 8532,
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8798,
                                          "type": "struct UpgradeScheme.UpgradeProposal memory",
                                          "value": "proposal"
                                        },
                                        "id": 8823,
                                        "name": "Identifier",
                                        "src": "5886:8:27"
                                      }
                                    ],
                                    "id": 8824,
                                    "name": "MemberAccess",
                                    "src": "5886:21:27"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "32",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "number",
                                      "type": "int_const 2",
                                      "value": "2"
                                    },
                                    "id": 8825,
                                    "name": "Literal",
                                    "src": "5911:1:27"
                                  }
                                ],
                                "id": 8826,
                                "name": "BinaryOperation",
                                "src": "5886:26:27"
                              },
                              {
                                "children": [
                                  {
                                    "attributes": {
                                      "assignments": [
                                        8828
                                      ]
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "constant": false,
                                          "name": "permissions",
                                          "scope": 8882,
                                          "stateVariable": false,
                                          "storageLocation": "default",
                                          "type": "bytes4",
                                          "value": null,
                                          "visibility": "internal"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "name": "bytes4",
                                              "type": "bytes4"
                                            },
                                            "id": 8827,
                                            "name": "ElementaryTypeName",
                                            "src": "5932:6:27"
                                          }
                                        ],
                                        "id": 8828,
                                        "name": "VariableDeclaration",
                                        "src": "5932:18:27"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "isStructConstructorCall": false,
                                          "lValueRequested": false,
                                          "names": [
                                            null
                                          ],
                                          "type": "bytes4",
                                          "type_conversion": false
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_contract$_UpgradeScheme_$8883",
                                                  "typeString": "contract UpgradeScheme"
                                                },
                                                {
                                                  "typeIdentifier": "t_address",
                                                  "typeString": "address"
                                                }
                                              ],
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "member_name": "getSchemePermissions",
                                              "referencedDeclaration": 4243,
                                              "type": "function (address,address) view external returns (bytes4)"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 8788,
                                                  "type": "contract ControllerInterface",
                                                  "value": "controller"
                                                },
                                                "id": 8829,
                                                "name": "Identifier",
                                                "src": "5953:10:27"
                                              }
                                            ],
                                            "id": 8830,
                                            "name": "MemberAccess",
                                            "src": "5953:31:27"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 10956,
                                              "type": "contract UpgradeScheme",
                                              "value": "this"
                                            },
                                            "id": 8831,
                                            "name": "Identifier",
                                            "src": "5985:4:27"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 8763,
                                              "type": "address",
                                              "value": "_avatar"
                                            },
                                            "id": 8832,
                                            "name": "Identifier",
                                            "src": "5990:7:27"
                                          }
                                        ],
                                        "id": 8833,
                                        "name": "FunctionCall",
                                        "src": "5953:45:27"
                                      }
                                    ],
                                    "id": 8834,
                                    "name": "VariableDeclarationStatement",
                                    "src": "5932:66:27"
                                  },
                                  {
                                    "attributes": {
                                      "falseBody": null
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "!",
                                          "prefix": true,
                                          "type": "bool"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "isStructConstructorCall": false,
                                              "lValueRequested": false,
                                              "names": [
                                                null
                                              ],
                                              "type": "bool",
                                              "type_conversion": false
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": [
                                                    {
                                                      "typeIdentifier": "t_address",
                                                      "typeString": "address"
                                                    },
                                                    {
                                                      "typeIdentifier": "t_bytes32",
                                                      "typeString": "bytes32"
                                                    },
                                                    {
                                                      "typeIdentifier": "t_bytes4",
                                                      "typeString": "bytes4"
                                                    },
                                                    {
                                                      "typeIdentifier": "t_address",
                                                      "typeString": "address"
                                                    }
                                                  ],
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "member_name": "registerScheme",
                                                  "referencedDeclaration": 4200,
                                                  "type": "function (address,bytes32,bytes4,address) external returns (bool)"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 8788,
                                                      "type": "contract ControllerInterface",
                                                      "value": "controller"
                                                    },
                                                    "id": 8835,
                                                    "name": "Identifier",
                                                    "src": "6022:10:27"
                                                  }
                                                ],
                                                "id": 8836,
                                                "name": "MemberAccess",
                                                "src": "6022:25:27"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "isConstant": false,
                                                  "isLValue": true,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "member_name": "upgradeContract",
                                                  "referencedDeclaration": 8528,
                                                  "type": "address"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 8798,
                                                      "type": "struct UpgradeScheme.UpgradeProposal memory",
                                                      "value": "proposal"
                                                    },
                                                    "id": 8837,
                                                    "name": "Identifier",
                                                    "src": "6048:8:27"
                                                  }
                                                ],
                                                "id": 8838,
                                                "name": "MemberAccess",
                                                "src": "6048:24:27"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "isConstant": false,
                                                  "isLValue": true,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "member_name": "params",
                                                  "referencedDeclaration": 8530,
                                                  "type": "bytes32"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 8798,
                                                      "type": "struct UpgradeScheme.UpgradeProposal memory",
                                                      "value": "proposal"
                                                    },
                                                    "id": 8839,
                                                    "name": "Identifier",
                                                    "src": "6074:8:27"
                                                  }
                                                ],
                                                "id": 8840,
                                                "name": "MemberAccess",
                                                "src": "6074:15:27"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 8828,
                                                  "type": "bytes4",
                                                  "value": "permissions"
                                                },
                                                "id": 8841,
                                                "name": "Identifier",
                                                "src": "6091:11:27"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 8763,
                                                  "type": "address",
                                                  "value": "_avatar"
                                                },
                                                "id": 8842,
                                                "name": "Identifier",
                                                "src": "6103:7:27"
                                              }
                                            ],
                                            "id": 8843,
                                            "name": "FunctionCall",
                                            "src": "6022:89:27"
                                          }
                                        ],
                                        "id": 8844,
                                        "name": "UnaryOperation",
                                        "src": "6021:90:27"
                                      },
                                      {
                                        "children": [
                                          {
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "arguments": [
                                                    null
                                                  ],
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": false,
                                                  "isStructConstructorCall": false,
                                                  "lValueRequested": false,
                                                  "names": [
                                                    null
                                                  ],
                                                  "type": "tuple()",
                                                  "type_conversion": false
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": [
                                                        null
                                                      ],
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 10871,
                                                      "type": "function () pure",
                                                      "value": "revert"
                                                    },
                                                    "id": 8845,
                                                    "name": "Identifier",
                                                    "src": "6135:6:27"
                                                  }
                                                ],
                                                "id": 8846,
                                                "name": "FunctionCall",
                                                "src": "6135:8:27"
                                              }
                                            ],
                                            "id": 8847,
                                            "name": "ExpressionStatement",
                                            "src": "6135:8:27"
                                          }
                                        ],
                                        "id": 8848,
                                        "name": "Block",
                                        "src": "6113:51:27"
                                      }
                                    ],
                                    "id": 8849,
                                    "name": "IfStatement",
                                    "src": "6017:147:27"
                                  },
                                  {
                                    "attributes": {
                                      "falseBody": null
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "commonType": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "!=",
                                          "type": "bool"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "member_name": "upgradeContract",
                                              "referencedDeclaration": 8528,
                                              "type": "address"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 8798,
                                                  "type": "struct UpgradeScheme.UpgradeProposal memory",
                                                  "value": "proposal"
                                                },
                                                "id": 8850,
                                                "name": "Identifier",
                                                "src": "6185:8:27"
                                              }
                                            ],
                                            "id": 8851,
                                            "name": "MemberAccess",
                                            "src": "6185:24:27"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "isStructConstructorCall": false,
                                              "lValueRequested": false,
                                              "names": [
                                                null
                                              ],
                                              "type": "address",
                                              "type_conversion": true
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": [
                                                    {
                                                      "typeIdentifier": "t_contract$_UpgradeScheme_$8883",
                                                      "typeString": "contract UpgradeScheme"
                                                    }
                                                  ],
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": true,
                                                  "lValueRequested": false,
                                                  "type": "type(address)",
                                                  "value": "address"
                                                },
                                                "id": 8852,
                                                "name": "ElementaryTypeNameExpression",
                                                "src": "6213:7:27"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 10956,
                                                  "type": "contract UpgradeScheme",
                                                  "value": "this"
                                                },
                                                "id": 8853,
                                                "name": "Identifier",
                                                "src": "6221:4:27"
                                              }
                                            ],
                                            "id": 8854,
                                            "name": "FunctionCall",
                                            "src": "6213:13:27"
                                          }
                                        ],
                                        "id": 8855,
                                        "name": "BinaryOperation",
                                        "src": "6185:41:27"
                                      },
                                      {
                                        "children": [
                                          {
                                            "attributes": {
                                              "falseBody": null
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "operator": "!",
                                                  "prefix": true,
                                                  "type": "bool"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "isConstant": false,
                                                      "isLValue": false,
                                                      "isPure": false,
                                                      "isStructConstructorCall": false,
                                                      "lValueRequested": false,
                                                      "names": [
                                                        null
                                                      ],
                                                      "type": "bool",
                                                      "type_conversion": false
                                                    },
                                                    "children": [
                                                      {
                                                        "attributes": {
                                                          "argumentTypes": [
                                                            {
                                                              "typeIdentifier": "t_address",
                                                              "typeString": "address"
                                                            }
                                                          ],
                                                          "isConstant": false,
                                                          "isLValue": false,
                                                          "isPure": false,
                                                          "lValueRequested": false,
                                                          "member_name": "unregisterSelf",
                                                          "referencedDeclaration": 4216,
                                                          "type": "function (address) external returns (bool)"
                                                        },
                                                        "children": [
                                                          {
                                                            "attributes": {
                                                              "argumentTypes": null,
                                                              "overloadedDeclarations": [
                                                                null
                                                              ],
                                                              "referencedDeclaration": 8788,
                                                              "type": "contract ControllerInterface",
                                                              "value": "controller"
                                                            },
                                                            "id": 8856,
                                                            "name": "Identifier",
                                                            "src": "6256:10:27"
                                                          }
                                                        ],
                                                        "id": 8857,
                                                        "name": "MemberAccess",
                                                        "src": "6256:25:27"
                                                      },
                                                      {
                                                        "attributes": {
                                                          "argumentTypes": null,
                                                          "overloadedDeclarations": [
                                                            null
                                                          ],
                                                          "referencedDeclaration": 8763,
                                                          "type": "address",
                                                          "value": "_avatar"
                                                        },
                                                        "id": 8858,
                                                        "name": "Identifier",
                                                        "src": "6282:7:27"
                                                      }
                                                    ],
                                                    "id": 8859,
                                                    "name": "FunctionCall",
                                                    "src": "6256:34:27"
                                                  }
                                                ],
                                                "id": 8860,
                                                "name": "UnaryOperation",
                                                "src": "6255:35:27"
                                              },
                                              {
                                                "children": [
                                                  {
                                                    "children": [
                                                      {
                                                        "attributes": {
                                                          "argumentTypes": null,
                                                          "arguments": [
                                                            null
                                                          ],
                                                          "isConstant": false,
                                                          "isLValue": false,
                                                          "isPure": false,
                                                          "isStructConstructorCall": false,
                                                          "lValueRequested": false,
                                                          "names": [
                                                            null
                                                          ],
                                                          "type": "tuple()",
                                                          "type_conversion": false
                                                        },
                                                        "children": [
                                                          {
                                                            "attributes": {
                                                              "argumentTypes": [
                                                                null
                                                              ],
                                                              "overloadedDeclarations": [
                                                                null
                                                              ],
                                                              "referencedDeclaration": 10871,
                                                              "type": "function () pure",
                                                              "value": "revert"
                                                            },
                                                            "id": 8861,
                                                            "name": "Identifier",
                                                            "src": "6318:6:27"
                                                          }
                                                        ],
                                                        "id": 8862,
                                                        "name": "FunctionCall",
                                                        "src": "6318:8:27"
                                                      }
                                                    ],
                                                    "id": 8863,
                                                    "name": "ExpressionStatement",
                                                    "src": "6318:8:27"
                                                  }
                                                ],
                                                "id": 8864,
                                                "name": "Block",
                                                "src": "6292:59:27"
                                              }
                                            ],
                                            "id": 8865,
                                            "name": "IfStatement",
                                            "src": "6251:100:27"
                                          }
                                        ],
                                        "id": 8866,
                                        "name": "Block",
                                        "src": "6229:144:27"
                                      }
                                    ],
                                    "id": 8867,
                                    "name": "IfStatement",
                                    "src": "6181:192:27"
                                  }
                                ],
                                "id": 8868,
                                "name": "Block",
                                "src": "5914:479:27"
                              }
                            ],
                            "id": 8869,
                            "name": "IfStatement",
                            "src": "5882:511:27"
                          }
                        ],
                        "id": 8870,
                        "name": "Block",
                        "src": "5363:1048:27"
                      }
                    ],
                    "id": 8871,
                    "name": "IfStatement",
                    "src": "5346:1065:27"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "delete",
                          "prefix": true,
                          "type": "tuple()"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "type": "struct UpgradeScheme.UpgradeProposal storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "mapping(bytes32 => struct UpgradeScheme.UpgradeProposal storage ref)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8539,
                                      "type": "mapping(address => mapping(bytes32 => struct UpgradeScheme.UpgradeProposal storage ref))",
                                      "value": "organizationsProposals"
                                    },
                                    "id": 8872,
                                    "name": "Identifier",
                                    "src": "6427:22:27"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8763,
                                      "type": "address",
                                      "value": "_avatar"
                                    },
                                    "id": 8873,
                                    "name": "Identifier",
                                    "src": "6450:7:27"
                                  }
                                ],
                                "id": 8874,
                                "name": "IndexAccess",
                                "src": "6427:31:27"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8761,
                                  "type": "bytes32",
                                  "value": "_proposalId"
                                },
                                "id": 8875,
                                "name": "Identifier",
                                "src": "6459:11:27"
                              }
                            ],
                            "id": 8876,
                            "name": "IndexAccess",
                            "src": "6427:44:27"
                          }
                        ],
                        "id": 8877,
                        "name": "UnaryOperation",
                        "src": "6420:51:27"
                      }
                    ],
                    "id": 8878,
                    "name": "ExpressionStatement",
                    "src": "6420:51:27"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 8769
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "hexvalue": "74727565",
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "subdenomination": null,
                          "token": "bool",
                          "type": "bool",
                          "value": "true"
                        },
                        "id": 8879,
                        "name": "Literal",
                        "src": "6488:4:27"
                      }
                    ],
                    "id": 8880,
                    "name": "Return",
                    "src": "6481:11:27"
                  }
                ],
                "id": 8881,
                "name": "Block",
                "src": "5140:1359:27"
              }
            ],
            "id": 8882,
            "name": "FunctionDefinition",
            "src": "5052:1447:27"
          }
        ],
        "id": 8883,
        "name": "ContractDefinition",
        "src": "272:6229:27"
      }
    ],
    "id": 8884,
    "name": "SourceUnit",
    "src": "0:6502:27"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.18+commit.9cf6e910.Emscripten.clang"
  },
  "networks": {
    "1516886047983": {
      "events": {},
      "links": {},
      "address": "0x2973220243449ecbe313a1fafadbe693cb4e80fb"
    }
  },
  "schemaVersion": "1.0.1",
  "updatedAt": "2018-01-25T13:15:04.383Z"
}