More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 25,543 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Buy | 527938 | 2 secs ago | IN | 0 ETH | 0.0000074 | ||||
Buy | 527927 | 13 secs ago | IN | 0 ETH | 0.00000795 | ||||
Buy | 527919 | 21 secs ago | IN | 0 ETH | 0.00000806 | ||||
Buy | 527918 | 22 secs ago | IN | 0 ETH | 0.00000774 | ||||
Buy | 527915 | 25 secs ago | IN | 0 ETH | 0.00000774 | ||||
Buy | 527913 | 27 secs ago | IN | 0 ETH | 0.00000806 | ||||
Sell | 527911 | 29 secs ago | IN | 0 ETH | 0.00000761 | ||||
Buy | 527909 | 31 secs ago | IN | 0 ETH | 0.00000774 | ||||
Buy | 527908 | 32 secs ago | IN | 0 ETH | 0.00001095 | ||||
Buy | 527904 | 36 secs ago | IN | 0 ETH | 0.00000774 | ||||
Buy | 527897 | 43 secs ago | IN | 0 ETH | 0.00000796 | ||||
Buy | 527892 | 48 secs ago | IN | 0 ETH | 0.00001066 | ||||
Buy | 527888 | 52 secs ago | IN | 0 ETH | 0.00000785 | ||||
Buy | 527882 | 58 secs ago | IN | 0 ETH | 0.0000086 | ||||
Buy | 527879 | 1 min ago | IN | 0 ETH | 0.00000851 | ||||
Buy | 527866 | 1 min ago | IN | 0 ETH | 0.00000845 | ||||
Buy | 527856 | 1 min ago | IN | 0 ETH | 0.00000774 | ||||
Buy | 527850 | 1 min ago | IN | 0 ETH | 0.00001066 | ||||
Sell | 527846 | 1 min ago | IN | 0 ETH | 0.0000102 | ||||
Buy | 527842 | 1 min ago | IN | 0 ETH | 0.00000794 | ||||
Buy | 527837 | 1 min ago | IN | 0 ETH | 0.00001066 | ||||
Buy | 527831 | 1 min ago | IN | 0 ETH | 0.00000775 | ||||
Buy | 527825 | 1 min ago | IN | 0 ETH | 0.00000794 | ||||
Buy | 527806 | 2 mins ago | IN | 0 ETH | 0.00000977 | ||||
Buy | 527804 | 2 mins ago | IN | 0 ETH | 0.00000785 |
Latest 1 internal transaction
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
196877 | 9 days ago | Contract Creation | 0 ETH |
Loading...
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Contract Name:
PredictionMarketV3
Compiler Version
v0.8.18+commit.87f61d96
ZkSolc Version
v1.5.4
Optimization Enabled:
Yes with Mode 3
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.18; // openzeppelin imports import "@openzeppelin/contracts/security/ReentrancyGuard.sol"; import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol"; // local imports import "./IFantasyERC20.sol"; import "./IRealityETH_ERC20.sol"; import "./IPredictionMarketV3Manager.sol"; library CeilDiv { // calculates ceil(x/y) function ceildiv(uint256 x, uint256 y) internal pure returns (uint256) { if (x > 0) return ((x - 1) / y) + 1; return x / y; } } interface IWETH { function deposit() external payable; function transfer(address to, uint256 value) external returns (bool); function withdraw(uint256) external; function approve(address guy, uint256 wad) external returns (bool); } /// @title Market Contract Factory contract PredictionMarketV3 is ReentrancyGuard { using SafeERC20 for IERC20; using CeilDiv for uint256; // ------ Events ------ event MarketCreated( address indexed user, uint256 indexed marketId, uint256 outcomes, string question, string image, IERC20 token ); event MarketActionTx( address indexed user, MarketAction indexed action, uint256 indexed marketId, uint256 outcomeId, uint256 shares, uint256 value, uint256 timestamp ); event MarketOutcomeShares(uint256 indexed marketId, uint256 timestamp, uint256[] outcomeShares, uint256 liquidity); event MarketOutcomePrice(uint256 indexed marketId, uint256 indexed outcomeId, uint256 value, uint256 timestamp); event MarketLiquidity( uint256 indexed marketId, uint256 value, // total liquidity uint256 price, // value of one liquidity share; max: 1 (even odds situation) uint256 timestamp ); event MarketResolved( address indexed user, uint256 indexed marketId, uint256 outcomeId, uint256 timestamp, bool admin ); // ------ Events End ------ uint256 public constant MAX_UINT_256 = type(uint256).max; uint256 public constant ONE = 10**18; uint256 public constant MAX_OUTCOMES = 2**5; uint256 public constant MAX_FEE = 5 * 10**16; // 5% enum MarketState { open, closed, resolved } enum MarketAction { buy, sell, addLiquidity, removeLiquidity, claimWinnings, claimLiquidity, claimFees, claimVoided } struct Market { // market details uint256 closesAtTimestamp; uint256 balance; // total stake uint256 liquidity; // stake held uint256 sharesAvailable; // shares held (all outcomes) mapping(address => uint256) liquidityShares; mapping(address => bool) liquidityClaims; // wether user has claimed liquidity earnings MarketState state; // resolution variables MarketResolution resolution; // fees MarketFees fees; // market outcomes uint256 outcomeCount; mapping(uint256 => MarketOutcome) outcomes; IERC20 token; // ERC20 token market will use for trading IPredictionMarketV3Manager manager; // manager contract address creator; // market creator } struct MarketFees { uint256 fee; // fee % taken from every transaction uint256 poolWeight; // internal var used to ensure pro-rate fee distribution mapping(address => uint256) claimed; address treasury; // address to send treasury fees to uint256 treasuryFee; // fee % taken from every transaction to a treasury address } struct MarketResolution { bool resolved; uint256 outcomeId; bytes32 questionId; // realitio questionId // realitio IRealityETH_ERC20 realitio; uint256 realitioTimeout; } struct MarketOutcome { uint256 marketId; uint256 id; Shares shares; } struct Shares { uint256 total; // number of shares uint256 available; // available shares mapping(address => uint256) holders; mapping(address => bool) claims; // wether user has claimed winnings mapping(address => bool) voidedClaims; // wether user has claimed voided market shares } struct CreateMarketDescription { uint256 value; uint256 closesAt; uint256 outcomes; IERC20 token; uint256[] distribution; string question; string image; address arbitrator; uint256 fee; uint256 treasuryFee; address treasury; IRealityETH_ERC20 realitio; uint256 realitioTimeout; IPredictionMarketV3Manager manager; } uint256[] marketIds; mapping(uint256 => Market) markets; uint256 public marketIndex; // weth configs IWETH public immutable WETH; // ------ Modifiers ------ modifier isMarket(uint256 marketId) { require(marketId < marketIndex, "Market not found"); _; } modifier timeTransitions(uint256 marketId) { if (block.timestamp > markets[marketId].closesAtTimestamp && markets[marketId].state == MarketState.open) { nextState(marketId); } _; } modifier atState(uint256 marketId, MarketState state) { require(markets[marketId].state == state, "Market in incorrect state"); _; } modifier notAtState(uint256 marketId, MarketState state) { require(markets[marketId].state != state, "Market in incorrect state"); _; } modifier transitionNext(uint256 marketId) { _; nextState(marketId); } modifier transitionLast(uint256 marketId) { _; lastState(marketId); } modifier isWETHMarket(uint256 marketId) { require(address(WETH) != address(0), "WETH address is address 0"); require(address(markets[marketId].token) == address(WETH), "Market token is not WETH"); _; } // ------ Modifiers End ------ /// @dev protocol is immutable and has no ownership constructor(IWETH _WETH) { WETH = _WETH; } receive() external payable { assert(msg.sender == address(WETH)); // only accept ETH via fallback from the WETH contract } // ------ Core Functions ------ /// @dev Creates a market, initializes the outcome shares pool and submits a question in Realitio function _createMarket(CreateMarketDescription memory desc) private returns (uint256) { uint256 marketId = marketIndex; marketIds.push(marketId); Market storage market = markets[marketId]; require(desc.value > 0, "stake needs to be > 0"); require(desc.closesAt > block.timestamp, "resolution before current date"); require(desc.arbitrator != address(0), "invalid arbitrator address"); require(desc.outcomes > 0 && desc.outcomes <= MAX_OUTCOMES, "outcome count not between 1-32"); require(desc.fee <= MAX_FEE, "fee must be <= 5%"); require(desc.treasuryFee <= MAX_FEE, "treasury fee must be <= 5%"); require(address(desc.realitio) != address(0), "_realitioAddress is address 0"); require(desc.realitioTimeout > 0, "timeout must be positive"); require(desc.manager.isAllowedToCreateMarket(desc.token, msg.sender), "not allowed to create market"); market.token = desc.token; market.closesAtTimestamp = desc.closesAt; market.state = MarketState.open; market.fees.fee = desc.fee; market.fees.treasuryFee = desc.treasuryFee; market.fees.treasury = desc.treasury; // setting intial value to an integer that does not map to any outcomeId market.resolution.outcomeId = MAX_UINT_256; market.outcomeCount = desc.outcomes; // creating question in realitio market.resolution.questionId = desc.realitio.askQuestionERC20( 2, desc.question, desc.arbitrator, uint32(desc.realitioTimeout), uint32(desc.closesAt), 0, 0 ); market.resolution.realitio = desc.realitio; market.resolution.realitioTimeout = desc.realitioTimeout; market.manager = desc.manager; market.creator = msg.sender; _addLiquidity(marketId, desc.value, desc.distribution); // emiting initial price events emitMarketActionEvents(marketId); emit MarketCreated(msg.sender, marketId, desc.outcomes, desc.question, desc.image, desc.token); // incrementing market array index marketIndex = marketIndex + 1; return marketId; } function createMarket(CreateMarketDescription calldata desc) external returns (uint256) { uint256 marketId = _createMarket( CreateMarketDescription({ value: desc.value, closesAt: desc.closesAt, outcomes: desc.outcomes, token: desc.token, distribution: desc.distribution, question: desc.question, image: desc.image, arbitrator: desc.arbitrator, fee: desc.fee, treasuryFee: desc.treasuryFee, treasury: desc.treasury, realitio: desc.realitio, realitioTimeout: desc.realitioTimeout, manager: desc.manager }) ); // transferring funds desc.token.safeTransferFrom(msg.sender, address(this), desc.value); return marketId; } function createMarketWithETH(CreateMarketDescription calldata desc) external payable returns (uint256) { require(address(desc.token) == address(WETH), "Market token is not WETH"); require(msg.value == desc.value, "value does not match arguments"); uint256 marketId = _createMarket( CreateMarketDescription({ value: desc.value, closesAt: desc.closesAt, outcomes: desc.outcomes, token: desc.token, distribution: desc.distribution, question: desc.question, image: desc.image, arbitrator: desc.arbitrator, fee: desc.fee, treasuryFee: desc.treasuryFee, treasury: desc.treasury, realitio: desc.realitio, realitioTimeout: desc.realitioTimeout, manager: desc.manager }) ); // transferring funds IWETH(WETH).deposit{value: msg.value}(); return marketId; } function mintAndCreateMarket(CreateMarketDescription calldata desc) external returns (uint256) { // mint the amount of tokens to the user IFantasyERC20(address(desc.token)).mint(msg.sender, desc.value); uint256 marketId = _createMarket(desc); // transferring funds desc.token.safeTransferFrom(msg.sender, address(this), desc.value); return marketId; } /// @dev Calculates the number of shares bought with "amount" balance function calcBuyAmount( uint256 amount, uint256 marketId, uint256 outcomeId ) public view returns (uint256) { uint256[] memory outcomesShares = getMarketOutcomesShares(marketId); uint256 fee = getMarketFee(marketId); uint256 amountMinusFees = amount - ((amount * fee) / ONE); uint256 buyTokenPoolBalance = outcomesShares[outcomeId]; uint256 endingOutcomeBalance = buyTokenPoolBalance * ONE; for (uint256 i = 0; i < outcomesShares.length; ++i) { if (i != outcomeId) { uint256 outcomeShares = outcomesShares[i]; endingOutcomeBalance = (endingOutcomeBalance * outcomeShares).ceildiv(outcomeShares + amountMinusFees); } } require(endingOutcomeBalance > 0, "must have non-zero balances"); return buyTokenPoolBalance + amountMinusFees - (endingOutcomeBalance.ceildiv(ONE)); } /// @dev Calculates the number of shares needed to be sold in order to receive "amount" in balance function calcSellAmount( uint256 amount, uint256 marketId, uint256 outcomeId ) public view returns (uint256 outcomeTokenSellAmount) { uint256[] memory outcomesShares = getMarketOutcomesShares(marketId); uint256 fee = getMarketFee(marketId); uint256 amountPlusFees = (amount * ONE) / (ONE - fee); uint256 sellTokenPoolBalance = outcomesShares[outcomeId]; uint256 endingOutcomeBalance = sellTokenPoolBalance * ONE; for (uint256 i = 0; i < outcomesShares.length; ++i) { if (i != outcomeId) { uint256 outcomeShares = outcomesShares[i]; endingOutcomeBalance = (endingOutcomeBalance * outcomeShares).ceildiv(outcomeShares - amountPlusFees); } } require(endingOutcomeBalance > 0, "must have non-zero balances"); return amountPlusFees + endingOutcomeBalance.ceildiv(ONE) - sellTokenPoolBalance; } /// @dev Buy shares of a market outcome function _buy( uint256 marketId, uint256 outcomeId, uint256 minOutcomeSharesToBuy, uint256 value ) private timeTransitions(marketId) atState(marketId, MarketState.open) { Market storage market = markets[marketId]; uint256 shares = calcBuyAmount(value, marketId, outcomeId); require(shares >= minOutcomeSharesToBuy, "minimum buy amount not reached"); require(shares > 0, "shares amount is 0"); // subtracting fee from transaction value uint256 feeAmount = (value * market.fees.fee) / ONE; market.fees.poolWeight = market.fees.poolWeight + feeAmount; uint256 valueMinusFees = value - feeAmount; uint256 treasuryFeeAmount = (value * market.fees.treasuryFee) / ONE; valueMinusFees = valueMinusFees - treasuryFeeAmount; MarketOutcome storage outcome = market.outcomes[outcomeId]; // Funding market shares with received funds addSharesToMarket(marketId, valueMinusFees); require(outcome.shares.available >= shares, "shares pool balance is too low"); transferOutcomeSharesfromPool(msg.sender, marketId, outcomeId, shares); emit MarketActionTx(msg.sender, MarketAction.buy, marketId, outcomeId, shares, value, block.timestamp); emitMarketActionEvents(marketId); // transfering treasury fee to treasury address if (treasuryFeeAmount > 0) { market.token.safeTransfer(market.fees.treasury, treasuryFeeAmount); } } /// @dev Buy shares of a market outcome function buy( uint256 marketId, uint256 outcomeId, uint256 minOutcomeSharesToBuy, uint256 value ) external nonReentrant { Market storage market = markets[marketId]; market.token.safeTransferFrom(msg.sender, address(this), value); _buy(marketId, outcomeId, minOutcomeSharesToBuy, value); } function buyWithETH( uint256 marketId, uint256 outcomeId, uint256 minOutcomeSharesToBuy ) external payable isWETHMarket(marketId) nonReentrant { uint256 value = msg.value; // wrapping and depositing funds IWETH(WETH).deposit{value: value}(); _buy(marketId, outcomeId, minOutcomeSharesToBuy, value); } /// @dev Sell shares of a market outcome function _sell( uint256 marketId, uint256 outcomeId, uint256 value, uint256 maxOutcomeSharesToSell ) private timeTransitions(marketId) atState(marketId, MarketState.open) { Market storage market = markets[marketId]; MarketOutcome storage outcome = market.outcomes[outcomeId]; uint256 shares = calcSellAmount(value, marketId, outcomeId); require(shares <= maxOutcomeSharesToSell, "maximum sell amount exceeded"); require(shares > 0, "shares amount is 0"); require(outcome.shares.holders[msg.sender] >= shares, "insufficient shares balance"); transferOutcomeSharesToPool(msg.sender, marketId, outcomeId, shares); // adding fees to transaction value uint256 fee = getMarketFee(marketId); { uint256 feeAmount = (value * market.fees.fee) / (ONE - fee); market.fees.poolWeight = market.fees.poolWeight + feeAmount; } uint256 valuePlusFees = value + (value * fee) / (ONE - fee); require(market.balance >= valuePlusFees, "insufficient market balance"); // Rebalancing market shares removeSharesFromMarket(marketId, valuePlusFees); emit MarketActionTx(msg.sender, MarketAction.sell, marketId, outcomeId, shares, value, block.timestamp); emitMarketActionEvents(marketId); { uint256 treasuryFeeAmount = (value * market.fees.treasuryFee) / (ONE - fee); // transfering treasury fee to treasury address if (treasuryFeeAmount > 0) { market.token.safeTransfer(market.fees.treasury, treasuryFeeAmount); } } } function sell( uint256 marketId, uint256 outcomeId, uint256 value, uint256 maxOutcomeSharesToSell ) external nonReentrant { _sell(marketId, outcomeId, value, maxOutcomeSharesToSell); // Transferring funds to user Market storage market = markets[marketId]; market.token.safeTransfer(msg.sender, value); } function sellToETH( uint256 marketId, uint256 outcomeId, uint256 value, uint256 maxOutcomeSharesToSell ) external isWETHMarket(marketId) nonReentrant { Market storage market = markets[marketId]; require(address(market.token) == address(WETH), "market token is not WETH"); _sell(marketId, outcomeId, value, maxOutcomeSharesToSell); IWETH(WETH).withdraw(value); (bool sent, ) = payable(msg.sender).call{value: value}(""); require(sent, "Failed to send Ether"); } /// @dev Adds liquidity to a market - external function _addLiquidity( uint256 marketId, uint256 value, uint256[] memory distribution ) private timeTransitions(marketId) atState(marketId, MarketState.open) { Market storage market = markets[marketId]; require(value > 0, "stake has to be greater than 0."); uint256 liquidityAmount; uint256[] memory outcomesShares = getMarketOutcomesShares(marketId); uint256[] memory sendBackAmounts = new uint256[](outcomesShares.length); uint256 poolWeight = 0; if (market.liquidity > 0) { require(distribution.length == 0, "market already funded"); // part of the liquidity is exchanged for outcome shares if market is not balanced for (uint256 i = 0; i < outcomesShares.length; ++i) { uint256 outcomeShares = outcomesShares[i]; if (poolWeight < outcomeShares) poolWeight = outcomeShares; } for (uint256 i = 0; i < outcomesShares.length; ++i) { uint256 remaining = (value * outcomesShares[i]) / poolWeight; sendBackAmounts[i] = value - remaining; } liquidityAmount = (value * market.liquidity) / poolWeight; // re-balancing fees pool rebalanceFeesPool(marketId, liquidityAmount, MarketAction.addLiquidity); } else { // funding market with no liquidity if (distribution.length > 0) { require(distribution.length == outcomesShares.length, "distribution length not matching"); uint256 maxHint = 0; for (uint256 i = 0; i < distribution.length; ++i) { uint256 hint = distribution[i]; if (maxHint < hint) maxHint = hint; } for (uint256 i = 0; i < distribution.length; ++i) { uint256 remaining = (value * distribution[i]) / maxHint; require(remaining > 0, "must hint a valid distribution"); sendBackAmounts[i] = value - remaining; } } // funding market with total liquidity amount liquidityAmount = value; } // funding market market.liquidity = market.liquidity + liquidityAmount; market.liquidityShares[msg.sender] = market.liquidityShares[msg.sender] + liquidityAmount; addSharesToMarket(marketId, value); { // transform sendBackAmounts to array of amounts added for (uint256 i = 0; i < sendBackAmounts.length; ++i) { if (sendBackAmounts[i] > 0) { transferOutcomeSharesfromPool(msg.sender, marketId, i, sendBackAmounts[i]); } } // emitting events, using outcome 0 for price reference uint256 referencePrice = getMarketOutcomePrice(marketId, 0); for (uint256 i = 0; i < sendBackAmounts.length; ++i) { if (sendBackAmounts[i] > 0) { // outcome price = outcome shares / reference outcome shares * reference outcome price uint256 outcomePrice = (referencePrice * market.outcomes[0].shares.available) / market.outcomes[i].shares.available; emit MarketActionTx( msg.sender, MarketAction.buy, marketId, i, sendBackAmounts[i], (sendBackAmounts[i] * outcomePrice) / ONE, // price * shares block.timestamp ); } } } uint256 liquidityPrice = getMarketLiquidityPrice(marketId); uint256 liquidityValue = (liquidityPrice * liquidityAmount) / ONE; emit MarketActionTx( msg.sender, MarketAction.addLiquidity, marketId, 0, liquidityAmount, liquidityValue, block.timestamp ); emit MarketLiquidity(marketId, market.liquidity, liquidityPrice, block.timestamp); } function addLiquidity(uint256 marketId, uint256 value) external { uint256[] memory distribution = new uint256[](0); _addLiquidity(marketId, value, distribution); Market storage market = markets[marketId]; market.token.safeTransferFrom(msg.sender, address(this), value); } function addLiquidityWithETH(uint256 marketId) external payable isWETHMarket(marketId) { uint256 value = msg.value; uint256[] memory distribution = new uint256[](0); _addLiquidity(marketId, value, distribution); // wrapping and depositing funds IWETH(WETH).deposit{value: value}(); } /// @dev Removes liquidity to a market - external function _removeLiquidity(uint256 marketId, uint256 shares) private timeTransitions(marketId) atState(marketId, MarketState.open) returns (uint256) { Market storage market = markets[marketId]; require(market.liquidityShares[msg.sender] >= shares, "insufficient shares balance"); // claiming any pending fees claimFees(marketId); // re-balancing fees pool rebalanceFeesPool(marketId, shares, MarketAction.removeLiquidity); uint256[] memory outcomesShares = getMarketOutcomesShares(marketId); uint256[] memory sendAmounts = new uint256[](outcomesShares.length); uint256 poolWeight = MAX_UINT_256; // part of the liquidity is exchanged for outcome shares if market is not balanced for (uint256 i = 0; i < outcomesShares.length; ++i) { uint256 outcomeShares = outcomesShares[i]; if (poolWeight > outcomeShares) poolWeight = outcomeShares; } uint256 liquidityAmount = (shares * poolWeight) / market.liquidity; for (uint256 i = 0; i < outcomesShares.length; ++i) { sendAmounts[i] = (outcomesShares[i] * shares) / market.liquidity; sendAmounts[i] = sendAmounts[i] - liquidityAmount; } // removing liquidity from market removeSharesFromMarket(marketId, liquidityAmount); market.liquidity = market.liquidity - shares; // removing liquidity tokens from market creator market.liquidityShares[msg.sender] = market.liquidityShares[msg.sender] - shares; for (uint256 i = 0; i < outcomesShares.length; ++i) { if (sendAmounts[i] > 0) { transferOutcomeSharesfromPool(msg.sender, marketId, i, sendAmounts[i]); } } // emitting events, using outcome 0 for price reference uint256 referencePrice = getMarketOutcomePrice(marketId, 0); for (uint256 i = 0; i < outcomesShares.length; ++i) { if (sendAmounts[i] > 0) { // outcome price = outcome shares / reference outcome shares * reference outcome price uint256 outcomePrice = (referencePrice * market.outcomes[0].shares.available) / market.outcomes[i].shares.available; emit MarketActionTx( msg.sender, MarketAction.buy, marketId, i, sendAmounts[i], (sendAmounts[i] * outcomePrice) / ONE, // price * shares block.timestamp ); } } emit MarketActionTx( msg.sender, MarketAction.removeLiquidity, marketId, 0, shares, liquidityAmount, block.timestamp ); emit MarketLiquidity(marketId, market.liquidity, getMarketLiquidityPrice(marketId), block.timestamp); return liquidityAmount; } function removeLiquidity(uint256 marketId, uint256 shares) external { uint256 value = _removeLiquidity(marketId, shares); // transferring user funds from liquidity removed Market storage market = markets[marketId]; market.token.safeTransfer(msg.sender, value); } function removeLiquidityToETH(uint256 marketId, uint256 shares) external isWETHMarket(marketId) { uint256 value = _removeLiquidity(marketId, shares); // unwrapping and transferring user funds from liquidity removed IWETH(WETH).withdraw(value); (bool sent, ) = payable(msg.sender).call{value: value}(""); require(sent, "Failed to send Ether"); } /// @dev Fetches winning outcome from Realitio and resolves the market function resolveMarketOutcome(uint256 marketId) external timeTransitions(marketId) atState(marketId, MarketState.closed) transitionNext(marketId) returns (uint256) { Market storage market = markets[marketId]; // will fail if question is not finalized uint256 outcomeId = uint256(market.resolution.realitio.resultFor(market.resolution.questionId)); market.resolution.outcomeId = outcomeId; emit MarketResolved(msg.sender, marketId, outcomeId, block.timestamp, false); emitMarketActionEvents(marketId); return market.resolution.outcomeId; } /// @dev overrides market resolution, instead of using realitio function adminResolveMarketOutcome(uint256 marketId, uint256 outcomeId) external notAtState(marketId, MarketState.resolved) transitionLast(marketId) returns (uint256) { Market storage market = markets[marketId]; require(market.manager.isAllowedToResolveMarket(market.token, msg.sender), "not allowed to resolve market"); market.resolution.outcomeId = outcomeId; emit MarketResolved(msg.sender, marketId, outcomeId, block.timestamp, true); emitMarketActionEvents(marketId); return market.resolution.outcomeId; } /// @dev Allows holders of resolved outcome shares to claim earnings. function _claimWinnings(uint256 marketId) private atState(marketId, MarketState.resolved) returns (uint256) { Market storage market = markets[marketId]; MarketOutcome storage resolvedOutcome = market.outcomes[market.resolution.outcomeId]; require(resolvedOutcome.shares.holders[msg.sender] > 0, "user doesn't hold outcome shares"); require(resolvedOutcome.shares.claims[msg.sender] == false, "user already claimed winnings"); // 1 share => price = 1 uint256 value = resolvedOutcome.shares.holders[msg.sender]; // assuring market has enough funds require(market.balance >= value, "insufficient market balance"); market.balance = market.balance - value; resolvedOutcome.shares.claims[msg.sender] = true; emit MarketActionTx( msg.sender, MarketAction.claimWinnings, marketId, market.resolution.outcomeId, resolvedOutcome.shares.holders[msg.sender], value, block.timestamp ); return value; } function claimWinnings(uint256 marketId) external { uint256 value = _claimWinnings(marketId); // transferring user funds from winnings claimed Market storage market = markets[marketId]; market.token.safeTransfer(msg.sender, value); } function claimWinningsToETH(uint256 marketId) external isWETHMarket(marketId) { uint256 value = _claimWinnings(marketId); // unwrapping and transferring user funds from winnings claimed IWETH(WETH).withdraw(value); (bool sent, ) = payable(msg.sender).call{value: value}(""); require(sent, "Failed to send Ether"); } /// @dev Allows holders of voided outcome shares to claim balance back. function _claimVoidedOutcomeShares(uint256 marketId, uint256 outcomeId) private atState(marketId, MarketState.resolved) returns (uint256) { Market storage market = markets[marketId]; MarketOutcome storage outcome = market.outcomes[outcomeId]; require(isMarketVoided(marketId), "market is not voided"); require(outcome.shares.holders[msg.sender] > 0, "user doesn't hold outcome shares"); require(outcome.shares.voidedClaims[msg.sender] == false, "user already claimed shares"); // voided market - shares are valued at last market price uint256 price = getMarketOutcomePrice(marketId, outcomeId); uint256 value = (price * outcome.shares.holders[msg.sender]) / ONE; // assuring market has enough funds require(market.balance >= value, "insufficient market balance"); market.balance = market.balance - value; outcome.shares.voidedClaims[msg.sender] = true; emit MarketActionTx( msg.sender, MarketAction.claimVoided, marketId, outcomeId, outcome.shares.holders[msg.sender], value, block.timestamp ); return value; } function claimVoidedOutcomeShares(uint256 marketId, uint256 outcomeId) external { uint256 value = _claimVoidedOutcomeShares(marketId, outcomeId); // transferring user funds from voided outcome shares claimed Market storage market = markets[marketId]; market.token.safeTransfer(msg.sender, value); } function claimVoidedOutcomeSharesToETH(uint256 marketId, uint256 outcomeId) external isWETHMarket(marketId) { uint256 value = _claimVoidedOutcomeShares(marketId, outcomeId); // unwrapping and transferring user funds from voided outcome shares claimed IWETH(WETH).withdraw(value); (bool sent, ) = payable(msg.sender).call{value: value}(""); require(sent, "Failed to send Ether"); } /// @dev Allows liquidity providers to claim earnings from liquidity providing. function _claimLiquidity(uint256 marketId) private atState(marketId, MarketState.resolved) returns (uint256) { Market storage market = markets[marketId]; // claiming any pending fees claimFees(marketId); require(market.liquidityShares[msg.sender] > 0, "user doesn't hold shares"); require(market.liquidityClaims[msg.sender] == false, "user already claimed shares"); // value = total resolved outcome pool shares * pool share (%) uint256 liquidityPrice = getMarketLiquidityPrice(marketId); uint256 value = (liquidityPrice * market.liquidityShares[msg.sender]) / ONE; // assuring market has enough funds require(market.balance >= value, "insufficient market balance"); market.balance = market.balance - value; market.liquidityClaims[msg.sender] = true; emit MarketActionTx( msg.sender, MarketAction.claimLiquidity, marketId, 0, market.liquidityShares[msg.sender], value, block.timestamp ); return value; } function claimLiquidity(uint256 marketId) external { uint256 value = _claimLiquidity(marketId); // transferring user funds from liquidity claimed Market storage market = markets[marketId]; market.token.safeTransfer(msg.sender, value); } function claimLiquidityToETH(uint256 marketId) external isWETHMarket(marketId) { uint256 value = _claimLiquidity(marketId); // unwrapping and transferring user funds from liquidity claimed IWETH(WETH).withdraw(value); (bool sent, ) = payable(msg.sender).call{value: value}(""); require(sent, "Failed to send Ether"); } /// @dev Allows liquidity providers to claim their fees share from fees pool function _claimFees(uint256 marketId) private returns (uint256) { Market storage market = markets[marketId]; uint256 claimableFees = getUserClaimableFees(marketId, msg.sender); if (claimableFees > 0) { market.fees.claimed[msg.sender] = market.fees.claimed[msg.sender] + claimableFees; } emit MarketActionTx( msg.sender, MarketAction.claimFees, marketId, 0, market.liquidityShares[msg.sender], claimableFees, block.timestamp ); return claimableFees; } function claimFees(uint256 marketId) public nonReentrant { uint256 value = _claimFees(marketId); // transferring user funds from fees claimed Market storage market = markets[marketId]; market.token.safeTransfer(msg.sender, value); } function claimFeesToETH(uint256 marketId) public isWETHMarket(marketId) nonReentrant { uint256 value = _claimFees(marketId); // unwrapping and transferring user funds from fees claimed IWETH(WETH).withdraw(value); (bool sent, ) = payable(msg.sender).call{value: value}(""); require(sent, "Failed to send Ether"); } /// @dev Rebalances the fees pool. Needed in every AddLiquidity / RemoveLiquidity call function rebalanceFeesPool( uint256 marketId, uint256 liquidityShares, MarketAction action ) private { Market storage market = markets[marketId]; uint256 poolWeight = (liquidityShares * market.fees.poolWeight) / market.liquidity; if (action == MarketAction.addLiquidity) { market.fees.poolWeight = market.fees.poolWeight + poolWeight; market.fees.claimed[msg.sender] = market.fees.claimed[msg.sender] + poolWeight; } else { market.fees.poolWeight = market.fees.poolWeight - poolWeight; market.fees.claimed[msg.sender] = market.fees.claimed[msg.sender] - poolWeight; } } /// @dev Transitions market to next state function nextState(uint256 marketId) private { Market storage market = markets[marketId]; market.state = MarketState(uint256(market.state) + 1); } /// @dev Transitions market to last state function lastState(uint256 marketId) private { Market storage market = markets[marketId]; market.state = MarketState.resolved; } /// @dev Emits a outcome price event for every outcome function emitMarketActionEvents(uint256 marketId) private { Market storage market = markets[marketId]; uint256[] memory outcomeShares = new uint256[](market.outcomeCount); for (uint256 i = 0; i < market.outcomeCount; ++i) { outcomeShares[i] = market.outcomes[i].shares.available; } emit MarketOutcomeShares(marketId, block.timestamp, outcomeShares, market.liquidity); } /// @dev Adds outcome shares to shares pool function addSharesToMarket(uint256 marketId, uint256 shares) private { Market storage market = markets[marketId]; for (uint256 i = 0; i < market.outcomeCount; ++i) { MarketOutcome storage outcome = market.outcomes[i]; outcome.shares.available = outcome.shares.available + shares; outcome.shares.total = outcome.shares.total + shares; // only adding to market total shares, the available remains market.sharesAvailable = market.sharesAvailable + shares; } market.balance = market.balance + shares; } /// @dev Removes outcome shares from shares pool function removeSharesFromMarket(uint256 marketId, uint256 shares) private { Market storage market = markets[marketId]; for (uint256 i = 0; i < market.outcomeCount; ++i) { MarketOutcome storage outcome = market.outcomes[i]; outcome.shares.available = outcome.shares.available - shares; outcome.shares.total = outcome.shares.total - shares; // only subtracting from market total shares, the available remains market.sharesAvailable = market.sharesAvailable - shares; } market.balance = market.balance - shares; } /// @dev Transfer outcome shares from pool to user balance function transferOutcomeSharesfromPool( address user, uint256 marketId, uint256 outcomeId, uint256 shares ) private { Market storage market = markets[marketId]; MarketOutcome storage outcome = market.outcomes[outcomeId]; // transfering shares from shares pool to user outcome.shares.holders[user] = outcome.shares.holders[user] + shares; outcome.shares.available = outcome.shares.available - shares; market.sharesAvailable = market.sharesAvailable - shares; } /// @dev Transfer outcome shares from user balance back to pool function transferOutcomeSharesToPool( address user, uint256 marketId, uint256 outcomeId, uint256 shares ) private { Market storage market = markets[marketId]; MarketOutcome storage outcome = market.outcomes[outcomeId]; // adding shares back to pool outcome.shares.holders[user] = outcome.shares.holders[user] - shares; outcome.shares.available = outcome.shares.available + shares; market.sharesAvailable = market.sharesAvailable + shares; } // ------ Core Functions End ------ // ------ Getters ------ function getUserMarketShares(uint256 marketId, address user) external view returns (uint256, uint256[] memory) { Market storage market = markets[marketId]; uint256[] memory outcomeShares = new uint256[](market.outcomeCount); for (uint256 i = 0; i < market.outcomeCount; ++i) { outcomeShares[i] = market.outcomes[i].shares.holders[user]; } return (market.liquidityShares[user], outcomeShares); } function getUserClaimStatus(uint256 marketId, address user) external view returns ( bool, bool, bool, bool, uint256 ) { Market storage market = markets[marketId]; // market still not resolved if (market.state != MarketState.resolved) { return (false, false, false, false, getUserClaimableFees(marketId, user)); } MarketOutcome storage outcome = market.outcomes[market.resolution.outcomeId]; return ( outcome.shares.holders[user] > 0, outcome.shares.claims[user], market.liquidityShares[user] > 0, market.liquidityClaims[user], getUserClaimableFees(marketId, user) ); } function getUserLiquidityPoolShare(uint256 marketId, address user) external view returns (uint256) { Market storage market = markets[marketId]; return (market.liquidityShares[user] * ONE) / market.liquidity; } function getUserClaimableFees(uint256 marketId, address user) public view returns (uint256) { Market storage market = markets[marketId]; uint256 rawAmount = (market.fees.poolWeight * market.liquidityShares[user]) / market.liquidity; // No fees left to claim if (market.fees.claimed[user] > rawAmount) return 0; return rawAmount - market.fees.claimed[user]; } function getMarkets() external view returns (uint256[] memory) { return marketIds; } function getMarketData(uint256 marketId) external view returns ( MarketState, uint256, uint256, uint256, uint256, int256 ) { Market storage market = markets[marketId]; return ( market.state, market.closesAtTimestamp, market.liquidity, market.balance, market.sharesAvailable, getMarketResolvedOutcome(marketId) ); } function getMarketAltData(uint256 marketId) external view returns ( uint256, bytes32, uint256, IERC20, uint256, address, IRealityETH_ERC20, uint256, IPredictionMarketV3Manager ) { Market storage market = markets[marketId]; return ( market.fees.fee, market.resolution.questionId, uint256(market.resolution.questionId), market.token, market.fees.treasuryFee, market.fees.treasury, market.resolution.realitio, market.resolution.realitioTimeout, market.manager ); } function getMarketCreator(uint256 marketId) external view returns (address) { Market storage market = markets[marketId]; return market.creator; } function getMarketQuestion(uint256 marketId) external view returns (bytes32) { Market storage market = markets[marketId]; return (market.resolution.questionId); } function getMarketPrices(uint256 marketId) external view returns (uint256, uint256[] memory) { Market storage market = markets[marketId]; uint256[] memory prices = new uint256[](market.outcomeCount); for (uint256 i = 0; i < market.outcomeCount; ++i) { prices[i] = getMarketOutcomePrice(marketId, i); } return (getMarketLiquidityPrice(marketId), prices); } function getMarketShares(uint256 marketId) external view returns (uint256, uint256[] memory) { Market storage market = markets[marketId]; uint256[] memory outcomeShares = new uint256[](market.outcomeCount); for (uint256 i = 0; i < market.outcomeCount; ++i) { outcomeShares[i] = market.outcomes[i].shares.available; } return (market.liquidity, outcomeShares); } function getMarketLiquidityPrice(uint256 marketId) public view returns (uint256) { Market storage market = markets[marketId]; if (market.state == MarketState.resolved && !isMarketVoided(marketId)) { // resolved market, outcome prices are either 0 or 1 // final liquidity price = outcome shares / liquidity shares return (market.outcomes[market.resolution.outcomeId].shares.available * ONE) / market.liquidity; } // liquidity price = # outcomes / (liquidity * sum (1 / every outcome shares) uint256 marketSharesSum = 0; for (uint256 i = 0; i < market.outcomeCount; ++i) { MarketOutcome storage outcome = market.outcomes[i]; marketSharesSum = marketSharesSum + (ONE * ONE) / outcome.shares.available; } return (market.outcomeCount * ONE * ONE * ONE) / market.liquidity / marketSharesSum; } function getMarketResolvedOutcome(uint256 marketId) public view returns (int256) { Market storage market = markets[marketId]; // returning -1 if market still not resolved if (market.state != MarketState.resolved) { return -1; } return int256(market.resolution.outcomeId); } function isMarketVoided(uint256 marketId) public view returns (bool) { Market storage market = markets[marketId]; // market still not resolved, still in valid state if (market.state != MarketState.resolved) { return false; } // resolved market id does not match any of the market ids return market.resolution.outcomeId >= market.outcomeCount; } function getMarketFee(uint256 marketId) public view returns (uint256) { Market storage market = markets[marketId]; return market.fees.fee + market.fees.treasuryFee; } // ------ Outcome Getters ------ function getMarketOutcomeIds(uint256 marketId) external view returns (uint256[] memory) { Market storage market = markets[marketId]; uint256[] memory outcomeIds = new uint256[](market.outcomeCount); for (uint256 i = 0; i < market.outcomeCount; ++i) { outcomeIds[i] = i; } return outcomeIds; } function getMarketOutcomePrice(uint256 marketId, uint256 outcomeId) public view returns (uint256) { Market storage market = markets[marketId]; if (market.state == MarketState.resolved && !isMarketVoided(marketId)) { // resolved market, price is either 0 or 1 return outcomeId == market.resolution.outcomeId ? ONE : 0; } // outcome price = 1 / (1 + sum(outcome shares / every outcome shares)) uint256 div = ONE; for (uint256 i = 0; i < market.outcomeCount; ++i) { if (i == outcomeId) continue; div = div + (market.outcomes[outcomeId].shares.available * ONE) / market.outcomes[i].shares.available; } return (ONE * ONE) / div; } function getMarketOutcomeData(uint256 marketId, uint256 outcomeId) external view returns ( uint256, uint256, uint256 ) { Market storage market = markets[marketId]; MarketOutcome storage outcome = market.outcomes[outcomeId]; return (getMarketOutcomePrice(marketId, outcomeId), outcome.shares.available, outcome.shares.total); } function getMarketOutcomesShares(uint256 marketId) private view returns (uint256[] memory) { Market storage market = markets[marketId]; uint256[] memory shares = new uint256[](market.outcomeCount); for (uint256 i = 0; i < market.outcomeCount; ++i) { shares[i] = market.outcomes[i].shares.available; } return shares; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.8.0) (security/ReentrancyGuard.sol) pragma solidity ^0.8.0; /** * @dev Contract module that helps prevent reentrant calls to a function. * * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier * available, which can be applied to functions to make sure there are no nested * (reentrant) calls to them. * * Note that because there is a single `nonReentrant` guard, functions marked as * `nonReentrant` may not call one another. This can be worked around by making * those functions `private`, and then adding `external` `nonReentrant` entry * points to them. * * TIP: If you would like to learn more about reentrancy and alternative ways * to protect against it, check out our blog post * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul]. */ abstract contract ReentrancyGuard { // Booleans are more expensive than uint256 or any type that takes up a full // word because each write operation emits an extra SLOAD to first read the // slot's contents, replace the bits taken up by the boolean, and then write // back. This is the compiler's defense against contract upgrades and // pointer aliasing, and it cannot be disabled. // The values being non-zero value makes deployment a bit more expensive, // but in exchange the refund on every call to nonReentrant will be lower in // amount. Since refunds are capped to a percentage of the total // transaction's gas, it is best to keep them low in cases like this one, to // increase the likelihood of the full refund coming into effect. uint256 private constant _NOT_ENTERED = 1; uint256 private constant _ENTERED = 2; uint256 private _status; constructor() { _status = _NOT_ENTERED; } /** * @dev Prevents a contract from calling itself, directly or indirectly. * Calling a `nonReentrant` function from another `nonReentrant` * function is not supported. It is possible to prevent this from happening * by making the `nonReentrant` function external, and making it call a * `private` function that does the actual work. */ modifier nonReentrant() { _nonReentrantBefore(); _; _nonReentrantAfter(); } function _nonReentrantBefore() private { // On the first call to nonReentrant, _status will be _NOT_ENTERED require(_status != _ENTERED, "ReentrancyGuard: reentrant call"); // Any calls to nonReentrant after this point will fail _status = _ENTERED; } function _nonReentrantAfter() private { // By storing the original value once again, a refund is triggered (see // https://eips.ethereum.org/EIPS/eip-2200) _status = _NOT_ENTERED; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.8.0) (token/ERC20/utils/SafeERC20.sol) pragma solidity ^0.8.0; import "../IERC20.sol"; import "../extensions/draft-IERC20Permit.sol"; import "../../../utils/Address.sol"; /** * @title SafeERC20 * @dev Wrappers around ERC20 operations that throw on failure (when the token * contract returns false). Tokens that return no value (and instead revert or * throw on failure) are also supported, non-reverting calls are assumed to be * successful. * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract, * which allows you to call the safe operations as `token.safeTransfer(...)`, etc. */ library SafeERC20 { using Address for address; function safeTransfer( IERC20 token, address to, uint256 value ) internal { _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value)); } function safeTransferFrom( IERC20 token, address from, address to, uint256 value ) internal { _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value)); } /** * @dev Deprecated. This function has issues similar to the ones found in * {IERC20-approve}, and its usage is discouraged. * * Whenever possible, use {safeIncreaseAllowance} and * {safeDecreaseAllowance} instead. */ function safeApprove( IERC20 token, address spender, uint256 value ) internal { // safeApprove should only be called when setting an initial allowance, // or when resetting it to zero. To increase and decrease it, use // 'safeIncreaseAllowance' and 'safeDecreaseAllowance' require( (value == 0) || (token.allowance(address(this), spender) == 0), "SafeERC20: approve from non-zero to non-zero allowance" ); _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value)); } function safeIncreaseAllowance( IERC20 token, address spender, uint256 value ) internal { uint256 newAllowance = token.allowance(address(this), spender) + value; _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance)); } function safeDecreaseAllowance( IERC20 token, address spender, uint256 value ) internal { unchecked { uint256 oldAllowance = token.allowance(address(this), spender); require(oldAllowance >= value, "SafeERC20: decreased allowance below zero"); uint256 newAllowance = oldAllowance - value; _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance)); } } function safePermit( IERC20Permit token, address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) internal { uint256 nonceBefore = token.nonces(owner); token.permit(owner, spender, value, deadline, v, r, s); uint256 nonceAfter = token.nonces(owner); require(nonceAfter == nonceBefore + 1, "SafeERC20: permit did not succeed"); } /** * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement * on the return value: the return value is optional (but if data is returned, it must not be false). * @param token The token targeted by the call. * @param data The call data (encoded using abi.encode or one of its variants). */ function _callOptionalReturn(IERC20 token, bytes memory data) private { // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since // we're implementing it ourselves. We use {Address-functionCall} to perform this call, which verifies that // the target address contains contract code and also asserts for success in the low-level call. bytes memory returndata = address(token).functionCall(data, "SafeERC20: low-level call failed"); if (returndata.length > 0) { // Return data is optional require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed"); } } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.18; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; interface IFantasyERC20 is IERC20 { function mint(address account, uint256 amount) external; function burn(address account, uint256 amount) external; function claimTokens() external; function claimAndApproveTokens() external; function hasUserClaimedTokens(address user) external view returns (bool); function pause() external; function unpause() external; }
// SPDX-License-Identifier: GPL-3.0-only // Based on https://github.com/RealityETH/reality-eth-monorepo/blob/main/packages/contracts/development/contracts/IRealityETH_ERC20.sol pragma solidity ^0.8.18; interface IRealityETH_ERC20 { event LogAnswerReveal (bytes32 indexed question_id, address indexed user, bytes32 indexed answer_hash, bytes32 answer, uint256 nonce, uint256 bond); event LogCancelArbitration (bytes32 indexed question_id); event LogClaim (bytes32 indexed question_id, address indexed user, uint256 amount); event LogFinalize (bytes32 indexed question_id, bytes32 indexed answer); event LogFundAnswerBounty (bytes32 indexed question_id, uint256 bounty_added, uint256 bounty, address indexed user); event LogMinimumBond (bytes32 indexed question_id, uint256 min_bond); event LogNewAnswer (bytes32 answer, bytes32 indexed question_id, bytes32 history_hash, address indexed user, uint256 bond, uint256 ts, bool is_commitment); event LogNewQuestion (bytes32 indexed question_id, address indexed user, uint256 template_id, string question, bytes32 indexed content_hash, address arbitrator, uint32 timeout, uint32 opening_ts, uint256 nonce, uint256 created); event LogNewTemplate (uint256 indexed template_id, address indexed user, string question_text); event LogNotifyOfArbitrationRequest (bytes32 indexed question_id, address indexed user); event LogReopenQuestion (bytes32 indexed question_id, bytes32 indexed reopened_question_id); event LogSetQuestionFee (address arbitrator, uint256 amount); function askQuestion (uint256 template_id, string calldata question, address arbitrator, uint32 timeout, uint32 opening_ts, uint256 nonce) external returns (bytes32); function askQuestionERC20 (uint256 template_id, string calldata question, address arbitrator, uint32 timeout, uint32 opening_ts, uint256 nonce, uint256 tokens) external returns (bytes32); function askQuestionWithMinBondERC20 (uint256 template_id, string calldata question, address arbitrator, uint32 timeout, uint32 opening_ts, uint256 nonce, uint256 min_bond, uint256 tokens) external returns (bytes32); function assignWinnerAndSubmitAnswerByArbitrator (bytes32 question_id, bytes32 answer, address payee_if_wrong, bytes32 last_history_hash, bytes32 last_answer_or_commitment_id, address last_answerer) external; function cancelArbitration (bytes32 question_id) external; function claimMultipleAndWithdrawBalance (bytes32[] calldata question_ids, uint256[] calldata lengths, bytes32[] calldata hist_hashes, address[] calldata addrs, uint256[] calldata bonds, bytes32[] calldata answers) external; function claimWinnings (bytes32 question_id, bytes32[] calldata history_hashes, address[] calldata addrs, uint256[] calldata bonds, bytes32[] calldata answers) external; function createTemplate (string calldata content) external returns (uint256); function createTemplateAndAskQuestion (string calldata content, string calldata question, address arbitrator, uint32 timeout, uint32 opening_ts, uint256 nonce) external returns (bytes32); function fundAnswerBountyERC20 (bytes32 question_id, uint256 tokens) external; function notifyOfArbitrationRequest (bytes32 question_id, address requester, uint256 max_previous) external; function reopenQuestionERC20 (uint256 template_id, string calldata question, address arbitrator, uint32 timeout, uint32 opening_ts, uint256 nonce, uint256 min_bond, bytes32 reopens_question_id, uint256 tokens) external returns (bytes32); function setQuestionFee (uint256 fee) external; function setToken (address _token) external; function submitAnswerByArbitrator (bytes32 question_id, bytes32 answer, address answerer) external; function submitAnswerCommitmentERC20 (bytes32 question_id, bytes32 answer_hash, uint256 max_previous, address _answerer, uint256 tokens) external; function submitAnswerERC20 (bytes32 question_id, bytes32 answer, uint256 max_previous, uint256 tokens) external; function submitAnswerForERC20 (bytes32 question_id, bytes32 answer, uint256 max_previous, address answerer, uint256 tokens) external; function submitAnswerReveal (bytes32 question_id, bytes32 answer, uint256 nonce, uint256 bond) external; function arbitrator_question_fees (address) external view returns (uint256); function commitments (bytes32) external view returns (uint32 reveal_ts, bool is_revealed, bytes32 revealed_answer); function getArbitrator (bytes32 question_id) external view returns (address); function getBestAnswer (bytes32 question_id) external view returns (bytes32); function getBond (bytes32 question_id) external view returns (uint256); function getBounty (bytes32 question_id) external view returns (uint256); function getContentHash (bytes32 question_id) external view returns (bytes32); function getFinalAnswer (bytes32 question_id) external view returns (bytes32); function getFinalAnswerIfMatches (bytes32 question_id, bytes32 content_hash, address arbitrator, uint32 min_timeout, uint256 min_bond) external view returns (bytes32); function getFinalizeTS (bytes32 question_id) external view returns (uint32); function getHistoryHash (bytes32 question_id) external view returns (bytes32); function getMinBond (bytes32 question_id) external view returns (uint256); function getOpeningTS (bytes32 question_id) external view returns (uint32); function getTimeout (bytes32 question_id) external view returns (uint32); function isFinalized (bytes32 question_id) external view returns (bool); function isPendingArbitration (bytes32 question_id) external view returns (bool); function isSettledTooSoon (bytes32 question_id) external view returns (bool); function question_claims (bytes32) external view returns (address payee, uint256 last_bond, uint256 queued_funds); function questions (bytes32) external view returns (bytes32 content_hash, address arbitrator, uint32 opening_ts, uint32 timeout, uint32 finalize_ts, bool is_pending_arbitration, uint256 bounty, bytes32 best_answer, bytes32 history_hash, uint256 bond, uint256 min_bond); function reopened_questions (bytes32) external view returns (bytes32); function reopener_questions (bytes32) external view returns (bool); function resultFor (bytes32 question_id) external view returns (bytes32); function resultForOnceSettled (bytes32 question_id) external view returns (bytes32); function template_hashes (uint256) external view returns (bytes32); function templates (uint256) external view returns (uint256); }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.18; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; interface IPredictionMarketV3Manager { function isAllowedToCreateMarket(IERC20 token, address user) external view returns (bool); function isAllowedToResolveMarket(IERC20 token, address user) external view returns (bool); function isIERC20TokenSocial(IERC20 token) external view returns (bool); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `from` to `to` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address from, address to, uint256 amount ) external returns (bool); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/draft-IERC20Permit.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in * https://eips.ethereum.org/EIPS/eip-2612[EIP-2612]. * * Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by * presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't * need to send a transaction, and thus is not required to hold Ether at all. */ interface IERC20Permit { /** * @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens, * given ``owner``'s signed approval. * * IMPORTANT: The same issues {IERC20-approve} has related to transaction * ordering also apply here. * * Emits an {Approval} event. * * Requirements: * * - `spender` cannot be the zero address. * - `deadline` must be a timestamp in the future. * - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` * over the EIP712-formatted function arguments. * - the signature must use ``owner``'s current nonce (see {nonces}). * * For more information on the signature format, see the * https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP * section]. */ function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; /** * @dev Returns the current nonce for `owner`. This value must be * included whenever a signature is generated for {permit}. * * Every successful call to {permit} increases ``owner``'s nonce by one. This * prevents a signature from being used multiple times. */ function nonces(address owner) external view returns (uint256); /** * @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}. */ // solhint-disable-next-line func-name-mixedcase function DOMAIN_SEPARATOR() external view returns (bytes32); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.8.0) (utils/Address.sol) pragma solidity ^0.8.1; /** * @dev Collection of functions related to the address type */ library Address { /** * @dev Returns true if `account` is a contract. * * [IMPORTANT] * ==== * It is unsafe to assume that an address for which this function returns * false is an externally-owned account (EOA) and not a contract. * * Among others, `isContract` will return false for the following * types of addresses: * * - an externally-owned account * - a contract in construction * - an address where a contract will be created * - an address where a contract lived, but was destroyed * ==== * * [IMPORTANT] * ==== * You shouldn't rely on `isContract` to protect against flash loan attacks! * * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract * constructor. * ==== */ function isContract(address account) internal view returns (bool) { // This method relies on extcodesize/address.code.length, which returns 0 // for contracts in construction, since the code is only stored at the end // of the constructor execution. return account.code.length > 0; } /** * @dev Replacement for Solidity's `transfer`: sends `amount` wei to * `recipient`, forwarding all available gas and reverting on errors. * * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost * of certain opcodes, possibly making contracts go over the 2300 gas limit * imposed by `transfer`, making them unable to receive funds via * `transfer`. {sendValue} removes this limitation. * * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. * * IMPORTANT: because control is transferred to `recipient`, care must be * taken to not create reentrancy vulnerabilities. Consider using * {ReentrancyGuard} or the * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. */ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{value: amount}(""); require(success, "Address: unable to send value, recipient may have reverted"); } /** * @dev Performs a Solidity function call using a low level `call`. A * plain `call` is an unsafe replacement for a function call: use this * function instead. * * If `target` reverts with a revert reason, it is bubbled up by this * function (like regular Solidity function calls). * * Returns the raw returned data. To convert to the expected return value, * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. * * Requirements: * * - `target` must be a contract. * - calling `target` with `data` must not revert. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCallWithValue(target, data, 0, "Address: low-level call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with * `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { return functionCallWithValue(target, data, 0, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but also transferring `value` wei to `target`. * * Requirements: * * - the calling contract must have an ETH balance of at least `value`. * - the called Solidity function must be `payable`. * * _Available since v3.1._ */ function functionCallWithValue( address target, bytes memory data, uint256 value ) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } /** * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but * with `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCallWithValue( address target, bytes memory data, uint256 value, string memory errorMessage ) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); (bool success, bytes memory returndata) = target.call{value: value}(data); return verifyCallResultFromTarget(target, success, returndata, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) { return functionStaticCall(target, data, "Address: low-level static call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall( address target, bytes memory data, string memory errorMessage ) internal view returns (bytes memory) { (bool success, bytes memory returndata) = target.staticcall(data); return verifyCallResultFromTarget(target, success, returndata, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a delegate call. * * _Available since v3.4._ */ function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) { return functionDelegateCall(target, data, "Address: low-level delegate call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], * but performing a delegate call. * * _Available since v3.4._ */ function functionDelegateCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { (bool success, bytes memory returndata) = target.delegatecall(data); return verifyCallResultFromTarget(target, success, returndata, errorMessage); } /** * @dev Tool to verify that a low level call to smart-contract was successful, and revert (either by bubbling * the revert reason or using the provided one) in case of unsuccessful call or if target was not a contract. * * _Available since v4.8._ */ function verifyCallResultFromTarget( address target, bool success, bytes memory returndata, string memory errorMessage ) internal view returns (bytes memory) { if (success) { if (returndata.length == 0) { // only check isContract if the call was successful and the return data is empty // otherwise we already know that it was a contract require(isContract(target), "Address: call to non-contract"); } return returndata; } else { _revert(returndata, errorMessage); } } /** * @dev Tool to verify that a low level call was successful, and revert if it wasn't, either by bubbling the * revert reason or using the provided one. * * _Available since v4.3._ */ function verifyCallResult( bool success, bytes memory returndata, string memory errorMessage ) internal pure returns (bytes memory) { if (success) { return returndata; } else { _revert(returndata, errorMessage); } } function _revert(bytes memory returndata, string memory errorMessage) private pure { // Look for revert reason and bubble it up if present if (returndata.length > 0) { // The easiest way to bubble the revert reason is using memory via assembly /// @solidity memory-safe-assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } }
{ "viaIR": false, "codegen": "yul", "remappings": [ "ds-test/=lib/forge-std/lib/ds-test/src/", "forge-std/=lib/forge-std/src/", "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/", "@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/", "@reality.eth/contracts/=lib/reality-eth-monorepo/packages/contracts/", "@ensdomains/=node_modules/@ensdomains/", "hardhat/=node_modules/hardhat/", "openzeppelin-contracts-upgradeable.git/=lib/openzeppelin-contracts-upgradeable.git/", "openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/", "openzeppelin-contracts.git/=lib/openzeppelin-contracts.git/", "openzeppelin-contracts/=lib/openzeppelin-contracts/", "reality-eth-monorepo/=lib/reality-eth-monorepo/" ], "evmVersion": "paris", "outputSelection": { "*": { "*": [ "abi" ] } }, "optimizer": { "enabled": true, "mode": "3", "fallback_to_optimizing_for_size": false, "disable_system_request_memoization": true }, "metadata": {}, "libraries": {}, "detectMissingLibraries": false, "enableEraVMExtensions": false, "forceEVMLA": false }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"contract IWETH","name":"_WETH","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"enum PredictionMarketV3.MarketAction","name":"action","type":"uint8"},{"indexed":true,"internalType":"uint256","name":"marketId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"outcomeId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"shares","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"MarketActionTx","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"marketId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"outcomes","type":"uint256"},{"indexed":false,"internalType":"string","name":"question","type":"string"},{"indexed":false,"internalType":"string","name":"image","type":"string"},{"indexed":false,"internalType":"contract IERC20","name":"token","type":"address"}],"name":"MarketCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"marketId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"price","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"MarketLiquidity","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"marketId","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"outcomeId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"MarketOutcomePrice","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"marketId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"},{"indexed":false,"internalType":"uint256[]","name":"outcomeShares","type":"uint256[]"},{"indexed":false,"internalType":"uint256","name":"liquidity","type":"uint256"}],"name":"MarketOutcomeShares","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"marketId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"outcomeId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"},{"indexed":false,"internalType":"bool","name":"admin","type":"bool"}],"name":"MarketResolved","type":"event"},{"inputs":[],"name":"MAX_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_OUTCOMES","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_UINT_256","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ONE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WETH","outputs":[{"internalType":"contract IWETH","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"addLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"addLiquidityWithETH","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"uint256","name":"outcomeId","type":"uint256"}],"name":"adminResolveMarketOutcome","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"uint256","name":"outcomeId","type":"uint256"},{"internalType":"uint256","name":"minOutcomeSharesToBuy","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"buy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"uint256","name":"outcomeId","type":"uint256"},{"internalType":"uint256","name":"minOutcomeSharesToBuy","type":"uint256"}],"name":"buyWithETH","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"uint256","name":"outcomeId","type":"uint256"}],"name":"calcBuyAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"uint256","name":"outcomeId","type":"uint256"}],"name":"calcSellAmount","outputs":[{"internalType":"uint256","name":"outcomeTokenSellAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"claimFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"claimFeesToETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"claimLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"claimLiquidityToETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"uint256","name":"outcomeId","type":"uint256"}],"name":"claimVoidedOutcomeShares","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"uint256","name":"outcomeId","type":"uint256"}],"name":"claimVoidedOutcomeSharesToETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"claimWinnings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"claimWinningsToETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"closesAt","type":"uint256"},{"internalType":"uint256","name":"outcomes","type":"uint256"},{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"uint256[]","name":"distribution","type":"uint256[]"},{"internalType":"string","name":"question","type":"string"},{"internalType":"string","name":"image","type":"string"},{"internalType":"address","name":"arbitrator","type":"address"},{"internalType":"uint256","name":"fee","type":"uint256"},{"internalType":"uint256","name":"treasuryFee","type":"uint256"},{"internalType":"address","name":"treasury","type":"address"},{"internalType":"contract IRealityETH_ERC20","name":"realitio","type":"address"},{"internalType":"uint256","name":"realitioTimeout","type":"uint256"},{"internalType":"contract IPredictionMarketV3Manager","name":"manager","type":"address"}],"internalType":"struct PredictionMarketV3.CreateMarketDescription","name":"desc","type":"tuple"}],"name":"createMarket","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"closesAt","type":"uint256"},{"internalType":"uint256","name":"outcomes","type":"uint256"},{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"uint256[]","name":"distribution","type":"uint256[]"},{"internalType":"string","name":"question","type":"string"},{"internalType":"string","name":"image","type":"string"},{"internalType":"address","name":"arbitrator","type":"address"},{"internalType":"uint256","name":"fee","type":"uint256"},{"internalType":"uint256","name":"treasuryFee","type":"uint256"},{"internalType":"address","name":"treasury","type":"address"},{"internalType":"contract IRealityETH_ERC20","name":"realitio","type":"address"},{"internalType":"uint256","name":"realitioTimeout","type":"uint256"},{"internalType":"contract IPredictionMarketV3Manager","name":"manager","type":"address"}],"internalType":"struct PredictionMarketV3.CreateMarketDescription","name":"desc","type":"tuple"}],"name":"createMarketWithETH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"getMarketAltData","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"contract IERC20","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"},{"internalType":"contract IRealityETH_ERC20","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"contract IPredictionMarketV3Manager","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"getMarketCreator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"getMarketData","outputs":[{"internalType":"enum PredictionMarketV3.MarketState","name":"","type":"uint8"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"getMarketFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"getMarketLiquidityPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"uint256","name":"outcomeId","type":"uint256"}],"name":"getMarketOutcomeData","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"getMarketOutcomeIds","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"uint256","name":"outcomeId","type":"uint256"}],"name":"getMarketOutcomePrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"getMarketPrices","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"getMarketQuestion","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"getMarketResolvedOutcome","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"getMarketShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMarkets","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"address","name":"user","type":"address"}],"name":"getUserClaimStatus","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"bool","name":"","type":"bool"},{"internalType":"bool","name":"","type":"bool"},{"internalType":"bool","name":"","type":"bool"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"address","name":"user","type":"address"}],"name":"getUserClaimableFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"address","name":"user","type":"address"}],"name":"getUserLiquidityPoolShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"address","name":"user","type":"address"}],"name":"getUserMarketShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"isMarketVoided","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"closesAt","type":"uint256"},{"internalType":"uint256","name":"outcomes","type":"uint256"},{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"uint256[]","name":"distribution","type":"uint256[]"},{"internalType":"string","name":"question","type":"string"},{"internalType":"string","name":"image","type":"string"},{"internalType":"address","name":"arbitrator","type":"address"},{"internalType":"uint256","name":"fee","type":"uint256"},{"internalType":"uint256","name":"treasuryFee","type":"uint256"},{"internalType":"address","name":"treasury","type":"address"},{"internalType":"contract IRealityETH_ERC20","name":"realitio","type":"address"},{"internalType":"uint256","name":"realitioTimeout","type":"uint256"},{"internalType":"contract IPredictionMarketV3Manager","name":"manager","type":"address"}],"internalType":"struct PredictionMarketV3.CreateMarketDescription","name":"desc","type":"tuple"}],"name":"mintAndCreateMarket","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"uint256","name":"shares","type":"uint256"}],"name":"removeLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"uint256","name":"shares","type":"uint256"}],"name":"removeLiquidityToETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"}],"name":"resolveMarketOutcome","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"uint256","name":"outcomeId","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"maxOutcomeSharesToSell","type":"uint256"}],"name":"sell","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"uint256","name":"outcomeId","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"maxOutcomeSharesToSell","type":"uint256"}],"name":"sellToETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
9c4d535b000000000000000000000000000000000000000000000000000000000000000001000eb5422483718de2cb68756b6b6834bc8258b56f8ff37a59d5ccf2bf7cc2000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000200000000000000000000000003439153eb7af838ad19d56e1571fbd09333c2809
Deployed Bytecode
0x000400000000000200110000000000020000000003010019000000600430027000000e0b034001970003000000310355000200000001035500000e0b0040019d0000000100200190000000930000c13d0000008002000039000000400020043f000000040030008c000000c00000413d000000000201043b000000e00220027000000e140020009c000000d70000a13d00000e150020009c0000014a0000213d00000e250020009c000003460000213d00000e2d0020009c000005eb0000213d00000e310020009c00000ca90000613d00000e320020009c00000bbd0000613d00000e330020009c00000d300000c13d000000440030008c00000d300000413d0000000002000416000000000002004b00000d300000c13d0000002402100370000000000202043b000a00000002001d0000000401100370000000000201043b000000a001000039000000400010043f000000800000043f000900000002001d000000000020043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000e00000001001d000000000101041a000f00000001001d00000e5a010000410000000000100443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e5b011001c70000800b02000039382838230000040f000000010020019000001be10000613d000000000101043b0000000f0010006c000000690000a13d0000000e010000290000000601100039000000000101041a000000ff0110018f000000020010008c000011430000213d000000000001004b000000690000c13d0000000901000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000000601100039000000000201041a000000fe00200190000011430000c13d00000e8b032001970000000102200039000000ff0220018f000000000232019f000000000021041b0000000901000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000000601100039000000000101041a000000ff0110018f000000020010008c000011430000213d000000000001004b0000078d0000c13d0000000901000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000400000001001d0000000a0000006b000014460000c13d000000400100043d000000440210003900000e730300004100000d230000013d0000000002000416000000000002004b00000d300000c13d0000001f0230003900000e0c02200197000000a002200039000000400020043f0000001f0430018f00000e0d05300198000000a002500039000000a40000613d000000a006000039000000000701034f000000007807043c0000000006860436000000000026004b000000a00000c13d000000000004004b000000b10000613d000000000151034f0000000304400210000000000502043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000120435000000200030008c00000d300000413d000000a00100043d00000e0e0010009c00000d300000213d0000000102000039000000000020041b000000800010043f0000014000000443000001600010044300000020010000390000010000100443000001200020044300000e0f01000041000038290001042e000000000003004b00000d300000c13d00000e10010000410000000000100443000000000100041200000004001004430000002400000443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e11011001c70000800502000039382838230000040f000000010020019000001be10000613d000000000101043b00000e0e011001970000000002000411000000000012004b000004e50000c13d0000000001000019000038290001042e00000e340020009c0000015d0000a13d00000e350020009c000001aa0000213d00000e3d0020009c000005700000213d00000e410020009c000007910000613d00000e420020009c000007500000613d00000e430020009c00000d300000c13d000000440030008c00000d300000413d0000000002000416000000000002004b00000d300000c13d0000002402100370000000000202043b000e00000002001d0000000401100370000000000101043b000f00000001001d00000e10010000410000000000100443000000000100041200000004001004430000002400000443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e11011001c70000800502000039382838230000040f000000010020019000001be10000613d000000000101043b00000e0e0110019800000d460000613d000d00000001001d0000000f01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000001301100039000000000101041a00000e0e011001970000000d0010006c000010230000c13d0000000f010000290000000e02000029382825e70000040f00000e530200004100000000002004430000000d020000290000000400200443000f00000001001d000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e54011001c70000800202000039382838230000040f000000010020019000001be10000613d000000000101043b000000000001004b00000d300000613d000000400200043d00000e55010000410000000000120435000e00000002001d00000004012000390000000f02000029000000000021043500000000010004140000000d02000029000000040020008c000001430000613d0000000e0200002900000e0b0020009c00000e0b02008041000000400220021000000e0b0010009c00000e0b01008041000000c001100210000000000121019f00000e13011001c70000000d020000293828381e0000040f0000000003010019000000600330027000010e0b0030019d00030000000103550000000100200190000015990000613d0000000e0100002900000e560010009c000008420000213d0000000e01000029000000400010043f000000000100041400000bb80000013d00000e160020009c0000039d0000213d00000e1e0020009c0000060d0000213d00000e220020009c00000cb10000613d00000e230020009c00000bc40000613d00000e240020009c00000d300000c13d000000240030008c00000d300000413d0000000002000416000000000002004b00000d300000c13d0000000401100370000000000101043b382833f10000040f00000ca20000013d00000e440020009c000004eb0000a13d00000e450020009c000005d60000213d00000e490020009c000009e30000613d00000e4a0020009c0000090b0000613d00000e4b0020009c00000d300000c13d000000240030008c00000d300000413d0000000002000416000000000002004b00000d300000c13d0000000401100370000000000101043b000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000001101100039000000000201041a00000e560020009c000008420000213d00000005042002100000003f0140003900000e5c03100197000000400100043d0000000003310019000000000013004b0000000005000039000000010500403900000e560030009c000008420000213d0000000100500190000008420000c13d000000400030043f00000000032104360000001f0540018f000000000004004b000001980000613d0000000004430019000000000600003100000002066003670000000007030019000000006806043c0000000007870436000000000047004b000001940000c13d000000000005004b000000000002004b000001a50000613d00000000040000190000000005010433000000000045004b00001be20000a13d0000000505400210000000000535001900000000004504350000000104400039000000000024004b0000019c0000413d000000400300043d000f00000003001d000000200200003900000000022304360000062f0000013d00000e360020009c000005820000213d00000e3a0020009c000008100000613d00000e3b0020009c000007570000613d00000e3c0020009c00000d300000c13d000000240030008c00000d300000413d0000000402100370000000000202043b000f00000002001d00000e560020009c00000d300000213d0000000f0230006a00000e640020009c00000d300000213d000001c40020008c00000d300000413d0000000f02000029000d00640020003d0000000d01100360000000000101043b000e00000001001d00000e0e0010009c00000d300000213d00000e10010000410000000000100443000000000100041200000004001004430000002400000443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e11011001c70000800502000039382838230000040f000000010020019000001be10000613d000000000101043b00000e0e011001970000000e0010006b000010230000c13d0000000d04000029000000600140008a0000000202000367000000000112034f000000000101043b0000000003000416000000000013004b000011600000c13d000000000142034f000000000c01043b00000e0e00c0009c00000d300000213d0000000f0100002900000004011000390000000d030000290000002006300039000000000362034f000000000703043b000000000300003100000000041300490000001f0440008a00000e650540019700000e6508700197000000000958013f000000000058004b000000000800001900000e6508004041000000000047004b000000000a00001900000e650a00804100000e650090009c00000000080ac019000000000008004b00000d300000c13d0000000007170019000000000872034f000000000e08043b00000e5600e0009c00000d300000213d000000050fe002100000000008f30049000000200b70003900000e650780019700000e6509b00197000000000a79013f000000000079004b000000000700001900000e650700404100000000008b004b000000000800001900000e650800204100000e6500a0009c000000000708c019000000000007004b00000d300000c13d0000002006600039000000000762034f000000000707043b00000e6508700197000000000958013f000000000058004b000000000800001900000e6508004041000000000047004b000000000a00001900000e650a00804100000e650090009c00000000080ac019000000000008004b00000d300000c13d0000000007170019000000000872034f000000000808043b000d00000008001d00000e560080009c00000d300000213d0000000d0830006a000000200970003900000e650780019700000e650a900197000000000d7a013f00000000007a004b000000000700001900000e6507004041000c00000009001d000000000089004b000000000800001900000e650800204100000e6500d0009c000000000708c019000000000007004b00000d300000c13d0000002006600039000000000762034f000000000707043b00000e6508700197000000000a58013f000000000058004b000000000500001900000e6505004041000000000047004b000000000400001900000e650400804100000e6500a0009c000000000504c019000000000005004b00000d300000c13d0000000001170019000000000412034f000000000404043b00000e560040009c00000d300000213d0000000005430049000000200a10003900000e650150019700000e6507a00197000000000817013f000000000017004b000000000100001900000e650100404100000000005a004b000000000500001900000e650500204100000e650080009c000000000105c019000000000001004b00000d300000c13d0000002001600039000000000512034f000000000705043b00000e0e0070009c00000d300000213d0000006001100039000000000512034f000000000505043b00000e0e0050009c00000d300000213d0000002001100039000000000612034f000000000606043b000b00000006001d00000e0e0060009c00000d300000213d0000004006100039000000000162034f000000000101043b000a00000001001d00000e0e0010009c00000d300000213d000000400100043d000900000001001d00000e7a0010009c000008420000213d0000000908000029000001c001800039000000400010043f00000000010004160000000001180436000001800d60008a000000000dd2034f000000000d0d043b0000000000d10435000001600160008a000000000112034f000000000101043b00000060068000390000000000c60435000000400680003900000000001604350000003f01f0003900000e5c01100197000000400c00043d00000000061c00190000000000c6004b0000000001000039000000010100403900000e560060009c000008420000213d0000000100100190000008420000c13d000000400060043f0000000000ec0435000000000ebf001900000000003e004b00000d300000213d0000000000be004b0000029a0000a13d00000000060c00190000000001b2034f000000000101043b00000020066000390000000000160435000000200bb000390000000000eb004b000002930000413d000000090100002900000080011000390000000000c104350000000d010000290000001f0110003900000e8c011001970000003f0110003900000e8c01100197000000400c00043d00000000061c00190000000000c6004b0000000001000039000000010100403900000e560060009c000008420000213d0000000100100190000008420000c13d000000400060043f0000000d06000029000000000f6c04360000000c01600029000000000031004b00000d300000213d0000000c082003600000000d0100002900000e8c09100198000c001f00100193000000000d9f0019000002bd0000613d000000000608034f000000000e0f0019000000006106043c000000000e1e04360000000000de004b000002b90000c13d0000000c0000006b000002cb0000613d000000000198034f0000000c060000290000000306600210000000000e0d0433000000000e6e01cf000000000e6e022f000000000101043b0000010006600089000000000161022f00000000016101cf0000000001e1019f00000000001d04350000000d01f0002900000000000104350000000901000029000000a0011000390000000000c104350000001f0140003900000e8c011001970000003f0110003900000e8c01100197000000400900043d0000000006190019000000000096004b0000000001000039000000010100403900000e560060009c000008420000213d0000000100100190000008420000c13d000000400060043f000000000c4904360000000001a40019000000000031004b00000d300000213d000000000aa2034f00000e8c0b4001980000001f0d40018f0000000003bc0019000002ed0000613d00000000060a034f000000000e0c0019000000006106043c000000000e1e043600000000003e004b000002e90000c13d00000000000d004b000002fa0000613d0000000001ba034f0000000306d00210000000000a030433000000000a6a01cf000000000a6a022f000000000101043b0000010006600089000000000161022f00000000016101cf0000000001a1019f000000000013043500000000014c0019000000000001043500000e0e017001970000000907000029000000e0037000390000000000130435000000c00170003900000000009104350000000f060000290000010401600039000000000112034f000000000101043b000001000370003900000000001304350000012401600039000000000112034f000000000101043b0000000b0300002900000e0e033001970000016004700039000000000034043500000e0e0350019700000140047000390000000000340435000001200370003900000000001304350000018401600039000000000112034f0000000a0200002900000e0e02200197000000000101043b000001a003700039000000000023043500000180027000390000000000120435000000000107001938281c960000040f00000e530200004100000000002004430000000e020000290000000400200443000f00000001001d000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e54011001c70000800202000039382838230000040f000000010020019000001be10000613d000000000101043b000000000001004b00000d300000613d000000400200043d00000e6201000041000d00000002001d000000000012043500000000010004140000000e02000029000000040020008c00001bf40000613d0000000d0200002900000e0b0020009c00000e0b02008041000000400220021000000e0b0010009c00000e0b01008041000000c001100210000000000121019f0000000002000416000000000002004b00001be80000c13d00000e6f011001c70000000e0200002900001bed0000013d00000e260020009c0000063a0000213d00000e2a0020009c00000cb80000613d00000e2b0020009c00000bcb0000613d00000e2c0020009c00000d300000c13d000000440030008c00000d300000413d0000000002000416000000000002004b00000d300000c13d0000002402100370000000000202043b000e00000002001d00000e0e0020009c00000d300000213d0000000401100370000000000101043b000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000401043b0000001101400039000000000601041a00000e560060009c000008420000213d00000005016002100000003f0210003900000e5c02200197000000400300043d0000000002230019000d00000003001d000000000032004b0000000003000039000000010300403900000e560020009c000008420000213d0000000100300190000008420000c13d000900000004001d000000400020043f0000000d020000290000000002620436000c00000002001d0000001f0210018f000000000001004b000003880000613d0000000c04000029000000000114001900000000030000310000000203300367000000003503043c0000000004540436000000000014004b000003840000c13d000000000002004b000b00000006001d000000000006004b0000137b0000c13d0000000e01000029000000000010043f00000009010000290000000401100039000000200010043f0000000001000019382837ef0000040f000000000101041a000000400400043d000f00000004001d000000200240003900000040030000390000000000320435000000000014043500000040024000390000000d01000029000005cb0000013d00000e170020009c0000067c0000213d00000e1b0020009c00000cc90000613d00000e1c0020009c00000c260000613d00000e1d0020009c00000d300000c13d0000000002000416000000000002004b00000d300000c13d000000240030008c00000d300000413d0000000402100370000000000202043b00000e560020009c00000d300000213d000000000423004900000e640040009c00000d300000213d000001c40040008c00000d300000413d000f00640020003d0000000f04100360000000000c04043b00000e0e00c0009c00000d300000213d000000040420003900000000054300490000000f060000290000002007600039000000000671034f000000000806043b0000001f0550008a00000e650650019700000e6509800197000000000a69013f000000000069004b000000000900001900000e6509004041000000000058004b000000000b00001900000e650b00804100000e6500a0009c00000000090bc019000000000009004b00000d300000c13d0000000008480019000000000981034f000000000e09043b00000e5600e0009c00000d300000213d000e000500e002180000000e0930006a000000200b80003900000e650890019700000e650ab00197000000000d8a013f00000000008a004b000000000800001900000e650800404100000000009b004b000000000900001900000e650900204100000e6500d0009c000000000809c019000000000008004b00000d300000c13d0000002007700039000000000871034f000000000808043b00000e6509800197000000000a69013f000000000069004b000000000900001900000e6509004041000000000058004b000000000d00001900000e650d00804100000e6500a0009c00000000090dc019000000000009004b00000d300000c13d0000000009480019000000000891034f000000000808043b000d00000008001d00000e560080009c00000d300000213d0000000d0a30006a000000200d90003900000e6509a0019700000e6508d00197000c000000980143000000000098004b000000000900001900000e6509004041000b0000000d001d0000000000ad004b000000000a00001900000e650a0020410000000c0800002900000e650080009c00000000090ac019000000000009004b00000d300000c13d0000002007700039000000000871034f000000000908043b00000e6508900197000000000a68013f000000000068004b000000000600001900000e6506004041000000000059004b000000000500001900000e650500804100000e6500a0009c000000000605c019000000000006004b00000d300000c13d0000000005490019000000000451034f000000000404043b00000e560040009c00000d300000213d0000000006430049000000200a50003900000e650560019700000e6508a00197000000000958013f000000000058004b000000000500001900000e650500404100000000006a004b000000000600001900000e650600204100000e650090009c000000000506c019000000000005004b00000d300000c13d0000002005700039000000000651034f000000000606043b00000e0e0060009c00000d300000213d0000006007500039000000000571034f000000000505043b00000e0e0050009c00000d300000213d0000002009700039000000000791034f000000000707043b00000e0e0070009c00000d300000213d0000004009900039000000000891034f000000000808043b000c00000008001d00000e0e0080009c00000d300000213d000002400d0000390000004000d0043f000001a00890008a000000000881034f000000000808043b000000800080043f000001800890008a000000000881034f000000000808043b000000a00080043f000001600890008a000000000881034f000000000808043b000000c00080043f000000e000c0043f0000000e080000290000003f0880003900000e5c0980019700000e660090009c000008420000213d000002400c9000390000004000c0043f0000024000e0043f0000000e0eb0002900000000003e004b00000d300000213d0000000000be004b000004640000a13d00000000090d00190000000008b1034f000000000808043b00000020099000390000000000890435000000200bb000390000000000eb004b0000045c0000413d000000400c00043d0000010000d0043f0000000d080000290000001f0880003900000e8c088001970000003f0880003900000e8c0880019700000000098c00190000000000c9004b000000000e000039000000010e00403900000e560090009c000008420000213d0000000100e00190000008420000c13d000000400090043f0000000d08000029000000000f8c04360000000b08800029000000000038004b00000d300000213d000b000b001003640000000d0800002900000e8c09800198000e001f00800193000a00000009001d000000000d9f0019000004850000613d0000000b0900035f000000000e0f0019000000009809043c000000000e8e04360000000000de004b000004810000c13d0000000e0000006b000004940000613d0000000a090000290000000b0890035f0000000e090000290000000309900210000000000e0d0433000000000e9e01cf000000000e9e022f000000000808043b0000010009900089000000000898022f00000000089801cf0000000008e8019f00000000008d04350000000d08f0002900000000000804350000012000c0043f0000001f0840003900000e8c088001970000003f0880003900000e8c09800197000000400800043d0000000009980019000000000089004b000000000c000039000000010c00403900000e560090009c000008420000213d0000000100c00190000008420000c13d000000400090043f000000000c4804360000000009a40019000000000039004b00000d300000213d000000000aa1034f00000e8c0b4001980000001f0d40018f0000000003bc0019000004b40000613d00000000090a034f000000000e0c0019000000009f09043c000000000efe043600000000003e004b000004b00000c13d00000000000d004b000004c10000613d0000000009ba034f000000030ad00210000000000b030433000000000bab01cf000000000bab022f000000000909043b000001000aa000890000000009a9022f0000000009a901cf0000000009b9019f000000000093043500000000034c00190000000000030435000001400080043f000001600060043f0000010403200039000000000331034f000000000303043b000001800030043f0000012403200039000000000331034f000000000303043b000001a00030043f0000018402200039000000000121034f000001c00050043f000001e00070043f000000000101043b000002000010043f0000000c01000029000002200010043f000000800100003938281c960000040f00000002020003670000000f03200360000e00000001001d000000000103043b00000e0e0010009c00000d300000213d0000000f03000029000000600330008a000000000232034f000000000402043b00000000020004110000000003000410382837110000040f000016040000013d00000e1201000041000000000010043f0000000101000039000000040010043f00000e13010000410000382a0001043000000e4c0020009c000006e50000a13d00000e4d0020009c000008730000613d00000e4e0020009c000008480000613d00000e4f0020009c00000d300000c13d000000240030008c00000d300000413d0000000002000416000000000002004b00000d300000c13d0000000401100370000000000101043b000f00000001001d000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000d00000001001d000000000101041a000e00000001001d00000e5a010000410000000000100443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e5b011001c70000800b02000039382838230000040f000000010020019000001be10000613d000000000101043b000c00000001001d0000000e0010006c000005390000a13d0000000d010000290000000601100039000000000101041a000000ff0110018f000000020010008c000011430000213d000000000001004b000005390000c13d0000000f01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000000601100039000000000201041a000000fe00200190000011430000c13d00000e8b032001970000000102200039000000ff0220018f000000000232019f000000000021041b0000000f01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000000601100039000000000101041a000000ff0110018f000000020010008c000011430000213d000000010010008c0000078d0000c13d0000000f01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000301043b0000000a01300039000000000201041a000d00000003001d0000000901300039000000000101041a000000400400043d00000e81030000410000000000340435000e00000004001d00000004034000390000000000130435000000000100041400000e0e02200197000000040020008c000013ec0000c13d0000000103000031000000200030008c00000020040000390000000004034019000014170000013d00000e3e0020009c0000081a0000613d00000e3f0020009c000007610000613d00000e400020009c00000d300000c13d000000240030008c00000d300000413d0000000002000416000000000002004b00000d300000c13d0000000401100370000000000101043b382834b70000040f000000000001004b0000000001000039000000010100c03900000ca20000013d00000e370020009c000008210000613d00000e380020009c0000076f0000613d00000e390020009c00000d300000c13d000000240030008c00000d300000413d0000000002000416000000000002004b00000d300000c13d0000000401100370000000000101043b000900000001001d000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000001101100039000000000401041a00000e560040009c000008420000213d00000005014002100000003f0210003900000e5c02200197000000400300043d0000000002230019000800000003001d000000000032004b0000000003000039000000010300403900000e560020009c000008420000213d0000000100300190000008420000c13d000000400020043f0000000802000029000700000004001d0000000002420436000600000002001d0000001f0210018f000000000001004b000005be0000613d0000000604000029000000000114001900000000030000310000000203300367000000003503043c0000000004540436000000000014004b000005ba0000c13d000000000002004b000000070000006b000010590000c13d0000000901000029382833f10000040f000000400400043d000f00000004001d00000020024000390000004003000039000000000032043500000000001404350000004002400039000000080100002938281c4b0000040f0000000f02000029000000000121004900000e0b0010009c00000e0b0100804100000e0b0020009c00000e0b0200804100000060011002100000004002200210000000000121019f000038290001042e00000e460020009c00000b560000613d00000e470020009c000009c90000613d00000e480020009c00000d300000c13d000000240030008c00000d300000413d0000000002000416000000000002004b00000d300000c13d0000000401100370000000000101043b000000000010043f0000000201000039000000200010043f0000000001000019382837ef0000040f0000001501100039000000000101041a00000cc50000013d00000e2e0020009c00000cd10000613d00000e2f0020009c00000c4c0000613d00000e300020009c00000d300000c13d000000240030008c00000d300000413d0000000002000416000000000002004b00000d300000c13d0000000401100370000000000101043b000f00000001001d382836200000040f0000000f01000029382831660000040f0000000f02000029000000000020043f0000000202000039000000200020043f000f00000001001d0000000001000019382837ef0000040f0000001301100039000000000101041a00000e0e0110019700000000020004110000000f03000029382836370000040f0000000101000039000000000010041b0000000001000019000038290001042e00000e1f0020009c00000ce70000613d00000e200020009c00000c860000613d00000e210020009c00000d300000c13d0000000001000416000000000001004b00000d300000c13d0000000102000039000000000102041a000000800010043f000000000020043f0000002002000039000000000001004b000006280000613d000000a00400003900000e680200004100000000030000190000000005040019000000000402041a000000000445043600000001022000390000000103300039000000000013004b000006200000413d000000600250008a000000800100003938281c720000040f000000400200043d000f00000002001d00000020010000390000000002120436000000800100003938281c4b0000040f0000000f02000029000000000121004900000e0b0010009c00000e0b01008041000000600110021000000e0b0020009c00000e0b020080410000004002200210000000000121019f000038290001042e00000e270020009c00000d270000613d00000e280020009c00000c8d0000613d00000e290020009c00000d300000c13d000000240030008c00000d300000413d0000000002000416000000000002004b00000d300000c13d0000000401100370000000000101043b000f00000001001d000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000000302100039000000000202041a000a00000002001d0000000102100039000000000202041a000b00000002001d0000000202100039000000000202041a000c00000002001d000000000201041a000d00000002001d0000000601100039000000000101041a000e00000001001d0000000f01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000201043b0000000601200039000000000101041a000000ff0110018f000000020010008c000011430000213d0000000e01000029000000ff0110018f000011400000c13d0000000802200039000000000202041a000011410000013d00000e180020009c00000d2e0000613d00000e190020009c00000c960000613d00000e1a0020009c00000d300000c13d000000240030008c00000d300000413d0000000002000416000000000002004b00000d300000c13d0000000401100370000000000101043b000f00000001001d00000e10010000410000000000100443000000000100041200000004001004430000002400000443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e11011001c70000800502000039382838230000040f000000010020019000001be10000613d000000000101043b00000e0e0110019800000d460000613d000e00000001001d0000000f01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000001301100039000000000101041a00000e0e011001970000000e0010006c000010230000c13d0000000f0100002938282e4d0000040f00000e530200004100000000002004430000000e020000290000000400200443000f00000001001d000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e54011001c70000800202000039382838230000040f000000010020019000001be10000613d000000000101043b000000000001004b00000d300000613d000000400200043d00000e55010000410000000000120435000d00000002001d00000004012000390000000f02000029000000000021043500000000010004140000000e02000029000000040020008c000006de0000613d0000000d0200002900000e0b0020009c00000e0b02008041000000400220021000000e0b0010009c00000e0b01008041000000c001100210000000000121019f00000e13011001c70000000e020000293828381e0000040f0000000003010019000000600330027000010e0b0030019d00030000000103550000000100200190000015c00000613d0000000d0100002900000e560010009c000008420000213d0000000d01000029000000400010043f000000000100041400000bb80000013d00000e500020009c0000082a0000613d00000e510020009c00000d300000c13d000000440030008c00000d300000413d0000000002000416000000000002004b00000d300000c13d0000002402100370000000000202043b000e00000002001d0000000401100370000000000101043b000f00000001001d00000e10010000410000000000100443000000000100041200000004001004430000002400000443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e11011001c70000800502000039382838230000040f000000010020019000001be10000613d000000000101043b00000e0e0110019800000d460000613d000d00000001001d0000000f01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000001301100039000000000101041a00000e0e011001970000000d0010006c000010230000c13d0000000f010000290000000e0200002938282cae0000040f00000e530200004100000000002004430000000d020000290000000400200443000f00000001001d000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e54011001c70000800202000039382838230000040f000000010020019000001be10000613d000000000101043b000000000001004b00000d300000613d000000400200043d00000e55010000410000000000120435000e00000002001d00000004012000390000000f02000029000000000021043500000000010004140000000d02000029000000040020008c000007490000613d0000000e0200002900000e0b0020009c00000e0b02008041000000400220021000000e0b0010009c00000e0b01008041000000c001100210000000000121019f00000e13011001c70000000d020000293828381e0000040f0000000003010019000000600330027000010e0b0030019d00030000000103550000000100200190000015a60000613d0000000e0100002900000e560010009c000008420000213d0000000e01000029000000400010043f000000000100041400000bb80000013d0000000001000416000000000001004b00000d300000c13d000000010100008a000000800010043f00000e6901000041000038290001042e000000240030008c00000d300000413d0000000002000416000000000002004b00000d300000c13d0000000401100370000000000101043b000f00000001001d38282bbc0000040f00000cd80000013d000000240030008c00000d300000413d0000000002000416000000000002004b00000d300000c13d0000000401100370000000000101043b000000000010043f0000000201000039000000200010043f0000000001000019382837ef0000040f000000090110003900000cad0000013d000000440030008c00000d300000413d0000000002000416000000000002004b00000d300000c13d0000002402100370000000000202043b000e00000002001d0000000401100370000000000101043b000f00000001001d000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000000601100039000000000101041a000000ff0110018f000000020010008c000011430000213d000010340000c13d000000400100043d000000440210003900000e830300004100000d490000013d000000240030008c00000d300000413d0000000002000416000000000002004b00000d300000c13d0000000401100370000000000101043b000f00000001001d00000e10010000410000000000100443000000000100041200000004001004430000002400000443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e11011001c70000800502000039382838230000040f000000010020019000001be10000613d000000000101043b00000e0e0110019800000d460000613d000e00000001001d0000000f01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000001301100039000000000101041a00000e0e011001970000000e0010006c000010230000c13d000000000100041a000000020010008c00000d200000613d0000000201000039000000000010041b0000000f01000029382831660000040f00000e530200004100000000002004430000000e020000290000000400200443000f00000001001d000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e54011001c70000800202000039382838230000040f000000010020019000001be10000613d000000000101043b000000000001004b00000d300000613d000000400200043d00000e55010000410000000000120435000d00000002001d00000004012000390000000f02000029000000000021043500000000010004140000000e02000029000000040020008c000007f20000613d0000000d0200002900000e0b0020009c00000e0b02008041000000400220021000000e0b0010009c00000e0b01008041000000c001100210000000000121019f00000e13011001c70000000e020000293828381e0000040f0000000003010019000000600330027000010e0b0030019d00030000000103550000000100200190000016180000613d0000000d0100002900000e560010009c000008420000213d0000000d01000029000000400010043f000e00010000003d00000000010004140000000004000411000000040040008c0000080b0000613d00000e0b0010009c00000e0b01008041000000c0011002100000000f03000029000000000003004b00000e570110c1c70000800902000039000000000204601900000000050000193828381e0000040f000e00000002001d0000000002010019000000600220027000010e0b0020019d0003000000010355382825a20000040f0000000e01000029000000010110018f382825d30000040f000006090000013d000000240030008c00000d300000413d0000000002000416000000000002004b00000d300000c13d0000000401100370000000000101043b000f00000001001d38282e4d0000040f00000cd80000013d0000000001000416000000000001004b00000d300000c13d000000000103001938281c640000040f382823eb0000040f00000ca20000013d000000240030008c00000d300000413d0000000002000416000000000002004b00000d300000c13d0000000401100370000000000101043b382834db0000040f00000ca20000013d000000240030008c00000d300000413d0000000002000416000000000002004b00000d300000c13d0000000401100370000000000101043b000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000401043b0000001101400039000000000601041a00000e8a0060009c00000dd10000413d00000e1201000041000000000010043f0000004101000039000000040010043f00000e13010000410000382a00010430000000240030008c00000d300000413d0000000002000416000000000002004b00000d300000c13d0000000401100370000000000101043b000000000010043f0000000201000039000000200010043f0000000001000019382837ef0000040f0000001402100039000000000202041a0000000b03100039000000000303041a0000000a04100039000000000404041a0000000f05100039000000000505041a0000001006100039000000000606041a0000001307100039000000000707041a0000000908100039000000000808041a0000000c01100039000000000101041a000000800010043f000000a00080043f000000c00080043f00000e0e01700197000000e00010043f000001000060043f00000e0e01500197000001200010043f00000e0e01400197000001400010043f000001600030043f00000e0e01200197000001800010043f00000e8201000041000038290001042e000000840030008c00000d300000413d0000000002000416000000000002004b00000d300000c13d0000006402100370000000000302043b0000004402100370000000000502043b0000002402100370000000000402043b0000000401100370000000000201043b000000000100041a000000020010008c000009d90000613d000f00000005001d000800000004001d000900000003001d0000000201000039000000000010041b000a00000002001d000000000020043f000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000001301100039000000000101041a00000e0e01100197000000000200041100000000030004100000000904000029382837110000040f0000000a01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000d00000001001d000000000101041a000e00000001001d00000e5a010000410000000000100443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e5b011001c70000800b02000039382838230000040f000000010020019000001be10000613d000000000101043b000700000001001d0000000e0010006c000008db0000a13d0000000d010000290000000601100039000000000101041a000000ff0110018f000000020010008c000011430000213d000000000001004b000008db0000c13d0000000a01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000000601100039000000000201041a000000fe00200190000011430000c13d00000e8b032001970000000102200039000000ff0220018f000000000232019f000000000021041b0000000a01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000000601100039000000000101041a000000ff0110018f000000020010008c000011430000213d000000000001004b0000078d0000c13d0000000a01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000600000001001d00000009010000290000000a020000290000000803000029382823eb0000040f0000000002010019000500000002001d0000000f0020006c000017580000813d000000400100043d000000440210003900000e8603000041000011630000013d000000440030008c00000d300000413d0000000002000416000000000002004b00000d300000c13d0000002402100370000000000202043b000f00000002001d00000e0e0020009c00000d300000213d0000000401100370000000000101043b000e00000001001d000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000201043b0000000601200039000000000101041a000000ff0110018f000000020010008c000011430000213d000010e50000c13d0000000801200039000000000101041a000000000010043f000d00000002001d0000001201200039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000201043b0000000f01000029000000000010043f000c00000002001d0000000401200039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000000000101041a000b00000001001d0000000c010000290000000501100039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000b0000006b0000000003000039000000010300c039000c00000003001d000000010020019000000d300000613d000000000101043b000000000101041a000b00000001001d0000000d010000290000000401100039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000000000101041a000a00000001001d0000000d010000290000000501100039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000a0000006b0000000003000039000000010300c039000d00000003001d000000010020019000000d300000613d000000000101043b000000000101041a000a00000001001d0000000e01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000201043b0000000d01200039000000000101041a000e00000001001d0000000f01000029000000000010043f000900000002001d0000000401200039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000000000101041a0008000e001000bd0000000e0000006b000009a90000613d0000000e0300002900000008023000f9000000000012004b0000177b0000c13d00000009010000290000000201100039000000000101041a000e00000001001d000000000001004b00000c800000613d0000000f01000029000000000010043f00000009010000290000000e01100039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d0000000b02000029000000ff0220018f0000000a03000029000000ff003001900000000e0400002900000008034000f90000000004000039000000010400c039000000000002004b0000000002000039000000010200c039000011270000013d000000840030008c00000d300000413d0000000002000416000000000002004b00000d300000c13d0000006402100370000000000502043b0000004402100370000000000302043b0000002402100370000000000402043b0000000401100370000000000201043b000000000100041a000000020010008c00000d4d0000c13d00000e6b01000041000000800010043f0000002001000039000000840010043f0000001f01000039000000a40010043f00000e7b01000041000000c40010043f00000e87010000410000382a00010430000000240030008c00000d300000413d0000000002000416000000000002004b00000d300000c13d0000000402100370000000000202043b000f00000002001d00000e560020009c00000d300000213d0000000f0230006a00000e640020009c00000d300000213d000001c40020008c00000d300000413d0000000f02000029000d00640020003d0000000d02100360000000000202043b000e00000002001d00000e0e0020009c00000d300000213d0000000d02000029000b0060002000920000000b01100360000000000101043b000c00000001001d00000e530100004100000000001004430000000e010000290000000400100443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e54011001c70000800202000039382838230000040f000000010020019000001be10000613d000000000101043b000000000001004b00000d300000613d000000400400043d00000024014000390000000c02000029000000000021043500000e80010000410000000001140436000a00000001001d000000000100041100000e0e011001970000000402400039000000000012043500000000010004140000000e02000029000000040020008c00000a2f0000613d00000e0b0040009c00000e0b030000410000000003044019000000400330021000000e0b0010009c00000e0b01008041000000c001100210000000000131019f00000e76011001c7000e00000004001d3828381e0000040f0000000e040000290000000003010019000000600330027000010e0b0030019d00030000000103550000000100200190000013b40000613d00000e560040009c000008420000213d0000000f010000290000000403100039000e00000004001d000000400040043f0000000002000031000000000132004900000e640010009c00000d300000213d000001c00010008c00000d300000413d0000000e0500002900000e7a0050009c000008420000213d000001c001500039000000400010043f0000000c0100002900000000001504350000000b0600002900000020046000390000000201000367000000000441034f000000000404043b0000000a0700002900000000004704350000004004600039000000000441034f0000004005500039000000000404043b00000000004504350000000d04100360000000000404043b00000e0e0040009c00000d300000213d0000000e05000029000000600550003900000000004504350000000d040000290000002005400039000000000451034f000000000404043b00000e560040009c00000d300000213d00000000073400190000001f04700039000000000024004b000000000600001900000e650600804100000e650840019700000e6504200197000000000948013f000000000048004b000000000800001900000e650800404100000e650090009c000000000806c019000000000008004b00000d300000c13d000000000671034f000000000806043b00000e560080009c000008420000213d00000005098002100000003f0690003900000e5c0a600197000000400600043d000000000aa6001900000000006a004b000000000b000039000000010b00403900000e5600a0009c000008420000213d0000000100b00190000008420000c13d00000020077000390000004000a0043f00000000008604350000000009790019000000000029004b00000d300000213d000000000008004b00000a8a0000613d0000000008060019000000000a71034f000000000a0a043b00000020088000390000000000a804350000002007700039000000000097004b00000a830000413d0000000e07000029000000800770003900000000006704350000002006500039000000000561034f000000000505043b00000e560050009c00000d300000213d00000000093500190000001f05900039000000000025004b000000000700001900000e650700804100000e6505500197000000000845013f000000000045004b000000000500001900000e650500404100000e650080009c000000000507c019000000000005004b00000d300000c13d000000000591034f000000000705043b00000e560070009c000008420000213d0000001f0870003900000e8c088001970000003f0880003900000e8c0a800197000000400800043d000000000aa8001900000000008a004b000000000b000039000000010b00403900000e5600a0009c000008420000213d0000000100b00190000008420000c13d000000200b9000390000004000a0043f0000000009780436000000000ab7001900000000002a004b00000d300000213d000f000000b1035300000e8c0c7001980000001f0d70018f000000000ac9001900000ac20000613d0000000f0e00035f000000000f09001900000000eb0e043c000000000fbf04360000000000af004b00000abe0000c13d00000000000d004b00000acf0000613d0000000f0bc0035f000000030cd00210000000000d0a0433000000000dcd01cf000000000dcd022f000000000b0b043b000001000cc00089000000000bcb022f000000000bcb01cf000000000bdb019f0000000000ba0435000000000779001900000000000704350000000e07000029000000a00770003900000000008704350000002006600039000000000761034f000000000707043b00000e560070009c00000d300000213d00000000073700190000001f03700039000000000023004b000000000800001900000e650800804100000e6503300197000000000943013f000000000043004b000000000300001900000e650300404100000e650090009c000000000308c019000000000003004b00000d300000c13d000000000371034f000000000303043b00000e560030009c000008420000213d0000001f0430003900000e8c044001970000003f0440003900000e8c08400197000000400400043d0000000008840019000000000048004b0000000009000039000000010900403900000e560080009c000008420000213d0000000100900190000008420000c13d0000002009700039000000400080043f00000000073404360000000008930019000000000028004b00000d300000213d000000000891034f00000e8c053001980000001f0930018f000000000257001900000b090000613d000000000a08034f000000000b07001900000000ac0a043c000000000bcb043600000000002b004b00000b050000c13d000000000009004b00000b160000613d000000000558034f0000000308900210000000000902043300000000098901cf000000000989022f000000000505043b0000010008800089000000000585022f00000000058501cf000000000595019f0000000000520435000000000237001900000000000204350000000e02000029000000c00220003900000000004204350000002002600039000000000321034f000000000303043b00000e0e0030009c00000d300000213d0000000e05000029000000e00450003900000000003404350000002003200039000000000331034f000000000303043b000001000450003900000000003404350000004003200039000000000331034f000000000303043b000001200450003900000000003404350000006002200039000000000321034f000000000303043b00000e0e0030009c00000d300000213d0000000e04000029000001400440003900000000003404350000002002200039000000000321034f000000000303043b00000e0e0030009c00000d300000213d0000000e05000029000001600450003900000000003404350000002003200039000000000331034f000000000303043b00000180045000390000000000340435000f00400020003d0000000f01100360000000000301043b00000e0e0030009c00000d300000213d0000000e01000029000001a002100039000000000032043538281c960000040f000e00000001001d0000000f01000029000001400110008a0000000201100367000000000101043b00000e0e0010009c00000d300000213d000000000300041000000000020004110000000c04000029000004e30000013d000000240030008c00000d300000413d0000000002000416000000000002004b00000d300000c13d0000000401100370000000000101043b000f00000001001d00000e10010000410000000000100443000000000100041200000004001004430000002400000443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e11011001c70000800502000039382838230000040f000000010020019000001be10000613d000000000101043b00000e0e0110019800000d460000613d000e00000001001d0000000f01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000001301100039000000000101041a00000e0e011001970000000e0010006c000010230000c13d0000000f0100002938282bbc0000040f00000e530200004100000000002004430000000e020000290000000400200443000f00000001001d000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e54011001c70000800202000039382838230000040f000000010020019000001be10000613d000000000101043b000000000001004b00000d300000613d000000400200043d00000e55010000410000000000120435000d00000002001d00000004012000390000000f02000029000000000021043500000000010004140000000e02000029000000040020008c00000bb20000613d0000000d0200002900000e0b0020009c00000e0b02008041000000400220021000000e0b0010009c00000e0b01008041000000c001100210000000000121019f00000e13011001c70000000e020000293828381e0000040f0000000003010019000000600330027000010e0b0030019d00030000000103550000000100200190000015b30000613d0000000d0100002900000e560010009c000008420000213d0000000d01000029000000400010043f00000000010004140000000004000411000000040040008c000013d30000c13d000f00010000003d000013e20000013d0000000001000416000000000001004b00000d300000c13d000000000103001938281c580000040f3828358a0000040f00000ca20000013d0000000001000416000000000001004b00000d300000c13d000000000103001938281c640000040f382824c70000040f00000ca20000013d000000640030008c00000d300000413d0000004402100370000000000202043b000d00000002001d0000002402100370000000000202043b000e00000002001d0000000401100370000000000101043b000f00000001001d00000e10010000410000000000100443000000000100041200000004001004430000002400000443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e11011001c70000800502000039382838230000040f000000010020019000001be10000613d000000000101043b00000e0e0110019800000d460000613d000c00000001001d0000000f01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000001301100039000000000101041a00000e0e011001970000000c02000029000000000021004b000010230000c13d000000000100041a000000020010008c00000d200000613d0000000201000039000000000010041b00000e530100004100000000001004430000000400200443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e54011001c70000800202000039382838230000040f000000010020019000001be10000613d000000000101043b000000000001004b00000d300000613d000000400200043d00000e6201000041000b00000002001d000000000012043500000000010004140000000c02000029000000040020008c000016310000613d0000000b0200002900000e0b0020009c00000e0b02008041000000400220021000000e0b0010009c00000e0b01008041000000c001100210000000000121019f0000000002000416000000000002004b000016250000c13d00000e6f011001c70000000c020000290000162a0000013d0000000001000416000000000001004b00000d300000c13d000000000103001938281c580000040f000e00000001001d000f00000002001d000000000010043f0000000201000039000000200010043f0000000001000019382837ef0000040f0000000f02000029000000000020043f0000001201100039000000200010043f0000000001000019382837ef0000040f000d00000001001d0000000e010000290000000f020000293828358a0000040f0000000d030000290000000202300039000000000202041a0000000303300039000000000303041a000000400400043d0000002005400039000000000035043500000040034000390000000000230435000000000014043500000e0b0040009c00000e0b04008041000000400140021000000e67011001c7000038290001042e000000440030008c00000d300000413d0000000002000416000000000002004b00000d300000c13d0000002402100370000000000202043b000f00000002001d00000e0e0020009c00000d300000213d0000000401100370000000000101043b000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000000f02000029000000000020043f000f00000001001d0000000401100039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000000000201041a00000e5d012000d1000000000002004b00000c7b0000613d00000000022100d900000e5d0020009c0000177b0000c13d0000000f020000290000000202200039000000000202041a000000000002004b0000115e0000c13d00000e1201000041000000000010043f0000001201000039000000040010043f00000e13010000410000382a000104300000000001000416000000000001004b00000d300000c13d0000002001000039000000800010043f00000e6901000041000038290001042e000000240030008c00000d300000413d0000000002000416000000000002004b00000d300000c13d0000000401100370000000000101043b382834970000040f00000ca20000013d000000440030008c00000d300000413d0000000002000416000000000002004b00000d300000c13d0000002402100370000000000202043b00000e0e0020009c00000d300000213d0000000401100370000000000101043b3828339d0000040f000000400200043d000000000012043500000e0b0020009c00000e0b02008041000000400120021000000e58011001c7000038290001042e0000000001000416000000000001004b00000d300000c13d0000000301000039000000000101041a000000800010043f00000e6901000041000038290001042e0000000001000416000000000001004b00000d300000c13d00000e5d01000041000000800010043f00000e6901000041000038290001042e0000000001000416000000000001004b00000d300000c13d0000000001000412001100000001001d001000000000003d000080050100003900000044030000390000000004000415000000110440008a000000050440021000000e1002000041382838000000040f00000e0e01100197000000800010043f00000e6901000041000038290001042e0000000001000416000000000001004b00000d300000c13d000000000103001938281c580000040f000f00000001001d38282cae0000040f00000cd80000013d0000000001000416000000000001004b00000d300000c13d000000000103001938281c580000040f000f00000001001d382825e70000040f0000000f02000029000000000020043f0000000202000039000000200020043f000f00000001001d0000000001000019382837ef0000040f0000001301100039000000000101041a00000e0e0110019700000000020004110000000f03000029382836370000040f0000000001000019000038290001042e000000840030008c00000d300000413d0000000002000416000000000002004b00000d300000c13d0000006402100370000000000202043b000c00000002001d0000004402100370000000000202043b000d00000002001d0000002402100370000000000202043b000e00000002001d0000000401100370000000000101043b000f00000001001d00000e10010000410000000000100443000000000100041200000004001004430000002400000443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e11011001c70000800502000039382838230000040f000000010020019000001be10000613d000000000101043b00000e0e0110019800000d460000613d000b00000001001d0000000f01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000001301100039000000000101041a00000e0e011001970000000b0010006c000010230000c13d000000000100041a000000020010008c000011bc0000c13d000000400100043d000000440210003900000e7b03000041000000000032043500000024021000390000001f03000039000010290000013d0000000001000416000000000001004b00000d300000c13d00000e6e01000041000000800010043f00000e6901000041000038290001042e000000240030008c00000d320000813d00000000010000190000382a000104300000000401100370000000000101043b000a00000001001d00000e10010000410000000000100443000000000100041200000004001004430000002400000443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e11011001c70000800502000039382838230000040f000000010020019000001be10000613d000000000101043b00000e0e0110019800000e260000c13d000000400100043d000000440210003900000e8903000041000000000032043500000024021000390000001903000039000010290000013d000c00000005001d000e00000004001d000d00000003001d0000000201000039000000000010041b000f00000002001d000000000020043f000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000a00000001001d000000000101041a000b00000001001d00000e5a010000410000000000100443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e5b011001c70000800b02000039382838230000040f000000010020019000001be10000613d000000000101043b000900000001001d0000000b0010006c00000d900000a13d0000000a010000290000000601100039000000000101041a000000ff0110018f000000020010008c000011430000213d000000000001004b00000d900000c13d0000000f01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000000601100039000000000201041a000000fe00200190000011430000c13d00000e8b032001970000000102200039000000ff0220018f000000000232019f000000000021041b0000000f01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000000601100039000000000101041a000000ff0110018f000000020010008c000011430000213d000000000001004b0000078d0000c13d0000000f01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000201043b0000000e01000029000000000010043f000600000002001d0000001201200039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000b00000001001d0000000d010000290000000f020000290000000e03000029382824c70000040f000500000001001d0000000c0010006c000017810000a13d000000400100043d000000440210003900000e7e03000041000000000032043500000024021000390000001c03000039000010290000013d00000005016002100000003f0210003900000e5c02200197000000400300043d0000000002230019000e00000003001d000000000032004b0000000003000039000000010300403900000e560020009c000008420000213d0000000100300190000008420000c13d000a00000004001d000000400020043f0000000e020000290000000002620436000d00000002001d0000001f0210018f000000000001004b00000dee0000613d0000000d04000029000000000114001900000000030000310000000203300367000000003503043c0000000004540436000000000014004b00000dea0000c13d000000000002004b000000000006004b00000e100000613d0000000a01000029000c00120010003d0000000004000019000b00000006001d000f00000004001d000000000040043f0000000c01000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d0000000e0200002900000000020204330000000f04000029000000000042004b00001be20000a13d00000005024002100000000d02200029000000000101043b0000000301100039000000000101041a000000000012043500000001044000390000000b0040006c00000df50000413d0000000a010000290000000201100039000000000101041a000000400400043d000f00000004001d000000200240003900000040030000390000000000320435000000000014043500000040024000390000000e0100002938281c4b0000040f0000000f02000029000000000121004900000e0b0020009c00000e0b0200804100000e0b0010009c00000e0b0100804100000040022002100000006001100210000000000121019f000038290001042e000900000001001d0000000a01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000001301100039000000000101041a00000e0e01100197000000090010006c000010230000c13d000000400100043d00000e590010009c000008420000213d0000002002100039000700000002001d000000400020043f000800000001001d00000000000104350000000a01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000e00000001001d000000000101041a000f00000001001d00000e5a010000410000000000100443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e5b011001c70000800b02000039382838230000040f000000010020019000001be10000613d000000000101043b0000000f0010006c00000e800000a13d0000000e010000290000000601100039000000000101041a000000ff0110018f000000020010008c000011430000213d000000000001004b00000e800000c13d0000000a01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000000601100039000000000201041a000000fe00200190000011430000c13d00000e8b032001970000000102200039000000ff0220018f000000000232019f000000000021041b0000000a01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000000601100039000000000101041a000000ff0110018f000000020010008c000011430000213d000000000001004b0000078d0000c13d0000000a01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000400000001001d0000000001000416000000000001004b0000008f0000613d0000000a01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000001102100039000000000202041a000c00000002001d00000e560020009c000008420000213d0000000c0200002900000005022002100000003f0320003900000e5c03300197000000400400043d0000000003340019000e00000004001d000000000043004b0000000004000039000000010400403900000e560030009c000008420000213d0000000100400190000008420000c13d000000400030043f0000000e030000290000000c040000290000000003430436000d00000003001d0000001f0320018f000000000002004b00000ed80000613d0000000d05000029000000000225001900000000040000310000000204400367000000004604043c0000000005650436000000000025004b00000ed40000c13d000000000003004b0000000c0000006b00000ef80000613d000b00120010003d0000000004000019000f00000004001d000000000040043f0000000b01000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d0000000e0200002900000000020204330000000f04000029000000000042004b00001be20000a13d00000005024002100000000d02200029000000000101043b0000000301100039000000000101041a000000000012043500000001044000390000000c0040006c00000edd0000413d0000000e01000029000000000201043300000e560020009c000008420000213d00000005012002100000003f0310003900000e5c03300197000000400400043d0000000003340019000c00000004001d000000000043004b0000000004000039000000010400403900000e560030009c000008420000213d0000000100400190000008420000c13d000000400030043f0000000c030000290000000002230436000f00000002001d0000001f0210018f000000000001004b00000f180000613d0000000f04000029000000000114001900000000030000310000000203300367000000003503043c0000000004540436000000000014004b00000f140000c13d000000000002004b0000000801000029000000000201043300000004010000290000000201100039000300000001001d000000000101041a000000000001004b0000192c0000c13d000000000002004b0000000001000416000200000001001d000019a80000c13d0000000302000029000000000012041b0000000001000411000000000010043f00000004010000290000000401100039000e00000001001d000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000000000201041a000d00000002001d000000020020002a0000177b0000413d0000000001000411000000000010043f0000000e01000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d0000000d030000290000000202300029000000000101043b000000000021041b0000000a01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000700000001001d0000001101100039000b00000001001d000000000101041a000000000001004b00000f8e0000613d0000000701000029000800120010003d000e00030010003d0000000002000019000d00000002001d000000000020043f0000000801000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000000302100039000000000302041a0000000004000416000000000043001a0000177b0000413d0000000003430019000000000032041b0000000201100039000000000201041a000000000042001a0000177b0000413d00000000030004160000000002320019000000000021041b0000000e01000029000000000101041a000000000031001a0000177b0000413d000000000200041600000000012100190000000e02000029000000000012041b0000000d0200002900000001022000390000000b01000029000000000101041a000000000012004b00000f640000413d00000007010000290000000101100039000000000201041a0000000003000416000000000032001a0000177b0000413d0000000002320019000000000021041b0000000c010000290000000001010433000000000001004b00001b0c0000c13d0000000a01000029382834f80000040f000600000001001d0000000c010000290000000001010433000000000001004b00001b6c0000c13d0000000a01000029382833f10000040f000000000201001900000002012000b9000f00000002001d000000000002004b00000fab0000613d0000000f021000fa000000020020006c0000177b0000c13d00000e5d0110012a000000400300043d00000040023000390000000000120435000000200130003900000002020000290000000000210435000e00000003001d000000000003043500000e5a010000410000000000100443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e5b011001c70000800b02000039382838230000040f000000010020019000001be10000613d000000000201043b0000000e030000290000006001300039000d00000002001d000000000021043500000e0b0030009c00000e0b030080410000004001300210000000000200041400000e0b0020009c00000e0b02008041000000c002200210000000000112019f00000e5e011001c70000800d020000390000000403000039000000020600003900000e5f0400004100000000050004110000000a070000293828381e0000040f000000010020019000000d300000613d0000000301000029000000000101041a000000400200043d00000040032000390000000d04000029000000000043043500000020032000390000000f040000290000000000430435000000000012043500000e0b0020009c00000e0b020080410000004001200210000000000200041400000e0b0020009c00000e0b02008041000000c002200210000000000112019f00000e60011001c70000800d02000039000000020300003900000e61040000410000000a050000293828381e0000040f000000010020019000000d300000613d00000e5301000041000000000010044300000009010000290000000400100443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e54011001c70000800202000039382838230000040f000000010020019000001be10000613d000000000101043b000000000001004b00000d300000613d000000400200043d00000e6201000041000f00000002001d000000000012043500000000010004140000000902000029000000040020008c0000101c0000613d0000000f0200002900000e0b0020009c00000e0b02008041000000400220021000000e0b0010009c00000e0b01008041000000c001100210000000000121019f00000e63011001c700008009020000390000000003000416000000090400002900000000050000193828381e0000040f0000000003010019000000600330027000010e0b0030019d0003000000010355000000010020019000001c310000613d0000000f0100002900000e560010009c000008420000213d0000000f01000029000000400010043f0000000001000019000038290001042e000000400100043d000000440210003900000e8803000041000000000032043500000024021000390000001803000039000000000032043500000e6b02000041000000000021043500000004021000390000002003000039000000000032043500000e0b0010009c00000e0b01008041000000400110021000000e6c011001c70000382a000104300000000f01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000301043b0000001401300039000000000201041a000d00000003001d0000001301300039000000000101041a000000000300041100000e0e03300197000000400b00043d0000002404b00039000000000034043500000e750300004100000000003b043500000e0e011001970000000403b000390000000000130435000000000100041400000e0e02200197000000040020008c000011670000c13d0000000104000031000000200040008c0000002004008039000011940000013d000b00000000001d0000000901000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000301043b0000000601300039000000000101041a000000ff0110018f000000020010008c000011430000213d0000000b04000029000010920000c13d000f00000003001d0000000901000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000000602100039000000000202041a000000ff0220018f000000020020008c0000000f03000029000011430000213d0000000b040000290000108c0000c13d0000001102100039000000000202041a0000000801100039000000000101041a000000000021004b000010920000813d0000000801300039000000000101041a000000000041004b000000000100001900000e5d01006041000010d90000013d0000001101300039000000000201041a000000000002004b000010d50000613d000d00120030003d000f0e5d000000450000000001000019000a00000002001d0000109e0000013d0000000101100039000000000021004b000010d20000813d000000000041004b0000109b0000613d000e00000001001d000000000040043f0000000d01000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000000301100039000000000101041a00000e5d021000d1000000000001004b000010b60000613d00000000011200d900000e5d0010009c0000177b0000c13d000c00000002001d0000000e01000029000000000010043f0000000d01000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000000301100039000000000101041a000000000001004b0000000c0200002900000c800000613d00000000011200d90000000f0010002a0000177b0000413d000f000f0010002d0000000b040000290000000a020000290000000e010000290000109b0000013d0000000f0000006b000010d60000c13d00000c800000013d000f0e5d000000450000000f0100002900000e74011001290000000b0400002900000008020000290000000002020433000000000042004b00001be20000a13d0000000502400210000000060220002900000000001204350000000104400039000b00000004001d000000070040006c0000105a0000413d000005c10000013d0000000e01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000201043b0000000d01200039000000000101041a000e00000001001d0000000f01000029000000000010043f000d00000002001d0000000401200039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000000000101041a000c000e001000bd0000000e0000006b0000110d0000613d0000000e030000290000000c023000f9000000000012004b0000177b0000c13d0000000d010000290000000201100039000000000101041a000e00000001001d000000000001004b00000c800000613d0000000f01000029000000000010043f0000000d010000290000000e01100039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d0000000e030000290000000c033000f9000c00000000001d0000000002000019000d00000000001d0000000004000019000000000101043b000000000101041a000000000113004b0000000001004019000000010340018f000000400400043d000000600540003900000000003504350000000d03000029000000010330018f00000040054000390000000000350435000000010220018f00000020034000390000000000230435000000800240003900000000001204350000000c01000029000000010110018f000000000014043500000e0b0040009c00000e0b04008041000000400140021000000e7f011001c7000038290001042e000000010200008a000000020010008c000011490000a13d00000e1201000041000000000010043f0000002101000039000000040010043f00000e13010000410000382a00010430000000400300043d000000a004300039000000000024043500000080023000390000000a04000029000000000042043500000060023000390000000b04000029000000000042043500000040023000390000000c04000029000000000042043500000020023000390000000d040000290000000000420435000000000013043500000e0b0030009c00000e0b03008041000000400130021000000e6d011001c7000038290001042e00000000012100d900000ca20000013d000000400100043d000000440210003900000e7903000041000000000032043500000024021000390000001e03000039000010290000013d00000e0b00b0009c00000e0b0300004100000000030b4019000000400330021000000e0b0010009c00000e0b01008041000000c001100210000000000131019f00000e76011001c7000c0000000b001d382838230000040f0000000c0b0000290000000003010019000000600330027000000e0b03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b0019000011830000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b0000117f0000c13d000000000006004b000011900000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000013a80000613d0000001f01400039000000600110018f00000000020b00190000000003b10019000000000013004b0000000001000039000000010100403900000e560030009c000008420000213d0000000100100190000008420000c13d000c00000003001d000000400030043f000000200040008c00000d300000413d0000000001020433000000000001004b0000000002000039000000010200c039000000000021004b00000d300000c13d000000000001004b000015cd0000c13d0000000c03000029000000440130003900000e7802000041000000000021043500000024013000390000001d02000039000000000021043500000e6b01000041000000000013043500000004013000390000002002000039000000000021043500000e0b0030009c00000e0b03008041000000400130021000000e6c011001c70000382a000104300000000202000039000000000020041b0000000f01000029000000000010043f000000200020043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000001301100039000000000101041a00000e0e011001970000000b0010006c000013e80000c13d0000000f01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000900000001001d000000000101041a000a00000001001d00000e5a010000410000000000100443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e5b011001c70000800b02000039382838230000040f000000010020019000001be10000613d000000000101043b000800000001001d0000000a0010006c0000120f0000a13d00000009010000290000000601100039000000000101041a000000ff0110018f000000020010008c000011430000213d000000000001004b0000120f0000c13d0000000f01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000000601100039000000000201041a000000fe00200190000011430000c13d00000e8b032001970000000102200039000000ff0220018f000000000232019f000000000021041b0000000f01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000000601100039000000000101041a000000ff0110018f000000020010008c000011430000213d000000000001004b0000078d0000c13d0000000f01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000201043b0000000e01000029000000000010043f000500000002001d0000001201200039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000a00000001001d0000000d010000290000000f020000290000000e03000029382824c70000040f000400000001001d0000000c0010006c00000dca0000213d000000040000006b000017830000613d0000000001000411000000000010043f0000000a010000290000000401100039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000000000101041a000000040010006c0000179c0000413d0000000f01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000201043b0000000e01000029000000000010043f000c00000002001d0000001201200039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000201043b0000000001000411000000000010043f000900000002001d0000000401200039000a00000001001d000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000000000101041a00070004001000740000177b0000413d0000000001000411000000000010043f0000000a01000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000000702000029000000000021041b00000009010000290000000301100039000000000201041a000000040020002a0000177b0000413d0000000402200029000000000021041b0000000c010000290000000301100039000000000201041a000000040020002a0000177b0000413d0000000402200029000000000021041b0000000f01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000201043b0000000c01200039000000000101041a0000001002200039000000000302041a000000000013001a0000177b0000413d00000005020000290000000c02200039000000000402041a0000000d024000b90000000d0000006b000012c80000613d0000000d052000fa000000000045004b0000177b0000c13d000000000113001900000e5d0010009c0000177b0000213d00000c800000613d00030e5d001000a100000003032000fa00000005020000290000000d02200039000000000402041a000000000034001a0000177b0000413d0000000003340019000000000032041b0000000d021000b90000000d0000006b000012db0000613d0000000d032000fa000000000013004b0000177b0000c13d00000003012000fa0000000d0010002a0000177b0000413d000c000d0010002d00000005010000290000000101100039000000000101041a0000000c0010006c0000182a0000413d0000000f01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000200000001001d0000001101100039000700000001001d000000000101041a000000000001004b00001c080000c13d00000002010000290000000101100039000000000201041a0000000c0220006c0000177b0000413d000000000021041b000000400100043d00000060021000390000000803000029000000000032043500000040021000390000000d0300002900000000003204350000002002100039000000040300002900000000003204350000000e02000029000000000021043500000e0b0010009c00000e0b010080410000004001100210000000000200041400000e0b0020009c00000e0b02008041000000c002200210000000000112019f00000e5e011001c70000800d020000390000000403000039000000010600003900000e5f0400004100000000050004110000000f070000293828381e0000040f000000010020019000000d300000613d0000000f010000293828329f0000040f00000005010000290000001001100039000000000201041a0000000d012000b90000000d0000006b000013270000613d0000000d031000fa000000000023004b0000177b0000c13d000000030010006b000013320000213d00000003031000fa00000005020000290000001301200039000000000101041a00000e0e011001970000000f02200039000000000202041a00000e0e02200197382836370000040f00000e530100004100000000001004430000000b010000290000000400100443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e54011001c70000800202000039382838230000040f000000010020019000001be10000613d000000000101043b000000000001004b00000d300000613d000000400200043d00000e55010000410000000000120435000f00000002001d00000004012000390000000d02000029000000000021043500000000010004140000000b02000029000000040020008c0000135e0000613d0000000f0200002900000e0b0020009c00000e0b02008041000000400220021000000e0b0010009c00000e0b01008041000000c001100210000000000121019f00000e13011001c70000000b020000293828381e0000040f0000000003010019000000600330027000010e0b0030019d0003000000010355000000010020019000001c3e0000613d0000000f0100002900000e560010009c000008420000213d0000000f01000029000000400010043f00000000010004140000000002000411000000040020008c000f00010000003d000013780000613d00000e0b0010009c00000e0b01008041000000c0011002100000000d03000029000000000003004b00000e570110c1c700000000040004110000800902000039000000000204601900000000050000193828381e0000040f000f00000002001d0000000002010019000000600220027000010e0b0020019d0003000000010355382825a20000040f0000000f010000290000080d0000013d0000000901000029000a00120010003d00008010020000390000000005000019000f00000005001d000000000050043f0000000a01000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c7382838230000040f000000010020019000000d300000613d000000000101043b0000000e02000029000000000020043f0000000401100039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d0000000d0200002900000000020204330000000f05000029000000000052004b00001be20000a13d00000005025002100000000c02200029000000000101043b000000000101041a000000000012043500000001055000390000000b0050006c00008010020000390000137f0000413d0000038c0000013d0000001f0530018f00000e0d06300198000000400200043d0000000004620019000013c00000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000013af0000c13d000013c00000013d00000e0b033001970000001f0530018f00000e0d06300198000000400200043d0000000004620019000013c00000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000013bc0000c13d000000000005004b000013cd0000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f0000000000140435000000600130021000000e0b0020009c00000e0b020080410000004002200210000000000112019f0000382a0001043000000e0b0010009c00000e0b01008041000000c0011002100000000f03000029000000000003004b00000e570110c1c70000800902000039000000000204601900000000050000193828381e0000040f000f00000002001d0000000002010019000000600220027000010e0b0020019d0003000000010355382825a20000040f0000000f01000029000000010110018f382825d30000040f0000000001000019000038290001042e000000400100043d000000440210003900000e6a03000041000010260000013d0000000e0300002900000e0b0030009c00000e0b03008041000000400330021000000e0b0010009c00000e0b01008041000000c001100210000000000131019f00000e13011001c7382838230000040f0000000003010019000000600330027000000e0b03300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000e05700029000014060000613d000000000801034f0000000e09000029000000008a08043c0000000009a90436000000000059004b000014020000c13d000000000006004b000014130000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f000300000001035500000001002001900000160c0000613d0000001f01400039000000600210018f0000000e01200029000000000021004b0000000002000039000000010200403900000e560010009c000008420000213d0000000100200190000008420000c13d000000400010043f000000200030008c00000d300000413d0000000e0200002900000000040204330000000d020000290000000802200039000000000042041b00000020021000390000000c03000029000000000032043500000040021000390000000000020435000e00000004001d000000000041043500000e0b0010009c00000e0b010080410000004001100210000000000200041400000e0b0020009c00000e0b02008041000000c002200210000000000112019f00000e60011001c70000800d020000390000000303000039000000000500041100000e77040000410000000f060000293828381e0000040f000000010020019000000d300000613d0000000f010000293828329f0000040f0000000f01000029382832800000040f000016040000013d0000000901000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000001102100039000000000202041a000c00000002001d00000e560020009c000008420000213d0000000c0200002900000005022002100000003f0320003900000e5c03300197000000400400043d0000000003340019000e00000004001d000000000043004b0000000004000039000000010400403900000e560030009c000008420000213d0000000100400190000008420000c13d000000400030043f0000000e030000290000000c040000290000000003430436000d00000003001d0000001f0320018f000000000002004b000014770000613d0000000d05000029000000000225001900000000040000310000000204400367000000004604043c0000000005650436000000000025004b000014730000c13d000000000003004b0000000c0000006b000014970000613d000b00120010003d0000000004000019000f00000004001d000000000040043f0000000b01000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d0000000e0200002900000000020204330000000f04000029000000000042004b00001be20000a13d00000005024002100000000d02200029000000000101043b0000000301100039000000000101041a000000000012043500000001044000390000000c0040006c0000147c0000413d0000000e01000029000000000201043300000e560020009c000008420000213d00000005012002100000003f0310003900000e5c03300197000000400400043d0000000003340019000c00000004001d000000000043004b0000000004000039000000010400403900000e560030009c000008420000213d0000000100400190000008420000c13d000000400030043f0000000c030000290000000002230436000f00000002001d0000001f0210018f000000000001004b000014b70000613d0000000f04000029000000000114001900000000030000310000000203300367000000003503043c0000000004540436000000000014004b000014b30000c13d000000000002004b000000800200043d00000004010000290000000201100039000300000001001d000000000101041a000000000001004b000018900000c13d000000000002004b0000000a010000290002000a0000002d000018a60000c13d0000000302000029000000000012041b0000000001000411000000000010043f00000004010000290000000401100039000e00000001001d000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000000000201041a000d00000002001d000000020020002a0000177b0000413d0000000001000411000000000010043f0000000e01000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d0000000d030000290000000202300029000000000101043b000000000021041b0000000901000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000700000001001d0000001101100039000b00000001001d000000000101041a000000000001004b000015290000613d0000000701000029000800120010003d000e00030010003d0000000002000019000d00000002001d000000000020043f0000000801000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000000302100039000000000302041a0000000a0030002a0000177b0000413d0000000a03300029000000000032041b0000000201100039000000000201041a0000000a0020002a0000177b0000413d0000000a02200029000000000021041b0000000e01000029000000000101041a0000000a0010002a0000177b0000413d0000000a011000290000000e02000029000000000012041b0000000d0200002900000001022000390000000b01000029000000000101041a000000000012004b000015020000413d00000007010000290000000101100039000000000201041a0000000a0020002a0000177b0000413d0000000a02200029000000000021041b0000000c010000290000000001010433000000000001004b000019480000c13d0000000901000029382834f80000040f000600000001001d0000000c010000290000000001010433000000000001004b000019c90000c13d0000000901000029382833f10000040f000000000201001900000002012000b9000f00000002001d000000000002004b000015450000613d0000000f021000fa000000020020006c0000177b0000c13d00000e5d0110012a000000400300043d00000040023000390000000000120435000000200130003900000002020000290000000000210435000e00000003001d000000000003043500000e5a010000410000000000100443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e5b011001c70000800b02000039382838230000040f000000010020019000001be10000613d000000000201043b0000000e030000290000006001300039000d00000002001d000000000021043500000e0b0030009c00000e0b030080410000004001300210000000000200041400000e0b0020009c00000e0b02008041000000c002200210000000000112019f00000e5e011001c70000800d020000390000000403000039000000020600003900000e5f04000041000000000500041100000009070000293828381e0000040f000000010020019000000d300000613d0000000301000029000000000101041a000000400200043d00000040032000390000000d04000029000000000043043500000020032000390000000f040000290000000000430435000000000012043500000e0b0020009c00000e0b020080410000004001200210000000000200041400000e0b0020009c00000e0b02008041000000c002200210000000000112019f00000e60011001c70000800d02000039000000020300003900000e610400004100000009050000293828381e0000040f000000010020019000000d300000613d0000000901000029000000000010043f0000000201000039000000200010043f0000000001000019382837ef0000040f0000001301100039000000000101041a00000e0e01100197000000000300041000000000020004110000000a04000029382837110000040f0000000001000019000038290001042e00000e0b033001970000001f0530018f00000e0d06300198000000400200043d0000000004620019000013c00000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000015a10000c13d000013c00000013d00000e0b033001970000001f0530018f00000e0d06300198000000400200043d0000000004620019000013c00000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000015ae0000c13d000013c00000013d00000e0b033001970000001f0530018f00000e0d06300198000000400200043d0000000004620019000013c00000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000015bb0000c13d000013c00000013d00000e0b033001970000001f0530018f00000e0d06300198000000400200043d0000000004620019000013c00000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000015c80000c13d000013c00000013d0000000d0100002900000008011000390000000e02000029000000000021041b0000000c010000290000000001210436000d00000001001d00000e5a010000410000000000100443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e5b011001c70000800b02000039382838230000040f000000010020019000001be10000613d000000000101043b0000000c040000290000004002400039000000010300003900000000003204350000000d02000029000000000012043500000e0b0040009c00000e0b040080410000004001400210000000000200041400000e0b0020009c00000e0b02008041000000c002200210000000000112019f00000e60011001c70000800d02000039000000030300003900000e770400004100000000050004110000000f060000293828381e0000040f000000010020019000000d300000613d0000000f010000293828329f0000040f0000000f01000029000000000010043f0000000201000039000000200010043f0000000001000019382837ef0000040f0000000601100039000000000301041a00000e8b0230019700000002022001bf000000000021041b000000400100043d0000000e02000029000000000021043500000e0b0010009c00000e0b01008041000000400110021000000e58011001c7000038290001042e0000001f0530018f00000e0d06300198000000400200043d0000000004620019000013c00000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000016130000c13d000013c00000013d00000e0b033001970000001f0530018f00000e0d06300198000000400200043d0000000004620019000013c00000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000016200000c13d000013c00000013d00000e63011001c7000080090200003900000000030004160000000c0400002900000000050000193828381e0000040f00030000000103550000000003010019000000600330027000010e0b0030019d00000001002001900000174b0000613d0000000b0100002900000e560010009c000008420000213d0000000b01000029000000400010043f0000000f01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000b00000001001d000000000101041a000c00000001001d00000e5a010000410000000000100443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e5b011001c70000800b02000039382838230000040f000000010020019000001be10000613d000000000101043b000800000001001d0000000c0010006c000016750000a13d0000000b010000290000000601100039000000000101041a000000ff0110018f000000020010008c000011430000213d000000000001004b000016750000c13d0000000f01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000000601100039000000000201041a000000fe00200190000011430000c13d00000e8b032001970000000102200039000000ff0220018f000000000232019f000000000021041b0000000f01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000000601100039000000000101041a000000ff0110018f000000020010008c000011430000213d000000000001004b0000078d0000c13d0000000f01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000600000001001d00000000010004160000000f020000290000000e03000029382823eb0000040f0000000002010019000700000002001d0000000d0020006c000009070000413d000000070000006b000017830000613d00000006010000290000000c01100039000000000201041a0000000001000416000000000301001900000000013200a9000000000003004b000016af0000613d000000000300041600000000033100d9000000000023004b0000177b0000c13d00000e5d0110012a00000006020000290000000d02200039000000000302041a000000000013001a0000177b0000413d0000000003130019000000000032041b0000000002000416000000000112004b0000177b0000413d00000006020000290000001002200039000000000202041a000000000300041600050000003200ad000000000003004b000016c40000613d00000005033000f9000000000023004b0000177b0000c13d000000050200002900030e5d00200132000000030110006c000d00000001001d0000177b0000413d0000000e01000029000000000010043f00000006010000290000001201100039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000400000001001d0000000f01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000200000001001d0000001101100039000a00000001001d000000000101041a000000000001004b000017180000613d0000000201000029000900120010003d000c00030010003d0000000002000019000b00000002001d000000000020043f0000000901000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000000302100039000000000302041a0000000d0030002a0000177b0000413d0000000d03300029000000000032041b0000000201100039000000000201041a0000000d0020002a0000177b0000413d0000000d02200029000000000021041b0000000c01000029000000000101041a0000000d0010002a0000177b0000413d0000000d011000290000000c02000029000000000012041b0000000b0200002900000001022000390000000a01000029000000000101041a000000000012004b000016f10000413d00000002010000290000000101100039000000000201041a0000000d0020002a0000177b0000413d0000000d02200029000000000021041b00000004010000290000000301100039000000000101041a000000070010006c0000188c0000413d00000000010004110000000f020000290000000e030000290000000704000029382833410000040f000000400100043d0000006002100039000000080300002900000000003204350000004002100039000000000300041600000000003204350000002002100039000000070300002900000000003204350000000e02000029000000000021043500000e0b0010009c00000e0b010080410000004001100210000000000200041400000e0b0020009c00000e0b02008041000000c002200210000000000112019f00000e5e011001c70000800d02000039000000040300003900000e5f04000041000000000500041100000000060000190000000f070000293828381e0000040f000000010020019000000d300000613d0000000f010000293828329f0000040f0000000501000029000018e30000013d00000e0b033001970000001f0530018f00000e0d06300198000000400200043d0000000004620019000013c00000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000017530000c13d000013c00000013d000000050000006b000017830000613d00000006010000290000000c01100039000000000201041a00000009012000b9000000090000006b000017630000613d00000009031000fa000000000023004b0000177b0000c13d00000e5d0110012a00000006020000290000000d02200039000000000302041a000000000013001a0000177b0000413d0000000003130019000000000032041b000000090110006b0000177b0000413d00000006020000290000001002200039000000000202041a00040009002000bd000000090000006b000017770000613d000000040400002900000009034000fa000000000023004b0000177b0000c13d000000040200002900030e5d00200132000000030110006c0000182e0000813d00000e1201000041000000000010043f0000001101000039000000040010043f00000e13010000410000382a00010430000000050000006b0000178a0000c13d000000400100043d000000440210003900000e8503000041000000000032043500000024021000390000001203000039000010290000013d0000000001000411000000000010043f0000000b010000290000000401100039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000000000101041a000000050010006c000017a30000813d000000400100043d000000440210003900000e7d03000041000000000032043500000024021000390000001b03000039000010290000013d0000000f01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000201043b0000000e01000029000000000010043f000c00000002001d0000001201200039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000201043b0000000001000411000000000010043f000a00000002001d0000000401200039000b00000001001d000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000000000101041a00080005001000740000177b0000413d0000000001000411000000000010043f0000000b01000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000000802000029000000000021041b0000000a010000290000000301100039000000000201041a000000050020002a0000177b0000413d0000000502200029000000000021041b0000000c010000290000000301100039000000000201041a000000050020002a0000177b0000413d0000000502200029000000000021041b0000000f01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000201043b0000000c01200039000000000101041a0000001002200039000000000302041a000000000013001a0000177b0000413d00000006020000290000000c02200039000000000402041a0000000d024000b90000000d0000006b0000180e0000613d0000000d052000fa000000000045004b0000177b0000c13d000000000113001900000e5d0010009c0000177b0000213d00000c800000613d00040e5d001000a100000004032000fa00000006020000290000000d02200039000000000402041a000000000034001a0000177b0000413d0000000003340019000000000032041b0000000d021000b90000000d0000006b000018210000613d0000000d032000fa000000000013004b0000177b0000c13d00000004012000fa0000000d0010002a0000177b0000413d000c000d0010002d00000006010000290000000101100039000000000101041a0000000c0010006c00001a890000813d000000400100043d000000440210003900000e7c030000410000179f0000013d000d00000001001d0000000801000029000000000010043f00000006010000290000001201100039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000200000001001d0000000a01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000100000001001d0000001101100039000c00000001001d000000000101041a000000000001004b0000187f0000613d0000000101000029000b00120010003d000f00030010003d0000000002000019000e00000002001d000000000020043f0000000b01000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000000302100039000000000302041a0000000d04000029000000000043001a0000177b0000413d0000000003430019000000000032041b0000000201100039000000000201041a000000000042001a0000177b0000413d0000000002420019000000000021041b0000000f01000029000000000101041a000000000041001a0000177b0000413d00000000014100190000000f02000029000000000012041b0000000e0200002900000001022000390000000c01000029000000000101041a000000000012004b000018570000413d00000001010000290000000101100039000000000201041a0000000d03000029000000000032001a0000177b0000413d0000000002320019000000000021041b00000002010000290000000301100039000000000101041a000000050010006c000018bd0000813d000000400100043d000000440210003900000e8403000041000011630000013d000000000002004b000019410000c13d0000000e020000290000000003020433000000000003004b000018b70000613d000000000400001900000000020000190000000d06000029000000050540021000000000055600190000000005050433000000000052004b000000000205a0190000000104400039000000000034004b000018990000413d000000000002004b000018ee0000c13d0000000d010000290000000001010433000018b70000013d0000000e010000290000000001010433000000000012004b000019be0000c13d000000000300001900000000010000190000000504300210000000a0044000390000000004040433000000000041004b000000000104a0190000000103300039000000000023004b000018ac0000413d000000000001004b000019120000c13d000000a00100043d0000000a0300002900000000023100a900000000023200d9000000000012004b00000c800000613d0000177b0000013d00000000010004110000000a0200002900000008030000290000000504000029382833410000040f000000400100043d0000006002100039000000070300002900000000003204350000004002100039000000090300002900000000003204350000002002100039000000050300002900000000003204350000000802000029000000000021043500000e0b0010009c00000e0b010080410000004001100210000000000200041400000e0b0020009c00000e0b02008041000000c002200210000000000112019f00000e5e011001c70000800d02000039000000040300003900000e5f04000041000000000500041100000000060000190000000a070000293828381e0000040f000000010020019000000d300000613d0000000a010000293828329f0000040f000000040100002900000e5d0010009c000006090000413d00000006020000290000001301200039000000000101041a00000e0e011001970000000f02200039000000000202041a00000e0e022001970000000303000029000006080000013d000000000300001900000005043002100000000d0540002900000000060504330000000a056000b90000000a075000fa000000000067004b0000177b0000c13d00000000052500d90000000a0550006b0000177b0000413d0000000c060000290000000006060433000000000036004b00001be20000a13d0000000f04400029000000000054043500000001033000390000000e040000290000000004040433000000000043004b000018ef0000413d0000000a031000b90000000a043000fa000000000014004b0000177b0000c13d00000000022300d9000200000002001d00000009010000293828322b0000040f0000000301000029000000000101041a000000020010002a0000177b0000413d0000000201100029000014c30000013d00000000020000190000000503200210000000a00430003900000000050404330000000a045000b90000000a064000fa000000000056004b0000177b0000c13d000000000041004b00001a850000213d00000000041400d90000000a0440006b0000177b0000413d0000000c050000290000000005050433000000000025004b00001be20000a13d0000000f0330002900000000004304350000000102200039000000800300043d000000000032004b000019130000413d0000000a010000290002000a0000002d000014c30000013d000000000002004b000019410000c13d0000000e020000290000000003020433000000000003004b000019bb0000613d000000000400001900000000020000190000000d06000029000000050540021000000000055600190000000005050433000000000052004b000000000205a0190000000104400039000000000034004b000019350000413d000000000002004b00001a3e0000c13d0000000d01000029000019ba0000013d000000400100043d000000440210003900000e7003000041000000000032043500000024021000390000001503000039000010290000013d0000000002000411000b0e0e0020019b0000000004000019000019530000013d000000000021041b0000000c0100002900000000010104330000000d040000290000000104400039000000000014004b000015340000813d00000005024002100000000f022000290000000002020433000e00000002001d000000000002004b000019500000613d000d00000004001d0000000901000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000201043b0000000d01000029000000000010043f000700000002001d0000001201200039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000201043b0000000b01000029000000000010043f000600000002001d0000000401200039000800000001001d000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000000000201041a000500000002001d0000000e0020002a0000177b0000413d0000000b01000029000000000010043f0000000801000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d00000005020000290000000e02200029000000000101043b000000000021041b00000006010000290000000301100039000000000201041a0000000e0220006c0000177b0000413d000000000021041b00000007010000290000000301100039000000000201041a0000000e0220006c0000194c0000813d0000177b0000013d0000000e010000290000000001010433000000000012004b000019be0000c13d000000000300001900000000010000190000000705000029000000050430021000000000044500190000000004040433000000000041004b000000000104a0190000000103300039000000000023004b000019af0000413d000000000001004b00001a670000c13d0000000701000029000000000101043300000000020004160000000003020019000018b80000013d000000400100043d000000440210003900000e7103000041000000000032043500000e6b02000041000000000021043500000024021000390000002003000039000000000032043500000004021000390000102e0000013d0000000402000029000800120020003d0000000004000019000019d30000013d0000000c0100002900000000010104330000000e040000290000000104400039000000000014004b0000153b0000813d00000005024002100000000f032000290000000002030433000000000002004b000019d00000613d000b00000003001d000e00000004001d000000000000043f0000000801000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000000301100039000000000101041a000d0006001000bd000000060000006b000019f00000613d0000000d0300002900000006023000fa000000000012004b0000177b0000c13d0000000e01000029000000000010043f0000000801000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000000301100039000000000101041a000000000001004b00000c800000613d0000000c0200002900000000020204330000000e0020006c00001be20000a13d0000000d011000f90000000b020000290000000002020433000b0000001200ad000d00000002001d000000000002004b00001a110000613d0000000b030000290000000d023000fa000000000012004b0000177b0000c13d000000400100043d000700000001001d00000e5a010000410000000000100443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e5b011001c70000800b02000039382838230000040f000000010020019000001be10000613d000000000101043b0000000703000029000000600230003900000000001204350000000b0100002900000e5d0110012a0000004002300039000000000012043500000020013000390000000d0200002900000000002104350000000e01000029000000000013043500000e0b0030009c00000e0b030080410000004001300210000000000200041400000e0b0020009c00000e0b02008041000000c002200210000000000121019f00000e5e011001c70000800d02000039000000040300003900000e5f040000410000000005000411000000000600001900000009070000293828381e0000040f0000000100200190000019cd0000c13d00000d300000013d000000000300001900000005043002100000000d0540002900000000060504330000000005000416000000000705001900000000057600a900000000077500d9000000000067004b0000177b0000c13d00000000052500d90000000006000416000000000556004b0000177b0000413d0000000c060000290000000006060433000000000036004b00001be20000a13d0000000f04400029000000000054043500000001033000390000000e040000290000000004040433000000000043004b00001a3f0000413d0000000003000416000000000403001900000000034100a900000000044300d9000000000014004b0000177b0000c13d00000000022300d9000200000002001d0000000a010000293828322b0000040f0000000301000029000000000101041a000000020010002a0000177b0000413d000000020110002900000f250000013d00000000020000190000000503200210000000070430002900000000050404330000000004000416000000000604001900000000046500a900000000066400d9000000000056004b0000177b0000c13d000000000041004b00001a850000213d00000000041400d90000000005000416000000000445004b0000177b0000413d0000000c050000290000000005050433000000000025004b00001be20000a13d0000000f033000290000000000430435000000010220003900000008030000290000000003030433000000000032004b00001a680000413d0000000001000416000200000001001d00000f250000013d000000400100043d000000440210003900000e7203000041000011630000013d0000000f01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000300000001001d0000001101100039000800000001001d000000000101041a000000000001004b00001ae30000c13d00000003010000290000000101100039000000000201041a0000000c0220006c0000177b0000413d000000000021041b000000400100043d00000060021000390000000903000029000000000032043500000040021000390000000d0300002900000000003204350000002002100039000000050300002900000000003204350000000e02000029000000000021043500000e0b0010009c00000e0b010080410000004001100210000000000200041400000e0b0020009c00000e0b02008041000000c002200210000000000112019f00000e5e011001c70000800d020000390000000403000039000000010600003900000e5f0400004100000000050004110000000f070000293828381e0000040f000000010020019000000d300000613d0000000f010000293828329f0000040f00000006010000290000001001100039000000000201041a0000000d012000b90000000d0000006b00001acc0000613d0000000d031000fa000000000023004b0000177b0000c13d000000040010006b00001ad70000213d00000004031000fa00000006020000290000001301200039000000000101041a00000e0e011001970000000f02200039000000000202041a00000e0e02200197382836370000040f0000000f01000029000000000010043f0000000201000039000000200010043f0000000001000019382837ef0000040f0000001301100039000000000101041a00000e0e0110019700000000020004110000000d03000029000006080000013d0000000301000029000700120010003d000a00030010003d000b00000000001d0000000b01000029000000000010043f0000000701000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000000302100039000000000302041a0000000c0330006c0000177b0000413d000000000032041b0000000201100039000000000201041a0000000c0220006c0000177b0000413d000000000021041b0000000a01000029000000000101041a0000000c0110006c0000177b0000413d0000000a02000029000000000012041b0000000b02000029000b00010020003d0000000801000029000000000101041a0000000b0010006b00001ae70000413d00001a9d0000013d0000000002000411000b0e0e0020019b000e00000000001d00001b140000013d0000000e02000029000e00010020003d0000000e0010006b00000f9a0000813d0000000e0200002900000005022002100000000f022000290000000002020433000d00000002001d000000000002004b00001b100000613d0000000a01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000201043b0000000e01000029000000000010043f000700000002001d0000001201200039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000201043b0000000b01000029000000000010043f000600000002001d0000000401200039000800000001001d000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b000000000201041a000500000002001d0000000d0020002a0000177b0000413d0000000b01000029000000000010043f0000000801000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d00000005020000290000000d02200029000000000101043b000000000021041b00000006010000290000000301100039000000000201041a0000000d0220006c0000177b0000413d000000000021041b00000007010000290000000301100039000000000201041a0000000d0220006c0000177b0000413d000000000021041b0000000c01000029000000000101043300001b100000013d0000000402000029000800120020003d000e00000000001d00001b740000013d0000000e02000029000e00010020003d0000000e0010006b00000fa10000813d0000000e0200002900000005022002100000000f02200029000b00000002001d0000000002020433000000000002004b00001b700000613d000000000000043f0000000801000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000000301100039000000000101041a000d0006001000bd000000060000006b00001b910000613d0000000d0300002900000006023000fa000000000012004b0000177b0000c13d0000000e01000029000000000010043f0000000801000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000000301100039000000000101041a000000000001004b00000c800000613d0000000c0200002900000000020204330000000e0020006c00001be20000a13d0000000d011000f90000000b020000290000000002020433000b0000001200ad000d00000002001d000000000002004b00001bb20000613d0000000b030000290000000d023000fa000000000012004b0000177b0000c13d000000400100043d000700000001001d00000e5a010000410000000000100443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e5b011001c70000800b02000039382838230000040f000000010020019000001be10000613d000000000101043b0000000703000029000000600230003900000000001204350000000b0100002900000e5d0110012a0000004002300039000000000012043500000020013000390000000d0200002900000000002104350000000e01000029000000000013043500000e0b0030009c00000e0b030080410000004001300210000000000200041400000e0b0020009c00000e0b02008041000000c002200210000000000121019f00000e5e011001c70000800d02000039000000040300003900000e5f04000041000000000500041100000000060000190000000a070000293828381e0000040f000000010020019000000d300000613d0000000c01000029000000000101043300001b700000013d000000000001042f00000e1201000041000000000010043f0000003201000039000000040010043f00000e13010000410000382a0001043000000e63011001c7000080090200003900000000030004160000000e0400002900000000050000193828381e0000040f00030000000103550000000003010019000000600330027000010e0b0030019d000000010020019000001bfb0000613d0000000d0100002900000e560010009c000008420000213d0000000d02000029000000400020043f0000000f0100002900000ca30000013d00000e0b033001970000001f0530018f00000e0d06300198000000400200043d0000000004620019000013c00000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001c030000c13d000013c00000013d0000000201000029000600120010003d000900030010003d000a00000000001d0000000a01000029000000000010043f0000000601000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000000d300000613d000000000101043b0000000302100039000000000302041a0000000c0330006c0000177b0000413d000000000032041b0000000201100039000000000201041a0000000c0220006c0000177b0000413d000000000021041b0000000901000029000000000101041a0000000c0110006c0000177b0000413d0000000902000029000000000012041b0000000a02000029000a00010020003d0000000701000029000000000101041a0000000a0010006b00001c0c0000413d000012f80000013d00000e0b033001970000001f0530018f00000e0d06300198000000400200043d0000000004620019000013c00000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001c390000c13d000013c00000013d00000e0b033001970000001f0530018f00000e0d06300198000000400200043d0000000004620019000013c00000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001c460000c13d000013c00000013d000000000301001900000000040304330000000001420436000000000004004b00001c570000613d00000000020000190000002003300039000000000503043300000000015104360000000102200039000000000042004b00001c510000413d000000000001042d00000e640010009c00001c620000213d000000430010008c00001c620000a13d00000002020003670000000401200370000000000101043b0000002402200370000000000202043b000000000001042d00000000010000190000382a0001043000000e640010009c00001c700000213d000000630010008c00001c700000a13d00000002030003670000000401300370000000000101043b0000002402300370000000000202043b0000004403300370000000000303043b000000000001042d00000000010000190000382a000104300000001f0220003900000e8c022001970000000001120019000000000021004b0000000002000039000000010200403900000e560010009c00001c7e0000213d000000010020019000001c7e0000c13d000000400010043f000000000001042d00000e1201000041000000000010043f0000004101000039000000040010043f00000e13010000410000382a0001043000000000430104340000000001320436000000000003004b00001c900000613d000000000200001900000000052100190000000006240019000000000606043300000000006504350000002002200039000000000032004b00001c890000413d000000000231001900000000000204350000001f0230003900000e8c022001970000000001210019000000000001042d0011000000000002000600000001001d0000000102000039000000000102041a00000e8a0010009c000023180000813d0000000303000039000000000403041a0000000103100039000000000032041b00000e8d0110009a000000000041041b000e00000004001d000000000040043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000230f0000613d000000000101043b001100000001001d00000006010000290000000021010434000000000001004b000023350000613d000f00000002001d0000000001020433001000000001001d00000e5a010000410000000000100443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e5b011001c70000800b02000039382838230000040f0000000100200190000023170000613d000000400b00043d0000002402b000390000000403b00039000000000101043b000000100010006b000023390000a13d0000000605000029000000e00d50003900000000010d043300000e0e00100198000023420000613d0000004001500039000300000001001d0000000001010433000000210110008a00000e9e0010009c0000234b0000a13d000001000a50003900000000010a043300000e8f0010009c000023540000813d0000012006500039000000000106043300000e8f0010009c0000235d0000813d000001600f50003900000000010f043300000e0e00100198000023660000613d000001800e50003900000000010e0433000000000001004b0000236f0000613d0000006001500039000001a004500039000a00000004001d0000000004040433000200000001001d000000000101043300000e900500004100000000005b043500000e0e011001970000000000130435000000000100041100000e0e01100197000c00000001001d0000000000120435000000000100041400000e0e02400197000000040020008c000d0000000e001d000b0000000f001d001000000006001d00001cfe0000c13d0000000103000031000000200030008c0000002004000039000000000403401900001d310000013d00070000000a001d00080000000d001d00000e0b00b0009c00000e0b0300004100000000030b4019000000400330021000000e0b0010009c00000e0b01008041000000c001100210000000000131019f00000e76011001c700090000000b001d382838230000040f000000090b0000290000000003010019000000600330027000000e0b03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b001900001d1c0000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b00001d180000c13d000000000006004b00001d290000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f000300000001035500000001002001900000000d0e0000290000000b0f000029000000080d000029000000070a000029000023ab0000613d0000001f01400039000000600110018f000000000cb1001900000000001c004b0000000002000039000000010200403900000e5600c0009c000023180000213d0000000100200190000023180000c13d0000004000c0043f000000200030008c0000230f0000413d00000000040b0433000000000004004b0000000002000039000000010200c039000000000024004b0000230f0000c13d0000002402c000390000000406c00039000000000004004b0000004404c000390000237d0000613d0000000205000029000000000505043300000e0e05500197000000110b0000290000001307b00039000000000807041a00000e9108800197000000000558019f000000000057041b0000000f05000029000000000505043300000000005b041b0000000607b00039000000000807041a00000e8b08800197000000000087041b00000000070a04330000000c08b00039000000000078041b000000100700002900000000070704330000001008b00039000000000078041b000000060a0000290000014007a00039000000000707043300000e0e077001970000000f08b00039000000000908041a00000e9109900197000000000779019f000000000078041b0000000807b00039000000010800008a000000000087041b0000001107b0003900000003080000290000000008080433000000000087041b000000a00aa00039000000000b0f043300000000080d043300000000090e043300000e920700004100010000000a001d000000000a0a043300000000007c043500000002070000390000000000760435000000e0060000390000000000620435000000e402c0003900000000a70a0434000000000072043500100000000c001d0000010406c0003900000e0b0990019700000e0e0880019700000e0e02b00197000000000007004b00001d8e0000613d000000000b000019000000000c6b0019000000000dba0019000000000d0d04330000000000dc0435000000200bb0003900000000007b004b00001d870000413d000000000a76001900000000000a043500000e0b05500197000000100b000029000000840ab0003900000000005a04350000006405b0003900000000009504350000000000840435000000c404b000390000000000040435000000a404b0003900000000000404350000000004000414000000040020008c000000200500008a00001dd60000613d0000001f01700039000000000151016f0000000001b10049000000000161001900000e0b0010009c00000e0b01008041000000600110021000000e0b00b0009c00000e0b0300004100000000030b40190000004003300210000000000131019f00000e0b0040009c00000e0b04008041000000c003400210000000000113019f3828381e0000040f000000100b0000290000000003010019000000600330027000000e0b03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b001900001dc10000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b00001dbd0000c13d000000000006004b00001dce0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f000300000001035500000001002001900000000d0e0000290000000b0f000029000023b70000613d0000001f01400039000000600110018f0000000002b10019000000000012004b0000000001000039000000010100403900000e560020009c000023180000213d0000000100100190000023180000c13d000000400020043f000000200030008c0000230f0000413d00000000010b043300000011040000290000000902400039000000000012041b00000000010f043300000e0e011001970000000a02400039000000000302041a00000e9103300197000000000113019f000000000012041b00000000010e04330000000b02400039000000000012041b0000000a01000029000000000101043300000e0e011001970000001402400039000000000302041a00000e9103300197000000000113019f000000000012041b0000001501400039000000000201041a00000e91022001970000000003000411000000000232019f000000000021041b000000060200002900000080012000390000000001010433000900000001001d0000000001020433000d00000001001d0000000e01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000230f0000613d000000000101043b001000000001001d000000000101041a001100000001001d00000e5a010000410000000000100443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e5b011001c70000800b02000039382838230000040f0000000100200190000023170000613d000000000101043b000000110010006c00001e410000a13d00000010010000290000000601100039000000000101041a000000ff0110018f000000020010008c0000232f0000213d000000000001004b00001e410000c13d0000000e01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000230f0000613d000000000101043b0000000601100039000000000201041a000000fe002001900000232f0000c13d00000e8b032001970000000102200039000000ff0220018f000000000232019f000000000021041b0000000e01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000230f0000613d000000000101043b0000000601100039000000000101041a000000ff0110018f000000020010008c0000232f0000213d000000000001004b0000238a0000c13d0000000e01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000230f0000613d000000000101043b000500000001001d0000000d0000006b000023910000613d0000000e01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000230f0000613d000000000101043b0000001102100039000000000202041a001000000002001d00000e560020009c000023180000213d000000100200002900000005022002100000003f0320003900000e5c03300197000000400700043d0000000003370019000000000073004b0000000004000039000000010400403900000e560030009c000023180000213d0000000100400190000023180000c13d000000400030043f000000100300002900000000093704360000001f0320018f000000000002004b00001e950000613d0000000002290019000000000400003100000002044003670000000005090019000000004604043c0000000005650436000000000025004b00001e910000c13d000000000003004b000000100000006b00001eb80000613d000f00120010003d0000000003000019000b00000007001d000a00000009001d001100000003001d000000000030043f0000000f01000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000230f0000613d0000000b0700002900000000020704330000001103000029000000000032004b0000000a09000029000023110000a13d00000005023002100000000002920019000000000101043b0000000301100039000000000101041a00000000001204350000000103300039000000100030006c00001e9c0000413d000000000207043300000e560020009c000023180000213d00000005012002100000003f0310003900000e5c03300197000000400400043d0000000003340019001000000004001d000000000043004b0000000004000039000000010400403900000e560030009c000023180000213d0000000100400190000023180000c13d000000400030043f00000010030000290000000002230436001100000002001d0000001f0210018f000000000001004b000000090600002900001ed80000613d0000001104000029000000000114001900000000030000310000000203300367000000003503043c0000000004540436000000000014004b00001ed40000c13d000000000002004b0000000d08000029000000001306043400000005020000290000000202200039000400000002001d000000000202041a000000000002004b00001f580000613d000000000003004b000023980000c13d0000000001070433000000000001004b0000239f0000613d0000000003000019000000000a00001900000005043002100000000004940019000000000404043300000000004a004b000000000a04a0190000000103300039000000000013004b00001ee80000413d00000000000a004b000023a90000613d000000000100001900000005031002100000000004930019000000000504043300000000048500a900000000068400d9000000000056004b000023a30000c13d0000000004a400d9000000000448004b000023a30000413d00000010050000290000000005050433000000000015004b000023110000a13d0000001103300029000000000043043500000001011000390000000003070433000000000031004b00001ef30000413d000f0000008200ad0000000f018000f9000000000021004b000023a30000c13d000b0000000a001d0000000e01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000230f0000613d0000000f060000290007000b00600102000000000101043b0000000d02100039000000000302041a00000007043000b90000000b0060006b00001f240000213d00000007054000fa000000000035004b000023a30000c13d0000000205100039000000000505041a000000000005004b000023e50000613d00000000045400d9000000000034001a000023a30000413d0000000003340019000000000032041b0000000002000411000000000020043f0000000e01100039000b00000001001d000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039000f00000004001d382838230000040f00000001002001900000230f0000613d000000000101043b000000000101041a000a00000001001d0000000f0010002a000023a30000413d0000000001000411000000000010043f0000000b01000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000230f0000613d0000000f030000290000000a02300029000000000101043b000000000021041b0000000401000029000000000101041a000000070010002a000023a30000413d000000070210002900001f850000013d000000000003004b0000000002080019000700000008001d00001f850000613d0000000002070433000000000023004b000023d50000c13d00000000040000190000000002000019000000050540021000000000055100190000000005050433000000000052004b000000000205a0190000000104400039000000000034004b00001f610000413d000000000002004b000023e00000613d000000000300001900000005043002100000000005410019000000000605043300000000058600a900000000078500d9000000000067004b000023a30000c13d000000000052004b0000231e0000213d00000000052500d9000000000558004b000023a30000413d00000010060000290000000006060433000000000036004b000023110000a13d00000011044000290000000000540435000000010330003900000009040000290000000004040433000000000043004b00001f6c0000413d0000000002080019000700000008001d0000000401000029000000000021041b0000000001000411000000000010043f00000005010000290000000401100039000f00000001001d000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000230f0000613d000000000101043b000000000201041a000b00000002001d000000070020002a000023a30000413d0000000001000411000000000010043f0000000f01000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000230f0000613d0000000b030000290000000702300029000000000101043b000000000021041b0000000e01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000230f0000613d000000000101043b000800000001001d0000001101100039000b00000001001d000000000101041a000000000001004b00001feb0000613d0000000801000029000a00120010003d000900030010003d0000000002000019000f00000002001d000000000020043f0000000a01000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000230f0000613d000000000101043b0000000302100039000000000302041a0000000d04000029000000000043001a0000000905000029000023a30000413d0000000003430019000000000032041b0000000201100039000000000201041a000000000042001a000023a30000413d0000000002420019000000000021041b000000000105041a000000000041001a000023a30000413d0000000001410019000000000015041b0000000f0200002900000001022000390000000b01000029000000000101041a000000000012004b00001fc40000413d00000008010000290000000101100039000000000201041a0000000d03000029000000000032001a000023a30000413d0000000002320019000000000021041b00000010010000290000000001010433000000000001004b000020560000613d0000801002000039000000000500001900001ffd0000013d0000000105500039000000000015004b000020560000813d000000050450021000000011034000290000000003030433000000000003004b00001ffa0000613d000f00000003001d000d00000005001d0000000e01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c7382838230000040f00000001002001900000230f0000613d000000000201043b0000000d01000029000000000010043f000a00000002001d0000001201200039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000230f0000613d000000000201043b0000000c01000029000000000010043f000900000002001d0000000401200039000b00000001001d000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000230f0000613d000000000101043b000000000201041a000800000002001d0000000f0020002a000023a30000413d0000000c01000029000000000010043f0000000b01000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000230f0000613d0000000f030000290000000802300029000000000101043b000000000021041b00000009010000290000000301100039000000000201041a000000000232004b000023a30000413d000000000021041b0000000a010000290000000301100039000000000201041a000000000232004b000023a30000413d000000000021041b0000001001000029000000000101043300008010020000390000000d0500002900001ffa0000013d0000000e01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000230f0000613d000000000301043b0000000601300039000000000101041a000000ff0110018f000000020010008c0000232f0000213d0000208c0000c13d000f00000003001d0000000e01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000230f0000613d000000000101043b0000000602100039000000000202041a000000ff0220018f000000020020008c0000000f030000290000232f0000213d000020860000c13d0000001102100039000000000202041a0000000801100039000000000101041a000000000021004b0000208c0000813d0000000801300039000000000101041a000000000001004b000000000100001900000e5d01006041000020d00000013d0000001101300039000000000101041a000a00000001001d000000000001004b000020cd0000613d000c00120030003d000f0e5d000000450000000002000019000020980000013d00000001022000390000000a0020006c000020ca0000813d000000000002004b000020950000613d000d00000002001d000000000000043f0000000c01000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000230f0000613d000000000101043b0000000301100039000000000101041a00000e5d021000d1000000000001004b000020b00000613d00000000011200d900000e5d0010009c000023a30000c13d000b00000002001d0000000d01000029000000000010043f0000000c01000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000230f0000613d000000000101043b0000000301100039000000000101041a000000000001004b0000000b02000029000023e50000613d00000000011200d90000000f0010002a000023a30000413d000f000f0010002d0000000d02000029000020950000013d0000000f0000006b000020ce0000c13d000023e50000013d000f0e5d000000450000000f0100002900000e7401100129000900000001001d00000010010000290000000001010433000000000001004b0000214c0000613d0000000502000029000d00120020003d0000000004000019000020dc0000013d0000000104400039000000000014004b0000214c0000813d000000050240021000000011032000290000000002030433000000000002004b000020d90000613d000b00000003001d000f00000004001d000000000000043f0000000d01000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000230f0000613d000000000101043b0000000301100039000000000101041a00000009041000b9000000090000006b0000000f03000029000020f90000613d00000009024000fa000000000012004b000023a30000c13d000c00000004001d000000000030043f0000000d01000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000230f0000613d000000000101043b0000000301100039000000000101041a000000000001004b0000000f030000290000000c04000029000023e50000613d00000010020000290000000002020433000000000032004b000023110000a13d00000000011400d90000000b02000029000000000302043300000000041300a9000000000003004b0000211a0000613d00000000023400d9000000000012004b000023a30000c13d000b00000004001d000c00000003001d000000400100043d000a00000001001d00000e5a010000410000000000100443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e5b011001c70000800b02000039382838230000040f0000000100200190000023170000613d000000000101043b0000000a03000029000000600230003900000000001204350000000b0100002900000e5d0110012a0000004002300039000000000012043500000020013000390000000c0200002900000000002104350000000f01000029000000000013043500000e0b0030009c00000e0b030080410000004001300210000000000200041400000e0b0020009c00000e0b02008041000000c002200210000000000112019f00000e5e011001c70000800d02000039000000040300003900000e5f04000041000000000500041100000000060000190000000e070000293828381e0000040f00000001002001900000230f0000613d000000100100002900000000010104330000000f04000029000020d90000013d0000000e01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000230f0000613d000000000101043b000c00000001001d0000000601100039000000000101041a000000ff0110018f000000020010008c0000232f0000213d0000219a0000c13d0000000e01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000230f0000613d000000000101043b0000000602100039000000000202041a000000ff0220018f000000020020008c0000232f0000213d0000217b0000c13d0000001102100039000000000202041a0000000801100039000000000101041a000000000021004b0000219a0000813d0000000c020000290000000801200039000000000101041a000000000010043f0000001201200039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000230f0000613d000000000101043b0000000301100039000000000201041a00000e5d012000d1000000000002004b000021930000613d00000000022100d900000e5d0020009c000023a30000c13d0000000c020000290000000202200039000000000202041a000000000002004b000023e50000613d00000000042100d9000021dc0000013d0000000c010000290000001101100039000000000101041a000f00000001001d000000000001004b000023e50000613d0000000c01000029000d00120010003d00000000020000190000000003000019001100000003001d001000000002001d000000000020043f0000000d01000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000230f0000613d000000000101043b0000000301100039000000000101041a000000000001004b0000001103000029000023e50000613d00000e7401100129000000000031001a000023a30000413d0000000003310019000000100200002900000001022000390000000f0020006c000021a40000413d0000000f0200002900000e5d012000d100000000022100d900000e5d0020009c000023a30000c13d0000000f0200002900000e74022000d1000000000001004b000021cc0000613d00000000011200d900000e5d0010009c000023a30000c13d0000000f0100002900000e93011000d1000000000002004b000021d30000613d00000000022100d900000e5d0020009c000023a30000c13d000000000003004b000023e50000613d0000000c020000290000000202200039000000000202041a000000000002004b000023e50000613d00000000012100d900000000043100d900000007014000b9000000000004004b000021e20000613d00000000024100d9000000070020006c000023a30000c13d001000000004001d00000e5d0110012a000000400300043d00000040023000390000000000120435000000200130003900000007020000290000000000210435001100000003001d000000000003043500000e5a010000410000000000100443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e5b011001c70000800b02000039382838230000040f0000000100200190000023170000613d000000000201043b00000011030000290000006001300039000f00000002001d000000000021043500000e0b0030009c00000e0b030080410000004001300210000000000200041400000e0b0020009c00000e0b02008041000000c002200210000000000112019f00000e5e011001c70000800d020000390000000403000039000000020600003900000e5f0400004100000000050004110000000e070000293828381e0000040f00000001002001900000230f0000613d0000000401000029000000000101041a000000400200043d00000040032000390000000f040000290000000000430435000000200320003900000010040000290000000000430435000000000012043500000e0b0020009c00000e0b020080410000004001200210000000000200041400000e0b0020009c00000e0b02008041000000c002200210000000000112019f00000e60011001c70000800d02000039000000020300003900000e61040000410000000e050000293828381e0000040f00000001002001900000230f0000613d0000000e01000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000230f0000613d000000000101043b000b00000001001d0000001101100039000000000101041a001000000001001d00000e560010009c000023180000213d000000100100002900000005011002100000003f0210003900000e5c02200197000000400400043d0000000002240019000000000042004b0000000003000039000000010300403900000e560020009c000023180000213d0000000100300190000023180000c13d000000400020043f000f00000004001d00000010020000290000000002240436000d00000002001d0000001f0210018f000000000001004b000022590000613d0000000d04000029000000000114001900000000030000310000000203300367000000003503043c0000000004540436000000000014004b000022550000c13d000000000002004b000000100000006b0000227a0000613d0000000b01000029000c00120010003d0000000004000019001100000004001d000000000040043f0000000c01000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000230f0000613d0000000f0200002900000000020204330000001104000029000000000042004b000023110000a13d00000005024002100000000d02200029000000000101043b0000000301100039000000000101041a00000000001204350000000104400039000000100040006c0000225f0000413d0000000b010000290000000201100039000000000101041a001000000001001d000000400100043d001100000001001d00000e5a010000410000000000100443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e5b011001c70000800b02000039382838230000040f0000000100200190000023170000613d000000000101043b000000110600002900000020026000390000006003000039000000000032043500000000001604350000000f050000290000000002050433000000600160003900000000002104350000008001600039000000000002004b000022a10000613d000000000300001900000010070000290000002005500039000000000405043300000000014104360000000103300039000000000023004b0000229a0000413d000022a20000013d000000100700002900000040026000390000000000720435000000000161004900000e0b0010009c00000e0b01008041000000600110021000000e0b0060009c00000e0b060080410000004002600210000000000121019f000000000200041400000e0b0020009c00000e0b02008041000000c002200210000000000121019f00000e57011001c70000800d02000039000000020300003900000e94040000410000000e050000293828381e0000040f00000001002001900000230f0000613d0000000601000029000000c0011000390000000002010433000000020100002900000000030104330000000101000029000000000401043300000003010000290000000005010433000000400100043d0000002006100039000000800700003900000000007604350000000000510435000000800510003900000000640404340000000000450435000000a005100039000000000004004b000022d50000613d000000000700001900000000085700190000000009760019000000000909043300000000009804350000002007700039000000000047004b000022ce0000413d00000e0e03300197000000000645001900000000000604350000001f04400039000000200900008a000000000494016f000000000645001900000000041600490000004005100039000000000045043500000000540204340000000002460436000000000004004b000022eb0000613d000000000600001900000000072600190000000008650019000000000808043300000000008704350000002006600039000000000046004b000022e40000413d00000000054200190000000000050435000000600510003900000000003504350000001f03400039000000000393016f0000000003130049000000000223001900000e0b0020009c00000e0b02008041000000600220021000000e0b0010009c00000e0b010080410000004001100210000000000112019f000000000200041400000e0b0020009c00000e0b02008041000000c002200210000000000112019f00000e57011001c70000800d02000039000000030300003900000e950400004100000000050004110000000e060000293828381e0000040f00000001002001900000230f0000613d0000000302000039000000000102041a000000010110003a000023a30000613d000000000012041b0000000e01000029000000000001042d00000000010000190000382a0001043000000e1201000041000000000010043f0000003201000039000000040010043f00000e13010000410000382a00010430000000000001042f00000e1201000041000000000010043f0000004101000039000000040010043f00000e13010000410000382a00010430000000400100043d000000440210003900000e7203000041000000000032043500000024021000390000001e03000039000000000032043500000e6b02000041000000000021043500000004021000390000002003000039000000000032043500000e0b0010009c00000e0b01008041000000400110021000000e6c011001c70000382a0001043000000e1201000041000000000010043f0000002101000039000000040010043f00000e13010000410000382a00010430000000400100043d000000440210003900000e9d030000410000239b0000013d00000e6b0100004100000000001b0435000000200100003900000000001304350000001e0100003900000000001204350000004401b0003900000e8e02000041000023770000013d00000e6b0100004100000000001b0435000000200100003900000000001304350000001a0100003900000000001204350000004401b0003900000e9c02000041000023770000013d00000e6b0100004100000000001b0435000000200100003900000000001304350000001e0100003900000000001204350000004401b0003900000e9b02000041000023770000013d00000e6b0100004100000000001b043500000020010000390000000000130435000000110100003900000000001204350000004401b0003900000e9a02000041000023770000013d00000e6b0100004100000000001b0435000000200100003900000000001304350000001a0100003900000000001204350000004401b0003900000e9902000041000023770000013d00000e6b0100004100000000001b0435000000200100003900000000001304350000001d0100003900000000001204350000004401b0003900000e9802000041000023770000013d00000e6b0100004100000000001b043500000020010000390000000000130435000000180100003900000000001204350000004401b0003900000e9702000041000000000021043500000e0b00b0009c00000e0b0b0080410000004001b0021000000e6c011001c70000382a0001043000000e6b0100004100000000001c0435000000200100003900000000001604350000001c01000039000000000012043500000e9601000041000000000014043500000e0b00c0009c00000e0b0c0080410000004001c0021000000e6c011001c70000382a00010430000000400100043d000000440210003900000e8303000041000000000032043500000024021000390000001903000039000023240000013d000000400100043d000000440210003900000e7303000041000000000032043500000024021000390000001f03000039000023240000013d000000400100043d000000440210003900000e7003000041000000000032043500000024021000390000001503000039000023240000013d00000000018200a900000000018100d9000000000021004b000023e50000613d00000e1201000041000000000010043f0000001101000039000000040010043f00000e13010000410000382a000104300000000001090433000023e10000013d0000001f0530018f00000e0d06300198000000400200043d0000000004620019000023c20000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000023b20000c13d000023c20000013d0000001f0530018f00000e0d06300198000000400200043d0000000004620019000023c20000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000023be0000c13d000000000005004b000023cf0000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f0000000000140435000000600130021000000e0b0020009c00000e0b020080410000004002200210000000000121019f0000382a00010430000000400100043d000000440210003900000e7103000041000000000032043500000e6b0200004100000000002104350000002402100039000000200300003900000000003204350000000402100039000023290000013d000000000101043300000000028100a900000000028200d9000000000012004b000023a30000c13d00000e1201000041000000000010043f0000001201000039000000040010043f00000e13010000410000382a000104300008000000000002000600000003001d000100000001001d000200000002001d000000000020043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000249c0000613d000000000101043b0000001102100039000000000202041a000500000002001d00000e8a0020009c000024b00000813d000000050200002900000005022002100000003f0320003900000e5c03300197000000400400043d0000000003340019000400000004001d000000000043004b0000000004000039000000010400403900000e560030009c000024b00000213d0000000100400190000024b00000c13d000000400030043f000000040300002900000005040000290000000003430436000700000003001d0000001f0320018f000000000002004b0000241f0000613d0000000705000029000000000225001900000000040000310000000204400367000000004604043c0000000005650436000000000025004b0000241b0000c13d000000000003004b000000050000006b0000243f0000613d000300120010003d0000000004000019000800000004001d000000000040043f0000000301000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000249c0000613d000000040200002900000000020204330000000804000029000000000042004b0000249e0000a13d00000005024002100000000702200029000000000101043b0000000301100039000000000101041a00000000001204350000000104400039000000050040006c000024240000413d0000000201000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000249c0000613d000000000201043b0000000c01200039000000000101041a0000001002200039000000000202041a000000000012001a0000000104000029000024aa0000413d000000000212001900000000014200a9000000000004004b0000245b0000613d00000000034100d9000000000023004b000024aa0000c13d00000e5d0110012a000000000114004b000024aa0000413d00000004020000290000000003020433000000060030006c0000249e0000a13d000000060200002900000005022002100000000702200029000000000202043300000e5d052000d1000000000002004b0000246c0000613d00000000042500d900000e5d0040009c000024aa0000c13d0000000004000019000024720000013d000000000005004b00000000050000190000248d0000c13d000024a40000013d000000060040006c0000248d0000613d000000050640021000000007066000290000000006060433000000000005004b000024880000613d00000000076500a900000000055700d9000000000065004b000024aa0000c13d000000000016001a000024aa0000413d0000000005160019000000000007004b0000246e0000613d000000000005004b000024a40000613d000000010670008a00000000055600d900000001055000390000248d0000013d000000000016001a000024aa0000413d000000000016001a0000000005000019000024a40000613d0000000104400039000000000034004b000024720000413d000000000005004b000024b60000613d000000000012001a000024aa0000413d0000000001120019000000010250008a00000e5d0220012a000000000012004b000024aa0000813d00000ea0022001670000000001210019000000000001042d00000000010000190000382a0001043000000e1201000041000000000010043f0000003201000039000000040010043f00000e13010000410000382a0001043000000e1201000041000000000010043f0000001201000039000000040010043f00000e13010000410000382a0001043000000e1201000041000000000010043f0000001101000039000000040010043f00000e13010000410000382a0001043000000e1201000041000000000010043f0000004101000039000000040010043f00000e13010000410000382a00010430000000400100043d000000440210003900000e9f03000041000000000032043500000024021000390000001b03000039000000000032043500000e6b02000041000000000021043500000004021000390000002003000039000000000032043500000e0b0010009c00000e0b01008041000000400110021000000e6c011001c70000382a000104300008000000000002000600000003001d000100000001001d000200000002001d000000000020043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000257d0000613d000000000101043b0000001102100039000000000202041a000500000002001d00000e8a0020009c0000258b0000813d000000050200002900000005022002100000003f0320003900000e5c03300197000000400400043d0000000003340019000400000004001d000000000043004b0000000004000039000000010400403900000e560030009c0000258b0000213d00000001004001900000258b0000c13d000000400030043f000000040300002900000005040000290000000003430436000700000003001d0000001f0320018f000000000002004b000024fb0000613d0000000705000029000000000225001900000000040000310000000204400367000000004604043c0000000005650436000000000025004b000024f70000c13d000000000003004b000000050000006b0000251b0000613d000300120010003d0000000004000019000800000004001d000000000040043f0000000301000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000257d0000613d000000040200002900000000020204330000000804000029000000000042004b0000257f0000a13d00000005024002100000000702200029000000000101043b0000000301100039000000000101041a00000000001204350000000104400039000000050040006c000025000000413d0000000201000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000257d0000613d000000000201043b0000000c01200039000000000101041a0000001002200039000000000202041a000000000012001a000025850000413d0000000003120019000000010100002900000e5d041000d1000000000001004b000025370000613d00000000011400d900000e5d0010009c000025850000c13d00000e5d0030009c000025850000213d00000e5d0030009c0000256c0000613d00000004010000290000000002010433000000060020006c0000257f0000a13d000000060100002900000005011002100000000701100029000000000101043300000e5d051000d1000000000001004b000025490000613d00000000061500d900000e5d0060009c000025850000c13d00000e5d0330009900000000033400d90000000004000019000025540000013d000000000036004b000025850000413d00000000050000190000256c0000613d0000000104400039000000000024004b000025720000813d000000060040006c000025510000613d000000050640021000000007066000290000000006060433000000000005004b0000254d0000613d00000000076500a900000000055700d9000000000065004b000025850000c13d000000000536004b000025850000413d000000000007004b000025690000613d000000000036004b0000256c0000613d000000010670008a00000000055600d90000000105500039000025510000013d000000000036004b0000000005000019000025510000c13d00000e1201000041000000000010043f0000001201000039000000040010043f00000e13010000410000382a00010430000000000005004b000025910000613d000000010250008a00000e5d0220012a00000000022300190000000102200039000000000032004b000025850000413d000000000112004b000025850000413d000000000001042d00000000010000190000382a0001043000000e1201000041000000000010043f0000003201000039000000040010043f00000e13010000410000382a0001043000000e1201000041000000000010043f0000001101000039000000040010043f00000e13010000410000382a0001043000000e1201000041000000000010043f0000004101000039000000040010043f00000e13010000410000382a00010430000000400100043d000000440210003900000e9f03000041000000000032043500000024021000390000001b03000039000000000032043500000e6b02000041000000000021043500000004021000390000002003000039000000000032043500000e0b0010009c00000e0b01008041000000400110021000000e6c011001c70000382a000104300000000101000032000025cc0000613d00000e8a0010009c000025cd0000813d0000001f0310003900000e8c033001970000003f0330003900000e8c04300197000000400300043d0000000004430019000000000034004b0000000005000039000000010500403900000e560040009c000025cd0000213d0000000100500190000025cd0000c13d000000400040043f000000000513043600000e8c021001980000001f0310018f00000000012500190000000304000367000025bf0000613d000000000604034f000000006706043c0000000005750436000000000015004b000025bb0000c13d000000000003004b000025cc0000613d000000000224034f0000000303300210000000000401043300000000043401cf000000000434022f000000000202043b0000010003300089000000000232022f00000000023201cf000000000242019f0000000000210435000000000001042d00000e1201000041000000000010043f0000004101000039000000040010043f00000e13010000410000382a00010430000000000001004b000025d60000613d000000000001042d000000400100043d000000440210003900000ea103000041000000000032043500000024021000390000001403000039000000000032043500000e6b02000041000000000021043500000004021000390000002003000039000000000032043500000e0b0010009c00000e0b01008041000000400110021000000e6c011001c70000382a00010430000f000000000002000a00000002001d000900000001001d000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d000000000101043b000e00000001001d000000000101041a000f00000001001d00000e5a010000410000000000100443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e5b011001c70000800b02000039382838230000040f000000010020019000002b570000613d000000000101043b0000000f0010006c000026270000a13d0000000e010000290000000601100039000000000101041a000000ff0110018f000000020010008c00002b5e0000213d000000000001004b000026270000c13d0000000901000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d000000000101043b0000000601100039000000000201041a000000fe0020019000002b5e0000c13d00000e8b032001970000000102200039000000ff0220018f000000000232019f000000000021041b0000000901000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d000000000101043b0000000601100039000000000101041a000000ff0110018f000000020010008c00002b5e0000213d000000000001004b00002b640000c13d0000000901000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d000000000201043b0000000001000411000000000010043f000100000002001d0000000401200039000400000001001d000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d000000000101043b000000000101041a0000000a0010006c00002b6b0000413d000000000100041a000000020010008c00002b720000613d0000000202000039000000000020041b0000000901000029000000000010043f000000200020043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d000000000101043b000e00000001001d0000000901000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d000000000201043b0000000d01200039000000000101041a000f00000001001d000000000100041100000e0e01100197000700000001001d000000000010043f000d00000002001d0000000401200039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d000000000101043b000000000101041a0000000f0200002900000000032100a9000000000002004b0000269a0000613d00000000022300d9000000000012004b00002b450000c13d000f00000003001d0000000d020000290000000201200039000000000101041a000c00000001001d000000000001004b00002b510000613d0000000701000029000000000010043f0000000e01200039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d0000000c030000290000000f023000f9000000000101043b000000000101041a000000000112004b0000000001004019000f00000001001d000026db0000a13d0000000001000411000000000010043f0000000e010000290000000e01100039000d00000001001d000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d000000000101043b000000000201041a000c00000002001d0000000f0020002a00002b450000413d0000000001000411000000000010043f0000000d01000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d0000000c030000290000000f02300029000000000101043b000000000021041b0000000001000411000000000010043f0000000e010000290000000401100039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d000000000101043b000000000101041a000000400400043d00000040024000390000000f03000029000000000032043500000020024000390000000000120435000e00000004001d000000000004043500000e5a010000410000000000100443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e5b011001c70000800b02000039382838230000040f000000010020019000002b570000613d000000000101043b0000000e030000290000006002300039000000000012043500000e0b0030009c00000e0b030080410000004001300210000000000200041400000e0b0020009c00000e0b02008041000000c002200210000000000112019f00000e5e011001c70000800d020000390000000403000039000000060600003900000e5f04000041000000000500041100000009070000293828381e0000040f000000010020019000002a6b0000613d0000000901000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d000000000101043b0000001301100039000000000301041a000000400200043d00000044012000390000000f040000290000000000410435000000200120003900000ea20400004100000000004104350000002404200039000000070500002900000000005404350000004404000039000000000042043500000ea30020009c00002b580000813d000000800a2000390000004000a0043f00000ea400a0009c00002b580000213d00000e0e0b300197000000c003200039000000400030043f000000200300003900000000003a0435000000a00320003900000ea5040000410000000000430435000000000302043300000000020004140000000400b0008c0000000109000039000027710000c13d00000001010000310000000002090019000000000001004b0000278a0000613d00000e560010009c00002b580000213d0000001f0410003900000e8c044001970000003f0440003900000e8c04400197000000400d00043d00000000044d00190000000000d4004b0000000005000039000000010500403900000e560040009c00002b580000213d000000010050019000002b580000c13d000000400040043f000000000c1d043600000e8c031001980000001f0410018f00000000013c00190000000305000367000027630000613d000000000605034f00000000070c0019000000006806043c0000000007870436000000000017004b0000275f0000c13d000000000004004b0000278c0000613d000000000335034f0000000304400210000000000501043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f00000000003104350000278c0000013d00000e0b0010009c00000e0b01008041000000400110021000000e0b0030009c00000e0b030080410000006003300210000000000113019f00000e0b0020009c00000e0b02008041000000c002200210000000000121019f00000000020b0019000f0000000a001d000e0000000b001d3828381e0000040f0000000e0b0000290000000f0a0000290000000109000039000000010220018f0003000000010355000000600110027000010e0b0010019d00000e0b01100197000000000001004b000027470000c13d000000600d000039000000800c00003900000000030d0433000000000002004b00002b790000613d000000000003004b000027a80000c13d000f0000000d001d000e0000000c001d00000e530100004100000000001004430000000400b00443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e54011001c70000800202000039382838230000040f000000010020019000002b570000613d000000000101043b000000000001004b0000000f0100002900002bab0000613d0000000003010433000000000003004b00000001090000390000000e0c000029000027b40000613d00000e640030009c00002a6b0000213d000000200030008c00002a6b0000413d00000000010c0433000000000001004b0000000002000039000000010200c039000000000021004b00002a6b0000c13d000000000001004b00002b8f0000613d000000000090041b0000000901000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d000000000101043b0000000d02100039000000000302041a0000000a043000b90000000a0000006b000027cb0000613d0000000a054000fa000000000035004b00002b450000c13d0000000205100039000000000505041a000000000005004b00002b510000613d000f0000005400e10000000f0330006c00002b450000413d000000000032041b0000000002000411000000000020043f0000000e01100039000e00000001001d000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d000000000101043b000000000101041a000f000f0010007400002b450000413d0000000001000411000000000010043f0000000e01000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d000000000101043b0000000f02000029000000000021041b0000000901000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d000000000101043b0000001102100039000000000202041a000e00000002001d00000e560020009c00002b580000213d0000000e0200002900000005022002100000003f0320003900000e5c03300197000000400400043d0000000003340019000d00000004001d000000000043004b0000000004000039000000010400403900000e560030009c00002b580000213d000000010040019000002b580000c13d000000400030043f0000000d030000290000000e0400002900000000074304360000001f0320018f000000000002004b000028250000613d0000000002270019000000000400003100000002044003670000000005070019000000004604043c0000000005650436000000000025004b000028210000c13d000000000003004b0000000e0000006b000028470000613d000c00120010003d0000000003000019000800000007001d000f00000003001d000000000030043f0000000c01000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d0000000d0200002900000000020204330000000f03000029000000000032004b000000080700002900002b4b0000a13d00000005023002100000000002720019000000000101043b0000000301100039000000000101041a000000000012043500000001033000390000000e0030006c0000282b0000413d0000000d01000029000000000201043300000e560020009c00002b580000213d00000005012002100000003f0310003900000e5c03300197000000400400043d0000000003340019000f00000004001d000000000043004b0000000004000039000000010400403900000e560030009c00002b580000213d000000010040019000002b580000c13d000000400030043f0000000f030000290000000002230436000b00000002001d0000001f0210018f000000000001004b000028670000613d0000000b04000029000000000114001900000000030000310000000203300367000000003503043c0000000004540436000000000014004b000028630000c13d000000000002004b0000000d010000290000000002010433000000010100008a000000000002004b000028760000613d0000000003000019000000050430021000000000047400190000000004040433000000000041004b00000000010480190000000103300039000000000023004b0000286e0000413d0000000a031000b90000000a0000006b0000287c0000613d0000000a043000fa000000000014004b00002b450000c13d00000001010000290000000201100039000200000001001d000000000101041a000000000001004b00002b510000613d000e0000001300e1000000000002004b000028a20000613d00000000020000190000000503200210000000000473001900000000050404330000000a045000b9000000000005004b0000288f0000613d00000000055400d90000000a0050006c00002b450000c13d0000000f050000290000000005050433000000000025004b00002b4b0000a13d00000000041400d90000000b0330002900000000004304350000000f050000290000000005050433000000000025004b00002b4b0000a13d0000000e0440006c00002b450000413d000000000043043500000001022000390000000d030000290000000003030433000000000032004b000028860000413d0000000901000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d000000000101043b000300000001001d0000001101100039000800000001001d000000000101041a000000000001004b000028dd0000613d0000000301000029000600120010003d000500030010003d0000000002000019000c00000002001d000000000020043f0000000601000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d000000000101043b0000000302100039000000000302041a0000000e0330006c000000050400002900002b450000413d000000000032041b0000000201100039000000000201041a0000000e0220006c00002b450000413d000000000021041b000000000104041a0000000e0110006c00002b450000413d000000000014041b0000000c0200002900000001022000390000000801000029000000000101041a000000000012004b000028ba0000413d00000003010000290000000101100039000000000201041a0000000e0220006c00002b450000413d000000000021041b0000000201000029000000000101041a0000000a0110006c00002b450000413d0000000202000029000000000012041b0000000001000411000000000010043f0000000401000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d000000000101043b000000000101041a000c000a0010007400002b450000413d0000000001000411000000000010043f0000000401000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d000000000101043b0000000c02000029000000000021041b0000000d010000290000000001010433000000000001004b000029720000613d00008010040000390000000005000019000029140000013d0000000105500039000000000015004b000029720000813d0000000f020000290000000002020433000000000052004b00002b4b0000a13d00000005025002100000000b022000290000000002020433000000000002004b000029110000613d000800000002001d000c00000005001d0000000901000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000000002040019382838230000040f000000010020019000002a6b0000613d000000000201043b0000000c01000029000000000010043f000500000002001d0000001201200039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d000000000201043b0000000701000029000000000010043f000400000002001d0000000401200039000600000001001d000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d000000000101043b000000000201041a000300000002001d000000080020002a00002b450000413d0000000701000029000000000010043f0000000601000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d00000008030000290000000302300029000000000101043b000000000021041b00000004010000290000000301100039000000000201041a000000000232004b00002b450000413d000000000021041b00000005010000290000000301100039000000000201041a000000000232004b00002b450000413d000000000021041b0000000d01000029000000000101043300008010040000390000000c05000029000029110000013d0000000901000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d000000000301043b0000000601300039000000000101041a000000ff0110018f000000020010008c00002b5e0000213d000029a80000c13d000c00000003001d0000000901000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d000000000101043b0000000602100039000000000202041a000000ff0220018f000000020020008c0000000c0300002900002b5e0000213d000029a20000c13d0000001102100039000000000202041a0000000801100039000000000101041a000000000021004b000029a80000813d0000000801300039000000000101041a000000000001004b000000000100001900000e5d01006041000029ec0000013d0000001101300039000000000101041a000500000001001d000000000001004b000029e90000613d000700120030003d000c0e5d000000450000000002000019000029b40000013d0000000102200039000000050020006c000029e60000813d000000000002004b000029b10000613d000800000002001d000000000000043f0000000701000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d000000000101043b0000000301100039000000000101041a00000e5d021000d1000000000001004b000029cc0000613d00000000011200d900000e5d0010009c00002b450000c13d000600000002001d0000000801000029000000000010043f0000000701000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d000000000101043b0000000301100039000000000101041a000000000001004b000000060200002900002b510000613d00000000011200d90000000c0010002a00002b450000413d000c000c0010002d0000000802000029000029b10000013d0000000c0000006b000029ea0000c13d00002b510000013d000c0e5d000000450000000c0100002900000e7401100129000400000001001d0000000d010000290000000001010433000000000001004b00002a6d0000613d0000000101000029000700120010003d0000000003000019000029fa0000013d00000001033000390000000d010000290000000001010433000000000013004b00002a6d0000813d0000000f010000290000000001010433000000000031004b00002b4b0000a13d00000005013002100000000b01100029000800000001001d0000000001010433000000000001004b000029f50000613d000000000000043f0000000701000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039000c00000003001d382838230000040f0000000c03000029000000010020019000002a6b0000613d000000000101043b0000000301100039000000000101041a00000004041000b9000000040000006b00002a1b0000613d00000004024000fa000000000012004b00002b450000c13d000600000004001d000000000030043f0000000701000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000c03000029000000010020019000002a6b0000613d000000000101043b0000000301100039000000000101041a000000000001004b00002b510000613d0000000f020000290000000002020433000000000032004b000000060200002900002b4b0000a13d00000000011200d90000000802000029000000000302043300000000041300a9000000000003004b00002a3c0000613d00000000023400d9000000000012004b00002b450000c13d000600000004001d000800000003001d000000400100043d000500000001001d00000e5a010000410000000000100443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e5b011001c70000800b02000039382838230000040f000000010020019000002b570000613d000000000101043b000000050300002900000060023000390000000000120435000000060100002900000e5d0110012a000000400230003900000000001204350000002001300039000000080200002900000000002104350000000c01000029000000000013043500000e0b0030009c00000e0b030080410000004001300210000000000200041400000e0b0020009c00000e0b02008041000000c002200210000000000112019f00000e5e011001c70000800d02000039000000040300003900000e5f040000410000000005000411000000000600001900000009070000293828381e0000040f0000000c030000290000000100200190000029f50000c13d00000000010000190000382a00010430000000400300043d00000040013000390000000e02000029000000000021043500000020013000390000000a020000290000000000210435000f00000003001d000000000003043500000e5a010000410000000000100443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e5b011001c70000800b02000039382838230000040f000000010020019000002b570000613d000000000201043b0000000f030000290000006001300039000800000002001d000000000021043500000e0b0030009c00000e0b030080410000004001300210000000000200041400000e0b0020009c00000e0b02008041000000c002200210000000000112019f00000e5e011001c70000800d020000390000000403000039000000030600003900000e5f04000041000000000500041100000009070000293828381e0000040f000000010020019000002a6b0000613d0000000201000029000000000101041a000700000001001d0000000901000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d000000000101043b000a00000001001d0000000601100039000000000101041a000000ff0110018f000000020010008c00002b5e0000213d00002ae90000c13d0000000901000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d000000000101043b0000000602100039000000000202041a000000ff0220018f000000020020008c00002b5e0000213d00002aca0000c13d0000001102100039000000000202041a0000000801100039000000000101041a000000000021004b00002ae90000813d0000000a020000290000000801200039000000000101041a000000000010043f0000001201200039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d000000000101043b0000000301100039000000000201041a00000e5d012000d1000000000002004b00002ae20000613d00000000022100d900000e5d0020009c00002b450000c13d0000000a020000290000000202200039000000000202041a000000000002004b00002b510000613d00000000012100d900002b2b0000013d0000000a010000290000001101100039000000000101041a000c00000001001d000000000001004b00002b510000613d0000000a01000029000b00120010003d00000000020000190000000003000019000f00000003001d000d00000002001d000000000020043f0000000b01000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002a6b0000613d000000000101043b0000000301100039000000000101041a000000000001004b0000000f0300002900002b510000613d00000e7401100129000000000031001a0000000d0200002900002b450000413d000000000331001900000001022000390000000c0020006c00002af30000413d0000000c0200002900000e5d012000d100000000022100d900000e5d0020009c00002b450000c13d0000000c0200002900000e74022000d1000000000001004b00002b1b0000613d00000000011200d900000e5d0010009c00002b450000c13d0000000c0100002900000e93011000d1000000000002004b00002b220000613d00000000022100d900000e5d0020009c00002b450000c13d000000000003004b00002b510000613d0000000a020000290000000202200039000000000202041a000000000002004b00002b510000613d00000000012100d900000000013100d9000000400200043d000000400320003900000008040000290000000000430435000000200320003900000000001304350000000701000029000000000012043500000e0b0020009c00000e0b020080410000004001200210000000000200041400000e0b0020009c00000e0b02008041000000c002200210000000000112019f00000e60011001c70000800d02000039000000020300003900000e610400004100000009050000293828381e0000040f000000010020019000002a6b0000613d0000000e01000029000000000001042d00000e1201000041000000000010043f0000001101000039000000040010043f00000e13010000410000382a0001043000000e1201000041000000000010043f0000003201000039000000040010043f00000e13010000410000382a0001043000000e1201000041000000000010043f0000001201000039000000040010043f00000e13010000410000382a00010430000000000001042f00000e1201000041000000000010043f0000004101000039000000040010043f00000e13010000410000382a0001043000000e1201000041000000000010043f0000002101000039000000040010043f00000e13010000410000382a00010430000000400100043d000000440210003900000e830300004100000000003204350000002402100039000000190300003900002bb10000013d000000400100043d000000440210003900000e7d03000041000000000032043500000024021000390000001b0300003900002bb10000013d000000400100043d000000440210003900000e7b03000041000000000032043500000024021000390000001f0300003900002bb10000013d00000000010a0019000000000003004b00002ba30000c13d000000400400043d000f00000004001d00000e6b020000410000000000240435000000040340003900000020020000390000000000230435000000240240003938281c840000040f0000000f02000029000000000121004900000e0b0010009c00000e0b0100804100000e0b0020009c00000e0b0200804100000060011002100000004002200210000000000121019f0000382a00010430000000400100043d000000640210003900000ea6030000410000000000320435000000440210003900000ea703000041000000000032043500000024021000390000002a03000039000000000032043500000e6b02000041000000000021043500000004021000390000002003000039000000000032043500000e0b0010009c00000e0b01008041000000400110021000000ea8011001c70000382a0001043000000e0b00c0009c00000e0b0c0080410000004002c0021000000e0b0030009c00000e0b030080410000006001300210000000000121019f0000382a00010430000000400100043d000000440210003900000ea903000041000000000032043500000024021000390000001d03000039000000000032043500000e6b02000041000000000021043500000004021000390000002003000039000000000032043500000e0b0010009c00000e0b01008041000000400110021000000e6c011001c70000382a000104300006000000000002000600000001001d000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002c7b0000613d000000000101043b0000000601100039000000000101041a000000ff0110018f000000030010008c00002c7d0000813d000000020010008c00002c830000c13d0000000601000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002c7b0000613d000000000201043b0000000801200039000200000001001d000000000101041a000000000010043f000300000002001d0000001201200039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002c7b0000613d000000000201043b0000000001000411000000000010043f000400000002001d0000000401200039000500000001001d000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002c7b0000613d000000000101043b000000000101041a000000000001004b00002c8a0000613d0000000001000411000000000010043f00000004010000290000000501100039000100000001001d000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002c7b0000613d000000000101043b000000000101041a000000ff0010019000002c950000c13d0000000501000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002c7b0000613d00000003020000290000000102200039000000000302041a000000000101043b000000000101041a000400000001001d000000000113004b00002c9c0000413d000000000012041b0000000001000411000000000010043f0000000101000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002c7b0000613d000000000101043b000000000201041a00000e8b0220019700000001022001bf000000000021041b0000000201000029000000000101041a000300000001001d0000000501000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002c7b0000613d000000000101043b000000000101041a000200000001001d000000400100043d000500000001001d00000e5a010000410000000000100443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e5b011001c70000800b02000039382838230000040f000000010020019000002cad0000613d000000000101043b0000000503000029000000600230003900000000001204350000004001300039000000040200002900000000002104350000002001300039000000020200002900000000002104350000000301000029000000000013043500000e0b0030009c00000e0b030080410000004001300210000000000200041400000e0b0020009c00000e0b02008041000000c002200210000000000112019f00000e5e011001c70000800d02000039000000040300003900000e5f040000410000000005000411000000000603001900000006070000293828381e0000040f000000010020019000002c7b0000613d0000000401000029000000000001042d00000000010000190000382a0001043000000e1201000041000000000010043f0000002101000039000000040010043f00000e13010000410000382a00010430000000400100043d000000440210003900000e830300004100000000003204350000002402100039000000190300003900002ca20000013d000000400100043d000000440210003900000eab03000041000000000032043500000e6b020000410000000000210435000000240210003900000020030000390000000000320435000000040210003900002ca70000013d000000400100043d000000440210003900000eaa03000041000000000032043500000024021000390000001d0300003900002ca20000013d000000400100043d000000440210003900000e7c03000041000000000032043500000024021000390000001b03000039000000000032043500000e6b02000041000000000021043500000004021000390000002003000039000000000032043500000e0b0010009c00000e0b01008041000000400110021000000e6c011001c70000382a00010430000000000001042f000a000000000002000600000002001d000400000001001d000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002e100000613d000000000101043b0000000601100039000000000101041a000000ff0110018f000000030010008c00002e180000813d000000020010008c00002e250000c13d0000000401000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002e100000613d000000000201043b0000000601000029000000000010043f000200000002001d0000001201200039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002e100000613d000000000101043b000a00000001001d0000000401000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002e100000613d000000000101043b0000000602100039000000000202041a000000ff0220018f000000020020008c00002e180000213d00002e1e0000c13d0000001102100039000000000202041a0000000801100039000000000101041a000000000021004b00002e1e0000413d0000000001000411000000000010043f0000000a010000290000000401100039000300000001001d000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002e100000613d000000000101043b000000000101041a000000000001004b00002e2c0000613d0000000001000411000000000010043f0000000a010000290000000601100039000100000001001d000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002e100000613d000000000101043b000000000101041a000000ff0010019000002e370000c13d0000000401000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002e100000613d000000000301043b0000000601300039000000000101041a000000ff0110018f000000020010008c00002e180000213d00002d590000c13d000a00000003001d0000000401000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002e100000613d000000000101043b0000000602100039000000000202041a000000ff0220018f000000020020008c0000000a0300002900002e180000213d00002d530000c13d0000001102100039000000000202041a0000000801100039000000000101041a000000000021004b00002d590000813d0000000801300039000000000101041a000000060010006c000000000100001900000e5d0100604100002da50000013d0000001101300039000000000201041a000000000002004b00002da20000613d000800120030003d000a0e5d0000004500000000030000190000000601000029000500000002001d00002d660000013d0000000103300039000000000023004b00002d9a0000813d000000000013004b00002d630000613d000900000003001d000000000010043f0000000801000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002e100000613d000000000101043b0000000301100039000000000101041a00000e5d031000d1000000000001004b000000090200002900002d7f0000613d00000000011300d900000e5d0010009c00002e120000c13d000700000003001d000000000020043f0000000801000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002e100000613d000000000101043b0000000301100039000000000101041a000000000001004b000000070200002900002d9c0000613d00000000011200d90000000a0010002a000000090300002900002e120000413d000a000a0010002d0000000601000029000000050200002900002d630000013d0000000a0000006b00002da30000c13d00000e1201000041000000000010043f0000001201000039000000040010043f00000e13010000410000382a00010430000a0e5d000000450000000a0100002900000e7401100129000a00000001001d0000000001000411000000000010043f0000000301000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002e100000613d000000000101043b000000000201041a0000000a0300002900000000013200a9000000000003004b00002dbc0000613d00000000033100d9000000000023004b00002e120000c13d000a0e5d0010013200000002010000290000000101100039000000000201041a0000000a0220006c00002e3b0000413d000000000021041b0000000001000411000000000010043f0000000101000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002e100000613d000000000101043b000000000201041a00000e8b0220019700000001022001bf000000000021041b0000000301000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f000000010020019000002e100000613d000000000101043b000000000101041a000800000001001d000000400100043d000900000001001d00000e5a010000410000000000100443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e5b011001c70000800b02000039382838230000040f000000010020019000002e4c0000613d000000000101043b00000009030000290000006002300039000000000012043500000040013000390000000a0200002900000000002104350000002001300039000000080200002900000000002104350000000601000029000000000013043500000e0b0030009c00000e0b030080410000004001300210000000000200041400000e0b0020009c00000e0b02008041000000c002200210000000000112019f00000e5e011001c70000800d020000390000000403000039000000070600003900000e5f04000041000000000500041100000004070000293828381e0000040f000000010020019000002e100000613d0000000a01000029000000000001042d00000000010000190000382a0001043000000e1201000041000000000010043f0000001101000039000000040010043f00000e13010000410000382a0001043000000e1201000041000000000010043f0000002101000039000000040010043f00000e13010000410000382a00010430000000400100043d000000440210003900000ead0300004100000000003204350000002402100039000000140300003900002e410000013d000000400100043d000000440210003900000e830300004100000000003204350000002402100039000000190300003900002e410000013d000000400100043d000000440210003900000eab03000041000000000032043500000e6b020000410000000000210435000000240210003900000020030000390000000000320435000000040210003900002e460000013d000000400100043d000000440210003900000eac0300004100002e3e0000013d000000400100043d000000440210003900000e7c03000041000000000032043500000024021000390000001b03000039000000000032043500000e6b02000041000000000021043500000004021000390000002003000039000000000032043500000e0b0010009c00000e0b01008041000000400110021000000e6c011001c70000382a00010430000000000001042f0009000000000002000500000001001d000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000030e80000613d000000000101043b0000000601100039000000000101041a000000ff0110018f000000030010008c000030fc0000813d000000020010008c000031030000c13d0000000501000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000030e80000613d000000000101043b000400000001001d000000000100041a000000020010008c0000310a0000613d0000000202000039000000000020041b0000000501000029000000000010043f000000200020043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000030e80000613d000000000101043b000700000001001d0000000501000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000030e80000613d0000000002000411000000000301043b0000000d01300039000000000101041a000900000001001d00000e0e01200197000800000001001d000000000010043f000600000003001d0000000401300039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000030e80000613d000000000101043b000000000101041a000000090200002900000000032100a9000000000002004b00002eaf0000613d00000000022300d9000000000012004b000030f60000c13d000900000003001d00000006020000290000000201200039000000000101041a000300000001001d000000000001004b000030ea0000613d0000000801000029000000000010043f0000000e01200039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000030e80000613d000000030300002900000009023000f9000000000101043b000000000101041a000000000112004b0000000001004019000900000001001d00002ef00000a13d0000000001000411000000000010043f00000007010000290000000e01100039000600000001001d000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000030e80000613d000000000101043b000000000201041a000300000002001d000000090020002a000030f60000413d0000000001000411000000000010043f0000000601000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000030e80000613d00000003030000290000000902300029000000000101043b000000000021041b0000000001000411000000000010043f00000007010000290000000401100039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000030e80000613d000000000101043b000000000101041a000000400400043d00000040024000390000000903000029000000000032043500000020024000390000000000120435000700000004001d000000000004043500000e5a010000410000000000100443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e5b011001c70000800b02000039382838230000040f0000000100200190000031020000613d000000000101043b00000007030000290000006002300039000000000012043500000e0b0030009c00000e0b030080410000004001300210000000000200041400000e0b0020009c00000e0b02008041000000c002200210000000000112019f00000e5e011001c70000800d020000390000000403000039000000060600003900000e5f04000041000000000500041100000005070000293828381e0000040f0000000100200190000030e80000613d0000000501000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000030e80000613d000000000101043b0000001301100039000000000301041a000000400200043d000000440120003900000009040000290000000000410435000000200120003900000ea20400004100000000004104350000002404200039000000080500002900000000005404350000004404000039000000000042043500000ea30020009c000030f00000813d000000800a2000390000004000a0043f00000ea400a0009c000030f00000213d00000e0e0b300197000000c003200039000000400030043f000000200300003900000000003a0435000000a00320003900000ea5040000410000000000430435000000000302043300000000020004140000000400b0008c000000010900003900002f860000c13d00000001010000310000000002090019000000000001004b00002f9f0000613d00000e560010009c000030f00000213d0000001f0410003900000e8c044001970000003f0440003900000e8c04400197000000400d00043d00000000044d00190000000000d4004b0000000005000039000000010500403900000e560040009c000030f00000213d0000000100500190000030f00000c13d000000400040043f000000000c1d043600000e8c031001980000001f0410018f00000000013c0019000000030500036700002f780000613d000000000605034f00000000070c0019000000006806043c0000000007870436000000000017004b00002f740000c13d000000000004004b00002fa10000613d000000000335034f0000000304400210000000000501043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f000000000031043500002fa10000013d00000e0b0010009c00000e0b01008041000000400110021000000e0b0030009c00000e0b030080410000006003300210000000000113019f00000e0b0020009c00000e0b02008041000000c002200210000000000121019f00000000020b001900090000000a001d00080000000b001d3828381e0000040f000000080b000029000000090a0000290000000109000039000000010220018f0003000000010355000000600110027000010e0b0010019d00000e0b01100197000000000001004b00002f5c0000c13d000000600d000039000000800c00003900000000030d0433000000000002004b000031110000613d000000000003004b00002fbd0000c13d00090000000d001d00080000000c001d00000e530100004100000000001004430000000400b00443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e54011001c70000800202000039382838230000040f0000000100200190000031020000613d000000000101043b000000000001004b00000009010000290000315f0000613d0000000003010433000000000003004b0000000109000039000000080c00002900002fc90000613d00000e640030009c000030e80000213d000000200030008c000030e80000413d00000000010c0433000000000001004b0000000002000039000000010200c039000000000021004b000030e80000c13d000000000001004b000031430000613d000000000090041b0000000001000411000000000010043f00000004010000290000000401100039000200000001001d000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000030e80000613d000000000101043b000000000101041a000000000001004b000031270000613d0000000001000411000000000010043f00000004010000290000000501100039000100000001001d000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000030e80000613d000000000101043b000000000101041a000000ff001001900000312e0000c13d0000000501000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000030e80000613d000000000101043b000300000001001d0000000601100039000000000101041a000000ff0110018f000000020010008c000030fc0000213d0000303e0000c13d0000000501000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000030e80000613d000000000101043b0000000602100039000000000202041a000000ff0220018f000000020020008c000030fc0000213d0000301f0000c13d0000001102100039000000000202041a0000000801100039000000000101041a000000000021004b0000303e0000813d00000003020000290000000801200039000000000101041a000000000010043f0000001201200039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000030e80000613d000000000101043b0000000301100039000000000201041a00000e5d012000d1000000000002004b000030370000613d00000000022100d900000e5d0020009c000030f60000c13d00000003020000290000000202200039000000000202041a000000000002004b000030ea0000613d00000000012100d9000030800000013d00000003010000290000001101100039000000000101041a000700000001001d000000000001004b000030ea0000613d0000000301000029000600120010003d00000000020000190000000003000019000900000003001d000800000002001d000000000020043f0000000601000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000030e80000613d000000000101043b0000000301100039000000000101041a000000000001004b0000000903000029000030ea0000613d00000e7401100129000000000031001a0000000802000029000030f60000413d00000000033100190000000102200039000000070020006c000030480000413d000000070200002900000e5d012000d100000000022100d900000e5d0020009c000030f60000c13d000000070200002900000e74022000d1000000000001004b000030700000613d00000000011200d900000e5d0010009c000030f60000c13d000000070100002900000e93011000d1000000000002004b000030770000613d00000000022100d900000e5d0020009c000030f60000c13d000000000003004b000030ea0000613d00000003020000290000000202200039000000000202041a000000000002004b000030ea0000613d00000000012100d900000000013100d9000900000001001d0000000001000411000000000010043f0000000201000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000030e80000613d000000000101043b000000000201041a000000090300002900000000013200a9000000000003004b000030970000613d00000000033100d9000000000023004b000030f60000c13d00090e5d0010013200000004010000290000000101100039000000000201041a000000090220006c000031320000413d000000000021041b0000000001000411000000000010043f0000000101000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000030e80000613d000000000101043b000000000201041a00000e8b0220019700000001022001bf000000000021041b0000000201000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000030e80000613d000000000101043b000000000101041a000000400400043d00000040024000390000000903000029000000000032043500000020024000390000000000120435000800000004001d000000000004043500000e5a010000410000000000100443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e5b011001c70000800b02000039382838230000040f0000000100200190000031020000613d000000000101043b00000008030000290000006002300039000000000012043500000e0b0030009c00000e0b030080410000004001300210000000000200041400000e0b0020009c00000e0b02008041000000c002200210000000000112019f00000e5e011001c70000800d020000390000000403000039000000050600003900000e5f04000041000000000500041100000005070000293828381e0000040f0000000100200190000030e80000613d0000000901000029000000000001042d00000000010000190000382a0001043000000e1201000041000000000010043f0000001201000039000000040010043f00000e13010000410000382a0001043000000e1201000041000000000010043f0000004101000039000000040010043f00000e13010000410000382a0001043000000e1201000041000000000010043f0000001101000039000000040010043f00000e13010000410000382a0001043000000e1201000041000000000010043f0000002101000039000000040010043f00000e13010000410000382a00010430000000000001042f000000400100043d000000440210003900000e8303000041000000000032043500000024021000390000001903000039000031380000013d000000400100043d000000440210003900000e7b03000041000000000032043500000024021000390000001f03000039000031380000013d00000000010a0019000000000003004b000031570000c13d000000400400043d000900000004001d00000e6b020000410000000000240435000000040340003900000020020000390000000000230435000000240240003938281c840000040f0000000902000029000000000121004900000e0b0010009c00000e0b0100804100000e0b0020009c00000e0b0200804100000060011002100000004002200210000000000121019f0000382a00010430000000400100043d000000440210003900000eae03000041000000000032043500000024021000390000001803000039000031380000013d000000400100043d000000440210003900000eac03000041000031350000013d000000400100043d000000440210003900000e7c03000041000000000032043500000024021000390000001b03000039000000000032043500000e6b02000041000000000021043500000004021000390000002003000039000000000032043500000e0b0010009c00000e0b01008041000000400110021000000e6c011001c70000382a00010430000000400100043d000000640210003900000ea6030000410000000000320435000000440210003900000ea703000041000000000032043500000024021000390000002a03000039000000000032043500000e6b02000041000000000021043500000004021000390000002003000039000000000032043500000e0b0010009c00000e0b01008041000000400110021000000ea8011001c70000382a0001043000000e0b00c0009c00000e0b0c0080410000004002c0021000000e0b0030009c00000e0b030080410000006001300210000000000121019f0000382a00010430000000400100043d000000440210003900000ea903000041000000000032043500000024021000390000001d03000039000031380000013d0006000000000002000500000001001d000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000321c0000613d000000000101043b000400000001001d0000000501000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000321c0000613d0000000002000411000000000301043b0000000d01300039000000000101041a000600000001001d00000e0e01200197000200000001001d000000000010043f000300000003001d0000000401300039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000321c0000613d000000000101043b000000000101041a000000060200002900000000032100a9000000000002004b000031a00000613d00000000022300d9000000000012004b000032250000c13d000600000003001d00000003020000290000000201200039000000000101041a000100000001001d000000000001004b0000321e0000613d0000000201000029000000000010043f0000000e01200039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000321c0000613d000000010300002900000006023000f9000000000101043b000000000101041a000000000112004b0000000001004019000600000001001d000031e10000a13d0000000001000411000000000010043f00000004010000290000000e01100039000300000001001d000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000321c0000613d000000000101043b000000000201041a000200000002001d000000060020002a000032250000413d0000000001000411000000000010043f0000000301000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000321c0000613d00000002030000290000000602300029000000000101043b000000000021041b0000000001000411000000000010043f00000004010000290000000401100039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000321c0000613d000000000101043b000000000101041a000000400400043d00000040024000390000000603000029000000000032043500000020024000390000000000120435000400000004001d000000000004043500000e5a010000410000000000100443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e5b011001c70000800b02000039382838230000040f0000000100200190000032240000613d000000000101043b00000004030000290000006002300039000000000012043500000e0b0030009c00000e0b030080410000004001300210000000000200041400000e0b0020009c00000e0b02008041000000c002200210000000000112019f00000e5e011001c70000800d020000390000000403000039000000060600003900000e5f04000041000000000500041100000005070000293828381e0000040f00000001002001900000321c0000613d0000000601000029000000000001042d00000000010000190000382a0001043000000e1201000041000000000010043f0000001201000039000000040010043f00000e13010000410000382a00010430000000000001042f00000e1201000041000000000010043f0000001101000039000000040010043f00000e13010000410000382a000104300003000000000002000300000002001d000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000032720000613d000000000101043b0000000d02100039000000000302041a000000030500002900000000045300a9000000000005004b000032430000613d00000000055400d9000000000035004b0000327a0000c13d0000000205100039000000000505041a000000000005004b000032740000613d00000000045400d9000000000034001a0000327a0000413d0000000003340019000000000032041b0000000002000411000000000020043f0000000e01100039000200000001001d000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039000300000004001d382838230000040f0000000100200190000032720000613d000000000101043b000000000101041a000100000001001d000000030010002a0000327a0000413d0000000001000411000000000010043f0000000201000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000032720000613d00000003030000290000000102300029000000000101043b000000000021041b000000000001042d00000000010000190000382a0001043000000e1201000041000000000010043f0000001201000039000000040010043f00000e13010000410000382a0001043000000e1201000041000000000010043f0000001101000039000000040010043f00000e13010000410000382a00010430000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000032970000613d000000000101043b0000000601100039000000000201041a000000fe00200190000032990000c13d00000e8b032001970000000102200039000000ff0220018f000000000232019f000000000021041b000000000001042d00000000010000190000382a0001043000000e1201000041000000000010043f0000002101000039000000040010043f00000e13010000410000382a000104300007000000000002000100000001001d000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000033320000613d000000000101043b000200000001001d0000001101100039000000000101041a000600000001001d00000e8a0010009c0000333a0000813d000000060100002900000005011002100000003f0210003900000e5c02200197000000400400043d0000000002240019000000000042004b0000000003000039000000010300403900000e560020009c0000333a0000213d00000001003001900000333a0000c13d000000400020043f000500000004001d00000006020000290000000002240436000400000002001d0000001f0210018f000000000001004b000032d10000613d0000000404000029000000000114001900000000030000310000000203300367000000003503043c0000000004540436000000000014004b000032cd0000c13d000000000002004b000000060000006b000032f20000613d0000000201000029000300120010003d0000000004000019000700000004001d000000000040043f0000000301000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000033320000613d000000050200002900000000020204330000000704000029000000000042004b000033340000a13d00000005024002100000000402200029000000000101043b0000000301100039000000000101041a00000000001204350000000104400039000000060040006c000032d70000413d00000002010000290000000201100039000000000101041a000700000001001d000000400100043d000600000001001d00000e5a010000410000000000100443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e5b011001c70000800b02000039382838230000040f0000000100200190000033400000613d000000000101043b0000000606000029000000200260003900000060030000390000000000320435000000000016043500000005050000290000000002050433000000600160003900000000002104350000008001600039000000000002004b000033190000613d000000000300001900000007070000290000002005500039000000000405043300000000014104360000000103300039000000000023004b000033120000413d0000331a0000013d000000070700002900000040026000390000000000720435000000000161004900000e0b0010009c00000e0b01008041000000600110021000000e0b0060009c00000e0b060080410000004002600210000000000121019f000000000200041400000e0b0020009c00000e0b02008041000000c002200210000000000121019f00000e57011001c70000800d02000039000000020300003900000e940400004100000001050000293828381e0000040f0000000100200190000033320000613d000000000001042d00000000010000190000382a0001043000000e1201000041000000000010043f0000003201000039000000040010043f00000e13010000410000382a0001043000000e1201000041000000000010043f0000004101000039000000040010043f00000e13010000410000382a00010430000000000001042f0006000000000002000600000004001d000500000003001d000400000001001d000000000020043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000033950000613d000000000101043b0000000502000029000000000020043f000300000001001d0000001201100039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000033950000613d000000000101043b000000040200002900000e0e02200197000500000002001d000000000020043f000200000001001d0000000401100039000400000001001d000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000033950000613d000000000101043b000000000201041a000100000002001d000000060020002a000033970000413d0000000501000029000000000010043f0000000401000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000033950000613d00000006030000290000000102300029000000000101043b000000000021041b00000002010000290000000301100039000000000201041a000000000232004b000033970000413d000000000021041b00000003010000290000000301100039000000000201041a000000000232004b000033970000413d000000000021041b000000000001042d00000000010000190000382a0001043000000e1201000041000000000010043f0000001101000039000000040010043f00000e13010000410000382a000104300004000000000002000400000002001d000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000033e30000613d000000000201043b0000000d01200039000000000101041a000300000001001d000000040100002900000e0e01100197000200000001001d000000000010043f000400000002001d0000000401200039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000033e30000613d000000000101043b000000000101041a000000030200002900000000032100a9000000000002004b000033c80000613d00000000022300d9000000000012004b000033eb0000c13d000300000003001d00000004020000290000000201200039000000000101041a000100000001001d000000000001004b000033e50000613d0000000201000029000000000010043f0000000e01200039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000033e30000613d000000010300002900000003023000f9000000000101043b000000000101041a000000000112004b0000000001004019000000000001042d00000000010000190000382a0001043000000e1201000041000000000010043f0000001201000039000000040010043f00000e13010000410000382a0001043000000e1201000041000000000010043f0000001101000039000000040010043f00000e13010000410000382a000104300005000000000002000500000001001d000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000034830000613d000000000101043b000100000001001d0000000601100039000000000101041a000000ff0110018f000000020010008c0000348b0000213d000034400000c13d0000000501000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000034830000613d000000000101043b0000000602100039000000000202041a000000ff0220018f000000020020008c0000348b0000213d000034210000c13d0000001102100039000000000202041a0000000801100039000000000101041a000000000021004b000034400000813d00000001020000290000000801200039000000000101041a000000000010043f0000001201200039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000034830000613d000000000101043b0000000301100039000000000201041a00000e5d012000d1000000000002004b000034390000613d00000000022100d900000e5d0020009c000034910000c13d00000001020000290000000202200039000000000202041a000000000002004b000034850000613d00000000012100d9000000000001042d00000001010000290000001101100039000000000101041a000300000001001d000000000001004b000034850000613d0000000101000029000200120010003d00000000020000190000000003000019000500000003001d000400000002001d000000000020043f0000000201000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000034830000613d000000000101043b0000000301100039000000000101041a000000000001004b0000000503000029000034850000613d00000e7401100129000000000013001a0000000402000029000034910000413d00000000031300190000000102200039000000030020006c0000344a0000413d000000030200002900000e5d012000d100000000022100d900000e5d0020009c000034910000c13d000000030200002900000e74022000d1000000000001004b000034720000613d00000000011200d900000e5d0010009c000034910000c13d000000030100002900000e93011000d1000000000002004b000034790000613d00000000022100d900000e5d0020009c000034910000c13d00000001020000290000000202200039000000000202041a000000000002004b000034850000613d000000000003004b000034850000613d00000000012100d900000000013100d9000000000001042d00000000010000190000382a0001043000000e1201000041000000000010043f0000001201000039000000040010043f00000e13010000410000382a0001043000000e1201000041000000000010043f0000002101000039000000040010043f00000e13010000410000382a0001043000000e1201000041000000000010043f0000001101000039000000040010043f00000e13010000410000382a00010430000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000034af0000613d000000000101043b0000000602100039000000000202041a000000ff0220018f000000020020008c000034b10000213d000034ad0000c13d0000000801100039000000000101041a000000000001042d000000010100008a000000000001042d00000000010000190000382a0001043000000e1201000041000000000010043f0000002101000039000000040010043f00000e13010000410000382a00010430000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000034d30000613d000000000201043b0000000601200039000000000101041a000000ff0110018f000000020010008c000034d50000213d0000000001000019000034d20000c13d0000001101200039000000000101041a0000000802200039000000000202041a000000000012004b00000000010000390000000101008039000000000001042d00000000010000190000382a0001043000000e1201000041000000000010043f0000002101000039000000040010043f00000e13010000410000382a00010430000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000034f00000613d000000000201043b0000000c01200039000000000101041a0000001002200039000000000202041a000000000012001a000034f20000413d0000000001120019000000000001042d00000000010000190000382a0001043000000e1201000041000000000010043f0000001101000039000000040010043f00000e13010000410000382a000104300005000000000002000500000001001d000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000035760000613d000000000301043b0000000601300039000000000101041a000000ff0110018f000000020010008c000035840000213d0000352f0000c13d000400000003001d0000000501000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000035760000613d000000000101043b0000000602100039000000000202041a000000ff0220018f000000020020008c0000000403000029000035840000213d000035290000c13d0000001102100039000000000202041a0000000801100039000000000101041a000000000021004b0000352f0000813d0000000801300039000000000101041a000000000001004b000000000100001900000e5d01006041000000000001042d0000001101300039000000000101041a000100000001001d000000000001004b000035720000613d000300120030003d00050e5d0000004500000000020000190000353b0000013d0000000102200039000000010020006c0000356d0000813d000000000002004b000035380000613d000400000002001d000000000000043f0000000301000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000035760000613d000000000101043b0000000301100039000000000101041a00000e5d021000d1000000000001004b000035530000613d00000000011200d900000e5d0010009c0000357e0000c13d000200000002001d0000000401000029000000000010043f0000000301000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f0000000100200190000035760000613d000000000101043b0000000301100039000000000101041a000000000001004b0000000202000029000035780000613d00000000011200d9000000050010002a0000357e0000413d000500050010002d0000000402000029000035380000013d000000050000006b000035780000613d000000050100002900000e7401100129000000000001042d00050e5d00000045000000050100002900000e7401100129000000000001042d00000000010000190000382a0001043000000e1201000041000000000010043f0000001201000039000000040010043f00000e13010000410000382a0001043000000e1201000041000000000010043f0000001101000039000000040010043f00000e13010000410000382a0001043000000e1201000041000000000010043f0000002101000039000000040010043f00000e13010000410000382a000104300006000000000002000200000002001d000600000001001d000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000360c0000613d000000000301043b0000000601300039000000000101041a000000ff0110018f000000020010008c0000361a0000213d000035c20000c13d000500000003001d0000000601000029000000000010043f0000000201000039000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000360c0000613d000000000101043b0000000602100039000000000202041a000000ff0220018f000000020020008c00000005030000290000361a0000213d000035bc0000c13d0000001102100039000000000202041a0000000801100039000000000101041a000000000021004b000035c20000813d0000000801300039000000000101041a000000020010006c000000000100001900000e5d01006041000000000001042d0000001101300039000000000201041a000000000002004b000036080000613d000400120030003d00060e5d0000004500000000030000190000000201000029000100000002001d000035cf0000013d0000000103300039000000000023004b000036030000813d000000000013004b000035cc0000613d000500000003001d000000000010043f0000000401000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000360c0000613d000000000101043b0000000301100039000000000101041a00000e5d031000d1000000000001004b0000000502000029000035e80000613d00000000011300d900000e5d0010009c000036140000c13d000300000003001d000000000020043f0000000401000029000000200010043f000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e52011001c70000801002000039382838230000040f00000001002001900000360c0000613d000000000101043b0000000301100039000000000101041a000000000001004b00000003020000290000360e0000613d00000000011200d9000000060010002a0000000503000029000036140000413d000600060010002d00000002010000290000000102000029000035cc0000013d000000060000006b0000360e0000613d000000060100002900000e7401100129000000000001042d00060e5d00000045000000060100002900000e7401100129000000000001042d00000000010000190000382a0001043000000e1201000041000000000010043f0000001201000039000000040010043f00000e13010000410000382a0001043000000e1201000041000000000010043f0000001101000039000000040010043f00000e13010000410000382a0001043000000e1201000041000000000010043f0000002101000039000000040010043f00000e13010000410000382a00010430000000000100041a000000020010008c000036260000613d0000000201000039000000000010041b000000000001042d000000400100043d000000440210003900000e7b03000041000000000032043500000024021000390000001f03000039000000000032043500000e6b02000041000000000021043500000004021000390000002003000039000000000032043500000e0b0010009c00000e0b01008041000000400110021000000e6c011001c70000382a000104300002000000000002000000400400043d00000044054000390000000000350435000000200340003900000ea205000041000000000053043500000e0e02200197000000240540003900000000002504350000004402000039000000000024043500000ea30040009c000036c50000813d0000008009400039000000400090043f00000ea40090009c000036c50000213d00000e0e0a100197000000c001400039000000400010043f00000020010000390000000000190435000000a00140003900000ea5020000410000000000210435000000000204043300000000010004140000000400a0008c000036830000c13d00000001020000390000000101000031000000000001004b0000369b0000613d00000e560010009c000036c50000213d0000001f0410003900000e8c044001970000003f0440003900000e8c04400197000000400c00043d00000000044c00190000000000c4004b0000000005000039000000010500403900000e560040009c000036c50000213d0000000100500190000036c50000c13d000000400040043f000000000b1c043600000e8c031001980000001f0410018f00000000013b00190000000305000367000036750000613d000000000605034f00000000070b0019000000006806043c0000000007870436000000000017004b000036710000c13d000000000004004b0000369d0000613d000000000335034f0000000304400210000000000501043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f00000000003104350000369d0000013d00000e0b0030009c00000e0b03008041000000400330021000000e0b0020009c00000e0b020080410000006002200210000000000232019f00000e0b0010009c00000e0b01008041000000c001100210000000000112019f00000000020a0019000200000009001d00010000000a001d3828381e0000040f000000010a0000290000000209000029000000010220018f0003000000010355000000600110027000010e0b0010019d00000e0b01100197000000000001004b000036590000c13d000000600c000039000000800b00003900000000030c0433000000000002004b000036cd0000613d000000000003004b000036b80000c13d00020000000c001d00010000000b001d00000e530100004100000000001004430000000400a00443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e54011001c70000800202000039382838230000040f0000000100200190000036ff0000613d000000000101043b000000000001004b0000000201000029000037000000613d0000000003010433000000000003004b000000010b000029000036c40000613d00000e640030009c000036cb0000213d0000001f0030008c000036cb0000a13d00000000010b0433000000000001004b0000000002000039000000010200c039000000000021004b000036cb0000c13d000000000001004b000036e30000613d000000000001042d00000e1201000041000000000010043f0000004101000039000000040010043f00000e13010000410000382a0001043000000000010000190000382a000104300000000001090019000000000003004b000036f70000c13d000000400400043d000200000004001d00000e6b020000410000000000240435000000040340003900000020020000390000000000230435000000240240003938281c840000040f0000000202000029000000000121004900000e0b0010009c00000e0b0100804100000e0b0020009c00000e0b0200804100000060011002100000004002200210000000000121019f0000382a00010430000000400100043d000000640210003900000ea6030000410000000000320435000000440210003900000ea703000041000000000032043500000024021000390000002a03000039000000000032043500000e6b02000041000000000021043500000004021000390000002003000039000000000032043500000e0b0010009c00000e0b01008041000000400110021000000ea8011001c70000382a0001043000000e0b00b0009c00000e0b0b0080410000004002b0021000000e0b0030009c00000e0b030080410000006001300210000000000121019f0000382a00010430000000000001042f000000400100043d000000440210003900000ea903000041000000000032043500000024021000390000001d03000039000000000032043500000e6b02000041000000000021043500000004021000390000002003000039000000000032043500000e0b0010009c00000e0b01008041000000400110021000000e6c011001c70000382a000104300002000000000002000000400500043d0000006406500039000000000046043500000e0e0330019700000044045000390000000000340435000000200350003900000eaf04000041000000000043043500000e0e02200197000000240450003900000000002404350000006402000039000000000025043500000eb00050009c000037a20000813d000000a009500039000000400090043f00000eb10050009c000037a20000213d00000e0e0a100197000000e001500039000000400010043f00000020010000390000000000190435000000c00150003900000ea5020000410000000000210435000000000205043300000000010004140000000400a0008c000037600000c13d00000001020000390000000101000031000000000001004b000037780000613d00000e560010009c000037a20000213d0000001f0410003900000e8c044001970000003f0440003900000e8c04400197000000400c00043d00000000044c00190000000000c4004b0000000005000039000000010500403900000e560040009c000037a20000213d0000000100500190000037a20000c13d000000400040043f000000000b1c043600000e8c031001980000001f0410018f00000000013b00190000000305000367000037520000613d000000000605034f00000000070b0019000000006806043c0000000007870436000000000017004b0000374e0000c13d000000000004004b0000377a0000613d000000000335034f0000000304400210000000000501043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f00000000003104350000377a0000013d00000e0b0030009c00000e0b03008041000000400330021000000e0b0020009c00000e0b020080410000006002200210000000000232019f00000e0b0010009c00000e0b01008041000000c001100210000000000112019f00000000020a0019000200000009001d00010000000a001d3828381e0000040f000000010a0000290000000209000029000000010220018f0003000000010355000000600110027000010e0b0010019d00000e0b01100197000000000001004b000037360000c13d000000600c000039000000800b00003900000000030c0433000000000002004b000037aa0000613d000000000003004b000037950000c13d00020000000c001d00010000000b001d00000e530100004100000000001004430000000400a00443000000000100041400000e0b0010009c00000e0b01008041000000c00110021000000e54011001c70000800202000039382838230000040f0000000100200190000037dc0000613d000000000101043b000000000001004b0000000201000029000037dd0000613d0000000003010433000000000003004b000000010b000029000037a10000613d00000e640030009c000037a80000213d0000001f0030008c000037a80000a13d00000000010b0433000000000001004b0000000002000039000000010200c039000000000021004b000037a80000c13d000000000001004b000037c00000613d000000000001042d00000e1201000041000000000010043f0000004101000039000000040010043f00000e13010000410000382a0001043000000000010000190000382a000104300000000001090019000000000003004b000037d40000c13d000000400400043d000200000004001d00000e6b020000410000000000240435000000040340003900000020020000390000000000230435000000240240003938281c840000040f0000000202000029000000000121004900000e0b0010009c00000e0b0100804100000e0b0020009c00000e0b0200804100000060011002100000004002200210000000000121019f0000382a00010430000000400100043d000000640210003900000ea6030000410000000000320435000000440210003900000ea703000041000000000032043500000024021000390000002a03000039000000000032043500000e6b02000041000000000021043500000004021000390000002003000039000000000032043500000e0b0010009c00000e0b01008041000000400110021000000ea8011001c70000382a0001043000000e0b00b0009c00000e0b0b0080410000004002b0021000000e0b0030009c00000e0b030080410000006001300210000000000121019f0000382a00010430000000000001042f000000400100043d000000440210003900000ea903000041000000000032043500000024021000390000001d03000039000000000032043500000e6b02000041000000000021043500000004021000390000002003000039000000000032043500000e0b0010009c00000e0b01008041000000400110021000000e6c011001c70000382a00010430000000000001042f000000000200041400000e0b0020009c00000e0b02008041000000c00220021000000e0b0010009c00000e0b010080410000004001100210000000000121019f00000e52011001c70000801002000039382838230000040f0000000100200190000037fe0000613d000000000101043b000000000001042d00000000010000190000382a0001043000000000050100190000000000200443000000050030008c0000380e0000413d000000040100003900000000020000190000000506200210000000000664001900000005066002700000000006060031000000000161043a0000000102200039000000000031004b000038060000413d00000e0b0030009c00000e0b030080410000006001300210000000000200041400000e0b0020009c00000e0b02008041000000c002200210000000000112019f00000eb2011001c70000000002050019382838230000040f00000001002001900000381d0000613d000000000101043b000000000001042d000000000001042f00003821002104210000000102000039000000000001042d0000000002000019000000000001042d00003826002104230000000102000039000000000001042d0000000002000019000000000001042d0000382800000432000038290001042e0000382a00010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000001ffffffe000000000000000000000000000000000000000000000000000000000ffffffe0000000000000000000000000ffffffffffffffffffffffffffffffffffffffff0000000200000000000000000000000000000080000001000000000000000000310ab089e4439a4c15d089f94afb7896ff553aecb10793d0ab882de59d99a32e02000002000000000000000000000000000000440000000000000000000000004e487b71000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000000000000000000000008c7adc1400000000000000000000000000000000000000000000000000000000c2ee3a0700000000000000000000000000000000000000000000000000000000ec93f0f400000000000000000000000000000000000000000000000000000000f5f1dbf800000000000000000000000000000000000000000000000000000000f5f1dbf900000000000000000000000000000000000000000000000000000000fdff808500000000000000000000000000000000000000000000000000000000feebaca000000000000000000000000000000000000000000000000000000000ec93f0f500000000000000000000000000000000000000000000000000000000efce431300000000000000000000000000000000000000000000000000000000f1da56e900000000000000000000000000000000000000000000000000000000d450dec900000000000000000000000000000000000000000000000000000000d450deca00000000000000000000000000000000000000000000000000000000dc73d16400000000000000000000000000000000000000000000000000000000ec2c901600000000000000000000000000000000000000000000000000000000c2ee3a0800000000000000000000000000000000000000000000000000000000c346a9d000000000000000000000000000000000000000000000000000000000c8f70d0100000000000000000000000000000000000000000000000000000000ad5c464700000000000000000000000000000000000000000000000000000000bc063e1900000000000000000000000000000000000000000000000000000000bc063e1a00000000000000000000000000000000000000000000000000000000bf45572100000000000000000000000000000000000000000000000000000000bfacba3d00000000000000000000000000000000000000000000000000000000ad5c464800000000000000000000000000000000000000000000000000000000b02ed3db00000000000000000000000000000000000000000000000000000000b31eb895000000000000000000000000000000000000000000000000000000009d7de6b2000000000000000000000000000000000000000000000000000000009d7de6b300000000000000000000000000000000000000000000000000000000aa22a02e00000000000000000000000000000000000000000000000000000000ac68a748000000000000000000000000000000000000000000000000000000008c7adc15000000000000000000000000000000000000000000000000000000008cd41552000000000000000000000000000000000000000000000000000000009cd441da0000000000000000000000000000000000000000000000000000000036d06c09000000000000000000000000000000000000000000000000000000005e648efe000000000000000000000000000000000000000000000000000000007ef1c3c6000000000000000000000000000000000000000000000000000000007ef1c3c7000000000000000000000000000000000000000000000000000000008056ae790000000000000000000000000000000000000000000000000000000085b91d8e000000000000000000000000000000000000000000000000000000005e648eff00000000000000000000000000000000000000000000000000000000677bd9ff000000000000000000000000000000000000000000000000000000006eec5eb900000000000000000000000000000000000000000000000000000000429c9dfe00000000000000000000000000000000000000000000000000000000429c9dff000000000000000000000000000000000000000000000000000000004397c4ce00000000000000000000000000000000000000000000000000000000441cf65e0000000000000000000000000000000000000000000000000000000036d06c0a000000000000000000000000000000000000000000000000000000003d41a26b00000000000000000000000000000000000000000000000000000000411e0b17000000000000000000000000000000000000000000000000000000002b5eda2300000000000000000000000000000000000000000000000000000000325a00a700000000000000000000000000000000000000000000000000000000325a00a8000000000000000000000000000000000000000000000000000000003620875e0000000000000000000000000000000000000000000000000000000036ad8a7a000000000000000000000000000000000000000000000000000000002b5eda24000000000000000000000000000000000000000000000000000000002c2aa24e0000000000000000000000000000000000000000000000000000000031877a38000000000000000000000000000000000000000000000000000000001281311c000000000000000000000000000000000000000000000000000000001281311d000000000000000000000000000000000000000000000000000000001d7920aa0000000000000000000000000000000000000000000000000000000028747a800000000000000000000000000000000000000000000000000000000005a7e5b7000000000000000000000000000000000000000000000000000000000d1ee13302000000000000000000000000000000000000400000000000000000000000001806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b8302000002000000000000000000000000000000240000000000000000000000002e1a7d4d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffdf796b89b91644bc98cd93958e4c9038275d622183e25ac5af08cc6b5d9553913202000002000000000000000000000000000000040000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00000000000000000000000000000000000000000000000000de0b6b3a764000002000000000000000000000000000000000000800000000000000000000000009dcabe311735ed0d65f0c22c5425d1f17331f94c9d0767f59e58473cf95ada6102000000000000000000000000000000000000600000000000000000000000001eca98f266e5348ae38d5d057a4d8e451e76672f69ac6ba4b0e3b31ea9c7eb2bd0e30db00000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000040000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fffffffffffffdbf0000000000000000000000000000000000000060000000000000000000000000b10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf600000000000000000000000000000000000000200000008000000000000000006d61726b657420746f6b656e206973206e6f742057455448000000000000000008c379a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000000000000000b1a2bc2ec5000000000000000000000000000000000000000000040000000000000000000000006d61726b657420616c72656164792066756e6465640000000000000000000000646973747269627574696f6e206c656e677468206e6f74206d61746368696e676d7573742068696e7420612076616c696420646973747269627574696f6e00007374616b652068617320746f2062652067726561746572207468616e20302e000000000000000000000000000000000000c097ce7bc90715b34b9f1000000000d1aeb5c200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004400000000000000000000000032c8457b93ca1561f798921516a9997de723415a87991bf1187b70434dc5cdea6e6f7420616c6c6f77656420746f207265736f6c7665206d61726b657400000076616c756520646f6573206e6f74206d6174636820617267756d656e74730000000000000000000000000000000000000000000000000000fffffffffffffe3f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00696e73756666696369656e74206d61726b65742062616c616e63650000000000696e73756666696369656e74207368617265732062616c616e636500000000006d6178696d756d2073656c6c20616d6f756e742065786365656465640000000000000000000000000000000000000000000000a000000000000000000000000040c10f1900000000000000000000000000000000000000000000000000000000d09cc57e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001200000008000000000000000004d61726b657420696e20696e636f72726563742073746174650000000000000073686172657320706f6f6c2062616c616e636520697320746f6f206c6f77000073686172657320616d6f756e74206973203000000000000000000000000000006d696e696d756d2062757920616d6f756e74206e6f742072656163686564000000000000000000000000000000000000000000640000008000000000000000004d61726b657420746f6b656e206973206e6f742057455448000000000000000057455448206164647265737320697320616464726573732030000000000000000000000000000000000000000000000000000000000000010000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe04ef1d2ad89edf8c4d91132028e8195cdf30bb4b5053d4f8cd260341d4805f30a7265736f6c7574696f6e206265666f72652063757272656e742064617465000000000000000000000000000000000000000000000000000000b1a2bc2ec5000125c7205900000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000d4876b9f000000000000000000000000000000000000000000000000000000000000000000000000000a70c3c40a64e6c51999090b65f67d9240000000000000b1bbae7680415a1349ae813ba7d737ca09df07db1f6ce058b3e0812ec15e888657c2e8e67a3a13bc1991cd4ba3ed6733e269f1de098668140234d41dcb145ee46e6f7420616c6c6f77656420746f20637265617465206d61726b65740000000074696d656f7574206d75737420626520706f73697469766500000000000000005f7265616c6974696f4164647265737320697320616464726573732030000000747265617375727920666565206d757374206265203c3d203525000000000000666565206d757374206265203c3d2035250000000000000000000000000000006f7574636f6d6520636f756e74206e6f74206265747765656e20312d33320000696e76616c69642061726269747261746f7220616464726573730000000000007374616b65206e6565647320746f206265203e20300000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdf6d7573742068617665206e6f6e2d7a65726f2062616c616e6365730000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4661696c656420746f2073656e64204574686572000000000000000000000000a9059cbb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff80000000000000000000000000000000000000000000000000ffffffffffffffbf5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65646f742073756363656564000000000000000000000000000000000000000000005361666545524332303a204552433230206f7065726174696f6e20646964206e0000000000000000000000000000000000000084000000000000000000000000416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000007573657220616c726561647920636c61696d65642077696e6e696e67730000007573657220646f65736e277420686f6c64206f7574636f6d65207368617265737573657220616c726561647920636c61696d65642073686172657300000000006d61726b6574206973206e6f7420766f696465640000000000000000000000007573657220646f65736e277420686f6c6420736861726573000000000000000023b872dd00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff60000000000000000000000000000000000000000000000000ffffffffffffff1f020000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006d3427f7a6721f70976906dd24b11ca8f607b630d1c70500263ca89d5b0505fe
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000003439153eb7af838ad19d56e1571fbd09333c2809
-----Decoded View---------------
Arg [0] : _WETH (address): 0x3439153EB7AF838Ad19d56E1571FBD09333C2809
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000003439153eb7af838ad19d56e1571fbd09333c2809
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.