false
false

Contract Address Details

0x1be03AcAe824F22E0A19d97ED990c6fDfea3F2e3

Contract Name
cityReward
Creator
0x864f78–c6436b at 0xa3d3c9–6246ec
Balance
0
Tokens
Fetching tokens...
Transactions
0 Transactions
Transfers
0 Transfers
Gas Used
Fetching gas used...
Last Balance Update
15611733
Warning! Contract bytecode has been changed and doesn't match the verified one. Therefore, interaction with this smart contract may be risky.
Contract name:
cityReward




Optimization enabled
true
Compiler version
v0.8.0+commit.c7dfd78e




Optimization runs
200
EVM Version
default




Verified at
2024-09-12T09:35:41.216156Z

Contract source code

Sol2uml
new
pragma solidity ^0.8.0;

contract cityReward {
    struct Citizen {
        uint256 rewardPoints;
        uint256 reputation;
        uint256 level;
        mapping(uint256 => bool) completedChallenges;
    }

    struct Challenge {
        string name;
        string description;
        uint256 rewardPoints;
        uint256 reputationPoints;
        bool active;
    }

    address public cityAdmin;
    mapping(address => Citizen) public citizens;
    mapping(uint256 => Challenge) public challenges;
    uint256 public challengeCount;

    event CitizenRegistered(address indexed citizenAddress);
    event ChallengeCreated(uint256 indexed challengeId, string name);
    event ChallengeCompleted(address indexed citizenAddress, uint256 indexed challengeId);
    event RewardsClaimed(address indexed citizenAddress, uint256 amount);
    event LevelUp(address indexed citizenAddress, uint256 newLevel);

    modifier onlyCityAdmin() {
        require(msg.sender == cityAdmin, "Only city admin can call this function");
        _;
    }

    modifier onlyRegisteredCitizen() {
        require(citizens[msg.sender].level > 0, "Only registered citizens can call this function");
        _;
    }

    constructor() {
        cityAdmin = msg.sender;
    }

    function registerCitizen() public {
        require(citizens[msg.sender].level == 0, "Citizen already registered");
        citizens[msg.sender].level = 1;
        emit CitizenRegistered(msg.sender);
    }

    function createChallenge(string memory _name, string memory _description, uint256 _rewardPoints, uint256 _reputationPoints) public onlyCityAdmin {
        challengeCount++;
        challenges[challengeCount] = Challenge(_name, _description, _rewardPoints, _reputationPoints, true);
        emit ChallengeCreated(challengeCount, _name);
    }

    function completeChallenge(uint256 _challengeId) public onlyRegisteredCitizen {
        require(challenges[_challengeId].active, "Challenge is not active");
        require(!citizens[msg.sender].completedChallenges[_challengeId], "Challenge already completed");

        Citizen storage citizen = citizens[msg.sender];
        Challenge storage challenge = challenges[_challengeId];

        citizen.rewardPoints += challenge.rewardPoints;
        citizen.reputation += challenge.reputationPoints;
        citizen.completedChallenges[_challengeId] = true;

        checkLevelUp(msg.sender);

        emit ChallengeCompleted(msg.sender, _challengeId);
    }

    function checkLevelUp(address _citizenAddress) internal {
        Citizen storage citizen = citizens[_citizenAddress];
        uint256 newLevel = (citizen.reputation / 100) + 1; // Simple level calculation
        if (newLevel > citizen.level) {
            citizen.level = newLevel;
            emit LevelUp(_citizenAddress, newLevel);
        }
    }

    function claimRewards(uint256 _amount) public onlyRegisteredCitizen {
        require(citizens[msg.sender].rewardPoints >= _amount, "Insufficient reward points");
        citizens[msg.sender].rewardPoints -= _amount;
        // Here you would typically transfer actual rewards (e.g., tokens)
        // For simplicity, we're just deducting points
        emit RewardsClaimed(msg.sender, _amount);
    }

    function getCitizenDetails(address _citizenAddress) public view returns (uint256, uint256, uint256) {
        Citizen storage citizen = citizens[_citizenAddress];
        return (citizen.rewardPoints, citizen.reputation, citizen.level);
    }

    function getChallengeDetails(uint256 _challengeId) public view returns (string memory, string memory, uint256, uint256, bool) {
        Challenge memory challenge = challenges[_challengeId];
        return (challenge.name, challenge.description, challenge.rewardPoints, challenge.reputationPoints, challenge.active);
    }

    function hasCitizenCompletedChallenge(address _citizenAddress, uint256 _challengeId) public view returns (bool) {
        return citizens[_citizenAddress].completedChallenges[_challengeId];
    }

    function deactivateChallenge(uint256 _challengeId) public onlyCityAdmin {
        require(challenges[_challengeId].active, "Challenge is already inactive");
        challenges[_challengeId].active = false;
    }
}
        

Contract ABI

[{"type":"constructor","stateMutability":"nonpayable","inputs":[]},{"type":"event","name":"ChallengeCompleted","inputs":[{"type":"address","name":"citizenAddress","internalType":"address","indexed":true},{"type":"uint256","name":"challengeId","internalType":"uint256","indexed":true}],"anonymous":false},{"type":"event","name":"ChallengeCreated","inputs":[{"type":"uint256","name":"challengeId","internalType":"uint256","indexed":true},{"type":"string","name":"name","internalType":"string","indexed":false}],"anonymous":false},{"type":"event","name":"CitizenRegistered","inputs":[{"type":"address","name":"citizenAddress","internalType":"address","indexed":true}],"anonymous":false},{"type":"event","name":"LevelUp","inputs":[{"type":"address","name":"citizenAddress","internalType":"address","indexed":true},{"type":"uint256","name":"newLevel","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"RewardsClaimed","inputs":[{"type":"address","name":"citizenAddress","internalType":"address","indexed":true},{"type":"uint256","name":"amount","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"challengeCount","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"string","name":"name","internalType":"string"},{"type":"string","name":"description","internalType":"string"},{"type":"uint256","name":"rewardPoints","internalType":"uint256"},{"type":"uint256","name":"reputationPoints","internalType":"uint256"},{"type":"bool","name":"active","internalType":"bool"}],"name":"challenges","inputs":[{"type":"uint256","name":"","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"rewardPoints","internalType":"uint256"},{"type":"uint256","name":"reputation","internalType":"uint256"},{"type":"uint256","name":"level","internalType":"uint256"}],"name":"citizens","inputs":[{"type":"address","name":"","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"cityAdmin","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"claimRewards","inputs":[{"type":"uint256","name":"_amount","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"completeChallenge","inputs":[{"type":"uint256","name":"_challengeId","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"createChallenge","inputs":[{"type":"string","name":"_name","internalType":"string"},{"type":"string","name":"_description","internalType":"string"},{"type":"uint256","name":"_rewardPoints","internalType":"uint256"},{"type":"uint256","name":"_reputationPoints","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"deactivateChallenge","inputs":[{"type":"uint256","name":"_challengeId","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"string","name":"","internalType":"string"},{"type":"string","name":"","internalType":"string"},{"type":"uint256","name":"","internalType":"uint256"},{"type":"uint256","name":"","internalType":"uint256"},{"type":"bool","name":"","internalType":"bool"}],"name":"getChallengeDetails","inputs":[{"type":"uint256","name":"_challengeId","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"},{"type":"uint256","name":"","internalType":"uint256"},{"type":"uint256","name":"","internalType":"uint256"}],"name":"getCitizenDetails","inputs":[{"type":"address","name":"_citizenAddress","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"hasCitizenCompletedChallenge","inputs":[{"type":"address","name":"_citizenAddress","internalType":"address"},{"type":"uint256","name":"_challengeId","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"registerCitizen","inputs":[]}]
              

Contract Creation Code

0x608060405234801561001057600080fd5b50600080546001600160a01b03191633179055610f89806100326000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c8063a2f0572511610071578063a2f057251461014b578063a7817bbc14610160578063be7fe8eb14610173578063d4f910a714610188578063e9035bb11461019b578063f352c45c146101bb576100b4565b80630962ef79146100b95780633d40a54f146100ce5780634fcc2c88146100fb578063605ec7501461010e5780638f1d377614610130578063907de2cc14610143575b600080fd5b6100cc6100c7366004610be1565b6101ce565b005b6100e16100dc366004610be1565b610296565b6040516100f2959493929190610c76565b60405180910390f35b6100cc610109366004610be1565b610435565b61012161011c366004610b26565b6104ab565b6040516100f293929190610e6c565b6100e161013e366004610be1565b6104d8565b6100cc61061b565b61015361068b565b6040516100f29190610e63565b6100cc61016e366004610be1565b610691565b61017b6107de565b6040516100f29190610c44565b610121610196366004610b26565b6107ed565b6101ae6101a9366004610b47565b61080d565b6040516100f29190610c58565b6100cc6101c9366004610b70565b61083c565b336000908152600160205260409020600201546102065760405162461bcd60e51b81526004016101fd90610da6565b60405180910390fd5b336000908152600160205260409020548111156102355760405162461bcd60e51b81526004016101fd90610d38565b3360009081526001602052604081208054839290610254908490610eba565b909155505060405133907ffc30cddea38e2bf4d6ea7d3f9ed3b6ad7f176419f4963bd81318067a4aee73fe9061028b908490610e63565b60405180910390a250565b606080600080600080600260008881526020019081526020016000206040518060a00160405290816000820180546102cd90610ed1565b80601f01602080910402602001604051908101604052809291908181526020018280546102f990610ed1565b80156103465780601f1061031b57610100808354040283529160200191610346565b820191906000526020600020905b81548152906001019060200180831161032957829003601f168201915b5050505050815260200160018201805461035f90610ed1565b80601f016020809104026020016040519081016040528092919081815260200182805461038b90610ed1565b80156103d85780601f106103ad576101008083540402835291602001916103d8565b820191906000526020600020905b8154815290600101906020018083116103bb57829003601f168201915b50505091835250506002820154602080830191909152600383015460408084019190915260049093015460ff1615156060928301528351908401519284015191840151608090940151909b929a5090985091965090945092505050565b6000546001600160a01b0316331461045f5760405162461bcd60e51b81526004016101fd90610cbb565b60008181526002602052604090206004015460ff166104905760405162461bcd60e51b81526004016101fd90610d6f565b6000908152600260205260409020600401805460ff19169055565b6001600160a01b031660009081526001602081905260409091208054918101546002909101549192909190565b6002602052600090815260409020805481906104f390610ed1565b80601f016020809104026020016040519081016040528092919081815260200182805461051f90610ed1565b801561056c5780601f106105415761010080835404028352916020019161056c565b820191906000526020600020905b81548152906001019060200180831161054f57829003601f168201915b50505050509080600101805461058190610ed1565b80601f01602080910402602001604051908101604052809291908181526020018280546105ad90610ed1565b80156105fa5780601f106105cf576101008083540402835291602001916105fa565b820191906000526020600020905b8154815290600101906020018083116105dd57829003601f168201915b50505050600283015460038401546004909401549293909290915060ff1685565b336000908152600160205260409020600201541561064b5760405162461bcd60e51b81526004016101fd90610df5565b33600081815260016020819052604080832060020191909155517fb5598409719558ebd54a454803d5d44a0b2ae7d77be5ea208f6a3b9698a2cb589190a2565b60035481565b336000908152600160205260409020600201546106c05760405162461bcd60e51b81526004016101fd90610da6565b60008181526002602052604090206004015460ff166106f15760405162461bcd60e51b81526004016101fd90610d01565b33600090815260016020908152604080832084845260030190915290205460ff161561072f5760405162461bcd60e51b81526004016101fd90610e2c565b33600090815260016020908152604080832084845260029283905290832091820154815491939091849190610765908490610e82565b90915550506003810154600183018054600090610783908490610e82565b909155505060008381526003830160205260409020805460ff191660011790556107ac3361095a565b604051839033907f57213678a1941131f1846559e4f0509e68d1a52c4d05bf0c3e8514c7a00b5d0b90600090a3505050565b6000546001600160a01b031681565b600160208190526000918252604090912080549181015460029091015483565b6001600160a01b0391909116600090815260016020908152604080832093835260039093019052205460ff1690565b6000546001600160a01b031633146108665760405162461bcd60e51b81526004016101fd90610cbb565b6003805490600061087683610f0c565b90915550506040805160a081018252858152602080820186905281830185905260608201849052600160808301526003546000908152600282529290922081518051929391926108c992849201906109f0565b5060208281015180516108e292600185019201906109f0565b50604082015181600201556060820151816003015560808201518160040160006101000a81548160ff0219169083151502179055509050506003547f9b29fc75376595e5ccc1cabb6212af1078e7cdea701adc8029ccc6ed8ab6e07b8560405161094c9190610c63565b60405180910390a250505050565b6001600160a01b038116600090815260016020819052604082209081015490919061098790606490610e9a565b610992906001610e82565b905081600201548111156109eb57808260020181905550826001600160a01b03167f91e51c29e7e87a74ad3b8ccba98538970f50a4309242735467f41e27c6b0fbac826040516109e29190610e63565b60405180910390a25b505050565b8280546109fc90610ed1565b90600052602060002090601f016020900481019282610a1e5760008555610a64565b82601f10610a3757805160ff1916838001178555610a64565b82800160010185558215610a64579182015b82811115610a64578251825591602001919060010190610a49565b50610a70929150610a74565b5090565b5b80821115610a705760008155600101610a75565b80356001600160a01b0381168114610aa057600080fd5b919050565b600082601f830112610ab5578081fd5b813567ffffffffffffffff80821115610ad057610ad0610f3d565b604051601f8301601f191681016020018281118282101715610af457610af4610f3d565b604052828152848301602001861015610b0b578384fd5b82602086016020830137918201602001929092529392505050565b600060208284031215610b37578081fd5b610b4082610a89565b9392505050565b60008060408385031215610b59578081fd5b610b6283610a89565b946020939093013593505050565b60008060008060808587031215610b85578182fd5b843567ffffffffffffffff80821115610b9c578384fd5b610ba888838901610aa5565b95506020870135915080821115610bbd578384fd5b50610bca87828801610aa5565b949794965050505060408301359260600135919050565b600060208284031215610bf2578081fd5b5035919050565b60008151808452815b81811015610c1e57602081850181015186830182015201610c02565b81811115610c2f5782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0391909116815260200190565b901515815260200190565b600060208252610b406020830184610bf9565b600060a08252610c8960a0830188610bf9565b8281036020840152610c9b8188610bf9565b604084019690965250506060810192909252151560809091015292915050565b60208082526026908201527f4f6e6c7920636974792061646d696e2063616e2063616c6c20746869732066756040820152653731ba34b7b760d11b606082015260800190565b60208082526017908201527f4368616c6c656e6765206973206e6f7420616374697665000000000000000000604082015260600190565b6020808252601a908201527f496e73756666696369656e742072657761726420706f696e7473000000000000604082015260600190565b6020808252601d908201527f4368616c6c656e676520697320616c726561647920696e616374697665000000604082015260600190565b6020808252602f908201527f4f6e6c79207265676973746572656420636974697a656e732063616e2063616c60408201526e36103a3434b990333ab731ba34b7b760891b606082015260800190565b6020808252601a908201527f436974697a656e20616c72656164792072656769737465726564000000000000604082015260600190565b6020808252601b908201527f4368616c6c656e676520616c726561647920636f6d706c657465640000000000604082015260600190565b90815260200190565b9283526020830191909152604082015260600190565b60008219821115610e9557610e95610f27565b500190565b600082610eb557634e487b7160e01b81526012600452602481fd5b500490565b600082821015610ecc57610ecc610f27565b500390565b600281046001821680610ee557607f821691505b60208210811415610f0657634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415610f2057610f20610f27565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfea26469706673582212209b609bf7ca718ed0f477bb15aa9a4955f17eeac65d325db24bd3bc0279b3eae864736f6c63430008000033

Deployed ByteCode

0x608060405234801561001057600080fd5b50600436106100b45760003560e01c8063a2f0572511610071578063a2f057251461014b578063a7817bbc14610160578063be7fe8eb14610173578063d4f910a714610188578063e9035bb11461019b578063f352c45c146101bb576100b4565b80630962ef79146100b95780633d40a54f146100ce5780634fcc2c88146100fb578063605ec7501461010e5780638f1d377614610130578063907de2cc14610143575b600080fd5b6100cc6100c7366004610be1565b6101ce565b005b6100e16100dc366004610be1565b610296565b6040516100f2959493929190610c76565b60405180910390f35b6100cc610109366004610be1565b610435565b61012161011c366004610b26565b6104ab565b6040516100f293929190610e6c565b6100e161013e366004610be1565b6104d8565b6100cc61061b565b61015361068b565b6040516100f29190610e63565b6100cc61016e366004610be1565b610691565b61017b6107de565b6040516100f29190610c44565b610121610196366004610b26565b6107ed565b6101ae6101a9366004610b47565b61080d565b6040516100f29190610c58565b6100cc6101c9366004610b70565b61083c565b336000908152600160205260409020600201546102065760405162461bcd60e51b81526004016101fd90610da6565b60405180910390fd5b336000908152600160205260409020548111156102355760405162461bcd60e51b81526004016101fd90610d38565b3360009081526001602052604081208054839290610254908490610eba565b909155505060405133907ffc30cddea38e2bf4d6ea7d3f9ed3b6ad7f176419f4963bd81318067a4aee73fe9061028b908490610e63565b60405180910390a250565b606080600080600080600260008881526020019081526020016000206040518060a00160405290816000820180546102cd90610ed1565b80601f01602080910402602001604051908101604052809291908181526020018280546102f990610ed1565b80156103465780601f1061031b57610100808354040283529160200191610346565b820191906000526020600020905b81548152906001019060200180831161032957829003601f168201915b5050505050815260200160018201805461035f90610ed1565b80601f016020809104026020016040519081016040528092919081815260200182805461038b90610ed1565b80156103d85780601f106103ad576101008083540402835291602001916103d8565b820191906000526020600020905b8154815290600101906020018083116103bb57829003601f168201915b50505091835250506002820154602080830191909152600383015460408084019190915260049093015460ff1615156060928301528351908401519284015191840151608090940151909b929a5090985091965090945092505050565b6000546001600160a01b0316331461045f5760405162461bcd60e51b81526004016101fd90610cbb565b60008181526002602052604090206004015460ff166104905760405162461bcd60e51b81526004016101fd90610d6f565b6000908152600260205260409020600401805460ff19169055565b6001600160a01b031660009081526001602081905260409091208054918101546002909101549192909190565b6002602052600090815260409020805481906104f390610ed1565b80601f016020809104026020016040519081016040528092919081815260200182805461051f90610ed1565b801561056c5780601f106105415761010080835404028352916020019161056c565b820191906000526020600020905b81548152906001019060200180831161054f57829003601f168201915b50505050509080600101805461058190610ed1565b80601f01602080910402602001604051908101604052809291908181526020018280546105ad90610ed1565b80156105fa5780601f106105cf576101008083540402835291602001916105fa565b820191906000526020600020905b8154815290600101906020018083116105dd57829003601f168201915b50505050600283015460038401546004909401549293909290915060ff1685565b336000908152600160205260409020600201541561064b5760405162461bcd60e51b81526004016101fd90610df5565b33600081815260016020819052604080832060020191909155517fb5598409719558ebd54a454803d5d44a0b2ae7d77be5ea208f6a3b9698a2cb589190a2565b60035481565b336000908152600160205260409020600201546106c05760405162461bcd60e51b81526004016101fd90610da6565b60008181526002602052604090206004015460ff166106f15760405162461bcd60e51b81526004016101fd90610d01565b33600090815260016020908152604080832084845260030190915290205460ff161561072f5760405162461bcd60e51b81526004016101fd90610e2c565b33600090815260016020908152604080832084845260029283905290832091820154815491939091849190610765908490610e82565b90915550506003810154600183018054600090610783908490610e82565b909155505060008381526003830160205260409020805460ff191660011790556107ac3361095a565b604051839033907f57213678a1941131f1846559e4f0509e68d1a52c4d05bf0c3e8514c7a00b5d0b90600090a3505050565b6000546001600160a01b031681565b600160208190526000918252604090912080549181015460029091015483565b6001600160a01b0391909116600090815260016020908152604080832093835260039093019052205460ff1690565b6000546001600160a01b031633146108665760405162461bcd60e51b81526004016101fd90610cbb565b6003805490600061087683610f0c565b90915550506040805160a081018252858152602080820186905281830185905260608201849052600160808301526003546000908152600282529290922081518051929391926108c992849201906109f0565b5060208281015180516108e292600185019201906109f0565b50604082015181600201556060820151816003015560808201518160040160006101000a81548160ff0219169083151502179055509050506003547f9b29fc75376595e5ccc1cabb6212af1078e7cdea701adc8029ccc6ed8ab6e07b8560405161094c9190610c63565b60405180910390a250505050565b6001600160a01b038116600090815260016020819052604082209081015490919061098790606490610e9a565b610992906001610e82565b905081600201548111156109eb57808260020181905550826001600160a01b03167f91e51c29e7e87a74ad3b8ccba98538970f50a4309242735467f41e27c6b0fbac826040516109e29190610e63565b60405180910390a25b505050565b8280546109fc90610ed1565b90600052602060002090601f016020900481019282610a1e5760008555610a64565b82601f10610a3757805160ff1916838001178555610a64565b82800160010185558215610a64579182015b82811115610a64578251825591602001919060010190610a49565b50610a70929150610a74565b5090565b5b80821115610a705760008155600101610a75565b80356001600160a01b0381168114610aa057600080fd5b919050565b600082601f830112610ab5578081fd5b813567ffffffffffffffff80821115610ad057610ad0610f3d565b604051601f8301601f191681016020018281118282101715610af457610af4610f3d565b604052828152848301602001861015610b0b578384fd5b82602086016020830137918201602001929092529392505050565b600060208284031215610b37578081fd5b610b4082610a89565b9392505050565b60008060408385031215610b59578081fd5b610b6283610a89565b946020939093013593505050565b60008060008060808587031215610b85578182fd5b843567ffffffffffffffff80821115610b9c578384fd5b610ba888838901610aa5565b95506020870135915080821115610bbd578384fd5b50610bca87828801610aa5565b949794965050505060408301359260600135919050565b600060208284031215610bf2578081fd5b5035919050565b60008151808452815b81811015610c1e57602081850181015186830182015201610c02565b81811115610c2f5782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0391909116815260200190565b901515815260200190565b600060208252610b406020830184610bf9565b600060a08252610c8960a0830188610bf9565b8281036020840152610c9b8188610bf9565b604084019690965250506060810192909252151560809091015292915050565b60208082526026908201527f4f6e6c7920636974792061646d696e2063616e2063616c6c20746869732066756040820152653731ba34b7b760d11b606082015260800190565b60208082526017908201527f4368616c6c656e6765206973206e6f7420616374697665000000000000000000604082015260600190565b6020808252601a908201527f496e73756666696369656e742072657761726420706f696e7473000000000000604082015260600190565b6020808252601d908201527f4368616c6c656e676520697320616c726561647920696e616374697665000000604082015260600190565b6020808252602f908201527f4f6e6c79207265676973746572656420636974697a656e732063616e2063616c60408201526e36103a3434b990333ab731ba34b7b760891b606082015260800190565b6020808252601a908201527f436974697a656e20616c72656164792072656769737465726564000000000000604082015260600190565b6020808252601b908201527f4368616c6c656e676520616c726561647920636f6d706c657465640000000000604082015260600190565b90815260200190565b9283526020830191909152604082015260600190565b60008219821115610e9557610e95610f27565b500190565b600082610eb557634e487b7160e01b81526012600452602481fd5b500490565b600082821015610ecc57610ecc610f27565b500390565b600281046001821680610ee557607f821691505b60208210811415610f0657634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415610f2057610f20610f27565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfea26469706673582212209b609bf7ca718ed0f477bb15aa9a4955f17eeac65d325db24bd3bc0279b3eae864736f6c63430008000033