{
  "contractName": "GlobalConstraintRegistrar",
  "abi": [
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "parameters",
      "outputs": [
        {
          "name": "voteRegisterParams",
          "type": "bytes32"
        },
        {
          "name": "intVote",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_avatar",
          "type": "address"
        },
        {
          "name": "_gc",
          "type": "address"
        },
        {
          "name": "_params",
          "type": "bytes32"
        },
        {
          "name": "_voteToRemoveParams",
          "type": "bytes32"
        }
      ],
      "name": "proposeGlobalConstraint",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "name": "organizationsData",
      "outputs": [
        {
          "name": "voteRegisterParams",
          "type": "bytes32"
        },
        {
          "name": "intVote",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_voteRegisterParams",
          "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": "_voteRegisterParams",
          "type": "bytes32"
        },
        {
          "name": "_intVote",
          "type": "address"
        }
      ],
      "name": "setParameters",
      "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": false,
      "inputs": [
        {
          "name": "_avatar",
          "type": "address"
        },
        {
          "name": "_gc",
          "type": "address"
        }
      ],
      "name": "proposeToRemoveGC",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "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": "_gc",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_params",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "name": "_voteToRemoveParams",
          "type": "bytes32"
        }
      ],
      "name": "NewGlobalConstraintsProposal",
      "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": "_gc",
          "type": "address"
        }
      ],
      "name": "RemoveGlobalConstraintsProposal",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_avatar",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "ProposalExecuted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_avatar",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "_proposalId",
          "type": "bytes32"
        }
      ],
      "name": "ProposalDeleted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "proposalId",
          "type": "bytes32"
        }
      ],
      "name": "NewProposal",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    }
  ],
  "bytecode": "0x6060604052341561000f57600080fd5b60008054600160a060020a033316600160a060020a0319909116179055610e158061003b6000396000f3006060604052600436106100955763ffffffff60e060020a60003504166302506804811461009a5780630fd6e498146100d15780631db77c381461010e5780632453732a1461012d5780632ac2af531461014f578063310ce4e21461016757806368e14dac146101a05780638da5cb5b146101c2578063f2fde38b146101f1578063f731e47014610210578063f98e87ba14610235575b600080fd5b34156100a557600080fd5b6100b0600435610248565b604051918252600160a060020a031660208201526040908101905180910390f35b34156100dc57600080fd5b6100fc600160a060020a036004358116906024351660443560643561026a565b60405190815260200160405180910390f35b341561011957600080fd5b6100b0600160a060020a03600435166104e5565b341561013857600080fd5b6100fc600435600160a060020a0360243516610507565b341561015a57600080fd5b610165600435610541565b005b341561017257600080fd5b61018c600435600160a060020a0360243516604435610561565b604051901515815260200160405180910390f35b34156101ab57600080fd5b6100fc600435600160a060020a0360243516610866565b34156101cd57600080fd5b6101d56108bb565b604051600160a060020a03909116815260200160405180910390f35b34156101fc57600080fd5b610165600160a060020a03600435166108ca565b341561021b57600080fd5b6100fc600160a060020a0360043581169060243516610965565b341561024057600080fd5b6100fc610cc4565b60036020526000908152604090208054600190910154600160a060020a031682565b6000610274610dab565b60008061027f610dc2565b6003600061028c8b610cca565b81526020810191909152604090810160002090805190810160405281548152600190910154600160a060020a031660208201908152909450519250600160a060020a038316630905c9f9600286518c303360006040516020015260405160e060020a63ffffffff881602815260048101959095526024850193909352600160a060020a0391821660448501528116606484015216608482015260a401602060405180830381600087803b151561034157600080fd5b6102c65a03f1151561035257600080fd5b50505060405180519050915060806040519081016040908152600160a060020a03808b16835260208084018b9052600183850152606084018a9052908c1660009081526002808352838220878352019091522090915081908151815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03919091161781556020820151600182015560408201518160020155606082015160039091015550600160a060020a038084169083908b167f4e87f569c5a3f504eea38add71bbdd022e5d63d0ee92d4130c407b8d64941bc08b8b8b604051600160a060020a03909316835260208301919091526040808301919091526060909101905180910390a482600160a060020a031663339e23d18360013360006040516020015260405160e060020a63ffffffff861602815260048101939093526024830191909152600160a060020a03166044820152606401602060405180830381600087803b15156104bd57600080fd5b6102c65a03f115156104ce57600080fd5b505050604051805150919998505050505050505050565b60026020526000908152604090208054600190910154600160a060020a031682565b60008282604051918252600160a060020a03166c010000000000000000000000000260208201526034016040518091039020905092915050565b60005433600160a060020a0390811691161461055c57600080fd5b600155565b60008061056c610dc2565b600033600160a060020a03166003600061058589610cca565b8152602081019190915260400160002060010154600160a060020a0316146105ac57600080fd5b600160a060020a03861660009081526002602081815260408084208b855290920190529081902060019450906080905190810160409081528254600160a060020a039081168352600180850154602080860191909152600280870154858701526003968701546060870152928c1660009081528382528481208e82528401909152928320805473ffffffffffffffffffffffffffffffffffffffff1916815580820184905591820183905593015592508514156108245785600160a060020a0316638da5cb5b6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156106a957600080fd5b6102c65a03f115156106ba57600080fd5b505050604051805191505060408201516001141561079a57600160a060020a03811663e4537a74835184602001518960006040516020015260405160e060020a63ffffffff8616028152600160a060020a03938416600482015260248101929092529091166044820152606401602060405180830381600087803b151561074057600080fd5b6102c65a03f1151561075157600080fd5b50505060405180519350506060820151600160a060020a0387166000908152600260205260408120600301908451600160a060020a031681526020810191909152604001600020555b81604001516002141561082457600160a060020a038116634f52b5be83518860006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b151561080757600080fd5b6102c65a03f1151561081857600080fd5b50505060405180519350505b86600160a060020a0387167f253ad9614c337848bbe7dc3b18b439d139ef5787282b5a517ba7296513d1f53360405160405180910390a3509095945050505050565b6000806108738484610507565b60008181526003602052604090208581556001018054600160a060020a03861673ffffffffffffffffffffffffffffffffffffffff1990911617905591508190505092915050565b600054600160a060020a031681565b60005433600160a060020a039081169116146108e557600080fd5b600160a060020a03811615156108fa57600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000806000610972610dab565b60008061097d610dc2565b600160a060020a0389166000818152600260205260408082209850638da5cb5b919051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156109d257600080fd5b6102c65a03f115156109e357600080fd5b5050506040518051955050600160a060020a03851663f76488be898b60006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b1515610a4d57600080fd5b6102c65a03f11515610a5e57600080fd5b505050604051805190501515610a7357600080fd5b60036000610a808b610cca565b81526020810191909152604090810160002090805190810160405281548152600190910154600160a060020a03166020820190815290945051925082600160a060020a0316630905c9f960028860030160008c600160a060020a0316600160a060020a03168152602001908152602001600020548c303360006040516020015260405160e060020a63ffffffff881602815260048101959095526024850193909352600160a060020a0391821660448501528116606484015216608482015260a401602060405180830381600087803b1515610b5b57600080fd5b6102c65a03f11515610b6c57600080fd5b50505060405180519050915060806040519081016040908152600160a060020a03808b16835260006020808501829052600284860181905260608601839052928e1682528281528382208783529092019091522090915081908151815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03919091161781556020820151600182015560408201518160020155606082015160039091015550600160a060020a038084169083908b167f661684a19fb0680f3f8beceaa9ee56c665ffec0875442e2cddc9a7a887d35c3e8b604051600160a060020a03909116815260200160405180910390a482600160a060020a031663339e23d18360013360006040516020015260405160e060020a63ffffffff861602815260048101939093526024830191909152600160a060020a03166044820152606401602060405180830381600087803b15156104bd57600080fd5b60015481565b600081600160a060020a0316638da5cb5b6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610d1257600080fd5b6102c65a03f11515610d2357600080fd5b50505060405180519050600160a060020a0316631c4d5608308460006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b1515610d8b57600080fd5b6102c65a03f11515610d9c57600080fd5b50505060405180519392505050565b604080519081016040526000808252602082015290565b608060405190810160409081526000808352602083018190529082018190526060820152905600a165627a7a72305820155f4873e6dc58de060268a434318cb23811a89bc5878aa6a244f44adbebfef00029",
  "deployedBytecode": "0x6060604052600436106100955763ffffffff60e060020a60003504166302506804811461009a5780630fd6e498146100d15780631db77c381461010e5780632453732a1461012d5780632ac2af531461014f578063310ce4e21461016757806368e14dac146101a05780638da5cb5b146101c2578063f2fde38b146101f1578063f731e47014610210578063f98e87ba14610235575b600080fd5b34156100a557600080fd5b6100b0600435610248565b604051918252600160a060020a031660208201526040908101905180910390f35b34156100dc57600080fd5b6100fc600160a060020a036004358116906024351660443560643561026a565b60405190815260200160405180910390f35b341561011957600080fd5b6100b0600160a060020a03600435166104e5565b341561013857600080fd5b6100fc600435600160a060020a0360243516610507565b341561015a57600080fd5b610165600435610541565b005b341561017257600080fd5b61018c600435600160a060020a0360243516604435610561565b604051901515815260200160405180910390f35b34156101ab57600080fd5b6100fc600435600160a060020a0360243516610866565b34156101cd57600080fd5b6101d56108bb565b604051600160a060020a03909116815260200160405180910390f35b34156101fc57600080fd5b610165600160a060020a03600435166108ca565b341561021b57600080fd5b6100fc600160a060020a0360043581169060243516610965565b341561024057600080fd5b6100fc610cc4565b60036020526000908152604090208054600190910154600160a060020a031682565b6000610274610dab565b60008061027f610dc2565b6003600061028c8b610cca565b81526020810191909152604090810160002090805190810160405281548152600190910154600160a060020a031660208201908152909450519250600160a060020a038316630905c9f9600286518c303360006040516020015260405160e060020a63ffffffff881602815260048101959095526024850193909352600160a060020a0391821660448501528116606484015216608482015260a401602060405180830381600087803b151561034157600080fd5b6102c65a03f1151561035257600080fd5b50505060405180519050915060806040519081016040908152600160a060020a03808b16835260208084018b9052600183850152606084018a9052908c1660009081526002808352838220878352019091522090915081908151815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03919091161781556020820151600182015560408201518160020155606082015160039091015550600160a060020a038084169083908b167f4e87f569c5a3f504eea38add71bbdd022e5d63d0ee92d4130c407b8d64941bc08b8b8b604051600160a060020a03909316835260208301919091526040808301919091526060909101905180910390a482600160a060020a031663339e23d18360013360006040516020015260405160e060020a63ffffffff861602815260048101939093526024830191909152600160a060020a03166044820152606401602060405180830381600087803b15156104bd57600080fd5b6102c65a03f115156104ce57600080fd5b505050604051805150919998505050505050505050565b60026020526000908152604090208054600190910154600160a060020a031682565b60008282604051918252600160a060020a03166c010000000000000000000000000260208201526034016040518091039020905092915050565b60005433600160a060020a0390811691161461055c57600080fd5b600155565b60008061056c610dc2565b600033600160a060020a03166003600061058589610cca565b8152602081019190915260400160002060010154600160a060020a0316146105ac57600080fd5b600160a060020a03861660009081526002602081815260408084208b855290920190529081902060019450906080905190810160409081528254600160a060020a039081168352600180850154602080860191909152600280870154858701526003968701546060870152928c1660009081528382528481208e82528401909152928320805473ffffffffffffffffffffffffffffffffffffffff1916815580820184905591820183905593015592508514156108245785600160a060020a0316638da5cb5b6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156106a957600080fd5b6102c65a03f115156106ba57600080fd5b505050604051805191505060408201516001141561079a57600160a060020a03811663e4537a74835184602001518960006040516020015260405160e060020a63ffffffff8616028152600160a060020a03938416600482015260248101929092529091166044820152606401602060405180830381600087803b151561074057600080fd5b6102c65a03f1151561075157600080fd5b50505060405180519350506060820151600160a060020a0387166000908152600260205260408120600301908451600160a060020a031681526020810191909152604001600020555b81604001516002141561082457600160a060020a038116634f52b5be83518860006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b151561080757600080fd5b6102c65a03f1151561081857600080fd5b50505060405180519350505b86600160a060020a0387167f253ad9614c337848bbe7dc3b18b439d139ef5787282b5a517ba7296513d1f53360405160405180910390a3509095945050505050565b6000806108738484610507565b60008181526003602052604090208581556001018054600160a060020a03861673ffffffffffffffffffffffffffffffffffffffff1990911617905591508190505092915050565b600054600160a060020a031681565b60005433600160a060020a039081169116146108e557600080fd5b600160a060020a03811615156108fa57600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000806000610972610dab565b60008061097d610dc2565b600160a060020a0389166000818152600260205260408082209850638da5cb5b919051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156109d257600080fd5b6102c65a03f115156109e357600080fd5b5050506040518051955050600160a060020a03851663f76488be898b60006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b1515610a4d57600080fd5b6102c65a03f11515610a5e57600080fd5b505050604051805190501515610a7357600080fd5b60036000610a808b610cca565b81526020810191909152604090810160002090805190810160405281548152600190910154600160a060020a03166020820190815290945051925082600160a060020a0316630905c9f960028860030160008c600160a060020a0316600160a060020a03168152602001908152602001600020548c303360006040516020015260405160e060020a63ffffffff881602815260048101959095526024850193909352600160a060020a0391821660448501528116606484015216608482015260a401602060405180830381600087803b1515610b5b57600080fd5b6102c65a03f11515610b6c57600080fd5b50505060405180519050915060806040519081016040908152600160a060020a03808b16835260006020808501829052600284860181905260608601839052928e1682528281528382208783529092019091522090915081908151815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03919091161781556020820151600182015560408201518160020155606082015160039091015550600160a060020a038084169083908b167f661684a19fb0680f3f8beceaa9ee56c665ffec0875442e2cddc9a7a887d35c3e8b604051600160a060020a03909116815260200160405180910390a482600160a060020a031663339e23d18360013360006040516020015260405160e060020a63ffffffff861602815260048101939093526024830191909152600160a060020a03166044820152606401602060405180830381600087803b15156104bd57600080fd5b60015481565b600081600160a060020a0316638da5cb5b6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610d1257600080fd5b6102c65a03f11515610d2357600080fd5b50505060405180519050600160a060020a0316631c4d5608308460006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b1515610d8b57600080fd5b6102c65a03f11515610d9c57600080fd5b50505060405180519392505050565b604080519081016040526000808252602082015290565b608060405190810160409081526000808352602083018190529082018190526060820152905600a165627a7a72305820155f4873e6dc58de060268a434318cb23811a89bc5878aa6a244f44adbebfef00029",
  "sourceMap": "255:7534:23:-;;;2233:46;;;;;;;;501:5:35;:18;;-1:-1:-1;;;;;509:10:35;501:18;-1:-1:-1;;;;;;501:18:35;;;;;;255:7534:23;;;;;;",
  "deployedSourceMap": "255:7534:23:-;;;;;;;;;-1:-1:-1;;;255:7534:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2140:46;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2140:46:23;;;;;;;;;;;;;;;;5484:1015;;;;;;;;;;-1:-1:-1;;;;;5484:1015:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1874:55;;;;;;;;;;-1:-1:-1;;;;;1874:55:23;;;;;4714:204;;;;;;;;;;;;-1:-1:-1;;;;;4714:204:23;;;;;452:157:27;;;;;;;;;;;;;;;;2660:1182:23;;;;;;;;;;;;-1:-1:-1;;;;;2660:1182:23;;;;;;;;;;;;;;;;;;;;;;;;4123:366;;;;;;;;;;;;-1:-1:-1;;;;;4123:366:23;;;;;238:20:35;;;;;;;;;;;;;;;-1:-1:-1;;;;;238:20:35;;;;;;;;;;;;;;834:169;;;;;;;;;;-1:-1:-1;;;;;834:169:35;;;;;6774:1013:23;;;;;;;;;;-1:-1:-1;;;;;6774:1013:23;;;;;;;;;;345:31:27;;;;;;;;;;;;2140:46:23;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2140:46:23;;:::o;5484:1015::-;5615:7;5638:30;;:::i;:::-;5730:24;5787:18;5917:26;;:::i;:::-;5671:10;:48;5682:36;5710:7;5682:27;:36::i;:::-;5671:48;;;;;;;;;;;;;;;;;5638:81;;;;;;;;;;;;;;;-1:-1:-1;;;;;5638:81:23;;;;;;;;;-1:-1:-1;5757:20:23;5730:47;-1:-1:-1;;;;;;5808:15:23;;;5824:1;5827:12;:31;5860:7;5889:4;5895:10;5808:98;;;;;;;;-1:-1:-1;;;5808:98:23;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5808:98:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5787:119;;5946:154;;;;;;;;;;-1:-1:-1;;;;;5946:154:23;;;;;;;;;;;;6035:1;5946:154;;;;;;;;;;6111:26;;;5946:154;6111:26;;;:17;:26;;;;;;:48;;;:36;:48;;;;5946:154;;-1:-1:-1;5946:154:23;;;6111:59;;;-1:-1:-1;;6111:59:23;-1:-1:-1;;;;;6111:59:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6180:175:23;;;;6243:10;;6180:175;;;6288:3;6305:7;6326:19;6180:175;;-1:-1:-1;;;;;6180:175:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6365:7;-1:-1:-1;;;;;6365:17:23;;6383:10;6395:1;6398:10;6365:44;;;;;;;;-1:-1:-1;;;6365:44:23;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6365:44:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6482:10:23;;5484:1015;-1:-1:-1;;;;;;;;;5484:1015:23:o;1874:55::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1874:55:23;;:::o;4714:204::-;4839:7;4880:19;4901:8;4870:40;;;;;-1:-1:-1;;;;;4870:40:23;;;;;;;;;;;;;;;;4862:49;;4714:204;;;;:::o;452:157:27:-;654:5:35;;640:10;-1:-1:-1;;;;;640:19:35;;;654:5;;640:19;632:28;;;;;;566:16:27;:36;452:157::o;2660:1182:23:-;2744:4;2916:11;2985:26;;:::i;:::-;3222:30;2895:10;-1:-1:-1;;;;;2827:78:23;:10;:56;2838:44;2873:7;2838:27;:44::i;:::-;2827:56;;;;;;;;;;;;;:64;;;-1:-1:-1;;;;;2827:64:23;:78;2819:87;;;;;;-1:-1:-1;;;;;3014:26:23;;;;;;:17;:26;;;;;;;;:49;;;:36;;;:49;;;;;;2930:4;;-1:-1:-1;3014:49:23;2985:78;;;;;;;;;;;;-1:-1:-1;;;;;2985:78:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3080:26;;;2985:78;3080:26;;;;;;;;;:49;;;:36;;:49;;;;;;3073:56;;-1:-1:-1;;3073:56:23;;;;;;;;;;;;;;;;;;2985:78;-1:-1:-1;3144:11:23;;3140:625;;;3282:7;-1:-1:-1;;;;;3275:21:23;;:23;;;;;;;;;;;-1:-1:-1;;;3275:23:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3341:21:23;;;;3366:1;3341:26;3337:250;;;-1:-1:-1;;;;;3396:30:23;;;3427:8;:11;3440:8;:15;;;3456:7;3396:68;;;;;;;;-1:-1:-1;;;3396:68:23;;;;;;-1:-1:-1;;;;;3396:68:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3543:27:23;;;;-1:-1:-1;;;;;3482:26:23;;;;;;:17;:26;;;;;:45;;;3528:8;:11;-1:-1:-1;;;;;3482:58:23;;;;;;;;;;;;-1:-1:-1;3482:58:23;:88;3337:250;3629:8;:21;;;3654:1;3629:26;3625:130;;;-1:-1:-1;;;;;3684:33:23;;;3718:8;:11;3730:7;3684:54;;;;;;;;-1:-1:-1;;;3684:54:23;;;;;;-1:-1:-1;;;;;3684:54:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3625:130:23;3800:11;-1:-1:-1;;;;;3774:38:23;;;;;;;;;;;;-1:-1:-1;3829:6:23;;2660:1182;-1:-1:-1;;;;;2660:1182:23:o;4123:366::-;4239:7;4262:18;4283:48;4301:19;4322:8;4283:17;:48::i;:::-;4341:22;;;;:10;:22;;;;;:63;;;4414:30;;:41;;-1:-1:-1;;;;;4414:41:23;;-1:-1:-1;;4414:41:23;;;;;;4262:69;-1:-1:-1;4262:69:23;;-1:-1:-1;4123:366:23;;;;;:::o;238:20:35:-;;;-1:-1:-1;;;;;238:20:35;;:::o;834:169::-;654:5;;640:10;-1:-1:-1;;;;;640:19:35;;;654:5;;640:19;632:28;;;;;;-1:-1:-1;;;;;910:22:35;;;;902:31;;;;;;960:5;;-1:-1:-1;;;;;939:37:35;;;;960:5;939:37;;;;;;;;;;982:5;:16;;-1:-1:-1;;982:16:35;-1:-1:-1;;;;;982:16:35;;;;;;;;;;834:169::o;6774:1013:23:-;6845:7;6864:24;6927:21;7076:24;;:::i;:::-;7161;7212:18;7338:26;;:::i;:::-;-1:-1:-1;;;;;6891:26:23;;;;;;:17;:26;;;;;;;-1:-1:-1;6962:21:23;;6891:26;6962:23;;;;;;;;;-1:-1:-1;;;6962:23:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;7004:39:23;;;7044:3;7056:7;7004:61;;;;;;;;-1:-1:-1;;;7004:61:23;;;;;;-1:-1:-1;;;;;7004:61:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6996:70;;;;;;;;7103:10;:48;7114:36;7142:7;7114:27;:36::i;:::-;7103:48;;;;;;;;;;;;;;;;;7076:75;;;;;;;;;;;;;;;-1:-1:-1;;;;;7076:75:23;;;;;;;;;-1:-1:-1;7188:14:23;7161:41;;7233:7;-1:-1:-1;;;;;7233:15:23;;7249:1;7252:3;:22;;:27;7275:3;-1:-1:-1;;;;;7252:27:23;-1:-1:-1;;;;;7252:27:23;;;;;;;;;;;;;7281:7;7310:4;7316:10;7233:94;;;;;;;;-1:-1:-1;;;7233:94:23;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7233:94:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7212:115;;7367:130;;;;;;;;;;-1:-1:-1;;;;;7367:130:23;;;;;7421:1;7367:130;;;;;;;7450:1;7367:130;;;;;;;;;;;;7508:26;;;;;;;;;;;:48;;;:36;;;:48;;;;7367:130;;-1:-1:-1;7367:130:23;;;7508:59;;;-1:-1:-1;;7508:59:23;-1:-1:-1;;;;;7508:59:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;7577:66:23;;;;7618:10;;7577:66;;;7639:3;7577:66;;-1:-1:-1;;;;;7577:66:23;;;;;;;;;;;;;;7653:7;-1:-1:-1;;;;;7653:17:23;;7671:10;7683:1;7686:10;7653:44;;;;;;;;-1:-1:-1;;;7653:44:23;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7653:44:23;;;;;;;;;;;;;;;;;;;;;;;;;345:31:27;;;;:::o;704:191::-;783:7;829;-1:-1:-1;;;;;829:13:27;;:15;;;;;;;;;;;-1:-1:-1;;;829:15:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;809:56:27;;866:4;879:7;809:79;;;;;;;;-1:-1:-1;;;809:79:27;;;;;;-1:-1:-1;;;;;809:79:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;704:191;-1:-1:-1;;;704:191:27:o;255:7534:23:-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o",
  "source": "pragma solidity ^0.4.18;\n\nimport \"./UniversalScheme.sol\";\nimport \"../VotingMachines/IntVoteInterface.sol\";\n\n\n\n/**\n * @title A scheme to manage global constraint for organizations\n * @dev The scheme is used to register or remove new global constraints\n */\ncontract GlobalConstraintRegistrar is UniversalScheme {\n    event NewGlobalConstraintsProposal(\n        address indexed _avatar,\n        bytes32 indexed _proposalId,\n        address indexed _intVoteInterface,\n        address _gc,\n        bytes32 _params,\n        bytes32 _voteToRemoveParams\n    );\n    event RemoveGlobalConstraintsProposal(\n        address indexed _avatar,\n        bytes32 indexed _proposalId,\n        address indexed _intVoteInterface,\n        address _gc\n    );\n    event ProposalExecuted(address indexed _avatar, bytes32 indexed _proposalId);\n    event ProposalDeleted(address indexed _avatar, bytes32 indexed _proposalId);\n\n    // The struct that holds the information of a global constraint proposed to be added or removed.\n    struct GCProposal {\n        address gc; // The address of the global constraint contract.\n        bytes32 params; // Parameters for global constraint.\n        uint proposalType; // 1: add a GC, 2: remove a GC.\n        bytes32 voteToRemoveParams; // Voting parameters for removing this GC.\n    }\n\n    // Struct holding the data for each organization\n    struct Organization {\n        bytes32 voteRegisterParams; // The voting parameters for adding a GC.\n        IntVoteInterface intVote; // The voting machine in which the voting takes place.\n        mapping(bytes32=>GCProposal) proposals; // A mapping from the proposal ID to the proposal itself.\n        mapping(address=>bytes32) voteToRemoveParams; // A mapping that saves the parameters for removing each GC.\n    }\n\n    // A mapping from the organization (Avatar) address to the saved data of the organization:\n    mapping(address=>Organization) public organizationsData;\n\n    // A mapping from hashes to parameters (use to store a particular configuration on the controller)\n    struct Parameters {\n        bytes32 voteRegisterParams;\n        IntVoteInterface intVote;\n    }\n\n    mapping(bytes32=>Parameters) public parameters;\n\n    /**\n     * @dev Constructor\n     */\n    function GlobalConstraintRegistrar() public {}\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    * @return bool which represents a successful of the function.\n    */\n    function execute(bytes32 _proposalId, address _avatar, int _param) external returns(bool) {\n        // Check the caller is indeed the voting machine:\n\n        require(parameters[getParametersFromController(Avatar(_avatar))].intVote == msg.sender);\n        bool retVal = true;\n        // Check if vote was successful:\n        GCProposal memory proposal = organizationsData[_avatar].proposals[_proposalId];\n        delete organizationsData[_avatar].proposals[_proposalId];\n\n        if (_param == 1 ) {\n\n        // Define controller and get the params:\n            ControllerInterface controller = ControllerInterface(Avatar(_avatar).owner());\n\n        // Adding a GC\n            if (proposal.proposalType == 1) {\n                retVal = controller.addGlobalConstraint(proposal.gc, proposal.params,_avatar);\n                organizationsData[_avatar].voteToRemoveParams[proposal.gc] = proposal.voteToRemoveParams;\n              }\n        // Removing a GC\n            if (proposal.proposalType == 2) {\n                retVal = controller.removeGlobalConstraint(proposal.gc,_avatar);\n              }\n        }\n        ProposalExecuted(_avatar, _proposalId);\n        return retVal;\n    }\n\n    /**\n    * @dev Hash the parameters, save them if necessary, and return the hash value\n    * @param _voteRegisterParams -  voting parameters for register global constraint\n    * @param _intVote  - voting machine contract.\n    * @return bytes32 -the parameters hash\n    */\n    function setParameters(\n        bytes32 _voteRegisterParams,\n        IntVoteInterface _intVote\n    ) public returns(bytes32)\n    {\n        bytes32 paramsHash = getParametersHash(_voteRegisterParams, _intVote);\n        parameters[paramsHash].voteRegisterParams = _voteRegisterParams;\n        parameters[paramsHash].intVote = _intVote;\n        return paramsHash;\n    }\n\n    /**\n    * @dev Hash the parameters and return the hash value\n    * @param _voteRegisterParams -  voting parameters\n    * @param _intVote  - voting machine contract.\n    * @return bytes32 -the parameters hash\n    */\n    function getParametersHash(\n        bytes32 _voteRegisterParams,\n        IntVoteInterface _intVote\n    ) public pure returns(bytes32)\n    {\n        return (keccak256(_voteRegisterParams, _intVote));\n    }\n\n    /**\n    * @dev propose to add a new global constraint:\n    * @param _avatar the avatar of the organization that the constraint is proposed for\n    * @param _gc the address of the global constraint that is being proposed\n    * @param _params the parameters for the global constraint\n    * @param _voteToRemoveParams the conditions (on the voting machine) for removing this global constraint\n    * @return bytes32 -the proposal id\n    */\n    // TODO: do some checks on _voteToRemoveParams - it is very easy to make a mistake and not be able to remove the GC\n    function proposeGlobalConstraint(Avatar _avatar, address _gc, bytes32 _params, bytes32 _voteToRemoveParams)\n    public\n    returns(bytes32)\n    {\n        Parameters memory votingParams = parameters[getParametersFromController(_avatar)];\n\n        IntVoteInterface intVote = votingParams.intVote;\n        bytes32 proposalId = intVote.propose(2, votingParams.voteRegisterParams, _avatar, ExecutableInterface(this),msg.sender);\n\n        GCProposal memory proposal = GCProposal({\n            gc: _gc,\n            params: _params,\n            proposalType: 1,\n            voteToRemoveParams: _voteToRemoveParams\n        });\n\n        organizationsData[_avatar].proposals[proposalId] = proposal;\n        NewGlobalConstraintsProposal(\n            _avatar,\n            proposalId,\n            intVote,\n            _gc,\n            _params,\n            _voteToRemoveParams\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 propose to remove a global constraint:\n    * @param _avatar the avatar of the organization that the constraint is proposed for\n    * @param _gc the address of the global constraint that is being proposed\n    * @return bytes32 -the proposal id\n    */\n    function proposeToRemoveGC(Avatar _avatar, address _gc) public returns(bytes32) {\n        Organization storage org = organizationsData[_avatar];\n        Controller controller = Controller(Avatar(_avatar).owner());\n        require(controller.isGlobalConstraintRegistered(_gc,address(_avatar)));\n        Parameters memory params = parameters[getParametersFromController(_avatar)];\n        IntVoteInterface intVote = params.intVote;\n        bytes32 proposalId = intVote.propose(2, org.voteToRemoveParams[_gc], _avatar, ExecutableInterface(this),msg.sender);\n\n        GCProposal memory proposal = GCProposal({\n            gc: _gc,\n            params: 0,\n            proposalType: 2,\n            voteToRemoveParams: 0\n        });\n\n        organizationsData[_avatar].proposals[proposalId] = proposal;\n        RemoveGlobalConstraintsProposal(_avatar, proposalId, intVote, _gc);\n        intVote.ownerVote(proposalId, 1, msg.sender); // Automatically votes `yes` in the name of the opener.\n        return proposalId;\n    }\n}\n",
  "sourcePath": "/Users/oren/daostack/daostack2/daostack/contracts/universalSchemes/GlobalConstraintRegistrar.sol",
  "ast": {
    "attributes": {
      "absolutePath": "/Users/oren/daostack/daostack2/daostack/contracts/universalSchemes/GlobalConstraintRegistrar.sol",
      "exportedSymbols": {
        "GlobalConstraintRegistrar": [
          8446
        ]
      }
    },
    "children": [
      {
        "attributes": {
          "literals": [
            "solidity",
            "^",
            "0.4",
            ".18"
          ]
        },
        "id": 8023,
        "name": "PragmaDirective",
        "src": "0:24:23"
      },
      {
        "attributes": {
          "SourceUnit": 9586,
          "absolutePath": "/Users/oren/daostack/daostack2/daostack/contracts/universalSchemes/UniversalScheme.sol",
          "file": "./UniversalScheme.sol",
          "scope": 8447,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 8024,
        "name": "ImportDirective",
        "src": "26:31:23"
      },
      {
        "attributes": {
          "SourceUnit": 3460,
          "absolutePath": "/Users/oren/daostack/daostack2/daostack/contracts/VotingMachines/IntVoteInterface.sol",
          "file": "../VotingMachines/IntVoteInterface.sol",
          "scope": 8447,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 8025,
        "name": "ImportDirective",
        "src": "58:48:23"
      },
      {
        "attributes": {
          "contractDependencies": [
            9585,
            9604,
            11445
          ],
          "contractKind": "contract",
          "documentation": "@title A scheme to manage global constraint for organizations\n@dev The scheme is used to register or remove new global constraints",
          "fullyImplemented": true,
          "linearizedBaseContracts": [
            8446,
            9585,
            9604,
            11445
          ],
          "name": "GlobalConstraintRegistrar",
          "scope": 8447
        },
        "children": [
          {
            "attributes": {
              "arguments": [
                null
              ]
            },
            "children": [
              {
                "attributes": {
                  "contractScope": null,
                  "name": "UniversalScheme",
                  "referencedDeclaration": 9585,
                  "type": "contract UniversalScheme"
                },
                "id": 8026,
                "name": "UserDefinedTypeName",
                "src": "293:15:23"
              }
            ],
            "id": 8027,
            "name": "InheritanceSpecifier",
            "src": "293:15:23"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "NewGlobalConstraintsProposal"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_avatar",
                      "scope": 8041,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 8028,
                        "name": "ElementaryTypeName",
                        "src": "359:7:23"
                      }
                    ],
                    "id": 8029,
                    "name": "VariableDeclaration",
                    "src": "359:23:23"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_proposalId",
                      "scope": 8041,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 8030,
                        "name": "ElementaryTypeName",
                        "src": "392:7:23"
                      }
                    ],
                    "id": 8031,
                    "name": "VariableDeclaration",
                    "src": "392:27:23"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_intVoteInterface",
                      "scope": 8041,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 8032,
                        "name": "ElementaryTypeName",
                        "src": "429:7:23"
                      }
                    ],
                    "id": 8033,
                    "name": "VariableDeclaration",
                    "src": "429:33:23"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_gc",
                      "scope": 8041,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 8034,
                        "name": "ElementaryTypeName",
                        "src": "472:7:23"
                      }
                    ],
                    "id": 8035,
                    "name": "VariableDeclaration",
                    "src": "472:11:23"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_params",
                      "scope": 8041,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 8036,
                        "name": "ElementaryTypeName",
                        "src": "493:7:23"
                      }
                    ],
                    "id": 8037,
                    "name": "VariableDeclaration",
                    "src": "493:15:23"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_voteToRemoveParams",
                      "scope": 8041,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 8038,
                        "name": "ElementaryTypeName",
                        "src": "518:7:23"
                      }
                    ],
                    "id": 8039,
                    "name": "VariableDeclaration",
                    "src": "518:27:23"
                  }
                ],
                "id": 8040,
                "name": "ParameterList",
                "src": "349:202:23"
              }
            ],
            "id": 8041,
            "name": "EventDefinition",
            "src": "315:237:23"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "RemoveGlobalConstraintsProposal"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_avatar",
                      "scope": 8051,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 8042,
                        "name": "ElementaryTypeName",
                        "src": "604:7:23"
                      }
                    ],
                    "id": 8043,
                    "name": "VariableDeclaration",
                    "src": "604:23:23"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_proposalId",
                      "scope": 8051,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 8044,
                        "name": "ElementaryTypeName",
                        "src": "637:7:23"
                      }
                    ],
                    "id": 8045,
                    "name": "VariableDeclaration",
                    "src": "637:27:23"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_intVoteInterface",
                      "scope": 8051,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 8046,
                        "name": "ElementaryTypeName",
                        "src": "674:7:23"
                      }
                    ],
                    "id": 8047,
                    "name": "VariableDeclaration",
                    "src": "674:33:23"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "_gc",
                      "scope": 8051,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 8048,
                        "name": "ElementaryTypeName",
                        "src": "717:7:23"
                      }
                    ],
                    "id": 8049,
                    "name": "VariableDeclaration",
                    "src": "717:11:23"
                  }
                ],
                "id": 8050,
                "name": "ParameterList",
                "src": "594:140:23"
              }
            ],
            "id": 8051,
            "name": "EventDefinition",
            "src": "557:178:23"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "ProposalExecuted"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_avatar",
                      "scope": 8057,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 8052,
                        "name": "ElementaryTypeName",
                        "src": "763:7:23"
                      }
                    ],
                    "id": 8053,
                    "name": "VariableDeclaration",
                    "src": "763:23:23"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_proposalId",
                      "scope": 8057,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 8054,
                        "name": "ElementaryTypeName",
                        "src": "788:7:23"
                      }
                    ],
                    "id": 8055,
                    "name": "VariableDeclaration",
                    "src": "788:27:23"
                  }
                ],
                "id": 8056,
                "name": "ParameterList",
                "src": "762:54:23"
              }
            ],
            "id": 8057,
            "name": "EventDefinition",
            "src": "740:77:23"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "ProposalDeleted"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_avatar",
                      "scope": 8063,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 8058,
                        "name": "ElementaryTypeName",
                        "src": "844:7:23"
                      }
                    ],
                    "id": 8059,
                    "name": "VariableDeclaration",
                    "src": "844:23:23"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "_proposalId",
                      "scope": 8063,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 8060,
                        "name": "ElementaryTypeName",
                        "src": "869:7:23"
                      }
                    ],
                    "id": 8061,
                    "name": "VariableDeclaration",
                    "src": "869:27:23"
                  }
                ],
                "id": 8062,
                "name": "ParameterList",
                "src": "843:54:23"
              }
            ],
            "id": 8063,
            "name": "EventDefinition",
            "src": "822:76:23"
          },
          {
            "attributes": {
              "canonicalName": "GlobalConstraintRegistrar.GCProposal",
              "name": "GCProposal",
              "scope": 8446,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "constant": false,
                  "name": "gc",
                  "scope": 8072,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "address",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "address",
                      "type": "address"
                    },
                    "id": 8064,
                    "name": "ElementaryTypeName",
                    "src": "1033:7:23"
                  }
                ],
                "id": 8065,
                "name": "VariableDeclaration",
                "src": "1033:10:23"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "params",
                  "scope": 8072,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "bytes32",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "bytes32",
                      "type": "bytes32"
                    },
                    "id": 8066,
                    "name": "ElementaryTypeName",
                    "src": "1103:7:23"
                  }
                ],
                "id": 8067,
                "name": "VariableDeclaration",
                "src": "1103:14:23"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "proposalType",
                  "scope": 8072,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "uint256",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "uint",
                      "type": "uint256"
                    },
                    "id": 8068,
                    "name": "ElementaryTypeName",
                    "src": "1164:4:23"
                  }
                ],
                "id": 8069,
                "name": "VariableDeclaration",
                "src": "1164:17:23"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "voteToRemoveParams",
                  "scope": 8072,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "bytes32",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "bytes32",
                      "type": "bytes32"
                    },
                    "id": 8070,
                    "name": "ElementaryTypeName",
                    "src": "1223:7:23"
                  }
                ],
                "id": 8071,
                "name": "VariableDeclaration",
                "src": "1223:26:23"
              }
            ],
            "id": 8072,
            "name": "StructDefinition",
            "src": "1005:294:23"
          },
          {
            "attributes": {
              "canonicalName": "GlobalConstraintRegistrar.Organization",
              "name": "Organization",
              "scope": 8446,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "constant": false,
                  "name": "voteRegisterParams",
                  "scope": 8085,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "bytes32",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "bytes32",
                      "type": "bytes32"
                    },
                    "id": 8073,
                    "name": "ElementaryTypeName",
                    "src": "1388:7:23"
                  }
                ],
                "id": 8074,
                "name": "VariableDeclaration",
                "src": "1388:26:23"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "intVote",
                  "scope": 8085,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "contract IntVoteInterface",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "contractScope": null,
                      "name": "IntVoteInterface",
                      "referencedDeclaration": 3459,
                      "type": "contract IntVoteInterface"
                    },
                    "id": 8075,
                    "name": "UserDefinedTypeName",
                    "src": "1466:16:23"
                  }
                ],
                "id": 8076,
                "name": "VariableDeclaration",
                "src": "1466:24:23"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "proposals",
                  "scope": 8085,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "mapping(bytes32 => struct GlobalConstraintRegistrar.GCProposal storage ref)",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "type": "mapping(bytes32 => struct GlobalConstraintRegistrar.GCProposal storage ref)"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 8077,
                        "name": "ElementaryTypeName",
                        "src": "1563:7:23"
                      },
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "GCProposal",
                          "referencedDeclaration": 8072,
                          "type": "struct GlobalConstraintRegistrar.GCProposal storage pointer"
                        },
                        "id": 8078,
                        "name": "UserDefinedTypeName",
                        "src": "1572:10:23"
                      }
                    ],
                    "id": 8079,
                    "name": "Mapping",
                    "src": "1555:28:23"
                  }
                ],
                "id": 8080,
                "name": "VariableDeclaration",
                "src": "1555:38:23"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "voteToRemoveParams",
                  "scope": 8085,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "mapping(address => bytes32)",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "type": "mapping(address => bytes32)"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 8081,
                        "name": "ElementaryTypeName",
                        "src": "1669:7:23"
                      },
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 8082,
                        "name": "ElementaryTypeName",
                        "src": "1678:7:23"
                      }
                    ],
                    "id": 8083,
                    "name": "Mapping",
                    "src": "1661:25:23"
                  }
                ],
                "id": 8084,
                "name": "VariableDeclaration",
                "src": "1661:44:23"
              }
            ],
            "id": 8085,
            "name": "StructDefinition",
            "src": "1358:415:23"
          },
          {
            "attributes": {
              "constant": false,
              "name": "organizationsData",
              "scope": 8446,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "mapping(address => struct GlobalConstraintRegistrar.Organization storage ref)",
              "value": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "type": "mapping(address => struct GlobalConstraintRegistrar.Organization storage ref)"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "address",
                      "type": "address"
                    },
                    "id": 8086,
                    "name": "ElementaryTypeName",
                    "src": "1882:7:23"
                  },
                  {
                    "attributes": {
                      "contractScope": null,
                      "name": "Organization",
                      "referencedDeclaration": 8085,
                      "type": "struct GlobalConstraintRegistrar.Organization storage pointer"
                    },
                    "id": 8087,
                    "name": "UserDefinedTypeName",
                    "src": "1891:12:23"
                  }
                ],
                "id": 8088,
                "name": "Mapping",
                "src": "1874:30:23"
              }
            ],
            "id": 8089,
            "name": "VariableDeclaration",
            "src": "1874:55:23"
          },
          {
            "attributes": {
              "canonicalName": "GlobalConstraintRegistrar.Parameters",
              "name": "Parameters",
              "scope": 8446,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "constant": false,
                  "name": "voteRegisterParams",
                  "scope": 8094,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "bytes32",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "bytes32",
                      "type": "bytes32"
                    },
                    "id": 8090,
                    "name": "ElementaryTypeName",
                    "src": "2067:7:23"
                  }
                ],
                "id": 8091,
                "name": "VariableDeclaration",
                "src": "2067:26:23"
              },
              {
                "attributes": {
                  "constant": false,
                  "name": "intVote",
                  "scope": 8094,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "contract IntVoteInterface",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "contractScope": null,
                      "name": "IntVoteInterface",
                      "referencedDeclaration": 3459,
                      "type": "contract IntVoteInterface"
                    },
                    "id": 8092,
                    "name": "UserDefinedTypeName",
                    "src": "2103:16:23"
                  }
                ],
                "id": 8093,
                "name": "VariableDeclaration",
                "src": "2103:24:23"
              }
            ],
            "id": 8094,
            "name": "StructDefinition",
            "src": "2039:95:23"
          },
          {
            "attributes": {
              "constant": false,
              "name": "parameters",
              "scope": 8446,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "mapping(bytes32 => struct GlobalConstraintRegistrar.Parameters storage ref)",
              "value": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "type": "mapping(bytes32 => struct GlobalConstraintRegistrar.Parameters storage ref)"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "bytes32",
                      "type": "bytes32"
                    },
                    "id": 8095,
                    "name": "ElementaryTypeName",
                    "src": "2148:7:23"
                  },
                  {
                    "attributes": {
                      "contractScope": null,
                      "name": "Parameters",
                      "referencedDeclaration": 8094,
                      "type": "struct GlobalConstraintRegistrar.Parameters storage pointer"
                    },
                    "id": 8096,
                    "name": "UserDefinedTypeName",
                    "src": "2157:10:23"
                  }
                ],
                "id": 8097,
                "name": "Mapping",
                "src": "2140:28:23"
              }
            ],
            "id": 8098,
            "name": "VariableDeclaration",
            "src": "2140:46:23"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": true,
              "modifiers": [
                null
              ],
              "name": "GlobalConstraintRegistrar",
              "payable": false,
              "scope": 8446,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 8099,
                "name": "ParameterList",
                "src": "2267:2:23"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 8100,
                "name": "ParameterList",
                "src": "2277:0:23"
              },
              {
                "attributes": {
                  "statements": [
                    null
                  ]
                },
                "children": [],
                "id": 8101,
                "name": "Block",
                "src": "2277:2:23"
              }
            ],
            "id": 8102,
            "name": "FunctionDefinition",
            "src": "2233:46:23"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "execute",
              "payable": false,
              "scope": 8446,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_proposalId",
                      "scope": 8214,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 8103,
                        "name": "ElementaryTypeName",
                        "src": "2677:7:23"
                      }
                    ],
                    "id": 8104,
                    "name": "VariableDeclaration",
                    "src": "2677:19:23"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 8214,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 8105,
                        "name": "ElementaryTypeName",
                        "src": "2698:7:23"
                      }
                    ],
                    "id": 8106,
                    "name": "VariableDeclaration",
                    "src": "2698:15:23"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_param",
                      "scope": 8214,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int",
                          "type": "int256"
                        },
                        "id": 8107,
                        "name": "ElementaryTypeName",
                        "src": "2715:3:23"
                      }
                    ],
                    "id": 8108,
                    "name": "VariableDeclaration",
                    "src": "2715:10:23"
                  }
                ],
                "id": 8109,
                "name": "ParameterList",
                "src": "2676:50:23"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 8214,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 8110,
                        "name": "ElementaryTypeName",
                        "src": "2744:4:23"
                      }
                    ],
                    "id": 8111,
                    "name": "VariableDeclaration",
                    "src": "2744:4:23"
                  }
                ],
                "id": 8112,
                "name": "ParameterList",
                "src": "2743:6:23"
              },
              {
                "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": 12014,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 8113,
                            "name": "Identifier",
                            "src": "2819:7:23"
                          },
                          {
                            "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": 8093,
                                  "type": "contract IntVoteInterface"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "struct GlobalConstraintRegistrar.Parameters storage ref"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8098,
                                          "type": "mapping(bytes32 => struct GlobalConstraintRegistrar.Parameters storage ref)",
                                          "value": "parameters"
                                        },
                                        "id": 8114,
                                        "name": "Identifier",
                                        "src": "2827:10:23"
                                      },
                                      {
                                        "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_$3873",
                                                  "typeString": "contract Avatar"
                                                }
                                              ],
                                              "overloadedDeclarations": [
                                                9584
                                              ],
                                              "referencedDeclaration": 9584,
                                              "type": "function (contract Avatar) view returns (bytes32)",
                                              "value": "getParametersFromController"
                                            },
                                            "id": 8115,
                                            "name": "Identifier",
                                            "src": "2838:27:23"
                                          },
                                          {
                                            "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": 3873,
                                                  "type": "type(contract Avatar)",
                                                  "value": "Avatar"
                                                },
                                                "id": 8116,
                                                "name": "Identifier",
                                                "src": "2866:6:23"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 8106,
                                                  "type": "address",
                                                  "value": "_avatar"
                                                },
                                                "id": 8117,
                                                "name": "Identifier",
                                                "src": "2873:7:23"
                                              }
                                            ],
                                            "id": 8118,
                                            "name": "FunctionCall",
                                            "src": "2866:15:23"
                                          }
                                        ],
                                        "id": 8119,
                                        "name": "FunctionCall",
                                        "src": "2838:44:23"
                                      }
                                    ],
                                    "id": 8120,
                                    "name": "IndexAccess",
                                    "src": "2827:56:23"
                                  }
                                ],
                                "id": 8121,
                                "name": "MemberAccess",
                                "src": "2827:64:23"
                              },
                              {
                                "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": 12011,
                                      "type": "msg",
                                      "value": "msg"
                                    },
                                    "id": 8122,
                                    "name": "Identifier",
                                    "src": "2895:3:23"
                                  }
                                ],
                                "id": 8123,
                                "name": "MemberAccess",
                                "src": "2895:10:23"
                              }
                            ],
                            "id": 8124,
                            "name": "BinaryOperation",
                            "src": "2827:78:23"
                          }
                        ],
                        "id": 8125,
                        "name": "FunctionCall",
                        "src": "2819:87:23"
                      }
                    ],
                    "id": 8126,
                    "name": "ExpressionStatement",
                    "src": "2819:87:23"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        8128
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "retVal",
                          "scope": 8214,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "bool",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "bool",
                              "type": "bool"
                            },
                            "id": 8127,
                            "name": "ElementaryTypeName",
                            "src": "2916:4:23"
                          }
                        ],
                        "id": 8128,
                        "name": "VariableDeclaration",
                        "src": "2916:11:23"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "hexvalue": "74727565",
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "subdenomination": null,
                          "token": "bool",
                          "type": "bool",
                          "value": "true"
                        },
                        "id": 8129,
                        "name": "Literal",
                        "src": "2930:4:23"
                      }
                    ],
                    "id": 8130,
                    "name": "VariableDeclarationStatement",
                    "src": "2916:18:23"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        8132
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "proposal",
                          "scope": 8214,
                          "stateVariable": false,
                          "storageLocation": "memory",
                          "type": "struct GlobalConstraintRegistrar.GCProposal memory",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "GCProposal",
                              "referencedDeclaration": 8072,
                              "type": "struct GlobalConstraintRegistrar.GCProposal storage pointer"
                            },
                            "id": 8131,
                            "name": "UserDefinedTypeName",
                            "src": "2985:10:23"
                          }
                        ],
                        "id": 8132,
                        "name": "VariableDeclaration",
                        "src": "2985:26:23"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "type": "struct GlobalConstraintRegistrar.GCProposal storage ref"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "proposals",
                              "referencedDeclaration": 8080,
                              "type": "mapping(bytes32 => struct GlobalConstraintRegistrar.GCProposal storage ref)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct GlobalConstraintRegistrar.Organization storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8089,
                                      "type": "mapping(address => struct GlobalConstraintRegistrar.Organization storage ref)",
                                      "value": "organizationsData"
                                    },
                                    "id": 8133,
                                    "name": "Identifier",
                                    "src": "3014:17:23"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8106,
                                      "type": "address",
                                      "value": "_avatar"
                                    },
                                    "id": 8134,
                                    "name": "Identifier",
                                    "src": "3032:7:23"
                                  }
                                ],
                                "id": 8135,
                                "name": "IndexAccess",
                                "src": "3014:26:23"
                              }
                            ],
                            "id": 8136,
                            "name": "MemberAccess",
                            "src": "3014:36:23"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8104,
                              "type": "bytes32",
                              "value": "_proposalId"
                            },
                            "id": 8137,
                            "name": "Identifier",
                            "src": "3051:11:23"
                          }
                        ],
                        "id": 8138,
                        "name": "IndexAccess",
                        "src": "3014:49:23"
                      }
                    ],
                    "id": 8139,
                    "name": "VariableDeclarationStatement",
                    "src": "2985:78:23"
                  },
                  {
                    "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 GlobalConstraintRegistrar.GCProposal storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "proposals",
                                  "referencedDeclaration": 8080,
                                  "type": "mapping(bytes32 => struct GlobalConstraintRegistrar.GCProposal storage ref)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "struct GlobalConstraintRegistrar.Organization storage ref"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8089,
                                          "type": "mapping(address => struct GlobalConstraintRegistrar.Organization storage ref)",
                                          "value": "organizationsData"
                                        },
                                        "id": 8140,
                                        "name": "Identifier",
                                        "src": "3080:17:23"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8106,
                                          "type": "address",
                                          "value": "_avatar"
                                        },
                                        "id": 8141,
                                        "name": "Identifier",
                                        "src": "3098:7:23"
                                      }
                                    ],
                                    "id": 8142,
                                    "name": "IndexAccess",
                                    "src": "3080:26:23"
                                  }
                                ],
                                "id": 8143,
                                "name": "MemberAccess",
                                "src": "3080:36:23"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8104,
                                  "type": "bytes32",
                                  "value": "_proposalId"
                                },
                                "id": 8144,
                                "name": "Identifier",
                                "src": "3117:11:23"
                              }
                            ],
                            "id": 8145,
                            "name": "IndexAccess",
                            "src": "3080:49:23"
                          }
                        ],
                        "id": 8146,
                        "name": "UnaryOperation",
                        "src": "3073:56:23"
                      }
                    ],
                    "id": 8147,
                    "name": "ExpressionStatement",
                    "src": "3073:56:23"
                  },
                  {
                    "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": 8108,
                              "type": "int256",
                              "value": "_param"
                            },
                            "id": 8148,
                            "name": "Identifier",
                            "src": "3144:6:23"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "31",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "number",
                              "type": "int_const 1",
                              "value": "1"
                            },
                            "id": 8149,
                            "name": "Literal",
                            "src": "3154:1:23"
                          }
                        ],
                        "id": 8150,
                        "name": "BinaryOperation",
                        "src": "3144:11:23"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "assignments": [
                                8152
                              ]
                            },
                            "children": [
                              {
                                "attributes": {
                                  "constant": false,
                                  "name": "controller",
                                  "scope": 8214,
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "type": "contract ControllerInterface",
                                  "value": null,
                                  "visibility": "internal"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "contractScope": null,
                                      "name": "ControllerInterface",
                                      "referencedDeclaration": 5172,
                                      "type": "contract ControllerInterface"
                                    },
                                    "id": 8151,
                                    "name": "UserDefinedTypeName",
                                    "src": "3222:19:23"
                                  }
                                ],
                                "id": 8152,
                                "name": "VariableDeclaration",
                                "src": "3222:30:23"
                              },
                              {
                                "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": 5172,
                                      "type": "type(contract ControllerInterface)",
                                      "value": "ControllerInterface"
                                    },
                                    "id": 8153,
                                    "name": "Identifier",
                                    "src": "3255:19:23"
                                  },
                                  {
                                    "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": 11393,
                                          "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": 3873,
                                                  "type": "type(contract Avatar)",
                                                  "value": "Avatar"
                                                },
                                                "id": 8154,
                                                "name": "Identifier",
                                                "src": "3275:6:23"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 8106,
                                                  "type": "address",
                                                  "value": "_avatar"
                                                },
                                                "id": 8155,
                                                "name": "Identifier",
                                                "src": "3282:7:23"
                                              }
                                            ],
                                            "id": 8156,
                                            "name": "FunctionCall",
                                            "src": "3275:15:23"
                                          }
                                        ],
                                        "id": 8157,
                                        "name": "MemberAccess",
                                        "src": "3275:21:23"
                                      }
                                    ],
                                    "id": 8158,
                                    "name": "FunctionCall",
                                    "src": "3275:23:23"
                                  }
                                ],
                                "id": 8159,
                                "name": "FunctionCall",
                                "src": "3255:44:23"
                              }
                            ],
                            "id": 8160,
                            "name": "VariableDeclarationStatement",
                            "src": "3222:77:23"
                          },
                          {
                            "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": 8069,
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8132,
                                          "type": "struct GlobalConstraintRegistrar.GCProposal memory",
                                          "value": "proposal"
                                        },
                                        "id": 8161,
                                        "name": "Identifier",
                                        "src": "3341:8:23"
                                      }
                                    ],
                                    "id": 8162,
                                    "name": "MemberAccess",
                                    "src": "3341:21:23"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "31",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "number",
                                      "type": "int_const 1",
                                      "value": "1"
                                    },
                                    "id": 8163,
                                    "name": "Literal",
                                    "src": "3366:1:23"
                                  }
                                ],
                                "id": 8164,
                                "name": "BinaryOperation",
                                "src": "3341:26:23"
                              },
                              {
                                "children": [
                                  {
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "=",
                                          "type": "bool"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 8128,
                                              "type": "bool",
                                              "value": "retVal"
                                            },
                                            "id": 8165,
                                            "name": "Identifier",
                                            "src": "3387:6:23"
                                          },
                                          {
                                            "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_address",
                                                      "typeString": "address"
                                                    }
                                                  ],
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "member_name": "addGlobalConstraint",
                                                  "referencedDeclaration": 5078,
                                                  "type": "function (address,bytes32,address) external returns (bool)"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 8152,
                                                      "type": "contract ControllerInterface",
                                                      "value": "controller"
                                                    },
                                                    "id": 8166,
                                                    "name": "Identifier",
                                                    "src": "3396:10:23"
                                                  }
                                                ],
                                                "id": 8167,
                                                "name": "MemberAccess",
                                                "src": "3396:30:23"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "isConstant": false,
                                                  "isLValue": true,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "member_name": "gc",
                                                  "referencedDeclaration": 8065,
                                                  "type": "address"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 8132,
                                                      "type": "struct GlobalConstraintRegistrar.GCProposal memory",
                                                      "value": "proposal"
                                                    },
                                                    "id": 8168,
                                                    "name": "Identifier",
                                                    "src": "3427:8:23"
                                                  }
                                                ],
                                                "id": 8169,
                                                "name": "MemberAccess",
                                                "src": "3427:11:23"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "isConstant": false,
                                                  "isLValue": true,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "member_name": "params",
                                                  "referencedDeclaration": 8067,
                                                  "type": "bytes32"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 8132,
                                                      "type": "struct GlobalConstraintRegistrar.GCProposal memory",
                                                      "value": "proposal"
                                                    },
                                                    "id": 8170,
                                                    "name": "Identifier",
                                                    "src": "3440:8:23"
                                                  }
                                                ],
                                                "id": 8171,
                                                "name": "MemberAccess",
                                                "src": "3440:15:23"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 8106,
                                                  "type": "address",
                                                  "value": "_avatar"
                                                },
                                                "id": 8172,
                                                "name": "Identifier",
                                                "src": "3456:7:23"
                                              }
                                            ],
                                            "id": 8173,
                                            "name": "FunctionCall",
                                            "src": "3396:68:23"
                                          }
                                        ],
                                        "id": 8174,
                                        "name": "Assignment",
                                        "src": "3387:77:23"
                                      }
                                    ],
                                    "id": 8175,
                                    "name": "ExpressionStatement",
                                    "src": "3387:77:23"
                                  },
                                  {
                                    "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,
                                              "type": "bytes32"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "isConstant": false,
                                                  "isLValue": true,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "member_name": "voteToRemoveParams",
                                                  "referencedDeclaration": 8084,
                                                  "type": "mapping(address => bytes32)"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "isConstant": false,
                                                      "isLValue": true,
                                                      "isPure": false,
                                                      "lValueRequested": false,
                                                      "type": "struct GlobalConstraintRegistrar.Organization storage ref"
                                                    },
                                                    "children": [
                                                      {
                                                        "attributes": {
                                                          "argumentTypes": null,
                                                          "overloadedDeclarations": [
                                                            null
                                                          ],
                                                          "referencedDeclaration": 8089,
                                                          "type": "mapping(address => struct GlobalConstraintRegistrar.Organization storage ref)",
                                                          "value": "organizationsData"
                                                        },
                                                        "id": 8176,
                                                        "name": "Identifier",
                                                        "src": "3482:17:23"
                                                      },
                                                      {
                                                        "attributes": {
                                                          "argumentTypes": null,
                                                          "overloadedDeclarations": [
                                                            null
                                                          ],
                                                          "referencedDeclaration": 8106,
                                                          "type": "address",
                                                          "value": "_avatar"
                                                        },
                                                        "id": 8177,
                                                        "name": "Identifier",
                                                        "src": "3500:7:23"
                                                      }
                                                    ],
                                                    "id": 8178,
                                                    "name": "IndexAccess",
                                                    "src": "3482:26:23"
                                                  }
                                                ],
                                                "id": 8179,
                                                "name": "MemberAccess",
                                                "src": "3482:45:23"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "isConstant": false,
                                                  "isLValue": true,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "member_name": "gc",
                                                  "referencedDeclaration": 8065,
                                                  "type": "address"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 8132,
                                                      "type": "struct GlobalConstraintRegistrar.GCProposal memory",
                                                      "value": "proposal"
                                                    },
                                                    "id": 8180,
                                                    "name": "Identifier",
                                                    "src": "3528:8:23"
                                                  }
                                                ],
                                                "id": 8181,
                                                "name": "MemberAccess",
                                                "src": "3528:11:23"
                                              }
                                            ],
                                            "id": 8182,
                                            "name": "IndexAccess",
                                            "src": "3482:58:23"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "member_name": "voteToRemoveParams",
                                              "referencedDeclaration": 8071,
                                              "type": "bytes32"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 8132,
                                                  "type": "struct GlobalConstraintRegistrar.GCProposal memory",
                                                  "value": "proposal"
                                                },
                                                "id": 8183,
                                                "name": "Identifier",
                                                "src": "3543:8:23"
                                              }
                                            ],
                                            "id": 8184,
                                            "name": "MemberAccess",
                                            "src": "3543:27:23"
                                          }
                                        ],
                                        "id": 8185,
                                        "name": "Assignment",
                                        "src": "3482:88:23"
                                      }
                                    ],
                                    "id": 8186,
                                    "name": "ExpressionStatement",
                                    "src": "3482:88:23"
                                  }
                                ],
                                "id": 8187,
                                "name": "Block",
                                "src": "3369:218:23"
                              }
                            ],
                            "id": 8188,
                            "name": "IfStatement",
                            "src": "3337:250:23"
                          },
                          {
                            "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": 8069,
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8132,
                                          "type": "struct GlobalConstraintRegistrar.GCProposal memory",
                                          "value": "proposal"
                                        },
                                        "id": 8189,
                                        "name": "Identifier",
                                        "src": "3629:8:23"
                                      }
                                    ],
                                    "id": 8190,
                                    "name": "MemberAccess",
                                    "src": "3629:21:23"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "32",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "number",
                                      "type": "int_const 2",
                                      "value": "2"
                                    },
                                    "id": 8191,
                                    "name": "Literal",
                                    "src": "3654:1:23"
                                  }
                                ],
                                "id": 8192,
                                "name": "BinaryOperation",
                                "src": "3629:26:23"
                              },
                              {
                                "children": [
                                  {
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "=",
                                          "type": "bool"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 8128,
                                              "type": "bool",
                                              "value": "retVal"
                                            },
                                            "id": 8193,
                                            "name": "Identifier",
                                            "src": "3675:6:23"
                                          },
                                          {
                                            "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": "removeGlobalConstraint",
                                                  "referencedDeclaration": 5087,
                                                  "type": "function (address,address) external returns (bool)"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 8152,
                                                      "type": "contract ControllerInterface",
                                                      "value": "controller"
                                                    },
                                                    "id": 8194,
                                                    "name": "Identifier",
                                                    "src": "3684:10:23"
                                                  }
                                                ],
                                                "id": 8195,
                                                "name": "MemberAccess",
                                                "src": "3684:33:23"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "isConstant": false,
                                                  "isLValue": true,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "member_name": "gc",
                                                  "referencedDeclaration": 8065,
                                                  "type": "address"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 8132,
                                                      "type": "struct GlobalConstraintRegistrar.GCProposal memory",
                                                      "value": "proposal"
                                                    },
                                                    "id": 8196,
                                                    "name": "Identifier",
                                                    "src": "3718:8:23"
                                                  }
                                                ],
                                                "id": 8197,
                                                "name": "MemberAccess",
                                                "src": "3718:11:23"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 8106,
                                                  "type": "address",
                                                  "value": "_avatar"
                                                },
                                                "id": 8198,
                                                "name": "Identifier",
                                                "src": "3730:7:23"
                                              }
                                            ],
                                            "id": 8199,
                                            "name": "FunctionCall",
                                            "src": "3684:54:23"
                                          }
                                        ],
                                        "id": 8200,
                                        "name": "Assignment",
                                        "src": "3675:63:23"
                                      }
                                    ],
                                    "id": 8201,
                                    "name": "ExpressionStatement",
                                    "src": "3675:63:23"
                                  }
                                ],
                                "id": 8202,
                                "name": "Block",
                                "src": "3657:98:23"
                              }
                            ],
                            "id": 8203,
                            "name": "IfStatement",
                            "src": "3625:130:23"
                          }
                        ],
                        "id": 8204,
                        "name": "Block",
                        "src": "3158:607:23"
                      }
                    ],
                    "id": 8205,
                    "name": "IfStatement",
                    "src": "3140:625:23"
                  },
                  {
                    "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_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8057,
                              "type": "function (address,bytes32)",
                              "value": "ProposalExecuted"
                            },
                            "id": 8206,
                            "name": "Identifier",
                            "src": "3774:16:23"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8106,
                              "type": "address",
                              "value": "_avatar"
                            },
                            "id": 8207,
                            "name": "Identifier",
                            "src": "3791:7:23"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8104,
                              "type": "bytes32",
                              "value": "_proposalId"
                            },
                            "id": 8208,
                            "name": "Identifier",
                            "src": "3800:11:23"
                          }
                        ],
                        "id": 8209,
                        "name": "FunctionCall",
                        "src": "3774:38:23"
                      }
                    ],
                    "id": 8210,
                    "name": "ExpressionStatement",
                    "src": "3774:38:23"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 8112
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "overloadedDeclarations": [
                            null
                          ],
                          "referencedDeclaration": 8128,
                          "type": "bool",
                          "value": "retVal"
                        },
                        "id": 8211,
                        "name": "Identifier",
                        "src": "3829:6:23"
                      }
                    ],
                    "id": 8212,
                    "name": "Return",
                    "src": "3822:13:23"
                  }
                ],
                "id": 8213,
                "name": "Block",
                "src": "2750:1092:23"
              }
            ],
            "id": 8214,
            "name": "FunctionDefinition",
            "src": "2660:1182:23"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "setParameters",
              "payable": false,
              "scope": 8446,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_voteRegisterParams",
                      "scope": 8247,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 8215,
                        "name": "ElementaryTypeName",
                        "src": "4155:7:23"
                      }
                    ],
                    "id": 8216,
                    "name": "VariableDeclaration",
                    "src": "4155:27:23"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_intVote",
                      "scope": 8247,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract IntVoteInterface",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "IntVoteInterface",
                          "referencedDeclaration": 3459,
                          "type": "contract IntVoteInterface"
                        },
                        "id": 8217,
                        "name": "UserDefinedTypeName",
                        "src": "4192:16:23"
                      }
                    ],
                    "id": 8218,
                    "name": "VariableDeclaration",
                    "src": "4192:25:23"
                  }
                ],
                "id": 8219,
                "name": "ParameterList",
                "src": "4145:78:23"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 8247,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 8220,
                        "name": "ElementaryTypeName",
                        "src": "4239:7:23"
                      }
                    ],
                    "id": 8221,
                    "name": "VariableDeclaration",
                    "src": "4239:7:23"
                  }
                ],
                "id": 8222,
                "name": "ParameterList",
                "src": "4238:9:23"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        8224
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "paramsHash",
                          "scope": 8247,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "bytes32",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "bytes32",
                              "type": "bytes32"
                            },
                            "id": 8223,
                            "name": "ElementaryTypeName",
                            "src": "4262:7:23"
                          }
                        ],
                        "id": 8224,
                        "name": "VariableDeclaration",
                        "src": "4262:18:23"
                      },
                      {
                        "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_$3459",
                                  "typeString": "contract IntVoteInterface"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8263,
                              "type": "function (bytes32,contract IntVoteInterface) pure returns (bytes32)",
                              "value": "getParametersHash"
                            },
                            "id": 8225,
                            "name": "Identifier",
                            "src": "4283:17:23"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8216,
                              "type": "bytes32",
                              "value": "_voteRegisterParams"
                            },
                            "id": 8226,
                            "name": "Identifier",
                            "src": "4301:19:23"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8218,
                              "type": "contract IntVoteInterface",
                              "value": "_intVote"
                            },
                            "id": 8227,
                            "name": "Identifier",
                            "src": "4322:8:23"
                          }
                        ],
                        "id": 8228,
                        "name": "FunctionCall",
                        "src": "4283:48:23"
                      }
                    ],
                    "id": 8229,
                    "name": "VariableDeclarationStatement",
                    "src": "4262:69:23"
                  },
                  {
                    "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": "voteRegisterParams",
                              "referencedDeclaration": 8091,
                              "type": "bytes32"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct GlobalConstraintRegistrar.Parameters storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8098,
                                      "type": "mapping(bytes32 => struct GlobalConstraintRegistrar.Parameters storage ref)",
                                      "value": "parameters"
                                    },
                                    "id": 8230,
                                    "name": "Identifier",
                                    "src": "4341:10:23"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8224,
                                      "type": "bytes32",
                                      "value": "paramsHash"
                                    },
                                    "id": 8231,
                                    "name": "Identifier",
                                    "src": "4352:10:23"
                                  }
                                ],
                                "id": 8232,
                                "name": "IndexAccess",
                                "src": "4341:22:23"
                              }
                            ],
                            "id": 8233,
                            "name": "MemberAccess",
                            "src": "4341:41:23"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8216,
                              "type": "bytes32",
                              "value": "_voteRegisterParams"
                            },
                            "id": 8234,
                            "name": "Identifier",
                            "src": "4385:19:23"
                          }
                        ],
                        "id": 8235,
                        "name": "Assignment",
                        "src": "4341:63:23"
                      }
                    ],
                    "id": 8236,
                    "name": "ExpressionStatement",
                    "src": "4341:63:23"
                  },
                  {
                    "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": 8093,
                              "type": "contract IntVoteInterface"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct GlobalConstraintRegistrar.Parameters storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8098,
                                      "type": "mapping(bytes32 => struct GlobalConstraintRegistrar.Parameters storage ref)",
                                      "value": "parameters"
                                    },
                                    "id": 8237,
                                    "name": "Identifier",
                                    "src": "4414:10:23"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8224,
                                      "type": "bytes32",
                                      "value": "paramsHash"
                                    },
                                    "id": 8238,
                                    "name": "Identifier",
                                    "src": "4425:10:23"
                                  }
                                ],
                                "id": 8239,
                                "name": "IndexAccess",
                                "src": "4414:22:23"
                              }
                            ],
                            "id": 8240,
                            "name": "MemberAccess",
                            "src": "4414:30:23"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8218,
                              "type": "contract IntVoteInterface",
                              "value": "_intVote"
                            },
                            "id": 8241,
                            "name": "Identifier",
                            "src": "4447:8:23"
                          }
                        ],
                        "id": 8242,
                        "name": "Assignment",
                        "src": "4414:41:23"
                      }
                    ],
                    "id": 8243,
                    "name": "ExpressionStatement",
                    "src": "4414:41:23"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 8222
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "overloadedDeclarations": [
                            null
                          ],
                          "referencedDeclaration": 8224,
                          "type": "bytes32",
                          "value": "paramsHash"
                        },
                        "id": 8244,
                        "name": "Identifier",
                        "src": "4472:10:23"
                      }
                    ],
                    "id": 8245,
                    "name": "Return",
                    "src": "4465:17:23"
                  }
                ],
                "id": 8246,
                "name": "Block",
                "src": "4252:237:23"
              }
            ],
            "id": 8247,
            "name": "FunctionDefinition",
            "src": "4123:366:23"
          },
          {
            "attributes": {
              "constant": true,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "getParametersHash",
              "payable": false,
              "scope": 8446,
              "stateMutability": "pure",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_voteRegisterParams",
                      "scope": 8263,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 8248,
                        "name": "ElementaryTypeName",
                        "src": "4750:7:23"
                      }
                    ],
                    "id": 8249,
                    "name": "VariableDeclaration",
                    "src": "4750:27:23"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_intVote",
                      "scope": 8263,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract IntVoteInterface",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "IntVoteInterface",
                          "referencedDeclaration": 3459,
                          "type": "contract IntVoteInterface"
                        },
                        "id": 8250,
                        "name": "UserDefinedTypeName",
                        "src": "4787:16:23"
                      }
                    ],
                    "id": 8251,
                    "name": "VariableDeclaration",
                    "src": "4787:25:23"
                  }
                ],
                "id": 8252,
                "name": "ParameterList",
                "src": "4740:78:23"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 8263,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 8253,
                        "name": "ElementaryTypeName",
                        "src": "4839:7:23"
                      }
                    ],
                    "id": 8254,
                    "name": "VariableDeclaration",
                    "src": "4839:7:23"
                  }
                ],
                "id": 8255,
                "name": "ParameterList",
                "src": "4838:9:23"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 8255
                    },
                    "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_$3459",
                                      "typeString": "contract IntVoteInterface"
                                    }
                                  ],
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 12005,
                                  "type": "function () pure returns (bytes32)",
                                  "value": "keccak256"
                                },
                                "id": 8256,
                                "name": "Identifier",
                                "src": "4870:9:23"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8249,
                                  "type": "bytes32",
                                  "value": "_voteRegisterParams"
                                },
                                "id": 8257,
                                "name": "Identifier",
                                "src": "4880:19:23"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8251,
                                  "type": "contract IntVoteInterface",
                                  "value": "_intVote"
                                },
                                "id": 8258,
                                "name": "Identifier",
                                "src": "4901:8:23"
                              }
                            ],
                            "id": 8259,
                            "name": "FunctionCall",
                            "src": "4870:40:23"
                          }
                        ],
                        "id": 8260,
                        "name": "TupleExpression",
                        "src": "4869:42:23"
                      }
                    ],
                    "id": 8261,
                    "name": "Return",
                    "src": "4862:49:23"
                  }
                ],
                "id": 8262,
                "name": "Block",
                "src": "4852:66:23"
              }
            ],
            "id": 8263,
            "name": "FunctionDefinition",
            "src": "4714:204:23"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "proposeGlobalConstraint",
              "payable": false,
              "scope": 8446,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 8343,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract Avatar",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "Avatar",
                          "referencedDeclaration": 3873,
                          "type": "contract Avatar"
                        },
                        "id": 8264,
                        "name": "UserDefinedTypeName",
                        "src": "5517:6:23"
                      }
                    ],
                    "id": 8265,
                    "name": "VariableDeclaration",
                    "src": "5517:14:23"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_gc",
                      "scope": 8343,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 8266,
                        "name": "ElementaryTypeName",
                        "src": "5533:7:23"
                      }
                    ],
                    "id": 8267,
                    "name": "VariableDeclaration",
                    "src": "5533:11:23"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_params",
                      "scope": 8343,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 8268,
                        "name": "ElementaryTypeName",
                        "src": "5546:7:23"
                      }
                    ],
                    "id": 8269,
                    "name": "VariableDeclaration",
                    "src": "5546:15:23"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_voteToRemoveParams",
                      "scope": 8343,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 8270,
                        "name": "ElementaryTypeName",
                        "src": "5563:7:23"
                      }
                    ],
                    "id": 8271,
                    "name": "VariableDeclaration",
                    "src": "5563:27:23"
                  }
                ],
                "id": 8272,
                "name": "ParameterList",
                "src": "5516:75:23"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 8343,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 8273,
                        "name": "ElementaryTypeName",
                        "src": "5615:7:23"
                      }
                    ],
                    "id": 8274,
                    "name": "VariableDeclaration",
                    "src": "5615:7:23"
                  }
                ],
                "id": 8275,
                "name": "ParameterList",
                "src": "5614:9:23"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        8277
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "votingParams",
                          "scope": 8343,
                          "stateVariable": false,
                          "storageLocation": "memory",
                          "type": "struct GlobalConstraintRegistrar.Parameters memory",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "Parameters",
                              "referencedDeclaration": 8094,
                              "type": "struct GlobalConstraintRegistrar.Parameters storage pointer"
                            },
                            "id": 8276,
                            "name": "UserDefinedTypeName",
                            "src": "5638:10:23"
                          }
                        ],
                        "id": 8277,
                        "name": "VariableDeclaration",
                        "src": "5638:30:23"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "type": "struct GlobalConstraintRegistrar.Parameters storage ref"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8098,
                              "type": "mapping(bytes32 => struct GlobalConstraintRegistrar.Parameters storage ref)",
                              "value": "parameters"
                            },
                            "id": 8278,
                            "name": "Identifier",
                            "src": "5671:10:23"
                          },
                          {
                            "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_$3873",
                                      "typeString": "contract Avatar"
                                    }
                                  ],
                                  "overloadedDeclarations": [
                                    9584
                                  ],
                                  "referencedDeclaration": 9584,
                                  "type": "function (contract Avatar) view returns (bytes32)",
                                  "value": "getParametersFromController"
                                },
                                "id": 8279,
                                "name": "Identifier",
                                "src": "5682:27:23"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8265,
                                  "type": "contract Avatar",
                                  "value": "_avatar"
                                },
                                "id": 8280,
                                "name": "Identifier",
                                "src": "5710:7:23"
                              }
                            ],
                            "id": 8281,
                            "name": "FunctionCall",
                            "src": "5682:36:23"
                          }
                        ],
                        "id": 8282,
                        "name": "IndexAccess",
                        "src": "5671:48:23"
                      }
                    ],
                    "id": 8283,
                    "name": "VariableDeclarationStatement",
                    "src": "5638:81:23"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        8285
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "intVote",
                          "scope": 8343,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "contract IntVoteInterface",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "IntVoteInterface",
                              "referencedDeclaration": 3459,
                              "type": "contract IntVoteInterface"
                            },
                            "id": 8284,
                            "name": "UserDefinedTypeName",
                            "src": "5730:16:23"
                          }
                        ],
                        "id": 8285,
                        "name": "VariableDeclaration",
                        "src": "5730:24:23"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "member_name": "intVote",
                          "referencedDeclaration": 8093,
                          "type": "contract IntVoteInterface"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8277,
                              "type": "struct GlobalConstraintRegistrar.Parameters memory",
                              "value": "votingParams"
                            },
                            "id": 8286,
                            "name": "Identifier",
                            "src": "5757:12:23"
                          }
                        ],
                        "id": 8287,
                        "name": "MemberAccess",
                        "src": "5757:20:23"
                      }
                    ],
                    "id": 8288,
                    "name": "VariableDeclarationStatement",
                    "src": "5730:47:23"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        8290
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "proposalId",
                          "scope": 8343,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "bytes32",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "bytes32",
                              "type": "bytes32"
                            },
                            "id": 8289,
                            "name": "ElementaryTypeName",
                            "src": "5787:7:23"
                          }
                        ],
                        "id": 8290,
                        "name": "VariableDeclaration",
                        "src": "5787:18:23"
                      },
                      {
                        "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_$3873",
                                  "typeString": "contract Avatar"
                                },
                                {
                                  "typeIdentifier": "t_contract$_ExecutableInterface_$8021",
                                  "typeString": "contract ExecutableInterface"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "propose",
                              "referencedDeclaration": 3371,
                              "type": "function (uint256,bytes32,address,contract ExecutableInterface,address) external returns (bytes32)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8285,
                                  "type": "contract IntVoteInterface",
                                  "value": "intVote"
                                },
                                "id": 8291,
                                "name": "Identifier",
                                "src": "5808:7:23"
                              }
                            ],
                            "id": 8292,
                            "name": "MemberAccess",
                            "src": "5808:15:23"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "32",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "number",
                              "type": "int_const 2",
                              "value": "2"
                            },
                            "id": 8293,
                            "name": "Literal",
                            "src": "5824:1:23"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "voteRegisterParams",
                              "referencedDeclaration": 8091,
                              "type": "bytes32"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8277,
                                  "type": "struct GlobalConstraintRegistrar.Parameters memory",
                                  "value": "votingParams"
                                },
                                "id": 8294,
                                "name": "Identifier",
                                "src": "5827:12:23"
                              }
                            ],
                            "id": 8295,
                            "name": "MemberAccess",
                            "src": "5827:31:23"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8265,
                              "type": "contract Avatar",
                              "value": "_avatar"
                            },
                            "id": 8296,
                            "name": "Identifier",
                            "src": "5860:7:23"
                          },
                          {
                            "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$_GlobalConstraintRegistrar_$8446",
                                      "typeString": "contract GlobalConstraintRegistrar"
                                    }
                                  ],
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8021,
                                  "type": "type(contract ExecutableInterface)",
                                  "value": "ExecutableInterface"
                                },
                                "id": 8297,
                                "name": "Identifier",
                                "src": "5869:19:23"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 12094,
                                  "type": "contract GlobalConstraintRegistrar",
                                  "value": "this"
                                },
                                "id": 8298,
                                "name": "Identifier",
                                "src": "5889:4:23"
                              }
                            ],
                            "id": 8299,
                            "name": "FunctionCall",
                            "src": "5869:25:23"
                          },
                          {
                            "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": 12011,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 8300,
                                "name": "Identifier",
                                "src": "5895:3:23"
                              }
                            ],
                            "id": 8301,
                            "name": "MemberAccess",
                            "src": "5895:10:23"
                          }
                        ],
                        "id": 8302,
                        "name": "FunctionCall",
                        "src": "5808:98:23"
                      }
                    ],
                    "id": 8303,
                    "name": "VariableDeclarationStatement",
                    "src": "5787:119:23"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        8305
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "proposal",
                          "scope": 8343,
                          "stateVariable": false,
                          "storageLocation": "memory",
                          "type": "struct GlobalConstraintRegistrar.GCProposal memory",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "GCProposal",
                              "referencedDeclaration": 8072,
                              "type": "struct GlobalConstraintRegistrar.GCProposal storage pointer"
                            },
                            "id": 8304,
                            "name": "UserDefinedTypeName",
                            "src": "5917:10:23"
                          }
                        ],
                        "id": 8305,
                        "name": "VariableDeclaration",
                        "src": "5917:26:23"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": true,
                          "lValueRequested": false,
                          "names": [
                            "gc",
                            "params",
                            "proposalType",
                            "voteToRemoveParams"
                          ],
                          "type": "struct GlobalConstraintRegistrar.GCProposal memory",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8072,
                              "type": "type(struct GlobalConstraintRegistrar.GCProposal storage pointer)",
                              "value": "GCProposal"
                            },
                            "id": 8306,
                            "name": "Identifier",
                            "src": "5946:10:23"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8267,
                              "type": "address",
                              "value": "_gc"
                            },
                            "id": 8307,
                            "name": "Identifier",
                            "src": "5975:3:23"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8269,
                              "type": "bytes32",
                              "value": "_params"
                            },
                            "id": 8308,
                            "name": "Identifier",
                            "src": "6000:7:23"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "31",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "number",
                              "type": "int_const 1",
                              "value": "1"
                            },
                            "id": 8309,
                            "name": "Literal",
                            "src": "6035:1:23"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8271,
                              "type": "bytes32",
                              "value": "_voteToRemoveParams"
                            },
                            "id": 8310,
                            "name": "Identifier",
                            "src": "6070:19:23"
                          }
                        ],
                        "id": 8311,
                        "name": "FunctionCall",
                        "src": "5946:154:23"
                      }
                    ],
                    "id": 8312,
                    "name": "VariableDeclarationStatement",
                    "src": "5917:183:23"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "struct GlobalConstraintRegistrar.GCProposal storage ref"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "type": "struct GlobalConstraintRegistrar.GCProposal storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "proposals",
                                  "referencedDeclaration": 8080,
                                  "type": "mapping(bytes32 => struct GlobalConstraintRegistrar.GCProposal storage ref)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "struct GlobalConstraintRegistrar.Organization storage ref"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8089,
                                          "type": "mapping(address => struct GlobalConstraintRegistrar.Organization storage ref)",
                                          "value": "organizationsData"
                                        },
                                        "id": 8313,
                                        "name": "Identifier",
                                        "src": "6111:17:23"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8265,
                                          "type": "contract Avatar",
                                          "value": "_avatar"
                                        },
                                        "id": 8314,
                                        "name": "Identifier",
                                        "src": "6129:7:23"
                                      }
                                    ],
                                    "id": 8315,
                                    "name": "IndexAccess",
                                    "src": "6111:26:23"
                                  }
                                ],
                                "id": 8316,
                                "name": "MemberAccess",
                                "src": "6111:36:23"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8290,
                                  "type": "bytes32",
                                  "value": "proposalId"
                                },
                                "id": 8317,
                                "name": "Identifier",
                                "src": "6148:10:23"
                              }
                            ],
                            "id": 8318,
                            "name": "IndexAccess",
                            "src": "6111:48:23"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8305,
                              "type": "struct GlobalConstraintRegistrar.GCProposal memory",
                              "value": "proposal"
                            },
                            "id": 8319,
                            "name": "Identifier",
                            "src": "6162:8:23"
                          }
                        ],
                        "id": 8320,
                        "name": "Assignment",
                        "src": "6111:59:23"
                      }
                    ],
                    "id": 8321,
                    "name": "ExpressionStatement",
                    "src": "6111:59:23"
                  },
                  {
                    "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_$3873",
                                  "typeString": "contract Avatar"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_contract$_IntVoteInterface_$3459",
                                  "typeString": "contract IntVoteInterface"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8041,
                              "type": "function (address,bytes32,address,address,bytes32,bytes32)",
                              "value": "NewGlobalConstraintsProposal"
                            },
                            "id": 8322,
                            "name": "Identifier",
                            "src": "6180:28:23"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8265,
                              "type": "contract Avatar",
                              "value": "_avatar"
                            },
                            "id": 8323,
                            "name": "Identifier",
                            "src": "6222:7:23"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8290,
                              "type": "bytes32",
                              "value": "proposalId"
                            },
                            "id": 8324,
                            "name": "Identifier",
                            "src": "6243:10:23"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8285,
                              "type": "contract IntVoteInterface",
                              "value": "intVote"
                            },
                            "id": 8325,
                            "name": "Identifier",
                            "src": "6267:7:23"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8267,
                              "type": "address",
                              "value": "_gc"
                            },
                            "id": 8326,
                            "name": "Identifier",
                            "src": "6288:3:23"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8269,
                              "type": "bytes32",
                              "value": "_params"
                            },
                            "id": 8327,
                            "name": "Identifier",
                            "src": "6305:7:23"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8271,
                              "type": "bytes32",
                              "value": "_voteToRemoveParams"
                            },
                            "id": 8328,
                            "name": "Identifier",
                            "src": "6326:19:23"
                          }
                        ],
                        "id": 8329,
                        "name": "FunctionCall",
                        "src": "6180:175:23"
                      }
                    ],
                    "id": 8330,
                    "name": "ExpressionStatement",
                    "src": "6180:175:23"
                  },
                  {
                    "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": 3398,
                              "type": "function (bytes32,uint256,address) external returns (bool)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8285,
                                  "type": "contract IntVoteInterface",
                                  "value": "intVote"
                                },
                                "id": 8331,
                                "name": "Identifier",
                                "src": "6365:7:23"
                              }
                            ],
                            "id": 8333,
                            "name": "MemberAccess",
                            "src": "6365:17:23"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8290,
                              "type": "bytes32",
                              "value": "proposalId"
                            },
                            "id": 8334,
                            "name": "Identifier",
                            "src": "6383:10:23"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "31",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "number",
                              "type": "int_const 1",
                              "value": "1"
                            },
                            "id": 8335,
                            "name": "Literal",
                            "src": "6395:1:23"
                          },
                          {
                            "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": 12011,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 8336,
                                "name": "Identifier",
                                "src": "6398:3:23"
                              }
                            ],
                            "id": 8337,
                            "name": "MemberAccess",
                            "src": "6398:10:23"
                          }
                        ],
                        "id": 8338,
                        "name": "FunctionCall",
                        "src": "6365:44:23"
                      }
                    ],
                    "id": 8339,
                    "name": "ExpressionStatement",
                    "src": "6365:44:23"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 8275
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "overloadedDeclarations": [
                            null
                          ],
                          "referencedDeclaration": 8290,
                          "type": "bytes32",
                          "value": "proposalId"
                        },
                        "id": 8340,
                        "name": "Identifier",
                        "src": "6482:10:23"
                      }
                    ],
                    "id": 8341,
                    "name": "Return",
                    "src": "6475:17:23"
                  }
                ],
                "id": 8342,
                "name": "Block",
                "src": "5628:871:23"
              }
            ],
            "id": 8343,
            "name": "FunctionDefinition",
            "src": "5484:1015:23"
          },
          {
            "attributes": {
              "constant": false,
              "implemented": true,
              "isConstructor": false,
              "modifiers": [
                null
              ],
              "name": "proposeToRemoveGC",
              "payable": false,
              "scope": 8446,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_avatar",
                      "scope": 8445,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract Avatar",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "Avatar",
                          "referencedDeclaration": 3873,
                          "type": "contract Avatar"
                        },
                        "id": 8344,
                        "name": "UserDefinedTypeName",
                        "src": "6801:6:23"
                      }
                    ],
                    "id": 8345,
                    "name": "VariableDeclaration",
                    "src": "6801:14:23"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "_gc",
                      "scope": 8445,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "type": "address"
                        },
                        "id": 8346,
                        "name": "ElementaryTypeName",
                        "src": "6817:7:23"
                      }
                    ],
                    "id": 8347,
                    "name": "VariableDeclaration",
                    "src": "6817:11:23"
                  }
                ],
                "id": 8348,
                "name": "ParameterList",
                "src": "6800:29:23"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 8445,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 8349,
                        "name": "ElementaryTypeName",
                        "src": "6845:7:23"
                      }
                    ],
                    "id": 8350,
                    "name": "VariableDeclaration",
                    "src": "6845:7:23"
                  }
                ],
                "id": 8351,
                "name": "ParameterList",
                "src": "6844:9:23"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        8353
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "org",
                          "scope": 8445,
                          "stateVariable": false,
                          "storageLocation": "storage",
                          "type": "struct GlobalConstraintRegistrar.Organization storage pointer",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "Organization",
                              "referencedDeclaration": 8085,
                              "type": "struct GlobalConstraintRegistrar.Organization storage pointer"
                            },
                            "id": 8352,
                            "name": "UserDefinedTypeName",
                            "src": "6864:12:23"
                          }
                        ],
                        "id": 8353,
                        "name": "VariableDeclaration",
                        "src": "6864:24:23"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "type": "struct GlobalConstraintRegistrar.Organization storage ref"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8089,
                              "type": "mapping(address => struct GlobalConstraintRegistrar.Organization storage ref)",
                              "value": "organizationsData"
                            },
                            "id": 8354,
                            "name": "Identifier",
                            "src": "6891:17:23"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8345,
                              "type": "contract Avatar",
                              "value": "_avatar"
                            },
                            "id": 8355,
                            "name": "Identifier",
                            "src": "6909:7:23"
                          }
                        ],
                        "id": 8356,
                        "name": "IndexAccess",
                        "src": "6891:26:23"
                      }
                    ],
                    "id": 8357,
                    "name": "VariableDeclarationStatement",
                    "src": "6864:53:23"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        8359
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "controller",
                          "scope": 8445,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "contract Controller",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "Controller",
                              "referencedDeclaration": 4967,
                              "type": "contract Controller"
                            },
                            "id": 8358,
                            "name": "UserDefinedTypeName",
                            "src": "6927:10:23"
                          }
                        ],
                        "id": 8359,
                        "name": "VariableDeclaration",
                        "src": "6927:21:23"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "type": "contract Controller",
                          "type_conversion": true
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 4967,
                              "type": "type(contract Controller)",
                              "value": "Controller"
                            },
                            "id": 8360,
                            "name": "Identifier",
                            "src": "6951:10:23"
                          },
                          {
                            "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": 11393,
                                  "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_contract$_Avatar_$3873",
                                              "typeString": "contract Avatar"
                                            }
                                          ],
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 3873,
                                          "type": "type(contract Avatar)",
                                          "value": "Avatar"
                                        },
                                        "id": 8361,
                                        "name": "Identifier",
                                        "src": "6962:6:23"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8345,
                                          "type": "contract Avatar",
                                          "value": "_avatar"
                                        },
                                        "id": 8362,
                                        "name": "Identifier",
                                        "src": "6969:7:23"
                                      }
                                    ],
                                    "id": 8363,
                                    "name": "FunctionCall",
                                    "src": "6962:15:23"
                                  }
                                ],
                                "id": 8364,
                                "name": "MemberAccess",
                                "src": "6962:21:23"
                              }
                            ],
                            "id": 8365,
                            "name": "FunctionCall",
                            "src": "6962:23:23"
                          }
                        ],
                        "id": 8366,
                        "name": "FunctionCall",
                        "src": "6951:35:23"
                      }
                    ],
                    "id": 8367,
                    "name": "VariableDeclarationStatement",
                    "src": "6927:59:23"
                  },
                  {
                    "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": 12014,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 8368,
                            "name": "Identifier",
                            "src": "6996:7:23"
                          },
                          {
                            "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": "isGlobalConstraintRegistered",
                                  "referencedDeclaration": 4556,
                                  "type": "function (address,address) view external returns (bool)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8359,
                                      "type": "contract Controller",
                                      "value": "controller"
                                    },
                                    "id": 8369,
                                    "name": "Identifier",
                                    "src": "7004:10:23"
                                  }
                                ],
                                "id": 8370,
                                "name": "MemberAccess",
                                "src": "7004:39:23"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8347,
                                  "type": "address",
                                  "value": "_gc"
                                },
                                "id": 8371,
                                "name": "Identifier",
                                "src": "7044:3:23"
                              },
                              {
                                "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$_Avatar_$3873",
                                          "typeString": "contract Avatar"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "type": "type(address)",
                                      "value": "address"
                                    },
                                    "id": 8372,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "7048:7:23"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8345,
                                      "type": "contract Avatar",
                                      "value": "_avatar"
                                    },
                                    "id": 8373,
                                    "name": "Identifier",
                                    "src": "7056:7:23"
                                  }
                                ],
                                "id": 8374,
                                "name": "FunctionCall",
                                "src": "7048:16:23"
                              }
                            ],
                            "id": 8375,
                            "name": "FunctionCall",
                            "src": "7004:61:23"
                          }
                        ],
                        "id": 8376,
                        "name": "FunctionCall",
                        "src": "6996:70:23"
                      }
                    ],
                    "id": 8377,
                    "name": "ExpressionStatement",
                    "src": "6996:70:23"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        8379
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "params",
                          "scope": 8445,
                          "stateVariable": false,
                          "storageLocation": "memory",
                          "type": "struct GlobalConstraintRegistrar.Parameters memory",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "Parameters",
                              "referencedDeclaration": 8094,
                              "type": "struct GlobalConstraintRegistrar.Parameters storage pointer"
                            },
                            "id": 8378,
                            "name": "UserDefinedTypeName",
                            "src": "7076:10:23"
                          }
                        ],
                        "id": 8379,
                        "name": "VariableDeclaration",
                        "src": "7076:24:23"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "type": "struct GlobalConstraintRegistrar.Parameters storage ref"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8098,
                              "type": "mapping(bytes32 => struct GlobalConstraintRegistrar.Parameters storage ref)",
                              "value": "parameters"
                            },
                            "id": 8380,
                            "name": "Identifier",
                            "src": "7103:10:23"
                          },
                          {
                            "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_$3873",
                                      "typeString": "contract Avatar"
                                    }
                                  ],
                                  "overloadedDeclarations": [
                                    9584
                                  ],
                                  "referencedDeclaration": 9584,
                                  "type": "function (contract Avatar) view returns (bytes32)",
                                  "value": "getParametersFromController"
                                },
                                "id": 8381,
                                "name": "Identifier",
                                "src": "7114:27:23"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8345,
                                  "type": "contract Avatar",
                                  "value": "_avatar"
                                },
                                "id": 8382,
                                "name": "Identifier",
                                "src": "7142:7:23"
                              }
                            ],
                            "id": 8383,
                            "name": "FunctionCall",
                            "src": "7114:36:23"
                          }
                        ],
                        "id": 8384,
                        "name": "IndexAccess",
                        "src": "7103:48:23"
                      }
                    ],
                    "id": 8385,
                    "name": "VariableDeclarationStatement",
                    "src": "7076:75:23"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        8387
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "intVote",
                          "scope": 8445,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "contract IntVoteInterface",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "IntVoteInterface",
                              "referencedDeclaration": 3459,
                              "type": "contract IntVoteInterface"
                            },
                            "id": 8386,
                            "name": "UserDefinedTypeName",
                            "src": "7161:16:23"
                          }
                        ],
                        "id": 8387,
                        "name": "VariableDeclaration",
                        "src": "7161:24:23"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "member_name": "intVote",
                          "referencedDeclaration": 8093,
                          "type": "contract IntVoteInterface"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8379,
                              "type": "struct GlobalConstraintRegistrar.Parameters memory",
                              "value": "params"
                            },
                            "id": 8388,
                            "name": "Identifier",
                            "src": "7188:6:23"
                          }
                        ],
                        "id": 8389,
                        "name": "MemberAccess",
                        "src": "7188:14:23"
                      }
                    ],
                    "id": 8390,
                    "name": "VariableDeclarationStatement",
                    "src": "7161:41:23"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        8392
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "proposalId",
                          "scope": 8445,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "bytes32",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "bytes32",
                              "type": "bytes32"
                            },
                            "id": 8391,
                            "name": "ElementaryTypeName",
                            "src": "7212:7:23"
                          }
                        ],
                        "id": 8392,
                        "name": "VariableDeclaration",
                        "src": "7212:18:23"
                      },
                      {
                        "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_$3873",
                                  "typeString": "contract Avatar"
                                },
                                {
                                  "typeIdentifier": "t_contract$_ExecutableInterface_$8021",
                                  "typeString": "contract ExecutableInterface"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "propose",
                              "referencedDeclaration": 3371,
                              "type": "function (uint256,bytes32,address,contract ExecutableInterface,address) external returns (bytes32)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8387,
                                  "type": "contract IntVoteInterface",
                                  "value": "intVote"
                                },
                                "id": 8393,
                                "name": "Identifier",
                                "src": "7233:7:23"
                              }
                            ],
                            "id": 8394,
                            "name": "MemberAccess",
                            "src": "7233:15:23"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "32",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "number",
                              "type": "int_const 2",
                              "value": "2"
                            },
                            "id": 8395,
                            "name": "Literal",
                            "src": "7249:1:23"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "type": "bytes32"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "voteToRemoveParams",
                                  "referencedDeclaration": 8084,
                                  "type": "mapping(address => bytes32)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8353,
                                      "type": "struct GlobalConstraintRegistrar.Organization storage pointer",
                                      "value": "org"
                                    },
                                    "id": 8396,
                                    "name": "Identifier",
                                    "src": "7252:3:23"
                                  }
                                ],
                                "id": 8397,
                                "name": "MemberAccess",
                                "src": "7252:22:23"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8347,
                                  "type": "address",
                                  "value": "_gc"
                                },
                                "id": 8398,
                                "name": "Identifier",
                                "src": "7275:3:23"
                              }
                            ],
                            "id": 8399,
                            "name": "IndexAccess",
                            "src": "7252:27:23"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8345,
                              "type": "contract Avatar",
                              "value": "_avatar"
                            },
                            "id": 8400,
                            "name": "Identifier",
                            "src": "7281:7:23"
                          },
                          {
                            "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$_GlobalConstraintRegistrar_$8446",
                                      "typeString": "contract GlobalConstraintRegistrar"
                                    }
                                  ],
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8021,
                                  "type": "type(contract ExecutableInterface)",
                                  "value": "ExecutableInterface"
                                },
                                "id": 8401,
                                "name": "Identifier",
                                "src": "7290:19:23"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 12094,
                                  "type": "contract GlobalConstraintRegistrar",
                                  "value": "this"
                                },
                                "id": 8402,
                                "name": "Identifier",
                                "src": "7310:4:23"
                              }
                            ],
                            "id": 8403,
                            "name": "FunctionCall",
                            "src": "7290:25:23"
                          },
                          {
                            "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": 12011,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 8404,
                                "name": "Identifier",
                                "src": "7316:3:23"
                              }
                            ],
                            "id": 8405,
                            "name": "MemberAccess",
                            "src": "7316:10:23"
                          }
                        ],
                        "id": 8406,
                        "name": "FunctionCall",
                        "src": "7233:94:23"
                      }
                    ],
                    "id": 8407,
                    "name": "VariableDeclarationStatement",
                    "src": "7212:115:23"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        8409
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "name": "proposal",
                          "scope": 8445,
                          "stateVariable": false,
                          "storageLocation": "memory",
                          "type": "struct GlobalConstraintRegistrar.GCProposal memory",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "GCProposal",
                              "referencedDeclaration": 8072,
                              "type": "struct GlobalConstraintRegistrar.GCProposal storage pointer"
                            },
                            "id": 8408,
                            "name": "UserDefinedTypeName",
                            "src": "7338:10:23"
                          }
                        ],
                        "id": 8409,
                        "name": "VariableDeclaration",
                        "src": "7338:26:23"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": true,
                          "lValueRequested": false,
                          "names": [
                            "gc",
                            "params",
                            "proposalType",
                            "voteToRemoveParams"
                          ],
                          "type": "struct GlobalConstraintRegistrar.GCProposal memory",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8072,
                              "type": "type(struct GlobalConstraintRegistrar.GCProposal storage pointer)",
                              "value": "GCProposal"
                            },
                            "id": 8410,
                            "name": "Identifier",
                            "src": "7367:10:23"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8347,
                              "type": "address",
                              "value": "_gc"
                            },
                            "id": 8411,
                            "name": "Identifier",
                            "src": "7396:3:23"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 8412,
                            "name": "Literal",
                            "src": "7421:1:23"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "32",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "number",
                              "type": "int_const 2",
                              "value": "2"
                            },
                            "id": 8413,
                            "name": "Literal",
                            "src": "7450:1:23"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 8414,
                            "name": "Literal",
                            "src": "7485:1:23"
                          }
                        ],
                        "id": 8415,
                        "name": "FunctionCall",
                        "src": "7367:130:23"
                      }
                    ],
                    "id": 8416,
                    "name": "VariableDeclarationStatement",
                    "src": "7338:159:23"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "struct GlobalConstraintRegistrar.GCProposal storage ref"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": true,
                              "type": "struct GlobalConstraintRegistrar.GCProposal storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "proposals",
                                  "referencedDeclaration": 8080,
                                  "type": "mapping(bytes32 => struct GlobalConstraintRegistrar.GCProposal storage ref)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "struct GlobalConstraintRegistrar.Organization storage ref"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8089,
                                          "type": "mapping(address => struct GlobalConstraintRegistrar.Organization storage ref)",
                                          "value": "organizationsData"
                                        },
                                        "id": 8417,
                                        "name": "Identifier",
                                        "src": "7508:17:23"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8345,
                                          "type": "contract Avatar",
                                          "value": "_avatar"
                                        },
                                        "id": 8418,
                                        "name": "Identifier",
                                        "src": "7526:7:23"
                                      }
                                    ],
                                    "id": 8419,
                                    "name": "IndexAccess",
                                    "src": "7508:26:23"
                                  }
                                ],
                                "id": 8420,
                                "name": "MemberAccess",
                                "src": "7508:36:23"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8392,
                                  "type": "bytes32",
                                  "value": "proposalId"
                                },
                                "id": 8421,
                                "name": "Identifier",
                                "src": "7545:10:23"
                              }
                            ],
                            "id": 8422,
                            "name": "IndexAccess",
                            "src": "7508:48:23"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8409,
                              "type": "struct GlobalConstraintRegistrar.GCProposal memory",
                              "value": "proposal"
                            },
                            "id": 8423,
                            "name": "Identifier",
                            "src": "7559:8:23"
                          }
                        ],
                        "id": 8424,
                        "name": "Assignment",
                        "src": "7508:59:23"
                      }
                    ],
                    "id": 8425,
                    "name": "ExpressionStatement",
                    "src": "7508:59:23"
                  },
                  {
                    "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_$3873",
                                  "typeString": "contract Avatar"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_contract$_IntVoteInterface_$3459",
                                  "typeString": "contract IntVoteInterface"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8051,
                              "type": "function (address,bytes32,address,address)",
                              "value": "RemoveGlobalConstraintsProposal"
                            },
                            "id": 8426,
                            "name": "Identifier",
                            "src": "7577:31:23"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8345,
                              "type": "contract Avatar",
                              "value": "_avatar"
                            },
                            "id": 8427,
                            "name": "Identifier",
                            "src": "7609:7:23"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8392,
                              "type": "bytes32",
                              "value": "proposalId"
                            },
                            "id": 8428,
                            "name": "Identifier",
                            "src": "7618:10:23"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8387,
                              "type": "contract IntVoteInterface",
                              "value": "intVote"
                            },
                            "id": 8429,
                            "name": "Identifier",
                            "src": "7630:7:23"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8347,
                              "type": "address",
                              "value": "_gc"
                            },
                            "id": 8430,
                            "name": "Identifier",
                            "src": "7639:3:23"
                          }
                        ],
                        "id": 8431,
                        "name": "FunctionCall",
                        "src": "7577:66:23"
                      }
                    ],
                    "id": 8432,
                    "name": "ExpressionStatement",
                    "src": "7577:66:23"
                  },
                  {
                    "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": 3398,
                              "type": "function (bytes32,uint256,address) external returns (bool)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8387,
                                  "type": "contract IntVoteInterface",
                                  "value": "intVote"
                                },
                                "id": 8433,
                                "name": "Identifier",
                                "src": "7653:7:23"
                              }
                            ],
                            "id": 8435,
                            "name": "MemberAccess",
                            "src": "7653:17:23"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8392,
                              "type": "bytes32",
                              "value": "proposalId"
                            },
                            "id": 8436,
                            "name": "Identifier",
                            "src": "7671:10:23"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "31",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "number",
                              "type": "int_const 1",
                              "value": "1"
                            },
                            "id": 8437,
                            "name": "Literal",
                            "src": "7683:1:23"
                          },
                          {
                            "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": 12011,
                                  "type": "msg",
                                  "value": "msg"
                                },
                                "id": 8438,
                                "name": "Identifier",
                                "src": "7686:3:23"
                              }
                            ],
                            "id": 8439,
                            "name": "MemberAccess",
                            "src": "7686:10:23"
                          }
                        ],
                        "id": 8440,
                        "name": "FunctionCall",
                        "src": "7653:44:23"
                      }
                    ],
                    "id": 8441,
                    "name": "ExpressionStatement",
                    "src": "7653:44:23"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 8351
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "overloadedDeclarations": [
                            null
                          ],
                          "referencedDeclaration": 8392,
                          "type": "bytes32",
                          "value": "proposalId"
                        },
                        "id": 8442,
                        "name": "Identifier",
                        "src": "7770:10:23"
                      }
                    ],
                    "id": 8443,
                    "name": "Return",
                    "src": "7763:17:23"
                  }
                ],
                "id": 8444,
                "name": "Block",
                "src": "6854:933:23"
              }
            ],
            "id": 8445,
            "name": "FunctionDefinition",
            "src": "6774:1013:23"
          }
        ],
        "id": 8446,
        "name": "ContractDefinition",
        "src": "255:7534:23"
      }
    ],
    "id": 8447,
    "name": "SourceUnit",
    "src": "0:7790:23"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.18+commit.9cf6e910.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "1.0.1",
  "updatedAt": "2018-02-04T21:57:39.062Z"
}