{"id":567872,"recorded_at":"2026-10-27T22:07:36.324898Z","observed_at":"2026-10-27T22:07:36.324799Z","subject_kind":"endpoint","subject":"01dee2ed-5aa0-4ef1-838c-a6ff3b044d6f","kind":"mcp.tools","method":"probe.mcp/1","body":{"count":10,"tools":[{"description":"Calculate explicit portfolio constraints deterministically from normalized holdings. Use this for arithmetic checks, not for interpreting natural-language mandates.","inputSchema":{"$defs":{"AlignmentHolding":{"additionalProperties":false,"properties":{"attributes":{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"type":"null"}]},"maxProperties":100,"title":"Attributes","type":"object"},"currency":{"default":"","maxLength":16,"title":"Currency","type":"string"},"id":{"maxLength":120,"minLength":1,"title":"Id","type":"string"},"name":{"maxLength":500,"minLength":1,"title":"Name","type":"string"},"source_reference":{"default":"","maxLength":500,"title":"Source Reference","type":"string"},"value":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"title":"Value"},"weight":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Portfolio weight. Prefer a decimal share such as 0.24 for 24%. Percentage-point inputs such as 24 are also accepted and normalized when the supplied holdings use that convention.","title":"Weight"}},"required":["id","name"],"title":"AlignmentHolding","type":"object"},"DeterministicConstraint":{"additionalProperties":false,"properties":{"exposure_filter":{"anyOf":[{"$ref":"#/$defs/ExposureFilter"},{"type":"null"}],"default":null},"holding_ids":{"items":{"type":"string"},"maxItems":1000,"title":"Holding Ids","type":"array"},"id":{"maxLength":120,"minLength":1,"title":"Id","type":"string"},"max_value":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"title":"Max Value"},"metric":{"enum":["single_holding_weight","selected_holdings_weight","filtered_holdings_weight","top_n_holdings_weight","holding_count","total_weight"],"title":"Metric","type":"string"},"min_value":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"title":"Min Value"},"operator":{"enum":["<","<=","=","!=",">=",">","range"],"title":"Operator","type":"string"},"threshold":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"title":"Threshold"},"top_n":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"title":"Top N"}},"required":["id","metric","operator"],"title":"DeterministicConstraint","type":"object"},"ExposureFilter":{"additionalProperties":false,"properties":{"dimension":{"enum":["denomination_currency","country","domicile","issuer_country","listing_country","asset_class","rating","sector"],"title":"Dimension","type":"string"},"match":{"enum":["equals","not_equals","in","not_in"],"title":"Match","type":"string"},"values":{"items":{"maxLength":120,"minLength":1,"type":"string"},"maxItems":100,"minItems":1,"title":"Values","type":"array"}},"required":["dimension","match","values"],"title":"ExposureFilter","type":"object"}},"properties":{"analysis_name":{"anyOf":[{"maxLength":255,"minLength":1,"type":"string"},{"type":"null"}],"default":null,"description":"Optional private grouping name. The same case-sensitive name, after trimming outer whitespace, reuses one group for this user. Omit it for an independent operation. Keep the name on retries; each calculation still needs its own idempotency_key.","title":"Analysis Name"},"base_currency":{"default":"USD","maxLength":16,"minLength":1,"title":"Base Currency","type":"string"},"composition_scope":{"default":"unknown","enum":["complete","partial","unknown"],"title":"Composition Scope","type":"string"},"constraints":{"items":{"$ref":"#/$defs/DeterministicConstraint"},"maxItems":250,"minItems":1,"title":"Constraints","type":"array"},"holdings":{"items":{"$ref":"#/$defs/AlignmentHolding"},"maxItems":1000,"minItems":1,"title":"Holdings","type":"array"},"idempotency_key":{"maxLength":255,"minLength":1,"title":"Idempotency Key","type":"string"},"source_warnings":{"anyOf":[{"items":{"maxLength":2000,"minLength":1,"type":"string"},"maxItems":100,"type":"array"},{"type":"null"}],"default":null,"title":"Source Warnings"}},"required":["holdings","constraints","idempotency_key"],"title":"calculate_portfolio_constraintsArguments","type":"object"},"name":"calculate_portfolio_constraints"},{"description":"Calculate historical return, volatility, drawdown, risk-adjusted and benchmark-relative statistics from a confirmed portfolio series profile. The metrics parameter describes all available calculations and their required inputs. Use daily, weekly or monthly complete periods; results include coverage, warnings and exact dataset/profile pins. Reuse an idempotency_key only for an identical calculation.","inputSchema":{"$defs":{"ExactRateSeriesInput":{"additionalProperties":false,"properties":{"series_profile_id":{"format":"uuid","title":"Series Profile Id","type":"string"},"type":{"const":"series_profile","title":"Type","type":"string"}},"required":["type","series_profile_id"],"title":"ExactRateSeriesInput","type":"object"},"ScalarRateInput":{"additionalProperties":false,"properties":{"compounding":{"enum":["simple","annual","continuous"],"title":"Compounding","type":"string"},"currency":{"maxLength":3,"minLength":3,"title":"Currency","type":"string"},"provenance":{"additionalProperties":true,"title":"Provenance","type":"object"},"quotation":{"const":"annualized","default":"annualized","title":"Quotation","type":"string"},"tenor":{"maxLength":64,"minLength":1,"title":"Tenor","type":"string"},"type":{"const":"scalar","title":"Type","type":"string"},"value":{"title":"Value","type":"string"},"value_date":{"format":"date","title":"Value Date","type":"string"}},"required":["type","value","currency","value_date","tenor","compounding","provenance"],"title":"ScalarRateInput","type":"object"}},"properties":{"analysis_name":{"anyOf":[{"maxLength":255,"minLength":1,"type":"string"},{"type":"null"}],"default":null,"description":"Optional private grouping name. The same case-sensitive name, after trimming outer whitespace, reuses one group for this user. Omit it for an independent operation. Keep the name on retries; each calculation still needs its own idempotency_key.","title":"Analysis Name"},"benchmark_profile_id":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}],"default":null,"description":"Confirmed benchmark series profile in the same currency and return basis as the portfolio. Required for beta, alpha, correlation, tracking_error and information_ratio. Returns are matched by exact period dates.","title":"Benchmark Profile Id"},"end_date":{"anyOf":[{"format":"date","type":"string"},{"type":"null"}],"default":null,"title":"End Date"},"idempotency_key":{"maxLength":255,"minLength":1,"title":"Idempotency Key","type":"string"},"metrics":{"description":"Select one or more unique metric names. periodic_returns: Return for each complete period at target_frequency. cumulative_return: Compounded return across the selected complete periods. observation_count: Number of source observations in the selected date range. period_count: Number of complete return periods available for calculation. min_return: Lowest periodic return and its period end date. max_return: Highest periodic return and its period end date. volatility: Sample standard deviation of periodic returns, with annualized volatility. drawdown: Decline from the running peak of compounded wealth for each period. max_drawdown: Largest peak-to-trough decline, with peak, trough and recovery dates when available. downside_deviation: Root mean square shortfall below minimum_acceptable_return, with annualized deviation. Requires minimum_acceptable_return. sharpe: Mean return above risk_free_rate divided by the sample standard deviation of excess returns, with annualized ratio. Requires risk_free_rate. sortino: Mean return above minimum_acceptable_return divided by downside deviation, with annualized ratio. Requires minimum_acceptable_return. beta: Sensitivity of portfolio returns to benchmark returns. Requires benchmark_profile_id. alpha: Return above the benchmark return implied by beta and risk_free_rate, with annualized alpha. Requires benchmark_profile_id and risk_free_rate. correlation: Pearson correlation between portfolio and benchmark returns. Requires benchmark_profile_id. tracking_error: Sample standard deviation of portfolio-minus-benchmark returns, with annualized tracking error. Requires benchmark_profile_id. information_ratio: Mean portfolio-minus-benchmark return divided by tracking error, with annualized ratio. Requires benchmark_profile_id.","items":{"enum":["periodic_returns","cumulative_return","observation_count","period_count","min_return","max_return","volatility","drawdown","max_drawdown","downside_deviation","sharpe","sortino","beta","alpha","correlation","tracking_error","information_ratio"],"type":"string"},"maxItems":17,"minItems":1,"title":"Metrics","type":"array"},"minimum_acceptable_return":{"anyOf":[{"$ref":"#/$defs/ExactRateSeriesInput"},{"$ref":"#/$defs/ScalarRateInput"},{"type":"null"}],"default":null,"description":"Required for downside_deviation and sortino. Use a confirmed minimum acceptable return profile or a source-backed dated annualized scalar with currency, tenor, compounding and provenance.","title":"Minimum Acceptable Return"},"risk_free_rate":{"anyOf":[{"$ref":"#/$defs/ExactRateSeriesInput"},{"$ref":"#/$defs/ScalarRateInput"},{"type":"null"}],"default":null,"description":"Required for sharpe and alpha. Use a confirmed risk-free rate profile or a source-backed dated annualized scalar with currency, tenor, compounding and provenance. Do not substitute an assumed rate.","title":"Risk Free Rate"},"series_profile_id":{"description":"Confirmed portfolio series profile returned by upload or list_portfolio_series; pins one immutable dataset version.","format":"uuid","title":"Series Profile Id","type":"string"},"start_date":{"anyOf":[{"format":"date","type":"string"},{"type":"null"}],"default":null,"title":"Start Date"},"target_frequency":{"description":"Calculate complete daily, weekly or monthly return periods. Annualization uses 252, 52 or 12 periods per year respectively; finer-frequency data must be available.","enum":["daily","weekly","monthly"],"title":"Target Frequency","type":"string"}},"required":["series_profile_id","metrics","target_frequency","idempotency_key"],"title":"calculate_portfolio_statisticsArguments","type":"object"},"name":"calculate_portfolio_statistics"},{"description":"Cancel a pending upload and permanently remove its staging chunks.","inputSchema":{"properties":{"analysis_name":{"anyOf":[{"maxLength":255,"minLength":1,"type":"string"},{"type":"null"}],"default":null,"description":"Optional private grouping name. The same case-sensitive name, after trimming outer whitespace, reuses one group for this user. Omit it for an independent operation. Keep the name on retries; each calculation still needs its own idempotency_key.","title":"Analysis Name"},"upload_id":{"format":"uuid","title":"Upload Id","type":"string"}},"required":["upload_id"],"title":"cancel_portfolio_series_uploadArguments","type":"object"},"name":"cancel_portfolio_series_upload"},{"description":"Compare a clean mandate with normalized holdings. Do not send PDF, CSV, spreadsheet, or factsheet files; extract them before calling.","inputSchema":{"$defs":{"AlignmentHolding":{"additionalProperties":false,"properties":{"attributes":{"additionalProperties":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"number"},{"type":"boolean"},{"type":"null"}]},"maxProperties":100,"title":"Attributes","type":"object"},"currency":{"default":"","maxLength":16,"title":"Currency","type":"string"},"id":{"maxLength":120,"minLength":1,"title":"Id","type":"string"},"name":{"maxLength":500,"minLength":1,"title":"Name","type":"string"},"source_reference":{"default":"","maxLength":500,"title":"Source Reference","type":"string"},"value":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"title":"Value"},"weight":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"description":"Portfolio weight. Prefer a decimal share such as 0.24 for 24%. Percentage-point inputs such as 24 are also accepted and normalized when the supplied holdings use that convention.","title":"Weight"}},"required":["id","name"],"title":"AlignmentHolding","type":"object"},"AlignmentRule":{"additionalProperties":false,"properties":{"enabled":{"default":true,"title":"Enabled","type":"boolean"},"explanation":{"default":"","maxLength":2000,"title":"Explanation","type":"string"},"exposure_filter":{"anyOf":[{"$ref":"#/$defs/ExposureFilter"},{"type":"null"}],"default":null},"id":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"title":"Id"},"max_value":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"title":"Max Value"},"min_value":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"title":"Min Value"},"operator":{"enum":["<","<=","=","!=",">=",">","range"],"title":"Operator","type":"string"},"target":{"maxLength":500,"minLength":1,"title":"Target","type":"string"},"threshold":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"title":"Threshold"},"title":{"default":"","maxLength":200,"title":"Title","type":"string"},"unit":{"default":"percent","maxLength":64,"title":"Unit","type":"string"}},"required":["target","operator"],"title":"AlignmentRule","type":"object"},"ExposureFilter":{"additionalProperties":false,"properties":{"dimension":{"enum":["denomination_currency","country","domicile","issuer_country","listing_country","asset_class","rating","sector"],"title":"Dimension","type":"string"},"match":{"enum":["equals","not_equals","in","not_in"],"title":"Match","type":"string"},"values":{"items":{"maxLength":120,"minLength":1,"type":"string"},"maxItems":100,"minItems":1,"title":"Values","type":"array"}},"required":["dimension","match","values"],"title":"ExposureFilter","type":"object"}},"properties":{"analysis_name":{"anyOf":[{"maxLength":255,"minLength":1,"type":"string"},{"type":"null"}],"default":null,"description":"Optional private grouping name. The same case-sensitive name, after trimming outer whitespace, reuses one group for this user. Omit it for an independent operation. Keep the name on retries; each calculation still needs its own idempotency_key.","title":"Analysis Name"},"base_currency":{"default":"USD","maxLength":16,"minLength":1,"title":"Base Currency","type":"string"},"composition_scope":{"default":"unknown","enum":["complete","partial","unknown"],"title":"Composition Scope","type":"string"},"holdings":{"items":{"$ref":"#/$defs/AlignmentHolding"},"maxItems":1000,"minItems":1,"title":"Holdings","type":"array"},"idempotency_key":{"maxLength":255,"minLength":1,"title":"Idempotency Key","type":"string"},"mandate":{"default":"","maxLength":50000,"title":"Mandate","type":"string"},"portfolio_name":{"default":"Portfolio","maxLength":255,"title":"Portfolio Name","type":"string"},"rules":{"anyOf":[{"items":{"$ref":"#/$defs/AlignmentRule"},"maxItems":250,"type":"array"},{"type":"null"}],"default":null,"title":"Rules"},"source_warnings":{"anyOf":[{"items":{"maxLength":2000,"minLength":1,"type":"string"},"maxItems":100,"type":"array"},{"type":"null"}],"default":null,"title":"Source Warnings"}},"required":["holdings","idempotency_key"],"title":"evaluate_portfolio_alignmentArguments","type":"object"},"name":"evaluate_portfolio_alignment"},{"description":"Read retained normalized inputs, operations, results and owner-scoped dataset references. This is not an external agent transcript.","inputSchema":{"properties":{"analysis_id":{"format":"uuid","title":"Analysis Id","type":"string"}},"required":["analysis_id"],"title":"get_analysisArguments","type":"object"},"name":"get_analysis"},{"description":"Read private calculation groups and independent operations. Filter by kind, portfolio, dates, ready/running/attention status or legacy open/finished status.","inputSchema":{"properties":{"date_from":{"anyOf":[{"format":"date","type":"string"},{"type":"null"}],"default":null,"title":"Date From"},"date_to":{"anyOf":[{"format":"date","type":"string"},{"type":"null"}],"default":null,"title":"Date To"},"kind":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Kind"},"page":{"default":1,"minimum":1,"title":"Page","type":"integer"},"page_size":{"default":20,"maximum":100,"minimum":1,"title":"Page Size","type":"integer"},"portfolio_id":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}],"default":null,"title":"Portfolio Id"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Status"}},"title":"list_analysesArguments","type":"object"},"name":"list_analyses"},{"description":"List owner-scoped portfolios, analytics datasets, and profile readiness.","inputSchema":{"properties":{},"title":"list_analysis_portfoliosArguments","type":"object"},"name":"list_analysis_portfolios"},{"description":"Discover owner-scoped immutable series profiles and their exact dataset versions. This returns metadata and coverage only, never dataset rows.","inputSchema":{"properties":{"cursor":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"title":"Cursor"},"page_size":{"default":50,"maximum":100,"minimum":1,"title":"Page Size","type":"integer"},"portfolio_id":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}],"default":null,"title":"Portfolio Id"},"statuses":{"anyOf":[{"items":{"enum":["proposed","confirmed"],"type":"string"},"maxItems":2,"type":"array"},{"type":"null"}],"default":null,"title":"Statuses"}},"title":"list_portfolio_seriesArguments","type":"object"},"name":"list_portfolio_series"},{"description":"Create an immutable profile revision using revise, or explicitly confirm a warning-free proposal with confirmation=true.","inputSchema":{"properties":{"action":{"enum":["revise","confirm"],"title":"Action","type":"string"},"analysis_name":{"anyOf":[{"maxLength":255,"minLength":1,"type":"string"},{"type":"null"}],"default":null,"description":"Optional private grouping name. The same case-sensitive name, after trimming outer whitespace, reuses one group for this user. Omit it for an independent operation. Keep the name on retries; each calculation still needs its own idempotency_key.","title":"Analysis Name"},"confirmation":{"default":false,"title":"Confirmation","type":"boolean"},"profile_id":{"format":"uuid","title":"Profile Id","type":"string"},"revisions":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Revisions"}},"required":["profile_id","action"],"title":"review_portfolio_series_profileArguments","type":"object"},"name":"review_portfolio_series_profile"},{"description":"Upload normalized series_key/date/value/distribution rows and commit a dataset version. For up to 5,000 rows, omit chunk_index and total_chunks to complete in one call. For larger inputs, declare total_chunks on every call, send chunks in order, and reuse upload_id and idempotency_key. The final chunk automatically verifies and commits all data and returns immutable series profiles. Parse files locally before calling.","inputSchema":{"$defs":{"CanonicalSeriesRow":{"additionalProperties":false,"properties":{"date":{"format":"date","title":"Date","type":"string"},"distribution":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Distribution"},"series_key":{"maxLength":255,"minLength":1,"title":"Series Key","type":"string"},"value":{"title":"Value","type":"string"}},"required":["series_key","date","value"],"title":"CanonicalSeriesRow","type":"object"}},"properties":{"analysis_name":{"anyOf":[{"maxLength":255,"minLength":1,"type":"string"},{"type":"null"}],"default":null,"description":"Optional private grouping name. The same case-sensitive name, after trimming outer whitespace, reuses one group for this user. Omit it for an independent operation. Keep the name on retries; each calculation still needs its own idempotency_key.","title":"Analysis Name"},"chunk_index":{"default":0,"description":"Zero-based chunk position; upload chunks in order.","minimum":0,"title":"Chunk Index","type":"integer"},"content_hash":{"default":"","maxLength":64,"title":"Content Hash","type":"string"},"dataset_id":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}],"default":null,"title":"Dataset Id"},"dataset_name":{"default":"","maxLength":255,"title":"Dataset Name","type":"string"},"idempotency_key":{"maxLength":255,"minLength":1,"title":"Idempotency Key","type":"string"},"new_portfolio_name":{"default":"","maxLength":255,"title":"New Portfolio Name","type":"string"},"portfolio_id":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}],"default":null,"title":"Portfolio Id"},"rows":{"items":{"$ref":"#/$defs/CanonicalSeriesRow"},"maxItems":5000,"minItems":1,"title":"Rows","type":"array"},"series_profiles":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"default":null,"description":"Source-backed semantics for each series_key. Supply on the first or final chunk; the final chunk can complete the proposals before commit. Ambiguous or incomplete profiles require review before calculation.","title":"Series Profiles"},"source":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Source"},"total_chunks":{"default":1,"description":"Total number of chunks in this upload. The last accepted chunk commits the dataset automatically.","minimum":1,"title":"Total Chunks","type":"integer"},"upload_id":{"anyOf":[{"format":"uuid","type":"string"},{"type":"null"}],"default":null,"title":"Upload Id"}},"required":["idempotency_key","rows"],"title":"upload_portfolio_series_rowsArguments","type":"object"},"name":"upload_portfolio_series_rows"}]},"body_sha256":"3e7f846e583d9d6c47edb57d50c50046147cea011a21c46e1361e415aaee5dc3","prev_id":null,"leaf":"0x16c80650ee754d4cad438ba33f7b285855bc4823c3c04268087feacecaf907c0","leaf_text":"{\"body\":\"3e7f846e583d9d6c47edb57d50c50046147cea011a21c46e1361e415aaee5dc3\",\"id\":567872,\"kind\":\"mcp.tools\",\"method\":\"probe.mcp/1\",\"observed_us\":1793138856324799,\"prev\":null,\"subject\":\"01dee2ed-5aa0-4ef1-838c-a6ff3b044d6f\",\"subject_kind\":\"endpoint\"}","day":{"day":"2026-10-27","leaves":273461,"root":"0xdd77e5e99da32c3f154180d63e3c3e6fe11e896a2c6896412ef6b5c4bcf7e795","chained":"0x23bb4dfd09f55c15ac3962f53578e02c6114d5bfd9bb451cf8794fb6e2817ef4","anchor_chain":"eip155:5042002","anchor_tx":"0xb2ebd83aafeb765a0ce66e76aefb133ed06606c98038fd56191e2bcd1dcb77b4","anchor_block":69414147},"proof":["0x16c7db668aa2155f8b43df0fec8ddc8620640a7a4de66c9cdc9bc6470b0598e6","0x22db9b1a2e78171eef3f87c09bdfa235de646ac07772568fcf8b3b9d2646f727","0xc5ae5d571e10cfd31e8a9e9863932a3831cd7cc18294100ec3afba233ee44d45","0xa30b6446d7322c2812e680bd66c161b1d29ef99e87a266e0782bad29c3395b5c","0xec6b6f9da13e7671adfa5709c4a3677700503741bd8f9cba6a0eeea741d8ebe6","0x9bb0cdb9b8122054e505a16db48b8af00afe65e89ac88e0428677e75cc04b0a6","0xbeebe7d6d17943210973ad828a75016ced6e65d0a59b22033d3e851debeff9b5","0x8b3b30ca6788c9fecb4fe501c3dbc0e5f463e1eafd0b249febbfc035e73c0866","0x3f693e6e5e6d070f2618bcff62dae04869c7de823b5f24533cb9a33ffc6d629d","0xdb7245f9298926c48a065defbaa157febf69634706cf59e907767fc1334235cc","0x55acee356f0b717dd0920b0cde9e99b43bd0a0b1161a35ac6c315aa50f2d66f6","0x62c7e7967ec467dcf70ca9a9f01831f05b5b4a07c07491cc03340b1479c7ea31","0xfae7ed2d06f4d6ced86c104b6381c26d795f82be10e6314b53b0524bd75a292f","0x52c5141da0cbee106a30396ee7d1360fd22f55084aca2ca436c8007892775670","0x6913cb48392acb8dc5c940dcdb6e6fc889d544f85dff11da249551a5f027e688","0x518b93854db03dc9fc938883abf30da6eaae5ae0d4336903968fd32a7df8c71b","0x22c1fb9487ee0b9732fa017a0cc321eb27a60c08450d112f755089796e12cb1c","0xa20d48798a34aba12eb9c7297722982d910f06c148f5e27ac59307422964a585","0x9fc354c0ea3efc3f1b6548bb77ea902a50f2c9647647ea61592efce2bd795699"]}