<?xml version="1.0" encoding="UTF-8"?>
<rss  xmlns:atom="http://www.w3.org/2005/Atom" 
      xmlns:media="http://search.yahoo.com/mrss/" 
      xmlns:content="http://purl.org/rss/1.0/modules/content/" 
      xmlns:dc="http://purl.org/dc/elements/1.1/" 
      version="2.0">
<channel>
<title>Pointblank</title>
<link>https://posit-dev.github.io/pointblank/blog/</link>
<atom:link href="https://posit-dev.github.io/pointblank/blog/index.xml" rel="self" type="application/rss+xml"/>
<description></description>
<generator>quarto-1.10.18</generator>
<lastBuildDate>Wed, 04 Jun 2025 00:00:00 GMT</lastBuildDate>
<item>
  <title>Data Validation Libraries for Polars (2025 Edition)</title>
  <dc:creator>Rich Iannone</dc:creator>
  <link>https://posit-dev.github.io/pointblank/blog/validation-libs-2025/</link>
  <description><![CDATA[ 




<p>Data validation is a very important part of any data pipeline. And with Polars gaining popularity as a superfast and feature-packed DataFrame library, developers need validation tools that work seamlessly with it. But here’s the thing: not all validation libraries are created equal, and choosing the wrong one can lead to frustration, technical debt, or validation gaps that could bite you later.</p>
<p>In this survey (conducted halfway through 2025) we’ll explore five Python validation libraries that support Polars DataFrames, each bringing distinct strengths to different validation challenges.</p>
<div class="callout callout-style-default callout-note callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
Note
</div>
</div>
<div class="callout-body-container callout-body">
<p>Great Expectations, while being one of the most established data validation frameworks in the Python ecosystem, is not included in this survey as it doesn’t yet offer native Polars support. See <a href="https://github.com/great-expectations/great_expectations/issues/10702">this issue</a> and <a href="https://github.com/great-expectations/great_expectations/discussions/10144">this discussion</a> for the inside baseball.</p>
</div>
</div>
<section id="recommendations" class="level1">
<h1>Recommendations</h1>
<p>Here are the unique strengths for each library:</p>
<div id="d95ec438" class="cell" data-execution_count="1">
<div class="cell-output cell-output-display" data-execution_count="1">
<div id="qzvepnjxoi" style="padding-left:0px;padding-right:0px;padding-top:10px;padding-bottom:10px;overflow-x:auto;overflow-y:auto;width:auto;height:auto;">
<style>
#qzvepnjxoi table {
          font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Helvetica Neue', 'Fira Sans', 'Droid Sans', Arial, sans-serif;
          -webkit-font-smoothing: antialiased;
          -moz-osx-font-smoothing: grayscale;
        }

#qzvepnjxoi thead, tbody, tfoot, tr, td, th { border-style: none; }
 tr { background-color: transparent; }
#qzvepnjxoi p { margin: 0; padding: 0; }
 #qzvepnjxoi .gt_table { display: table; border-collapse: collapse; line-height: normal; margin-left: auto; margin-right: auto; color: #333333; font-size: 16px; font-weight: normal; font-style: normal; background-color: #FFFFFF; width: auto; border-top-style: solid; border-top-width: 2px; border-top-color: #A8A8A8; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #A8A8A8; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; }
 #qzvepnjxoi .gt_caption { padding-top: 4px; padding-bottom: 4px; }
 #qzvepnjxoi .gt_title { color: #333333; font-size: 125%; font-weight: initial; padding-top: 4px; padding-bottom: 4px; padding-left: 10px; padding-right: 10px; border-bottom-color: #FFFFFF; border-bottom-width: 0; }
 #qzvepnjxoi .gt_subtitle { color: #333333; font-size: 85%; font-weight: initial; padding-top: 3px; padding-bottom: 5px; padding-left: 10px; padding-right: 10px; border-top-color: #FFFFFF; border-top-width: 0; }
 #qzvepnjxoi .gt_heading { background-color: #FFFFFF; text-align: center; border-bottom-color: #FFFFFF; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; }
 #qzvepnjxoi .gt_bottom_border { border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; }
 #qzvepnjxoi .gt_col_headings { border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; }
 #qzvepnjxoi .gt_col_heading { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: normal; text-transform: inherit; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; vertical-align: bottom; padding-top: 5px; padding-bottom: 5px; padding-left: 10px; padding-right: 10px; overflow-x: hidden; }
 #qzvepnjxoi .gt_column_spanner_outer { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: normal; text-transform: inherit; padding-top: 0; padding-bottom: 0; padding-left: 4px; padding-right: 4px; }
 #qzvepnjxoi .gt_column_spanner_outer:first-child { padding-left: 0; }
 #qzvepnjxoi .gt_column_spanner_outer:last-child { padding-right: 0; }
 #qzvepnjxoi .gt_column_spanner { border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; vertical-align: bottom; padding-top: 5px; padding-bottom: 5px; overflow-x: hidden; display: inline-block; width: 100%; }
 #qzvepnjxoi .gt_spanner_row { border-bottom-style: hidden; }
 #qzvepnjxoi .gt_group_heading { padding-top: 8px; padding-bottom: 8px; padding-left: 10px; padding-right: 10px; color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; text-transform: inherit; border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; vertical-align: middle; text-align: left; }
 #qzvepnjxoi .gt_empty_group_heading { padding: 0.5px; color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; vertical-align: middle; }
 #qzvepnjxoi .gt_from_md> :first-child { margin-top: 0; }
 #qzvepnjxoi .gt_from_md> :last-child { margin-bottom: 0; }
 #qzvepnjxoi .gt_row { padding-top: 8px; padding-bottom: 8px; padding-left: 10px; padding-right: 10px; margin: 10px; border-top-style: solid; border-top-width: 1px; border-top-color: #D3D3D3; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; vertical-align: middle; overflow-x: hidden; }
 #qzvepnjxoi .gt_stub { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; text-transform: inherit; border-right-style: solid; border-right-width: 2px; border-right-color: #D3D3D3; padding-left: 10px; padding-right: 10px; }
 #qzvepnjxoi .gt_stub_row_group { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; text-transform: inherit; border-right-style: solid; border-right-width: 2px; border-right-color: #D3D3D3; padding-left: 10px; padding-right: 10px; vertical-align: top; }
 #qzvepnjxoi .gt_row_group_first td { border-top-width: 2px; }
 #qzvepnjxoi .gt_row_group_first th { border-top-width: 2px; }
 #qzvepnjxoi .gt_striped { color: #333333; background-color: #F4F4F4; }
 #qzvepnjxoi .gt_table_body { border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; }
 #qzvepnjxoi .gt_summary_row { color: #333333; background-color: #FFFFFF; text-transform: inherit; padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; }
 #qzvepnjxoi .gt_first_summary_row { border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; }
 #qzvepnjxoi .gt_last_summary_row_top { border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; }
 #qzvepnjxoi .gt_grand_summary_row { color: #333333; background-color: #FFFFFF; text-transform: inherit; padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; }
 #qzvepnjxoi .gt_first_grand_summary_row_bottom { border-top-style: double; border-top-width: 6px; border-top-color: #D3D3D3; }
 #qzvepnjxoi .gt_last_grand_summary_row_top { border-bottom-style: double; border-bottom-width: 6px; border-bottom-color: #D3D3D3; }
 #qzvepnjxoi .gt_sourcenotes { color: #333333; background-color: #FFFFFF; border-bottom-style: none; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; }
 #qzvepnjxoi .gt_sourcenote { font-size: 90%; padding-top: 4px; padding-bottom: 4px; padding-left: 10px; padding-right: 10px; text-align: left; }
 #qzvepnjxoi .gt_left { text-align: left; }
 #qzvepnjxoi .gt_center { text-align: center; }
 #qzvepnjxoi .gt_right { text-align: right; font-variant-numeric: tabular-nums; }
 #qzvepnjxoi .gt_font_normal { font-weight: normal; }
 #qzvepnjxoi .gt_font_bold { font-weight: bold; }
 #qzvepnjxoi .gt_font_italic { font-style: italic; }
 #qzvepnjxoi .gt_super { font-size: 65%; }
 #qzvepnjxoi .gt_footnotes { color: font-color(#FFFFFF); background-color: #FFFFFF; border-bottom-style: none; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; }
 #qzvepnjxoi .gt_footnote { margin: 0px; font-size: 90%; padding-top: 4px; padding-bottom: 4px; padding-left: 5px; padding-right: 5px; }
 #qzvepnjxoi .gt_sourcenotes { color: #333333; background-color: #FFFFFF; border-bottom-style: none; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; }
 #qzvepnjxoi .gt_sourcenote { font-size: 90%; padding-top: 4px; padding-bottom: 4px; padding-left: 10px; padding-right: 10px; text-align: left; }
 #qzvepnjxoi .gt_footnote_marks { font-size: 75%; vertical-align: 0.4em; position: initial; }
 #qzvepnjxoi .gt_asterisk { font-size: 100%; vertical-align: 0; }
 
</style>
<table class="gt_table" data-quarto-disable-processing="false" data-quarto-bootstrap="false">
<thead>

<tr class="gt_col_headings">
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="lib">Library</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" scope="col" id="stars">⭐</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="feat">Best Features</th>
</tr>
</thead>
<tbody class="gt_table_body">
  <tr>
    <td class="gt_row gt_left"><a href="https://github.com/unionai-oss/pandera" style="color: #333333; text-underline-offset: 3px;">Pandera</a></td>
    <td class="gt_row gt_right">3,838</td>
    <td class="gt_row gt_left">Statistical testing, schema-centric validation, mypy integration</td>
  </tr>
  <tr>
    <td class="gt_row gt_left"><a href="https://github.com/JakobGM/patito" style="color: #333333; text-underline-offset: 3px;">Patito</a></td>
    <td class="gt_row gt_right">468</td>
    <td class="gt_row gt_left">Pydantic integration, model-based validation, row-level objects</td>
  </tr>
  <tr>
    <td class="gt_row gt_left"><a href="https://github.com/posit-dev/pointblank" style="color: #333333; text-underline-offset: 3px;">Pointblank</a></td>
    <td class="gt_row gt_right">173</td>
    <td class="gt_row gt_left">Interactive reports, threshold management, stakeholder communication</td>
  </tr>
  <tr>
    <td class="gt_row gt_left"><a href="https://github.com/akmalsoliev/Validoopsie" style="color: #333333; text-underline-offset: 3px;">Validoopsie</a></td>
    <td class="gt_row gt_right">63</td>
    <td class="gt_row gt_left">Built-in logging, composable validation, impact levels, lightweight Great Expectations alternative</td>
  </tr>
  <tr>
    <td class="gt_row gt_left"><a href="https://github.com/Quantco/dataframely" style="color: #333333; text-underline-offset: 3px;">Dataframely</a></td>
    <td class="gt_row gt_right">319</td>
    <td class="gt_row gt_left">Collection validation, advanced type safety, failure analysis</td>
  </tr>
</tbody>

</table>

</div>
</div>
</div>
<p>Based on these strengths, here are my recommendations for which libraries to use according to use case:</p>
<div id="6df07c93" class="cell" data-execution_count="2">
<div class="cell-output cell-output-display" data-execution_count="2">
<div id="uzvwjdtugg" style="padding-left:0px;padding-right:0px;padding-top:10px;padding-bottom:10px;overflow-x:auto;overflow-y:auto;width:auto;height:auto;">
<style>
#uzvwjdtugg table {
          font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Helvetica Neue', 'Fira Sans', 'Droid Sans', Arial, sans-serif;
          -webkit-font-smoothing: antialiased;
          -moz-osx-font-smoothing: grayscale;
        }

#uzvwjdtugg thead, tbody, tfoot, tr, td, th { border-style: none; }
 tr { background-color: transparent; }
#uzvwjdtugg p { margin: 0; padding: 0; }
 #uzvwjdtugg .gt_table { display: table; border-collapse: collapse; line-height: normal; margin-left: auto; margin-right: auto; color: #333333; font-size: 16px; font-weight: normal; font-style: normal; background-color: #FFFFFF; width: auto; border-top-style: solid; border-top-width: 2px; border-top-color: #A8A8A8; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #A8A8A8; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; }
 #uzvwjdtugg .gt_caption { padding-top: 4px; padding-bottom: 4px; }
 #uzvwjdtugg .gt_title { color: #333333; font-size: 125%; font-weight: initial; padding-top: 4px; padding-bottom: 4px; padding-left: 10px; padding-right: 10px; border-bottom-color: #FFFFFF; border-bottom-width: 0; }
 #uzvwjdtugg .gt_subtitle { color: #333333; font-size: 85%; font-weight: initial; padding-top: 3px; padding-bottom: 5px; padding-left: 10px; padding-right: 10px; border-top-color: #FFFFFF; border-top-width: 0; }
 #uzvwjdtugg .gt_heading { background-color: #FFFFFF; text-align: center; border-bottom-color: #FFFFFF; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; }
 #uzvwjdtugg .gt_bottom_border { border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; }
 #uzvwjdtugg .gt_col_headings { border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; }
 #uzvwjdtugg .gt_col_heading { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: normal; text-transform: inherit; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; vertical-align: bottom; padding-top: 5px; padding-bottom: 5px; padding-left: 10px; padding-right: 10px; overflow-x: hidden; }
 #uzvwjdtugg .gt_column_spanner_outer { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: normal; text-transform: inherit; padding-top: 0; padding-bottom: 0; padding-left: 4px; padding-right: 4px; }
 #uzvwjdtugg .gt_column_spanner_outer:first-child { padding-left: 0; }
 #uzvwjdtugg .gt_column_spanner_outer:last-child { padding-right: 0; }
 #uzvwjdtugg .gt_column_spanner { border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; vertical-align: bottom; padding-top: 5px; padding-bottom: 5px; overflow-x: hidden; display: inline-block; width: 100%; }
 #uzvwjdtugg .gt_spanner_row { border-bottom-style: hidden; }
 #uzvwjdtugg .gt_group_heading { padding-top: 8px; padding-bottom: 8px; padding-left: 10px; padding-right: 10px; color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; text-transform: inherit; border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; vertical-align: middle; text-align: left; }
 #uzvwjdtugg .gt_empty_group_heading { padding: 0.5px; color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; vertical-align: middle; }
 #uzvwjdtugg .gt_from_md> :first-child { margin-top: 0; }
 #uzvwjdtugg .gt_from_md> :last-child { margin-bottom: 0; }
 #uzvwjdtugg .gt_row { padding-top: 8px; padding-bottom: 8px; padding-left: 10px; padding-right: 10px; margin: 10px; border-top-style: solid; border-top-width: 1px; border-top-color: #D3D3D3; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; vertical-align: middle; overflow-x: hidden; }
 #uzvwjdtugg .gt_stub { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; text-transform: inherit; border-right-style: solid; border-right-width: 2px; border-right-color: #D3D3D3; padding-left: 10px; padding-right: 10px; }
 #uzvwjdtugg .gt_stub_row_group { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; text-transform: inherit; border-right-style: solid; border-right-width: 2px; border-right-color: #D3D3D3; padding-left: 10px; padding-right: 10px; vertical-align: top; }
 #uzvwjdtugg .gt_row_group_first td { border-top-width: 2px; }
 #uzvwjdtugg .gt_row_group_first th { border-top-width: 2px; }
 #uzvwjdtugg .gt_striped { color: #333333; background-color: #F4F4F4; }
 #uzvwjdtugg .gt_table_body { border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; }
 #uzvwjdtugg .gt_summary_row { color: #333333; background-color: #FFFFFF; text-transform: inherit; padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; }
 #uzvwjdtugg .gt_first_summary_row { border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; }
 #uzvwjdtugg .gt_last_summary_row_top { border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; }
 #uzvwjdtugg .gt_grand_summary_row { color: #333333; background-color: #FFFFFF; text-transform: inherit; padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; }
 #uzvwjdtugg .gt_first_grand_summary_row_bottom { border-top-style: double; border-top-width: 6px; border-top-color: #D3D3D3; }
 #uzvwjdtugg .gt_last_grand_summary_row_top { border-bottom-style: double; border-bottom-width: 6px; border-bottom-color: #D3D3D3; }
 #uzvwjdtugg .gt_sourcenotes { color: #333333; background-color: #FFFFFF; border-bottom-style: none; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; }
 #uzvwjdtugg .gt_sourcenote { font-size: 90%; padding-top: 4px; padding-bottom: 4px; padding-left: 10px; padding-right: 10px; text-align: left; }
 #uzvwjdtugg .gt_left { text-align: left; }
 #uzvwjdtugg .gt_center { text-align: center; }
 #uzvwjdtugg .gt_right { text-align: right; font-variant-numeric: tabular-nums; }
 #uzvwjdtugg .gt_font_normal { font-weight: normal; }
 #uzvwjdtugg .gt_font_bold { font-weight: bold; }
 #uzvwjdtugg .gt_font_italic { font-style: italic; }
 #uzvwjdtugg .gt_super { font-size: 65%; }
 #uzvwjdtugg .gt_footnotes { color: font-color(#FFFFFF); background-color: #FFFFFF; border-bottom-style: none; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; }
 #uzvwjdtugg .gt_footnote { margin: 0px; font-size: 90%; padding-top: 4px; padding-bottom: 4px; padding-left: 5px; padding-right: 5px; }
 #uzvwjdtugg .gt_sourcenotes { color: #333333; background-color: #FFFFFF; border-bottom-style: none; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; }
 #uzvwjdtugg .gt_sourcenote { font-size: 90%; padding-top: 4px; padding-bottom: 4px; padding-left: 10px; padding-right: 10px; text-align: left; }
 #uzvwjdtugg .gt_footnote_marks { font-size: 75%; vertical-align: 0.4em; position: initial; }
 #uzvwjdtugg .gt_asterisk { font-size: 100%; vertical-align: 0; }
 
</style>
<table class="gt_table" data-quarto-disable-processing="false" data-quarto-bootstrap="false">
<thead>

<tr class="gt_col_headings">
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="use_case">Use Case</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="libs">Best Libraries</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="desc">Description</th>
</tr>
</thead>
<tbody class="gt_table_body">
  <tr>
    <td class="gt_row gt_left">Type-safe pipelines</td>
    <td class="gt_row gt_left">Pandera, Dataframely, Patito</td>
    <td class="gt_row gt_left">Static type checking and compile-time validation</td>
  </tr>
  <tr>
    <td class="gt_row gt_left">Stakeholder reporting</td>
    <td class="gt_row gt_left">Pointblank</td>
    <td class="gt_row gt_left">Sharing validation results with non-technical teams</td>
  </tr>
  <tr>
    <td class="gt_row gt_left">Row-level object modeling</td>
    <td class="gt_row gt_left">Patito</td>
    <td class="gt_row gt_left">Converting DataFrame rows to Python objects with business logic</td>
  </tr>
  <tr>
    <td class="gt_row gt_left">Statistical validation</td>
    <td class="gt_row gt_left">Pandera</td>
    <td class="gt_row gt_left">Testing data distributions and statistical properties</td>
  </tr>
  <tr>
    <td class="gt_row gt_left">Data quality improvement</td>
    <td class="gt_row gt_left">Pointblank, Validoopsie</td>
    <td class="gt_row gt_left">Gradual quality improvement with threshold tracking</td>
  </tr>
</tbody>

</table>

</div>
</div>
</div>
</section>
<section id="setup" class="level1">
<h1>Setup</h1>
<p>We are going to run through examples with <strong>Pandera</strong>, <strong>Patito</strong>, <strong>Pointblank</strong>, <strong>Validoopsie</strong>, and <strong>Dataframely</strong>, using this Polars DataFrame as our test case:</p>
<div id="968cdfb5" class="cell" data-execution_count="3">
<div class="sourceCode cell-code" id="cb1" style="background: #f1f3f5;"><pre class="sourceCode python"><code class="sourceCode python"><span id="cb1-1"><span class="im" style="color: #00769E;
background-color: null;
font-style: inherit;">import</span> polars <span class="im" style="color: #00769E;
background-color: null;
font-style: inherit;">as</span> pl</span>
<span id="cb1-2"></span>
<span id="cb1-3"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Standard dataset for all validation examples</span></span>
<span id="cb1-4">user_data <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> pl.DataFrame({</span>
<span id="cb1-5">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"user_id"</span>: [<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">3</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">4</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">5</span>],</span>
<span id="cb1-6">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"age"</span>: [<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">25</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">30</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">22</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">45</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">95</span>],  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># &lt;- includes a very high age</span></span>
<span id="cb1-7">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"email"</span>: [</span>
<span id="cb1-8">        <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"user1@example.com"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"user2@example.com"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"invalid-email"</span>,  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># &lt;- has an invalid email</span></span>
<span id="cb1-9">        <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"user4@example.com"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"user5@example.com"</span></span>
<span id="cb1-10">    ],</span>
<span id="cb1-11">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"score"</span>: [<span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">85.5</span>, <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">92.0</span>, <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">78.3</span>, <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">88.7</span>, <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">95.2</span>]</span>
<span id="cb1-12">})</span></code></pre></div>
</div>
<p>We’ll try to run the same data validation across the surveyed libraries, so we’ll check:</p>
<ul>
<li>schema validation (correct column types)</li>
<li><code>user_id</code> values greater than <code>0</code></li>
<li><code>age</code> values between <code>18</code> and <code>80</code> (inclusive)</li>
<li><code>email</code> strings matching a basic email regex pattern</li>
<li><code>score</code> values between <code>0</code> and <code>100</code> (inclusive)</li>
</ul>
<p>Now let’s dive into each library, starting with the statistically-focused Pandera.</p>
</section>
<section id="pandera-schema-first-validation-with-statistical-checks" class="level1">
<h1>1. Pandera: Schema-First Validation with Statistical Checks</h1>
<p>Pandera is a statistical data validation toolkit designed to provide a flexible and expressive API for performing data validation on dataframe-like objects. The library centers on schema-centric validation, where you define the expected structure and constraints of your data upfront. You can enable both runtime validation and static type checking integration. Pandera added Polars support in version <code>0.19.0</code> (early 2024).</p>
<section id="example" class="level2">
<h2 class="anchored" data-anchor-id="example">Example</h2>
<div id="8abeb30f" class="cell" data-execution_count="4">
<div class="sourceCode cell-code" id="cb2" style="background: #f1f3f5;"><pre class="sourceCode python"><code class="sourceCode python"><span id="cb2-1"><span class="im" style="color: #00769E;
background-color: null;
font-style: inherit;">import</span> pandera.polars <span class="im" style="color: #00769E;
background-color: null;
font-style: inherit;">as</span> pa</span>
<span id="cb2-2"></span>
<span id="cb2-3"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Define schema using our standard dataset</span></span>
<span id="cb2-4">schema <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> pa.DataFrameSchema({</span>
<span id="cb2-5">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"user_id"</span>: pa.Column(pl.Int64, checks<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>pa.Check.gt(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>)),</span>
<span id="cb2-6">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"age"</span>: pa.Column(pl.Int64, checks<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>[pa.Check.ge(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">18</span>), pa.Check.le(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">80</span>)]),</span>
<span id="cb2-7">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"email"</span>: pa.Column(pl.Utf8, checks<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>pa.Check.str_matches(<span class="vs" style="color: #20794D;
background-color: null;
font-style: inherit;">r"</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">^</span><span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;">[^@]</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span><span class="vs" style="color: #20794D;
background-color: null;
font-style: inherit;">@</span><span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;">[^@]</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span><span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;">\.</span><span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;">[^@]</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">$</span><span class="vs" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span>)),</span>
<span id="cb2-8">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"score"</span>: pa.Column(pl.Float64, checks<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>pa.Check.in_range(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">100</span>))</span>
<span id="cb2-9">})</span>
<span id="cb2-10"></span>
<span id="cb2-11"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Validate the schema</span></span>
<span id="cb2-12"><span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">try</span>:</span>
<span id="cb2-13">    validated_data <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> schema.validate(user_data)</span>
<span id="cb2-14">    <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">print</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Validation successful!"</span>)</span>
<span id="cb2-15"><span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">except</span> pa.errors.SchemaError <span class="im" style="color: #00769E;
background-color: null;
font-style: inherit;">as</span> e:</span>
<span id="cb2-16">    <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">print</span>(<span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">f"Validation failed: </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">{</span>e<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">}</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span>)</span></code></pre></div>
<div class="cell-output cell-output-stdout">
<pre><code>Validation failed: Column 'age' failed validator number 1: &lt;Check less_than_or_equal_to: less_than_or_equal_to(80)&gt; failure case examples: [{'age': 95}]</code></pre>
</div>
</div>
<p>This example demonstrates Pandera’s declarative approach, where you define what your data should look like rather than writing imperative validation logic. The schema acts as both documentation and as a validation contract. Notice how multiple checks can be applied to a single column (here, the <code>age</code> column receives two checks), and the validation either succeeds completely or provides error information about what failed.</p>
</section>
<section id="comparisons" class="level2">
<h2 class="anchored" data-anchor-id="comparisons">Comparisons</h2>
<p>Both Pandera and Patito use declarative, schema-centric approaches, but differ in their design philosophies:</p>
<ul>
<li>Pandera uses a dictionary-like schema structure with Column objects for defining validation rules</li>
<li>Patito uses Pydantic model classes with familiar Field syntax for validation constraints</li>
<li>Pandera focuses heavily on statistical validation capabilities like hypothesis testing</li>
<li>Patito emphasizes integration with existing Pydantic workflows and object modeling</li>
<li>a key behavioral difference: Patito reports all validation errors in a single pass, while Pandera stops at the first failure</li>
</ul>
<p>The choice between them often comes down to whether you prefer Pandera’s statistical focus or Patito’s Pydantic integration.</p>
<p>Unlike Pointblank’s step-by-step validation reporting, Pandera validates the entire schema at once. Compared to Patito’s model-based approach, Pandera focuses more on statistical validation capabilities. Unlike Validoopsie’s and Pointblank’s method chaining style, Pandera uses a more declarative, schema-centric approach.</p>
</section>
<section id="unique-strengths-and-when-to-use" class="level2">
<h2 class="anchored" data-anchor-id="unique-strengths-and-when-to-use">Unique Strengths and When to Use</h2>
<p>Here are some of stand-out features that Pandera has:</p>
<ul>
<li>type-safe schema definitions with <code>mypy</code> integration</li>
<li>statistical hypothesis testing for data distributions: perform t-tests, chi-square tests, and custom statistical tests directly in your validation schema</li>
<li>excellent integration with Pandas, Polars, and Arrow support</li>
<li>declarative schema syntax that serves as documentation</li>
<li>built-in support for data coercion and transformation</li>
</ul>
<p>This statistical validation capability goes beyond basic type and range checking to test actual data relationships and distributional assumptions. For example, you can validate that the mean height of group <code>"M"</code> is significantly greater than group <code>"F"</code> using a two-sample t-test, or test whether a column follows a normal distribution. This makes Pandera uniquely powerful for data science workflows where the statistical properties of your data are as important as individual data points meeting basic constraints.</p>
<p>Data practitioners should choose Pandera when building type-safe data pipelines where schema validation is critical, especially in data science workflows that require statistical validation. It’s ideal for users that value static type checking, need to validate statistical properties of their data, or want schemas that double as documentation.</p>
<p>Pandera also excels in environments where data contracts between teams are important and where the statistical properties of data matter as much as basic type checking.</p>
</section>
</section>
<section id="patito-pydantic-style-data-models-for-dataframes" class="level1">
<h1>2. Patito: Pydantic-Style Data Models for DataFrames</h1>
<p>Patito brings Pydantic’s well-received model-based validation approach to DataFrame validation, creating a bridge between Pydantic-style data validation and DataFrame processing. The library’s primary goal is to provide a familiar, Pydantic-style interface for defining and validating DataFrame schemas, making it particularly appealing to developers already using Pydantic in their applications.</p>
<p>Patito launched with Polars support from the beginning (in late 2022). Native Polars integration is touted as one of its core features, reflecting the growing adoption of Polars in the Python ecosystem.</p>
<section id="example-1" class="level2">
<h2 class="anchored" data-anchor-id="example-1">Example</h2>
<div id="78e385e7" class="cell" data-execution_count="5">
<div class="sourceCode cell-code" id="cb4" style="background: #f1f3f5;"><pre class="sourceCode python"><code class="sourceCode python"><span id="cb4-1"><span class="im" style="color: #00769E;
background-color: null;
font-style: inherit;">import</span> patito <span class="im" style="color: #00769E;
background-color: null;
font-style: inherit;">as</span> pt</span>
<span id="cb4-2"><span class="im" style="color: #00769E;
background-color: null;
font-style: inherit;">from</span> typing <span class="im" style="color: #00769E;
background-color: null;
font-style: inherit;">import</span> Annotated</span>
<span id="cb4-3"></span>
<span id="cb4-4"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">class</span> UserModel(pt.Model):</span>
<span id="cb4-5">    user_id: <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">int</span> <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> pt.Field(gt<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>)</span>
<span id="cb4-6">    age: Annotated[<span class="bu" style="color: null;
background-color: null;
font-style: inherit;">int</span>, pt.Field(ge<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">18</span>, le<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">80</span>)]</span>
<span id="cb4-7">    email: <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">str</span> <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> pt.Field(pattern<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="vs" style="color: #20794D;
background-color: null;
font-style: inherit;">r"</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">^</span><span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;">[^@]</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span><span class="vs" style="color: #20794D;
background-color: null;
font-style: inherit;">@</span><span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;">[^@]</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span><span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;">\.</span><span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;">[^@]</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">$</span><span class="vs" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span>)</span>
<span id="cb4-8">    score: <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">float</span> <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> pt.Field(ge<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.0</span>, le<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">100.0</span>)</span>
<span id="cb4-9"></span>
<span id="cb4-10"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Validate using the model</span></span>
<span id="cb4-11"><span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">try</span>:</span>
<span id="cb4-12">    UserModel.validate(user_data)</span>
<span id="cb4-13">    <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">print</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Validation successful!"</span>)</span>
<span id="cb4-14"><span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">except</span> pt.exceptions.DataFrameValidationError <span class="im" style="color: #00769E;
background-color: null;
font-style: inherit;">as</span> e:</span>
<span id="cb4-15">    <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">print</span>(<span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">f"Validation failed: </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">{</span>e<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">}</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span>)</span></code></pre></div>
<div class="cell-output cell-output-stdout">
<pre><code>Validation failed: 2 validation errors for UserModel
age
  1 row with out of bound values. (type=value_error.rowvalue)
email
  1 row with out of bound values. (type=value_error.rowvalue)</code></pre>
</div>
</div>
<p>This example showcases Patito’s model-centric approach where validation rules are embedded in class definitions. The use of Python’s type hints and Pydantic’s Field syntax makes the validation rules self-documenting. Notably, Patito reports all validation errors at once, providing a fairly comprehensive view of data quality issues, whereas other libraries (e.g., Pandera) stop at the first failure.</p>
</section>
<section id="column-validation-approaches-pandera-vs-patito" class="level2">
<h2 class="anchored" data-anchor-id="column-validation-approaches-pandera-vs-patito">Column Validation Approaches: Pandera vs Patito</h2>
<p><strong>Pandera offers a much more extensive and flexible system for column validation</strong> compared to Patito’s field-based approach. While Patito provides a solid set of built-in field constraints (like <code>gt</code>, <code>le</code>, <code>regex</code>, <code>unique</code>, etc.) that cover common validation scenarios, Pandera’s Check system is designed for both simple and highly sophisticated validation logic.</p>
<p>The key architectural difference seems to lie in extensibility and complexity. Pandera’s <code>Check</code> objects accept arbitrary functions, allowing you to write custom validation logic that can be as simple as <code>lambda s: s &gt; 0</code> or as complex as statistical hypothesis tests using scipy. You can create vectorized checks that operate on entire Series objects for performance, element-wise checks for atomic validation, and even grouped checks that validate subsets of data based on other columns. Patito’s <code>Field</code> constraints, while clean and declarative, are more limited to the predefined validation types that Pydantic and Patito provide.</p>
<p>Pandera also supports advanced validation patterns that Patito doesn’t directly offer, such as wide-form data checks (validating relationships across multiple columns), grouped validation (where checks are applied to subsets of data based on grouping columns), and the ability to raise warnings instead of errors for non-critical validation failures. While Patito does support custom constraints through Polars expressions via the <code>constraints</code> parameter, this requires knowledge of Polars expression syntax and, depending on where you’re coming from, could be less intuitive than Pandera’s function-based approach.</p>
<p>For most common validation scenarios, Patito’s field-based validation is simpler and more readable, especially for teams already familiar with Pydantic. However, for complex data validation requirements, statistical validation, or when you need maximum flexibility in defining validation logic, Pandera’s Check system provides significantly more power and extensibility.</p>
</section>
<section id="unique-strengths-and-when-to-use-1" class="level2">
<h2 class="anchored" data-anchor-id="unique-strengths-and-when-to-use-1">Unique Strengths and When to Use</h2>
<ul>
<li>Pydantic-style model definitions with familiar syntax for Pydantic users</li>
<li>rich type system integration with Python’s typing system</li>
<li>model inheritance and composition for complex data structures</li>
<li>seamless integration with existing Pydantic-based applications</li>
<li>row-level object modeling for converting DataFrame rows to Python objects with methods</li>
<li>mock data generation for testing with <code>.examples()</code> method</li>
</ul>
<p>People should choose Patito when they’re already using Pydantic in their applications and want consistent validation patterns across data processing and application logic. It’s great when you need to validate DataFrames and then work with individual rows as rich Python objects with embedded business logic and methods (e.g., a <code>Product</code> row that has a <code>.url</code> property or <code>.calculate_discount()</code> method). Patito is also good when you need to generate realistic test data and want object-oriented interfaces for their data models.</p>
</section>
</section>
<section id="pointblank-comprehensive-validation-with-beautiful-reports" class="level1">
<h1>3. Pointblank: Comprehensive Validation with Beautiful Reports</h1>
<p>Pointblank is a comprehensive data validation framework designed to make data quality assessment both thorough and accessible to stakeholders. Originally inspired by the R package of the same name, Pointblank’s primary mission is to provide validation workflows that generate beautiful, interactive reports that can be shared with both technical and non-technical team members.</p>
<p>Pointblank launched with Polars support as a core feature from its initial Python release in late 2024, built on top of the Narwhals and Ibis compatibility layers to provide consistent DataFrame operations across multiple backends including Polars, Pandas, and database connections.</p>
<section id="example-2" class="level2">
<h2 class="anchored" data-anchor-id="example-2">Example</h2>
<div id="4a332149" class="cell" data-execution_count="6">
<div class="sourceCode cell-code" id="cb6" style="background: #f1f3f5;"><pre class="sourceCode python"><code class="sourceCode python"><span id="cb6-1"><span class="im" style="color: #00769E;
background-color: null;
font-style: inherit;">import</span> pointblank <span class="im" style="color: #00769E;
background-color: null;
font-style: inherit;">as</span> pb</span>
<span id="cb6-2"></span>
<span id="cb6-3">schema <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> pb.Schema(</span>
<span id="cb6-4">    columns<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>[(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"user_id"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Int64"</span>), (<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"age"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Int64"</span>), (<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"email"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"String"</span>), (<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"score"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Float64"</span>)]</span>
<span id="cb6-5">)</span>
<span id="cb6-6"></span>
<span id="cb6-7">validation <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> (</span>
<span id="cb6-8">    pb.Validate(data<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>user_data, label<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"An example."</span>, tbl_name<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"users"</span>, thresholds<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>(<span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.1</span>, <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.2</span>, <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.3</span>))</span>
<span id="cb6-9">    .col_vals_gt(columns<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"user_id"</span>, value<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>)</span>
<span id="cb6-10">    .col_vals_between(columns<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"age"</span>, left<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">18</span>, right<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">80</span>)</span>
<span id="cb6-11">    .col_vals_regex(columns<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"email"</span>, pattern<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="vs" style="color: #20794D;
background-color: null;
font-style: inherit;">r"</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">^</span><span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;">[^@]</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span><span class="vs" style="color: #20794D;
background-color: null;
font-style: inherit;">@</span><span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;">[^@]</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span><span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;">\.</span><span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;">[^@]</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">$</span><span class="vs" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span>)</span>
<span id="cb6-12">    .col_vals_between(columns<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"score"</span>, left<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>, right<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">100</span>)</span>
<span id="cb6-13">    .col_schema_match(schema<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>schema)</span>
<span id="cb6-14">    .interrogate()</span>
<span id="cb6-15">)</span>
<span id="cb6-16"></span>
<span id="cb6-17">validation</span></code></pre></div>
<div class="cell-output cell-output-display" data-execution_count="6">
<div id="pb_tbl" style="padding-left:0px;padding-right:0px;padding-top:10px;padding-bottom:10px;overflow-x:auto;overflow-y:auto;width:auto;height:auto;">
<style>
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono&display=swap');
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Sans&display=swap');
#pb_tbl table {
          font-family: 'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Helvetica Neue', 'Fira Sans', 'Droid Sans', Arial, sans-serif;
          -webkit-font-smoothing: antialiased;
          -moz-osx-font-smoothing: grayscale;
        }

#pb_tbl thead, tbody, tfoot, tr, td, th { border-style: none; }
 tr { background-color: transparent; }
#pb_tbl p { margin: 0; padding: 0; }
 #pb_tbl .gt_table { display: table; border-collapse: collapse; line-height: normal; margin-left: auto; margin-right: auto; color: #333333; font-size: 90%; font-weight: normal; font-style: normal; background-color: #FFFFFF; width: auto; border-top-style: solid; border-top-width: 2px; border-top-color: #A8A8A8; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #A8A8A8; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; }
 #pb_tbl .gt_caption { padding-top: 4px; padding-bottom: 4px; }
 #pb_tbl .gt_title { color: #333333; font-size: 125%; font-weight: initial; padding-top: 4px; padding-bottom: 4px; padding-left: 5px; padding-right: 5px; border-bottom-color: #FFFFFF; border-bottom-width: 0; }
 #pb_tbl .gt_subtitle { color: #333333; font-size: 85%; font-weight: initial; padding-top: 3px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; border-top-color: #FFFFFF; border-top-width: 0; }
 #pb_tbl .gt_heading { background-color: #FFFFFF; text-align: left; border-bottom-color: #FFFFFF; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; }
 #pb_tbl .gt_bottom_border { border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; }
 #pb_tbl .gt_col_headings { border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; }
 #pb_tbl .gt_col_heading { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: normal; text-transform: inherit; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; vertical-align: bottom; padding-top: 5px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; overflow-x: hidden; }
 #pb_tbl .gt_column_spanner_outer { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: normal; text-transform: inherit; padding-top: 0; padding-bottom: 0; padding-left: 4px; padding-right: 4px; }
 #pb_tbl .gt_column_spanner_outer:first-child { padding-left: 0; }
 #pb_tbl .gt_column_spanner_outer:last-child { padding-right: 0; }
 #pb_tbl .gt_column_spanner { border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; vertical-align: bottom; padding-top: 5px; padding-bottom: 5px; overflow-x: hidden; display: inline-block; width: 100%; }
 #pb_tbl .gt_spanner_row { border-bottom-style: hidden; }
 #pb_tbl .gt_group_heading { padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; text-transform: inherit; border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; vertical-align: middle; text-align: left; }
 #pb_tbl .gt_empty_group_heading { padding: 0.5px; color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; vertical-align: middle; }
 #pb_tbl .gt_from_md> :first-child { margin-top: 0; }
 #pb_tbl .gt_from_md> :last-child { margin-bottom: 0; }
 #pb_tbl .gt_row { padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; margin: 10px; border-top-style: solid; border-top-width: 1px; border-top-color: #D3D3D3; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; vertical-align: middle; overflow-x: hidden; }
 #pb_tbl .gt_stub { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; text-transform: inherit; border-right-style: solid; border-right-width: 2px; border-right-color: #D3D3D3; padding-left: 5px; padding-right: 5px; }
 #pb_tbl .gt_stub_row_group { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; text-transform: inherit; border-right-style: solid; border-right-width: 2px; border-right-color: #D3D3D3; padding-left: 5px; padding-right: 5px; vertical-align: top; }
 #pb_tbl .gt_row_group_first td { border-top-width: 2px; }
 #pb_tbl .gt_row_group_first th { border-top-width: 2px; }
 #pb_tbl .gt_striped { color: #333333; background-color: #F4F4F4; }
 #pb_tbl .gt_table_body { border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; }
 #pb_tbl .gt_summary_row { color: #333333; background-color: #FFFFFF; text-transform: inherit; padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; }
 #pb_tbl .gt_first_summary_row { border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; }
 #pb_tbl .gt_last_summary_row_top { border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; }
 #pb_tbl .gt_grand_summary_row { color: #333333; background-color: #FFFFFF; text-transform: inherit; padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; }
 #pb_tbl .gt_first_grand_summary_row_bottom { border-top-style: double; border-top-width: 6px; border-top-color: #D3D3D3; }
 #pb_tbl .gt_last_grand_summary_row_top { border-bottom-style: double; border-bottom-width: 6px; border-bottom-color: #D3D3D3; }
 #pb_tbl .gt_sourcenotes { color: #333333; background-color: #FFFFFF; border-bottom-style: none; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; }
 #pb_tbl .gt_sourcenote { font-size: 90%; padding-top: 4px; padding-bottom: 4px; padding-left: 5px; padding-right: 5px; text-align: left; }
 #pb_tbl .gt_left { text-align: left; }
 #pb_tbl .gt_center { text-align: center; }
 #pb_tbl .gt_right { text-align: right; font-variant-numeric: tabular-nums; }
 #pb_tbl .gt_font_normal { font-weight: normal; }
 #pb_tbl .gt_font_bold { font-weight: bold; }
 #pb_tbl .gt_font_italic { font-style: italic; }
 #pb_tbl .gt_super { font-size: 65%; }
 #pb_tbl .gt_footnotes { color: font-color(#FFFFFF); background-color: #FFFFFF; border-bottom-style: none; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; }
 #pb_tbl .gt_footnote { margin: 0px; font-size: 90%; padding-top: 4px; padding-bottom: 4px; padding-left: 5px; padding-right: 5px; }
 #pb_tbl .gt_sourcenotes { color: #333333; background-color: #FFFFFF; border-bottom-style: none; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; }
 #pb_tbl .gt_sourcenote { font-size: 90%; padding-top: 4px; padding-bottom: 4px; padding-left: 5px; padding-right: 5px; text-align: left; }
 #pb_tbl .gt_footnote_marks { font-size: 75%; vertical-align: 0.4em; position: initial; }
 #pb_tbl .gt_asterisk { font-size: 100%; vertical-align: 0; }
 
</style>
<table style="table-layout: fixed;; width: 0px" class="gt_table" data-quarto-disable-processing="true" data-quarto-bootstrap="false">
<colgroup>
  <col style="width:4px;">
  <col style="width:35px;">
  <col style="width:190px;">
  <col style="width:120px;">
  <col style="width:120px;">
  <col style="width:50px;">
  <col style="width:50px;">
  <col style="width:60px;">
  <col style="width:60px;">
  <col style="width:60px;">
  <col style="width:30px;">
  <col style="width:30px;">
  <col style="width:30px;">
  <col style="width:65px;">
</colgroup>

<thead>

  <tr class="gt_heading">
    <td colspan="14" class="gt_heading gt_title gt_font_normal" style="color: #444444;font-size: 28px;text-align: left;font-weight: bold; text-align: left;">Pointblank Validation</td>
  </tr>
  <tr class="gt_heading">
    <td colspan="14" class="gt_heading gt_subtitle gt_font_normal gt_bottom_border" style="text-align: left;"><div><span style="text-decoration-style: solid; text-decoration-color: #ADD8E6; text-decoration-line: underline; text-underline-position: under; color: #333333; font-variant-numeric: tabular-nums; padding-left: 4px; margin-right: 5px; padding-right: 2px;">An example.</span><div style="padding-top: 10px; padding-bottom: 5px;"><span style="background-color: #0075FF; color: #FFFFFF; padding: 0.5em 0.5em; position: inherit; text-transform: uppercase; margin: 5px 0px 5px 0px; border: solid 1px #0075FF; font-weight: bold; padding: 2px 15px 2px 15px; font-size: 10px;">Polars</span><span style="background-color: none; color: #222222; padding: 0.5em 0.5em; position: inherit; margin: 5px 10px 5px -4px; border: solid 1px #0075FF; font-weight: bold; padding: 2px 15px 2px 15px; font-size: 10px;">users</span><span><span style="background-color: #AAAAAA; color: white; padding: 0.5em 0.5em; position: inherit; text-transform: uppercase; margin: 5px 0px 5px 5px; border: solid 1px #AAAAAA; font-weight: bold; padding: 2px 15px 2px 15px; font-size: smaller;">WARNING</span><span style="background-color: none; color: #333333; padding: 0.5em 0.5em; position: inherit; margin: 5px 0px 5px -4px; font-weight: bold; border: solid 1px #AAAAAA; padding: 2px 15px 2px 15px; font-size: smaller; margin-right: 5px;">0.1</span><span style="background-color: #EBBC14; color: white; padding: 0.5em 0.5em; position: inherit; text-transform: uppercase; margin: 5px 0px 5px 1px; border: solid 1px #EBBC14; font-weight: bold; padding: 2px 15px 2px 15px; font-size: smaller;">ERROR</span><span style="background-color: none; color: #333333; padding: 0.5em 0.5em; position: inherit; margin: 5px 0px 5px -4px; font-weight: bold; border: solid 1px #EBBC14; padding: 2px 15px 2px 15px; font-size: smaller; margin-right: 5px;">0.2</span><span style="background-color: #FF3300; color: white; padding: 0.5em 0.5em; position: inherit; text-transform: uppercase; margin: 5px 0px 5px 1px; border: solid 1px #FF3300; font-weight: bold; padding: 2px 15px 2px 15px; font-size: smaller;">CRITICAL</span><span style="background-color: none; color: #333333; padding: 0.5em 0.5em; position: inherit; margin: 5px 0px 5px -4px; font-weight: bold; border: solid 1px #FF3300; padding: 2px 15px 2px 15px; font-size: smaller;">0.3</span></span></div></div></td>
  </tr>
<tr class="gt_col_headings">
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-status_color"></th>
  <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-i"></th>
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-type_upd">STEP</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-columns_upd">COLUMNS</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-values_upd">VALUES</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-tbl">TBL</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-eval">EVAL</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-test_units">UNITS</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-pass">PASS</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-fail">FAIL</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-w_upd">W</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-e_upd">E</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-c_upd">C</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-extract_upd">EXT</th>
</tr>
</thead>
<tbody class="gt_table_body">
  <tr>
    <td style="height: 40px; background-color: #4CA64C; color: transparent;font-size: 0px;" class="gt_row gt_left">#4CA64C</td>
    <td style="height: 40px; color: #666666;font-size: 13px;font-weight: bold;" class="gt_row gt_right">1</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_left">
        <div style="margin: 0; padding: 0; display: inline-block; height: 30px; vertical-align: middle; width: 16%;">
            <!--?xml version="1.0" encoding="UTF-8"?--><!--?xml version="1.0" encoding="UTF-8"?-->
<svg width="30px" height="30px" viewbox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" style="background: #FFFFFF;">
    <title>col_vals_gt</title>
    <g id="Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="col_vals_gt" transform="translate(1.500000, 1.500000)" fill-rule="nonzero">
            <path d="M55,0 C57.4852813,0 59.7352813,1.00735931 61.363961,2.63603897 C62.9926407,4.26471863 64,6.51471863 64,9 L64,9 L64,64 L9,64 C6.51471862,64 4.26471862,62.9926407 2.63603897,61.363961 C1.00735931,59.7352814 0,57.4852814 0,55 L0,55 L0,9 C0,6.51471863 1.00735931,4.26471863 2.63603897,2.63603897 C4.26471862,1.00735931 6.51471862,0 9,0 L9,0 L55,0 Z" id="rectangle" stroke="#000000" stroke-width="2" fill="#FFFFFF"></path>
            <path d="M48.7619048,10 L15.2380953,10 C12.3466667,10 10,12.3466667 10,15.2380952 L10,48.7619048 C10,51.6533333 12.3466667,54 15.2380953,54 L48.7619048,54 C51.6533333,54 54,51.6533333 54,48.7619048 L54,15.2380952 C54,12.3466667 51.6533333,10 48.7619048,10 Z M25.2638095,44.3828571 L24.0695238,42.6647619 L39.5847619,32 L24.0695238,21.3352381 L25.2638095,19.6171429 L43.2828572,32 L25.2638095,44.3828571 Z" id="greater_than" fill="#000000"></path>
        </g>
    </g>
</svg>
        </div>
        <div style="font-family: 'IBM Plex Mono', monospace, courier; color: black; font-size: 11px; display: inline-block; vertical-align: middle;">
            <div>col_vals_gt()</div>
        </div>
        
        </td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">user_id</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">0</td>
    <td style="height: 40px; background-color: #FCFCFC; border-left: 1px solid #D3D3D3;" class="gt_row gt_center"><svg width="25px" height="25px" viewbox="0 0 25 25" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" style="vertical-align: middle;">
    <g id="unchanged" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="unchanged" transform="translate(0.500000, 0.570147)">
            <rect id="Rectangle" x="0.125132506" y="0" width="23.749735" height="23.7894737"></rect>
            <path d="M5.80375046,8.18194736 C3.77191832,8.18194736 2.11875046,9.83495328 2.11875046,11.8669474 C2.11875046,13.8989414 3.77191832,15.5519474 5.80375046,15.5519474 C7.8355826,15.5519474 9.48875046,13.8989414 9.48875046,11.8669474 C9.48875046,9.83495328 7.83552863,8.18194736 5.80375046,8.18194736 Z M5.80375046,14.814915 C4.17821997,14.814915 2.85578285,13.4924778 2.85578285,11.8669474 C2.85578285,10.2414169 4.17821997,8.91897975 5.80375046,8.91897975 C7.42928095,8.91897975 8.75171807,10.2414169 8.75171807,11.8669474 C8.75171807,13.4924778 7.42928095,14.814915 5.80375046,14.814915 Z" id="Shape" fill="#000000" fill-rule="nonzero"></path>
            <path d="M13.9638189,8.699335 C13.9364621,8.70430925 13.9091059,8.71176968 13.8842359,8.71923074 C13.7822704,8.73663967 13.6877654,8.77643115 13.6056956,8.83860518 L10.2433156,11.3852598 C10.0766886,11.5046343 9.97720993,11.6986181 9.97720993,11.9025491 C9.97720993,12.1064807 10.0766886,12.3004639 10.2433156,12.4198383 L13.6056956,14.966493 C13.891697,15.1803725 14.2970729,15.1231721 14.5109517,14.8371707 C14.7248313,14.5511692 14.6676309,14.145794 14.3816294,13.9319145 L12.5313257,12.5392127 L21.8812495,12.5392127 L21.8812495,11.2658854 L12.5313257,11.2658854 L14.3816294,9.87318364 C14.6377872,9.71650453 14.7497006,9.40066014 14.6477351,9.11714553 C14.5482564,8.83363156 14.262255,8.65954352 13.9638189,8.699335 Z" id="arrow" fill="#000000" transform="translate(15.929230, 11.894737) rotate(-180.000000) translate(-15.929230, -11.894737) "></path>
        </g>
    </g>
</svg></td>
    <td style="height: 40px; background-color: #FCFCFC; border-right: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color:#4CA64C;">✓</span></td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_right">5</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5;" class="gt_row gt_right">5<br>1.00</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5;" class="gt_row gt_right">0<br>0.00</td>
    <td style="height: 40px; background-color: #FCFCFC; border-left: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color: #AAAAAA;">○</span></td>
    <td style="height: 40px; background-color: #FCFCFC;" class="gt_row gt_center"><span style="color: #EBBC14;">○</span></td>
    <td style="height: 40px; background-color: #FCFCFC; border-right: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color: #FF3300;">○</span></td>
    <td style="height: 40px;" class="gt_row gt_center">—</td>
  </tr>
  <tr>
    <td style="height: 40px; background-color: #EBBC14; color: transparent;font-size: 0px;" class="gt_row gt_left">#EBBC14</td>
    <td style="height: 40px; color: #666666;font-size: 13px;font-weight: bold;" class="gt_row gt_right">2</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_left">
        <div style="margin: 0; padding: 0; display: inline-block; height: 30px; vertical-align: middle; width: 16%;">
            <!--?xml version="1.0" encoding="UTF-8"?--><!--?xml version="1.0" encoding="UTF-8"?-->
<svg width="30px" height="30px" viewbox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink">
    <title>col_vals_between</title>
    <g id="Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="col_vals_between" transform="translate(0.000000, 0.206897)">
            <path d="M56.712234,1 C59.1975153,1 61.4475153,2.00735931 63.076195,3.63603897 C64.7048747,5.26471863 65.712234,7.51471863 65.712234,10 L65.712234,10 L65.712234,65 L10.712234,65 C8.22695259,65 5.97695259,63.9926407 4.34827294,62.363961 C2.71959328,60.7352814 1.71223397,58.4852814 1.71223397,56 L1.71223397,56 L1.71223397,10 C1.71223397,7.51471863 2.71959328,5.26471863 4.34827294,3.63603897 C5.97695259,2.00735931 8.22695259,1 10.712234,1 L10.712234,1 Z" id="rectangle" stroke="#000000" stroke-width="2" fill="#FFFFFF"></path>
            <path d="M11.993484,21.96875 C10.962234,22.082031 10.188797,22.964844 10.212234,24 L10.212234,42 C10.200515,42.722656 10.579422,43.390625 11.204422,43.753906 C11.825515,44.121094 12.598953,44.121094 13.220047,43.753906 C13.845047,43.390625 14.223953,42.722656 14.212234,42 L14.212234,24 C14.220047,23.457031 14.009109,22.9375 13.626297,22.554688 C13.243484,22.171875 12.723953,21.960938 12.180984,21.96875 C12.118484,21.964844 12.055984,21.964844 11.993484,21.96875 Z M55.993484,21.96875 C54.962234,22.082031 54.188797,22.964844 54.212234,24 L54.212234,42 C54.200515,42.722656 54.579422,43.390625 55.204422,43.753906 C55.825515,44.121094 56.598953,44.121094 57.220047,43.753906 C57.845047,43.390625 58.223953,42.722656 58.212234,42 L58.212234,24 C58.220047,23.457031 58.009109,22.9375 57.626297,22.554688 C57.243484,22.171875 56.723953,21.960938 56.180984,21.96875 C56.118484,21.964844 56.055984,21.964844 55.993484,21.96875 Z M16.212234,22 C15.661453,22 15.212234,22.449219 15.212234,23 C15.212234,23.550781 15.661453,24 16.212234,24 C16.763015,24 17.212234,23.550781 17.212234,23 C17.212234,22.449219 16.763015,22 16.212234,22 Z M20.212234,22 C19.661453,22 19.212234,22.449219 19.212234,23 C19.212234,23.550781 19.661453,24 20.212234,24 C20.763015,24 21.212234,23.550781 21.212234,23 C21.212234,22.449219 20.763015,22 20.212234,22 Z M24.212234,22 C23.661453,22 23.212234,22.449219 23.212234,23 C23.212234,23.550781 23.661453,24 24.212234,24 C24.763015,24 25.212234,23.550781 25.212234,23 C25.212234,22.449219 24.763015,22 24.212234,22 Z M28.212234,22 C27.661453,22 27.212234,22.449219 27.212234,23 C27.212234,23.550781 27.661453,24 28.212234,24 C28.763015,24 29.212234,23.550781 29.212234,23 C29.212234,22.449219 28.763015,22 28.212234,22 Z M32.212234,22 C31.661453,22 31.212234,22.449219 31.212234,23 C31.212234,23.550781 31.661453,24 32.212234,24 C32.763015,24 33.212234,23.550781 33.212234,23 C33.212234,22.449219 32.763015,22 32.212234,22 Z M36.212234,22 C35.661453,22 35.212234,22.449219 35.212234,23 C35.212234,23.550781 35.661453,24 36.212234,24 C36.763015,24 37.212234,23.550781 37.212234,23 C37.212234,22.449219 36.763015,22 36.212234,22 Z M40.212234,22 C39.661453,22 39.212234,22.449219 39.212234,23 C39.212234,23.550781 39.661453,24 40.212234,24 C40.763015,24 41.212234,23.550781 41.212234,23 C41.212234,22.449219 40.763015,22 40.212234,22 Z M44.212234,22 C43.661453,22 43.212234,22.449219 43.212234,23 C43.212234,23.550781 43.661453,24 44.212234,24 C44.763015,24 45.212234,23.550781 45.212234,23 C45.212234,22.449219 44.763015,22 44.212234,22 Z M48.212234,22 C47.661453,22 47.212234,22.449219 47.212234,23 C47.212234,23.550781 47.661453,24 48.212234,24 C48.763015,24 49.212234,23.550781 49.212234,23 C49.212234,22.449219 48.763015,22 48.212234,22 Z M52.212234,22 C51.661453,22 51.212234,22.449219 51.212234,23 C51.212234,23.550781 51.661453,24 52.212234,24 C52.763015,24 53.212234,23.550781 53.212234,23 C53.212234,22.449219 52.763015,22 52.212234,22 Z M21.462234,27.96875 C21.419265,27.976563 21.376297,27.988281 21.337234,28 C21.177078,28.027344 21.02864,28.089844 20.899734,28.1875 L15.618484,32.1875 C15.356765,32.375 15.200515,32.679688 15.200515,33 C15.200515,33.320313 15.356765,33.625 15.618484,33.8125 L20.899734,37.8125 C21.348953,38.148438 21.985672,38.058594 22.321609,37.609375 C22.657547,37.160156 22.567703,36.523438 22.118484,36.1875 L19.212234,34 L49.212234,34 L46.305984,36.1875 C45.856765,36.523438 45.766922,37.160156 46.102859,37.609375 C46.438797,38.058594 47.075515,38.148438 47.524734,37.8125 L52.805984,33.8125 C53.067703,33.625 53.223953,33.320313 53.223953,33 C53.223953,32.679688 53.067703,32.375 52.805984,32.1875 L47.524734,28.1875 C47.30989,28.027344 47.040359,27.960938 46.774734,28 C46.743484,28 46.712234,28 46.680984,28 C46.282547,28.074219 45.96614,28.382813 45.884109,28.78125 C45.802078,29.179688 45.970047,29.585938 46.305984,29.8125 L49.212234,32 L19.212234,32 L22.118484,29.8125 C22.520828,29.566406 22.696609,29.070313 22.536453,28.625 C22.380203,28.179688 21.930984,27.90625 21.462234,27.96875 Z M16.212234,42 C15.661453,42 15.212234,42.449219 15.212234,43 C15.212234,43.550781 15.661453,44 16.212234,44 C16.763015,44 17.212234,43.550781 17.212234,43 C17.212234,42.449219 16.763015,42 16.212234,42 Z M20.212234,42 C19.661453,42 19.212234,42.449219 19.212234,43 C19.212234,43.550781 19.661453,44 20.212234,44 C20.763015,44 21.212234,43.550781 21.212234,43 C21.212234,42.449219 20.763015,42 20.212234,42 Z M24.212234,42 C23.661453,42 23.212234,42.449219 23.212234,43 C23.212234,43.550781 23.661453,44 24.212234,44 C24.763015,44 25.212234,43.550781 25.212234,43 C25.212234,42.449219 24.763015,42 24.212234,42 Z M28.212234,42 C27.661453,42 27.212234,42.449219 27.212234,43 C27.212234,43.550781 27.661453,44 28.212234,44 C28.763015,44 29.212234,43.550781 29.212234,43 C29.212234,42.449219 28.763015,42 28.212234,42 Z M32.212234,42 C31.661453,42 31.212234,42.449219 31.212234,43 C31.212234,43.550781 31.661453,44 32.212234,44 C32.763015,44 33.212234,43.550781 33.212234,43 C33.212234,42.449219 32.763015,42 32.212234,42 Z M36.212234,42 C35.661453,42 35.212234,42.449219 35.212234,43 C35.212234,43.550781 35.661453,44 36.212234,44 C36.763015,44 37.212234,43.550781 37.212234,43 C37.212234,42.449219 36.763015,42 36.212234,42 Z M40.212234,42 C39.661453,42 39.212234,42.449219 39.212234,43 C39.212234,43.550781 39.661453,44 40.212234,44 C40.763015,44 41.212234,43.550781 41.212234,43 C41.212234,42.449219 40.763015,42 40.212234,42 Z M44.212234,42 C43.661453,42 43.212234,42.449219 43.212234,43 C43.212234,43.550781 43.661453,44 44.212234,44 C44.763015,44 45.212234,43.550781 45.212234,43 C45.212234,42.449219 44.763015,42 44.212234,42 Z M48.212234,42 C47.661453,42 47.212234,42.449219 47.212234,43 C47.212234,43.550781 47.661453,44 48.212234,44 C48.763015,44 49.212234,43.550781 49.212234,43 C49.212234,42.449219 48.763015,42 48.212234,42 Z M52.212234,42 C51.661453,42 51.212234,42.449219 51.212234,43 C51.212234,43.550781 51.661453,44 52.212234,44 C52.763015,44 53.212234,43.550781 53.212234,43 C53.212234,42.449219 52.763015,42 52.212234,42 Z" id="inside_range" fill="#000000" fill-rule="nonzero"></path>
        </g>
    </g>
</svg>
        </div>
        <div style="font-family: 'IBM Plex Mono', monospace, courier; color: black; font-size: 10px; display: inline-block; vertical-align: middle;">
            <div>col_vals_between()</div>
        </div>
        
        </td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">age</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">[18, 80]</td>
    <td style="height: 40px; background-color: #FCFCFC; border-left: 1px solid #D3D3D3;" class="gt_row gt_center"><svg width="25px" height="25px" viewbox="0 0 25 25" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" style="vertical-align: middle;">
    <g id="unchanged" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="unchanged" transform="translate(0.500000, 0.570147)">
            <rect id="Rectangle" x="0.125132506" y="0" width="23.749735" height="23.7894737"></rect>
            <path d="M5.80375046,8.18194736 C3.77191832,8.18194736 2.11875046,9.83495328 2.11875046,11.8669474 C2.11875046,13.8989414 3.77191832,15.5519474 5.80375046,15.5519474 C7.8355826,15.5519474 9.48875046,13.8989414 9.48875046,11.8669474 C9.48875046,9.83495328 7.83552863,8.18194736 5.80375046,8.18194736 Z M5.80375046,14.814915 C4.17821997,14.814915 2.85578285,13.4924778 2.85578285,11.8669474 C2.85578285,10.2414169 4.17821997,8.91897975 5.80375046,8.91897975 C7.42928095,8.91897975 8.75171807,10.2414169 8.75171807,11.8669474 C8.75171807,13.4924778 7.42928095,14.814915 5.80375046,14.814915 Z" id="Shape" fill="#000000" fill-rule="nonzero"></path>
            <path d="M13.9638189,8.699335 C13.9364621,8.70430925 13.9091059,8.71176968 13.8842359,8.71923074 C13.7822704,8.73663967 13.6877654,8.77643115 13.6056956,8.83860518 L10.2433156,11.3852598 C10.0766886,11.5046343 9.97720993,11.6986181 9.97720993,11.9025491 C9.97720993,12.1064807 10.0766886,12.3004639 10.2433156,12.4198383 L13.6056956,14.966493 C13.891697,15.1803725 14.2970729,15.1231721 14.5109517,14.8371707 C14.7248313,14.5511692 14.6676309,14.145794 14.3816294,13.9319145 L12.5313257,12.5392127 L21.8812495,12.5392127 L21.8812495,11.2658854 L12.5313257,11.2658854 L14.3816294,9.87318364 C14.6377872,9.71650453 14.7497006,9.40066014 14.6477351,9.11714553 C14.5482564,8.83363156 14.262255,8.65954352 13.9638189,8.699335 Z" id="arrow" fill="#000000" transform="translate(15.929230, 11.894737) rotate(-180.000000) translate(-15.929230, -11.894737) "></path>
        </g>
    </g>
</svg></td>
    <td style="height: 40px; background-color: #FCFCFC; border-right: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color:#4CA64C;">✓</span></td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_right">5</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5;" class="gt_row gt_right">4<br>0.80</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5;" class="gt_row gt_right">1<br>0.20</td>
    <td style="height: 40px; background-color: #FCFCFC; border-left: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color: #AAAAAA;">●</span></td>
    <td style="height: 40px; background-color: #FCFCFC;" class="gt_row gt_center"><span style="color: #EBBC14;">●</span></td>
    <td style="height: 40px; background-color: #FCFCFC; border-right: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color: #FF3300;">○</span></td>
    <td style="height: 40px;" class="gt_row gt_center"><a href="data:text/csv;base64,X3Jvd19udW1fLHVzZXJfaWQsYWdlLGVtYWlsLHNjb3JlCjUsNSw5NSx1c2VyNUBleGFtcGxlLmNvbSw5NS4yCg==" download="extract_0002.csv"><button style="background-color: #67C2DC; color: #FFFFFF; border: none; padding: 5px; font-weight: bold; cursor: pointer; border-radius: 4px;">CSV</button></a></td>
  </tr>
  <tr>
    <td style="height: 40px; background-color: #EBBC14; color: transparent;font-size: 0px;" class="gt_row gt_left">#EBBC14</td>
    <td style="height: 40px; color: #666666;font-size: 13px;font-weight: bold;" class="gt_row gt_right">3</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_left">
        <div style="margin: 0; padding: 0; display: inline-block; height: 30px; vertical-align: middle; width: 16%;">
            <!--?xml version="1.0" encoding="UTF-8"?--><!--?xml version="1.0" encoding="UTF-8"?-->
<svg width="30px" height="30px" viewbox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink">
    <title>col_vals_regex</title>
    <g id="Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="col_vals_regex" transform="translate(0.000000, 0.034483)">
            <path d="M56.712234,1 C59.1975153,1 61.4475153,2.00735931 63.076195,3.63603897 C64.7048747,5.26471863 65.712234,7.51471863 65.712234,10 L65.712234,10 L65.712234,65 L10.712234,65 C8.22695259,65 5.97695259,63.9926407 4.34827294,62.363961 C2.71959328,60.7352814 1.71223397,58.4852814 1.71223397,56 L1.71223397,56 L1.71223397,10 C1.71223397,7.51471863 2.71959328,5.26471863 4.34827294,3.63603897 C5.97695259,2.00735931 8.22695259,1 10.712234,1 L10.712234,1 Z" id="rectangle" stroke="#000000" stroke-width="2" fill="#FFFFFF"></path>
            <g id="regex_symbols" transform="translate(18.000000, 12.000000)" fill="#000000" fill-rule="nonzero">
                <path d="M4.17434508,33.013582 C1.94895328,33.013582 0.138006923,34.8245284 0.138006923,37.0499202 C0.138006923,39.275312 1.94895328,41.0862583 4.17434508,41.0862583 C6.39973688,41.0862583 8.21068324,39.275312 8.21068324,37.0499202 C8.21068324,34.8245284 6.39973688,33.013582 4.17434508,33.013582 Z" id="full_stop"></path>
                <path d="M23.9479718,23.3175402 L21.5628264,23.3175402 C21.2344032,23.3175402 20.9665401,23.0520067 20.9665401,22.7212538 L20.9665401,15.1022979 L14.3445004,18.8873192 C14.0626621,19.050366 13.7016292,18.952538 13.5362533,18.6706991 L12.3436806,16.6442575 C12.262157,16.506832 12.2388642,16.3437852 12.2807909,16.1900549 C12.3203879,16.0363251 12.4205455,15.9058874 12.557971,15.8266929 L19.1800101,11.9880994 L12.557971,8.15183511 C12.4205455,8.07264112 12.3203879,7.93987439 12.2807909,7.78614401 C12.2388642,7.63241423 12.262157,7.46936689 12.3413509,7.33194137 L13.5339237,5.30549975 C13.6993001,5.02366143 14.0626621,4.92816199 14.3445004,5.09120934 L20.9665401,8.87390091 L20.9665401,1.25494501 C20.9665401,0.926521818 21.2344032,0.658658658 21.5628264,0.658658658 L23.9479718,0.658658658 C24.2787247,0.658658658 24.5442582,0.926521818 24.5442582,1.25494501 L24.5442582,8.87390091 L31.1662979,5.09120934 C31.4481362,4.92816199 31.8091691,5.02366143 31.9745455,5.30549975 L33.1671182,7.33194137 C33.2486413,7.46936689 33.2719341,7.63241423 33.2300074,7.78614401 C33.1904104,7.93987439 33.0902528,8.07264112 32.9528278,8.15183511 L26.3307882,11.9880994 L32.9528278,15.8243638 C33.0879237,15.9058874 33.1880813,16.0363251 33.2300074,16.1900549 C33.269605,16.3437852 33.2486413,16.506832 33.1671182,16.6442575 L31.9745455,18.6706991 C31.8091691,18.952538 31.4481362,19.050366 31.1662979,18.8849895 L24.5442582,15.1022979 L24.5442582,22.7212538 C24.5442582,23.0520067 24.2787247,23.3175402 23.9479718,23.3175402 Z" id="asterisk"></path>
            </g>
        </g>
    </g>
</svg>
        </div>
        <div style="font-family: 'IBM Plex Mono', monospace, courier; color: black; font-size: 11px; display: inline-block; vertical-align: middle;">
            <div>col_vals_regex()</div>
        </div>
        
        </td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">email</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">^[^@]+@[^@]+\.[^@]+$</td>
    <td style="height: 40px; background-color: #FCFCFC; border-left: 1px solid #D3D3D3;" class="gt_row gt_center"><svg width="25px" height="25px" viewbox="0 0 25 25" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" style="vertical-align: middle;">
    <g id="unchanged" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="unchanged" transform="translate(0.500000, 0.570147)">
            <rect id="Rectangle" x="0.125132506" y="0" width="23.749735" height="23.7894737"></rect>
            <path d="M5.80375046,8.18194736 C3.77191832,8.18194736 2.11875046,9.83495328 2.11875046,11.8669474 C2.11875046,13.8989414 3.77191832,15.5519474 5.80375046,15.5519474 C7.8355826,15.5519474 9.48875046,13.8989414 9.48875046,11.8669474 C9.48875046,9.83495328 7.83552863,8.18194736 5.80375046,8.18194736 Z M5.80375046,14.814915 C4.17821997,14.814915 2.85578285,13.4924778 2.85578285,11.8669474 C2.85578285,10.2414169 4.17821997,8.91897975 5.80375046,8.91897975 C7.42928095,8.91897975 8.75171807,10.2414169 8.75171807,11.8669474 C8.75171807,13.4924778 7.42928095,14.814915 5.80375046,14.814915 Z" id="Shape" fill="#000000" fill-rule="nonzero"></path>
            <path d="M13.9638189,8.699335 C13.9364621,8.70430925 13.9091059,8.71176968 13.8842359,8.71923074 C13.7822704,8.73663967 13.6877654,8.77643115 13.6056956,8.83860518 L10.2433156,11.3852598 C10.0766886,11.5046343 9.97720993,11.6986181 9.97720993,11.9025491 C9.97720993,12.1064807 10.0766886,12.3004639 10.2433156,12.4198383 L13.6056956,14.966493 C13.891697,15.1803725 14.2970729,15.1231721 14.5109517,14.8371707 C14.7248313,14.5511692 14.6676309,14.145794 14.3816294,13.9319145 L12.5313257,12.5392127 L21.8812495,12.5392127 L21.8812495,11.2658854 L12.5313257,11.2658854 L14.3816294,9.87318364 C14.6377872,9.71650453 14.7497006,9.40066014 14.6477351,9.11714553 C14.5482564,8.83363156 14.262255,8.65954352 13.9638189,8.699335 Z" id="arrow" fill="#000000" transform="translate(15.929230, 11.894737) rotate(-180.000000) translate(-15.929230, -11.894737) "></path>
        </g>
    </g>
</svg></td>
    <td style="height: 40px; background-color: #FCFCFC; border-right: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color:#4CA64C;">✓</span></td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_right">5</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5;" class="gt_row gt_right">4<br>0.80</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5;" class="gt_row gt_right">1<br>0.20</td>
    <td style="height: 40px; background-color: #FCFCFC; border-left: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color: #AAAAAA;">●</span></td>
    <td style="height: 40px; background-color: #FCFCFC;" class="gt_row gt_center"><span style="color: #EBBC14;">●</span></td>
    <td style="height: 40px; background-color: #FCFCFC; border-right: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color: #FF3300;">○</span></td>
    <td style="height: 40px;" class="gt_row gt_center"><a href="data:text/csv;base64,X3Jvd19udW1fLHVzZXJfaWQsYWdlLGVtYWlsLHNjb3JlCjMsMywyMixpbnZhbGlkLWVtYWlsLDc4LjMK" download="extract_0003.csv"><button style="background-color: #67C2DC; color: #FFFFFF; border: none; padding: 5px; font-weight: bold; cursor: pointer; border-radius: 4px;">CSV</button></a></td>
  </tr>
  <tr>
    <td style="height: 40px; background-color: #4CA64C; color: transparent;font-size: 0px;" class="gt_row gt_left">#4CA64C</td>
    <td style="height: 40px; color: #666666;font-size: 13px;font-weight: bold;" class="gt_row gt_right">4</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_left">
        <div style="margin: 0; padding: 0; display: inline-block; height: 30px; vertical-align: middle; width: 16%;">
            <!--?xml version="1.0" encoding="UTF-8"?--><!--?xml version="1.0" encoding="UTF-8"?-->
<svg width="30px" height="30px" viewbox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink">
    <title>col_vals_between</title>
    <g id="Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="col_vals_between" transform="translate(0.000000, 0.206897)">
            <path d="M56.712234,1 C59.1975153,1 61.4475153,2.00735931 63.076195,3.63603897 C64.7048747,5.26471863 65.712234,7.51471863 65.712234,10 L65.712234,10 L65.712234,65 L10.712234,65 C8.22695259,65 5.97695259,63.9926407 4.34827294,62.363961 C2.71959328,60.7352814 1.71223397,58.4852814 1.71223397,56 L1.71223397,56 L1.71223397,10 C1.71223397,7.51471863 2.71959328,5.26471863 4.34827294,3.63603897 C5.97695259,2.00735931 8.22695259,1 10.712234,1 L10.712234,1 Z" id="rectangle" stroke="#000000" stroke-width="2" fill="#FFFFFF"></path>
            <path d="M11.993484,21.96875 C10.962234,22.082031 10.188797,22.964844 10.212234,24 L10.212234,42 C10.200515,42.722656 10.579422,43.390625 11.204422,43.753906 C11.825515,44.121094 12.598953,44.121094 13.220047,43.753906 C13.845047,43.390625 14.223953,42.722656 14.212234,42 L14.212234,24 C14.220047,23.457031 14.009109,22.9375 13.626297,22.554688 C13.243484,22.171875 12.723953,21.960938 12.180984,21.96875 C12.118484,21.964844 12.055984,21.964844 11.993484,21.96875 Z M55.993484,21.96875 C54.962234,22.082031 54.188797,22.964844 54.212234,24 L54.212234,42 C54.200515,42.722656 54.579422,43.390625 55.204422,43.753906 C55.825515,44.121094 56.598953,44.121094 57.220047,43.753906 C57.845047,43.390625 58.223953,42.722656 58.212234,42 L58.212234,24 C58.220047,23.457031 58.009109,22.9375 57.626297,22.554688 C57.243484,22.171875 56.723953,21.960938 56.180984,21.96875 C56.118484,21.964844 56.055984,21.964844 55.993484,21.96875 Z M16.212234,22 C15.661453,22 15.212234,22.449219 15.212234,23 C15.212234,23.550781 15.661453,24 16.212234,24 C16.763015,24 17.212234,23.550781 17.212234,23 C17.212234,22.449219 16.763015,22 16.212234,22 Z M20.212234,22 C19.661453,22 19.212234,22.449219 19.212234,23 C19.212234,23.550781 19.661453,24 20.212234,24 C20.763015,24 21.212234,23.550781 21.212234,23 C21.212234,22.449219 20.763015,22 20.212234,22 Z M24.212234,22 C23.661453,22 23.212234,22.449219 23.212234,23 C23.212234,23.550781 23.661453,24 24.212234,24 C24.763015,24 25.212234,23.550781 25.212234,23 C25.212234,22.449219 24.763015,22 24.212234,22 Z M28.212234,22 C27.661453,22 27.212234,22.449219 27.212234,23 C27.212234,23.550781 27.661453,24 28.212234,24 C28.763015,24 29.212234,23.550781 29.212234,23 C29.212234,22.449219 28.763015,22 28.212234,22 Z M32.212234,22 C31.661453,22 31.212234,22.449219 31.212234,23 C31.212234,23.550781 31.661453,24 32.212234,24 C32.763015,24 33.212234,23.550781 33.212234,23 C33.212234,22.449219 32.763015,22 32.212234,22 Z M36.212234,22 C35.661453,22 35.212234,22.449219 35.212234,23 C35.212234,23.550781 35.661453,24 36.212234,24 C36.763015,24 37.212234,23.550781 37.212234,23 C37.212234,22.449219 36.763015,22 36.212234,22 Z M40.212234,22 C39.661453,22 39.212234,22.449219 39.212234,23 C39.212234,23.550781 39.661453,24 40.212234,24 C40.763015,24 41.212234,23.550781 41.212234,23 C41.212234,22.449219 40.763015,22 40.212234,22 Z M44.212234,22 C43.661453,22 43.212234,22.449219 43.212234,23 C43.212234,23.550781 43.661453,24 44.212234,24 C44.763015,24 45.212234,23.550781 45.212234,23 C45.212234,22.449219 44.763015,22 44.212234,22 Z M48.212234,22 C47.661453,22 47.212234,22.449219 47.212234,23 C47.212234,23.550781 47.661453,24 48.212234,24 C48.763015,24 49.212234,23.550781 49.212234,23 C49.212234,22.449219 48.763015,22 48.212234,22 Z M52.212234,22 C51.661453,22 51.212234,22.449219 51.212234,23 C51.212234,23.550781 51.661453,24 52.212234,24 C52.763015,24 53.212234,23.550781 53.212234,23 C53.212234,22.449219 52.763015,22 52.212234,22 Z M21.462234,27.96875 C21.419265,27.976563 21.376297,27.988281 21.337234,28 C21.177078,28.027344 21.02864,28.089844 20.899734,28.1875 L15.618484,32.1875 C15.356765,32.375 15.200515,32.679688 15.200515,33 C15.200515,33.320313 15.356765,33.625 15.618484,33.8125 L20.899734,37.8125 C21.348953,38.148438 21.985672,38.058594 22.321609,37.609375 C22.657547,37.160156 22.567703,36.523438 22.118484,36.1875 L19.212234,34 L49.212234,34 L46.305984,36.1875 C45.856765,36.523438 45.766922,37.160156 46.102859,37.609375 C46.438797,38.058594 47.075515,38.148438 47.524734,37.8125 L52.805984,33.8125 C53.067703,33.625 53.223953,33.320313 53.223953,33 C53.223953,32.679688 53.067703,32.375 52.805984,32.1875 L47.524734,28.1875 C47.30989,28.027344 47.040359,27.960938 46.774734,28 C46.743484,28 46.712234,28 46.680984,28 C46.282547,28.074219 45.96614,28.382813 45.884109,28.78125 C45.802078,29.179688 45.970047,29.585938 46.305984,29.8125 L49.212234,32 L19.212234,32 L22.118484,29.8125 C22.520828,29.566406 22.696609,29.070313 22.536453,28.625 C22.380203,28.179688 21.930984,27.90625 21.462234,27.96875 Z M16.212234,42 C15.661453,42 15.212234,42.449219 15.212234,43 C15.212234,43.550781 15.661453,44 16.212234,44 C16.763015,44 17.212234,43.550781 17.212234,43 C17.212234,42.449219 16.763015,42 16.212234,42 Z M20.212234,42 C19.661453,42 19.212234,42.449219 19.212234,43 C19.212234,43.550781 19.661453,44 20.212234,44 C20.763015,44 21.212234,43.550781 21.212234,43 C21.212234,42.449219 20.763015,42 20.212234,42 Z M24.212234,42 C23.661453,42 23.212234,42.449219 23.212234,43 C23.212234,43.550781 23.661453,44 24.212234,44 C24.763015,44 25.212234,43.550781 25.212234,43 C25.212234,42.449219 24.763015,42 24.212234,42 Z M28.212234,42 C27.661453,42 27.212234,42.449219 27.212234,43 C27.212234,43.550781 27.661453,44 28.212234,44 C28.763015,44 29.212234,43.550781 29.212234,43 C29.212234,42.449219 28.763015,42 28.212234,42 Z M32.212234,42 C31.661453,42 31.212234,42.449219 31.212234,43 C31.212234,43.550781 31.661453,44 32.212234,44 C32.763015,44 33.212234,43.550781 33.212234,43 C33.212234,42.449219 32.763015,42 32.212234,42 Z M36.212234,42 C35.661453,42 35.212234,42.449219 35.212234,43 C35.212234,43.550781 35.661453,44 36.212234,44 C36.763015,44 37.212234,43.550781 37.212234,43 C37.212234,42.449219 36.763015,42 36.212234,42 Z M40.212234,42 C39.661453,42 39.212234,42.449219 39.212234,43 C39.212234,43.550781 39.661453,44 40.212234,44 C40.763015,44 41.212234,43.550781 41.212234,43 C41.212234,42.449219 40.763015,42 40.212234,42 Z M44.212234,42 C43.661453,42 43.212234,42.449219 43.212234,43 C43.212234,43.550781 43.661453,44 44.212234,44 C44.763015,44 45.212234,43.550781 45.212234,43 C45.212234,42.449219 44.763015,42 44.212234,42 Z M48.212234,42 C47.661453,42 47.212234,42.449219 47.212234,43 C47.212234,43.550781 47.661453,44 48.212234,44 C48.763015,44 49.212234,43.550781 49.212234,43 C49.212234,42.449219 48.763015,42 48.212234,42 Z M52.212234,42 C51.661453,42 51.212234,42.449219 51.212234,43 C51.212234,43.550781 51.661453,44 52.212234,44 C52.763015,44 53.212234,43.550781 53.212234,43 C53.212234,42.449219 52.763015,42 52.212234,42 Z" id="inside_range" fill="#000000" fill-rule="nonzero"></path>
        </g>
    </g>
</svg>
        </div>
        <div style="font-family: 'IBM Plex Mono', monospace, courier; color: black; font-size: 10px; display: inline-block; vertical-align: middle;">
            <div>col_vals_between()</div>
        </div>
        
        </td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">score</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">[0, 100]</td>
    <td style="height: 40px; background-color: #FCFCFC; border-left: 1px solid #D3D3D3;" class="gt_row gt_center"><svg width="25px" height="25px" viewbox="0 0 25 25" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" style="vertical-align: middle;">
    <g id="unchanged" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="unchanged" transform="translate(0.500000, 0.570147)">
            <rect id="Rectangle" x="0.125132506" y="0" width="23.749735" height="23.7894737"></rect>
            <path d="M5.80375046,8.18194736 C3.77191832,8.18194736 2.11875046,9.83495328 2.11875046,11.8669474 C2.11875046,13.8989414 3.77191832,15.5519474 5.80375046,15.5519474 C7.8355826,15.5519474 9.48875046,13.8989414 9.48875046,11.8669474 C9.48875046,9.83495328 7.83552863,8.18194736 5.80375046,8.18194736 Z M5.80375046,14.814915 C4.17821997,14.814915 2.85578285,13.4924778 2.85578285,11.8669474 C2.85578285,10.2414169 4.17821997,8.91897975 5.80375046,8.91897975 C7.42928095,8.91897975 8.75171807,10.2414169 8.75171807,11.8669474 C8.75171807,13.4924778 7.42928095,14.814915 5.80375046,14.814915 Z" id="Shape" fill="#000000" fill-rule="nonzero"></path>
            <path d="M13.9638189,8.699335 C13.9364621,8.70430925 13.9091059,8.71176968 13.8842359,8.71923074 C13.7822704,8.73663967 13.6877654,8.77643115 13.6056956,8.83860518 L10.2433156,11.3852598 C10.0766886,11.5046343 9.97720993,11.6986181 9.97720993,11.9025491 C9.97720993,12.1064807 10.0766886,12.3004639 10.2433156,12.4198383 L13.6056956,14.966493 C13.891697,15.1803725 14.2970729,15.1231721 14.5109517,14.8371707 C14.7248313,14.5511692 14.6676309,14.145794 14.3816294,13.9319145 L12.5313257,12.5392127 L21.8812495,12.5392127 L21.8812495,11.2658854 L12.5313257,11.2658854 L14.3816294,9.87318364 C14.6377872,9.71650453 14.7497006,9.40066014 14.6477351,9.11714553 C14.5482564,8.83363156 14.262255,8.65954352 13.9638189,8.699335 Z" id="arrow" fill="#000000" transform="translate(15.929230, 11.894737) rotate(-180.000000) translate(-15.929230, -11.894737) "></path>
        </g>
    </g>
</svg></td>
    <td style="height: 40px; background-color: #FCFCFC; border-right: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color:#4CA64C;">✓</span></td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_right">5</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5;" class="gt_row gt_right">5<br>1.00</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5;" class="gt_row gt_right">0<br>0.00</td>
    <td style="height: 40px; background-color: #FCFCFC; border-left: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color: #AAAAAA;">○</span></td>
    <td style="height: 40px; background-color: #FCFCFC;" class="gt_row gt_center"><span style="color: #EBBC14;">○</span></td>
    <td style="height: 40px; background-color: #FCFCFC; border-right: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color: #FF3300;">○</span></td>
    <td style="height: 40px;" class="gt_row gt_center">—</td>
  </tr>
  <tr>
    <td style="height: 40px; background-color: #4CA64C; color: transparent;font-size: 0px;" class="gt_row gt_left">#4CA64C</td>
    <td style="height: 40px; color: #666666;font-size: 13px;font-weight: bold;" class="gt_row gt_right">5</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_left">
        <div style="margin: 0; padding: 0; display: inline-block; height: 30px; vertical-align: middle; width: 16%;">
            <!--?xml version="1.0" encoding="UTF-8"?--><!--?xml version="1.0" encoding="UTF-8"?-->
<svg width="30px" height="30px" viewbox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink">
    <title>col_schema_match</title>
    <g id="Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="col_schema_match" transform="translate(0.000000, 0.310345)">
            <path d="M56.712234,1.01466935 C59.1975153,1.01466935 61.4475153,2.02202867 63.076195,3.65070832 C64.7048747,5.27938798 65.712234,7.52938798 65.712234,10.0146694 L65.712234,10.0146694 L65.712234,65.0146694 L10.712234,65.0146694 C8.22695259,65.0146694 5.97695259,64.00731 4.34827294,62.3786304 C2.71959328,60.7499507 1.71223397,58.4999507 1.71223397,56.0146694 L1.71223397,56.0146694 L1.71223397,10.0146694 C1.71223397,7.52938798 2.71959328,5.27938798 4.34827294,3.65070832 C5.97695259,2.02202867 8.22695259,1.01466935 10.712234,1.01466935 L10.712234,1.01466935 Z" id="rectangle" stroke="#000000" stroke-width="2" fill="#FFFFFF"></path>
            <path d="M53.712234,39.7885268 L54.212234,56.2885268 L42.212234,56.7885268 L42.212234,39.7885268 L53.712234,39.7885268 Z M39.712234,39.7885268 L39.712234,56.7885268 L27.712234,56.7885268 L27.712234,39.7885268 L39.712234,39.7885268 Z M25.212234,39.7885268 L25.212234,56.7885268 L13.712234,56.7885268 L13.212234,40.2885268 L25.212234,39.7885268 Z" id="columns_schema" stroke="#000000" fill-rule="nonzero"></path>
            <g id="vertical_equal" transform="translate(30.000000, 29.000000)" stroke="#000000" stroke-linecap="square">
                <line x1="2.21223397" y1="0.514669353" x2="2.21223397" y2="7.58573716" id="Line"></line>
                <line x1="5.21223397" y1="0.514669353" x2="5.21223397" y2="7.58573716" id="Line-Copy"></line>
            </g>
            <path d="M41.712234,9.01466935 L41.712234,27.0146694 L53.712234,27.0146694 C54.262234,27.0146694 54.712234,26.5646694 54.712234,26.0146694 L54.712234,10.0146694 C54.712234,9.46466935 54.262234,9.01466935 53.712234,9.01466935 L41.712234,9.01466935 Z M27.212234,9.01466935 C27.212234,9.01466935 27.212234,15.0146694 27.212234,27.0146694 L40.212234,27.0146694 L40.212234,9.01466935 C31.5455673,9.01466935 27.212234,9.01466935 27.212234,9.01466935 Z M13.712234,9.01466935 C13.162234,9.01466935 12.712234,9.46466935 12.712234,10.0146694 L12.712234,26.0146694 C12.712234,26.5646694 13.162234,27.0146694 13.712234,27.0146694 L25.712234,27.0146694 L25.712234,9.01466935 L13.712234,9.01466935 Z" id="columns_real" fill="#000000" fill-rule="nonzero"></path>
        </g>
    </g>
</svg>
        </div>
        <div style="font-family: 'IBM Plex Mono', monospace, courier; color: black; font-size: 10px; display: inline-block; vertical-align: middle;">
            <div>col_schema_match()</div>
        </div>
        
        </td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">—</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">SCHEMA</td>
    <td style="height: 40px; background-color: #FCFCFC; border-left: 1px solid #D3D3D3;" class="gt_row gt_center"><svg width="25px" height="25px" viewbox="0 0 25 25" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" style="vertical-align: middle;">
    <g id="unchanged" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="unchanged" transform="translate(0.500000, 0.570147)">
            <rect id="Rectangle" x="0.125132506" y="0" width="23.749735" height="23.7894737"></rect>
            <path d="M5.80375046,8.18194736 C3.77191832,8.18194736 2.11875046,9.83495328 2.11875046,11.8669474 C2.11875046,13.8989414 3.77191832,15.5519474 5.80375046,15.5519474 C7.8355826,15.5519474 9.48875046,13.8989414 9.48875046,11.8669474 C9.48875046,9.83495328 7.83552863,8.18194736 5.80375046,8.18194736 Z M5.80375046,14.814915 C4.17821997,14.814915 2.85578285,13.4924778 2.85578285,11.8669474 C2.85578285,10.2414169 4.17821997,8.91897975 5.80375046,8.91897975 C7.42928095,8.91897975 8.75171807,10.2414169 8.75171807,11.8669474 C8.75171807,13.4924778 7.42928095,14.814915 5.80375046,14.814915 Z" id="Shape" fill="#000000" fill-rule="nonzero"></path>
            <path d="M13.9638189,8.699335 C13.9364621,8.70430925 13.9091059,8.71176968 13.8842359,8.71923074 C13.7822704,8.73663967 13.6877654,8.77643115 13.6056956,8.83860518 L10.2433156,11.3852598 C10.0766886,11.5046343 9.97720993,11.6986181 9.97720993,11.9025491 C9.97720993,12.1064807 10.0766886,12.3004639 10.2433156,12.4198383 L13.6056956,14.966493 C13.891697,15.1803725 14.2970729,15.1231721 14.5109517,14.8371707 C14.7248313,14.5511692 14.6676309,14.145794 14.3816294,13.9319145 L12.5313257,12.5392127 L21.8812495,12.5392127 L21.8812495,11.2658854 L12.5313257,11.2658854 L14.3816294,9.87318364 C14.6377872,9.71650453 14.7497006,9.40066014 14.6477351,9.11714553 C14.5482564,8.83363156 14.262255,8.65954352 13.9638189,8.699335 Z" id="arrow" fill="#000000" transform="translate(15.929230, 11.894737) rotate(-180.000000) translate(-15.929230, -11.894737) "></path>
        </g>
    </g>
</svg></td>
    <td style="height: 40px; background-color: #FCFCFC; border-right: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color:#4CA64C;">✓</span></td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_right">1</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5;" class="gt_row gt_right">1<br>1.00</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5;" class="gt_row gt_right">0<br>0.00</td>
    <td style="height: 40px; background-color: #FCFCFC; border-left: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color: #AAAAAA;">○</span></td>
    <td style="height: 40px; background-color: #FCFCFC;" class="gt_row gt_center"><span style="color: #EBBC14;">○</span></td>
    <td style="height: 40px; background-color: #FCFCFC; border-right: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color: #FF3300;">○</span></td>
    <td style="height: 40px;" class="gt_row gt_center">—</td>
  </tr>
</tbody>
<tfoot><tr class="gt_sourcenotes"><td class="gt_sourcenote" colspan="14" style="text-align: left;"><span class="gt_from_md"><div style="margin-top: 5px; margin-bottom: 5px;"><span style="background-color: #FFF; color: #444; padding: 0.5em 0.5em; position: inherit; text-transform: uppercase; margin-left: 10px; margin-right: 5px; border: solid 1px #999999; font-variant-numeric: tabular-nums; border-radius: 0; padding: 2px 10px 2px 10px;">2026-07-22 23:16:31 UTC</span><span style="background-color: #FFF; color: #444; padding: 0.5em 0.5em; position: inherit; margin-right: 5px; border: solid 1px #999999; font-variant-numeric: tabular-nums; border-radius: 0; padding: 2px 10px 2px 10px;">&lt; 1 s</span><span style="background-color: #FFF; color: #444; padding: 0.5em 0.5em; position: inherit; text-transform: uppercase; margin: 5px 1px 5px -1px; border: solid 1px #999999; font-variant-numeric: tabular-nums; border-radius: 0; padding: 2px 10px 2px 10px;">2026-07-22 23:16:31 UTC</span></div></span></td></tr><tr class="gt_sourcenotes"><td class="gt_sourcenote" colspan="14" style="text-align: left;"><span class="gt_from_md"><hr style="border: none; border-top-width: 1px; border-top-style: dotted; border-top-color: #B5B5B5; margin-top: -3px; margin-bottom: 3px;">
<strong>Notes</strong>
<p><span style="font-variant: small-caps; font-weight: bold; font-size: smaller; text-transform: uppercase; color: #333333;">Step 5</span> <span style="font-family: &quot;IBM Plex Mono&quot;, monospace; font-size: smaller;">(schema_check)</span> <span style="color:#4CA64C;">✓</span> Schema validation <strong>passed</strong>.</p>
<details style="margin-top: 2px; margin-bottom: 8px; font-size: 12px; text-indent: 12px;">
<summary style="cursor: pointer; font-weight: bold; color: #555; margin-bottom: -5px;">Schema Comparison</summary>
<div style="margin-top: 6px; padding-left: 15px; padding-right: 15px;">
<div id="pb_step_tbl" style="padding-left:0px;padding-right:0px;padding-top:10px;padding-bottom:10px;overflow-x:auto;overflow-y:auto;width:auto;height:auto;">
<style>
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono&display=swap');
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Sans&display=swap');
#pb_step_tbl table {
          font-family: 'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Helvetica Neue', 'Fira Sans', 'Droid Sans', Arial, sans-serif;
          -webkit-font-smoothing: antialiased;
          -moz-osx-font-smoothing: grayscale;
        }
<p>#pb_step_tbl thead, tbody, tfoot, tr, td, th { border-style: none; }
tr { background-color: transparent; }
#pb_step_tbl p { margin: 0; padding: 0; }
#pb_step_tbl .gt_table { display: table; border-collapse: collapse; line-height: normal; margin-left: auto; margin-right: auto; color: #333333; font-size: 16px; font-weight: normal; font-style: normal; background-color: #FFFFFF; width: auto; border-top-style: solid; border-top-width: 2px; border-top-color: #A8A8A8; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #A8A8A8; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; }
#pb_step_tbl .gt_caption { padding-top: 4px; padding-bottom: 4px; }
#pb_step_tbl .gt_title { color: #333333; font-size: 125%; font-weight: initial; padding-top: 4px; padding-bottom: 4px; padding-left: 5px; padding-right: 5px; border-bottom-color: #FFFFFF; border-bottom-width: 0; }
#pb_step_tbl .gt_subtitle { color: #333333; font-size: 85%; font-weight: initial; padding-top: 3px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; border-top-color: #FFFFFF; border-top-width: 0; }
#pb_step_tbl .gt_heading { background-color: #FFFFFF; text-align: left; border-bottom-color: #FFFFFF; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; }
#pb_step_tbl .gt_bottom_border { border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; }
#pb_step_tbl .gt_col_headings { border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; }
#pb_step_tbl .gt_col_heading { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: normal; text-transform: inherit; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; vertical-align: bottom; padding-top: 5px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; overflow-x: hidden; }
#pb_step_tbl .gt_column_spanner_outer { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: normal; text-transform: inherit; padding-top: 0; padding-bottom: 0; padding-left: 4px; padding-right: 4px; }
#pb_step_tbl .gt_column_spanner_outer:first-child { padding-left: 0; }
#pb_step_tbl .gt_column_spanner_outer:last-child { padding-right: 0; }
#pb_step_tbl .gt_column_spanner { border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; vertical-align: bottom; padding-top: 5px; padding-bottom: 5px; overflow-x: hidden; display: inline-block; width: 100%; }
#pb_step_tbl .gt_spanner_row { border-bottom-style: hidden; }
#pb_step_tbl .gt_group_heading { padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; text-transform: inherit; border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; vertical-align: middle; text-align: left; }
#pb_step_tbl .gt_empty_group_heading { padding: 0.5px; color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; vertical-align: middle; }
#pb_step_tbl .gt_from_md&gt; :first-child { margin-top: 0; }
#pb_step_tbl .gt_from_md&gt; :last-child { margin-bottom: 0; }
#pb_step_tbl .gt_row { padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; margin: 10px; border-top-style: solid; border-top-width: 1px; border-top-color: #D3D3D3; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; vertical-align: middle; overflow-x: hidden; }
#pb_step_tbl .gt_stub { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; text-transform: inherit; border-right-style: solid; border-right-width: 2px; border-right-color: #D3D3D3; padding-left: 5px; padding-right: 5px; }
#pb_step_tbl .gt_stub_row_group { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; text-transform: inherit; border-right-style: solid; border-right-width: 2px; border-right-color: #D3D3D3; padding-left: 5px; padding-right: 5px; vertical-align: top; }
#pb_step_tbl .gt_row_group_first td { border-top-width: 2px; }
#pb_step_tbl .gt_row_group_first th { border-top-width: 2px; }
#pb_step_tbl .gt_striped { color: #333333; background-color: #F4F4F4; }
#pb_step_tbl .gt_table_body { border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; }
#pb_step_tbl .gt_summary_row { color: #333333; background-color: #FFFFFF; text-transform: inherit; padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; }
#pb_step_tbl .gt_first_summary_row { border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; }
#pb_step_tbl .gt_last_summary_row_top { border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; }
#pb_step_tbl .gt_grand_summary_row { color: #333333; background-color: #FFFFFF; text-transform: inherit; padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; }
#pb_step_tbl .gt_first_grand_summary_row_bottom { border-top-style: double; border-top-width: 6px; border-top-color: #D3D3D3; }
#pb_step_tbl .gt_last_grand_summary_row_top { border-bottom-style: double; border-bottom-width: 6px; border-bottom-color: #D3D3D3; }
#pb_step_tbl .gt_sourcenotes { color: #333333; background-color: #FFFFFF; border-bottom-style: none; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; }
#pb_step_tbl .gt_sourcenote { font-size: 12px; padding-top: 4px; padding-bottom: 4px; padding-left: 5px; padding-right: 5px; text-align: left; }
#pb_step_tbl .gt_left { text-align: left; }
#pb_step_tbl .gt_center { text-align: center; }
#pb_step_tbl .gt_right { text-align: right; font-variant-numeric: tabular-nums; }
#pb_step_tbl .gt_font_normal { font-weight: normal; }
#pb_step_tbl .gt_font_bold { font-weight: bold; }
#pb_step_tbl .gt_font_italic { font-style: italic; }
#pb_step_tbl .gt_super { font-size: 65%; }
#pb_step_tbl .gt_footnotes { color: font-color(#FFFFFF); background-color: #FFFFFF; border-bottom-style: none; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; }
#pb_step_tbl .gt_footnote { margin: 0px; font-size: 90%; padding-top: 4px; padding-bottom: 4px; padding-left: 5px; padding-right: 5px; }
#pb_step_tbl .gt_sourcenotes { color: #333333; background-color: #FFFFFF; border-bottom-style: none; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; }
#pb_step_tbl .gt_sourcenote { font-size: 12px; padding-top: 4px; padding-bottom: 4px; padding-left: 5px; padding-right: 5px; text-align: left; }
#pb_step_tbl .gt_footnote_marks { font-size: 75%; vertical-align: 0.4em; position: initial; }
#pb_step_tbl .gt_asterisk { font-size: 100%; vertical-align: 0; }</p>
</style>
<table style="table-layout: fixed;; width: 0px" class="gt_table" data-quarto-disable-processing="true" data-quarto-bootstrap="false">
<colgroup>
  <col style="width:40px;">
  <col style="width:190px;">
  <col style="width:190px;">
  <col style="width:40px;">
  <col style="width:190px;">
  <col style="width:30px;">
  <col style="width:190px;">
  <col style="width:30px;">
</colgroup>
<thead>
<tr class="gt_col_headings gt_spanner_row">
  <th class="gt_center gt_columns_top_border gt_column_spanner_outer" rowspan="1" colspan="3" scope="colgroup" id="pb_step_tbl-TARGET">
    <span class="gt_column_spanner">TARGET</span>
  </th>
  <th class="gt_center gt_columns_top_border gt_column_spanner_outer" rowspan="1" colspan="5" scope="colgroup" id="pb_step_tbl-EXPECTED">
    <span class="gt_column_spanner">EXPECTED</span>
  </th>
</tr>
<tr class="gt_col_headings">
  <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" scope="col" id="pb_step_tbl-index_target"></th>
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="pb_step_tbl-col_name_target">COLUMN</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="pb_step_tbl-dtype_target">DATA TYPE</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" scope="col" id="pb_step_tbl-index_exp"></th>
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="pb_step_tbl-col_name_exp">COLUMN</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="pb_step_tbl-col_name_exp_correct"></th>
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="pb_step_tbl-dtype_exp">DATA TYPE</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="pb_step_tbl-dtype_exp_correct"></th>
</tr>
</thead>
<tbody class="gt_table_body">
  <tr>
    <td style="font-size: 13px;" class="gt_row gt_right">1</td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">user_id</td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">Int64</td>
    <td style="font-size: 13px; border-left: 3px double #E5E5E5;" class="gt_row gt_right">1</td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">user_id</td>
    <td class="gt_row gt_left"><span style="color: #4CA64C;">✓</span></td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">Int64</td>
    <td class="gt_row gt_left"><span style="color: #4CA64C;">✓</span></td>
  </tr>
  <tr>
    <td style="font-size: 13px;" class="gt_row gt_right">2</td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">age</td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">Int64</td>
    <td style="font-size: 13px; border-left: 3px double #E5E5E5;" class="gt_row gt_right">2</td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">age</td>
    <td class="gt_row gt_left"><span style="color: #4CA64C;">✓</span></td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">Int64</td>
    <td class="gt_row gt_left"><span style="color: #4CA64C;">✓</span></td>
  </tr>
  <tr>
    <td style="font-size: 13px;" class="gt_row gt_right">3</td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">email</td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">String</td>
    <td style="font-size: 13px; border-left: 3px double #E5E5E5;" class="gt_row gt_right">3</td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">email</td>
    <td class="gt_row gt_left"><span style="color: #4CA64C;">✓</span></td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">String</td>
    <td class="gt_row gt_left"><span style="color: #4CA64C;">✓</span></td>
  </tr>
  <tr>
    <td style="font-size: 13px;" class="gt_row gt_right">4</td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">score</td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">Float64</td>
    <td style="font-size: 13px; border-left: 3px double #E5E5E5;" class="gt_row gt_right">4</td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">score</td>
    <td class="gt_row gt_left"><span style="color: #4CA64C;">✓</span></td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">Float64</td>
    <td class="gt_row gt_left"><span style="color: #4CA64C;">✓</span></td>
  </tr>
</tbody>
<tfoot><tr class="gt_sourcenotes"><td class="gt_sourcenote" colspan="8"><span class="gt_from_md"><div style="padding-bottom: 2px;">Supplied Column Schema:</div><div style="border-style: solid; border-width: thin; border-color: lightblue; padding-left: 2px; padding-right: 2px; padding-bottom: 3px;"><code style="color: #303030; font-family: monospace; font-size: 8px;">[('user_id', 'Int64'), ('age', 'Int64'), ('email', 'String'), ('score', 'Float64')]</code></div></span></td></tr><tr class="gt_sourcenotes"><td class="gt_sourcenote" colspan="8"><span class="gt_from_md">
<div style="padding-bottom: 2px;">Schema Match Settings</div>
<div style="padding-bottom: 4px;"><div style="display: flex; font-size: 13.7px; padding-top: 2px;"><div style="border-style: solid; border-width: 1px; border-color: #87CEFA; border-radius: 5px; background-color: #F0F8FF; font-size: x-small; padding-left: 4px; padding-right: 4px; margin-left: 5px; margin-right: 5px;  margin-top: 2px; ">COMPLETE</div><div style="border-style: solid; border-width: 1px; border-color: #87CEFA; border-radius: 5px; background-color: #F0F8FF; font-size: x-small; padding-left: 4px; padding-right: 4px; margin-left: 5px; margin-right: 5px;  margin-top: 2px; ">IN ORDER</div><div style="border-style: solid; border-width: 1px; border-color: #A9A9A9; border-radius: 5px; background-color: #F5F5F5; font-size: x-small; padding-left: 4px; padding-right: 4px; margin-left: 5px; margin-right: 5px;  margin-top: 2px; ">COLUMN ≠ column</div><div style="border-style: solid; border-width: 1px; border-color: #A9A9A9; border-radius: 5px; background-color: #F5F5F5; font-size: x-small; padding-left: 4px; padding-right: 4px; margin-left: 5px; margin-right: 5px;  margin-top: 2px; ">DTYPE ≠ dtype</div><div style="border-style: solid; border-width: 1px; border-color: #A9A9A9; border-radius: 5px; background-color: #F5F5F5; font-size: x-small; padding-left: 4px; padding-right: 4px; margin-left: 5px; margin-right: 5px;  margin-top: 2px; ">float ≠ float64</div></div></div>
</span></td></tr></tfoot>
</table>
</div>
</div>
</details>
</span></td></tr></tfoot>
</table>

</div>
</div>
</div>
<p>This example demonstrates Pointblank’s chainable validation approach where each validation step is clearly defined and can be configured with different threshold levels. The resulting validation object provides rich, interactive reporting that shows not just what passed or failed, but detailed statistics about the validation process. The threshold system allows for nuanced responses to data quality issues.</p>
</section>
<section id="comparisons-1" class="level2">
<h2 class="anchored" data-anchor-id="comparisons-1">Comparisons</h2>
<p>Unlike Pandera’s schema-first approach, Pointblank focuses on step-by-step validation with detailed reporting and flexible failure thresholds that can be set at both the global and individual validation step level. Both Pointblank and Validoopsie use numeric threshold values for granular control over acceptable failure rates, but they differ in their primary focus: Pointblank emphasizes comprehensive reporting and stakeholder communication, while Validoopsie prioritizes operational resilience through its impact level system (low/medium/high) that controls whether threshold breaches are logged, reported, or raise exceptions.</p>
<p>While both libraries support custom validation logic, Pointblank’s <code>specially()</code> method integrates seamlessly with its reporting system, whereas Validoopsie provides a structured framework for creating custom validation classes that fit into its modular validation catalog.</p>
</section>
<section id="unique-strengths-and-when-to-use-2" class="level2">
<h2 class="anchored" data-anchor-id="unique-strengths-and-when-to-use-2">Unique Strengths and When to Use</h2>
<ul>
<li>beautiful, interactive HTML reports that are great for sharing with stakeholders</li>
<li>threshold-based alerting system with configurable actions</li>
<li>segmented validation for analyzing subsets of data</li>
<li>LLM-powered validation suggestions via <code>DraftValidation</code></li>
<li>comprehensive data inspection tools and summary tables</li>
<li>step-by-step validation reporting with detailed failure analysis (via <code>.get_step_report()</code>)</li>
</ul>
<p>Data practitioners might want to choose Pointblank when stakeholder communication and comprehensive data quality reporting are priorities. Because of the reporting tables it can generate, it’s well-suited for data teams that need to regularly report on data quality to relevant stakeholders. Pointblank also excels in production data monitoring scenarios, data observability workflows, and situations where understanding the nuances of data quality issues matters more than simple pass/fail validation.</p>
</section>
</section>
<section id="validoopsie-composable-checks-with-smart-failure-handling" class="level1">
<h1>4. Validoopsie: Composable Checks with Smart Failure Handling</h1>
<p>Validoopsie is built around composable validation principles, providing a toolkit for creating reusable validation functions organized into logical modules. Drawing inspiration from Great Expectations but with a much lighter footprint, Validoopsie emphasizes building validation logic from modular, testable components that can be combined in flexible ways to create complex validation workflows. The library had Polars support from its very first release (early-2025).</p>
<p>What sets Validoopsie apart is its sophisticated approach to handling validation failures through <em>impact levels</em> and <em>threshold tolerances</em>. These features that give you fine-grained control over how your validation pipeline behaves when things go wrong.</p>
<section id="example-3" class="level2">
<h2 class="anchored" data-anchor-id="example-3">Example</h2>
<div id="f139c43d" class="cell" data-execution_count="7">
<div class="sourceCode cell-code" id="cb7" style="background: #f1f3f5;"><pre class="sourceCode python"><code class="sourceCode python"><span id="cb7-1"><span class="im" style="color: #00769E;
background-color: null;
font-style: inherit;">from</span> validoopsie <span class="im" style="color: #00769E;
background-color: null;
font-style: inherit;">import</span> Validate</span>
<span id="cb7-2"><span class="im" style="color: #00769E;
background-color: null;
font-style: inherit;">from</span> narwhals.dtypes <span class="im" style="color: #00769E;
background-color: null;
font-style: inherit;">import</span> Int64, Float64, String</span>
<span id="cb7-3"></span>
<span id="cb7-4"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Composable validation checks with impact levels and thresholds</span></span>
<span id="cb7-5">validation <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> (</span>
<span id="cb7-6">    Validate(user_data)</span>
<span id="cb7-7">    .ValuesValidation.ColumnValuesToBeBetween(</span>
<span id="cb7-8">        column<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"user_id"</span>,</span>
<span id="cb7-9">        min_value<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>,</span>
<span id="cb7-10">        impact<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"high"</span>  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Critical - will raise exception</span></span>
<span id="cb7-11">    )</span>
<span id="cb7-12">    .ValuesValidation.ColumnValuesToBeBetween(</span>
<span id="cb7-13">        column<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"age"</span>,</span>
<span id="cb7-14">        min_value<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">18</span>,</span>
<span id="cb7-15">        max_value<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">80</span>,</span>
<span id="cb7-16">        threshold<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.1</span>,  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Allow 10% failures</span></span>
<span id="cb7-17">        impact<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"medium"</span>  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Important but not critical</span></span>
<span id="cb7-18">    )</span>
<span id="cb7-19">    .StringValidation.PatternMatch(</span>
<span id="cb7-20">        column<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"email"</span>,</span>
<span id="cb7-21">        pattern<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="vs" style="color: #20794D;
background-color: null;
font-style: inherit;">r"</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">^</span><span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;">[^@]</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span><span class="vs" style="color: #20794D;
background-color: null;
font-style: inherit;">@</span><span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;">[^@]</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span><span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;">\.</span><span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;">[^@]</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">$</span><span class="vs" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span>,</span>
<span id="cb7-22">        threshold<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.05</span>,  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Allow 5% malformed emails</span></span>
<span id="cb7-23">        impact<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"low"</span>  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Record but don't interrupt</span></span>
<span id="cb7-24">    )</span>
<span id="cb7-25">    .ValuesValidation.ColumnValuesToBeBetween(</span>
<span id="cb7-26">        column<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"score"</span>,</span>
<span id="cb7-27">        min_value<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>,</span>
<span id="cb7-28">        max_value<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">100</span>,</span>
<span id="cb7-29">        impact<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"medium"</span></span>
<span id="cb7-30">    )</span>
<span id="cb7-31">    .TypeValidation.TypeCheck(</span>
<span id="cb7-32">        frame_schema_definition<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>{</span>
<span id="cb7-33">            <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"user_id"</span>: Int64,</span>
<span id="cb7-34">            <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"age"</span>: Int64,</span>
<span id="cb7-35">            <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"email"</span>: String,</span>
<span id="cb7-36">            <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"score"</span>: Float64</span>
<span id="cb7-37">        },</span>
<span id="cb7-38">        impact<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"high"</span>  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Schema compliance is critical</span></span>
<span id="cb7-39">    )</span>
<span id="cb7-40">)</span>
<span id="cb7-41"></span>
<span id="cb7-42"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Get validation results</span></span>
<span id="cb7-43">validation.validate()</span>
<span id="cb7-44"></span>
<span id="cb7-45"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Access detailed results for analysis</span></span>
<span id="cb7-46"><span class="bu" style="color: null;
background-color: null;
font-style: inherit;">print</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Validation results:"</span>, validation.results)</span></code></pre></div>
<div class="cell-output cell-output-stderr">
<div class="ansi-escaped-output">
<pre><span class="ansi-green-fg">2026-07-22 19:16:31.174</span> | <span class="ansi-bold">INFO    </span> | <span class="ansi-cyan-fg">validoopsie.validate</span>:<span class="ansi-cyan-fg">validate</span>:<span class="ansi-cyan-fg">414</span> - <span class="ansi-bold">Passed validation: {'validation': 'ColumnValuesToBeBetween', 'impact': 'high', 'timestamp': '2026-07-22T19:16:31.171704-04:00', 'column': 'user_id', 'result': {'status': 'Success', 'threshold_pass': True, 'message': 'All items passed the validation.', 'frame_row_number': 5, 'threshold': 0.0}}</span>

<span class="ansi-green-fg">2026-07-22 19:16:31.175</span> | <span class="ansi-red-fg ansi-bold">ERROR   </span> | <span class="ansi-cyan-fg">validoopsie.validate</span>:<span class="ansi-cyan-fg">validate</span>:<span class="ansi-cyan-fg">406</span> - <span class="ansi-red-fg ansi-bold">Failed validation: ColumnValuesToBeBetween_age - The column 'age' has values that are not between 18 and 80.</span>

<span class="ansi-green-fg">2026-07-22 19:16:31.175</span> | <span class="ansi-yellow-fg ansi-bold">WARNING </span> | <span class="ansi-cyan-fg">validoopsie.validate</span>:<span class="ansi-cyan-fg">validate</span>:<span class="ansi-cyan-fg">408</span> - <span class="ansi-yellow-fg ansi-bold">Failed validation: PatternMatch_email - The column 'email' has entries that do not match the pattern '^[^@]+@[^@]+\.[^@]+$'.</span>

<span class="ansi-green-fg">2026-07-22 19:16:31.175</span> | <span class="ansi-bold">INFO    </span> | <span class="ansi-cyan-fg">validoopsie.validate</span>:<span class="ansi-cyan-fg">validate</span>:<span class="ansi-cyan-fg">414</span> - <span class="ansi-bold">Passed validation: {'validation': 'ColumnValuesToBeBetween', 'impact': 'medium', 'timestamp': '2026-07-22T19:16:31.174300-04:00', 'column': 'score', 'result': {'status': 'Success', 'threshold_pass': True, 'message': 'All items passed the validation.', 'frame_row_number': 5, 'threshold': 0.0}}</span>

<span class="ansi-green-fg">2026-07-22 19:16:31.175</span> | <span class="ansi-bold">INFO    </span> | <span class="ansi-cyan-fg">validoopsie.validate</span>:<span class="ansi-cyan-fg">validate</span>:<span class="ansi-cyan-fg">414</span> - <span class="ansi-bold">Passed validation: {'validation': 'TypeCheck', 'impact': 'high', 'timestamp': '2026-07-22T19:16:31.174759-04:00', 'column': 'DataTypeColumnValidation', 'result': {'status': 'Success', 'threshold_pass': True, 'message': 'All items passed the validation.', 'frame_row_number': 4, 'threshold': 0.0}}</span>
</pre>
</div>
</div>
<div class="cell-output cell-output-stdout">
<pre><code>Validation results: {'Summary': {'passed': False, 'validations': ['ColumnValuesToBeBetween_user_id', 'ColumnValuesToBeBetween_age', 'PatternMatch_email', 'ColumnValuesToBeBetween_score', 'TypeCheck_DataTypeColumnValidation'], 'failed_validation': ['ColumnValuesToBeBetween_age', 'PatternMatch_email']}, 'ColumnValuesToBeBetween_user_id': {'validation': 'ColumnValuesToBeBetween', 'impact': 'high', 'timestamp': '2026-07-22T19:16:31.171704-04:00', 'column': 'user_id', 'result': {'status': 'Success', 'threshold_pass': True, 'message': 'All items passed the validation.', 'frame_row_number': 5, 'threshold': 0.0}}, 'ColumnValuesToBeBetween_age': {'validation': 'ColumnValuesToBeBetween', 'impact': 'medium', 'timestamp': '2026-07-22T19:16:31.173064-04:00', 'column': 'age', 'result': {'status': 'Fail', 'threshold_pass': False, 'message': "The column 'age' has values that are not between 18 and 80.", 'failing_items': [95], 'failed_number': 1, 'frame_row_number': 5, 'threshold': 0.1, 'failed_percentage': 0.2}}, 'PatternMatch_email': {'validation': 'PatternMatch', 'impact': 'low', 'timestamp': '2026-07-22T19:16:31.173667-04:00', 'column': 'email', 'result': {'status': 'Fail', 'threshold_pass': False, 'message': "The column 'email' has entries that do not match the pattern '^[^@]+@[^@]+\\.[^@]+$'.", 'failing_items': ['invalid-email'], 'failed_number': 1, 'frame_row_number': 5, 'threshold': 0.05, 'failed_percentage': 0.2}}, 'ColumnValuesToBeBetween_score': {'validation': 'ColumnValuesToBeBetween', 'impact': 'medium', 'timestamp': '2026-07-22T19:16:31.174300-04:00', 'column': 'score', 'result': {'status': 'Success', 'threshold_pass': True, 'message': 'All items passed the validation.', 'frame_row_number': 5, 'threshold': 0.0}}, 'TypeCheck_DataTypeColumnValidation': {'validation': 'TypeCheck', 'impact': 'high', 'timestamp': '2026-07-22T19:16:31.174759-04:00', 'column': 'DataTypeColumnValidation', 'result': {'status': 'Success', 'threshold_pass': True, 'message': 'All items passed the validation.', 'frame_row_number': 4, 'threshold': 0.0}}}</code></pre>
</div>
</div>
<p>This example showcases Validoopsie’s key differentiators: modular validation categories (<code>ValuesValidation</code>, <code>StringValidation</code>, <code>TypeValidation</code>) combined with <em>impact levels</em> that control failure behavior and <em>thresholds</em> that allow controlled tolerance for data quality issues. Unlike other libraries that treat all validation failures equally, Validoopsie lets you specify which validations are critical (“high” impact raises exceptions) versus informational (“low” impact just logs results).</p>
<p>Validoopsie’s most powerful feature is its three-tier <code>impact=</code> system combined with <code>threshold=</code> tolerance:</p>
<div id="e2dcee9e" class="cell" data-execution_count="8">
<div class="sourceCode cell-code" id="cb9" style="background: #f1f3f5;"><pre class="sourceCode python"><code class="sourceCode python"><span id="cb9-1"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Example showing sophisticated failure handling</span></span>
<span id="cb9-2">validation <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> (</span>
<span id="cb9-3">    Validate(user_data)</span>
<span id="cb9-4">    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Critical validation - no tolerance</span></span>
<span id="cb9-5">    .NullValidation.ColumnNotBeNull(</span>
<span id="cb9-6">        column<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"user_id"</span>,</span>
<span id="cb9-7">        impact<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"high"</span>    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Will raise an exception if any Null values found</span></span>
<span id="cb9-8">    )</span>
<span id="cb9-9">    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Important validation with tolerance</span></span>
<span id="cb9-10">    .StringValidation.PatternMatch(</span>
<span id="cb9-11">        column<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"email"</span>,</span>
<span id="cb9-12">        pattern<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="vs" style="color: #20794D;
background-color: null;
font-style: inherit;">r"</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">^</span><span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;">[^@]</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span><span class="vs" style="color: #20794D;
background-color: null;
font-style: inherit;">@</span><span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;">[^@]</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span><span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;">\.</span><span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;">[^@]</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">$</span><span class="vs" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span>,</span>
<span id="cb9-13">        threshold<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.15</span>,  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Allow up to 15% malformed emails</span></span>
<span id="cb9-14">        impact<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"medium"</span>  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Log failures but don't stop processing</span></span>
<span id="cb9-15">    )</span>
<span id="cb9-16">    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Informational validation</span></span>
<span id="cb9-17">    .ValuesValidation.ColumnValuesToBeBetween(</span>
<span id="cb9-18">        column<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"score"</span>,</span>
<span id="cb9-19">        min_value<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">90</span>,</span>
<span id="cb9-20">        max_value<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">100</span>,</span>
<span id="cb9-21">        threshold<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.8</span>,  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Allow 80% to be outside "excellent" range</span></span>
<span id="cb9-22">        impact<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"low"</span>    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Just track high performers</span></span>
<span id="cb9-23">    )</span>
<span id="cb9-24">)</span>
<span id="cb9-25"></span>
<span id="cb9-26">validation.validate()</span></code></pre></div>
<div class="cell-output cell-output-stderr">
<div class="ansi-escaped-output">
<pre><span class="ansi-green-fg">2026-07-22 19:16:31.181</span> | <span class="ansi-bold">INFO    </span> | <span class="ansi-cyan-fg">validoopsie.validate</span>:<span class="ansi-cyan-fg">validate</span>:<span class="ansi-cyan-fg">414</span> - <span class="ansi-bold">Passed validation: {'validation': 'ColumnNotBeNull', 'impact': 'high', 'timestamp': '2026-07-22T19:16:31.180063-04:00', 'column': 'user_id', 'result': {'status': 'Success', 'threshold_pass': True, 'message': 'All items passed the validation.', 'frame_row_number': 5, 'threshold': 0.0}}</span>

<span class="ansi-green-fg">2026-07-22 19:16:31.182</span> | <span class="ansi-red-fg ansi-bold">ERROR   </span> | <span class="ansi-cyan-fg">validoopsie.validate</span>:<span class="ansi-cyan-fg">validate</span>:<span class="ansi-cyan-fg">406</span> - <span class="ansi-red-fg ansi-bold">Failed validation: PatternMatch_email - The column 'email' has entries that do not match the pattern '^[^@]+@[^@]+\.[^@]+$'.</span>

<span class="ansi-green-fg">2026-07-22 19:16:31.182</span> | <span class="ansi-bold">INFO    </span> | <span class="ansi-cyan-fg">validoopsie.validate</span>:<span class="ansi-cyan-fg">validate</span>:<span class="ansi-cyan-fg">414</span> - <span class="ansi-bold">Passed validation: {'validation': 'ColumnValuesToBeBetween', 'impact': 'low', 'timestamp': '2026-07-22T19:16:31.181324-04:00', 'column': 'score', 'result': {'status': 'Success', 'threshold_pass': True, 'message': "The column 'score' has values that are not between 90 and 100.", 'failing_items': [78.3, 85.5, 88.7], 'failed_number': 3, 'frame_row_number': 5, 'threshold': 0.8, 'failed_percentage': 0.6}}</span>
</pre>
</div>
</div>
</div>
<p>Validoopsie strikes a unique balance between operational flexibility and production reliability, making it an excellent choice for teams that need sophisticated failure handling without the complexity of larger validation frameworks.</p>
</section>
<section id="comparisons-2" class="level2">
<h2 class="anchored" data-anchor-id="comparisons-2">Comparisons</h2>
<p>Validoopsie’s functional approach contrasts with Pandera’s schema-centric methodology and Patito’s object-oriented models. While Pandera focuses on statistical validation and Patito emphasizes Pydantic integration, Validoopsie prioritizes flexibility and operational robustness.</p>
<p>Compared to Pointblank, both libraries offer sophisticated threshold-based failure handling using numeric values (e.g., 0.1 for 10% tolerance), but they differ in their architectural approach: Validoopsie combines numeric thresholds with impact levels (low/medium/high) that control the behavioral response to threshold breaches, while Pointblank integrates thresholds directly into its comprehensive reporting and alerting system. Both support custom validation, but Validoopsie uses a modular validation catalog approach while Pointblank’s <code>specially()</code> method integrates seamlessly with its step-by-step reporting workflow.</p>
<p>Validoopsie is the only library in this survey that provides built-in logging capabilities, making it particularly valuable for production environments where validation events need to be tracked and monitored.</p>
<p>The library’s Great Expectations inspiration is evident in its modular design, but Validoopsie delivers this functionality with a much lighter dependency footprint and simpler API. Teams familiar with Great Expectations will find Validoopsie’s approach familiar but more streamlined.</p>
</section>
<section id="unique-strengths-and-when-to-use-3" class="level2">
<h2 class="anchored" data-anchor-id="unique-strengths-and-when-to-use-3">Unique Strengths and When to Use</h2>
<p>Validoopsie’s standout features include:</p>
<ul>
<li>graduated failure handling through impact levels (low/medium/high) combined with numeric thresholds that control both tolerance levels and behavioral responses to failures</li>
<li>numeric threshold tolerance allowing controlled acceptance of data quality issues (e.g., “allow 10% email format failures” with <code>threshold=0.1</code>)</li>
<li>built-in structured logging using loguru allows for automatic logging of validation results, failures, and performance metrics (unique among these libraries)</li>
<li>being a lightweight Great Expectations alternative with similar composability but minimal dependencies</li>
<li>an extensive validation catalog organized into logical namespaces (Date, String, Null, Values, etc.)</li>
<li>custom validation framework with consistent patterns for creating domain-specific rules</li>
</ul>
<p>Choose Validoopsie when you need:</p>
<ul>
<li>operational resilience in production pipelines where partial data quality issues shouldn’t stop processing</li>
<li>comprehensive validation logging and monitoring for observability in production environments</li>
<li>fine-grained control over validation failure behavior with different criticality levels</li>
<li>lightweight Great Expectations functionality without the complexity and dependencies</li>
<li>custom validation development with a clear, consistent framework</li>
<li>modular validation design that promotes reusability across projects</li>
</ul>
<p>Validoopsie is particularly well-suited for data engineering teams building robust production pipelines where data quality monitoring is important but pipeline availability is critical. Its impact/threshold system makes it uniquely powerful for environments where you need to distinguish between “nice to have” and “must have” data quality requirements.</p>
</section>
</section>
<section id="dataframely-type-safe-schema-validation-with-advanced-features" class="level1">
<h1>5. Dataframely: Type-Safe Schema Validation with Advanced Features</h1>
<p>Dataframely is a comprehensive data validation framework that brings type-safe schema validation to Polars DataFrames with some of the most advanced features in the ecosystem. The library focuses on providing both runtime validation and static type checking, with particular strengths in collection validation for related DataFrames and extensive integration capabilities with external tools.</p>
<p>Dataframely launched in early 2025 with native Polars support as a core feature, built specifically for the modern data ecosystem with first-class support for complex validation scenarios.</p>
<section id="example-4" class="level2">
<h2 class="anchored" data-anchor-id="example-4">Example</h2>
<div id="e22abbf8" class="cell" data-execution_count="9">
<div class="sourceCode cell-code" id="cb10" style="background: #f1f3f5;"><pre class="sourceCode python"><code class="sourceCode python"><span id="cb10-1"><span class="im" style="color: #00769E;
background-color: null;
font-style: inherit;">import</span> polars <span class="im" style="color: #00769E;
background-color: null;
font-style: inherit;">as</span> pl</span>
<span id="cb10-2"><span class="im" style="color: #00769E;
background-color: null;
font-style: inherit;">import</span> dataframely <span class="im" style="color: #00769E;
background-color: null;
font-style: inherit;">as</span> dy</span>
<span id="cb10-3"></span>
<span id="cb10-4"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">class</span> UserSchema(dy.Schema):</span>
<span id="cb10-5">    user_id <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> dy.Int64(primary_key<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">True</span>, <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">min</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>, nullable<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">False</span>)</span>
<span id="cb10-6">    age <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> dy.Int64(nullable<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">False</span>)</span>
<span id="cb10-7">    email <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> dy.String(nullable<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">False</span>, regex<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="vs" style="color: #20794D;
background-color: null;
font-style: inherit;">r"</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">^</span><span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;">[^@]</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span><span class="vs" style="color: #20794D;
background-color: null;
font-style: inherit;">@</span><span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;">[^@]</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span><span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;">\.</span><span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;">[^@]</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">$</span><span class="vs" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span>)</span>
<span id="cb10-8">    score <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> dy.Float64(nullable<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">False</span>, <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">min</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.0</span>, <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">max</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">100.0</span>)</span>
<span id="cb10-9"></span>
<span id="cb10-10">    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Use @dy.rule() for age range validation</span></span>
<span id="cb10-11">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">@dy.rule</span>()</span>
<span id="cb10-12">    <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">def</span> age_in_range(cls) <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-&gt;</span> pl.Expr:</span>
<span id="cb10-13">        <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">return</span> pl.col(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"age"</span>).is_between(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">18</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">80</span>, closed<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"both"</span>)</span>
<span id="cb10-14"></span>
<span id="cb10-15"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Validate using the schema</span></span>
<span id="cb10-16"><span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">try</span>:</span>
<span id="cb10-17">    validated_data <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> UserSchema.validate(user_data, cast<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">True</span>)</span>
<span id="cb10-18">    <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">print</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Validation successful!"</span>)</span>
<span id="cb10-19">    <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">print</span>(validated_data)</span>
<span id="cb10-20"><span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">except</span> <span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;">Exception</span> <span class="im" style="color: #00769E;
background-color: null;
font-style: inherit;">as</span> e:</span>
<span id="cb10-21">    <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">print</span>(<span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">f"Validation failed: </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">{</span>e<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">}</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span>)</span></code></pre></div>
</div>
<p>This example showcases Dataframely’s class-based schema approach with several notable features: primary key constraints, comprehensive type validation with bounds, regex pattern matching, and custom validation rules using the <code>@dy.rule()</code> decorator (used here for age range checking).</p>
<p>The <code>cast=True</code> parameter automatically coerces column types to match the schema definitions. This is really useful when working with data from external sources where column types might not exactly match your schema expectations (e.g., integers loaded as strings from CSV files).</p>
<p>Dataframely features soft validation and failure introspection. As one of Dataframely’s standout features, it brings a fairly sophisticated approach to validation failures. Rather than just raising exceptions, it provides detailed failure analysis:</p>
<div id="4133025a" class="cell" data-execution_count="10">
<div class="sourceCode cell-code" id="cb11" style="background: #f1f3f5;"><pre class="sourceCode python"><code class="sourceCode python"><span id="cb11-1"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Soft validation: separate valid and invalid rows</span></span>
<span id="cb11-2">good_data, failure_info <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> UserSchema.<span class="bu" style="color: null;
background-color: null;
font-style: inherit;">filter</span>(user_data, cast<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">True</span>)</span>
<span id="cb11-3"></span>
<span id="cb11-4"><span class="bu" style="color: null;
background-color: null;
font-style: inherit;">print</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Valid rows:"</span>, <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">len</span>(good_data))</span>
<span id="cb11-5"><span class="bu" style="color: null;
background-color: null;
font-style: inherit;">print</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Failure counts:"</span>, failure_info.counts())</span>
<span id="cb11-6"><span class="bu" style="color: null;
background-color: null;
font-style: inherit;">print</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Co-occurrence analysis:"</span>, failure_info.cooccurrence_counts())</span>
<span id="cb11-7"></span>
<span id="cb11-8"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Inspect the actual failed rows</span></span>
<span id="cb11-9">failed_rows <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> failure_info.invalid()</span>
<span id="cb11-10"><span class="bu" style="color: null;
background-color: null;
font-style: inherit;">print</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Failed data:"</span>, failed_rows)</span></code></pre></div>
</div>
</section>
<section id="comparisons-3" class="level2">
<h2 class="anchored" data-anchor-id="comparisons-3">Comparisons</h2>
<p>While both Dataframely and Pandera offer schema-centric validation approaches, they serve different validation philosophies. Pandera excels in statistical validation with hypothesis testing and distribution checks, making it ideal for data science workflows where statistical properties matter. Dataframely, by contrast, emphasizes relational data integrity and type safety, providing more sophisticated failure analysis and collection-level validation capabilities that Pandera doesn’t offer.</p>
<p>The relationship between Dataframely and Patito is particularly interesting since both use class-based schema definitions. However, Dataframely extends far beyond Patito’s Pydantic-focused approach. Where Patito provides clean, simple validation with excellent Pydantic integration, Dataframely offers advanced features like collection validation, group rules, and comprehensive failure introspection. Teams already invested in Pydantic workflows might prefer Patito’s simplicity, while those building complex data systems will appreciate Dataframely’s feature set.</p>
<p>Dataframely and Pointblank represent two different approaches to comprehensive data validation. Pointblank shines in stakeholder communication with its beautiful interactive reports and threshold-based alerting systems, making it perfect for data quality reporting. Dataframely focuses instead on type safety and complex validation logic, with unique collection validation capabilities that no other library in this survey provides. The choice between these two will comes down to whether your priority is communicating validation results or ensuring complex data relationships remain consistent.</p>
<p>When compared to Validoopsie’s method chaining approach, Dataframely offers a more structured, schema-centric methodology with advanced type safety features that Validoopsie doesn’t provide. While Validoopsie excels in operational flexibility and lightweight design for building reusable validation components, Dataframely’s strength lies in its comprehensive type system integration, collection validation capabilities, and sophisticated failure analysis. And that makes it ideal for complex data engineering workflows where relationships between multiple DataFrames matter as much as individual DataFrame validation.</p>
</section>
<section id="unique-strengths-and-when-to-use-4" class="level2">
<h2 class="anchored" data-anchor-id="unique-strengths-and-when-to-use-4">Unique Strengths and When to Use</h2>
<p>Dataframely’s standout features include:</p>
<ul>
<li>advanced type safety with full mypy integration and generic DataFrame types</li>
<li>collection validation for ensuring consistency across related DataFrames</li>
<li>group-based validation rules using <code>@dy.rule(group_by=[...])</code> for aggregate constraints</li>
<li>schema inheritance for reducing code duplication in related schemas</li>
<li>production-ready soft validation that separates valid and invalid data</li>
</ul>
<p>One might choose Dataframely when building complex data systems where:</p>
<ul>
<li>type safety and static analysis are critical for code quality</li>
<li>you need to validate relationships between multiple related DataFrames</li>
<li>you’re working with production pipelines that need to handle partial data quality issues gracefully</li>
<li>schema reuse and inheritance would benefit your codebase organization</li>
</ul>
<p>Dataframely is particularly well-suited for data engineering teams building robust, type-safe data pipelines where the relationships between different data entities are as important as the validation of individual DataFrames. Its collection validation capabilities make it uniquely powerful for ensuring referential integrity in complex data workflows.</p>
</section>
</section>
<section id="choosing-the-right-library" class="level1">
<h1>Choosing the Right Library</h1>
<p>With five solid validation libraries to choose from, the decision often comes down to your team’s specific workflow, existing tech stack, and validation requirements. Here are some practical considerations to help guide your choice:</p>
<p><em>Start with your existing tools</em></p>
<p>If you’re already using Pydantic extensively, Patito will feel natural. Teams that are heavily invested in type checking and statistical analysis should probably gravitate toward Pandera. If you’re building data products that need stakeholder buy-in, Pointblank’s reporting capabilities become incredibly useful in that context. For teams already committed to strong typing and static analysis workflows, Dataframely’s advanced type safety features will feel like a natural extension of your existing practices.</p>
<p><em>Consider your validation complexity</em></p>
<p>For straightforward schema validation and type checking, any of these libraries will work well. But if you need statistical hypothesis testing, Pandera is your best bet. For highly custom validation logic that needs to be composed and reused, Validoopsie shines. When validation results need to be communicated to non-technical stakeholders, Pointblank’s interactive reports are basically unmatched. If you’re dealing with complex relational data where multiple DataFrames need to maintain consistency with each other, Dataframely’s collection validation capabilities are unique in the ecosystem.</p>
<p><em>Think about failure tolerance requirements</em></p>
<p>One of the most important architectural differences among these libraries is how they handle validation failures. Only Pointblank and Validoopsie offer numeric threshold-based failure tolerance. This is the ability to accept a controlled percentage of validation failures without treating the entire validation as failed.</p>
<p>This distinction can be crucial for production environments where some level of data quality issues is acceptable and you need fine-grained control over when validations should fail versus warn. In many real-world scenarios, poor data quality is a given reality, and the goal becomes gradually improving quality over time rather than enforcing perfection. Thresholds can then be seen not as simple failure tolerances but more like data quality metrics and improvement goals (e.g., you might start with <code>threshold=0.15</code> for email validation and progressively tighten to <code>0.05</code> as upstream systems improve).</p>
<p><em>Think about your team’s preferences</em></p>
<p>There’s a human dimension here. Some data teams might prefer the declarative, schema-first approach of Pandera, Patito, and Dataframely, whereas others like the step-by-step, method-chaining style of Pointblank and Validoopsie. There’s really no right or wrong choice here. It’s all about what feels right and most natural for your team’s coding style and mental model.</p>
<p><em>Don’t feel locked into one choice</em></p>
<p>My hunch is that many teams already successfully use different libraries for different parts of their data pipeline. They’re leveraging each tool’s strengths where they matter most. So you could conceivably use Patito for Pydantic-style validation, Pandera for statistical checks in your analysis pipeline, Pointblank for generating stakeholder reports, and Dataframely for complex data engineering workflows (use ’em all!). This multi-library approach can be particularly effective in larger organizations with diverse validation needs.</p>
<p>I suppose the key is to start with one library that fits your immediate needs, learn it well, and then consider expanding your toolkit as your validation requirements evolve.</p>
</section>
<section id="summary-and-wrapping-up" class="level1">
<h1>Summary and Wrapping Up</h1>
<p>The Python ecosystem offers truly excellent options for validating Polars DataFrames! Choosing is always tough but this is how one could make the decision based on specific needs:</p>
<ul>
<li>for type-safe pipelines, <strong>Pandera</strong>, <strong>Dataframely</strong>, or <strong>Patito</strong> are ideal</li>
<li>for stakeholder reporting, <strong>Pointblank</strong> is a great choice</li>
<li>for row-level object modeling, go with <strong>Patito</strong></li>
<li>for statistical validation, <strong>Pandera</strong> is perfect</li>
<li>for data quality improvement, <strong>Pointblank</strong> or <strong>Validoopsie</strong> fit well</li>
</ul>
<p>Each library has evolved to serve different aspects of the data validation ecosystem. Try them all and, with a little understanding of their strengths, you’ll get good at picking the right data validation tool for your specific use case.</p>
<p>This survey represents our understanding of these libraries as of mid-2025. Given the rapid pace of development in the Python data ecosystem, some details may become outdated or contain inaccuracies (we may have even gotten things wrong at the outset). If you notice any errors or have updates to share, we’d love to hear from you! Please reach out through:</p>
<ul>
<li><a href="https://github.com/posit-dev/pointblank/issues">GitHub Issues</a></li>
<li><a href="https://github.com/posit-dev/pointblank/discussions">GitHub Discussions</a></li>
<li>Our <a href="https://discord.com/invite/YH7CybCNCQ">Discord Server</a></li>
</ul>
<p>Any feedback you provide helps keep this resource accurate and useful for the community!</p>


</section>

 ]]></description>
  <guid>https://posit-dev.github.io/pointblank/blog/validation-libs-2025/</guid>
  <pubDate>Wed, 04 Jun 2025 00:00:00 GMT</pubDate>
</item>
<item>
  <title>C’mon C’mon: Let’s Do a Pointblank Workshop!</title>
  <dc:creator>Rich Iannone</dc:creator>
  <link>https://posit-dev.github.io/pointblank/blog/lets-workshop-together/</link>
  <description><![CDATA[ 




<p>Recently, I’ve been giving free workshops to data teams on Pointblank. These sorts of engagements energize me, and I truly enjoy hearing what people are concerned with when it comes to data validation. If <em>your</em> team is interested, I would love to schedule something with y’all! Please reach out at rich@posit.co or message me on the (<a href="https://discord.com/invite/YH7CybCNCQ">Pointblank Discord</a>).</p>
<p>Workshops have been especially helpful for understanding how people use and share Pointblank’s <a href="../../user-guide/index.html">validation results table</a>. For example, I learned that people like to email or pull up the table for stakeholders so they can walk through problem cases (it’s a great conversation starter for getting to the heart of data quality issues).</p>
<p>A couple of months ago, I gave a workshop to one of Apple’s data teams. During the Q&amp;A afterwards, someone asked whether you can perform the same validation on different chunks of table rows. This was a very helpful nudge for me to add a <a href="../../user-guide/segmentation.qmd"><code>segments=</code> argument</a> to all of Pointblank’s validation methods!</p>
<p>We are excited about how things are going with the Pointblank project and are <em>always up</em> for providing a workshop to your data team (at no cost). If this sounds interesting to you please feel free to contact me through email or via Discord. Don’t be shy. Just know that if you have a need for data validation, we’re here to help!</p>
<section id="acknowledgment" class="level1">
<h1>Acknowledgment</h1>
<p>I’d like to give special thanks to Rami Krispin for his interest in Pointblank and for facilitating a recent workshop. If you’re interested in more data science insights, check out <a href="https://ramikrispin.substack.com">Rami’s Data Newsletter</a> where he shares valuable perspectives on data engineering, LLMs, and analytics.</p>


</section>

 ]]></description>
  <guid>https://posit-dev.github.io/pointblank/blog/lets-workshop-together/</guid>
  <pubDate>Tue, 03 Jun 2025 00:00:00 GMT</pubDate>
</item>
<item>
  <title>Overhauling Pointblank’s User Guide</title>
  <dc:creator>Rich Iannone and Michael Chow</dc:creator>
  <link>https://posit-dev.github.io/pointblank/blog/overhauled-user-guide/</link>
  <description><![CDATA[ 




<p>The Pointblank documentation just got a major upgrade! We’ve completely overhauled our <a href="../../user-guide/index.html"><strong>User Guide</strong></a>. Our goal was to enable readers to start fast on validation and work through the many pieces needed in realistic situations.</p>
<p>We realized that at the core of Pointblank is the validation plan. Its made up of rules, results, and steps.</p>
<p><img src="https://posit-dev.github.io/pointblank/blog/overhauled-user-guide/validation-three-things.png" class="img-fluid" style="width:80.0%"></p>
<p>For example, the first row is a step that checks whether values in column ‘a’ are less than <code>10</code>. The <code>COLUMNS</code> and <code>VALUES</code> column contain the rules used to configure the step. The <code>PASS</code> column for the first row indicates that all 13 values in the column passed.</p>
<p>In this post, we’ll cover:</p>
<ul>
<li>using a spiral sequence to balance introductory breadth with subsequent depth</li>
<li>improving examples with direct explanatory text</li>
<li>rounding out API coverage for cross-linking</li>
<li>surfacing advanced topics</li>
</ul>
<p>Let us walk you through the key improvements in our refreshed <a href="../../user-guide/index.html"><strong>User Guide</strong></a>!</p>
<section id="introduction-embracing-the-spiral-sequence" class="level1">
<h1>Introduction: Embracing the Spiral Sequence</h1>
<p>We chose to use a spiral sequence for our <a href="../../user-guide/index.html">Introduction</a> and <em>Validation Plan</em> section. The <a href="../../user-guide/index.html">Introduction</a> quickly covers parts of validation plan, while each article of the <em>Validation Plan</em> section dives deeper into different aspects of defining validation rules.</p>
<div style="text-align: center;">
<p><img src="https://posit-dev.github.io/pointblank/blog/overhauled-user-guide/breadth-and-depth.png" class="img-fluid" style="width:50.0%"></p>
</div>
<p>The introduction does a broad pass on the validation plan table diagram, identifying the core pieces of the output and then giving a quick overview of the code that produced it. This sets people up for the <em>Validation Plan</em> section in the guide, where each concept is discussed in depth.</p>
</section>
<section id="improving-examples" class="level1">
<h1>Improving Examples</h1>
<p>Examples are everywhere in the <a href="../../user-guide/index.html"><strong>User Guide</strong></a>. We’ve tightened up our approach to examples by:</p>
<ul>
<li>presenting example code, output, or both, early in each section</li>
<li>showing the actual output you’ll see in your environment</li>
<li>following up with explanatory text that guides attention to specific places in the output</li>
</ul>
<p>This approach makes learning more intuitive. Here’s an excerpt that shows this in practice.</p>
<p><img src="https://posit-dev.github.io/pointblank/blog/overhauled-user-guide/explanation-of-visual.png" class="img-fluid" style="width:80.0%"></p>
<p>The blue arrow marks the flow of reading and the red arrows map where we anticipate people will look from the text to the output. Focusing explicitly on where we think attention will go forces us to think carefully about exactly what readers will get from the output. The hope is that readers get to work more quickly on new concepts.</p>
</section>
<section id="rounding-out-api-coverage" class="level1">
<h1>Rounding Out API Coverage</h1>
<p>Documentation has to balance jobs between a user guide and an API Reference:</p>
<ul>
<li>User Guide: explains concepts that cut across functions (like common arguments across <a href="../../user-guide/validation-plan/validation-methods.html">validation methods</a>)</li>
<li>API Reference: explains each individual function</li>
</ul>
<p>Importantly, user guides often link to the API reference so, as part of this work, we made sure that all individual API entries are well-documented and linked to from the guide. Here’s an excerpt from the <a href="../../user-guide/index.html"><strong>User Guide</strong></a> that shows links marked:</p>
<p><img src="https://posit-dev.github.io/pointblank/blog/overhauled-user-guide/links-in-guide.png" class="img-fluid" style="width:80.0%"></p>
</section>
<section id="surfacing-advanced-topics" class="level1">
<h1>Surfacing Advanced Topics</h1>
<p>There’s a lot of potential slicing and dicing involved in validation, as well as work after validation (post interrogation) to make sense of the results. We added pages to the <a href="../../user-guide/index.html"><strong>User Guide</strong></a> for some core situations. In this section, I’ll highlight two advanced topics we added pages for:</p>
<ul>
<li>segmentation: splitting a column into groups, and validating each group</li>
<li>step reports: view failing cases (e.g., view rows of data that failed validation)</li>
</ul>
<p>These are marked in the <a href="../../user-guide/index.html"><strong>User Guide</strong></a> sidebar screenshot below:</p>
<div style="text-align: center;">
<p><img src="https://posit-dev.github.io/pointblank/blog/overhauled-user-guide/advanced-in-sidebar.png" class="img-fluid" style="width:35.0%"></p>
</div>
<section id="segmentation" class="level2">
<h2 class="anchored" data-anchor-id="segmentation">Segmentation</h2>
<p>Here’s a screenshot of a validation report with two validation steps, one for each segment (<code>"low"</code> and <code>"high"</code>) in the <code>f</code> column of the <code>small_table</code> dataset.</p>
<p><img src="https://posit-dev.github.io/pointblank/blog/overhauled-user-guide/segments.png" class="img-fluid" style="width:80.0%"></p>
<p>Notice that segments split columns into groups and apply the same validation to each of the groups. Each group is given its own step.</p>
<p>Each of the 20+ validation methods accept a <code>segment=</code> argument. The value of the <a href="../../user-guide/validation-plan/segmentation.html">Segmentation article in the User Guide</a> is to describe this cross-cutting behavior in a single place.</p>
<p>Compare the <code>segments=</code> parameter in the API Reference (e.g., look at <a href="`Validate.col_vals_gt`"><code>col_vals_gt()</code></a> and the <a href="../../user-guide/validation-plan/segmentation.html">Segmentation article</a> to get a feel for how each location documents the segments feature.</p>
</section>
<section id="step-report" class="level2">
<h2 class="anchored" data-anchor-id="step-report">Step Report</h2>
<p>Step reports display failing cases (e.g., rows) for a validation step, so you can dig deeper into validation failures. Here’s a screenshot of a step report for some validation step 2:</p>
<p><img src="https://posit-dev.github.io/pointblank/blog/overhauled-user-guide/step-report.png" class="img-fluid" style="width:80.0%"></p>
<p>Notice the arrow pointing to ‘Step 2’ in the title. Failing values are highlighted in red. Once we know we have failures, it’s important to take action and discover <em>why</em> data is failing. Looking at failing cases in step reports often uncovers obvious causes behind failures.</p>
<p>The <code>get_step_report()</code> entry is one of 50 in the API Reference. Here it is listed the API Reference, in the <a href="../../reference/index.html#interrogation-and-reporting">Interrogation and Reporting section</a>. Critically, it’s only one of 20 entries in the <a href="../../user-guide/index.html">User Guide</a>, which emphasizes its importance in validation workflows.</p>
</section>
</section>
<section id="looking-forward" class="level1">
<h1>Looking Forward</h1>
<p>The refreshed <strong>User Guide</strong> is just the beginning of our documentation improvements. We’re committed to continuously enhancing our documentation to support your data validation needs.</p>
<p>Michael Chow gave feedback on this <strong>User Guide</strong> in preparation for his <a href="https://cfp.scipy.org/scipy2025/talk/NRMNDX/">upcoming talk at SciPy 2025</a>.</p>
<p>We’d love to hear your feedback on the new User Guide! Feel free to open an issue on our <a href="https://github.com/posit-dev/pointblank/issues">GitHub repository</a> with suggestions, corrections, or requests for additional topics you’d like to see covered. You can also join our community discussions in the dedicated <code>#Documentation</code> channel on our <a href="https://discord.com/invite/YH7CybCNCQ">Discord server</a>, where you can share ideas, ask questions, and get help directly from the Pointblank team and other users.</p>


</section>

 ]]></description>
  <guid>https://posit-dev.github.io/pointblank/blog/overhauled-user-guide/</guid>
  <pubDate>Tue, 20 May 2025 00:00:00 GMT</pubDate>
</item>
<item>
  <title>Level Up Your Data Validation with Actions and FinalActions</title>
  <dc:creator>Rich Iannone</dc:creator>
  <link>https://posit-dev.github.io/pointblank/blog/all-about-actions/</link>
  <description><![CDATA[ 




<p>Data validation is only useful if you can respond appropriately when problems arise. That’s why Pointblank’s recent <code>v0.8.0</code> and <code>v0.8.1</code> releases have significantly enhanced our action framework, allowing you to create sophisticated, automated responses to validation failures.</p>
<p>In this post, we’ll explore how to use:</p>
<ol type="1">
<li><strong>Actions</strong> to respond to individual validation failures</li>
<li><strong>FinalActions</strong> to execute code after your entire validation plan completes</li>
<li>New customization features that make your validation workflows more expressive</li>
</ol>
<p>Let’s dive into how these features can transform your data validation process from passive reporting to active response.</p>
<section id="from-passive-validation-to-active-response" class="level1">
<h1>From Passive Validation to Active Response</h1>
<p>Traditional data validation simply reports problems: “Column X has invalid values.” But what if you want to:</p>
<ul>
<li>send a Slack message when critical errors occur?</li>
<li>log detailed diagnostics about failing data?</li>
<li>trigger automatic data cleaning processes?</li>
<li>generate custom reports for stakeholders?</li>
</ul>
<p>This is where Pointblank’s action system can help. By pairing thresholds with actions, you can create automated responses that trigger exactly when needed.</p>
</section>
<section id="getting-started-with-actions" class="level1">
<h1>Getting Started with Actions</h1>
<p>Actions are executed when validation steps fail to meet certain thresholds. Let’s start with a simple example:</p>
<div id="5831ff6a" class="cell" data-execution_count="2">
<div class="sourceCode cell-code" id="cb1" style="background: #f1f3f5;"><pre class="sourceCode python"><code class="sourceCode python"><span id="cb1-1"><span class="im" style="color: #00769E;
background-color: null;
font-style: inherit;">import</span> pointblank <span class="im" style="color: #00769E;
background-color: null;
font-style: inherit;">as</span> pb</span>
<span id="cb1-2"></span>
<span id="cb1-3">validation_1 <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> (</span>
<span id="cb1-4">    pb.Validate(data<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>pb.load_dataset(dataset<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"small_table"</span>))</span>
<span id="cb1-5">    .col_vals_gt(</span>
<span id="cb1-6">        columns<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"d"</span>,</span>
<span id="cb1-7">        value<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1000</span>,</span>
<span id="cb1-8">        thresholds<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>pb.Thresholds(warning<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>, error<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">5</span>),</span>
<span id="cb1-9">        actions<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>pb.Actions(</span>
<span id="cb1-10">            warning<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"⚠️ WARNING: Some values in column 'd' are below the minimum threshold!"</span></span>
<span id="cb1-11">        )</span>
<span id="cb1-12">    )</span>
<span id="cb1-13">    .interrogate()</span>
<span id="cb1-14">)</span>
<span id="cb1-15"></span>
<span id="cb1-16">validation_1</span></code></pre></div>
<div class="cell-output cell-output-stdout">
<pre><code>⚠️ WARNING: Some values in column 'd' are below the minimum threshold!</code></pre>
</div>
<div class="cell-output cell-output-display" data-execution_count="2">
<div id="pb_tbl" style="padding-left:0px;padding-right:0px;padding-top:10px;padding-bottom:10px;overflow-x:auto;overflow-y:auto;width:auto;height:auto;">
<style>
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono&display=swap');
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Sans&display=swap');
#pb_tbl table {
          font-family: 'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Helvetica Neue', 'Fira Sans', 'Droid Sans', Arial, sans-serif;
          -webkit-font-smoothing: antialiased;
          -moz-osx-font-smoothing: grayscale;
        }

#pb_tbl thead, tbody, tfoot, tr, td, th { border-style: none; }
 tr { background-color: transparent; }
#pb_tbl p { margin: 0; padding: 0; }
 #pb_tbl .gt_table { display: table; border-collapse: collapse; line-height: normal; margin-left: auto; margin-right: auto; color: #333333; font-size: 90%; font-weight: normal; font-style: normal; background-color: #FFFFFF; width: auto; border-top-style: solid; border-top-width: 2px; border-top-color: #A8A8A8; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #A8A8A8; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; }
 #pb_tbl .gt_caption { padding-top: 4px; padding-bottom: 4px; }
 #pb_tbl .gt_title { color: #333333; font-size: 125%; font-weight: initial; padding-top: 4px; padding-bottom: 4px; padding-left: 5px; padding-right: 5px; border-bottom-color: #FFFFFF; border-bottom-width: 0; }
 #pb_tbl .gt_subtitle { color: #333333; font-size: 85%; font-weight: initial; padding-top: 3px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; border-top-color: #FFFFFF; border-top-width: 0; }
 #pb_tbl .gt_heading { background-color: #FFFFFF; text-align: left; border-bottom-color: #FFFFFF; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; }
 #pb_tbl .gt_bottom_border { border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; }
 #pb_tbl .gt_col_headings { border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; }
 #pb_tbl .gt_col_heading { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: normal; text-transform: inherit; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; vertical-align: bottom; padding-top: 5px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; overflow-x: hidden; }
 #pb_tbl .gt_column_spanner_outer { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: normal; text-transform: inherit; padding-top: 0; padding-bottom: 0; padding-left: 4px; padding-right: 4px; }
 #pb_tbl .gt_column_spanner_outer:first-child { padding-left: 0; }
 #pb_tbl .gt_column_spanner_outer:last-child { padding-right: 0; }
 #pb_tbl .gt_column_spanner { border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; vertical-align: bottom; padding-top: 5px; padding-bottom: 5px; overflow-x: hidden; display: inline-block; width: 100%; }
 #pb_tbl .gt_spanner_row { border-bottom-style: hidden; }
 #pb_tbl .gt_group_heading { padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; text-transform: inherit; border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; vertical-align: middle; text-align: left; }
 #pb_tbl .gt_empty_group_heading { padding: 0.5px; color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; vertical-align: middle; }
 #pb_tbl .gt_from_md> :first-child { margin-top: 0; }
 #pb_tbl .gt_from_md> :last-child { margin-bottom: 0; }
 #pb_tbl .gt_row { padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; margin: 10px; border-top-style: solid; border-top-width: 1px; border-top-color: #D3D3D3; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; vertical-align: middle; overflow-x: hidden; }
 #pb_tbl .gt_stub { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; text-transform: inherit; border-right-style: solid; border-right-width: 2px; border-right-color: #D3D3D3; padding-left: 5px; padding-right: 5px; }
 #pb_tbl .gt_stub_row_group { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; text-transform: inherit; border-right-style: solid; border-right-width: 2px; border-right-color: #D3D3D3; padding-left: 5px; padding-right: 5px; vertical-align: top; }
 #pb_tbl .gt_row_group_first td { border-top-width: 2px; }
 #pb_tbl .gt_row_group_first th { border-top-width: 2px; }
 #pb_tbl .gt_striped { color: #333333; background-color: #F4F4F4; }
 #pb_tbl .gt_table_body { border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; }
 #pb_tbl .gt_summary_row { color: #333333; background-color: #FFFFFF; text-transform: inherit; padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; }
 #pb_tbl .gt_first_summary_row { border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; }
 #pb_tbl .gt_last_summary_row_top { border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; }
 #pb_tbl .gt_grand_summary_row { color: #333333; background-color: #FFFFFF; text-transform: inherit; padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; }
 #pb_tbl .gt_first_grand_summary_row_bottom { border-top-style: double; border-top-width: 6px; border-top-color: #D3D3D3; }
 #pb_tbl .gt_last_grand_summary_row_top { border-bottom-style: double; border-bottom-width: 6px; border-bottom-color: #D3D3D3; }
 #pb_tbl .gt_sourcenotes { color: #333333; background-color: #FFFFFF; border-bottom-style: none; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; }
 #pb_tbl .gt_sourcenote { font-size: 90%; padding-top: 4px; padding-bottom: 4px; padding-left: 5px; padding-right: 5px; text-align: left; }
 #pb_tbl .gt_left { text-align: left; }
 #pb_tbl .gt_center { text-align: center; }
 #pb_tbl .gt_right { text-align: right; font-variant-numeric: tabular-nums; }
 #pb_tbl .gt_font_normal { font-weight: normal; }
 #pb_tbl .gt_font_bold { font-weight: bold; }
 #pb_tbl .gt_font_italic { font-style: italic; }
 #pb_tbl .gt_super { font-size: 65%; }
 #pb_tbl .gt_footnotes { color: font-color(#FFFFFF); background-color: #FFFFFF; border-bottom-style: none; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; }
 #pb_tbl .gt_footnote { margin: 0px; font-size: 90%; padding-top: 4px; padding-bottom: 4px; padding-left: 5px; padding-right: 5px; }
 #pb_tbl .gt_sourcenotes { color: #333333; background-color: #FFFFFF; border-bottom-style: none; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; }
 #pb_tbl .gt_sourcenote { font-size: 90%; padding-top: 4px; padding-bottom: 4px; padding-left: 5px; padding-right: 5px; text-align: left; }
 #pb_tbl .gt_footnote_marks { font-size: 75%; vertical-align: 0.4em; position: initial; }
 #pb_tbl .gt_asterisk { font-size: 100%; vertical-align: 0; }
 
</style>
<table style="table-layout: fixed;; width: 0px" class="gt_table" data-quarto-disable-processing="true" data-quarto-bootstrap="false">
<colgroup>
  <col style="width:4px;">
  <col style="width:35px;">
  <col style="width:190px;">
  <col style="width:120px;">
  <col style="width:120px;">
  <col style="width:50px;">
  <col style="width:50px;">
  <col style="width:60px;">
  <col style="width:60px;">
  <col style="width:60px;">
  <col style="width:30px;">
  <col style="width:30px;">
  <col style="width:30px;">
  <col style="width:65px;">
</colgroup>

<thead>

  <tr class="gt_heading">
    <td colspan="14" class="gt_heading gt_title gt_font_normal" style="color: #444444;font-size: 28px;text-align: left;font-weight: bold; text-align: left;">Pointblank Validation</td>
  </tr>
  <tr class="gt_heading">
    <td colspan="14" class="gt_heading gt_subtitle gt_font_normal gt_bottom_border" style="text-align: left;"><div><span style="text-decoration-style: solid; text-decoration-color: #ADD8E6; text-decoration-line: underline; text-underline-position: under; color: #333333; font-variant-numeric: tabular-nums; padding-left: 4px; margin-right: 5px; padding-right: 2px;">2026-07-22|23:16:17</span><div style="padding-top: 10px; padding-bottom: 5px;"><span style="background-color: #0075FF; color: #FFFFFF; padding: 0.5em 0.5em; position: inherit; text-transform: uppercase; margin: 5px 10px 5px 0px; border: solid 1px #0075FF; font-weight: bold; padding: 2px 10px 2px 10px; font-size: 10px;">Polars</span></div></div></td>
  </tr>
<tr class="gt_col_headings">
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-status_color"></th>
  <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-i"></th>
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-type_upd">STEP</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-columns_upd">COLUMNS</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-values_upd">VALUES</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-tbl">TBL</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-eval">EVAL</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-test_units">UNITS</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-pass">PASS</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-fail">FAIL</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-w_upd">W</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-e_upd">E</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-c_upd">C</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-extract_upd">EXT</th>
</tr>
</thead>
<tbody class="gt_table_body">
  <tr>
    <td style="height: 40px; background-color: #EBBC14; color: transparent;font-size: 0px;" class="gt_row gt_left">#EBBC14</td>
    <td style="height: 40px; color: #666666;font-size: 13px;font-weight: bold;" class="gt_row gt_right">1</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_left">
        <div style="margin: 0; padding: 0; display: inline-block; height: 30px; vertical-align: middle; width: 16%;">
            <!--?xml version="1.0" encoding="UTF-8"?--><!--?xml version="1.0" encoding="UTF-8"?-->
<svg width="30px" height="30px" viewbox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" style="background: #FFFFFF;">
    <title>col_vals_gt</title>
    <g id="Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="col_vals_gt" transform="translate(1.500000, 1.500000)" fill-rule="nonzero">
            <path d="M55,0 C57.4852813,0 59.7352813,1.00735931 61.363961,2.63603897 C62.9926407,4.26471863 64,6.51471863 64,9 L64,9 L64,64 L9,64 C6.51471862,64 4.26471862,62.9926407 2.63603897,61.363961 C1.00735931,59.7352814 0,57.4852814 0,55 L0,55 L0,9 C0,6.51471863 1.00735931,4.26471863 2.63603897,2.63603897 C4.26471862,1.00735931 6.51471862,0 9,0 L9,0 L55,0 Z" id="rectangle" stroke="#000000" stroke-width="2" fill="#FFFFFF"></path>
            <path d="M48.7619048,10 L15.2380953,10 C12.3466667,10 10,12.3466667 10,15.2380952 L10,48.7619048 C10,51.6533333 12.3466667,54 15.2380953,54 L48.7619048,54 C51.6533333,54 54,51.6533333 54,48.7619048 L54,15.2380952 C54,12.3466667 51.6533333,10 48.7619048,10 Z M25.2638095,44.3828571 L24.0695238,42.6647619 L39.5847619,32 L24.0695238,21.3352381 L25.2638095,19.6171429 L43.2828572,32 L25.2638095,44.3828571 Z" id="greater_than" fill="#000000"></path>
        </g>
    </g>
</svg>
        </div>
        <div style="font-family: 'IBM Plex Mono', monospace, courier; color: black; font-size: 11px; display: inline-block; vertical-align: middle;">
            <div>col_vals_gt()</div>
        </div>
        
        </td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">d</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">1000</td>
    <td style="height: 40px; background-color: #FCFCFC; border-left: 1px solid #D3D3D3;" class="gt_row gt_center"><svg width="25px" height="25px" viewbox="0 0 25 25" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" style="vertical-align: middle;">
    <g id="unchanged" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="unchanged" transform="translate(0.500000, 0.570147)">
            <rect id="Rectangle" x="0.125132506" y="0" width="23.749735" height="23.7894737"></rect>
            <path d="M5.80375046,8.18194736 C3.77191832,8.18194736 2.11875046,9.83495328 2.11875046,11.8669474 C2.11875046,13.8989414 3.77191832,15.5519474 5.80375046,15.5519474 C7.8355826,15.5519474 9.48875046,13.8989414 9.48875046,11.8669474 C9.48875046,9.83495328 7.83552863,8.18194736 5.80375046,8.18194736 Z M5.80375046,14.814915 C4.17821997,14.814915 2.85578285,13.4924778 2.85578285,11.8669474 C2.85578285,10.2414169 4.17821997,8.91897975 5.80375046,8.91897975 C7.42928095,8.91897975 8.75171807,10.2414169 8.75171807,11.8669474 C8.75171807,13.4924778 7.42928095,14.814915 5.80375046,14.814915 Z" id="Shape" fill="#000000" fill-rule="nonzero"></path>
            <path d="M13.9638189,8.699335 C13.9364621,8.70430925 13.9091059,8.71176968 13.8842359,8.71923074 C13.7822704,8.73663967 13.6877654,8.77643115 13.6056956,8.83860518 L10.2433156,11.3852598 C10.0766886,11.5046343 9.97720993,11.6986181 9.97720993,11.9025491 C9.97720993,12.1064807 10.0766886,12.3004639 10.2433156,12.4198383 L13.6056956,14.966493 C13.891697,15.1803725 14.2970729,15.1231721 14.5109517,14.8371707 C14.7248313,14.5511692 14.6676309,14.145794 14.3816294,13.9319145 L12.5313257,12.5392127 L21.8812495,12.5392127 L21.8812495,11.2658854 L12.5313257,11.2658854 L14.3816294,9.87318364 C14.6377872,9.71650453 14.7497006,9.40066014 14.6477351,9.11714553 C14.5482564,8.83363156 14.262255,8.65954352 13.9638189,8.699335 Z" id="arrow" fill="#000000" transform="translate(15.929230, 11.894737) rotate(-180.000000) translate(-15.929230, -11.894737) "></path>
        </g>
    </g>
</svg></td>
    <td style="height: 40px; background-color: #FCFCFC; border-right: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color:#4CA64C;">✓</span></td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_right">13</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5;" class="gt_row gt_right">7<br>0.54</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5;" class="gt_row gt_right">6<br>0.46</td>
    <td style="height: 40px; background-color: #FCFCFC; border-left: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color: #AAAAAA;">●</span></td>
    <td style="height: 40px; background-color: #FCFCFC;" class="gt_row gt_center"><span style="color: #EBBC14;">●</span></td>
    <td style="height: 40px; background-color: #FCFCFC; border-right: 1px solid #D3D3D3;" class="gt_row gt_center">—</td>
    <td style="height: 40px;" class="gt_row gt_center"><a href="data:text/csv;base64,X3Jvd19udW1fLGRhdGVfdGltZSxkYXRlLGEsYixjLGQsZSxmCjUsMjAxNi0wMS0wOVQxMjozNjowMC4wMDAwMDAsMjAxNi0wMS0wOSw4LDMtbGRtLTAzOCw3LDI4My45NCx0cnVlLGxvdwo3LDIwMTYtMDEtMTVUMTg6NDY6MDAuMDAwMDAwLDIwMTYtMDEtMTUsNywxLWtudy0wOTMsMyw4NDMuMzQsdHJ1ZSxoaWdoCjksMjAxNi0wMS0yMFQwNDozMDowMC4wMDAwMDAsMjAxNi0wMS0yMCwzLDUtYmNlLTY0Miw5LDgzNy45MyxmYWxzZSxoaWdoCjEwLDIwMTYtMDEtMjBUMDQ6MzA6MDAuMDAwMDAwLDIwMTYtMDEtMjAsMyw1LWJjZS02NDIsOSw4MzcuOTMsZmFsc2UsaGlnaAoxMSwyMDE2LTAxLTI2VDIwOjA3OjAwLjAwMDAwMCwyMDE2LTAxLTI2LDQsMi1kbXgtMDEwLDcsODMzLjk4LHRydWUsbG93CjEyLDIwMTYtMDEtMjhUMDI6NTE6MDAuMDAwMDAwLDIwMTYtMDEtMjgsMiw3LWRteC0wMTAsOCwxMDguMzQsZmFsc2UsbG93Cg==" download="extract_0001.csv"><button style="background-color: #67C2DC; color: #FFFFFF; border: none; padding: 5px; font-weight: bold; cursor: pointer; border-radius: 4px;">CSV</button></a></td>
  </tr>
</tbody>

</table>

</div>
</div>
</div>
<p>In this example:</p>
<ol type="1">
<li>we’re validating that values in column “d” are greater than 1000</li>
<li>we set a warning threshold of 1 (triggers if any values fail)</li>
<li>we define an action that prints a warning message when the threshold is exceeded</li>
</ol>
<p>Since several values in column <code>d</code> are below <code>1000</code>, our ‘warning’ action is triggered and the message appears above the validation report.</p>
</section>
<section id="the-anatomy-of-actions" class="level1">
<h1>The Anatomy of Actions</h1>
<p>The <a href="`Actions`"><code>Actions</code></a> class is a very important piece of Pointblank’s response system. Actions can be defined in several ways:</p>
<ol type="1">
<li><strong>String messages</strong>: simple text output to the console</li>
<li><strong>Callable functions</strong>: custom Python functions that execute when triggered</li>
<li><strong>Lists of strings/callables</strong>: multiple actions that execute in sequence</li>
</ol>
<p>Actions can be paired with different severity levels:</p>
<ul>
<li>‘warning’: for minor issues that need attention</li>
<li>‘error’: for more significant problems</li>
<li>‘critical’: for severe issues that require immediate action</li>
</ul>
<p>The <code>v0.8.0</code> release added two (very) useful new parameters:</p>
<ul>
<li><code>default=</code>: apply the same action to all threshold levels</li>
<li><code>highest_only=</code>: only trigger the action for the highest threshold level reached (<code>True</code> by default)</li>
</ul>
<p>Let’s see how these work in practice:</p>
<div id="2fdb9e71" class="cell" data-execution_count="3">
<div class="sourceCode cell-code" id="cb3" style="background: #f1f3f5;"><pre class="sourceCode python"><code class="sourceCode python"><span id="cb3-1"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">def</span> log_problem():</span>
<span id="cb3-2">    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Simple action that runs when thresholds are exceeded</span></span>
<span id="cb3-3">    <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">print</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"A validation threshold has been exceeded!"</span>)</span>
<span id="cb3-4"></span>
<span id="cb3-5">validation_2 <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> (</span>
<span id="cb3-6">    pb.Validate(</span>
<span id="cb3-7">        data<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>pb.load_dataset(dataset<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"game_revenue"</span>),</span>
<span id="cb3-8">        thresholds<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>pb.Thresholds(warning<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.05</span>, error<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.10</span>, critical<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.15</span>),</span>
<span id="cb3-9">        actions<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>pb.Actions(default<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>log_problem)  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Apply this action to all threshold levels</span></span>
<span id="cb3-10">    )</span>
<span id="cb3-11">    .col_vals_regex(</span>
<span id="cb3-12">        columns<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"player_id"</span>,</span>
<span id="cb3-13">        pattern<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="vs" style="color: #20794D;
background-color: null;
font-style: inherit;">r"</span><span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;">[A-Z]</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">{12}</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">\d</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">{3}</span><span class="vs" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span></span>
<span id="cb3-14">    )</span>
<span id="cb3-15">    .col_vals_gt(</span>
<span id="cb3-16">        columns<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"item_revenue"</span>,</span>
<span id="cb3-17">        value<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.10</span></span>
<span id="cb3-18">    )</span>
<span id="cb3-19">    .interrogate()</span>
<span id="cb3-20">)</span>
<span id="cb3-21"></span>
<span id="cb3-22">validation_2</span></code></pre></div>
<div class="cell-output cell-output-stdout">
<pre><code>A validation threshold has been exceeded!</code></pre>
</div>
<div class="cell-output cell-output-display" data-execution_count="3">
<div id="pb_tbl" style="padding-left:0px;padding-right:0px;padding-top:10px;padding-bottom:10px;overflow-x:auto;overflow-y:auto;width:auto;height:auto;">
<style>
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono&display=swap');
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Sans&display=swap');
#pb_tbl table {
          font-family: 'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Helvetica Neue', 'Fira Sans', 'Droid Sans', Arial, sans-serif;
          -webkit-font-smoothing: antialiased;
          -moz-osx-font-smoothing: grayscale;
        }

#pb_tbl thead, tbody, tfoot, tr, td, th { border-style: none; }
 tr { background-color: transparent; }
#pb_tbl p { margin: 0; padding: 0; }
 #pb_tbl .gt_table { display: table; border-collapse: collapse; line-height: normal; margin-left: auto; margin-right: auto; color: #333333; font-size: 90%; font-weight: normal; font-style: normal; background-color: #FFFFFF; width: auto; border-top-style: solid; border-top-width: 2px; border-top-color: #A8A8A8; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #A8A8A8; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; }
 #pb_tbl .gt_caption { padding-top: 4px; padding-bottom: 4px; }
 #pb_tbl .gt_title { color: #333333; font-size: 125%; font-weight: initial; padding-top: 4px; padding-bottom: 4px; padding-left: 5px; padding-right: 5px; border-bottom-color: #FFFFFF; border-bottom-width: 0; }
 #pb_tbl .gt_subtitle { color: #333333; font-size: 85%; font-weight: initial; padding-top: 3px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; border-top-color: #FFFFFF; border-top-width: 0; }
 #pb_tbl .gt_heading { background-color: #FFFFFF; text-align: left; border-bottom-color: #FFFFFF; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; }
 #pb_tbl .gt_bottom_border { border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; }
 #pb_tbl .gt_col_headings { border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; }
 #pb_tbl .gt_col_heading { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: normal; text-transform: inherit; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; vertical-align: bottom; padding-top: 5px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; overflow-x: hidden; }
 #pb_tbl .gt_column_spanner_outer { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: normal; text-transform: inherit; padding-top: 0; padding-bottom: 0; padding-left: 4px; padding-right: 4px; }
 #pb_tbl .gt_column_spanner_outer:first-child { padding-left: 0; }
 #pb_tbl .gt_column_spanner_outer:last-child { padding-right: 0; }
 #pb_tbl .gt_column_spanner { border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; vertical-align: bottom; padding-top: 5px; padding-bottom: 5px; overflow-x: hidden; display: inline-block; width: 100%; }
 #pb_tbl .gt_spanner_row { border-bottom-style: hidden; }
 #pb_tbl .gt_group_heading { padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; text-transform: inherit; border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; vertical-align: middle; text-align: left; }
 #pb_tbl .gt_empty_group_heading { padding: 0.5px; color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; vertical-align: middle; }
 #pb_tbl .gt_from_md> :first-child { margin-top: 0; }
 #pb_tbl .gt_from_md> :last-child { margin-bottom: 0; }
 #pb_tbl .gt_row { padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; margin: 10px; border-top-style: solid; border-top-width: 1px; border-top-color: #D3D3D3; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; vertical-align: middle; overflow-x: hidden; }
 #pb_tbl .gt_stub { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; text-transform: inherit; border-right-style: solid; border-right-width: 2px; border-right-color: #D3D3D3; padding-left: 5px; padding-right: 5px; }
 #pb_tbl .gt_stub_row_group { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; text-transform: inherit; border-right-style: solid; border-right-width: 2px; border-right-color: #D3D3D3; padding-left: 5px; padding-right: 5px; vertical-align: top; }
 #pb_tbl .gt_row_group_first td { border-top-width: 2px; }
 #pb_tbl .gt_row_group_first th { border-top-width: 2px; }
 #pb_tbl .gt_striped { color: #333333; background-color: #F4F4F4; }
 #pb_tbl .gt_table_body { border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; }
 #pb_tbl .gt_summary_row { color: #333333; background-color: #FFFFFF; text-transform: inherit; padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; }
 #pb_tbl .gt_first_summary_row { border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; }
 #pb_tbl .gt_last_summary_row_top { border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; }
 #pb_tbl .gt_grand_summary_row { color: #333333; background-color: #FFFFFF; text-transform: inherit; padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; }
 #pb_tbl .gt_first_grand_summary_row_bottom { border-top-style: double; border-top-width: 6px; border-top-color: #D3D3D3; }
 #pb_tbl .gt_last_grand_summary_row_top { border-bottom-style: double; border-bottom-width: 6px; border-bottom-color: #D3D3D3; }
 #pb_tbl .gt_sourcenotes { color: #333333; background-color: #FFFFFF; border-bottom-style: none; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; }
 #pb_tbl .gt_sourcenote { font-size: 90%; padding-top: 4px; padding-bottom: 4px; padding-left: 5px; padding-right: 5px; text-align: left; }
 #pb_tbl .gt_left { text-align: left; }
 #pb_tbl .gt_center { text-align: center; }
 #pb_tbl .gt_right { text-align: right; font-variant-numeric: tabular-nums; }
 #pb_tbl .gt_font_normal { font-weight: normal; }
 #pb_tbl .gt_font_bold { font-weight: bold; }
 #pb_tbl .gt_font_italic { font-style: italic; }
 #pb_tbl .gt_super { font-size: 65%; }
 #pb_tbl .gt_footnotes { color: font-color(#FFFFFF); background-color: #FFFFFF; border-bottom-style: none; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; }
 #pb_tbl .gt_footnote { margin: 0px; font-size: 90%; padding-top: 4px; padding-bottom: 4px; padding-left: 5px; padding-right: 5px; }
 #pb_tbl .gt_sourcenotes { color: #333333; background-color: #FFFFFF; border-bottom-style: none; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; }
 #pb_tbl .gt_sourcenote { font-size: 90%; padding-top: 4px; padding-bottom: 4px; padding-left: 5px; padding-right: 5px; text-align: left; }
 #pb_tbl .gt_footnote_marks { font-size: 75%; vertical-align: 0.4em; position: initial; }
 #pb_tbl .gt_asterisk { font-size: 100%; vertical-align: 0; }
 
</style>
<table style="table-layout: fixed;; width: 0px" class="gt_table" data-quarto-disable-processing="true" data-quarto-bootstrap="false">
<colgroup>
  <col style="width:4px;">
  <col style="width:35px;">
  <col style="width:190px;">
  <col style="width:120px;">
  <col style="width:120px;">
  <col style="width:50px;">
  <col style="width:50px;">
  <col style="width:60px;">
  <col style="width:60px;">
  <col style="width:60px;">
  <col style="width:30px;">
  <col style="width:30px;">
  <col style="width:30px;">
  <col style="width:65px;">
</colgroup>

<thead>

  <tr class="gt_heading">
    <td colspan="14" class="gt_heading gt_title gt_font_normal" style="color: #444444;font-size: 28px;text-align: left;font-weight: bold; text-align: left;">Pointblank Validation</td>
  </tr>
  <tr class="gt_heading">
    <td colspan="14" class="gt_heading gt_subtitle gt_font_normal gt_bottom_border" style="text-align: left;"><div><span style="text-decoration-style: solid; text-decoration-color: #ADD8E6; text-decoration-line: underline; text-underline-position: under; color: #333333; font-variant-numeric: tabular-nums; padding-left: 4px; margin-right: 5px; padding-right: 2px;">2026-07-22|23:16:17</span><div style="padding-top: 10px; padding-bottom: 5px;"><span style="background-color: #0075FF; color: #FFFFFF; padding: 0.5em 0.5em; position: inherit; text-transform: uppercase; margin: 5px 10px 5px 0px; border: solid 1px #0075FF; font-weight: bold; padding: 2px 10px 2px 10px; font-size: 10px;">Polars</span><span><span style="background-color: #AAAAAA; color: white; padding: 0.5em 0.5em; position: inherit; text-transform: uppercase; margin: 5px 0px 5px 5px; border: solid 1px #AAAAAA; font-weight: bold; padding: 2px 15px 2px 15px; font-size: smaller;">WARNING</span><span style="background-color: none; color: #333333; padding: 0.5em 0.5em; position: inherit; margin: 5px 0px 5px -4px; font-weight: bold; border: solid 1px #AAAAAA; padding: 2px 15px 2px 15px; font-size: smaller; margin-right: 5px;">0.05</span><span style="background-color: #EBBC14; color: white; padding: 0.5em 0.5em; position: inherit; text-transform: uppercase; margin: 5px 0px 5px 1px; border: solid 1px #EBBC14; font-weight: bold; padding: 2px 15px 2px 15px; font-size: smaller;">ERROR</span><span style="background-color: none; color: #333333; padding: 0.5em 0.5em; position: inherit; margin: 5px 0px 5px -4px; font-weight: bold; border: solid 1px #EBBC14; padding: 2px 15px 2px 15px; font-size: smaller; margin-right: 5px;">0.1</span><span style="background-color: #FF3300; color: white; padding: 0.5em 0.5em; position: inherit; text-transform: uppercase; margin: 5px 0px 5px 1px; border: solid 1px #FF3300; font-weight: bold; padding: 2px 15px 2px 15px; font-size: smaller;">CRITICAL</span><span style="background-color: none; color: #333333; padding: 0.5em 0.5em; position: inherit; margin: 5px 0px 5px -4px; font-weight: bold; border: solid 1px #FF3300; padding: 2px 15px 2px 15px; font-size: smaller;">0.15</span></span></div></div></td>
  </tr>
<tr class="gt_col_headings">
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-status_color"></th>
  <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-i"></th>
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-type_upd">STEP</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-columns_upd">COLUMNS</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-values_upd">VALUES</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-tbl">TBL</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-eval">EVAL</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-test_units">UNITS</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-pass">PASS</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-fail">FAIL</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-w_upd">W</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-e_upd">E</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-c_upd">C</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-extract_upd">EXT</th>
</tr>
</thead>
<tbody class="gt_table_body">
  <tr>
    <td style="height: 40px; background-color: #4CA64C; color: transparent;font-size: 0px;" class="gt_row gt_left">#4CA64C</td>
    <td style="height: 40px; color: #666666;font-size: 13px;font-weight: bold;" class="gt_row gt_right">1</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_left">
        <div style="margin: 0; padding: 0; display: inline-block; height: 30px; vertical-align: middle; width: 16%;">
            <!--?xml version="1.0" encoding="UTF-8"?--><!--?xml version="1.0" encoding="UTF-8"?-->
<svg width="30px" height="30px" viewbox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink">
    <title>col_vals_regex</title>
    <g id="Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="col_vals_regex" transform="translate(0.000000, 0.034483)">
            <path d="M56.712234,1 C59.1975153,1 61.4475153,2.00735931 63.076195,3.63603897 C64.7048747,5.26471863 65.712234,7.51471863 65.712234,10 L65.712234,10 L65.712234,65 L10.712234,65 C8.22695259,65 5.97695259,63.9926407 4.34827294,62.363961 C2.71959328,60.7352814 1.71223397,58.4852814 1.71223397,56 L1.71223397,56 L1.71223397,10 C1.71223397,7.51471863 2.71959328,5.26471863 4.34827294,3.63603897 C5.97695259,2.00735931 8.22695259,1 10.712234,1 L10.712234,1 Z" id="rectangle" stroke="#000000" stroke-width="2" fill="#FFFFFF"></path>
            <g id="regex_symbols" transform="translate(18.000000, 12.000000)" fill="#000000" fill-rule="nonzero">
                <path d="M4.17434508,33.013582 C1.94895328,33.013582 0.138006923,34.8245284 0.138006923,37.0499202 C0.138006923,39.275312 1.94895328,41.0862583 4.17434508,41.0862583 C6.39973688,41.0862583 8.21068324,39.275312 8.21068324,37.0499202 C8.21068324,34.8245284 6.39973688,33.013582 4.17434508,33.013582 Z" id="full_stop"></path>
                <path d="M23.9479718,23.3175402 L21.5628264,23.3175402 C21.2344032,23.3175402 20.9665401,23.0520067 20.9665401,22.7212538 L20.9665401,15.1022979 L14.3445004,18.8873192 C14.0626621,19.050366 13.7016292,18.952538 13.5362533,18.6706991 L12.3436806,16.6442575 C12.262157,16.506832 12.2388642,16.3437852 12.2807909,16.1900549 C12.3203879,16.0363251 12.4205455,15.9058874 12.557971,15.8266929 L19.1800101,11.9880994 L12.557971,8.15183511 C12.4205455,8.07264112 12.3203879,7.93987439 12.2807909,7.78614401 C12.2388642,7.63241423 12.262157,7.46936689 12.3413509,7.33194137 L13.5339237,5.30549975 C13.6993001,5.02366143 14.0626621,4.92816199 14.3445004,5.09120934 L20.9665401,8.87390091 L20.9665401,1.25494501 C20.9665401,0.926521818 21.2344032,0.658658658 21.5628264,0.658658658 L23.9479718,0.658658658 C24.2787247,0.658658658 24.5442582,0.926521818 24.5442582,1.25494501 L24.5442582,8.87390091 L31.1662979,5.09120934 C31.4481362,4.92816199 31.8091691,5.02366143 31.9745455,5.30549975 L33.1671182,7.33194137 C33.2486413,7.46936689 33.2719341,7.63241423 33.2300074,7.78614401 C33.1904104,7.93987439 33.0902528,8.07264112 32.9528278,8.15183511 L26.3307882,11.9880994 L32.9528278,15.8243638 C33.0879237,15.9058874 33.1880813,16.0363251 33.2300074,16.1900549 C33.269605,16.3437852 33.2486413,16.506832 33.1671182,16.6442575 L31.9745455,18.6706991 C31.8091691,18.952538 31.4481362,19.050366 31.1662979,18.8849895 L24.5442582,15.1022979 L24.5442582,22.7212538 C24.5442582,23.0520067 24.2787247,23.3175402 23.9479718,23.3175402 Z" id="asterisk"></path>
            </g>
        </g>
    </g>
</svg>
        </div>
        <div style="font-family: 'IBM Plex Mono', monospace, courier; color: black; font-size: 11px; display: inline-block; vertical-align: middle;">
            <div>col_vals_regex()</div>
        </div>
        
        </td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">player_id</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">[A-Z]{12}\d{3}</td>
    <td style="height: 40px; background-color: #FCFCFC; border-left: 1px solid #D3D3D3;" class="gt_row gt_center"><svg width="25px" height="25px" viewbox="0 0 25 25" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" style="vertical-align: middle;">
    <g id="unchanged" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="unchanged" transform="translate(0.500000, 0.570147)">
            <rect id="Rectangle" x="0.125132506" y="0" width="23.749735" height="23.7894737"></rect>
            <path d="M5.80375046,8.18194736 C3.77191832,8.18194736 2.11875046,9.83495328 2.11875046,11.8669474 C2.11875046,13.8989414 3.77191832,15.5519474 5.80375046,15.5519474 C7.8355826,15.5519474 9.48875046,13.8989414 9.48875046,11.8669474 C9.48875046,9.83495328 7.83552863,8.18194736 5.80375046,8.18194736 Z M5.80375046,14.814915 C4.17821997,14.814915 2.85578285,13.4924778 2.85578285,11.8669474 C2.85578285,10.2414169 4.17821997,8.91897975 5.80375046,8.91897975 C7.42928095,8.91897975 8.75171807,10.2414169 8.75171807,11.8669474 C8.75171807,13.4924778 7.42928095,14.814915 5.80375046,14.814915 Z" id="Shape" fill="#000000" fill-rule="nonzero"></path>
            <path d="M13.9638189,8.699335 C13.9364621,8.70430925 13.9091059,8.71176968 13.8842359,8.71923074 C13.7822704,8.73663967 13.6877654,8.77643115 13.6056956,8.83860518 L10.2433156,11.3852598 C10.0766886,11.5046343 9.97720993,11.6986181 9.97720993,11.9025491 C9.97720993,12.1064807 10.0766886,12.3004639 10.2433156,12.4198383 L13.6056956,14.966493 C13.891697,15.1803725 14.2970729,15.1231721 14.5109517,14.8371707 C14.7248313,14.5511692 14.6676309,14.145794 14.3816294,13.9319145 L12.5313257,12.5392127 L21.8812495,12.5392127 L21.8812495,11.2658854 L12.5313257,11.2658854 L14.3816294,9.87318364 C14.6377872,9.71650453 14.7497006,9.40066014 14.6477351,9.11714553 C14.5482564,8.83363156 14.262255,8.65954352 13.9638189,8.699335 Z" id="arrow" fill="#000000" transform="translate(15.929230, 11.894737) rotate(-180.000000) translate(-15.929230, -11.894737) "></path>
        </g>
    </g>
</svg></td>
    <td style="height: 40px; background-color: #FCFCFC; border-right: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color:#4CA64C;">✓</span></td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_right">2000</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5;" class="gt_row gt_right">2000<br>1.00</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5;" class="gt_row gt_right">0<br>0.00</td>
    <td style="height: 40px; background-color: #FCFCFC; border-left: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color: #AAAAAA;">○</span></td>
    <td style="height: 40px; background-color: #FCFCFC;" class="gt_row gt_center"><span style="color: #EBBC14;">○</span></td>
    <td style="height: 40px; background-color: #FCFCFC; border-right: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color: #FF3300;">○</span></td>
    <td style="height: 40px;" class="gt_row gt_center">—</td>
  </tr>
  <tr>
    <td style="height: 40px; background-color: #FF3300; color: transparent;font-size: 0px;" class="gt_row gt_left">#FF3300</td>
    <td style="height: 40px; color: #666666;font-size: 13px;font-weight: bold;" class="gt_row gt_right">2</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_left">
        <div style="margin: 0; padding: 0; display: inline-block; height: 30px; vertical-align: middle; width: 16%;">
            <!--?xml version="1.0" encoding="UTF-8"?--><!--?xml version="1.0" encoding="UTF-8"?-->
<svg width="30px" height="30px" viewbox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" style="background: #FFFFFF;">
    <title>col_vals_gt</title>
    <g id="Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="col_vals_gt" transform="translate(1.500000, 1.500000)" fill-rule="nonzero">
            <path d="M55,0 C57.4852813,0 59.7352813,1.00735931 61.363961,2.63603897 C62.9926407,4.26471863 64,6.51471863 64,9 L64,9 L64,64 L9,64 C6.51471862,64 4.26471862,62.9926407 2.63603897,61.363961 C1.00735931,59.7352814 0,57.4852814 0,55 L0,55 L0,9 C0,6.51471863 1.00735931,4.26471863 2.63603897,2.63603897 C4.26471862,1.00735931 6.51471862,0 9,0 L9,0 L55,0 Z" id="rectangle" stroke="#000000" stroke-width="2" fill="#FFFFFF"></path>
            <path d="M48.7619048,10 L15.2380953,10 C12.3466667,10 10,12.3466667 10,15.2380952 L10,48.7619048 C10,51.6533333 12.3466667,54 15.2380953,54 L48.7619048,54 C51.6533333,54 54,51.6533333 54,48.7619048 L54,15.2380952 C54,12.3466667 51.6533333,10 48.7619048,10 Z M25.2638095,44.3828571 L24.0695238,42.6647619 L39.5847619,32 L24.0695238,21.3352381 L25.2638095,19.6171429 L43.2828572,32 L25.2638095,44.3828571 Z" id="greater_than" fill="#000000"></path>
        </g>
    </g>
</svg>
        </div>
        <div style="font-family: 'IBM Plex Mono', monospace, courier; color: black; font-size: 11px; display: inline-block; vertical-align: middle;">
            <div>col_vals_gt()</div>
        </div>
        
        </td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">item_revenue</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">0.1</td>
    <td style="height: 40px; background-color: #FCFCFC; border-left: 1px solid #D3D3D3;" class="gt_row gt_center"><svg width="25px" height="25px" viewbox="0 0 25 25" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" style="vertical-align: middle;">
    <g id="unchanged" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="unchanged" transform="translate(0.500000, 0.570147)">
            <rect id="Rectangle" x="0.125132506" y="0" width="23.749735" height="23.7894737"></rect>
            <path d="M5.80375046,8.18194736 C3.77191832,8.18194736 2.11875046,9.83495328 2.11875046,11.8669474 C2.11875046,13.8989414 3.77191832,15.5519474 5.80375046,15.5519474 C7.8355826,15.5519474 9.48875046,13.8989414 9.48875046,11.8669474 C9.48875046,9.83495328 7.83552863,8.18194736 5.80375046,8.18194736 Z M5.80375046,14.814915 C4.17821997,14.814915 2.85578285,13.4924778 2.85578285,11.8669474 C2.85578285,10.2414169 4.17821997,8.91897975 5.80375046,8.91897975 C7.42928095,8.91897975 8.75171807,10.2414169 8.75171807,11.8669474 C8.75171807,13.4924778 7.42928095,14.814915 5.80375046,14.814915 Z" id="Shape" fill="#000000" fill-rule="nonzero"></path>
            <path d="M13.9638189,8.699335 C13.9364621,8.70430925 13.9091059,8.71176968 13.8842359,8.71923074 C13.7822704,8.73663967 13.6877654,8.77643115 13.6056956,8.83860518 L10.2433156,11.3852598 C10.0766886,11.5046343 9.97720993,11.6986181 9.97720993,11.9025491 C9.97720993,12.1064807 10.0766886,12.3004639 10.2433156,12.4198383 L13.6056956,14.966493 C13.891697,15.1803725 14.2970729,15.1231721 14.5109517,14.8371707 C14.7248313,14.5511692 14.6676309,14.145794 14.3816294,13.9319145 L12.5313257,12.5392127 L21.8812495,12.5392127 L21.8812495,11.2658854 L12.5313257,11.2658854 L14.3816294,9.87318364 C14.6377872,9.71650453 14.7497006,9.40066014 14.6477351,9.11714553 C14.5482564,8.83363156 14.262255,8.65954352 13.9638189,8.699335 Z" id="arrow" fill="#000000" transform="translate(15.929230, 11.894737) rotate(-180.000000) translate(-15.929230, -11.894737) "></path>
        </g>
    </g>
</svg></td>
    <td style="height: 40px; background-color: #FCFCFC; border-right: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color:#4CA64C;">✓</span></td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_right">2000</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5;" class="gt_row gt_right">1440<br>0.72</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5;" class="gt_row gt_right">560<br>0.28</td>
    <td style="height: 40px; background-color: #FCFCFC; border-left: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color: #AAAAAA;">●</span></td>
    <td style="height: 40px; background-color: #FCFCFC;" class="gt_row gt_center"><span style="color: #EBBC14;">●</span></td>
    <td style="height: 40px; background-color: #FCFCFC; border-right: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color: #FF3300;">●</span></td>
    <td style="height: 40px;" class="gt_row gt_center"><a href="data:text/csv;base64,X3Jvd19udW1fLHBsYXllcl9pZCxzZXNzaW9uX2lkLHNlc3Npb25fc3RhcnQsdGltZSxpdGVtX3R5cGUsaXRlbV9uYW1lLGl0ZW1fcmV2ZW51ZSxzZXNzaW9uX2R1cmF0aW9uLHN0YXJ0X2RheSxhY3F1aXNpdGlvbixjb3VudHJ5CjUsRUNQQU5PSVhMWkhGODk2LEVDUEFOT0lYTFpIRjg5Ni1oZHU5amtscywyMDE1LTAxLTAxVDExOjUwOjAyLjAwMDAwMCswMDAwLDIwMTUtMDEtMDFUMTE6NTU6MjAuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAzLDM1LjIsMjAxNS0wMS0wMSxnb29nbGUsR2VybWFueQo2LEVDUEFOT0lYTFpIRjg5NixFQ1BBTk9JWExaSEY4OTYtaGR1OWprbHMsMjAxNS0wMS0wMVQxMTo1MDowMi4wMDAwMDArMDAwMCwyMDE1LTAxLTAxVDEyOjA4OjU2LjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMDcsMzUuMiwyMDE1LTAxLTAxLGdvb2dsZSxHZXJtYW55CjcsRUNQQU5PSVhMWkhGODk2LEVDUEFOT0lYTFpIRjg5Ni1oZHU5amtscywyMDE1LTAxLTAxVDExOjUwOjAyLjAwMDAwMCswMDAwLDIwMTUtMDEtMDFUMTI6MTQ6MDguMDAwMDAwKzAwMDAsYWQsYWRfMTBzZWMsMC4wOCwzNS4yLDIwMTUtMDEtMDEsZ29vZ2xlLEdlcm1hbnkKMTAsRlhXVU9SR1lOSkFFMjcxLEZYV1VPUkdZTkpBRTI3MS1ldDdiczYzOSwyMDE1LTAxLTAxVDE1OjE3OjE4LjAwMDAwMCswMDAwLDIwMTUtMDEtMDFUMTU6MTk6MzYuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA4LDMwLjcsMjAxNS0wMS0wMSxvcmdhbmljLENhbmFkYQoxMyxGWFdVT1JHWU5KQUUyNzEsRlhXVU9SR1lOSkFFMjcxLWV0N2JzNjM5LDIwMTUtMDEtMDFUMTU6MTc6MTguMDAwMDAwKzAwMDAsMjAxNS0wMS0wMVQxNTo0Mzo0Mi4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDQsMzAuNywyMDE1LTAxLTAxLG9yZ2FuaWMsQ2FuYWRhCjE2LENQWlZNR1dRU0lPSDEzMixDUFpWTUdXUVNJT0gxMzItZnlzOXg2MnYsMjAxNS0wMS0wMVQxNTo1MjoyNC4wMDAwMDArMDAwMCwyMDE1LTAxLTAxVDE2OjA2OjEyLjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMDc3LDEzLjgsMjAxNS0wMS0wMSxjcm9zc3Byb21vLFNvdXRoIEtvcmVhCjE4LEZYV1VPUkdZTkpBRTI3MSxGWFdVT1JHWU5KQUUyNzEtN3djZGVhaXAsMjAxNS0wMS0wMVQyMjoxNzoyNy4wMDAwMDArMDAwMCwyMDE1LTAxLTAxVDIyOjIyOjU3LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wOCwxMy4xLDIwMTUtMDEtMDEsb3JnYW5pYyxDYW5hZGEKMjEsQ1BaVk1HV1FTSU9IMTMyLENQWlZNR1dRU0lPSDEzMi05M2pxbm01ZCwyMDE1LTAxLTAxVDIyOjQyOjMzLjAwMDAwMCswMDAwLDIwMTUtMDEtMDFUMjI6NDQ6MTUuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAyOCwyMC43LDIwMTUtMDEtMDEsY3Jvc3Nwcm9tbyxTb3V0aCBLb3JlYQoyNyxRSkdWT0JMQVRJSFc0NTcsUUpHVk9CTEFUSUhXNDU3LThheGg1MWJ2LDIwMTUtMDEtMDJUMDE6MDI6MDYuMDAwMDAwKzAwMDAsMjAxNS0wMS0wMlQwMToyNjowNi4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDg4LDMwLjUsMjAxNS0wMS0wMixvdGhlcl9jYW1wYWlnbixTd2VkZW4KMjksRUNQQU5PSVhMWkhGODk2LEVDUEFOT0lYTFpIRjg5Ni14ZWIxbWk0ciwyMDE1LTAxLTAyVDAyOjQxOjU3LjAwMDAwMCswMDAwLDIwMTUtMDEtMDJUMDI6NTA6MjcuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAyLDI4LjMsMjAxNS0wMS0wMSxnb29nbGUsR2VybWFueQozMyxFQ1BBTk9JWExaSEY4OTYsRUNQQU5PSVhMWkhGODk2LXhlYjFtaTRyLDIwMTUtMDEtMDJUMDI6NDE6NTcuMDAwMDAwKzAwMDAsMjAxNS0wMS0wMlQwMzowNDoxNS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDMsMjguMywyMDE1LTAxLTAxLGdvb2dsZSxHZXJtYW55CjM5LEZYV1VPUkdZTkpBRTI3MSxGWFdVT1JHWU5KQUUyNzEtOGszamJzeG8sMjAxNS0wMS0wMlQwMzo1MDoyNy4wMDAwMDArMDAwMCwyMDE1LTAxLTAyVDA0OjA0OjIxLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNSwxNS41LDIwMTUtMDEtMDEsb3JnYW5pYyxDYW5hZGEKNDAsRlhXVU9SR1lOSkFFMjcxLEZYV1VPUkdZTkpBRTI3MS16ODM0a3RmcCwyMDE1LTAxLTAyVDA4OjQyOjQwLjAwMDAwMCswMDAwLDIwMTUtMDEtMDJUMDg6NDU6NTIuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAzLDM3LjAsMjAxNS0wMS0wMSxvcmdhbmljLENhbmFkYQo0MSxGWFdVT1JHWU5KQUUyNzEsRlhXVU9SR1lOSkFFMjcxLXo4MzRrdGZwLDIwMTUtMDEtMDJUMDg6NDI6NDAuMDAwMDAwKzAwMDAsMjAxNS0wMS0wMlQwOTowMDoxNi4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDcsMzcuMCwyMDE1LTAxLTAxLG9yZ2FuaWMsQ2FuYWRhCjQzLEZYV1VPUkdZTkpBRTI3MSxGWFdVT1JHWU5KQUUyNzEtejgzNGt0ZnAsMjAxNS0wMS0wMlQwODo0Mjo0MC4wMDAwMDArMDAwMCwyMDE1LTAxLTAyVDA5OjA5OjI4LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wOCwzNy4wLDIwMTUtMDEtMDEsb3JnYW5pYyxDYW5hZGEKNDUsRlhXVU9SR1lOSkFFMjcxLEZYV1VPUkdZTkpBRTI3MS16ODM0a3RmcCwyMDE1LTAxLTAyVDA4OjQyOjQwLjAwMDAwMCswMDAwLDIwMTUtMDEtMDJUMDk6MTU6NDAuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjEsMzcuMCwyMDE1LTAxLTAxLG9yZ2FuaWMsQ2FuYWRhCjQ5LEZYV1VPUkdZTkpBRTI3MSxGWFdVT1JHWU5KQUUyNzEtM2w5Y3Y4YnMsMjAxNS0wMS0wMlQxMjoyOTo0MC4wMDAwMDArMDAwMCwyMDE1LTAxLTAyVDEyOjM1OjA0LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMywzMy4yLDIwMTUtMDEtMDEsb3JnYW5pYyxDYW5hZGEKNTAsRlhXVU9SR1lOSkFFMjcxLEZYV1VPUkdZTkpBRTI3MS0zbDljdjhicywyMDE1LTAxLTAyVDEyOjI5OjQwLjAwMDAwMCswMDAwLDIwMTUtMDEtMDJUMTI6Mzk6MzQuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAyLDMzLjIsMjAxNS0wMS0wMSxvcmdhbmljLENhbmFkYQo1MixGWFdVT1JHWU5KQUUyNzEsRlhXVU9SR1lOSkFFMjcxLTNsOWN2OGJzLDIwMTUtMDEtMDJUMTI6Mjk6NDAuMDAwMDAwKzAwMDAsMjAxNS0wMS0wMlQxMjo1OTowNC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDgsMzMuMiwyMDE1LTAxLTAxLG9yZ2FuaWMsQ2FuYWRhCjU0LENQWlZNR1dRU0lPSDEzMixDUFpWTUdXUVNJT0gxMzItNTlmNmtvaXEsMjAxNS0wMS0wMlQxNTozNzowOC4wMDAwMDArMDAwMCwyMDE1LTAxLTAyVDE1OjUwOjA4LjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMDk4LDE1LjUsMjAxNS0wMS0wMSxjcm9zc3Byb21vLFNvdXRoIEtvcmVhCjY3LEZYV1VPUkdZTkpBRTI3MSxGWFdVT1JHWU5KQUUyNzEtNXNtMTJyNHYsMjAxNS0wMS0wM1QwNTo1ODoyOS4wMDAwMDArMDAwMCwyMDE1LTAxLTAzVDA2OjE5OjQ3LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNCwzMC42LDIwMTUtMDEtMDEsb3JnYW5pYyxDYW5hZGEKNjksRlhXVU9SR1lOSkFFMjcxLEZYV1VPUkdZTkpBRTI3MS01c20xMnI0diwyMDE1LTAxLTAzVDA1OjU4OjI5LjAwMDAwMCswMDAwLDIwMTUtMDEtMDNUMDY6MjU6NTkuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA5LDMwLjYsMjAxNS0wMS0wMSxvcmdhbmljLENhbmFkYQo3MCxFQ1BBTk9JWExaSEY4OTYsRUNQQU5PSVhMWkhGODk2LWVvYndnbDRuLDIwMTUtMDEtMDNUMDY6MTE6MTAuMDAwMDAwKzAwMDAsMjAxNS0wMS0wM1QwNjoxNjoyOC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDcsMTAuNiwyMDE1LTAxLTAxLGdvb2dsZSxHZXJtYW55CjczLFFKR1ZPQkxBVElIVzQ1NyxRSkdWT0JMQVRJSFc0NTcteXp2NHBkYXcsMjAxNS0wMS0wM1QxNDozMDoxNy4wMDAwMDArMDAwMCwyMDE1LTAxLTAzVDE0OjM1OjU5LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMzMsMTIuMCwyMDE1LTAxLTAyLG90aGVyX2NhbXBhaWduLFN3ZWRlbgo3NixGS1JDSEVMWVRQQlE2MzEsRktSQ0hFTFlUUEJRNjMxLWc1amt3YXVyLDIwMTUtMDEtMDNUMjE6MzQ6NTEuMDAwMDAwKzAwMDAsMjAxNS0wMS0wM1QyMTozODozOS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDMsMTMuOSwyMDE1LTAxLTAzLG9yZ2FuaWMsTWV4aWNvCjg1LEVRVUROR1pJQ01BSzQ4MixFUVVETkdaSUNNQUs0ODItOHVheTl3NzUsMjAxNS0wMS0wNFQwMToyMTowMy4wMDAwMDArMDAwMCwyMDE1LTAxLTA0VDAxOjQwOjM5LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wOCwyNi44LDIwMTUtMDEtMDQsZ29vZ2xlLEdlcm1hbnkKOTEsRUNQQU5PSVhMWkhGODk2LEVDUEFOT0lYTFpIRjg5Ni03ejloc2FncSwyMDE1LTAxLTA0VDAzOjE1OjM0LjAwMDAwMCswMDAwLDIwMTUtMDEtMDRUMDM6MzI6NTguMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAzLDM1LjEsMjAxNS0wMS0wMSxnb29nbGUsR2VybWFueQo5MyxFQ1BBTk9JWExaSEY4OTYsRUNQQU5PSVhMWkhGODk2LTd6OWhzYWdxLDIwMTUtMDEtMDRUMDM6MTU6MzQuMDAwMDAwKzAwMDAsMjAxNS0wMS0wNFQwMzo0MzoyOC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDIsMzUuMSwyMDE1LTAxLTAxLGdvb2dsZSxHZXJtYW55Cjk4LFBNRkhWTkNVRVlMVDkxMyxQTUZIVk5DVUVZTFQ5MTMtbzhnd3hjMWQsMjAxNS0wMS0wNFQwNToxNDozOC4wMDAwMDArMDAwMCwyMDE1LTAxLTA0VDA1OjIwOjU2LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNywxNS4zLDIwMTUtMDEtMDQsb3JnYW5pYyxBdXN0cmlhCjk5LFBNRkhWTkNVRVlMVDkxMyxQTUZIVk5DVUVZTFQ5MTMtbzhnd3hjMWQsMjAxNS0wMS0wNFQwNToxNDozOC4wMDAwMDArMDAwMCwyMDE1LTAxLTA0VDA1OjIyOjM4LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNCwxNS4zLDIwMTUtMDEtMDQsb3JnYW5pYyxBdXN0cmlhCjEwMCxQTUZIVk5DVUVZTFQ5MTMsUE1GSFZOQ1VFWUxUOTEzLW84Z3d4YzFkLDIwMTUtMDEtMDRUMDU6MTQ6MzguMDAwMDAwKzAwMDAsMjAxNS0wMS0wNFQwNToyNToyNi4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDMsMTUuMywyMDE1LTAxLTA0LG9yZ2FuaWMsQXVzdHJpYQoxMDIsSllFQkNMTlVaVFhRNDU3LEpZRUJDTE5VWlRYUTQ1Ny01cnZubzFoNywyMDE1LTAxLTA0VDA5OjE1OjAwLjAwMDAwMCswMDAwLDIwMTUtMDEtMDRUMDk6MzA6MzYuMDAwMDAwKzAwMDAsYWQsYWRfMTBzZWMsMC4wNDUsMzAuMiwyMDE1LTAxLTA0LG90aGVyX2NhbXBhaWduLEVneXB0CjEwMyxKWUVCQ0xOVVpUWFE0NTcsSllFQkNMTlVaVFhRNDU3LTVydm5vMWg3LDIwMTUtMDEtMDRUMDk6MTU6MDAuMDAwMDAwKzAwMDAsMjAxNS0wMS0wNFQwOTo0NDoxOC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDUsMzAuMiwyMDE1LTAxLTA0LG90aGVyX2NhbXBhaWduLEVneXB0CjEwOCxRSkdWT0JMQVRJSFc0NTcsUUpHVk9CTEFUSUhXNDU3LW45dzFrNDI3LDIwMTUtMDEtMDRUMTY6NDE6MjMuMDAwMDAwKzAwMDAsMjAxNS0wMS0wNFQxNjo0Njo1OS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDc3LDM3LjEsMjAxNS0wMS0wMixvdGhlcl9jYW1wYWlnbixTd2VkZW4KMTIwLFpQVElITlNWRllBUTE0NixaUFRJSE5TVkZZQVExNDYtemZramhxM2ksMjAxNS0wMS0wNVQwMTo1Mzo0MC4wMDAwMDArMDAwMCwyMDE1LTAxLTA1VDAyOjAxOjUyLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNDIsMjAuMCwyMDE1LTAxLTA0LGZhY2Vib29rLE1leGljbwoxMjEsWlBUSUhOU1ZGWUFRMTQ2LFpQVElITlNWRllBUTE0Ni16ZmtqaHEzaSwyMDE1LTAxLTA1VDAxOjUzOjQwLjAwMDAwMCswMDAwLDIwMTUtMDEtMDVUMDI6MDU6MDQuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA0MiwyMC4wLDIwMTUtMDEtMDQsZmFjZWJvb2ssTWV4aWNvCjEyMixFUVVETkdaSUNNQUs0ODIsRVFVRE5HWklDTUFLNDgyLTRrdjU4OWVtLDIwMTUtMDEtMDVUMDI6MjA6MTYuMDAwMDAwKzAwMDAsMjAxNS0wMS0wNVQwMjoyMzozNC4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjA3LDI5LjgsMjAxNS0wMS0wNCxnb29nbGUsR2VybWFueQoxMjUsRVFVRE5HWklDTUFLNDgyLEVRVUROR1pJQ01BSzQ4Mi00a3Y1ODllbSwyMDE1LTAxLTA1VDAyOjIwOjE2LjAwMDAwMCswMDAwLDIwMTUtMDEtMDVUMDI6NDA6MzQuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA1LDI5LjgsMjAxNS0wMS0wNCxnb29nbGUsR2VybWFueQoxMzEsRktSQ0hFTFlUUEJRNjMxLEZLUkNIRUxZVFBCUTYzMS1qN284MWQyeCwyMDE1LTAxLTA1VDA4OjUzOjQ4LjAwMDAwMCswMDAwLDIwMTUtMDEtMDVUMDk6MjE6NDguMDAwMDAwKzAwMDAsYWQsYWRfMTBzZWMsMC4wOTYsMjkuNywyMDE1LTAxLTAzLG9yZ2FuaWMsTWV4aWNvCjEzNixFQ1BBTk9JWExaSEY4OTYsRUNQQU5PSVhMWkhGODk2LXpqN3B4bmN0LDIwMTUtMDEtMDVUMDk6MTM6MDMuMDAwMDAwKzAwMDAsMjAxNS0wMS0wNVQwOTozMjo0NS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMSwyOC4xLDIwMTUtMDEtMDEsZ29vZ2xlLEdlcm1hbnkKMTM4LFpMUVhPQkFUVlBVTjM0NixaTFFYT0JBVFZQVU4zNDYtcDM5bmVzNXEsMjAxNS0wMS0wNVQxMDo1OToxMi4wMDAwMDArMDAwMCwyMDE1LTAxLTA1VDExOjExOjAwLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMzYsMTguOCwyMDE1LTAxLTA1LG9yZ2FuaWMsTm9yd2F5CjE0MCxaTFFYT0JBVFZQVU4zNDYsWkxRWE9CQVRWUFVOMzQ2LWE4eDRqNXFsLDIwMTUtMDEtMDVUMTI6MDg6MTkuMDAwMDAwKzAwMDAsMjAxNS0wMS0wNVQxMjoxMDo0OS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDI3LDE3LjcsMjAxNS0wMS0wNSxvcmdhbmljLE5vcndheQoxNDgsWlBUSUhOU1ZGWUFRMTQ2LFpQVElITlNWRllBUTE0Ni1wNTh5ZW51MywyMDE1LTAxLTA1VDIyOjQyOjQ3LjAwMDAwMCswMDAwLDIwMTUtMDEtMDVUMjM6MDg6MTcuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAyNCwzMy4yLDIwMTUtMDEtMDQsZmFjZWJvb2ssTWV4aWNvCjE1MSxHQVlJQkxVQ09FREo3MzIsR0FZSUJMVUNPRURKNzMyLWlrenF5YnUyLDIwMTUtMDEtMDZUMDE6MTE6MDkuMDAwMDAwKzAwMDAsMjAxNS0wMS0wNlQwMTozODo1MS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDUsMzIuNSwyMDE1LTAxLTAzLG9yZ2FuaWMsVW5pdGVkIFN0YXRlcwoxNTMsVlBESktTWlJZUVhFMTIzLFZQREpLU1pSWVFYRTEyMy1wZWt4OGZ6MSwyMDE1LTAxLTA2VDAzOjUwOjMwLjAwMDAwMCswMDAwLDIwMTUtMDEtMDZUMDQ6MDA6MDYuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAzLDM0LjUsMjAxNS0wMS0wNixnb29nbGUsQXVzdHJhbGlhCjE1NixJQ0JBVVpLR1NRUEYxNDUsSUNCQVVaS0dTUVBGMTQ1LXh1ejduNXlwLDIwMTUtMDEtMDZUMDY6MTg6NDguMDAwMDAwKzAwMDAsMjAxNS0wMS0wNlQwNjoyNToyNC4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjA4LDIzLjMsMjAxNS0wMS0wNixnb29nbGUsU291dGggQWZyaWNhCjE2MSxES09BWEVMU0ZQV0M3MjMsREtPQVhFTFNGUFdDNzIzLTI0OW1yemV2LDIwMTUtMDEtMDZUMDk6MjQ6MzUuMDAwMDAwKzAwMDAsMjAxNS0wMS0wNlQwOTozMjoyMy4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDY2LDM0LjYsMjAxNS0wMS0wNSxmYWNlYm9vayxKYXBhbgoxNjUsSllFQkNMTlVaVFhRNDU3LEpZRUJDTE5VWlRYUTQ1Ny0yNzRjejh3cSwyMDE1LTAxLTA2VDA5OjM2OjIzLjAwMDAwMCswMDAwLDIwMTUtMDEtMDZUMTA6MDM6NDcuMDAwMDAwKzAwMDAsYWQsYWRfMTBzZWMsMC4wOTUsMzMuNCwyMDE1LTAxLTA0LG90aGVyX2NhbXBhaWduLEVneXB0CjE3MCxJQ0JBVVpLR1NRUEYxNDUsSUNCQVVaS0dTUVBGMTQ1LWtiaHl2NHByLDIwMTUtMDEtMDZUMTU6MDI6MzkuMDAwMDAwKzAwMDAsMjAxNS0wMS0wNlQxNToxNDowMy4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjA4NCwyMy4zLDIwMTUtMDEtMDYsZ29vZ2xlLFNvdXRoIEFmcmljYQoxODksUE1GSFZOQ1VFWUxUOTEzLFBNRkhWTkNVRVlMVDkxMy1ycHduYXV2MSwyMDE1LTAxLTA2VDIzOjAxOjU4LjAwMDAwMCswMDAwLDIwMTUtMDEtMDZUMjM6MDI6MDQuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA4LDE3LjYsMjAxNS0wMS0wNCxvcmdhbmljLEF1c3RyaWEKMTk3LEVRVUROR1pJQ01BSzQ4MixFUVVETkdaSUNNQUs0ODIta3h2Y21xZnIsMjAxNS0wMS0wNlQyMzozMDozMC4wMDAwMDArMDAwMCwyMDE1LTAxLTA2VDIzOjQ1OjU0LjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMSwxNy40LDIwMTUtMDEtMDQsZ29vZ2xlLEdlcm1hbnkKMjAwLFpQVElITlNWRllBUTE0NixaUFRJSE5TVkZZQVExNDYtc2MzbWJ1MmUsMjAxNS0wMS0wNlQyMzo0NDo1MS4wMDAwMDArMDAwMCwyMDE1LTAxLTA2VDIzOjQ4OjMzLjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMDcyLDI3LjMsMjAxNS0wMS0wNCxmYWNlYm9vayxNZXhpY28KMjAzLFpQVElITlNWRllBUTE0NixaUFRJSE5TVkZZQVExNDYtc2MzbWJ1MmUsMjAxNS0wMS0wNlQyMzo0NDo1MS4wMDAwMDArMDAwMCwyMDE1LTAxLTA3VDAwOjA5OjI3LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNiwyNy4zLDIwMTUtMDEtMDQsZmFjZWJvb2ssTWV4aWNvCjIxMixWUERKS1NaUllRWEUxMjMsVlBESktTWlJZUVhFMTIzLWQ0eWdjenI5LDIwMTUtMDEtMDdUMDE6MTc6MjkuMDAwMDAwKzAwMDAsMjAxNS0wMS0wN1QwMToyMzoyOS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDIsMzUuMiwyMDE1LTAxLTA2LGdvb2dsZSxBdXN0cmFsaWEKMjE1LEhLSlBPTVFXTFZESTY3NCxIS0pQT01RV0xWREk2NzQta2hiaWYzeGUsMjAxNS0wMS0wN1QwMzo0ODozOC4wMDAwMDArMDAwMCwyMDE1LTAxLTA3VDAzOjUwOjAyLjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMDksMzUuMiwyMDE1LTAxLTA2LG90aGVyX2NhbXBhaWduLFNwYWluCjIxNyxIS0pQT01RV0xWREk2NzQsSEtKUE9NUVdMVkRJNjc0LWtoYmlmM3hlLDIwMTUtMDEtMDdUMDM6NDg6MzguMDAwMDAwKzAwMDAsMjAxNS0wMS0wN1QwMzo1Mzo1Ni4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjA5LDM1LjIsMjAxNS0wMS0wNixvdGhlcl9jYW1wYWlnbixTcGFpbgoyMTksR1NRSlhJT0tZTUVBNzEyLEdTUUpYSU9LWU1FQTcxMi00NXpldWxwZCwyMDE1LTAxLTA3VDA0OjQ2OjEyLjAwMDAwMCswMDAwLDIwMTUtMDEtMDdUMDQ6NTA6MzYuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAzLDM1LjIsMjAxNS0wMS0wNyxnb29nbGUsR2VybWFueQoyMjUsUUpHVk9CTEFUSUhXNDU3LFFKR1ZPQkxBVElIVzQ1Ny1jMzE3YWx3aiwyMDE1LTAxLTA3VDA1OjUzOjM2LjAwMDAwMCswMDAwLDIwMTUtMDEtMDdUMDU6NTg6NDIuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA3NywxNC4yLDIwMTUtMDEtMDIsb3RoZXJfY2FtcGFpZ24sU3dlZGVuCjIzMCxKWUVCQ0xOVVpUWFE0NTcsSllFQkNMTlVaVFhRNDU3LTl0cWlsc3c4LDIwMTUtMDEtMDdUMDc6MTU6NTMuMDAwMDAwKzAwMDAsMjAxNS0wMS0wN1QwNzozMTo0MS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDMsMzcuMywyMDE1LTAxLTA0LG90aGVyX2NhbXBhaWduLEVneXB0CjIzMixKWUVCQ0xOVVpUWFE0NTcsSllFQkNMTlVaVFhRNDU3LTl0cWlsc3c4LDIwMTUtMDEtMDdUMDc6MTU6NTMuMDAwMDAwKzAwMDAsMjAxNS0wMS0wN1QwNzo0Njo1OS4wMDAwMDArMDAwMCxhZCxhZF8xNXNlYywwLjA4LDM3LjMsMjAxNS0wMS0wNCxvdGhlcl9jYW1wYWlnbixFZ3lwdAoyMzMsSllFQkNMTlVaVFhRNDU3LEpZRUJDTE5VWlRYUTQ1Ny03b3o2NXdmYiwyMDE1LTAxLTA3VDA4OjI0OjAxLjAwMDAwMCswMDAwLDIwMTUtMDEtMDdUMDg6MzQ6MDEuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAyLDIxLjAsMjAxNS0wMS0wNCxvdGhlcl9jYW1wYWlnbixFZ3lwdAoyMzUsSllFQkNMTlVaVFhRNDU3LEpZRUJDTE5VWlRYUTQ1Ny03b3o2NXdmYiwyMDE1LTAxLTA3VDA4OjI0OjAxLjAwMDAwMCswMDAwLDIwMTUtMDEtMDdUMDg6MzQ6MzEuMDAwMDAwKzAwMDAsYWQsYWRfMTBzZWMsMC4wNSwyMS4wLDIwMTUtMDEtMDQsb3RoZXJfY2FtcGFpZ24sRWd5cHQKMjM2LEpZRUJDTE5VWlRYUTQ1NyxKWUVCQ0xOVVpUWFE0NTctN296NjV3ZmIsMjAxNS0wMS0wN1QwODoyNDowMS4wMDAwMDArMDAwMCwyMDE1LTAxLTA3VDA4OjM0OjQzLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMzUsMjEuMCwyMDE1LTAxLTA0LG90aGVyX2NhbXBhaWduLEVneXB0CjIzOCxRSkdWT0JMQVRJSFc0NTcsUUpHVk9CTEFUSUhXNDU3LW9qd21zcTgzLDIwMTUtMDEtMDdUMDg6Mjk6NDUuMDAwMDAwKzAwMDAsMjAxNS0wMS0wN1QwODozNjoyMS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDk5LDE3LjcsMjAxNS0wMS0wMixvdGhlcl9jYW1wYWlnbixTd2VkZW4KMjM5LFFKR1ZPQkxBVElIVzQ1NyxRSkdWT0JMQVRJSFc0NTctb2p3bXNxODMsMjAxNS0wMS0wN1QwODoyOTo0NS4wMDAwMDArMDAwMCwyMDE1LTAxLTA3VDA4OjQyOjU3LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wOTksMTcuNywyMDE1LTAxLTAyLG90aGVyX2NhbXBhaWduLFN3ZWRlbgoyNDYsTERTVUhDUkFZS01PMTc5LExEU1VIQ1JBWUtNTzE3OS00aWh0b3F5dSwyMDE1LTAxLTA3VDEyOjE4OjMwLjAwMDAwMCswMDAwLDIwMTUtMDEtMDdUMTI6MzQ6MDAuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA1NCwyNi4yLDIwMTUtMDEtMDcsb3RoZXJfY2FtcGFpZ24sUG9ydHVnYWwKMjUwLEtCRVFaR0ZTUlBISjQ3OSxLQkVRWkdGU1JQSEo0NzktNzY1amZ1bWssMjAxNS0wMS0wN1QxMjo0NToxMC4wMDAwMDArMDAwMCwyMDE1LTAxLTA3VDEyOjU0OjEwLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMjEsMjIuMSwyMDE1LTAxLTA3LG9yZ2FuaWMsUnVzc2lhCjI1MixLQkVRWkdGU1JQSEo0NzksS0JFUVpHRlNSUEhKNDc5LTc2NWpmdW1rLDIwMTUtMDEtMDdUMTI6NDU6MTAuMDAwMDAwKzAwMDAsMjAxNS0wMS0wN1QxMjo1NjoyMi4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDMsMjIuMSwyMDE1LTAxLTA3LG9yZ2FuaWMsUnVzc2lhCjI1MyxLSUxXWllIUlNKRUczMTYsS0lMV1pZSFJTSkVHMzE2LW90OWJ2bGFkLDIwMTUtMDEtMDdUMTM6NDg6MzQuMDAwMDAwKzAwMDAsMjAxNS0wMS0wN1QxNDowNTo1Mi4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDg4LDMwLjgsMjAxNS0wMS0wNCxvcmdhbmljLERlbm1hcmsKMjU0LFBaQk5SS1NNVUxIWDIxMyxQWkJOUktTTVVMSFgyMTMta29zdjhobGUsMjAxNS0wMS0wN1QxMzo0OToxOS4wMDAwMDArMDAwMCwyMDE1LTAxLTA3VDE0OjA0OjAxLjAwMDAwMCswMDAwLGFkLGFkXzE1c2VjLDAuMDU2LDIyLjIsMjAxNS0wMS0wNyxvcmdhbmljLEluZGlhCjI1NSxQWkJOUktTTVVMSFgyMTMsUFpCTlJLU01VTEhYMjEzLWtvc3Y4aGxlLDIwMTUtMDEtMDdUMTM6NDk6MTkuMDAwMDAwKzAwMDAsMjAxNS0wMS0wN1QxNDowNTozMS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDA0LDIyLjIsMjAxNS0wMS0wNyxvcmdhbmljLEluZGlhCjI2MixPTUNWVUFJS1NEVFI2NTEsT01DVlVBSUtTRFRSNjUxLWJkbTNvODI2LDIwMTUtMDEtMDdUMTM6NTM6NDYuMDAwMDAwKzAwMDAsMjAxNS0wMS0wN1QxNDoxNTo1Mi4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDMsMzUuNiwyMDE1LTAxLTA3LG90aGVyX2NhbXBhaWduLFVuaXRlZCBTdGF0ZXMKMjgwLFZQREpLU1pSWVFYRTEyMyxWUERKS1NaUllRWEUxMjMtYWwzOG1pcmUsMjAxNS0wMS0wN1QxNzoyMDowNy4wMDAwMDArMDAwMCwyMDE1LTAxLTA3VDE3OjI0OjA3LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNiwzMC4zLDIwMTUtMDEtMDYsZ29vZ2xlLEF1c3RyYWxpYQoyODQsVlBESktTWlJZUVhFMTIzLFZQREpLU1pSWVFYRTEyMy1hbDM4bWlyZSwyMDE1LTAxLTA3VDE3OjIwOjA3LjAwMDAwMCswMDAwLDIwMTUtMDEtMDdUMTc6MzQ6MTkuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA1LDMwLjMsMjAxNS0wMS0wNixnb29nbGUsQXVzdHJhbGlhCjI4NSxWUERKS1NaUllRWEUxMjMsVlBESktTWlJZUVhFMTIzLWFsMzhtaXJlLDIwMTUtMDEtMDdUMTc6MjA6MDcuMDAwMDAwKzAwMDAsMjAxNS0wMS0wN1QxNzo0ODowNy4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDgsMzAuMywyMDE1LTAxLTA2LGdvb2dsZSxBdXN0cmFsaWEKMjg3LFBaQk5SS1NNVUxIWDIxMyxQWkJOUktTTVVMSFgyMTMtanhud2FoNHYsMjAxNS0wMS0wN1QxNzo1NToyMi4wMDAwMDArMDAwMCwyMDE1LTAxLTA3VDE3OjU4OjQ2LjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMDMsMzAuOSwyMDE1LTAxLTA3LG9yZ2FuaWMsSW5kaWEKMjg4LFBaQk5SS1NNVUxIWDIxMyxQWkJOUktTTVVMSFgyMTMtanhud2FoNHYsMjAxNS0wMS0wN1QxNzo1NToyMi4wMDAwMDArMDAwMCwyMDE1LTAxLTA3VDE4OjEyOjA0LjAwMDAwMCswMDAwLGFkLGFkXzE1c2VjLDAuMDQsMzAuOSwyMDE1LTAxLTA3LG9yZ2FuaWMsSW5kaWEKMjg5LFBaQk5SS1NNVUxIWDIxMyxQWkJOUktTTVVMSFgyMTMtanhud2FoNHYsMjAxNS0wMS0wN1QxNzo1NToyMi4wMDAwMDArMDAwMCwyMDE1LTAxLTA3VDE4OjIyOjI4LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMiwzMC45LDIwMTUtMDEtMDcsb3JnYW5pYyxJbmRpYQoyOTEsUFpCTlJLU01VTEhYMjEzLFBaQk5SS1NNVUxIWDIxMy1qeG53YWg0diwyMDE1LTAxLTA3VDE3OjU1OjIyLjAwMDAwMCswMDAwLDIwMTUtMDEtMDdUMTg6MjQ6MjguMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAxNCwzMC45LDIwMTUtMDEtMDcsb3JnYW5pYyxJbmRpYQoyOTQsU0ZKQ1pPVEtHQUlENjQ1LFNGSkNaT1RLR0FJRDY0NS1pYmRtd3Y5NywyMDE1LTAxLTA3VDE4OjI3OjQ2LjAwMDAwMCswMDAwLDIwMTUtMDEtMDdUMTg6Mzc6NTguMDAwMDAwKzAwMDAsYWQsYWRfMTBzZWMsMC4wNywzMC4wLDIwMTUtMDEtMDYsZ29vZ2xlLEZyYW5jZQozMDAsSUNCQVVaS0dTUVBGMTQ1LElDQkFVWktHU1FQRjE0NS1wYTRkbXFpMywyMDE1LTAxLTA3VDIwOjI2OjQxLjAwMDAwMCswMDAwLDIwMTUtMDEtMDdUMjA6MzI6MDUuMDAwMDAwKzAwMDAsYWQsYWRfMTBzZWMsMC4wNTYsMTkuOSwyMDE1LTAxLTA2LGdvb2dsZSxTb3V0aCBBZnJpY2EKMzAxLElDQkFVWktHU1FQRjE0NSxJQ0JBVVpLR1NRUEYxNDUtcGE0ZG1xaTMsMjAxNS0wMS0wN1QyMDoyNjo0MS4wMDAwMDArMDAwMCwyMDE1LTAxLTA3VDIwOjQxOjM1LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMjIsMTkuOSwyMDE1LTAxLTA2LGdvb2dsZSxTb3V0aCBBZnJpY2EKMzAyLFpQVElITlNWRllBUTE0NixaUFRJSE5TVkZZQVExNDYteHQzNzZlZmQsMjAxNS0wMS0wN1QyMDo1Mzo0Mi4wMDAwMDArMDAwMCwyMDE1LTAxLTA3VDIxOjAwOjM2LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNTQsMzEuMywyMDE1LTAxLTA0LGZhY2Vib29rLE1leGljbwozMDYsS0JFUVpHRlNSUEhKNDc5LEtCRVFaR0ZTUlBISjQ3OS02eHp5bmp2ZCwyMDE1LTAxLTA3VDIyOjM3OjM3LjAwMDAwMCswMDAwLDIwMTUtMDEtMDdUMjI6NDM6NTUuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAyNywyNy40LDIwMTUtMDEtMDcsb3JnYW5pYyxSdXNzaWEKMzA4LEtCRVFaR0ZTUlBISjQ3OSxLQkVRWkdGU1JQSEo0NzktNnh6eW5qdmQsMjAxNS0wMS0wN1QyMjozNzozNy4wMDAwMDArMDAwMCwyMDE1LTAxLTA3VDIyOjU4OjEzLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMDksMjcuNCwyMDE1LTAxLTA3LG9yZ2FuaWMsUnVzc2lhCjMxMyxHQVlJQkxVQ09FREo3MzIsR0FZSUJMVUNPRURKNzMyLTlpZmd0dmFyLDIwMTUtMDEtMDdUMjI6NTY6MzkuMDAwMDAwKzAwMDAsMjAxNS0wMS0wN1QyMzoyMjo1MS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDQsMzQuNSwyMDE1LTAxLTAzLG9yZ2FuaWMsVW5pdGVkIFN0YXRlcwozMTcsSlZCWkNQS1hIRk1VNDkxLEpWQlpDUEtYSEZNVTQ5MS1ib3dnZjd0biwyMDE1LTAxLTA3VDIzOjIyOjI4LjAwMDAwMCswMDAwLDIwMTUtMDEtMDdUMjM6Mjc6NDAuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA5LDIxLjEsMjAxNS0wMS0wNyxvcmdhbmljLFVuaXRlZCBTdGF0ZXMKMzE4LEpWQlpDUEtYSEZNVTQ5MSxKVkJaQ1BLWEhGTVU0OTEtYm93Z2Y3dG4sMjAxNS0wMS0wN1QyMzoyMjoyOC4wMDAwMDArMDAwMCwyMDE1LTAxLTA3VDIzOjI4OjA0LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNywyMS4xLDIwMTUtMDEtMDcsb3JnYW5pYyxVbml0ZWQgU3RhdGVzCjMyMSxKVkJaQ1BLWEhGTVU0OTEsSlZCWkNQS1hIRk1VNDkxLWJvd2dmN3RuLDIwMTUtMDEtMDdUMjM6MjI6MjguMDAwMDAwKzAwMDAsMjAxNS0wMS0wN1QyMzozNzoyMi4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDMsMjEuMSwyMDE1LTAxLTA3LG9yZ2FuaWMsVW5pdGVkIFN0YXRlcwozMjIsUFpCTlJLU01VTEhYMjEzLFBaQk5SS1NNVUxIWDIxMy1zaXh1OG82aiwyMDE1LTAxLTA4VDAwOjM2OjEzLjAwMDAwMCswMDAwLDIwMTUtMDEtMDhUMDA6Mzk6MDcuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAyLDEyLjAsMjAxNS0wMS0wNyxvcmdhbmljLEluZGlhCjMyMyxQWkJOUktTTVVMSFgyMTMsUFpCTlJLU01VTEhYMjEzLXNpeHU4bzZqLDIwMTUtMDEtMDhUMDA6MzY6MTMuMDAwMDAwKzAwMDAsMjAxNS0wMS0wOFQwMDozOToyNS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDIyLDEyLjAsMjAxNS0wMS0wNyxvcmdhbmljLEluZGlhCjMyOSxFUVVETkdaSUNNQUs0ODIsRVFVRE5HWklDTUFLNDgyLXkzZG96d3ZzLDIwMTUtMDEtMDhUMDI6Mjg6MzguMDAwMDAwKzAwMDAsMjAxNS0wMS0wOFQwMjo0NDo1Ni4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjA5LDI5LjMsMjAxNS0wMS0wNCxnb29nbGUsR2VybWFueQozMzEsRVFVRE5HWklDTUFLNDgyLEVRVUROR1pJQ01BSzQ4Mi15M2Rvend2cywyMDE1LTAxLTA4VDAyOjI4OjM4LjAwMDAwMCswMDAwLDIwMTUtMDEtMDhUMDI6NTU6MzguMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA2LDI5LjMsMjAxNS0wMS0wNCxnb29nbGUsR2VybWFueQozMzgsUE1GSFZOQ1VFWUxUOTEzLFBNRkhWTkNVRVlMVDkxMy16eGV5cGFzbSwyMDE1LTAxLTA4VDA1OjA5OjA0LjAwMDAwMCswMDAwLDIwMTUtMDEtMDhUMDU6MTY6NDAuMDAwMDAwKzAwMDAsYWQsYWRfMTBzZWMsMC4wNyw5LjgsMjAxNS0wMS0wNCxvcmdhbmljLEF1c3RyaWEKMzM5LFZQREpLU1pSWVFYRTEyMyxWUERKS1NaUllRWEUxMjMtNTMyeGJ1dnksMjAxNS0wMS0wOFQwNTowOTo0MS4wMDAwMDArMDAwMCwyMDE1LTAxLTA4VDA1OjEzOjU5LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNiwxNy44LDIwMTUtMDEtMDYsZ29vZ2xlLEF1c3RyYWxpYQozNDgsSUNCQVVaS0dTUVBGMTQ1LElDQkFVWktHU1FQRjE0NS1mbGFveWRqNSwyMDE1LTAxLTA4VDEyOjQ4OjEzLjAwMDAwMCswMDAwLDIwMTUtMDEtMDhUMTM6MDg6MjUuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAxNDk5LDI3LjksMjAxNS0wMS0wNixnb29nbGUsU291dGggQWZyaWNhCjM1MCxQWkJOUktTTVVMSFgyMTMsUFpCTlJLU01VTEhYMjEzLW0ybjZ0azFpLDIwMTUtMDEtMDhUMTQ6MTA6MTguMDAwMDAwKzAwMDAsMjAxNS0wMS0wOFQxNDoxNjozMC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDEsMzQuMiwyMDE1LTAxLTA3LG9yZ2FuaWMsSW5kaWEKMzUzLFBaQk5SS1NNVUxIWDIxMyxQWkJOUktTTVVMSFgyMTMtbTJuNnRrMWksMjAxNS0wMS0wOFQxNDoxMDoxOC4wMDAwMDArMDAwMCwyMDE1LTAxLTA4VDE0OjM4OjA2LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMDYsMzQuMiwyMDE1LTAxLTA3LG9yZ2FuaWMsSW5kaWEKMzU0LFBaQk5SS1NNVUxIWDIxMyxQWkJOUktTTVVMSFgyMTMtbTJuNnRrMWksMjAxNS0wMS0wOFQxNDoxMDoxOC4wMDAwMDArMDAwMCwyMDE1LTAxLTA4VDE0OjM4OjA2LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMjQsMzQuMiwyMDE1LTAxLTA3LG9yZ2FuaWMsSW5kaWEKMzYxLEtCRVFaR0ZTUlBISjQ3OSxLQkVRWkdGU1JQSEo0NzktbTVpcHF3MmIsMjAxNS0wMS0wOFQxNTowNzo0NS4wMDAwMDArMDAwMCwyMDE1LTAxLTA4VDE1OjE1OjQ1LjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMDMsOS4yLDIwMTUtMDEtMDcsb3JnYW5pYyxSdXNzaWEKMzYyLEtCRVFaR0ZTUlBISjQ3OSxLQkVRWkdGU1JQSEo0NzktZjJlNXJkYWIsMjAxNS0wMS0wOFQxNjoxMTowOC4wMDAwMDArMDAwMCwyMDE1LTAxLTA4VDE2OjE1OjIwLjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMDU0LDMzLjEsMjAxNS0wMS0wNyxvcmdhbmljLFJ1c3NpYQozNjUsS0JFUVpHRlNSUEhKNDc5LEtCRVFaR0ZTUlBISjQ3OS1mMmU1cmRhYiwyMDE1LTAxLTA4VDE2OjExOjA4LjAwMDAwMCswMDAwLDIwMTUtMDEtMDhUMTY6MzU6MDIuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAxOCwzMy4xLDIwMTUtMDEtMDcsb3JnYW5pYyxSdXNzaWEKMzY5LFZQREpLU1pSWVFYRTEyMyxWUERKS1NaUllRWEUxMjMtOW5hZzRocGksMjAxNS0wMS0wOFQxODowNDo1Ni4wMDAwMDArMDAwMCwyMDE1LTAxLTA4VDE4OjE0OjQ0LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNCwzNy45LDIwMTUtMDEtMDYsZ29vZ2xlLEF1c3RyYWxpYQozNzEsVlBESktTWlJZUVhFMTIzLFZQREpLU1pSWVFYRTEyMy05bmFnNGhwaSwyMDE1LTAxLTA4VDE4OjA0OjU2LjAwMDAwMCswMDAwLDIwMTUtMDEtMDhUMTg6MjM6NTAuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA1LDM3LjksMjAxNS0wMS0wNixnb29nbGUsQXVzdHJhbGlhCjM3NyxHU1FKWElPS1lNRUE3MTIsR1NRSlhJT0tZTUVBNzEyLTVtNHZzOWtjLDIwMTUtMDEtMDhUMjA6MDg6NTIuMDAwMDAwKzAwMDAsMjAxNS0wMS0wOFQyMDoxMToyOC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDIsMzEuNiwyMDE1LTAxLTA3LGdvb2dsZSxHZXJtYW55CjM5NCxPTUNWVUFJS1NEVFI2NTEsT01DVlVBSUtTRFRSNjUxLTE0YWV1aWRrLDIwMTUtMDEtMDlUMDE6MTg6NDMuMDAwMDAwKzAwMDAsMjAxNS0wMS0wOVQwMTo0MDowMS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDQsMjQuNiwyMDE1LTAxLTA3LG90aGVyX2NhbXBhaWduLFVuaXRlZCBTdGF0ZXMKMzk1LEdTUUpYSU9LWU1FQTcxMixHU1FKWElPS1lNRUE3MTIteXVnZjZhZGgsMjAxNS0wMS0wOVQwMTo1ODo1Mi4wMDAwMDArMDAwMCwyMDE1LTAxLTA5VDAyOjExOjUyLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNywyNy43LDIwMTUtMDEtMDcsZ29vZ2xlLEdlcm1hbnkKNDAxLFFEVVpKSUVUQ0FHVzY1NCxRRFVaSklFVENBR1c2NTQtZ21pNmJvZjEsMjAxNS0wMS0wOVQwMzowNDowNS4wMDAwMDArMDAwMCwyMDE1LTAxLTA5VDAzOjEwOjA1LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNiwxMS4zLDIwMTUtMDEtMDcsZmFjZWJvb2ssU3dpdHplcmxhbmQKNDAzLEtCRVFaR0ZTUlBISjQ3OSxLQkVRWkdGU1JQSEo0NzktN3BhZWtvYzIsMjAxNS0wMS0wOVQwMzowNDo0MS4wMDAwMDArMDAwMCwyMDE1LTAxLTA5VDAzOjE3OjU5LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMywxOC41LDIwMTUtMDEtMDcsb3JnYW5pYyxSdXNzaWEKNDA2LFpQVElITlNWRllBUTE0NixaUFRJSE5TVkZZQVExNDYtNW80N2QyaWwsMjAxNS0wMS0wOVQwNToxMDozMS4wMDAwMDArMDAwMCwyMDE1LTAxLTA5VDA1OjI0OjQ5LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMjQsMzguNywyMDE1LTAxLTA0LGZhY2Vib29rLE1leGljbwo0MTEsUU5MVlJERU9YRllKODkyLFFOTFZSREVPWEZZSjg5Mi1zZjd3ZWh6OSwyMDE1LTAxLTA5VDA3OjI3OjE0LjAwMDAwMCswMDAwLDIwMTUtMDEtMDlUMDc6Mjk6MzIuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAzLDguMSwyMDE1LTAxLTA5LGNyb3NzcHJvbW8sQXVzdHJhbGlhCjQxMixTRkpDWk9US0dBSUQ2NDUsU0ZKQ1pPVEtHQUlENjQ1LWtsNnMyOXV3LDIwMTUtMDEtMDlUMDg6MTg6MTQuMDAwMDAwKzAwMDAsMjAxNS0wMS0wOVQwODoyNzo0NC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDQsMjkuOCwyMDE1LTAxLTA2LGdvb2dsZSxGcmFuY2UKNDE3LEVRVUROR1pJQ01BSzQ4MixFUVVETkdaSUNNQUs0ODItdXB2M2Q4NWgsMjAxNS0wMS0wOVQwODoyMjowMC4wMDAwMDArMDAwMCwyMDE1LTAxLTA5VDA4OjI2OjU0LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMiwzOC45LDIwMTUtMDEtMDQsZ29vZ2xlLEdlcm1hbnkKNDI2LFFOTFZSREVPWEZZSjg5MixRTkxWUkRFT1hGWUo4OTItY3Z3dGpmbzIsMjAxNS0wMS0wOVQxMzo1NDoyOS4wMDAwMDArMDAwMCwyMDE1LTAxLTA5VDEzOjU2OjU5LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMywyOC41LDIwMTUtMDEtMDksY3Jvc3Nwcm9tbyxBdXN0cmFsaWEKNDI4LFFOTFZSREVPWEZZSjg5MixRTkxWUkRFT1hGWUo4OTItY3Z3dGpmbzIsMjAxNS0wMS0wOVQxMzo1NDoyOS4wMDAwMDArMDAwMCwyMDE1LTAxLTA5VDE0OjIxOjI5LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNiwyOC41LDIwMTUtMDEtMDksY3Jvc3Nwcm9tbyxBdXN0cmFsaWEKNDM0LEdGTFlKSEFQTVpXRDYzMSxHRkxZSkhBUE1aV0Q2MzEtd2R6Mzd2Y3QsMjAxNS0wMS0wOVQxNTo1MDoxOC4wMDAwMDArMDAwMCwyMDE1LTAxLTA5VDE1OjUwOjQyLjAwMDAwMCswMDAwLGFkLGFkXzE1c2VjLDAuMDYyLDMwLjksMjAxNS0wMS0wOSxvcmdhbmljLEluZGlhCjQzNSxHRkxZSkhBUE1aV0Q2MzEsR0ZMWUpIQVBNWldENjMxLXdkejM3dmN0LDIwMTUtMDEtMDlUMTU6NTA6MTguMDAwMDAwKzAwMDAsMjAxNS0wMS0wOVQxNTo1MzowNi4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjAyNCwzMC45LDIwMTUtMDEtMDksb3JnYW5pYyxJbmRpYQo0MzYsR0ZMWUpIQVBNWldENjMxLEdGTFlKSEFQTVpXRDYzMS13ZHozN3ZjdCwyMDE1LTAxLTA5VDE1OjUwOjE4LjAwMDAwMCswMDAwLDIwMTUtMDEtMDlUMTU6NTg6MTIuMDAwMDAwKzAwMDAsYWQsYWRfMTVzZWMsMC4wNTQsMzAuOSwyMDE1LTAxLTA5LG9yZ2FuaWMsSW5kaWEKNDM3LEdGTFlKSEFQTVpXRDYzMSxHRkxZSkhBUE1aV0Q2MzEtd2R6Mzd2Y3QsMjAxNS0wMS0wOVQxNTo1MDoxOC4wMDAwMDArMDAwMCwyMDE1LTAxLTA5VDE2OjEyOjA2LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMTQsMzAuOSwyMDE1LTAxLTA5LG9yZ2FuaWMsSW5kaWEKNDM4LEdGTFlKSEFQTVpXRDYzMSxHRkxZSkhBUE1aV0Q2MzEtd2R6Mzd2Y3QsMjAxNS0wMS0wOVQxNTo1MDoxOC4wMDAwMDArMDAwMCwyMDE1LTAxLTA5VDE2OjE3OjM2LjAwMDAwMCswMDAwLGFkLGFkXzE1c2VjLDAuMDUsMzAuOSwyMDE1LTAxLTA5LG9yZ2FuaWMsSW5kaWEKNDQxLE5NUlVXSEFZSlBCUTgyNCxOTVJVV0hBWUpQQlE4MjQtdm9mM2c5eXQsMjAxNS0wMS0wOVQxODoyNzowMS4wMDAwMDArMDAwMCwyMDE1LTAxLTA5VDE4OjQwOjQ5LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNDksMzguMSwyMDE1LTAxLTA4LG9yZ2FuaWMsSG9uZyBLb25nCjQ0NCxaUFRJSE5TVkZZQVExNDYsWlBUSUhOU1ZGWUFRMTQ2LTcydWNzdmtvLDIwMTUtMDEtMDlUMTg6NTI6MTEuMDAwMDAwKzAwMDAsMjAxNS0wMS0wOVQxODo1MjoyOS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDM2LDM2LjgsMjAxNS0wMS0wNCxmYWNlYm9vayxNZXhpY28KNDQ3LFpQVElITlNWRllBUTE0NixaUFRJSE5TVkZZQVExNDYtNzJ1Y3N2a28sMjAxNS0wMS0wOVQxODo1MjoxMS4wMDAwMDArMDAwMCwyMDE1LTAxLTA5VDE5OjIxOjM1LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMzYsMzYuOCwyMDE1LTAxLTA0LGZhY2Vib29rLE1leGljbwo0NDksTERTVUhDUkFZS01PMTc5LExEU1VIQ1JBWUtNTzE3OS1uNWJmZ2p1OCwyMDE1LTAxLTA5VDIwOjIxOjM0LjAwMDAwMCswMDAwLDIwMTUtMDEtMDlUMjA6MjM6MTYuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA1NCwzNS4zLDIwMTUtMDEtMDcsb3RoZXJfY2FtcGFpZ24sUG9ydHVnYWwKNDUwLExEU1VIQ1JBWUtNTzE3OSxMRFNVSENSQVlLTU8xNzktbjViZmdqdTgsMjAxNS0wMS0wOVQyMDoyMTozNC4wMDAwMDArMDAwMCwyMDE1LTAxLTA5VDIwOjM1OjQwLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNzIsMzUuMywyMDE1LTAxLTA3LG90aGVyX2NhbXBhaWduLFBvcnR1Z2FsCjQ2MixMRFNVSENSQVlLTU8xNzksTERTVUhDUkFZS01PMTc5LTR4a282OWVpLDIwMTUtMDEtMDlUMjM6NTQ6MTcuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMFQwMDowMjoyMy4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDE4LDIwLjMsMjAxNS0wMS0wNyxvdGhlcl9jYW1wYWlnbixQb3J0dWdhbAo0NjUsTERTVUhDUkFZS01PMTc5LExEU1VIQ1JBWUtNTzE3OS00eGtvNjllaSwyMDE1LTAxLTA5VDIzOjU0OjE3LjAwMDAwMCswMDAwLDIwMTUtMDEtMTBUMDA6MTE6NDEuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA3MiwyMC4zLDIwMTUtMDEtMDcsb3RoZXJfY2FtcGFpZ24sUG9ydHVnYWwKNDY2LFFKR1ZPQkxBVElIVzQ1NyxRSkdWT0JMQVRJSFc0NTctN29obGcyNmksMjAxNS0wMS0xMFQwMDo0OTozMS4wMDAwMDArMDAwMCwyMDE1LTAxLTEwVDAwOjUwOjEzLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wODgsMTkuNSwyMDE1LTAxLTAyLG90aGVyX2NhbXBhaWduLFN3ZWRlbgo0NjgsUUpHVk9CTEFUSUhXNDU3LFFKR1ZPQkxBVElIVzQ1Ny03b2hsZzI2aSwyMDE1LTAxLTEwVDAwOjQ5OjMxLjAwMDAwMCswMDAwLDIwMTUtMDEtMTBUMDE6MDg6NTUuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA4OCwxOS41LDIwMTUtMDEtMDIsb3RoZXJfY2FtcGFpZ24sU3dlZGVuCjQ2OSxHU1FKWElPS1lNRUE3MTIsR1NRSlhJT0tZTUVBNzEyLTN4cTd3ZzFsLDIwMTUtMDEtMTBUMDA6NTc6MzEuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMFQwMDo1OTowNy4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjA4LDM5LjgsMjAxNS0wMS0wNyxnb29nbGUsR2VybWFueQo0NzEsR1NRSlhJT0tZTUVBNzEyLEdTUUpYSU9LWU1FQTcxMi0zeHE3d2cxbCwyMDE1LTAxLTEwVDAwOjU3OjMxLjAwMDAwMCswMDAwLDIwMTUtMDEtMTBUMDE6Mjg6MzcuMDAwMDAwKzAwMDAsYWQsYWRfMTBzZWMsMC4wOCwzOS44LDIwMTUtMDEtMDcsZ29vZ2xlLEdlcm1hbnkKNDcyLFJNT1NXSEpHRUxDSTY3NSxSTU9TV0hKR0VMQ0k2NzUtejl5bnVzcHIsMjAxNS0wMS0xMFQwNDowOTo1MC4wMDAwMDArMDAwMCwyMDE1LTAxLTEwVDA0OjE4OjU2LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNSwyNy4yLDIwMTUtMDEtMTAsb3RoZXJfY2FtcGFpZ24sRnJhbmNlCjQ3NCxSTU9TV0hKR0VMQ0k2NzUsUk1PU1dISkdFTENJNjc1LXo5eW51c3ByLDIwMTUtMDEtMTBUMDQ6MDk6NTAuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMFQwNDoyODozOC4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjEsMjcuMiwyMDE1LTAxLTEwLG90aGVyX2NhbXBhaWduLEZyYW5jZQo0NzUsUk1PU1dISkdFTENJNjc1LFJNT1NXSEpHRUxDSTY3NS16OXludXNwciwyMDE1LTAxLTEwVDA0OjA5OjUwLjAwMDAwMCswMDAwLDIwMTUtMDEtMTBUMDQ6Mjk6NTYuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjEsMjcuMiwyMDE1LTAxLTEwLG90aGVyX2NhbXBhaWduLEZyYW5jZQo0ODIsVVpRRkhEQkVNWVBWNTk0LFVaUUZIREJFTVlQVjU5NC1ha2NwenR1bywyMDE1LTAxLTEwVDA1OjQ4OjQ2LjAwMDAwMCswMDAwLDIwMTUtMDEtMTBUMDU6NDg6NTguMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA3Miw4LjEsMjAxNS0wMS0xMCxnb29nbGUsU3dpdHplcmxhbmQKNDgzLEdBWUlCTFVDT0VESjczMixHQVlJQkxVQ09FREo3MzItOHVuYzE3MmwsMjAxNS0wMS0xMFQwNjoyMTozNS4wMDAwMDArMDAwMCwyMDE1LTAxLTEwVDA2OjM3OjU5LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMywzNC44LDIwMTUtMDEtMDMsb3JnYW5pYyxVbml0ZWQgU3RhdGVzCjQ5MyxMRFNVSENSQVlLTU8xNzksTERTVUhDUkFZS01PMTc5LW1hdzdxZXIxLDIwMTUtMDEtMTBUMDc6MzU6NTcuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMFQwNzo1MTozOS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDcyLDI2LjQsMjAxNS0wMS0wNyxvdGhlcl9jYW1wYWlnbixQb3J0dWdhbAo0OTYsTERTVUhDUkFZS01PMTc5LExEU1VIQ1JBWUtNTzE3OS1tYXc3cWVyMSwyMDE1LTAxLTEwVDA3OjM1OjU3LjAwMDAwMCswMDAwLDIwMTUtMDEtMTBUMDc6NTU6MzMuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA1NCwyNi40LDIwMTUtMDEtMDcsb3RoZXJfY2FtcGFpZ24sUG9ydHVnYWwKNTAzLE1YQ09WRVlJQUtGSDU5NCxNWENPVkVZSUFLRkg1OTQtdGRrZXVnMmIsMjAxNS0wMS0xMFQwOToyODoyNi4wMDAwMDArMDAwMCwyMDE1LTAxLTEwVDA5OjU4OjUwLjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMDg0LDMyLjEsMjAxNS0wMS0xMCxvcmdhbmljLENoaW5hCjUwNSxWTFFIWUpDS0JPSU43MjksVkxRSFlKQ0tCT0lONzI5LTkxdDVka2ZtLDIwMTUtMDEtMTBUMDk6NTM6MDIuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMFQwOTo1NjoyNi4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjA4NCwyMy4yLDIwMTUtMDEtMTAsb3JnYW5pYyxKYXBhbgo1MDgsS0JFUVpHRlNSUEhKNDc5LEtCRVFaR0ZTUlBISjQ3OS0xMmdvM3R6NywyMDE1LTAxLTEwVDEwOjMwOjA0LjAwMDAwMCswMDAwLDIwMTUtMDEtMTBUMTA6NDQ6NTIuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAzLDM3LjgsMjAxNS0wMS0wNyxvcmdhbmljLFJ1c3NpYQo1MTYsR0ZMWUpIQVBNWldENjMxLEdGTFlKSEFQTVpXRDYzMS12cHdmajNjYSwyMDE1LTAxLTEwVDEyOjM0OjQ1LjAwMDAwMCswMDAwLDIwMTUtMDEtMTBUMTI6NDg6MzkuMDAwMDAwKzAwMDAsYWQsYWRfMTBzZWMsMC4wMjYsMjEuNCwyMDE1LTAxLTA5LG9yZ2FuaWMsSW5kaWEKNTE3LEdGTFlKSEFQTVpXRDYzMSxHRkxZSkhBUE1aV0Q2MzEtdnB3ZmozY2EsMjAxNS0wMS0xMFQxMjozNDo0NS4wMDAwMDArMDAwMCwyMDE1LTAxLTEwVDEyOjQ5OjUxLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMDQsMjEuNCwyMDE1LTAxLTA5LG9yZ2FuaWMsSW5kaWEKNTE4LEdGTFlKSEFQTVpXRDYzMSxHRkxZSkhBUE1aV0Q2MzEtdnB3ZmozY2EsMjAxNS0wMS0xMFQxMjozNDo0NS4wMDAwMDArMDAwMCwyMDE1LTAxLTEwVDEyOjU1OjUxLjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMDE2LDIxLjQsMjAxNS0wMS0wOSxvcmdhbmljLEluZGlhCjUxOSxQWkJOUktTTVVMSFgyMTMsUFpCTlJLU01VTEhYMjEzLXZ0bHkzNWZjLDIwMTUtMDEtMTBUMTQ6MDY6MzYuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMFQxNDowOToxOC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDA2LDI2LjMsMjAxNS0wMS0wNyxvcmdhbmljLEluZGlhCjUyMCxQWkJOUktTTVVMSFgyMTMsUFpCTlJLU01VTEhYMjEzLXZ0bHkzNWZjLDIwMTUtMDEtMTBUMTQ6MDY6MzYuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMFQxNDoxNDoxOC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDE2LDI2LjMsMjAxNS0wMS0wNyxvcmdhbmljLEluZGlhCjUyMyxQWkJOUktTTVVMSFgyMTMsUFpCTlJLU01VTEhYMjEzLXZ0bHkzNWZjLDIwMTUtMDEtMTBUMTQ6MDY6MzYuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMFQxNDoyNTowMC4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjA0NCwyNi4zLDIwMTUtMDEtMDcsb3JnYW5pYyxJbmRpYQo1MjQsUFpCTlJLU01VTEhYMjEzLFBaQk5SS1NNVUxIWDIxMy12dGx5MzVmYywyMDE1LTAxLTEwVDE0OjA2OjM2LjAwMDAwMCswMDAwLDIwMTUtMDEtMTBUMTQ6MzE6NTQuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAwNiwyNi4zLDIwMTUtMDEtMDcsb3JnYW5pYyxJbmRpYQo1MjYsRVFVRE5HWklDTUFLNDgyLEVRVUROR1pJQ01BSzQ4Mi1pNWtyZzluZiwyMDE1LTAxLTEwVDE0OjEyOjA5LjAwMDAwMCswMDAwLDIwMTUtMDEtMTBUMTQ6MjA6MDkuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAzLDEwLjYsMjAxNS0wMS0wNCxnb29nbGUsR2VybWFueQo1MjcsSllFQkNMTlVaVFhRNDU3LEpZRUJDTE5VWlRYUTQ1Ny1mZ3Btcnd4biwyMDE1LTAxLTEwVDE1OjA1OjIwLjAwMDAwMCswMDAwLDIwMTUtMDEtMTBUMTU6MTI6MzIuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAyLDI1LjMsMjAxNS0wMS0wNCxvdGhlcl9jYW1wYWlnbixFZ3lwdAo1MjgsSllFQkNMTlVaVFhRNDU3LEpZRUJDTE5VWlRYUTQ1Ny1mZ3Btcnd4biwyMDE1LTAxLTEwVDE1OjA1OjIwLjAwMDAwMCswMDAwLDIwMTUtMDEtMTBUMTU6MjE6NDQuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAzNSwyNS4zLDIwMTUtMDEtMDQsb3RoZXJfY2FtcGFpZ24sRWd5cHQKNTI5LEpZRUJDTE5VWlRYUTQ1NyxKWUVCQ0xOVVpUWFE0NTctZmdwbXJ3eG4sMjAxNS0wMS0xMFQxNTowNToyMC4wMDAwMDArMDAwMCwyMDE1LTAxLTEwVDE1OjI0OjIwLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMiwyNS4zLDIwMTUtMDEtMDQsb3RoZXJfY2FtcGFpZ24sRWd5cHQKNTM1LE9NQ1ZVQUlLU0RUUjY1MSxPTUNWVUFJS1NEVFI2NTEtYzlubTJidGwsMjAxNS0wMS0xMFQxNToyOTowMi4wMDAwMDArMDAwMCwyMDE1LTAxLTEwVDE1OjU4OjIwLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4xLDM0LjEsMjAxNS0wMS0wNyxvdGhlcl9jYW1wYWlnbixVbml0ZWQgU3RhdGVzCjUzNixPTUNWVUFJS1NEVFI2NTEsT01DVlVBSUtTRFRSNjUxLWM5bm0yYnRsLDIwMTUtMDEtMTBUMTU6Mjk6MDIuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMFQxNjowMjoyNi4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDQsMzQuMSwyMDE1LTAxLTA3LG90aGVyX2NhbXBhaWduLFVuaXRlZCBTdGF0ZXMKNTQyLFFKR1ZPQkxBVElIVzQ1NyxRSkdWT0JMQVRJSFc0NTctbjN4bGFic3osMjAxNS0wMS0xMFQxNTo0OTo1NC4wMDAwMDArMDAwMCwyMDE1LTAxLTEwVDE1OjU1OjM2LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wOTksMjQuOSwyMDE1LTAxLTAyLG90aGVyX2NhbXBhaWduLFN3ZWRlbgo1NDMsUUpHVk9CTEFUSUhXNDU3LFFKR1ZPQkxBVElIVzQ1Ny1uM3hsYWJzeiwyMDE1LTAxLTEwVDE1OjQ5OjU0LjAwMDAwMCswMDAwLDIwMTUtMDEtMTBUMTY6MDU6MjQuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA0NCwyNC45LDIwMTUtMDEtMDIsb3RoZXJfY2FtcGFpZ24sU3dlZGVuCjU0NCxRSkdWT0JMQVRJSFc0NTcsUUpHVk9CTEFUSUhXNDU3LW4zeGxhYnN6LDIwMTUtMDEtMTBUMTU6NDk6NTQuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMFQxNjowOTo0OC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDMzLDI0LjksMjAxNS0wMS0wMixvdGhlcl9jYW1wYWlnbixTd2VkZW4KNTQ1LFFKR1ZPQkxBVElIVzQ1NyxRSkdWT0JMQVRJSFc0NTctbjN4bGFic3osMjAxNS0wMS0xMFQxNTo0OTo1NC4wMDAwMDArMDAwMCwyMDE1LTAxLTEwVDE2OjEzOjEyLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNDQsMjQuOSwyMDE1LTAxLTAyLG90aGVyX2NhbXBhaWduLFN3ZWRlbgo1NDgsWlBUSUhOU1ZGWUFRMTQ2LFpQVElITlNWRllBUTE0Ni1vNDg1enJlYSwyMDE1LTAxLTEwVDE2OjA4OjM0LjAwMDAwMCswMDAwLDIwMTUtMDEtMTBUMTY6MTk6NDYuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA1NCwxNy41LDIwMTUtMDEtMDQsZmFjZWJvb2ssTWV4aWNvCjU1NCxKVkJaQ1BLWEhGTVU0OTEsSlZCWkNQS1hIRk1VNDkxLW45d3MydGwxLDIwMTUtMDEtMTBUMTg6NDg6MDYuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMFQxOTowNToxOC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDUsMzQuMSwyMDE1LTAxLTA3LG9yZ2FuaWMsVW5pdGVkIFN0YXRlcwo1NTUsSUNCQVVaS0dTUVBGMTQ1LElDQkFVWktHU1FQRjE0NS1lZ3h0aThkcCwyMDE1LTAxLTEwVDE4OjQ5OjM3LjAwMDAwMCswMDAwLDIwMTUtMDEtMTBUMTg6NTM6NTUuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA0OSwzNy4wLDIwMTUtMDEtMDYsZ29vZ2xlLFNvdXRoIEFmcmljYQo1NTYsSUNCQVVaS0dTUVBGMTQ1LElDQkFVWktHU1FQRjE0NS1lZ3h0aThkcCwyMDE1LTAxLTEwVDE4OjQ5OjM3LjAwMDAwMCswMDAwLDIwMTUtMDEtMTBUMTk6MTI6NTUuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA4NDksMzcuMCwyMDE1LTAxLTA2LGdvb2dsZSxTb3V0aCBBZnJpY2EKNTU4LElDQkFVWktHU1FQRjE0NSxJQ0JBVVpLR1NRUEYxNDUtZWd4dGk4ZHAsMjAxNS0wMS0xMFQxODo0OTozNy4wMDAwMDArMDAwMCwyMDE1LTAxLTEwVDE5OjIwOjI1LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNzksMzcuMCwyMDE1LTAxLTA2LGdvb2dsZSxTb3V0aCBBZnJpY2EKNTYwLFFOTFZSREVPWEZZSjg5MixRTkxWUkRFT1hGWUo4OTItNnVjN3RoMjUsMjAxNS0wMS0xMFQxOTo0MjoyOC4wMDAwMDArMDAwMCwyMDE1LTAxLTEwVDE5OjU1OjI4LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMiwyNS4xLDIwMTUtMDEtMDksY3Jvc3Nwcm9tbyxBdXN0cmFsaWEKNTY0LFFOTFZSREVPWEZZSjg5MixRTkxWUkRFT1hGWUo4OTItNnVjN3RoMjUsMjAxNS0wMS0xMFQxOTo0MjoyOC4wMDAwMDArMDAwMCwyMDE1LTAxLTEwVDIwOjA0OjU4LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wOSwyNS4xLDIwMTUtMDEtMDksY3Jvc3Nwcm9tbyxBdXN0cmFsaWEKNTY1LFBaQk5SS1NNVUxIWDIxMyxQWkJOUktTTVVMSFgyMTMteTcyMWZ1dGEsMjAxNS0wMS0xMFQxOTo1NDoxMS4wMDAwMDArMDAwMCwyMDE1LTAxLTEwVDIwOjEyOjI5LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMDQsMzkuOCwyMDE1LTAxLTA3LG9yZ2FuaWMsSW5kaWEKNTY2LFBaQk5SS1NNVUxIWDIxMyxQWkJOUktTTVVMSFgyMTMteTcyMWZ1dGEsMjAxNS0wMS0xMFQxOTo1NDoxMS4wMDAwMDArMDAwMCwyMDE1LTAxLTEwVDIwOjI3OjI5LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMiwzOS44LDIwMTUtMDEtMDcsb3JnYW5pYyxJbmRpYQo1NzEsQkZOTFVSSVNKWFRINjQ3LEJGTkxVUklTSlhUSDY0Ny0zYmNtdGVwZywyMDE1LTAxLTEwVDIxOjAwOjMxLjAwMDAwMCswMDAwLDIwMTUtMDEtMTBUMjE6MTE6MDcuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAyLDM0LjAsMjAxNS0wMS0xMCxvcmdhbmljLEluZGlhCjU3MixCRk5MVVJJU0pYVEg2NDcsQkZOTFVSSVNKWFRINjQ3LTNiY210ZXBnLDIwMTUtMDEtMTBUMjE6MDA6MzEuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMFQyMToxNjo0My4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDA0LDM0LjAsMjAxNS0wMS0xMCxvcmdhbmljLEluZGlhCjU3MyxCRk5MVVJJU0pYVEg2NDcsQkZOTFVSSVNKWFRINjQ3LTNiY210ZXBnLDIwMTUtMDEtMTBUMjE6MDA6MzEuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMFQyMToxODo0My4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDA0LDM0LjAsMjAxNS0wMS0xMCxvcmdhbmljLEluZGlhCjU3NCxCRk5MVVJJU0pYVEg2NDcsQkZOTFVSSVNKWFRINjQ3LTNiY210ZXBnLDIwMTUtMDEtMTBUMjE6MDA6MzEuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMFQyMToyMTo0OS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDE0LDM0LjAsMjAxNS0wMS0xMCxvcmdhbmljLEluZGlhCjU4MCxSTU9TV0hKR0VMQ0k2NzUsUk1PU1dISkdFTENJNjc1LWQ3c2JndTlhLDIwMTUtMDEtMTBUMjM6MjQ6MjAuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMFQyMzozODowMi4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDIsMjQuMCwyMDE1LTAxLTEwLG90aGVyX2NhbXBhaWduLEZyYW5jZQo1ODIsTkFPSlJETUNTRUJJMjgxLE5BT0pSRE1DU0VCSTI4MS1kemU3a3NwdSwyMDE1LTAxLTExVDAwOjI0OjM1LjAwMDAwMCswMDAwLDIwMTUtMDEtMTFUMDA6MzA6MjkuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA4MSwzMC45LDIwMTUtMDEtMTEsb3JnYW5pYyxOb3J3YXkKNTg0LE5BT0pSRE1DU0VCSTI4MSxOQU9KUkRNQ1NFQkkyODEtZHplN2tzcHUsMjAxNS0wMS0xMVQwMDoyNDozNS4wMDAwMDArMDAwMCwyMDE1LTAxLTExVDAwOjQ2OjU5LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNDUsMzAuOSwyMDE1LTAxLTExLG9yZ2FuaWMsTm9yd2F5CjU5NSxHU1FKWElPS1lNRUE3MTIsR1NRSlhJT0tZTUVBNzEyLWk1N3Y0ZmJ4LDIwMTUtMDEtMTFUMDM6MDg6NDYuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMVQwMzoxNzoyMi4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDgsMTAuOCwyMDE1LTAxLTA3LGdvb2dsZSxHZXJtYW55CjYwMSxHU1FKWElPS1lNRUE3MTIsR1NRSlhJT0tZTUVBNzEyLWx5a2FzeG83LDIwMTUtMDEtMTFUMDU6MTY6NDYuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMVQwNToxNzozNC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDUsMjAuMSwyMDE1LTAxLTA3LGdvb2dsZSxHZXJtYW55CjYwNyxDSEtVUkFCVEZaREUzNzIsQ0hLVVJBQlRGWkRFMzcyLXo5eWJoam9xLDIwMTUtMDEtMTFUMDU6NDc6NDMuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMVQwNjowNTo0OS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDg4LDI1LjAsMjAxNS0wMS0xMSxvcmdhbmljLERlbm1hcmsKNjA4LENIS1VSQUJURlpERTM3MixDSEtVUkFCVEZaREUzNzItejl5Ymhqb3EsMjAxNS0wMS0xMVQwNTo0Nzo0My4wMDAwMDArMDAwMCwyMDE1LTAxLTExVDA2OjA4OjMxLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wODgsMjUuMCwyMDE1LTAxLTExLG9yZ2FuaWMsRGVubWFyawo2MTEsUk1PU1dISkdFTENJNjc1LFJNT1NXSEpHRUxDSTY3NS04dWx3ZGt2dCwyMDE1LTAxLTExVDA2OjE1OjM2LjAwMDAwMCswMDAwLDIwMTUtMDEtMTFUMDY6MTU6NTQuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAyLDkuNCwyMDE1LTAxLTEwLG90aGVyX2NhbXBhaWduLEZyYW5jZQo2MTcsSUNCQVVaS0dTUVBGMTQ1LElDQkFVWktHU1FQRjE0NS1iaDFhbmx5NSwyMDE1LTAxLTExVDA2OjQ1OjI0LjAwMDAwMCswMDAwLDIwMTUtMDEtMTFUMDc6MDU6MjQuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA0MSwyOS4zLDIwMTUtMDEtMDYsZ29vZ2xlLFNvdXRoIEFmcmljYQo2MTgsSlZCWkNQS1hIRk1VNDkxLEpWQlpDUEtYSEZNVTQ5MS0xdGFlZzZpeSwyMDE1LTAxLTExVDA3OjA5OjM0LjAwMDAwMCswMDAwLDIwMTUtMDEtMTFUMDc6MTQ6MjIuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAyLDcuOSwyMDE1LTAxLTA3LG9yZ2FuaWMsVW5pdGVkIFN0YXRlcwo2MjMsS0daQ09KSFBGVFFWNzUzLEtHWkNPSkhQRlRRVjc1My1mZTRiZDN4bSwyMDE1LTAxLTExVDA3OjQ0OjI3LjAwMDAwMCswMDAwLDIwMTUtMDEtMTFUMDc6NDU6MjcuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjEsMjIuNiwyMDE1LTAxLTExLG9yZ2FuaWMsVW5pdGVkIFN0YXRlcwo2MjUsT01DVlVBSUtTRFRSNjUxLE9NQ1ZVQUlLU0RUUjY1MS15eDVqbzR2NywyMDE1LTAxLTExVDA5OjA0OjUyLjAwMDAwMCswMDAwLDIwMTUtMDEtMTFUMDk6MDc6NDAuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA2LDM4LjUsMjAxNS0wMS0wNyxvdGhlcl9jYW1wYWlnbixVbml0ZWQgU3RhdGVzCjYyOSxPTUNWVUFJS1NEVFI2NTEsT01DVlVBSUtTRFRSNjUxLXl4NWpvNHY3LDIwMTUtMDEtMTFUMDk6MDQ6NTIuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMVQwOTozMjo0Ni4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDksMzguNSwyMDE1LTAxLTA3LG90aGVyX2NhbXBhaWduLFVuaXRlZCBTdGF0ZXMKNjM0LEFVV0ZEUlpNWFZKSDkyOCxBVVdGRFJaTVhWSkg5MjgtNG42Z3h2ZW8sMjAxNS0wMS0xMVQxMDoxNzoyMi4wMDAwMDArMDAwMCwyMDE1LTAxLTExVDEwOjE4OjU4LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMiwxMy42LDIwMTUtMDEtMTEsZ29vZ2xlLEluZGlhCjYzNixRTkxWUkRFT1hGWUo4OTIsUU5MVlJERU9YRllKODkyLTQ1Y3Z0YXgzLDIwMTUtMDEtMTFUMTA6NTI6MDYuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMVQxMDo1OTo1NC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMSwyMS4yLDIwMTUtMDEtMDksY3Jvc3Nwcm9tbyxBdXN0cmFsaWEKNjM4LFFOTFZSREVPWEZZSjg5MixRTkxWUkRFT1hGWUo4OTItNDVjdnRheDMsMjAxNS0wMS0xMVQxMDo1MjowNi4wMDAwMDArMDAwMCwyMDE1LTAxLTExVDExOjA5OjQyLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNywyMS4yLDIwMTUtMDEtMDksY3Jvc3Nwcm9tbyxBdXN0cmFsaWEKNjM5LEJGTkxVUklTSlhUSDY0NyxCRk5MVVJJU0pYVEg2NDctZnVjcTFlbTgsMjAxNS0wMS0xMVQxMTowMjowOS4wMDAwMDArMDAwMCwyMDE1LTAxLTExVDExOjE0OjM5LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMiw0MC43LDIwMTUtMDEtMTAsb3JnYW5pYyxJbmRpYQo2NDAsQkZOTFVSSVNKWFRINjQ3LEJGTkxVUklTSlhUSDY0Ny1mdWNxMWVtOCwyMDE1LTAxLTExVDExOjAyOjA5LjAwMDAwMCswMDAwLDIwMTUtMDEtMTFUMTE6MTg6MDkuMDAwMDAwKzAwMDAsYWQsYWRfMTBzZWMsMC4wNDYsNDAuNywyMDE1LTAxLTEwLG9yZ2FuaWMsSW5kaWEKNjQyLEJGTkxVUklTSlhUSDY0NyxCRk5MVVJJU0pYVEg2NDctZnVjcTFlbTgsMjAxNS0wMS0xMVQxMTowMjowOS4wMDAwMDArMDAwMCwyMDE1LTAxLTExVDExOjM0OjUxLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMDgsNDAuNywyMDE1LTAxLTEwLG9yZ2FuaWMsSW5kaWEKNjQzLFFOTFZSREVPWEZZSjg5MixRTkxWUkRFT1hGWUo4OTItaTJrZ3hqNW0sMjAxNS0wMS0xMVQxMjoxMzo0My4wMDAwMDArMDAwMCwyMDE1LTAxLTExVDEyOjI3OjEzLjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMDgsMzguOCwyMDE1LTAxLTA5LGNyb3NzcHJvbW8sQXVzdHJhbGlhCjY0NixNWENPVkVZSUFLRkg1OTQsTVhDT1ZFWUlBS0ZINTk0LW16ODV2bmM2LDIwMTUtMDEtMTFUMTQ6MTA6NDMuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMVQxNDoxNTo0My4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDU0LDI2LjgsMjAxNS0wMS0xMCxvcmdhbmljLENoaW5hCjY0OCxNWENPVkVZSUFLRkg1OTQsTVhDT1ZFWUlBS0ZINTk0LW16ODV2bmM2LDIwMTUtMDEtMTFUMTQ6MTA6NDMuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMVQxNDozMjozMS4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjA2LDI2LjgsMjAxNS0wMS0xMCxvcmdhbmljLENoaW5hCjY1NCxRSkdWT0JMQVRJSFc0NTcsUUpHVk9CTEFUSUhXNDU3LTUzbGtmYTZ2LDIwMTUtMDEtMTFUMTQ6MzU6MjIuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMVQxNDozNzoxMC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDMzLDIxLjksMjAxNS0wMS0wMixvdGhlcl9jYW1wYWlnbixTd2VkZW4KNjc1LEdGTFlKSEFQTVpXRDYzMSxHRkxZSkhBUE1aV0Q2MzEta3E3dGptb2UsMjAxNS0wMS0xMVQxODoyMzoyMi4wMDAwMDArMDAwMCwyMDE1LTAxLTExVDE4OjI2OjQ2LjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMDI2LDEyLjIsMjAxNS0wMS0wOSxvcmdhbmljLEluZGlhCjY3NyxJQ0JBVVpLR1NRUEYxNDUsSUNCQVVaS0dTUVBGMTQ1LXp1bzJqOTU0LDIwMTUtMDEtMTFUMTk6MDQ6MzYuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMVQxOToxMjoyNC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDQ5LDguMSwyMDE1LTAxLTA2LGdvb2dsZSxTb3V0aCBBZnJpY2EKNjgwLEZYV0ROS0lVTUpZUjQ3MSxGWFdETktJVU1KWVI0NzEtZXBtY3hoMzUsMjAxNS0wMS0xMVQyMDowMzoyNS4wMDAwMDArMDAwMCwyMDE1LTAxLTExVDIwOjA3OjAxLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wOSwxOS40LDIwMTUtMDEtMTAsb3JnYW5pYyxVbml0ZWQgU3RhdGVzCjY4NixSTU9TV0hKR0VMQ0k2NzUsUk1PU1dISkdFTENJNjc1LXVxZzRvN2V2LDIwMTUtMDEtMTFUMjE6Mzc6MjcuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMVQyMTozOToyMS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDksOC4yLDIwMTUtMDEtMTAsb3RoZXJfY2FtcGFpZ24sRnJhbmNlCjY4OSxQWkJOUktTTVVMSFgyMTMsUFpCTlJLU01VTEhYMjEzLW44ZWw2cHV3LDIwMTUtMDEtMTFUMjI6MDg6MjQuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMVQyMjoyNDozMC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDA0LDI4LjYsMjAxNS0wMS0wNyxvcmdhbmljLEluZGlhCjY5MCxQWkJOUktTTVVMSFgyMTMsUFpCTlJLU01VTEhYMjEzLW44ZWw2cHV3LDIwMTUtMDEtMTFUMjI6MDg6MjQuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMVQyMjoyODowMC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDE2LDI4LjYsMjAxNS0wMS0wNyxvcmdhbmljLEluZGlhCjY5MSxQWkJOUktTTVVMSFgyMTMsUFpCTlJLU01VTEhYMjEzLW44ZWw2cHV3LDIwMTUtMDEtMTFUMjI6MDg6MjQuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMVQyMjozMjo1NC4wMDAwMDArMDAwMCxhZCxhZF8xNXNlYywwLjA0NiwyOC42LDIwMTUtMDEtMDcsb3JnYW5pYyxJbmRpYQo2OTIsUFpCTlJLU01VTEhYMjEzLFBaQk5SS1NNVUxIWDIxMy1uOGVsNnB1dywyMDE1LTAxLTExVDIyOjA4OjI0LjAwMDAwMCswMDAwLDIwMTUtMDEtMTFUMjI6MzU6NTQuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAyNCwyOC42LDIwMTUtMDEtMDcsb3JnYW5pYyxJbmRpYQo2OTQsS0lMV1pZSFJTSkVHMzE2LEtJTFdaWUhSU0pFRzMxNi1oOXQ3ZjV2MiwyMDE1LTAxLTExVDIyOjIwOjQ2LjAwMDAwMCswMDAwLDIwMTUtMDEtMTFUMjI6MzQ6NDAuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA5OSwyOS4yLDIwMTUtMDEtMDQsb3JnYW5pYyxEZW5tYXJrCjY5NyxFUVVETkdaSUNNQUs0ODIsRVFVRE5HWklDTUFLNDgyLWh4ajF3NjRiLDIwMTUtMDEtMTFUMjI6NTg6MTcuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMVQyMzoxMjoyMy4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjA3LDE5LjQsMjAxNS0wMS0wNCxnb29nbGUsR2VybWFueQo2OTgsR0ZMWUpIQVBNWldENjMxLEdGTFlKSEFQTVpXRDYzMS1wZDZqczE1bSwyMDE1LTAxLTExVDIzOjI4OjA5LjAwMDAwMCswMDAwLDIwMTUtMDEtMTFUMjM6MzE6NTEuMDAwMDAwKzAwMDAsYWQsYWRfMTVzZWMsMC4wNDIsOS4wLDIwMTUtMDEtMDksb3JnYW5pYyxJbmRpYQo3MDEsR1NRSlhJT0tZTUVBNzEyLEdTUUpYSU9LWU1FQTcxMi0ycXhudHN3YywyMDE1LTAxLTEyVDAwOjI1OjEzLjAwMDAwMCswMDAwLDIwMTUtMDEtMTJUMDA6NDY6NTUuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA1LDMzLjMsMjAxNS0wMS0wNyxnb29nbGUsR2VybWFueQo3MDksSlZCWkNQS1hIRk1VNDkxLEpWQlpDUEtYSEZNVTQ5MS10ZnI5bTJsdiwyMDE1LTAxLTEyVDAzOjI5OjMxLjAwMDAwMCswMDAwLDIwMTUtMDEtMTJUMDM6Mzk6MDcuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA0LDI0LjQsMjAxNS0wMS0wNyxvcmdhbmljLFVuaXRlZCBTdGF0ZXMKNzEwLEpWQlpDUEtYSEZNVTQ5MSxKVkJaQ1BLWEhGTVU0OTEtdGZyOW0ybHYsMjAxNS0wMS0xMlQwMzoyOTozMS4wMDAwMDArMDAwMCwyMDE1LTAxLTEyVDAzOjQxOjA3LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNSwyNC40LDIwMTUtMDEtMDcsb3JnYW5pYyxVbml0ZWQgU3RhdGVzCjcxMSxBVVdGRFJaTVhWSkg5MjgsQVVXRkRSWk1YVkpIOTI4LW14cmI4bGQzLDIwMTUtMDEtMTJUMDQ6MzA6MTIuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMlQwNDozMTo0OC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDEyLDE5LjQsMjAxNS0wMS0xMSxnb29nbGUsSW5kaWEKNzEzLEFVV0ZEUlpNWFZKSDkyOCxBVVdGRFJaTVhWSkg5MjgtbXhyYjhsZDMsMjAxNS0wMS0xMlQwNDozMDoxMi4wMDAwMDArMDAwMCwyMDE1LTAxLTEyVDA0OjQ0OjAwLjAwMDAwMCswMDAwLGFkLGFkXzE1c2VjLDAuMDY0LDE5LjQsMjAxNS0wMS0xMSxnb29nbGUsSW5kaWEKNzE2LElDQkFVWktHU1FQRjE0NSxJQ0JBVVpLR1NRUEYxNDUtOHlzZ2p2bTYsMjAxNS0wMS0xMlQwNToyMDowMS4wMDAwMDArMDAwMCwyMDE1LTAxLTEyVDA1OjMzOjU1LjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMDgsMTcuNCwyMDE1LTAxLTA2LGdvb2dsZSxTb3V0aCBBZnJpY2EKNzE5LE1YQ09WRVlJQUtGSDU5NCxNWENPVkVZSUFLRkg1OTQtb25jbDN1cDEsMjAxNS0wMS0xMlQwNTo0MjozNy4wMDAwMDArMDAwMCwyMDE1LTAxLTEyVDA1OjQyOjQzLjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMDksMjMuNSwyMDE1LTAxLTEwLG9yZ2FuaWMsQ2hpbmEKNzI1LE9NQ1ZVQUlLU0RUUjY1MSxPTUNWVUFJS1NEVFI2NTEtcnR1MXdwbWUsMjAxNS0wMS0xMlQwNjowMzo0Mi4wMDAwMDArMDAwMCwyMDE1LTAxLTEyVDA2OjMwOjAwLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNywyOS41LDIwMTUtMDEtMDcsb3RoZXJfY2FtcGFpZ24sVW5pdGVkIFN0YXRlcwo3MjcsSUNCQVVaS0dTUVBGMTQ1LElDQkFVWktHU1FQRjE0NS1rdnVoM2N6cywyMDE1LTAxLTEyVDA4OjA0OjM2LjAwMDAwMCswMDAwLDIwMTUtMDEtMTJUMDg6MTI6MTguMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA4NDksMTMuOSwyMDE1LTAxLTA2LGdvb2dsZSxTb3V0aCBBZnJpY2EKNzI5LE1YQ09WRVlJQUtGSDU5NCxNWENPVkVZSUFLRkg1OTQtcHphNmllY24sMjAxNS0wMS0xMlQwODoxNjowMi4wMDAwMDArMDAwMCwyMDE1LTAxLTEyVDA4OjE2OjA4LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMzYsMzYuNiwyMDE1LTAxLTEwLG9yZ2FuaWMsQ2hpbmEKNzMwLE1YQ09WRVlJQUtGSDU5NCxNWENPVkVZSUFLRkg1OTQtcHphNmllY24sMjAxNS0wMS0xMlQwODoxNjowMi4wMDAwMDArMDAwMCwyMDE1LTAxLTEyVDA4OjM2OjMyLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNjYsMzYuNiwyMDE1LTAxLTEwLG9yZ2FuaWMsQ2hpbmEKNzMyLE1YQ09WRVlJQUtGSDU5NCxNWENPVkVZSUFLRkg1OTQtcHphNmllY24sMjAxNS0wMS0xMlQwODoxNjowMi4wMDAwMDArMDAwMCwyMDE1LTAxLTEyVDA4OjQyOjA4LjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMDU0LDM2LjYsMjAxNS0wMS0xMCxvcmdhbmljLENoaW5hCjczMyxKVkJaQ1BLWEhGTVU0OTEsSlZCWkNQS1hIRk1VNDkxLWV3Mml0NnBsLDIwMTUtMDEtMTJUMDg6MTg6NTkuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMlQwODoyMToxMS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDgsMzAuMSwyMDE1LTAxLTA3LG9yZ2FuaWMsVW5pdGVkIFN0YXRlcwo3MzUsSlZCWkNQS1hIRk1VNDkxLEpWQlpDUEtYSEZNVTQ5MS1ldzJpdDZwbCwyMDE1LTAxLTEyVDA4OjE4OjU5LjAwMDAwMCswMDAwLDIwMTUtMDEtMTJUMDg6MzM6MTcuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA2LDMwLjEsMjAxNS0wMS0wNyxvcmdhbmljLFVuaXRlZCBTdGF0ZXMKNzM3LFBMUUVTQk5HVURLSjE1NCxQTFFFU0JOR1VES0oxNTQtcDUzMml2eTEsMjAxNS0wMS0xMlQwODo0ODowNi4wMDAwMDArMDAwMCwyMDE1LTAxLTEyVDA4OjUzOjA2LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMTIsMzYuMCwyMDE1LTAxLTEyLGZhY2Vib29rLEphcGFuCjczOCxQTFFFU0JOR1VES0oxNTQsUExRRVNCTkdVREtKMTU0LXA1MzJpdnkxLDIwMTUtMDEtMTJUMDg6NDg6MDYuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMlQwODo1OTo0OC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDU0LDM2LjAsMjAxNS0wMS0xMixmYWNlYm9vayxKYXBhbgo3MzksUExRRVNCTkdVREtKMTU0LFBMUUVTQk5HVURLSjE1NC1wNTMyaXZ5MSwyMDE1LTAxLTEyVDA4OjQ4OjA2LjAwMDAwMCswMDAwLDIwMTUtMDEtMTJUMDk6MTc6MDAuMDAwMDAwKzAwMDAsYWQsYWRfMTVzZWMsMC4wOTYsMzYuMCwyMDE1LTAxLTEyLGZhY2Vib29rLEphcGFuCjc0MCxQTFFFU0JOR1VES0oxNTQsUExRRVNCTkdVREtKMTU0LXA1MzJpdnkxLDIwMTUtMDEtMTJUMDg6NDg6MDYuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMlQwOToxNzoyNC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDMsMzYuMCwyMDE1LTAxLTEyLGZhY2Vib29rLEphcGFuCjc0MixWTFFIWUpDS0JPSU43MjksVkxRSFlKQ0tCT0lONzI5LTV6cnZveG55LDIwMTUtMDEtMTJUMDg6NDk6NDUuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMlQwODo1NDozOS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDM2LDExLjEsMjAxNS0wMS0xMCxvcmdhbmljLEphcGFuCjc0MyxDSEtVUkFCVEZaREUzNzIsQ0hLVVJBQlRGWkRFMzcyLWV1c25oY3Z3LDIwMTUtMDEtMTJUMTA6MDU6MDUuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMlQxMDoxNDoxNy4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDk5LDM2LjksMjAxNS0wMS0xMSxvcmdhbmljLERlbm1hcmsKNzUxLFFEVVpKSUVUQ0FHVzY1NCxRRFVaSklFVENBR1c2NTQteHZxNTR3bzcsMjAxNS0wMS0xMlQxMDo0Njo0NS4wMDAwMDArMDAwMCwyMDE1LTAxLTEyVDEwOjQ3OjAzLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNzIsMTguNSwyMDE1LTAxLTA3LGZhY2Vib29rLFN3aXR6ZXJsYW5kCjc1OCxHU1FKWElPS1lNRUE3MTIsR1NRSlhJT0tZTUVBNzEyLTlpMnJrNmFjLDIwMTUtMDEtMTJUMTM6Mzk6MDAuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMlQxMzo0NTozMC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDUsMTUuMSwyMDE1LTAxLTA3LGdvb2dsZSxHZXJtYW55Cjc1OSxOQU9KUkRNQ1NFQkkyODEsTkFPSlJETUNTRUJJMjgxLTR4aXA4Z3ZuLDIwMTUtMDEtMTJUMTQ6NTU6MTMuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMlQxNTowMTowMS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDI3LDE4LjgsMjAxNS0wMS0xMSxvcmdhbmljLE5vcndheQo3NjgsQVVXRkRSWk1YVkpIOTI4LEFVV0ZEUlpNWFZKSDkyOC13OWZoazNweiwyMDE1LTAxLTEyVDE3OjI3OjQ1LjAwMDAwMCswMDAwLDIwMTUtMDEtMTJUMTc6MzA6MTUuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAwOCwxMS41LDIwMTUtMDEtMTEsZ29vZ2xlLEluZGlhCjc2OSxBVVdGRFJaTVhWSkg5MjgsQVVXRkRSWk1YVkpIOTI4LXc5ZmhrM3B6LDIwMTUtMDEtMTJUMTc6Mjc6NDUuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMlQxNzozMzozOS4wMDAwMDArMDAwMCxhZCxhZF8xNXNlYywwLjA3OCwxMS41LDIwMTUtMDEtMTEsZ29vZ2xlLEluZGlhCjc3NixDSEtVUkFCVEZaREUzNzIsQ0hLVVJBQlRGWkRFMzcyLXF2dXc0OWc2LDIwMTUtMDEtMTJUMTg6MTk6NDkuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMlQxODoyODo0OS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDk5LDE0LjgsMjAxNS0wMS0xMSxvcmdhbmljLERlbm1hcmsKNzgwLE5BT0pSRE1DU0VCSTI4MSxOQU9KUkRNQ1NFQkkyODEtMm03dXcxODksMjAxNS0wMS0xMlQxOTo1MTo0OS4wMDAwMDArMDAwMCwyMDE1LTAxLTEyVDIwOjI2OjA3LjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMDk5LDM4LjksMjAxNS0wMS0xMSxvcmdhbmljLE5vcndheQo3ODksVVpRRkhEQkVNWVBWNTk0LFVaUUZIREJFTVlQVjU5NC1rZnNyZWw2ZCwyMDE1LTAxLTEyVDIyOjM4OjE3LjAwMDAwMCswMDAwLDIwMTUtMDEtMTJUMjI6NTY6NDcuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA4NCwyNS41LDIwMTUtMDEtMTAsZ29vZ2xlLFN3aXR6ZXJsYW5kCjc5MyxHQVlJQkxVQ09FREo3MzIsR0FZSUJMVUNPRURKNzMyLW1kOWVweTc4LDIwMTUtMDEtMTJUMjI6NDQ6MDQuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMlQyMzoxMzo1Mi4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjA4LDMxLjEsMjAxNS0wMS0wMyxvcmdhbmljLFVuaXRlZCBTdGF0ZXMKODAxLEZYV0ROS0lVTUpZUjQ3MSxGWFdETktJVU1KWVI0NzEtaWhreWRqbTYsMjAxNS0wMS0xMlQyMzoyOToxMS4wMDAwMDArMDAwMCwyMDE1LTAxLTEzVDAwOjAxOjE3LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMywzNS43LDIwMTUtMDEtMTAsb3JnYW5pYyxVbml0ZWQgU3RhdGVzCjgwNyxWTFFIWUpDS0JPSU43MjksVkxRSFlKQ0tCT0lONzI5LXRlMmE3NGxpLDIwMTUtMDEtMTNUMDA6MTc6MDAuMDAwMDAwKzAwMDAsMjAxNS0wMS0xM1QwMDozNjo0OC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDE4LDI1LjQsMjAxNS0wMS0xMCxvcmdhbmljLEphcGFuCjgwOSxKVkJaQ1BLWEhGTVU0OTEsSlZCWkNQS1hIRk1VNDkxLWV3Znp4YWI1LDIwMTUtMDEtMTNUMDA6NDQ6MDEuMDAwMDAwKzAwMDAsMjAxNS0wMS0xM1QwMDo0Nzo1NS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDgsMjUuMiwyMDE1LTAxLTA3LG9yZ2FuaWMsVW5pdGVkIFN0YXRlcwo4MTAsSlZCWkNQS1hIRk1VNDkxLEpWQlpDUEtYSEZNVTQ5MS1ld2Z6eGFiNSwyMDE1LTAxLTEzVDAwOjQ0OjAxLjAwMDAwMCswMDAwLDIwMTUtMDEtMTNUMDA6NTE6MzEuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA1LDI1LjIsMjAxNS0wMS0wNyxvcmdhbmljLFVuaXRlZCBTdGF0ZXMKODExLEpWQlpDUEtYSEZNVTQ5MSxKVkJaQ1BLWEhGTVU0OTEtZXdmenhhYjUsMjAxNS0wMS0xM1QwMDo0NDowMS4wMDAwMDArMDAwMCwyMDE1LTAxLTEzVDAwOjU3OjAxLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNiwyNS4yLDIwMTUtMDEtMDcsb3JnYW5pYyxVbml0ZWQgU3RhdGVzCjgxOCxSTU9TV0hKR0VMQ0k2NzUsUk1PU1dISkdFTENJNjc1LTdxenNyeGhhLDIwMTUtMDEtMTNUMDI6MDY6MDkuMDAwMDAwKzAwMDAsMjAxNS0wMS0xM1QwMjoyNzowOS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDUsMjQuNywyMDE1LTAxLTEwLG90aGVyX2NhbXBhaWduLEZyYW5jZQo4MTksUk1PU1dISkdFTENJNjc1LFJNT1NXSEpHRUxDSTY3NS03cXpzcnhoYSwyMDE1LTAxLTEzVDAyOjA2OjA5LjAwMDAwMCswMDAwLDIwMTUtMDEtMTNUMDI6MzA6MTUuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA2LDI0LjcsMjAxNS0wMS0xMCxvdGhlcl9jYW1wYWlnbixGcmFuY2UKODIwLE9NQ1ZVQUlLU0RUUjY1MSxPTUNWVUFJS1NEVFI2NTEtdm9rcjQ1ODIsMjAxNS0wMS0xM1QwMjoxMTo0Mi4wMDAwMDArMDAwMCwyMDE1LTAxLTEzVDAyOjEyOjI0LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4xLDI2LjMsMjAxNS0wMS0wNyxvdGhlcl9jYW1wYWlnbixVbml0ZWQgU3RhdGVzCjgyNSxPTUNWVUFJS1NEVFI2NTEsT01DVlVBSUtTRFRSNjUxLXZva3I0NTgyLDIwMTUtMDEtMTNUMDI6MTE6NDIuMDAwMDAwKzAwMDAsMjAxNS0wMS0xM1QwMjozMTo1NC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDgsMjYuMywyMDE1LTAxLTA3LG90aGVyX2NhbXBhaWduLFVuaXRlZCBTdGF0ZXMKODI3LE9NQ1ZVQUlLU0RUUjY1MSxPTUNWVUFJS1NEVFI2NTEtdm9rcjQ1ODIsMjAxNS0wMS0xM1QwMjoxMTo0Mi4wMDAwMDArMDAwMCwyMDE1LTAxLTEzVDAyOjM2OjAwLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wOSwyNi4zLDIwMTUtMDEtMDcsb3RoZXJfY2FtcGFpZ24sVW5pdGVkIFN0YXRlcwo4MzAsRlhXRE5LSVVNSllSNDcxLEZYV0ROS0lVTUpZUjQ3MS1wamwzYm5pNSwyMDE1LTAxLTEzVDA0OjEzOjIyLjAwMDAwMCswMDAwLDIwMTUtMDEtMTNUMDQ6MjU6MjIuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAzLDIwLjIsMjAxNS0wMS0xMCxvcmdhbmljLFVuaXRlZCBTdGF0ZXMKODM0LE5BT0pSRE1DU0VCSTI4MSxOQU9KUkRNQ1NFQkkyODEtZWhpMW4yM3YsMjAxNS0wMS0xM1QwNDo1ODoyMC4wMDAwMDArMDAwMCwyMDE1LTAxLTEzVDA1OjA1OjI2LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wODEsMTQuMiwyMDE1LTAxLTExLG9yZ2FuaWMsTm9yd2F5CjgzNSxOQU9KUkRNQ1NFQkkyODEsTkFPSlJETUNTRUJJMjgxLWVoaTFuMjN2LDIwMTUtMDEtMTNUMDQ6NTg6MjAuMDAwMDAwKzAwMDAsMjAxNS0wMS0xM1QwNTowNzowMi4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDksMTQuMiwyMDE1LTAxLTExLG9yZ2FuaWMsTm9yd2F5Cjg0NixSTU9TV0hKR0VMQ0k2NzUsUk1PU1dISkdFTENJNjc1LXJ6bzI4andxLDIwMTUtMDEtMTNUMDg6Mjc6MzQuMDAwMDAwKzAwMDAsMjAxNS0wMS0xM1QwODozNzozNC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDQsMjUuNCwyMDE1LTAxLTEwLG90aGVyX2NhbXBhaWduLEZyYW5jZQo4NDcsUk1PU1dISkdFTENJNjc1LFJNT1NXSEpHRUxDSTY3NS1yem8yOGp3cSwyMDE1LTAxLTEzVDA4OjI3OjM0LjAwMDAwMCswMDAwLDIwMTUtMDEtMTNUMDg6Mzc6NDAuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAyLDI1LjQsMjAxNS0wMS0xMCxvdGhlcl9jYW1wYWlnbixGcmFuY2UKODQ5LFJNT1NXSEpHRUxDSTY3NSxSTU9TV0hKR0VMQ0k2NzUtcnpvMjhqd3EsMjAxNS0wMS0xM1QwODoyNzozNC4wMDAwMDArMDAwMCwyMDE1LTAxLTEzVDA4OjQ5OjUyLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNSwyNS40LDIwMTUtMDEtMTAsb3RoZXJfY2FtcGFpZ24sRnJhbmNlCjg1MixCRk5MVVJJU0pYVEg2NDcsQkZOTFVSSVNKWFRINjQ3LWh4MjlrdDQ4LDIwMTUtMDEtMTNUMDg6NTk6MjkuMDAwMDAwKzAwMDAsMjAxNS0wMS0xM1QwOTowNzoxMS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDI0LDI0LjQsMjAxNS0wMS0xMCxvcmdhbmljLEluZGlhCjg1MyxCRk5MVVJJU0pYVEg2NDcsQkZOTFVSSVNKWFRINjQ3LWh4MjlrdDQ4LDIwMTUtMDEtMTNUMDg6NTk6MjkuMDAwMDAwKzAwMDAsMjAxNS0wMS0xM1QwOToxNDoxMS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDE4LDI0LjQsMjAxNS0wMS0xMCxvcmdhbmljLEluZGlhCjg1NCxCRk5MVVJJU0pYVEg2NDcsQkZOTFVSSVNKWFRINjQ3LWh4MjlrdDQ4LDIwMTUtMDEtMTNUMDg6NTk6MjkuMDAwMDAwKzAwMDAsMjAxNS0wMS0xM1QwOToxNDoxNy4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDA0LDI0LjQsMjAxNS0wMS0xMCxvcmdhbmljLEluZGlhCjg1OCxHQVlJQkxVQ09FREo3MzIsR0FZSUJMVUNPRURKNzMyLWxiOWtyNWlzLDIwMTUtMDEtMTNUMDk6MzU6MzEuMDAwMDAwKzAwMDAsMjAxNS0wMS0xM1QwOTo1Njo0OS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDksMjQuNSwyMDE1LTAxLTAzLG9yZ2FuaWMsVW5pdGVkIFN0YXRlcwo4NTksQ0hLVVJBQlRGWkRFMzcyLENIS1VSQUJURlpERTM3Mi1hNnYyd29zbCwyMDE1LTAxLTEzVDA5OjUyOjQyLjAwMDAwMCswMDAwLDIwMTUtMDEtMTNUMDk6NTc6NDguMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA2NiwyMi42LDIwMTUtMDEtMTEsb3JnYW5pYyxEZW5tYXJrCjg2MyxVWlFGSERCRU1ZUFY1OTQsVVpRRkhEQkVNWVBWNTk0LXYyOWJwcjRpLDIwMTUtMDEtMTNUMTA6NTU6NDIuMDAwMDAwKzAwMDAsMjAxNS0wMS0xM1QxMTowODowNi4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDcyLDEzLjksMjAxNS0wMS0xMCxnb29nbGUsU3dpdHplcmxhbmQKODY0LFFEVVpKSUVUQ0FHVzY1NCxRRFVaSklFVENBR1c2NTQtdDgxMjk0cmosMjAxNS0wMS0xM1QxMToyMTo1MS4wMDAwMDArMDAwMCwyMDE1LTAxLTEzVDExOjQ1OjAzLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMzYsMjQuMCwyMDE1LTAxLTA3LGZhY2Vib29rLFN3aXR6ZXJsYW5kCjg3NSxOQU9KUkRNQ1NFQkkyODEsTkFPSlJETUNTRUJJMjgxLWMxdnVzM2FxLDIwMTUtMDEtMTNUMTQ6MzQ6MjUuMDAwMDAwKzAwMDAsMjAxNS0wMS0xM1QxNTowMTozMS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDU0LDM1LjYsMjAxNS0wMS0xMSxvcmdhbmljLE5vcndheQo4OTQsV0VQS1lOUlhERlVUNTcyLFdFUEtZTlJYREZVVDU3Mi0xd2x0OXppeSwyMDE1LTAxLTEzVDE2OjQxOjE2LjAwMDAwMCswMDAwLDIwMTUtMDEtMTNUMTY6NTI6MzQuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA1NCwyNS42LDIwMTUtMDEtMTMsY3Jvc3Nwcm9tbyxDaGluYQo4OTYsSlVZQkZNUEVSTERXMzk0LEpVWUJGTVBFUkxEVzM5NC02czh2ZmwyeCwyMDE1LTAxLTEzVDE4OjQ1OjQ1LjAwMDAwMCswMDAwLDIwMTUtMDEtMTNUMTg6NTI6NDUuMDAwMDAwKzAwMDAsYWQsYWRfMTBzZWMsMC4wOSwxOS45LDIwMTUtMDEtMTMsb3JnYW5pYyxVbml0ZWQgU3RhdGVzCjkwMCxHU1FKWElPS1lNRUE3MTIsR1NRSlhJT0tZTUVBNzEyLTNxODJ2a2c5LDIwMTUtMDEtMTNUMTk6MTY6NTEuMDAwMDAwKzAwMDAsMjAxNS0wMS0xM1QxOTo0NzozMy4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDYsMzQuMCwyMDE1LTAxLTA3LGdvb2dsZSxHZXJtYW55CjkxMSxXRVBLWU5SWERGVVQ1NzIsV0VQS1lOUlhERlVUNTcyLTZtOXdrNzRvLDIwMTUtMDEtMTNUMjI6MjY6NDguMDAwMDAwKzAwMDAsMjAxNS0wMS0xM1QyMjo0NToxOC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDY2LDI2LjQsMjAxNS0wMS0xMyxjcm9zc3Byb21vLENoaW5hCjkxMyxaUFRJSE5TVkZZQVExNDYsWlBUSUhOU1ZGWUFRMTQ2LWpjM2Q3bnJxLDIwMTUtMDEtMTNUMjI6NDM6MDMuMDAwMDAwKzAwMDAsMjAxNS0wMS0xM1QyMjo1Mzo1Ny4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDQ4LDIzLjIsMjAxNS0wMS0wNCxmYWNlYm9vayxNZXhpY28KOTE1LFBaQk5SS1NNVUxIWDIxMyxQWkJOUktTTVVMSFgyMTMtYmx3ZDN4N3EsMjAxNS0wMS0xM1QyMzoyMzoyNy4wMDAwMDArMDAwMCwyMDE1LTAxLTEzVDIzOjMzOjQ1LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMjQsMjQuNiwyMDE1LTAxLTA3LG9yZ2FuaWMsSW5kaWEKOTE3LFBaQk5SS1NNVUxIWDIxMyxQWkJOUktTTVVMSFgyMTMtYmx3ZDN4N3EsMjAxNS0wMS0xM1QyMzoyMzoyNy4wMDAwMDArMDAwMCwyMDE1LTAxLTEzVDIzOjQwOjMzLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMTgsMjQuNiwyMDE1LTAxLTA3LG9yZ2FuaWMsSW5kaWEKOTE4LFBaQk5SS1NNVUxIWDIxMyxQWkJOUktTTVVMSFgyMTMtYmx3ZDN4N3EsMjAxNS0wMS0xM1QyMzoyMzoyNy4wMDAwMDArMDAwMCwyMDE1LTAxLTEzVDIzOjQxOjI3LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMTgsMjQuNiwyMDE1LTAxLTA3LG9yZ2FuaWMsSW5kaWEKOTE5LFdCS0ZZSlhDWk5VSDU2MyxXQktGWUpYQ1pOVUg1NjMtbnpzcHI2dXQsMjAxNS0wMS0xM1QyMzoyODo1OC4wMDAwMDArMDAwMCwyMDE1LTAxLTEzVDIzOjM2OjI4LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNCwzMC43LDIwMTUtMDEtMTMsb3JnYW5pYyxDYW5hZGEKOTIxLFdCS0ZZSlhDWk5VSDU2MyxXQktGWUpYQ1pOVUg1NjMtbnpzcHI2dXQsMjAxNS0wMS0xM1QyMzoyODo1OC4wMDAwMDArMDAwMCwyMDE1LTAxLTEzVDIzOjUwOjM0LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4xLDMwLjcsMjAxNS0wMS0xMyxvcmdhbmljLENhbmFkYQo5MjQsWElBSEJOS0VDR1JPNTk4LFhJQUhCTktFQ0dSTzU5OC1sNXVmOWlwMywyMDE1LTAxLTE0VDAwOjM4OjQxLjAwMDAwMCswMDAwLDIwMTUtMDEtMTRUMDA6NDY6MjMuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAyLDIwLjAsMjAxNS0wMS0xNCxnb29nbGUsRWd5cHQKOTI2LFhJQUhCTktFQ0dSTzU5OCxYSUFIQk5LRUNHUk81OTgtbDV1ZjlpcDMsMjAxNS0wMS0xNFQwMDozODo0MS4wMDAwMDArMDAwMCwyMDE1LTAxLTE0VDAwOjU4OjA1LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNTUsMjAuMCwyMDE1LTAxLTE0LGdvb2dsZSxFZ3lwdAo5MzQsTVhDT1ZFWUlBS0ZINTk0LE1YQ09WRVlJQUtGSDU5NC1pNzUyNDlmMywyMDE1LTAxLTE0VDAxOjMwOjIzLjAwMDAwMCswMDAwLDIwMTUtMDEtMTRUMDE6NDg6MTEuMDAwMDAwKzAwMDAsYWQsYWRfMTBzZWMsMC4wNzIsMjEuMywyMDE1LTAxLTEwLG9yZ2FuaWMsQ2hpbmEKOTM1LEpVQkRWRkhDTlFXVDE5OCxKVUJEVkZIQ05RV1QxOTgtNXdrYnNkb2ksMjAxNS0wMS0xNFQwMjoxMDo0MC4wMDAwMDArMDAwMCwyMDE1LTAxLTE0VDAyOjE0OjQwLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMzIsMzcuMywyMDE1LTAxLTE0LG9yZ2FuaWMsUGhpbGlwcGluZXMKOTM2LEpVQkRWRkhDTlFXVDE5OCxKVUJEVkZIQ05RV1QxOTgtNXdrYnNkb2ksMjAxNS0wMS0xNFQwMjoxMDo0MC4wMDAwMDArMDAwMCwyMDE1LTAxLTE0VDAyOjI4OjQwLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMjgsMzcuMywyMDE1LTAxLTE0LG9yZ2FuaWMsUGhpbGlwcGluZXMKOTM3LEpVWUJGTVBFUkxEVzM5NCxKVVlCRk1QRVJMRFczOTQtODdsMnRiaHMsMjAxNS0wMS0xNFQwMjozMDozMC4wMDAwMDArMDAwMCwyMDE1LTAxLTE0VDAyOjM4OjM2LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4xLDE3LjgsMjAxNS0wMS0xMyxvcmdhbmljLFVuaXRlZCBTdGF0ZXMKOTQyLE1UQ0lXS09WQVNZUDkyNSxNVENJV0tPVkFTWVA5MjUtNHpxdWs1ZnIsMjAxNS0wMS0xNFQwMjo0NToyMC4wMDAwMDArMDAwMCwyMDE1LTAxLTE0VDAyOjUzOjI2LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMiwxMS41LDIwMTUtMDEtMTQsb3JnYW5pYyxHZXJtYW55Cjk0OSxaUFRJSE5TVkZZQVExNDYsWlBUSUhOU1ZGWUFRMTQ2LTFiNmloN3ZnLDIwMTUtMDEtMTRUMDI6NDg6NTYuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNFQwMzoyMToxNC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDEyLDM0LjksMjAxNS0wMS0wNCxmYWNlYm9vayxNZXhpY28KOTUwLEpZRUJDTE5VWlRYUTQ1NyxKWUVCQ0xOVVpUWFE0NTctYnRvdjZpdzQsMjAxNS0wMS0xNFQwMjo1MzozNy4wMDAwMDArMDAwMCwyMDE1LTAxLTE0VDAyOjU3OjE5LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMzUsOC44LDIwMTUtMDEtMDQsb3RoZXJfY2FtcGFpZ24sRWd5cHQKOTUyLEpWQlpDUEtYSEZNVTQ5MSxKVkJaQ1BLWEhGTVU0OTEtc2F6bnVrZmksMjAxNS0wMS0xNFQwMjo1ODowOS4wMDAwMDArMDAwMCwyMDE1LTAxLTE0VDAzOjA1OjA5LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNSwzNS43LDIwMTUtMDEtMDcsb3JnYW5pYyxVbml0ZWQgU3RhdGVzCjk1NSxKVkJaQ1BLWEhGTVU0OTEsSlZCWkNQS1hIRk1VNDkxLXNhem51a2ZpLDIwMTUtMDEtMTRUMDI6NTg6MDkuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNFQwMzoxNToxNS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDgsMzUuNywyMDE1LTAxLTA3LG9yZ2FuaWMsVW5pdGVkIFN0YXRlcwo5NTcsWElBSEJOS0VDR1JPNTk4LFhJQUhCTktFQ0dSTzU5OC1qbGhkbnM4aSwyMDE1LTAxLTE0VDA0OjMyOjE1LjAwMDAwMCswMDAwLDIwMTUtMDEtMTRUMDQ6MzQ6MzMuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAxNSwxNC4xLDIwMTUtMDEtMTQsZ29vZ2xlLEVneXB0Cjk1OCxYSUFIQk5LRUNHUk81OTgsWElBSEJOS0VDR1JPNTk4LWpsaGRuczhpLDIwMTUtMDEtMTRUMDQ6MzI6MTUuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNFQwNDo0NDowMy4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjA1LDE0LjEsMjAxNS0wMS0xNCxnb29nbGUsRWd5cHQKOTYwLEVGTE5QR1RSWlZBQzc2NSxFRkxOUEdUUlpWQUM3NjUtdHM0OW0zcTcsMjAxNS0wMS0xNFQwNDozMzoyOC4wMDAwMDArMDAwMCwyMDE1LTAxLTE0VDA0OjQ3OjQwLjAwMDAwMCswMDAwLGFkLGFkXzE1c2VjLDAuMDU4LDIwLjcsMjAxNS0wMS0xNCxvdGhlcl9jYW1wYWlnbixSdXNzaWEKOTYxLEVGTE5QR1RSWlZBQzc2NSxFRkxOUEdUUlpWQUM3NjUtdHM0OW0zcTcsMjAxNS0wMS0xNFQwNDozMzoyOC4wMDAwMDArMDAwMCwyMDE1LTAxLTE0VDA0OjUxOjE2LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMTUsMjAuNywyMDE1LTAxLTE0LG90aGVyX2NhbXBhaWduLFJ1c3NpYQo5NjIsRUZMTlBHVFJaVkFDNzY1LEVGTE5QR1RSWlZBQzc2NS10czQ5bTNxNywyMDE1LTAxLTE0VDA0OjMzOjI4LjAwMDAwMCswMDAwLDIwMTUtMDEtMTRUMDQ6NTE6NDAuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAxNSwyMC43LDIwMTUtMDEtMTQsb3RoZXJfY2FtcGFpZ24sUnVzc2lhCjk2OSxETFRGVlFXWUlYUko1ODksRExURlZRV1lJWFJKNTg5LXNreXY4MnBlLDIwMTUtMDEtMTRUMDQ6Mzk6NDkuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNFQwNDo1Mzo1NS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDU1OSwzMi43LDIwMTUtMDEtMTMsb3JnYW5pYyxTb3V0aCBBZnJpY2EKOTcwLERMVEZWUVdZSVhSSjU4OSxETFRGVlFXWUlYUko1ODktc2t5djgycGUsMjAxNS0wMS0xNFQwNDozOTo0OS4wMDAwMDArMDAwMCwyMDE1LTAxLTE0VDA0OjU1OjMxLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNDEsMzIuNywyMDE1LTAxLTEzLG9yZ2FuaWMsU291dGggQWZyaWNhCjk3MixLR1pDT0pIUEZUUVY3NTMsS0daQ09KSFBGVFFWNzUzLXJpY3p0OHBkLDIwMTUtMDEtMTRUMDU6MDY6MDIuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNFQwNToyNDozMi4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDgsMzguMSwyMDE1LTAxLTExLG9yZ2FuaWMsVW5pdGVkIFN0YXRlcwo5NzQsSlZCWkNQS1hIRk1VNDkxLEpWQlpDUEtYSEZNVTQ5MS13MXEybGV1OSwyMDE1LTAxLTE0VDA1OjI4OjQ2LjAwMDAwMCswMDAwLDIwMTUtMDEtMTRUMDU6MzM6NDAuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA1LDUuMSwyMDE1LTAxLTA3LG9yZ2FuaWMsVW5pdGVkIFN0YXRlcwo5NzUsV0JLRllKWENaTlVINTYzLFdCS0ZZSlhDWk5VSDU2My15N3JrYm5naiwyMDE1LTAxLTE0VDA2OjM3OjE1LjAwMDAwMCswMDAwLDIwMTUtMDEtMTRUMDY6Mzc6MjEuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAzLDM5LjAsMjAxNS0wMS0xMyxvcmdhbmljLENhbmFkYQo5ODEsVkxRSFlKQ0tCT0lONzI5LFZMUUhZSkNLQk9JTjcyOS0yN3BvZ21qdiwyMDE1LTAxLTE0VDA3OjA0OjMyLjAwMDAwMCswMDAwLDIwMTUtMDEtMTRUMDc6MDg6NTYuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAzLDkuMywyMDE1LTAxLTEwLG9yZ2FuaWMsSmFwYW4KOTg1LEdKQ1hOVFdFQklQUTM2OSxHSkNYTlRXRUJJUFEzNjktM3VvcGNrbnksMjAxNS0wMS0xNFQwNzo1MjoxMy4wMDAwMDArMDAwMCwyMDE1LTAxLTE0VDA4OjExOjQ5LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNiwzNS45LDIwMTUtMDEtMTQsb3JnYW5pYyxVbml0ZWQgU3RhdGVzCjk4NyxKVVlCRk1QRVJMRFczOTQsSlVZQkZNUEVSTERXMzk0LWF6bXE3dzlsLDIwMTUtMDEtMTRUMDg6MjE6MTMuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNFQwODo0NToxMy4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDQsMzAuMSwyMDE1LTAxLTEzLG9yZ2FuaWMsVW5pdGVkIFN0YXRlcwo5ODgsUU5MVlJERU9YRllKODkyLFFOTFZSREVPWEZZSjg5Mi01dTN3bjhwNywyMDE1LTAxLTE0VDA4OjIxOjQyLjAwMDAwMCswMDAwLDIwMTUtMDEtMTRUMDg6Mjg6MTguMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA4LDM0LjYsMjAxNS0wMS0wOSxjcm9zc3Byb21vLEF1c3RyYWxpYQo5OTAsUU5MVlJERU9YRllKODkyLFFOTFZSREVPWEZZSjg5Mi01dTN3bjhwNywyMDE1LTAxLTE0VDA4OjIxOjQyLjAwMDAwMCswMDAwLDIwMTUtMDEtMTRUMDg6MzM6MjQuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA5LDM0LjYsMjAxNS0wMS0wOSxjcm9zc3Byb21vLEF1c3RyYWxpYQo5OTcsSERTQU1QVE9MQldDNDM4LEhEU0FNUFRPTEJXQzQzOC12dDh1Y3BtMywyMDE1LTAxLTE0VDA5OjAyOjMxLjAwMDAwMCswMDAwLDIwMTUtMDEtMTRUMDk6MTY6MTkuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA2LDIwLjcsMjAxNS0wMS0xNCxvcmdhbmljLFN3aXR6ZXJsYW5kCjEwMDUsTVRDSVdLT1ZBU1lQOTI1LE1UQ0lXS09WQVNZUDkyNS04YTZ4ZnFvaywyMDE1LTAxLTE0VDEwOjE4OjMyLjAwMDAwMCswMDAwLDIwMTUtMDEtMTRUMTA6MzE6MjAuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA0LDE2LjMsMjAxNS0wMS0xNCxvcmdhbmljLEdlcm1hbnkKMTAwOSxHQVlJQkxVQ09FREo3MzIsR0FZSUJMVUNPRURKNzMyLTdvY3N0MW16LDIwMTUtMDEtMTRUMTE6NDM6NTEuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNFQxMTo0NzozMy4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjEsMzUuMSwyMDE1LTAxLTAzLG9yZ2FuaWMsVW5pdGVkIFN0YXRlcwoxMDE1LE5NUlVXSEFZSlBCUTgyNCxOTVJVV0hBWUpQQlE4MjQtMTQ1Y3I4N3EsMjAxNS0wMS0xNFQxMjowMjoyMy4wMDAwMDArMDAwMCwyMDE1LTAxLTE0VDEyOjMyOjUzLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wODQ5LDMzLjMsMjAxNS0wMS0wOCxvcmdhbmljLEhvbmcgS29uZwoxMDE2LE5NUlVXSEFZSlBCUTgyNCxOTVJVV0hBWUpQQlE4MjQtMTQ1Y3I4N3EsMjAxNS0wMS0xNFQxMjowMjoyMy4wMDAwMDArMDAwMCwyMDE1LTAxLTE0VDEyOjMzOjI5LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wOCwzMy4zLDIwMTUtMDEtMDgsb3JnYW5pYyxIb25nIEtvbmcKMTAxNyxOQU9KUkRNQ1NFQkkyODEsTkFPSlJETUNTRUJJMjgxLWd3YjlvNmRjLDIwMTUtMDEtMTRUMTI6NDk6NDUuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNFQxMjo1MTo1Ny4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDU0LDE1LjgsMjAxNS0wMS0xMSxvcmdhbmljLE5vcndheQoxMDI0LEdBWUlCTFVDT0VESjczMixHQVlJQkxVQ09FREo3MzItbHBrdXdncjQsMjAxNS0wMS0xNFQxNDo1NTozOC4wMDAwMDArMDAwMCwyMDE1LTAxLTE0VDE1OjEyOjAyLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wOCwyOS42LDIwMTUtMDEtMDMsb3JnYW5pYyxVbml0ZWQgU3RhdGVzCjEwMjcsQkZOTFVSSVNKWFRINjQ3LEJGTkxVUklTSlhUSDY0Ny16aTk2Y3BuMSwyMDE1LTAxLTE0VDE0OjU5OjQxLjAwMDAwMCswMDAwLDIwMTUtMDEtMTRUMTU6MTY6NDcuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAyNCwyNC44LDIwMTUtMDEtMTAsb3JnYW5pYyxJbmRpYQoxMDMwLEJGTkxVUklTSlhUSDY0NyxCRk5MVVJJU0pYVEg2NDctemk5NmNwbjEsMjAxNS0wMS0xNFQxNDo1OTo0MS4wMDAwMDArMDAwMCwyMDE1LTAxLTE0VDE1OjIyOjE3LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMjIsMjQuOCwyMDE1LTAxLTEwLG9yZ2FuaWMsSW5kaWEKMTAzMSxYSUFIQk5LRUNHUk81OTgsWElBSEJOS0VDR1JPNTk4LXVuMWZiejk1LDIwMTUtMDEtMTRUMTY6MDY6MzcuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNFQxNjowOTo0My4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDUsMjcuMiwyMDE1LTAxLTE0LGdvb2dsZSxFZ3lwdAoxMDMyLFhJQUhCTktFQ0dSTzU5OCxYSUFIQk5LRUNHUk81OTgtdW4xZmJ6OTUsMjAxNS0wMS0xNFQxNjowNjozNy4wMDAwMDArMDAwMCwyMDE1LTAxLTE0VDE2OjE3OjE5LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNDUsMjcuMiwyMDE1LTAxLTE0LGdvb2dsZSxFZ3lwdAoxMDMzLFhJQUhCTktFQ0dSTzU5OCxYSUFIQk5LRUNHUk81OTgtdW4xZmJ6OTUsMjAxNS0wMS0xNFQxNjowNjozNy4wMDAwMDArMDAwMCwyMDE1LTAxLTE0VDE2OjI0OjEzLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNCwyNy4yLDIwMTUtMDEtMTQsZ29vZ2xlLEVneXB0CjEwMzQsWElBSEJOS0VDR1JPNTk4LFhJQUhCTktFQ0dSTzU5OC11bjFmYno5NSwyMDE1LTAxLTE0VDE2OjA2OjM3LjAwMDAwMCswMDAwLDIwMTUtMDEtMTRUMTY6MjY6NDMuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAxLDI3LjIsMjAxNS0wMS0xNCxnb29nbGUsRWd5cHQKMTAzNixYSUFIQk5LRUNHUk81OTgsWElBSEJOS0VDR1JPNTk4LXVuMWZiejk1LDIwMTUtMDEtMTRUMTY6MDY6MzcuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNFQxNjoyODowMS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDIsMjcuMiwyMDE1LTAxLTE0LGdvb2dsZSxFZ3lwdAoxMDM5LE9NQ1ZVQUlLU0RUUjY1MSxPTUNWVUFJS1NEVFI2NTEtYmZsNmRpcmosMjAxNS0wMS0xNFQxNjo0MjoxNC4wMDAwMDArMDAwMCwyMDE1LTAxLTE0VDE2OjQ1OjIwLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMywyNS40LDIwMTUtMDEtMDcsb3RoZXJfY2FtcGFpZ24sVW5pdGVkIFN0YXRlcwoxMDQwLE9NQ1ZVQUlLU0RUUjY1MSxPTUNWVUFJS1NEVFI2NTEtYmZsNmRpcmosMjAxNS0wMS0xNFQxNjo0MjoxNC4wMDAwMDArMDAwMCwyMDE1LTAxLTE0VDE2OjU2OjAyLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNiwyNS40LDIwMTUtMDEtMDcsb3RoZXJfY2FtcGFpZ24sVW5pdGVkIFN0YXRlcwoxMDQ5LFJNT1NXSEpHRUxDSTY3NSxSTU9TV0hKR0VMQ0k2NzUtMWJueGRxenAsMjAxNS0wMS0xNFQxNzoyMjo1My4wMDAwMDArMDAwMCwyMDE1LTAxLTE0VDE3OjQzOjExLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNSwyMC4zLDIwMTUtMDEtMTAsb3RoZXJfY2FtcGFpZ24sRnJhbmNlCjEwNTAsUU5MVlJERU9YRllKODkyLFFOTFZSREVPWEZZSjg5Mi1oM2pvY2xnZiwyMDE1LTAxLTE0VDE4OjIxOjE4LjAwMDAwMCswMDAwLDIwMTUtMDEtMTRUMTg6Mjc6MDAuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA1LDkuNCwyMDE1LTAxLTA5LGNyb3NzcHJvbW8sQXVzdHJhbGlhCjEwNTIsUFpCTlJLU01VTEhYMjEzLFBaQk5SS1NNVUxIWDIxMy1meG9pYmpubCwyMDE1LTAxLTE0VDE4OjMzOjU2LjAwMDAwMCswMDAwLDIwMTUtMDEtMTRUMTg6Mzg6NDQuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAxLDEzLjMsMjAxNS0wMS0wNyxvcmdhbmljLEluZGlhCjEwNTMsUFpCTlJLU01VTEhYMjEzLFBaQk5SS1NNVUxIWDIxMy1meG9pYmpubCwyMDE1LTAxLTE0VDE4OjMzOjU2LjAwMDAwMCswMDAwLDIwMTUtMDEtMTRUMTg6NDU6MjYuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAwNiwxMy4zLDIwMTUtMDEtMDcsb3JnYW5pYyxJbmRpYQoxMDY1LE1YQ09WRVlJQUtGSDU5NCxNWENPVkVZSUFLRkg1OTQtNDI5M3pzdTEsMjAxNS0wMS0xNVQwMDoxOTo0Mi4wMDAwMDArMDAwMCwyMDE1LTAxLTE1VDAwOjI0OjE4LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNDgsMjcuNywyMDE1LTAxLTEwLG9yZ2FuaWMsQ2hpbmEKMTA2OSxHSkNYTlRXRUJJUFEzNjksR0pDWE5UV0VCSVBRMzY5LWs2cW9weWJzLDIwMTUtMDEtMTVUMDA6NTQ6NDAuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNVQwMDo1NToxMC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDIsMTkuMywyMDE1LTAxLTE0LG9yZ2FuaWMsVW5pdGVkIFN0YXRlcwoxMDcyLEdKQ1hOVFdFQklQUTM2OSxHSkNYTlRXRUJJUFEzNjktazZxb3B5YnMsMjAxNS0wMS0xNVQwMDo1NDo0MC4wMDAwMDArMDAwMCwyMDE1LTAxLTE1VDAxOjA0OjA0LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4xLDE5LjMsMjAxNS0wMS0xNCxvcmdhbmljLFVuaXRlZCBTdGF0ZXMKMTA3MyxHSkNYTlRXRUJJUFEzNjksR0pDWE5UV0VCSVBRMzY5LWs2cW9weWJzLDIwMTUtMDEtMTVUMDA6NTQ6NDAuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNVQwMTowNDoyOC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMSwxOS4zLDIwMTUtMDEtMTQsb3JnYW5pYyxVbml0ZWQgU3RhdGVzCjEwODEsTVRDSVdLT1ZBU1lQOTI1LE1UQ0lXS09WQVNZUDkyNS05ZTZhc2xoMiwyMDE1LTAxLTE1VDAyOjE1OjExLjAwMDAwMCswMDAwLDIwMTUtMDEtMTVUMDI6MzE6MTcuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAzLDM1LjMsMjAxNS0wMS0xNCxvcmdhbmljLEdlcm1hbnkKMTA4MyxNVENJV0tPVkFTWVA5MjUsTVRDSVdLT1ZBU1lQOTI1LTllNmFzbGgyLDIwMTUtMDEtMTVUMDI6MTU6MTEuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNVQwMjozMjo1OS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDYsMzUuMywyMDE1LTAxLTE0LG9yZ2FuaWMsR2VybWFueQoxMDk3LFdOVkJBWUdDTEpJUjUxNyxXTlZCQVlHQ0xKSVI1MTctZzFkYnI1ZnosMjAxNS0wMS0xNVQwMzoyNTo1OS4wMDAwMDArMDAwMCwyMDE1LTAxLTE1VDAzOjUwOjA1LjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMDc3LDI4LjgsMjAxNS0wMS0xMyxmYWNlYm9vayxTd2VkZW4KMTA5OSxaTUpMUEdDUklLTkE0NzEsWk1KTFBHQ1JJS05BNDcxLXNqa2ZtYzR5LDIwMTUtMDEtMTVUMDM6Mzk6MzguMDAwMDAwKzAwMDAsMjAxNS0wMS0xNVQwMzo0MzoyNi4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDYsMTcuNSwyMDE1LTAxLTEwLG9yZ2FuaWMsRWd5cHQKMTEwMCxaTUpMUEdDUklLTkE0NzEsWk1KTFBHQ1JJS05BNDcxLXNqa2ZtYzR5LDIwMTUtMDEtMTVUMDM6Mzk6MzguMDAwMDAwKzAwMDAsMjAxNS0wMS0xNVQwMzo0NTo1MC4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjA0NSwxNy41LDIwMTUtMDEtMTAsb3JnYW5pYyxFZ3lwdAoxMTAxLFpNSkxQR0NSSUtOQTQ3MSxaTUpMUEdDUklLTkE0NzEtc2prZm1jNHksMjAxNS0wMS0xNVQwMzozOTozOC4wMDAwMDArMDAwMCwyMDE1LTAxLTE1VDAzOjUyOjE0LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMSwxNy41LDIwMTUtMDEtMTAsb3JnYW5pYyxFZ3lwdAoxMTA2LEJGTkxVUklTSlhUSDY0NyxCRk5MVVJJU0pYVEg2NDctZ3N2amI3d2UsMjAxNS0wMS0xNVQwNTowMTo1MC4wMDAwMDArMDAwMCwyMDE1LTAxLTE1VDA1OjA4OjQ0LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMjIsMTMuNSwyMDE1LTAxLTEwLG9yZ2FuaWMsSW5kaWEKMTEwNyxLR1pDT0pIUEZUUVY3NTMsS0daQ09KSFBGVFFWNzUzLXo1NHhvbHdmLDIwMTUtMDEtMTVUMDU6MTU6MzMuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNVQwNToxNzo0NS4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjEsMjEuOCwyMDE1LTAxLTExLG9yZ2FuaWMsVW5pdGVkIFN0YXRlcwoxMTA4LEtHWkNPSkhQRlRRVjc1MyxLR1pDT0pIUEZUUVY3NTMtejU0eG9sd2YsMjAxNS0wMS0xNVQwNToxNTozMy4wMDAwMDArMDAwMCwyMDE1LTAxLTE1VDA1OjI2OjA5LjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMDksMjEuOCwyMDE1LTAxLTExLG9yZ2FuaWMsVW5pdGVkIFN0YXRlcwoxMTEwLERMVEZWUVdZSVhSSjU4OSxETFRGVlFXWUlYUko1ODktbm9oZmFlMzcsMjAxNS0wMS0xNVQwNToxNjowNC4wMDAwMDArMDAwMCwyMDE1LTAxLTE1VDA1OjIyOjQ2LjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMDk4LDEzLjAsMjAxNS0wMS0xMyxvcmdhbmljLFNvdXRoIEFmcmljYQoxMTExLERMVEZWUVdZSVhSSjU4OSxETFRGVlFXWUlYUko1ODktbm9oZmFlMzcsMjAxNS0wMS0xNVQwNToxNjowNC4wMDAwMDArMDAwMCwyMDE1LTAxLTE1VDA1OjI1OjM0LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNDEsMTMuMCwyMDE1LTAxLTEzLG9yZ2FuaWMsU291dGggQWZyaWNhCjExMjIsUU5MVlJERU9YRllKODkyLFFOTFZSREVPWEZZSjg5Mi05bGt0M3JvOCwyMDE1LTAxLTE1VDA2OjQ1OjM0LjAwMDAwMCswMDAwLDIwMTUtMDEtMTVUMDY6NTQ6MzQuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA5LDM1LjksMjAxNS0wMS0wOSxjcm9zc3Byb21vLEF1c3RyYWxpYQoxMTI3LFFEVVpKSUVUQ0FHVzY1NCxRRFVaSklFVENBR1c2NTQteWR3cmx2NnEsMjAxNS0wMS0xNVQwNjo0Njo1MS4wMDAwMDArMDAwMCwyMDE1LTAxLTE1VDA3OjIzOjM5LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wODQsMzguNiwyMDE1LTAxLTA3LGZhY2Vib29rLFN3aXR6ZXJsYW5kCjExMzAsVkxRSFlKQ0tCT0lONzI5LFZMUUhZSkNLQk9JTjcyOS02c2Z5d3Y3bSwyMDE1LTAxLTE1VDA4OjE4OjIwLjAwMDAwMCswMDAwLDIwMTUtMDEtMTVUMDg6MjE6MDIuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAxMiwzNC4wLDIwMTUtMDEtMTAsb3JnYW5pYyxKYXBhbgoxMTM1LFhJQUhCTktFQ0dSTzU5OCxYSUFIQk5LRUNHUk81OTgtbnE3dWVyd3osMjAxNS0wMS0xNVQwOTo1NzozMS4wMDAwMDArMDAwMCwyMDE1LTAxLTE1VDEwOjAwOjQzLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMiwzMC41LDIwMTUtMDEtMTQsZ29vZ2xlLEVneXB0CjExMzYsWElBSEJOS0VDR1JPNTk4LFhJQUhCTktFQ0dSTzU5OC1ucTd1ZXJ3eiwyMDE1LTAxLTE1VDA5OjU3OjMxLjAwMDAwMCswMDAwLDIwMTUtMDEtMTVUMTA6MDE6MTkuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAzNSwzMC41LDIwMTUtMDEtMTQsZ29vZ2xlLEVneXB0CjExMzcsWElBSEJOS0VDR1JPNTk4LFhJQUhCTktFQ0dSTzU5OC1ucTd1ZXJ3eiwyMDE1LTAxLTE1VDA5OjU3OjMxLjAwMDAwMCswMDAwLDIwMTUtMDEtMTVUMTA6MDM6MDEuMDAwMDAwKzAwMDAsYWQsYWRfMTBzZWMsMC4wNiwzMC41LDIwMTUtMDEtMTQsZ29vZ2xlLEVneXB0CjExMzgsWElBSEJOS0VDR1JPNTk4LFhJQUhCTktFQ0dSTzU5OC1ucTd1ZXJ3eiwyMDE1LTAxLTE1VDA5OjU3OjMxLjAwMDAwMCswMDAwLDIwMTUtMDEtMTVUMTA6MTY6MTMuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA1LDMwLjUsMjAxNS0wMS0xNCxnb29nbGUsRWd5cHQKMTEzOSxYSUFIQk5LRUNHUk81OTgsWElBSEJOS0VDR1JPNTk4LW5xN3Vlcnd6LDIwMTUtMDEtMTVUMDk6NTc6MzEuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNVQxMDoyMToyNS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDMsMzAuNSwyMDE1LTAxLTE0LGdvb2dsZSxFZ3lwdAoxMTQxLFdFUEtZTlJYREZVVDU3MixXRVBLWU5SWERGVVQ1NzItZHo3MTZpOHMsMjAxNS0wMS0xNVQxMDoxNzo1NC4wMDAwMDArMDAwMCwyMDE1LTAxLTE1VDEwOjE4OjM2LjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMDc4LDM5LjUsMjAxNS0wMS0xMyxjcm9zc3Byb21vLENoaW5hCjExNDMsV0VQS1lOUlhERlVUNTcyLFdFUEtZTlJYREZVVDU3Mi1kejcxNmk4cywyMDE1LTAxLTE1VDEwOjE3OjU0LjAwMDAwMCswMDAwLDIwMTUtMDEtMTVUMTA6MjY6MDAuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA0MiwzOS41LDIwMTUtMDEtMTMsY3Jvc3Nwcm9tbyxDaGluYQoxMTQ4LE9NQ1ZVQUlLU0RUUjY1MSxPTUNWVUFJS1NEVFI2NTEteDFndTZmZWEsMjAxNS0wMS0xNVQxMDoyMjo1NS4wMDAwMDArMDAwMCwyMDE1LTAxLTE1VDEwOjM2OjA3LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNywyOS43LDIwMTUtMDEtMDcsb3RoZXJfY2FtcGFpZ24sVW5pdGVkIFN0YXRlcwoxMTUzLEpWQlpDUEtYSEZNVTQ5MSxKVkJaQ1BLWEhGTVU0OTEtanN1YXp5dnAsMjAxNS0wMS0xNVQxMDozNzozOS4wMDAwMDArMDAwMCwyMDE1LTAxLTE1VDEwOjUxOjIxLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wOCwzOC40LDIwMTUtMDEtMDcsb3JnYW5pYyxVbml0ZWQgU3RhdGVzCjExNTcsSlZCWkNQS1hIRk1VNDkxLEpWQlpDUEtYSEZNVTQ5MS1qc3Vhenl2cCwyMDE1LTAxLTE1VDEwOjM3OjM5LjAwMDAwMCswMDAwLDIwMTUtMDEtMTVUMTE6MTE6MjcuMDAwMDAwKzAwMDAsYWQsYWRfMTBzZWMsMC4wOSwzOC40LDIwMTUtMDEtMDcsb3JnYW5pYyxVbml0ZWQgU3RhdGVzCjExNTksWElBSEJOS0VDR1JPNTk4LFhJQUhCTktFQ0dSTzU5OC1hZzE5anQ4ZiwyMDE1LTAxLTE1VDExOjM0OjQyLjAwMDAwMCswMDAwLDIwMTUtMDEtMTVUMTE6Mzg6NDguMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAxLDE1LjksMjAxNS0wMS0xNCxnb29nbGUsRWd5cHQKMTE2MCxYSUFIQk5LRUNHUk81OTgsWElBSEJOS0VDR1JPNTk4LWFnMTlqdDhmLDIwMTUtMDEtMTVUMTE6MzQ6NDIuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNVQxMTo0MDo1NC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDM1LDE1LjksMjAxNS0wMS0xNCxnb29nbGUsRWd5cHQKMTE2NixPQU5DSVZZWEpNUkw1OTcsT0FOQ0lWWVhKTVJMNTk3LWVpeTFmdDVhLDIwMTUtMDEtMTVUMTE6NTA6NDQuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNVQxMjoxMToyMC4wMDAwMDArMDAwMCxhZCxhZF8yMHNlYywwLjA5OCwzOC44LDIwMTUtMDEtMTUsb3RoZXJfY2FtcGFpZ24sSW5kaWEKMTE2NyxPQU5DSVZZWEpNUkw1OTcsT0FOQ0lWWVhKTVJMNTk3LWVpeTFmdDVhLDIwMTUtMDEtMTVUMTE6NTA6NDQuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNVQxMjoyNTo0NC4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjAzNCwzOC44LDIwMTUtMDEtMTUsb3RoZXJfY2FtcGFpZ24sSW5kaWEKMTE3NCxPQU5DSVZZWEpNUkw1OTcsT0FOQ0lWWVhKTVJMNTk3LWJyaTl1cGgxLDIwMTUtMDEtMTVUMTM6MjQ6MjcuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNVQxMzoyNDo1MS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDA0LDE3LjcsMjAxNS0wMS0xNSxvdGhlcl9jYW1wYWlnbixJbmRpYQoxMTc1LE9BTkNJVllYSk1STDU5NyxPQU5DSVZZWEpNUkw1OTctYnJpOXVwaDEsMjAxNS0wMS0xNVQxMzoyNDoyNy4wMDAwMDArMDAwMCwyMDE1LTAxLTE1VDEzOjI4OjE1LjAwMDAwMCswMDAwLGFkLGFkXzE1c2VjLDAuMDgsMTcuNywyMDE1LTAxLTE1LG90aGVyX2NhbXBhaWduLEluZGlhCjExNzgsSlZCWkNQS1hIRk1VNDkxLEpWQlpDUEtYSEZNVTQ5MS0zZWh5N2RxOSwyMDE1LTAxLTE1VDE2OjM3OjQ5LjAwMDAwMCswMDAwLDIwMTUtMDEtMTVUMTY6NDU6MjUuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA3LDguMCwyMDE1LTAxLTA3LG9yZ2FuaWMsVW5pdGVkIFN0YXRlcwoxMTg0LE1UQ0lXS09WQVNZUDkyNSxNVENJV0tPVkFTWVA5MjUteXNwZGlrcWosMjAxNS0wMS0xNVQxNzowNjozMy4wMDAwMDArMDAwMCwyMDE1LTAxLTE1VDE3OjA4OjI3LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNSwzMS4wLDIwMTUtMDEtMTQsb3JnYW5pYyxHZXJtYW55CjExODYsTVRDSVdLT1ZBU1lQOTI1LE1UQ0lXS09WQVNZUDkyNS15c3BkaWtxaiwyMDE1LTAxLTE1VDE3OjA2OjMzLjAwMDAwMCswMDAwLDIwMTUtMDEtMTVUMTc6MTE6MjEuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA0LDMxLjAsMjAxNS0wMS0xNCxvcmdhbmljLEdlcm1hbnkKMTE4OCxETFRGVlFXWUlYUko1ODksRExURlZRV1lJWFJKNTg5LXI0a2J4MXl0LDIwMTUtMDEtMTVUMTg6NDg6NTIuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNVQxOTowMzo0MC4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjA3NywxNy44LDIwMTUtMDEtMTMsb3JnYW5pYyxTb3V0aCBBZnJpY2EKMTE5MyxHSkNYTlRXRUJJUFEzNjksR0pDWE5UV0VCSVBRMzY5LTVpa212ZmIxLDIwMTUtMDEtMTVUMjA6NTI6NTAuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNVQyMDo1NDoyNi4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDIsMzMuMiwyMDE1LTAxLTE0LG9yZ2FuaWMsVW5pdGVkIFN0YXRlcwoxMTk0LEdKQ1hOVFdFQklQUTM2OSxHSkNYTlRXRUJJUFEzNjktNWlrbXZmYjEsMjAxNS0wMS0xNVQyMDo1Mjo1MC4wMDAwMDArMDAwMCwyMDE1LTAxLTE1VDIxOjAyOjMyLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wOSwzMy4yLDIwMTUtMDEtMTQsb3JnYW5pYyxVbml0ZWQgU3RhdGVzCjExOTksVkxRSFlKQ0tCT0lONzI5LFZMUUhZSkNLQk9JTjcyOS05ZXZqb3djdCwyMDE1LTAxLTE1VDIxOjU1OjIxLjAwMDAwMCswMDAwLDIwMTUtMDEtMTVUMjI6MDg6NTcuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAxOCwzNy4yLDIwMTUtMDEtMTAsb3JnYW5pYyxKYXBhbgoxMjAzLFpNSkxQR0NSSUtOQTQ3MSxaTUpMUEdDUklLTkE0NzEtaGk5dXI2eWIsMjAxNS0wMS0xNVQyMjo0OToyMC4wMDAwMDArMDAwMCwyMDE1LTAxLTE1VDIzOjE3OjIwLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNDUsMzkuMCwyMDE1LTAxLTEwLG9yZ2FuaWMsRWd5cHQKMTIxMCxSWVpIQUpFWE1CSUY3MjQsUllaSEFKRVhNQklGNzI0LXFwaWhtcng1LDIwMTUtMDEtMTZUMDE6MTg6MTIuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNlQwMToyNTo1NC4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjA4MSwxNC4wLDIwMTUtMDEtMTUsZ29vZ2xlLFBvcnR1Z2FsCjEyMjIsSlZCWkNQS1hIRk1VNDkxLEpWQlpDUEtYSEZNVTQ5MS0yb3p1eWxrdywyMDE1LTAxLTE2VDAyOjU1OjM1LjAwMDAwMCswMDAwLDIwMTUtMDEtMTZUMDM6MjA6NTMuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA1LDM4LjIsMjAxNS0wMS0wNyxvcmdhbmljLFVuaXRlZCBTdGF0ZXMKMTIyNixYSUFIQk5LRUNHUk81OTgsWElBSEJOS0VDR1JPNTk4LTc0YXRtaXhnLDIwMTUtMDEtMTZUMDM6NDI6MzkuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNlQwMzo0NjowOS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDMsMTYuOCwyMDE1LTAxLTE0LGdvb2dsZSxFZ3lwdAoxMjI5LEJGTkxVUklTSlhUSDY0NyxCRk5MVVJJU0pYVEg2NDctZmRhc3d5cWcsMjAxNS0wMS0xNlQwMzo0NzoxNC4wMDAwMDArMDAwMCwyMDE1LTAxLTE2VDAzOjUyOjMyLjAwMDAwMCswMDAwLGFkLGFkXzIwc2VjLDAuMDg0LDEyLjEsMjAxNS0wMS0xMCxvcmdhbmljLEluZGlhCjEyMzAsQkZOTFVSSVNKWFRINjQ3LEJGTkxVUklTSlhUSDY0Ny1mZGFzd3lxZywyMDE1LTAxLTE2VDAzOjQ3OjE0LjAwMDAwMCswMDAwLDIwMTUtMDEtMTZUMDM6NTU6MDIuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAxOCwxMi4xLDIwMTUtMDEtMTAsb3JnYW5pYyxJbmRpYQoxMjM1LE9NQ1ZVQUlLU0RUUjY1MSxPTUNWVUFJS1NEVFI2NTEtcTVtNnZyNHgsMjAxNS0wMS0xNlQwNzoyODowMC4wMDAwMDArMDAwMCwyMDE1LTAxLTE2VDA3OjUwOjAwLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4xLDM2LjksMjAxNS0wMS0wNyxvdGhlcl9jYW1wYWlnbixVbml0ZWQgU3RhdGVzCjEyMzYsT01DVlVBSUtTRFRSNjUxLE9NQ1ZVQUlLU0RUUjY1MS1xNW02dnI0eCwyMDE1LTAxLTE2VDA3OjI4OjAwLjAwMDAwMCswMDAwLDIwMTUtMDEtMTZUMDc6NTM6NDguMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAyLDM2LjksMjAxNS0wMS0wNyxvdGhlcl9jYW1wYWlnbixVbml0ZWQgU3RhdGVzCjEyMzcsT01DVlVBSUtTRFRSNjUxLE9NQ1ZVQUlLU0RUUjY1MS1xNW02dnI0eCwyMDE1LTAxLTE2VDA3OjI4OjAwLjAwMDAwMCswMDAwLDIwMTUtMDEtMTZUMDg6MDE6MzAuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA3LDM2LjksMjAxNS0wMS0wNyxvdGhlcl9jYW1wYWlnbixVbml0ZWQgU3RhdGVzCjEyNDMsWlBUSUhOU1ZGWUFRMTQ2LFpQVElITlNWRllBUTE0Ni1vaWwxODI2dSwyMDE1LTAxLTE2VDA3OjQ2OjQxLjAwMDAwMCswMDAwLDIwMTUtMDEtMTZUMDc6NTY6NTMuMDAwMDAwKzAwMDAsYWQsYWRfMTBzZWMsMC4wOTYsMjEuOCwyMDE1LTAxLTA0LGZhY2Vib29rLE1leGljbwoxMjQ0LFpQVElITlNWRllBUTE0NixaUFRJSE5TVkZZQVExNDYtb2lsMTgyNnUsMjAxNS0wMS0xNlQwNzo0Njo0MS4wMDAwMDArMDAwMCwyMDE1LTAxLTE2VDA4OjAzOjUzLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNzIsMjEuOCwyMDE1LTAxLTA0LGZhY2Vib29rLE1leGljbwoxMjQ1LFVQRk1MSUVLV0hZWDk2NCxVUEZNTElFS1dIWVg5NjQteHJvZ21kYmssMjAxNS0wMS0xNlQwODowMzozOS4wMDAwMDArMDAwMCwyMDE1LTAxLTE2VDA4OjA4OjI3LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4xLDMzLjQsMjAxNS0wMS0xNixvcmdhbmljLEdlcm1hbnkKMTI0OCxVUEZNTElFS1dIWVg5NjQsVVBGTUxJRUtXSFlYOTY0LXhyb2dtZGJrLDIwMTUtMDEtMTZUMDg6MDM6MzkuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNlQwODoyMjoyNy4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDMsMzMuNCwyMDE1LTAxLTE2LG9yZ2FuaWMsR2VybWFueQoxMjU1LFFKR1ZPQkxBVElIVzQ1NyxRSkdWT0JMQVRJSFc0NTctdWhqN2Z4dGQsMjAxNS0wMS0xNlQwODoxNjozMy4wMDAwMDArMDAwMCwyMDE1LTAxLTE2VDA4OjI1OjIxLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMzMsMjkuNCwyMDE1LTAxLTAyLG90aGVyX2NhbXBhaWduLFN3ZWRlbgoxMjU2LFFKR1ZPQkxBVElIVzQ1NyxRSkdWT0JMQVRJSFc0NTctdWhqN2Z4dGQsMjAxNS0wMS0xNlQwODoxNjozMy4wMDAwMDArMDAwMCwyMDE1LTAxLTE2VDA4OjI5OjQ1LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMjIsMjkuNCwyMDE1LTAxLTAyLG90aGVyX2NhbXBhaWduLFN3ZWRlbgoxMjU3LFFKR1ZPQkxBVElIVzQ1NyxRSkdWT0JMQVRJSFc0NTctdWhqN2Z4dGQsMjAxNS0wMS0xNlQwODoxNjozMy4wMDAwMDArMDAwMCwyMDE1LTAxLTE2VDA4OjMyOjI3LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wODgsMjkuNCwyMDE1LTAxLTAyLG90aGVyX2NhbXBhaWduLFN3ZWRlbgoxMjY0LFJNT1NXSEpHRUxDSTY3NSxSTU9TV0hKR0VMQ0k2NzUtb2lic3luNGYsMjAxNS0wMS0xNlQwOTozMTo0Mi4wMDAwMDArMDAwMCwyMDE1LTAxLTE2VDA5OjMyOjU0LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wOSwxNi42LDIwMTUtMDEtMTAsb3RoZXJfY2FtcGFpZ24sRnJhbmNlCjEyNjcsTkFPSlJETUNTRUJJMjgxLE5BT0pSRE1DU0VCSTI4MS1ud2Z2ZDRtbywyMDE1LTAxLTE2VDEwOjAwOjEyLjAwMDAwMCswMDAwLDIwMTUtMDEtMTZUMTA6MDA6MzAuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAzNiwxNS40LDIwMTUtMDEtMTEsb3JnYW5pYyxOb3J3YXkKMTI2OSxOQU9KUkRNQ1NFQkkyODEsTkFPSlJETUNTRUJJMjgxLW53ZnZkNG1vLDIwMTUtMDEtMTZUMTA6MDA6MTIuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNlQxMDowNDozNi4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDI3LDE1LjQsMjAxNS0wMS0xMSxvcmdhbmljLE5vcndheQoxMjc2LE1ZUUdKS09VSVdIRjYxOSxNWVFHSktPVUlXSEY2MTktOW82cDVnaWEsMjAxNS0wMS0xNlQxMDoyMzoxNS4wMDAwMDArMDAwMCwyMDE1LTAxLTE2VDEwOjI5OjIxLjAwMDAwMCswMDAwLGFkLGFkXzE1c2VjLDAuMDc4LDE3LjQsMjAxNS0wMS0xNixvcmdhbmljLEluZGlhCjEyNzcsR0pDWE5UV0VCSVBRMzY5LEdKQ1hOVFdFQklQUTM2OS00cWd0YmhmYywyMDE1LTAxLTE2VDExOjE3OjE0LjAwMDAwMCswMDAwLDIwMTUtMDEtMTZUMTE6MzA6NTYuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAyLDI2LjQsMjAxNS0wMS0xNCxvcmdhbmljLFVuaXRlZCBTdGF0ZXMKMTI3OCxHSkNYTlRXRUJJUFEzNjksR0pDWE5UV0VCSVBRMzY5LTRxZ3RiaGZjLDIwMTUtMDEtMTZUMTE6MTc6MTQuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNlQxMTozMTowOC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDQsMjYuNCwyMDE1LTAxLTE0LG9yZ2FuaWMsVW5pdGVkIFN0YXRlcwoxMjgyLEdKQ1hOVFdFQklQUTM2OSxHSkNYTlRXRUJJUFEzNjktNHFndGJoZmMsMjAxNS0wMS0xNlQxMToxNzoxNC4wMDAwMDArMDAwMCwyMDE1LTAxLTE2VDExOjQxOjI2LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4xLDI2LjQsMjAxNS0wMS0xNCxvcmdhbmljLFVuaXRlZCBTdGF0ZXMKMTI4NyxNVENJV0tPVkFTWVA5MjUsTVRDSVdLT1ZBU1lQOTI1LWhzNGk1MnZnLDIwMTUtMDEtMTZUMTI6MjI6MjMuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNlQxMjozMDozNS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMSw0MS4wLDIwMTUtMDEtMTQsb3JnYW5pYyxHZXJtYW55CjEyODksTVRDSVdLT1ZBU1lQOTI1LE1UQ0lXS09WQVNZUDkyNS1oczRpNTJ2ZywyMDE1LTAxLTE2VDEyOjIyOjIzLjAwMDAwMCswMDAwLDIwMTUtMDEtMTZUMTI6NDg6MjMuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjEsNDEuMCwyMDE1LTAxLTE0LG9yZ2FuaWMsR2VybWFueQoxMjkyLFpQVElITlNWRllBUTE0NixaUFRJSE5TVkZZQVExNDYtdThjNG5xNzUsMjAxNS0wMS0xNlQxMjoyMzo1OS4wMDAwMDArMDAwMCwyMDE1LTAxLTE2VDEyOjMxOjIzLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNzIsMTAuMiwyMDE1LTAxLTA0LGZhY2Vib29rLE1leGljbwoxMjk0LFBMUUVTQk5HVURLSjE1NCxQTFFFU0JOR1VES0oxNTQtOHB2dGFsNm4sMjAxNS0wMS0xNlQxMjozNjozOC4wMDAwMDArMDAwMCwyMDE1LTAxLTE2VDEyOjQ2OjAyLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNDIsMzIuNiwyMDE1LTAxLTEyLGZhY2Vib29rLEphcGFuCjEzMDIsV0VQS1lOUlhERlVUNTcyLFdFUEtZTlJYREZVVDU3Mi1haDhiNms5NSwyMDE1LTAxLTE2VDEzOjExOjI2LjAwMDAwMCswMDAwLDIwMTUtMDEtMTZUMTM6MTg6MjAuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA3MiwxMi45LDIwMTUtMDEtMTMsY3Jvc3Nwcm9tbyxDaGluYQoxMzAzLEdKQ1hOVFdFQklQUTM2OSxHSkNYTlRXRUJJUFEzNjktazdweG00NTEsMjAxNS0wMS0xNlQxMzoxOToxMC4wMDAwMDArMDAwMCwyMDE1LTAxLTE2VDEzOjI2OjIyLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNCwzMy40LDIwMTUtMDEtMTQsb3JnYW5pYyxVbml0ZWQgU3RhdGVzCjEzMDYsT01DVlVBSUtTRFRSNjUxLE9NQ1ZVQUlLU0RUUjY1MS1xYjRwM3JmdiwyMDE1LTAxLTE2VDEzOjI4OjU2LjAwMDAwMCswMDAwLDIwMTUtMDEtMTZUMTM6Mjk6MzIuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA1LDQwLjQsMjAxNS0wMS0wNyxvdGhlcl9jYW1wYWlnbixVbml0ZWQgU3RhdGVzCjEzMDcsT01DVlVBSUtTRFRSNjUxLE9NQ1ZVQUlLU0RUUjY1MS1xYjRwM3JmdiwyMDE1LTAxLTE2VDEzOjI4OjU2LjAwMDAwMCswMDAwLDIwMTUtMDEtMTZUMTM6NTE6MDIuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA4LDQwLjQsMjAxNS0wMS0wNyxvdGhlcl9jYW1wYWlnbixVbml0ZWQgU3RhdGVzCjEzMTQsR0FZSUJMVUNPRURKNzMyLEdBWUlCTFVDT0VESjczMi05dmEyNHV6ZCwyMDE1LTAxLTE2VDEzOjM1OjE0LjAwMDAwMCswMDAwLDIwMTUtMDEtMTZUMTQ6MDA6NDQuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA0LDI2LjgsMjAxNS0wMS0wMyxvcmdhbmljLFVuaXRlZCBTdGF0ZXMKMTMxNSxQSk9UQk5IWExGUlEyNjUsUEpPVEJOSFhMRlJRMjY1LWJjOWlsaDR3LDIwMTUtMDEtMTZUMTQ6NDc6MzkuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNlQxNDo1Mzo1MS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMSw0MC4wLDIwMTUtMDEtMTYsb3JnYW5pYyxBdXN0cmlhCjEzMTYsUEpPVEJOSFhMRlJRMjY1LFBKT1RCTkhYTEZSUTI2NS1iYzlpbGg0dywyMDE1LTAxLTE2VDE0OjQ3OjM5LjAwMDAwMCswMDAwLDIwMTUtMDEtMTZUMTQ6NTU6MzkuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA3LDQwLjAsMjAxNS0wMS0xNixvcmdhbmljLEF1c3RyaWEKMTMyMSxHSkNYTlRXRUJJUFEzNjksR0pDWE5UV0VCSVBRMzY5LTZidmM1Z3FkLDIwMTUtMDEtMTZUMTU6MzI6MzQuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNlQxNTozMjo1Mi4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDIsNS4xLDIwMTUtMDEtMTQsb3JnYW5pYyxVbml0ZWQgU3RhdGVzCjEzMjQsUFpCTlJLU01VTEhYMjEzLFBaQk5SS1NNVUxIWDIxMy1vNnh5dXZoOCwyMDE1LTAxLTE2VDE2OjI5OjEwLjAwMDAwMCswMDAwLDIwMTUtMDEtMTZUMTY6MzM6NTguMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAyLDE4LjUsMjAxNS0wMS0wNyxvcmdhbmljLEluZGlhCjEzMjUsUFpCTlJLU01VTEhYMjEzLFBaQk5SS1NNVUxIWDIxMy1vNnh5dXZoOCwyMDE1LTAxLTE2VDE2OjI5OjEwLjAwMDAwMCswMDAwLDIwMTUtMDEtMTZUMTY6MzQ6MzQuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAxNiwxOC41LDIwMTUtMDEtMDcsb3JnYW5pYyxJbmRpYQoxMzI4LEtHWkNPSkhQRlRRVjc1MyxLR1pDT0pIUEZUUVY3NTMtd2gzc2U1NjcsMjAxNS0wMS0xNlQxNzozNzoyOC4wMDAwMDArMDAwMCwyMDE1LTAxLTE2VDE3OjU4OjIyLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4xLDM3LjAsMjAxNS0wMS0xMSxvcmdhbmljLFVuaXRlZCBTdGF0ZXMKMTMzNCxIRFNBTVBUT0xCV0M0MzgsSERTQU1QVE9MQldDNDM4LXg2OXRuenJ2LDIwMTUtMDEtMTZUMTk6NDI6MjIuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNlQxOTo0OTo0Ni4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDk2LDE1LjksMjAxNS0wMS0xNCxvcmdhbmljLFN3aXR6ZXJsYW5kCjEzNDEsWElBSEJOS0VDR1JPNTk4LFhJQUhCTktFQ0dSTzU5OC1scGk4MnVyaywyMDE1LTAxLTE2VDIwOjM4OjIwLjAwMDAwMCswMDAwLDIwMTUtMDEtMTZUMjA6NTQ6MDguMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAyLDQxLjAsMjAxNS0wMS0xNCxnb29nbGUsRWd5cHQKMTM0MyxYSUFIQk5LRUNHUk81OTgsWElBSEJOS0VDR1JPNTk4LWxwaTgydXJrLDIwMTUtMDEtMTZUMjA6Mzg6MjAuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNlQyMTowMjozMi4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDIsNDEuMCwyMDE1LTAxLTE0LGdvb2dsZSxFZ3lwdAoxMzQ0LFhJQUhCTktFQ0dSTzU5OCxYSUFIQk5LRUNHUk81OTgtbHBpODJ1cmssMjAxNS0wMS0xNlQyMDozODoyMC4wMDAwMDArMDAwMCwyMDE1LTAxLTE2VDIxOjA3OjQ0LjAwMDAwMCswMDAwLGFkLGFkXzE1c2VjLDAuMDksNDEuMCwyMDE1LTAxLTE0LGdvb2dsZSxFZ3lwdAoxMzQ3LEdBWUlCTFVDT0VESjczMixHQVlJQkxVQ09FREo3MzItZWw1ajM0eHQsMjAxNS0wMS0xNlQyMDo1NjozOS4wMDAwMDArMDAwMCwyMDE1LTAxLTE2VDIxOjA0OjAzLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNywyNS41LDIwMTUtMDEtMDMsb3JnYW5pYyxVbml0ZWQgU3RhdGVzCjEzNTEsR0FZSUJMVUNPRURKNzMyLEdBWUlCTFVDT0VESjczMi1lbDVqMzR4dCwyMDE1LTAxLTE2VDIwOjU2OjM5LjAwMDAwMCswMDAwLDIwMTUtMDEtMTZUMjE6MTA6MzMuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjEsMjUuNSwyMDE1LTAxLTAzLG9yZ2FuaWMsVW5pdGVkIFN0YXRlcwoxMzUyLE5BT0pSRE1DU0VCSTI4MSxOQU9KUkRNQ1NFQkkyODEtMW1zeXQ5MmssMjAxNS0wMS0xNlQyMTo1ODo1MC4wMDAwMDArMDAwMCwyMDE1LTAxLTE2VDIyOjA5OjQ0LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNDUsMTUuNSwyMDE1LTAxLTExLG9yZ2FuaWMsTm9yd2F5CjEzNTcsUEpPVEJOSFhMRlJRMjY1LFBKT1RCTkhYTEZSUTI2NS13bXV0cmsyaCwyMDE1LTAxLTE2VDIyOjA2OjIxLjAwMDAwMCswMDAwLDIwMTUtMDEtMTZUMjI6MzI6NTcuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAyLDI2LjcsMjAxNS0wMS0xNixvcmdhbmljLEF1c3RyaWEKMTM2MixRTkxWUkRFT1hGWUo4OTIsUU5MVlJERU9YRllKODkyLXJiZnNocDhpLDIwMTUtMDEtMTZUMjM6Mjc6MDUuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNlQyMzo1MzowNS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDksMjcuNCwyMDE1LTAxLTA5LGNyb3NzcHJvbW8sQXVzdHJhbGlhCjEzNjUsSllFQkNMTlVaVFhRNDU3LEpZRUJDTE5VWlRYUTQ1Ny11bHZqa3doOCwyMDE1LTAxLTE2VDIzOjQ2OjE1LjAwMDAwMCswMDAwLDIwMTUtMDEtMTdUMDA6MTM6MjEuMDAwMDAwKzAwMDAsYWQsYWRfMTBzZWMsMC4wNiwzNy43LDIwMTUtMDEtMDQsb3RoZXJfY2FtcGFpZ24sRWd5cHQKMTM2OCxETFRGVlFXWUlYUko1ODksRExURlZRV1lJWFJKNTg5LXkzdnNycWxiLDIwMTUtMDEtMTdUMDE6MzA6MTcuMDAwMDAwKzAwMDAsMjAxNS0wMS0xN1QwMTo0MDo1OS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDIxOTgsMzcuMiwyMDE1LTAxLTEzLG9yZ2FuaWMsU291dGggQWZyaWNhCjEzNzYsWkdFVlFKU0tGSUJYMzk4LFpHRVZRSlNLRklCWDM5OC1sd3V5MXhhdiwyMDE1LTAxLTE3VDAxOjU5OjE5LjAwMDAwMCswMDAwLDIwMTUtMDEtMTdUMDI6MDM6NDkuMDAwMDAwKzAwMDAsYWQsYWRfMTBzZWMsMC4wOTgsMzMuNiwyMDE1LTAxLTE3LG9yZ2FuaWMsU291dGggS29yZWEKMTM3NyxaR0VWUUpTS0ZJQlgzOTgsWkdFVlFKU0tGSUJYMzk4LWx3dXkxeGF2LDIwMTUtMDEtMTdUMDE6NTk6MTkuMDAwMDAwKzAwMDAsMjAxNS0wMS0xN1QwMjoyMTo1NS4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjA3NywzMy42LDIwMTUtMDEtMTcsb3JnYW5pYyxTb3V0aCBLb3JlYQoxNDAwLFhJQUhCTktFQ0dSTzU5OCxYSUFIQk5LRUNHUk81OTgtZ3J2dTFwNmYsMjAxNS0wMS0xN1QwMzozODozNi4wMDAwMDArMDAwMCwyMDE1LTAxLTE3VDAzOjQyOjEyLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNTUsMTEuMiwyMDE1LTAxLTE0LGdvb2dsZSxFZ3lwdAoxNDA0LFBaQk5SS1NNVUxIWDIxMyxQWkJOUktTTVVMSFgyMTMtMTcyOHFmZG4sMjAxNS0wMS0xN1QwMzozODo0Ni4wMDAwMDArMDAwMCwyMDE1LTAxLTE3VDAzOjQ5OjIyLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMiwyMi41LDIwMTUtMDEtMDcsb3JnYW5pYyxJbmRpYQoxNDA1LFBaQk5SS1NNVUxIWDIxMyxQWkJOUktTTVVMSFgyMTMtMTcyOHFmZG4sMjAxNS0wMS0xN1QwMzozODo0Ni4wMDAwMDArMDAwMCwyMDE1LTAxLTE3VDAzOjUzOjQwLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMjQsMjIuNSwyMDE1LTAxLTA3LG9yZ2FuaWMsSW5kaWEKMTQwNixNWVFHSktPVUlXSEY2MTksTVlRR0pLT1VJV0hGNjE5LTVobnRtaXd5LDIwMTUtMDEtMTdUMDQ6MDM6MTMuMDAwMDAwKzAwMDAsMjAxNS0wMS0xN1QwNDowODoxMy4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDI0LDguMywyMDE1LTAxLTE2LG9yZ2FuaWMsSW5kaWEKMTQwOSxKWUVCQ0xOVVpUWFE0NTcsSllFQkNMTlVaVFhRNDU3LWRtdmt5Mm5oLDIwMTUtMDEtMTdUMDU6MzY6MzcuMDAwMDAwKzAwMDAsMjAxNS0wMS0xN1QwNTo0MjowMS4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjAzNSwxMi40LDIwMTUtMDEtMDQsb3RoZXJfY2FtcGFpZ24sRWd5cHQKMTQxMCxNWVFHSktPVUlXSEY2MTksTVlRR0pLT1VJV0hGNjE5LXRsd2NzeTc2LDIwMTUtMDEtMTdUMDY6MjM6NTguMDAwMDAwKzAwMDAsMjAxNS0wMS0xN1QwNjoyNDoxMC4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjAyOCwxMi4zLDIwMTUtMDEtMTYsb3JnYW5pYyxJbmRpYQoxNDExLE1ZUUdKS09VSVdIRjYxOSxNWVFHSktPVUlXSEY2MTktdGx3Y3N5NzYsMjAxNS0wMS0xN1QwNjoyMzo1OC4wMDAwMDArMDAwMCwyMDE1LTAxLTE3VDA2OjI5OjA0LjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMDE0LDEyLjMsMjAxNS0wMS0xNixvcmdhbmljLEluZGlhCjE0MTMsUEpPVEJOSFhMRlJRMjY1LFBKT1RCTkhYTEZSUTI2NS11YXFkeTVldCwyMDE1LTAxLTE3VDA2OjM0OjEyLjAwMDAwMCswMDAwLDIwMTUtMDEtMTdUMDY6NDI6MDYuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA4LDIxLjUsMjAxNS0wMS0xNixvcmdhbmljLEF1c3RyaWEKMTQyMCxFS0lIWEJSRkdPQ0Q1NzEsRUtJSFhCUkZHT0NENTcxLW41a2UyYWw3LDIwMTUtMDEtMTdUMDg6MTY6MTYuMDAwMDAwKzAwMDAsMjAxNS0wMS0xN1QwODoxNjo1OC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDgsMzcuMiwyMDE1LTAxLTE3LGFwcGxlLFVuaXRlZCBLaW5nZG9tCjE0MjYsV0JLRllKWENaTlVINTYzLFdCS0ZZSlhDWk5VSDU2My1sbWpudTcxZywyMDE1LTAxLTE3VDA4OjMzOjAwLjAwMDAwMCswMDAwLDIwMTUtMDEtMTdUMDg6NDY6NDIuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA1LDE0LjYsMjAxNS0wMS0xMyxvcmdhbmljLENhbmFkYQoxNDM0LEJGTkxVUklTSlhUSDY0NyxCRk5MVVJJU0pYVEg2NDctcWp1Z3BmMm4sMjAxNS0wMS0xN1QwOTo1ODoxOC4wMDAwMDArMDAwMCwyMDE1LTAxLTE3VDA5OjU5OjA2LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMTgsMjkuOCwyMDE1LTAxLTEwLG9yZ2FuaWMsSW5kaWEKMTQzNSxCRk5MVVJJU0pYVEg2NDcsQkZOTFVSSVNKWFRINjQ3LXFqdWdwZjJuLDIwMTUtMDEtMTdUMDk6NTg6MTguMDAwMDAwKzAwMDAsMjAxNS0wMS0xN1QxMDowNTowMC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDE4LDI5LjgsMjAxNS0wMS0xMCxvcmdhbmljLEluZGlhCjE0MzYsQkZOTFVSSVNKWFRINjQ3LEJGTkxVUklTSlhUSDY0Ny1xanVncGYybiwyMDE1LTAxLTE3VDA5OjU4OjE4LjAwMDAwMCswMDAwLDIwMTUtMDEtMTdUMTA6MTU6NDguMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAyLDI5LjgsMjAxNS0wMS0xMCxvcmdhbmljLEluZGlhCjE0MzgsQkZOTFVSSVNKWFRINjQ3LEJGTkxVUklTSlhUSDY0Ny1xanVncGYybiwyMDE1LTAxLTE3VDA5OjU4OjE4LjAwMDAwMCswMDAwLDIwMTUtMDEtMTdUMTA6MjU6MDYuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAwNiwyOS44LDIwMTUtMDEtMTAsb3JnYW5pYyxJbmRpYQoxNDQ0LFhJQUhCTktFQ0dSTzU5OCxYSUFIQk5LRUNHUk81OTgtcW84cm16aWosMjAxNS0wMS0xN1QxMDo0MzoyOC4wMDAwMDArMDAwMCwyMDE1LTAxLTE3VDEwOjU4OjM0LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMywyOC44LDIwMTUtMDEtMTQsZ29vZ2xlLEVneXB0CjE0NDUsWElBSEJOS0VDR1JPNTk4LFhJQUhCTktFQ0dSTzU5OC1xbzhybXppaiwyMDE1LTAxLTE3VDEwOjQzOjI4LjAwMDAwMCswMDAwLDIwMTUtMDEtMTdUMTE6MDE6MDQuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAxNSwyOC44LDIwMTUtMDEtMTQsZ29vZ2xlLEVneXB0CjE0NDcsWElBSEJOS0VDR1JPNTk4LFhJQUhCTktFQ0dSTzU5OC1xbzhybXppaiwyMDE1LTAxLTE3VDEwOjQzOjI4LjAwMDAwMCswMDAwLDIwMTUtMDEtMTdUMTE6MDg6NTguMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA1LDI4LjgsMjAxNS0wMS0xNCxnb29nbGUsRWd5cHQKMTQ2MSxNVENJV0tPVkFTWVA5MjUsTVRDSVdLT1ZBU1lQOTI1LW51OWR3M2JvLDIwMTUtMDEtMTdUMTI6MDM6MjcuMDAwMDAwKzAwMDAsMjAxNS0wMS0xN1QxMjoyNjowOS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDcsMzAuMCwyMDE1LTAxLTE0LG9yZ2FuaWMsR2VybWFueQoxNDY0LE1UQ0lXS09WQVNZUDkyNSxNVENJV0tPVkFTWVA5MjUtbnU5ZHczYm8sMjAxNS0wMS0xN1QxMjowMzoyNy4wMDAwMDArMDAwMCwyMDE1LTAxLTE3VDEyOjMxOjAzLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMywzMC4wLDIwMTUtMDEtMTQsb3JnYW5pYyxHZXJtYW55CjE0NzYsRUtJSFhCUkZHT0NENTcxLEVLSUhYQlJGR09DRDU3MS02bDFkNXhqcSwyMDE1LTAxLTE3VDEyOjU5OjI0LjAwMDAwMCswMDAwLDIwMTUtMDEtMTdUMTM6MDE6MjQuMDAwMDAwKzAwMDAsYWQsYWRfMTBzZWMsMC4wOSwzMy41LDIwMTUtMDEtMTcsYXBwbGUsVW5pdGVkIEtpbmdkb20KMTQ3NyxFS0lIWEJSRkdPQ0Q1NzEsRUtJSFhCUkZHT0NENTcxLTZsMWQ1eGpxLDIwMTUtMDEtMTdUMTI6NTk6MjQuMDAwMDAwKzAwMDAsMjAxNS0wMS0xN1QxMzowMjo0Mi4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDYsMzMuNSwyMDE1LTAxLTE3LGFwcGxlLFVuaXRlZCBLaW5nZG9tCjE0NzgsRUtJSFhCUkZHT0NENTcxLEVLSUhYQlJGR09DRDU3MS02bDFkNXhqcSwyMDE1LTAxLTE3VDEyOjU5OjI0LjAwMDAwMCswMDAwLDIwMTUtMDEtMTdUMTM6MTk6MTIuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjEsMzMuNSwyMDE1LTAxLTE3LGFwcGxlLFVuaXRlZCBLaW5nZG9tCjE0ODEsVVBGTUxJRUtXSFlYOTY0LFVQRk1MSUVLV0hZWDk2NC0ycW9tOG5leSwyMDE1LTAxLTE3VDE0OjUyOjA5LjAwMDAwMCswMDAwLDIwMTUtMDEtMTdUMTQ6NTc6MDkuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAzLDE4LjAsMjAxNS0wMS0xNixvcmdhbmljLEdlcm1hbnkKMTQ4OSxJQ0JBVVpLR1NRUEYxNDUsSUNCQVVaS0dTUVBGMTQ1LWg5dWtuMWZ4LDIwMTUtMDEtMTdUMTY6MDg6NTcuMDAwMDAwKzAwMDAsMjAxNS0wMS0xN1QxNjozMjo0NS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDM0LDI2LjUsMjAxNS0wMS0wNixnb29nbGUsU291dGggQWZyaWNhCjE0OTcsRkdLWFBOSVJKSENZNjI1LEZHS1hQTklSSkhDWTYyNS1vdnd0amh1cywyMDE1LTAxLTE3VDE3OjAwOjMzLjAwMDAwMCswMDAwLDIwMTUtMDEtMTdUMTc6MzQ6NDUuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA4LDM3LjksMjAxNS0wMS0xNyxjcm9zc3Byb21vLEhvbmcgS29uZwoxNDk5LElDQkFVWktHU1FQRjE0NSxJQ0JBVVpLR1NRUEYxNDUtOGozb3lzdDQsMjAxNS0wMS0xN1QxNzozODoxNy4wMDAwMDArMDAwMCwyMDE1LTAxLTE3VDE3OjQ2OjIzLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMzQsMTUuOCwyMDE1LTAxLTA2LGdvb2dsZSxTb3V0aCBBZnJpY2EKMTUwMixaUFRJSE5TVkZZQVExNDYsWlBUSUhOU1ZGWUFRMTQ2LW45cGw0MjdzLDIwMTUtMDEtMTdUMTg6Mjg6MjUuMDAwMDAwKzAwMDAsMjAxNS0wMS0xN1QxODozNjo0OS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDcyLDE4LjgsMjAxNS0wMS0wNCxmYWNlYm9vayxNZXhpY28KMTUwNSxaTUpMUEdDUklLTkE0NzEsWk1KTFBHQ1JJS05BNDcxLWN1Njd6aDV0LDIwMTUtMDEtMTdUMTk6MTA6MTYuMDAwMDAwKzAwMDAsMjAxNS0wMS0xN1QxOToxMTo0Ni4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjA4LDMyLjAsMjAxNS0wMS0xMCxvcmdhbmljLEVneXB0CjE1MDcsWk1KTFBHQ1JJS05BNDcxLFpNSkxQR0NSSUtOQTQ3MS1jdTY3emg1dCwyMDE1LTAxLTE3VDE5OjEwOjE2LjAwMDAwMCswMDAwLDIwMTUtMDEtMTdUMTk6MzA6MDQuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA1LDMyLjAsMjAxNS0wMS0xMCxvcmdhbmljLEVneXB0CjE1MDksTVRDSVdLT1ZBU1lQOTI1LE1UQ0lXS09WQVNZUDkyNS01d3YzdGEybywyMDE1LTAxLTE3VDE5OjE2OjE5LjAwMDAwMCswMDAwLDIwMTUtMDEtMTdUMTk6Mjg6NDkuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA5LDE2LjIsMjAxNS0wMS0xNCxvcmdhbmljLEdlcm1hbnkKMTUxMCxXQktGWUpYQ1pOVUg1NjMsV0JLRllKWENaTlVINTYzLWNqODRnN3NhLDIwMTUtMDEtMTdUMTk6MTY6NTIuMDAwMDAwKzAwMDAsMjAxNS0wMS0xN1QxOToxNzo0Ni4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDQsMjYuNSwyMDE1LTAxLTEzLG9yZ2FuaWMsQ2FuYWRhCjE1MTIsV0JLRllKWENaTlVINTYzLFdCS0ZZSlhDWk5VSDU2My1jajg0ZzdzYSwyMDE1LTAxLTE3VDE5OjE2OjUyLjAwMDAwMCswMDAwLDIwMTUtMDEtMTdUMTk6MjA6NDAuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA4LDI2LjUsMjAxNS0wMS0xMyxvcmdhbmljLENhbmFkYQoxNTE5LFZMT1NDS1laQkVUSjY4NCxWTE9TQ0tZWkJFVEo2ODQtejR2NnI3d3UsMjAxNS0wMS0xN1QyMTozMjowNy4wMDAwMDArMDAwMCwyMDE1LTAxLTE3VDIxOjQ3OjE5LjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMSw0MC4yLDIwMTUtMDEtMTcsb3JnYW5pYyxGcmFuY2UKMTUyNSxKVkJaQ1BLWEhGTVU0OTEsSlZCWkNQS1hIRk1VNDkxLXd2dDQxa3hjLDIwMTUtMDEtMTdUMjI6NDE6MjkuMDAwMDAwKzAwMDAsMjAxNS0wMS0xN1QyMzowNjoyMy4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDUsMzQuOSwyMDE1LTAxLTA3LG9yZ2FuaWMsVW5pdGVkIFN0YXRlcwoxNTI2LEpWQlpDUEtYSEZNVTQ5MSxKVkJaQ1BLWEhGTVU0OTEtd3Z0NDFreGMsMjAxNS0wMS0xN1QyMjo0MToyOS4wMDAwMDArMDAwMCwyMDE1LTAxLTE3VDIzOjA5OjA1LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wOCwzNC45LDIwMTUtMDEtMDcsb3JnYW5pYyxVbml0ZWQgU3RhdGVzCjE1MjksUFpCTlJLU01VTEhYMjEzLFBaQk5SS1NNVUxIWDIxMy1yaGNhbXp0ZiwyMDE1LTAxLTE3VDIzOjA1OjE2LjAwMDAwMCswMDAwLDIwMTUtMDEtMTdUMjM6MDk6MjIuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAxOCwxNi4xLDIwMTUtMDEtMDcsb3JnYW5pYyxJbmRpYQoxNTMwLFBaQk5SS1NNVUxIWDIxMyxQWkJOUktTTVVMSFgyMTMtcmhjYW16dGYsMjAxNS0wMS0xN1QyMzowNToxNi4wMDAwMDArMDAwMCwyMDE1LTAxLTE3VDIzOjExOjM0LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMDgsMTYuMSwyMDE1LTAxLTA3LG9yZ2FuaWMsSW5kaWEKMTUzMyxQWkJOUktTTVVMSFgyMTMsUFpCTlJLU01VTEhYMjEzLXJoY2FtenRmLDIwMTUtMDEtMTdUMjM6MDU6MTYuMDAwMDAwKzAwMDAsMjAxNS0wMS0xN1QyMzoxOTo1Mi4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjAxNiwxNi4xLDIwMTUtMDEtMDcsb3JnYW5pYyxJbmRpYQoxNTM0LFhJQUhCTktFQ0dSTzU5OCxYSUFIQk5LRUNHUk81OTgtaWN5YTFtN3QsMjAxNS0wMS0xN1QyMzozMTo1Ny4wMDAwMDArMDAwMCwyMDE1LTAxLTE3VDIzOjM4OjM5LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNDUsMTUuMywyMDE1LTAxLTE0LGdvb2dsZSxFZ3lwdAoxNTM1LFhJQUhCTktFQ0dSTzU5OCxYSUFIQk5LRUNHUk81OTgtaWN5YTFtN3QsMjAxNS0wMS0xN1QyMzozMTo1Ny4wMDAwMDArMDAwMCwyMDE1LTAxLTE3VDIzOjQ2OjE1LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMjUsMTUuMywyMDE1LTAxLTE0LGdvb2dsZSxFZ3lwdAoxNTM5LEdBWUlCTFVDT0VESjczMixHQVlJQkxVQ09FREo3MzItMXJwaHFkd3osMjAxNS0wMS0xOFQwMDozNDoyOC4wMDAwMDArMDAwMCwyMDE1LTAxLTE4VDAwOjUyOjM0LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4xLDI4LjUsMjAxNS0wMS0wMyxvcmdhbmljLFVuaXRlZCBTdGF0ZXMKMTU0OCxQSk9UQk5IWExGUlEyNjUsUEpPVEJOSFhMRlJRMjY1LTk1dHN5bGkzLDIwMTUtMDEtMThUMDI6MDI6MzIuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOFQwMjo0MToxNC4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjA3LDQwLjcsMjAxNS0wMS0xNixvcmdhbmljLEF1c3RyaWEKMTU1MCxXQktGWUpYQ1pOVUg1NjMsV0JLRllKWENaTlVINTYzLXEyZjlnaXlkLDIwMTUtMDEtMThUMDI6NTQ6NTAuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOFQwMjo1OTozOC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDYsMTYuMiwyMDE1LTAxLTEzLG9yZ2FuaWMsQ2FuYWRhCjE1NTMsV0JLRllKWENaTlVINTYzLFdCS0ZZSlhDWk5VSDU2My1xMmY5Z2l5ZCwyMDE1LTAxLTE4VDAyOjU0OjUwLjAwMDAwMCswMDAwLDIwMTUtMDEtMThUMDM6MDM6MDIuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA1LDE2LjIsMjAxNS0wMS0xMyxvcmdhbmljLENhbmFkYQoxNTU1LFdFUEtZTlJYREZVVDU3MixXRVBLWU5SWERGVVQ1NzItbTVqd3ZpdHMsMjAxNS0wMS0xOFQwMzowMzo1OS4wMDAwMDArMDAwMCwyMDE1LTAxLTE4VDAzOjA3OjM1LjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMDg0LDMxLjAsMjAxNS0wMS0xMyxjcm9zc3Byb21vLENoaW5hCjE1NTcsV0VQS1lOUlhERlVUNTcyLFdFUEtZTlJYREZVVDU3Mi1tNWp3dml0cywyMDE1LTAxLTE4VDAzOjAzOjU5LjAwMDAwMCswMDAwLDIwMTUtMDEtMThUMDM6MTY6MTcuMDAwMDAwKzAwMDAsYWQsYWRfMTBzZWMsMC4wNzgsMzEuMCwyMDE1LTAxLTEzLGNyb3NzcHJvbW8sQ2hpbmEKMTU1OCxXRVBLWU5SWERGVVQ1NzIsV0VQS1lOUlhERlVUNTcyLW01and2aXRzLDIwMTUtMDEtMThUMDM6MDM6NTkuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOFQwMzoxNjo0MS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDcyLDMxLjAsMjAxNS0wMS0xMyxjcm9zc3Byb21vLENoaW5hCjE1NjEsS0daQ09KSFBGVFFWNzUzLEtHWkNPSkhQRlRRVjc1My1kYnFqM2s4cCwyMDE1LTAxLTE4VDAzOjQxOjU2LjAwMDAwMCswMDAwLDIwMTUtMDEtMThUMDM6NTA6MzguMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA0LDIzLjIsMjAxNS0wMS0xMSxvcmdhbmljLFVuaXRlZCBTdGF0ZXMKMTU2NCxLR1pDT0pIUEZUUVY3NTMsS0daQ09KSFBGVFFWNzUzLWRicWozazhwLDIwMTUtMDEtMThUMDM6NDE6NTYuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOFQwNDowMzoyMC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDcsMjMuMiwyMDE1LTAxLTExLG9yZ2FuaWMsVW5pdGVkIFN0YXRlcwoxNTY5LFBKT1RCTkhYTEZSUTI2NSxQSk9UQk5IWExGUlEyNjUtbWlwOHZvMmIsMjAxNS0wMS0xOFQwNDoyNjo0NS4wMDAwMDArMDAwMCwyMDE1LTAxLTE4VDA0OjU0OjI3LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wOCwzNi40LDIwMTUtMDEtMTYsb3JnYW5pYyxBdXN0cmlhCjE1NzIsR0pDWE5UV0VCSVBRMzY5LEdKQ1hOVFdFQklQUTM2OS1hY3Mzd2ZuaywyMDE1LTAxLTE4VDA1OjAwOjAzLjAwMDAwMCswMDAwLDIwMTUtMDEtMThUMDU6MDQ6MzMuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA5LDMzLjMsMjAxNS0wMS0xNCxvcmdhbmljLFVuaXRlZCBTdGF0ZXMKMTU4MixOUE1KSVlIRVRHS1cyOTcsTlBNSklZSEVUR0tXMjk3LXRuaTc4dTllLDIwMTUtMDEtMThUMDU6MjQ6MTguMDAwMDAwKzAwMDAsMjAxNS0wMS0xOFQwNTozODowNi4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDIsMTQuMywyMDE1LTAxLTE4LGdvb2dsZSxQaGlsaXBwaW5lcwoxNTkxLFpQVElITlNWRllBUTE0NixaUFRJSE5TVkZZQVExNDYtZmwyOG52Z2MsMjAxNS0wMS0xOFQwNjo0NjowMS4wMDAwMDArMDAwMCwyMDE1LTAxLTE4VDA2OjU3OjEzLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMzYsMjMuOSwyMDE1LTAxLTA0LGZhY2Vib29rLE1leGljbwoxNTkyLFpQVElITlNWRllBUTE0NixaUFRJSE5TVkZZQVExNDYtZmwyOG52Z2MsMjAxNS0wMS0xOFQwNjo0NjowMS4wMDAwMDArMDAwMCwyMDE1LTAxLTE4VDA3OjAwOjU1LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNDgsMjMuOSwyMDE1LTAxLTA0LGZhY2Vib29rLE1leGljbwoxNTk1LEtJTFdaWUhSU0pFRzMxNixLSUxXWllIUlNKRUczMTYteTc4MjRlbmQsMjAxNS0wMS0xOFQwODozODo0Mi4wMDAwMDArMDAwMCwyMDE1LTAxLTE4VDA4OjM5OjEyLjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMDk5LDI2LjUsMjAxNS0wMS0wNCxvcmdhbmljLERlbm1hcmsKMTU5OSxSTU9TV0hKR0VMQ0k2NzUsUk1PU1dISkdFTENJNjc1LTh2ZzloNmxtLDIwMTUtMDEtMThUMDg6NTY6MTguMDAwMDAwKzAwMDAsMjAxNS0wMS0xOFQwODo1Njo1NC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDksMzEuOSwyMDE1LTAxLTEwLG90aGVyX2NhbXBhaWduLEZyYW5jZQoxNjA0LERMVEZWUVdZSVhSSjU4OSxETFRGVlFXWUlYUko1ODktNmdqaHl2ZDcsMjAxNS0wMS0xOFQwOTowMDozNi4wMDAwMDArMDAwMCwyMDE1LTAxLTE4VDA5OjEzOjI0LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNzcsMzcuNSwyMDE1LTAxLTEzLG9yZ2FuaWMsU291dGggQWZyaWNhCjE2MDYsRExURlZRV1lJWFJKNTg5LERMVEZWUVdZSVhSSjU4OS02Z2poeXZkNywyMDE1LTAxLTE4VDA5OjAwOjM2LjAwMDAwMCswMDAwLDIwMTUtMDEtMThUMDk6Mzc6MDAuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA3NywzNy41LDIwMTUtMDEtMTMsb3JnYW5pYyxTb3V0aCBBZnJpY2EKMTYwOCxKWUVCQ0xOVVpUWFE0NTcsSllFQkNMTlVaVFhRNDU3LWo3c252bzhpLDIwMTUtMDEtMThUMDk6MTM6MDIuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOFQwOToxOTowOC4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjA3LDE4LjgsMjAxNS0wMS0wNCxvdGhlcl9jYW1wYWlnbixFZ3lwdAoxNjA5LEpZRUJDTE5VWlRYUTQ1NyxKWUVCQ0xOVVpUWFE0NTctajdzbnZvOGksMjAxNS0wMS0xOFQwOToxMzowMi4wMDAwMDArMDAwMCwyMDE1LTAxLTE4VDA5OjIzOjU2LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNDUsMTguOCwyMDE1LTAxLTA0LG90aGVyX2NhbXBhaWduLEVneXB0CjE2MTAsSllFQkNMTlVaVFhRNDU3LEpZRUJDTE5VWlRYUTQ1Ny1qN3Nudm84aSwyMDE1LTAxLTE4VDA5OjEzOjAyLjAwMDAwMCswMDAwLDIwMTUtMDEtMThUMDk6Mjg6MzIuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAzNSwxOC44LDIwMTUtMDEtMDQsb3RoZXJfY2FtcGFpZ24sRWd5cHQKMTYyNSxNVENJV0tPVkFTWVA5MjUsTVRDSVdLT1ZBU1lQOTI1LXBjbjhrdDJtLDIwMTUtMDEtMThUMTE6MTQ6MjkuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOFQxMToyMDoxMS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDgsMjUuOSwyMDE1LTAxLTE0LG9yZ2FuaWMsR2VybWFueQoxNjI4LE1UQ0lXS09WQVNZUDkyNSxNVENJV0tPVkFTWVA5MjUtcGNuOGt0Mm0sMjAxNS0wMS0xOFQxMToxNDoyOS4wMDAwMDArMDAwMCwyMDE1LTAxLTE4VDExOjM2OjIzLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNiwyNS45LDIwMTUtMDEtMTQsb3JnYW5pYyxHZXJtYW55CjE2MzQsWkdFVlFKU0tGSUJYMzk4LFpHRVZRSlNLRklCWDM5OC0ycndoMXB2NiwyMDE1LTAxLTE4VDEzOjMzOjMxLjAwMDAwMCswMDAwLDIwMTUtMDEtMThUMTM6NTI6MDEuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA2MywzMC43LDIwMTUtMDEtMTcsb3JnYW5pYyxTb3V0aCBLb3JlYQoxNjM1LFpHRVZRSlNLRklCWDM5OCxaR0VWUUpTS0ZJQlgzOTgtMnJ3aDFwdjYsMjAxNS0wMS0xOFQxMzozMzozMS4wMDAwMDArMDAwMCwyMDE1LTAxLTE4VDEzOjU4OjU1LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMjgsMzAuNywyMDE1LTAxLTE3LG9yZ2FuaWMsU291dGggS29yZWEKMTY0MSxaTUpMUEdDUklLTkE0NzEsWk1KTFBHQ1JJS05BNDcxLW56anViZmdyLDIwMTUtMDEtMThUMTM6NTU6MTAuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOFQxMzo1OToyOC4wMDAwMDArMDAwMCxhZCxhZF8xNXNlYywwLjA4NCw2LjIsMjAxNS0wMS0xMCxvcmdhbmljLEVneXB0CjE2NDQsRkdLWFBOSVJKSENZNjI1LEZHS1hQTklSSkhDWTYyNS1vZ3VmcmFpaiwyMDE1LTAxLTE4VDEzOjU5OjM0LjAwMDAwMCswMDAwLDIwMTUtMDEtMThUMTQ6MTE6NDAuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAzNCwzMi4xLDIwMTUtMDEtMTcsY3Jvc3Nwcm9tbyxIb25nIEtvbmcKMTY1MSxHSkNYTlRXRUJJUFEzNjksR0pDWE5UV0VCSVBRMzY5LXlibmFjcTM0LDIwMTUtMDEtMThUMTQ6MzQ6MDQuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOFQxNDo1ODoyMi4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDMsMjkuNiwyMDE1LTAxLTE0LG9yZ2FuaWMsVW5pdGVkIFN0YXRlcwoxNjU1LFJZWkhBSkVYTUJJRjcyNCxSWVpIQUpFWE1CSUY3MjQtcTFqOGNmb3UsMjAxNS0wMS0xOFQxNToxNzozNy4wMDAwMDArMDAwMCwyMDE1LTAxLTE4VDE1OjI5OjQ5LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMzYsMTUuMiwyMDE1LTAxLTE1LGdvb2dsZSxQb3J0dWdhbAoxNjU2LFJZWkhBSkVYTUJJRjcyNCxSWVpIQUpFWE1CSUY3MjQtcTFqOGNmb3UsMjAxNS0wMS0xOFQxNToxNzozNy4wMDAwMDArMDAwMCwyMDE1LTAxLTE4VDE1OjMyOjM3LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wODEsMTUuMiwyMDE1LTAxLTE1LGdvb2dsZSxQb3J0dWdhbAoxNjU5LEVLSUhYQlJGR09DRDU3MSxFS0lIWEJSRkdPQ0Q1NzEtZHZxZ3htNTYsMjAxNS0wMS0xOFQxNToyOToyMi4wMDAwMDArMDAwMCwyMDE1LTAxLTE4VDE1OjM2OjE2LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNSwzNS45LDIwMTUtMDEtMTcsYXBwbGUsVW5pdGVkIEtpbmdkb20KMTY2NCxQTFFFU0JOR1VES0oxNTQsUExRRVNCTkdVREtKMTU0LTNscTZpN29mLDIwMTUtMDEtMThUMTU6NDY6NDEuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOFQxNTo1MToxMS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDQ4LDM1LjIsMjAxNS0wMS0xMixmYWNlYm9vayxKYXBhbgoxNjY4LEhEU0FNUFRPTEJXQzQzOCxIRFNBTVBUT0xCV0M0MzgtZWJhNjI5eHQsMjAxNS0wMS0xOFQxNzozMDoyNi4wMDAwMDArMDAwMCwyMDE1LTAxLTE4VDE3OjM1OjUwLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wODQsMTYuNiwyMDE1LTAxLTE0LG9yZ2FuaWMsU3dpdHplcmxhbmQKMTY3OCxNVENJV0tPVkFTWVA5MjUsTVRDSVdLT1ZBU1lQOTI1LW45Z2xiaDI3LDIwMTUtMDEtMThUMjA6MTA6NDIuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOFQyMDoyMDoyNC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMSwyMC42LDIwMTUtMDEtMTQsb3JnYW5pYyxHZXJtYW55CjE2NzksTVRDSVdLT1ZBU1lQOTI1LE1UQ0lXS09WQVNZUDkyNS1uOWdsYmgyNywyMDE1LTAxLTE4VDIwOjEwOjQyLjAwMDAwMCswMDAwLDIwMTUtMDEtMThUMjA6MzA6MDYuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA5LDIwLjYsMjAxNS0wMS0xNCxvcmdhbmljLEdlcm1hbnkKMTY4MSxNVENJV0tPVkFTWVA5MjUsTVRDSVdLT1ZBU1lQOTI1LW45Z2xiaDI3LDIwMTUtMDEtMThUMjA6MTA6NDIuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOFQyMDozMDozMC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDIsMjAuNiwyMDE1LTAxLTE0LG9yZ2FuaWMsR2VybWFueQoxNjg2LFhJQUhCTktFQ0dSTzU5OCxYSUFIQk5LRUNHUk81OTgtZXlndHdwbTcsMjAxNS0wMS0xOFQyMjoxNzo1NC4wMDAwMDArMDAwMCwyMDE1LTAxLTE4VDIyOjIzOjM2LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNDUsMzYuMiwyMDE1LTAxLTE0LGdvb2dsZSxFZ3lwdAoxNjg5LE1UQ0lXS09WQVNZUDkyNSxNVENJV0tPVkFTWVA5MjUtOHJwemQ2bXcsMjAxNS0wMS0xOFQyMzozNDo0MS4wMDAwMDArMDAwMCwyMDE1LTAxLTE4VDIzOjM0OjUzLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wOCwyOS42LDIwMTUtMDEtMTQsb3JnYW5pYyxHZXJtYW55CjE2OTEsTVRDSVdLT1ZBU1lQOTI1LE1UQ0lXS09WQVNZUDkyNS04cnB6ZDZtdywyMDE1LTAxLTE4VDIzOjM0OjQxLjAwMDAwMCswMDAwLDIwMTUtMDEtMTlUMDA6MDM6NDcuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAyLDI5LjYsMjAxNS0wMS0xNCxvcmdhbmljLEdlcm1hbnkKMTcwMCxRRFVaSklFVENBR1c2NTQsUURVWkpJRVRDQUdXNjU0LWZrNnhtOXV6LDIwMTUtMDEtMThUMjM6NDk6MDcuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOVQwMDowOTowMS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDQ4LDIxLjcsMjAxNS0wMS0wNyxmYWNlYm9vayxTd2l0emVybGFuZAoxNzA1LFdFUEtZTlJYREZVVDU3MixXRVBLWU5SWERGVVQ1NzItajNhdnVsNzUsMjAxNS0wMS0xOVQwMDozNzoyNy4wMDAwMDArMDAwMCwyMDE1LTAxLTE5VDAwOjQxOjAzLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMTIsMjkuOSwyMDE1LTAxLTEzLGNyb3NzcHJvbW8sQ2hpbmEKMTcwNixXRVBLWU5SWERGVVQ1NzIsV0VQS1lOUlhERlVUNTcyLWozYXZ1bDc1LDIwMTUtMDEtMTlUMDA6Mzc6MjcuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOVQwMDo0Mjo0NS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDEyLDI5LjksMjAxNS0wMS0xMyxjcm9zc3Byb21vLENoaW5hCjE3MDgsV0VQS1lOUlhERlVUNTcyLFdFUEtZTlJYREZVVDU3Mi1qM2F2dWw3NSwyMDE1LTAxLTE5VDAwOjM3OjI3LjAwMDAwMCswMDAwLDIwMTUtMDEtMTlUMDA6NDk6MDkuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA0OCwyOS45LDIwMTUtMDEtMTMsY3Jvc3Nwcm9tbyxDaGluYQoxNzEwLFhJQUhCTktFQ0dSTzU5OCxYSUFIQk5LRUNHUk81OTgteWlsc3hmNXAsMjAxNS0wMS0xOVQwMDo1MjozMi4wMDAwMDArMDAwMCwyMDE1LTAxLTE5VDAwOjU2OjAyLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNSwzMC40LDIwMTUtMDEtMTQsZ29vZ2xlLEVneXB0CjE3MTEsWElBSEJOS0VDR1JPNTk4LFhJQUhCTktFQ0dSTzU5OC15aWxzeGY1cCwyMDE1LTAxLTE5VDAwOjUyOjMyLjAwMDAwMCswMDAwLDIwMTUtMDEtMTlUMDE6MDI6MjAuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA0LDMwLjQsMjAxNS0wMS0xNCxnb29nbGUsRWd5cHQKMTcxMixYSUFIQk5LRUNHUk81OTgsWElBSEJOS0VDR1JPNTk4LXlpbHN4ZjVwLDIwMTUtMDEtMTlUMDA6NTI6MzIuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOVQwMTowNDowOC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDE1LDMwLjQsMjAxNS0wMS0xNCxnb29nbGUsRWd5cHQKMTcxMyxYSUFIQk5LRUNHUk81OTgsWElBSEJOS0VDR1JPNTk4LXlpbHN4ZjVwLDIwMTUtMDEtMTlUMDA6NTI6MzIuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOVQwMTowNTowOC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDE1LDMwLjQsMjAxNS0wMS0xNCxnb29nbGUsRWd5cHQKMTcxNixRSkdWT0JMQVRJSFc0NTcsUUpHVk9CTEFUSUhXNDU3LWNtZWxhNHo4LDIwMTUtMDEtMTlUMDE6MTE6NDEuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOVQwMToyMToxMS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDQ0LDQwLjksMjAxNS0wMS0wMixvdGhlcl9jYW1wYWlnbixTd2VkZW4KMTcxOSxHQVlJQkxVQ09FREo3MzIsR0FZSUJMVUNPRURKNzMyLTEzOHo3Z3ByLDIwMTUtMDEtMTlUMDE6Mjc6NDQuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOVQwMTozMDo1Ni4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDcsMzAuOCwyMDE1LTAxLTAzLG9yZ2FuaWMsVW5pdGVkIFN0YXRlcwoxNzIwLEdBWUlCTFVDT0VESjczMixHQVlJQkxVQ09FREo3MzItMTM4ejdncHIsMjAxNS0wMS0xOVQwMToyNzo0NC4wMDAwMDArMDAwMCwyMDE1LTAxLTE5VDAxOjMxOjA4LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMywzMC44LDIwMTUtMDEtMDMsb3JnYW5pYyxVbml0ZWQgU3RhdGVzCjE3MjYsWElBSEJOS0VDR1JPNTk4LFhJQUhCTktFQ0dSTzU5OC0zN2Vvc3poOCwyMDE1LTAxLTE5VDAzOjE3OjAzLjAwMDAwMCswMDAwLDIwMTUtMDEtMTlUMDM6MjU6NDUuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA0NSwzOS45LDIwMTUtMDEtMTQsZ29vZ2xlLEVneXB0CjE3MjgsWElBSEJOS0VDR1JPNTk4LFhJQUhCTktFQ0dSTzU5OC0zN2Vvc3poOCwyMDE1LTAxLTE5VDAzOjE3OjAzLjAwMDAwMCswMDAwLDIwMTUtMDEtMTlUMDM6Mjk6MzMuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAzNSwzOS45LDIwMTUtMDEtMTQsZ29vZ2xlLEVneXB0CjE3MzcsTVRDSVdLT1ZBU1lQOTI1LE1UQ0lXS09WQVNZUDkyNS1lcWJjdnlndCwyMDE1LTAxLTE5VDA0OjM4OjU0LjAwMDAwMCswMDAwLDIwMTUtMDEtMTlUMDQ6Mzk6MTIuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAyLDkuNCwyMDE1LTAxLTE0LG9yZ2FuaWMsR2VybWFueQoxNzQyLEZHS1hQTklSSkhDWTYyNSxGR0tYUE5JUkpIQ1k2MjUtMmQxOG80aWosMjAxNS0wMS0xOVQwNTowMDo1Ni4wMDAwMDArMDAwMCwyMDE1LTAxLTE5VDA1OjEwOjMyLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNDIsMTEuMywyMDE1LTAxLTE3LGNyb3NzcHJvbW8sSG9uZyBLb25nCg==" download="extract_0002.csv"><button style="background-color: #67C2DC; color: #FFFFFF; border: none; padding: 5px; font-weight: bold; cursor: pointer; border-radius: 4px;">CSV</button></a></td>
  </tr>
</tbody>

</table>

</div>
</div>
</div>
<p>In this example, we’re using a simple function that prints a generic message whenever any threshold is exceeded. By using the <code>Actions(default=)</code> parameter, this same function gets applied to all threshold levels (‘warning’, ‘error’, and ‘critical’). This saves you from having to define separate actions for each level when you want the same behavior for all of them. The <code>highest_only=</code> parameter (<code>True</code> by default, so not shown here) is complementary and it ensures that only the action for the highest threshold level reached will be triggered, preventing multiple notifications for the same validation failure.</p>
</section>
<section id="dynamic-messages-with-templating" class="level1">
<h1>Dynamic Messages with Templating</h1>
<p>Actions don’t have to be static messages. With Pointblank’s templating system, you can create context-aware notifications that include details about the specific validation failure.</p>
<p>Available placeholders include:</p>
<ul>
<li><code>{type}</code>: the validation step type (e.g., <code>"col_vals_gt"</code>)</li>
<li><code>{level}</code>: the threshold level (‘warning’, ‘error’, ‘critical’)</li>
<li><code>{step}</code> or <code>{i}</code>: the step number in the validation workflow</li>
<li><code>{col}</code> or <code>{column}</code>: the column name being validated</li>
<li><code>{val}</code> or <code>{value}</code>: the comparison value used in the validation</li>
<li><code>{time}</code>: when the action was executed</li>
</ul>
<p>You can also capitalize placeholders (like <code>{LEVEL}</code>) to get uppercase text.</p>
<div id="de8ad550" class="cell" data-execution_count="4">
<div class="sourceCode cell-code" id="cb5" style="background: #f1f3f5;"><pre class="sourceCode python"><code class="sourceCode python"><span id="cb5-1">action_template <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"[</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">{LEVEL}</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">] Step </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">{step}</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">: Values in '</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">{column}</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">' failed validation against </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">{value}</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">."</span></span>
<span id="cb5-2"></span>
<span id="cb5-3">validation_3 <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> (</span>
<span id="cb5-4">    pb.Validate(</span>
<span id="cb5-5">        data<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>pb.load_dataset(dataset<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"small_table"</span>),</span>
<span id="cb5-6">        thresholds<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>pb.Thresholds(warning<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>, error<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">4</span>, critical<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">10</span>),</span>
<span id="cb5-7">        actions<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>pb.Actions(default<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>action_template)</span>
<span id="cb5-8">    )</span>
<span id="cb5-9">    .col_vals_lt(</span>
<span id="cb5-10">        columns<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"d"</span>,</span>
<span id="cb5-11">        value<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">3000</span></span>
<span id="cb5-12">    )</span>
<span id="cb5-13">    .interrogate()</span>
<span id="cb5-14">)</span>
<span id="cb5-15"></span>
<span id="cb5-16">validation_3</span></code></pre></div>
<div class="cell-output cell-output-stdout">
<pre><code>[ERROR] Step 1: Values in 'd' failed validation against 3000.</code></pre>
</div>
<div class="cell-output cell-output-display" data-execution_count="4">
<div id="pb_tbl" style="padding-left:0px;padding-right:0px;padding-top:10px;padding-bottom:10px;overflow-x:auto;overflow-y:auto;width:auto;height:auto;">
<style>
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono&display=swap');
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Sans&display=swap');
#pb_tbl table {
          font-family: 'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Helvetica Neue', 'Fira Sans', 'Droid Sans', Arial, sans-serif;
          -webkit-font-smoothing: antialiased;
          -moz-osx-font-smoothing: grayscale;
        }

#pb_tbl thead, tbody, tfoot, tr, td, th { border-style: none; }
 tr { background-color: transparent; }
#pb_tbl p { margin: 0; padding: 0; }
 #pb_tbl .gt_table { display: table; border-collapse: collapse; line-height: normal; margin-left: auto; margin-right: auto; color: #333333; font-size: 90%; font-weight: normal; font-style: normal; background-color: #FFFFFF; width: auto; border-top-style: solid; border-top-width: 2px; border-top-color: #A8A8A8; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #A8A8A8; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; }
 #pb_tbl .gt_caption { padding-top: 4px; padding-bottom: 4px; }
 #pb_tbl .gt_title { color: #333333; font-size: 125%; font-weight: initial; padding-top: 4px; padding-bottom: 4px; padding-left: 5px; padding-right: 5px; border-bottom-color: #FFFFFF; border-bottom-width: 0; }
 #pb_tbl .gt_subtitle { color: #333333; font-size: 85%; font-weight: initial; padding-top: 3px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; border-top-color: #FFFFFF; border-top-width: 0; }
 #pb_tbl .gt_heading { background-color: #FFFFFF; text-align: left; border-bottom-color: #FFFFFF; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; }
 #pb_tbl .gt_bottom_border { border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; }
 #pb_tbl .gt_col_headings { border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; }
 #pb_tbl .gt_col_heading { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: normal; text-transform: inherit; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; vertical-align: bottom; padding-top: 5px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; overflow-x: hidden; }
 #pb_tbl .gt_column_spanner_outer { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: normal; text-transform: inherit; padding-top: 0; padding-bottom: 0; padding-left: 4px; padding-right: 4px; }
 #pb_tbl .gt_column_spanner_outer:first-child { padding-left: 0; }
 #pb_tbl .gt_column_spanner_outer:last-child { padding-right: 0; }
 #pb_tbl .gt_column_spanner { border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; vertical-align: bottom; padding-top: 5px; padding-bottom: 5px; overflow-x: hidden; display: inline-block; width: 100%; }
 #pb_tbl .gt_spanner_row { border-bottom-style: hidden; }
 #pb_tbl .gt_group_heading { padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; text-transform: inherit; border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; vertical-align: middle; text-align: left; }
 #pb_tbl .gt_empty_group_heading { padding: 0.5px; color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; vertical-align: middle; }
 #pb_tbl .gt_from_md> :first-child { margin-top: 0; }
 #pb_tbl .gt_from_md> :last-child { margin-bottom: 0; }
 #pb_tbl .gt_row { padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; margin: 10px; border-top-style: solid; border-top-width: 1px; border-top-color: #D3D3D3; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; vertical-align: middle; overflow-x: hidden; }
 #pb_tbl .gt_stub { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; text-transform: inherit; border-right-style: solid; border-right-width: 2px; border-right-color: #D3D3D3; padding-left: 5px; padding-right: 5px; }
 #pb_tbl .gt_stub_row_group { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; text-transform: inherit; border-right-style: solid; border-right-width: 2px; border-right-color: #D3D3D3; padding-left: 5px; padding-right: 5px; vertical-align: top; }
 #pb_tbl .gt_row_group_first td { border-top-width: 2px; }
 #pb_tbl .gt_row_group_first th { border-top-width: 2px; }
 #pb_tbl .gt_striped { color: #333333; background-color: #F4F4F4; }
 #pb_tbl .gt_table_body { border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; }
 #pb_tbl .gt_summary_row { color: #333333; background-color: #FFFFFF; text-transform: inherit; padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; }
 #pb_tbl .gt_first_summary_row { border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; }
 #pb_tbl .gt_last_summary_row_top { border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; }
 #pb_tbl .gt_grand_summary_row { color: #333333; background-color: #FFFFFF; text-transform: inherit; padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; }
 #pb_tbl .gt_first_grand_summary_row_bottom { border-top-style: double; border-top-width: 6px; border-top-color: #D3D3D3; }
 #pb_tbl .gt_last_grand_summary_row_top { border-bottom-style: double; border-bottom-width: 6px; border-bottom-color: #D3D3D3; }
 #pb_tbl .gt_sourcenotes { color: #333333; background-color: #FFFFFF; border-bottom-style: none; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; }
 #pb_tbl .gt_sourcenote { font-size: 90%; padding-top: 4px; padding-bottom: 4px; padding-left: 5px; padding-right: 5px; text-align: left; }
 #pb_tbl .gt_left { text-align: left; }
 #pb_tbl .gt_center { text-align: center; }
 #pb_tbl .gt_right { text-align: right; font-variant-numeric: tabular-nums; }
 #pb_tbl .gt_font_normal { font-weight: normal; }
 #pb_tbl .gt_font_bold { font-weight: bold; }
 #pb_tbl .gt_font_italic { font-style: italic; }
 #pb_tbl .gt_super { font-size: 65%; }
 #pb_tbl .gt_footnotes { color: font-color(#FFFFFF); background-color: #FFFFFF; border-bottom-style: none; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; }
 #pb_tbl .gt_footnote { margin: 0px; font-size: 90%; padding-top: 4px; padding-bottom: 4px; padding-left: 5px; padding-right: 5px; }
 #pb_tbl .gt_sourcenotes { color: #333333; background-color: #FFFFFF; border-bottom-style: none; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; }
 #pb_tbl .gt_sourcenote { font-size: 90%; padding-top: 4px; padding-bottom: 4px; padding-left: 5px; padding-right: 5px; text-align: left; }
 #pb_tbl .gt_footnote_marks { font-size: 75%; vertical-align: 0.4em; position: initial; }
 #pb_tbl .gt_asterisk { font-size: 100%; vertical-align: 0; }
 
</style>
<table style="table-layout: fixed;; width: 0px" class="gt_table" data-quarto-disable-processing="true" data-quarto-bootstrap="false">
<colgroup>
  <col style="width:4px;">
  <col style="width:35px;">
  <col style="width:190px;">
  <col style="width:120px;">
  <col style="width:120px;">
  <col style="width:50px;">
  <col style="width:50px;">
  <col style="width:60px;">
  <col style="width:60px;">
  <col style="width:60px;">
  <col style="width:30px;">
  <col style="width:30px;">
  <col style="width:30px;">
  <col style="width:65px;">
</colgroup>

<thead>

  <tr class="gt_heading">
    <td colspan="14" class="gt_heading gt_title gt_font_normal" style="color: #444444;font-size: 28px;text-align: left;font-weight: bold; text-align: left;">Pointblank Validation</td>
  </tr>
  <tr class="gt_heading">
    <td colspan="14" class="gt_heading gt_subtitle gt_font_normal gt_bottom_border" style="text-align: left;"><div><span style="text-decoration-style: solid; text-decoration-color: #ADD8E6; text-decoration-line: underline; text-underline-position: under; color: #333333; font-variant-numeric: tabular-nums; padding-left: 4px; margin-right: 5px; padding-right: 2px;">2026-07-22|23:16:17</span><div style="padding-top: 10px; padding-bottom: 5px;"><span style="background-color: #0075FF; color: #FFFFFF; padding: 0.5em 0.5em; position: inherit; text-transform: uppercase; margin: 5px 10px 5px 0px; border: solid 1px #0075FF; font-weight: bold; padding: 2px 10px 2px 10px; font-size: 10px;">Polars</span><span><span style="background-color: #AAAAAA; color: white; padding: 0.5em 0.5em; position: inherit; text-transform: uppercase; margin: 5px 0px 5px 5px; border: solid 1px #AAAAAA; font-weight: bold; padding: 2px 15px 2px 15px; font-size: smaller;">WARNING</span><span style="background-color: none; color: #333333; padding: 0.5em 0.5em; position: inherit; margin: 5px 0px 5px -4px; font-weight: bold; border: solid 1px #AAAAAA; padding: 2px 15px 2px 15px; font-size: smaller; margin-right: 5px;">1</span><span style="background-color: #EBBC14; color: white; padding: 0.5em 0.5em; position: inherit; text-transform: uppercase; margin: 5px 0px 5px 1px; border: solid 1px #EBBC14; font-weight: bold; padding: 2px 15px 2px 15px; font-size: smaller;">ERROR</span><span style="background-color: none; color: #333333; padding: 0.5em 0.5em; position: inherit; margin: 5px 0px 5px -4px; font-weight: bold; border: solid 1px #EBBC14; padding: 2px 15px 2px 15px; font-size: smaller; margin-right: 5px;">4</span><span style="background-color: #FF3300; color: white; padding: 0.5em 0.5em; position: inherit; text-transform: uppercase; margin: 5px 0px 5px 1px; border: solid 1px #FF3300; font-weight: bold; padding: 2px 15px 2px 15px; font-size: smaller;">CRITICAL</span><span style="background-color: none; color: #333333; padding: 0.5em 0.5em; position: inherit; margin: 5px 0px 5px -4px; font-weight: bold; border: solid 1px #FF3300; padding: 2px 15px 2px 15px; font-size: smaller;">10</span></span></div></div></td>
  </tr>
<tr class="gt_col_headings">
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-status_color"></th>
  <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-i"></th>
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-type_upd">STEP</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-columns_upd">COLUMNS</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-values_upd">VALUES</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-tbl">TBL</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-eval">EVAL</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-test_units">UNITS</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-pass">PASS</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-fail">FAIL</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-w_upd">W</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-e_upd">E</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-c_upd">C</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-extract_upd">EXT</th>
</tr>
</thead>
<tbody class="gt_table_body">
  <tr>
    <td style="height: 40px; background-color: #EBBC14; color: transparent;font-size: 0px;" class="gt_row gt_left">#EBBC14</td>
    <td style="height: 40px; color: #666666;font-size: 13px;font-weight: bold;" class="gt_row gt_right">1</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_left">
        <div style="margin: 0; padding: 0; display: inline-block; height: 30px; vertical-align: middle; width: 16%;">
            <!--?xml version="1.0" encoding="UTF-8"?--><!--?xml version="1.0" encoding="UTF-8"?-->
<svg width="30px" height="30px" viewbox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" style="background: #FFFFFF;">
    <title>col_vals_lt</title>
    <g id="Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="col_vals_lt" transform="translate(1.500000, 1.500000)" fill-rule="nonzero">
            <path d="M55,0 C57.4852813,0 59.7352813,1.00735931 61.363961,2.63603897 C62.9926407,4.26471863 64,6.51471863 64,9 L64,9 L64,64 L9,64 C6.51471862,64 4.26471862,62.9926407 2.63603897,61.363961 C1.00735931,59.7352814 0,57.4852814 0,55 L0,55 L0,9 C0,6.51471863 1.00735931,4.26471863 2.63603897,2.63603897 C4.26471862,1.00735931 6.51471862,0 9,0 L9,0 L55,0 Z" id="rectangle" stroke="#000000" stroke-width="2" fill="#FFFFFF"></path>
            <path d="M51,10 L13,10 C11.347656,10 10,11.347656 10,13 L10,51 C10,52.652344 11.347656,54 13,54 L51,54 C52.652344,54 54,52.652344 54,51 L54,13 C54,11.347656 52.652344,10 51,10 Z M38.707031,45.292969 L37.292969,46.707031 L22.585938,32 L37.292969,17.292969 L38.707031,18.707031 L25.414063,32 L38.707031,45.292969 Z" id="less_than" fill="#000000"></path>
        </g>
    </g>
</svg>
        </div>
        <div style="font-family: 'IBM Plex Mono', monospace, courier; color: black; font-size: 11px; display: inline-block; vertical-align: middle;">
            <div>col_vals_lt()</div>
        </div>
        
        </td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">d</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">3000</td>
    <td style="height: 40px; background-color: #FCFCFC; border-left: 1px solid #D3D3D3;" class="gt_row gt_center"><svg width="25px" height="25px" viewbox="0 0 25 25" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" style="vertical-align: middle;">
    <g id="unchanged" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="unchanged" transform="translate(0.500000, 0.570147)">
            <rect id="Rectangle" x="0.125132506" y="0" width="23.749735" height="23.7894737"></rect>
            <path d="M5.80375046,8.18194736 C3.77191832,8.18194736 2.11875046,9.83495328 2.11875046,11.8669474 C2.11875046,13.8989414 3.77191832,15.5519474 5.80375046,15.5519474 C7.8355826,15.5519474 9.48875046,13.8989414 9.48875046,11.8669474 C9.48875046,9.83495328 7.83552863,8.18194736 5.80375046,8.18194736 Z M5.80375046,14.814915 C4.17821997,14.814915 2.85578285,13.4924778 2.85578285,11.8669474 C2.85578285,10.2414169 4.17821997,8.91897975 5.80375046,8.91897975 C7.42928095,8.91897975 8.75171807,10.2414169 8.75171807,11.8669474 C8.75171807,13.4924778 7.42928095,14.814915 5.80375046,14.814915 Z" id="Shape" fill="#000000" fill-rule="nonzero"></path>
            <path d="M13.9638189,8.699335 C13.9364621,8.70430925 13.9091059,8.71176968 13.8842359,8.71923074 C13.7822704,8.73663967 13.6877654,8.77643115 13.6056956,8.83860518 L10.2433156,11.3852598 C10.0766886,11.5046343 9.97720993,11.6986181 9.97720993,11.9025491 C9.97720993,12.1064807 10.0766886,12.3004639 10.2433156,12.4198383 L13.6056956,14.966493 C13.891697,15.1803725 14.2970729,15.1231721 14.5109517,14.8371707 C14.7248313,14.5511692 14.6676309,14.145794 14.3816294,13.9319145 L12.5313257,12.5392127 L21.8812495,12.5392127 L21.8812495,11.2658854 L12.5313257,11.2658854 L14.3816294,9.87318364 C14.6377872,9.71650453 14.7497006,9.40066014 14.6477351,9.11714553 C14.5482564,8.83363156 14.262255,8.65954352 13.9638189,8.699335 Z" id="arrow" fill="#000000" transform="translate(15.929230, 11.894737) rotate(-180.000000) translate(-15.929230, -11.894737) "></path>
        </g>
    </g>
</svg></td>
    <td style="height: 40px; background-color: #FCFCFC; border-right: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color:#4CA64C;">✓</span></td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_right">13</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5;" class="gt_row gt_right">9<br>0.69</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5;" class="gt_row gt_right">4<br>0.31</td>
    <td style="height: 40px; background-color: #FCFCFC; border-left: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color: #AAAAAA;">●</span></td>
    <td style="height: 40px; background-color: #FCFCFC;" class="gt_row gt_center"><span style="color: #EBBC14;">●</span></td>
    <td style="height: 40px; background-color: #FCFCFC; border-right: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color: #FF3300;">○</span></td>
    <td style="height: 40px;" class="gt_row gt_center"><a href="data:text/csv;base64,X3Jvd19udW1fLGRhdGVfdGltZSxkYXRlLGEsYixjLGQsZSxmCjEsMjAxNi0wMS0wNFQxMTowMDowMC4wMDAwMDAsMjAxNi0wMS0wNCwyLDEtYmNkLTM0NSwzLDM0MjMuMjksdHJ1ZSxoaWdoCjIsMjAxNi0wMS0wNFQwMDozMjowMC4wMDAwMDAsMjAxNi0wMS0wNCwzLDUtZWdoLTE2Myw4LDk5OTkuOTksdHJ1ZSxsb3cKNCwyMDE2LTAxLTA2VDE3OjIzOjAwLjAwMDAwMCwyMDE2LTAxLTA2LDIsNS1qZG8tOTAzLCwzODkyLjQsZmFsc2UsbWlkCjYsMjAxNi0wMS0xMVQwNjoxNTowMC4wMDAwMDAsMjAxNi0wMS0xMSw0LDItZGhlLTkyMyw0LDMyOTEuMDMsdHJ1ZSxtaWQK" download="extract_0001.csv"><button style="background-color: #67C2DC; color: #FFFFFF; border: none; padding: 5px; font-weight: bold; cursor: pointer; border-radius: 4px;">CSV</button></a></td>
  </tr>
</tbody>

</table>

</div>
</div>
</div>
<p>This templating approach is a great way to create context-aware notifications that adapt to the specific validation failures occurring. As the example shows, when values in column <code>d</code> fail validation against the limit of <code>3000</code>, the template automatically generates a meaningful error message showing exactly which step, column, and threshold value was involved.</p>
</section>
<section id="accessing-metadata-in-custom-action-functions" class="level1">
<h1>Accessing Metadata in Custom Action Functions</h1>
<p>For more sophisticated actions, you often need access to details about the validation failure. The <code>get_action_metadata()</code> function provides this context when called inside an action function:</p>
<div id="e079fe67" class="cell" data-execution_count="5">
<div class="sourceCode cell-code" id="cb7" style="background: #f1f3f5;"><pre class="sourceCode python"><code class="sourceCode python"><span id="cb7-1"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">def</span> send_detailed_alert():</span>
<span id="cb7-2">    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Get metadata about the validation failure</span></span>
<span id="cb7-3">    metadata <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> pb.get_action_metadata()</span>
<span id="cb7-4"></span>
<span id="cb7-5">    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Create a customized alert message</span></span>
<span id="cb7-6">    <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">print</span>(<span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">f"""</span></span>
<span id="cb7-7"><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">    VALIDATION FAILURE DETAILS</span></span>
<span id="cb7-8"><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">    -------------------------</span></span>
<span id="cb7-9"><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">    Step: </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">{</span>metadata[<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'step'</span>]<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">}</span></span>
<span id="cb7-10"><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">    Column: </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">{</span>metadata[<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'column'</span>]<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">}</span></span>
<span id="cb7-11"><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">    Validation type: </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">{</span>metadata[<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'type'</span>]<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">}</span></span>
<span id="cb7-12"><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">    Severity: </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">{</span>metadata[<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'level'</span>]<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">}</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;"> (level </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">{</span>metadata[<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'level_num'</span>]<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">}</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">)</span></span>
<span id="cb7-13"><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">    Time: </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">{</span>metadata[<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'time'</span>]<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">}</span></span>
<span id="cb7-14"></span>
<span id="cb7-15"><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">    Explanation: </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">{</span>metadata[<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'failure_text'</span>]<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">}</span></span>
<span id="cb7-16"><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">    """</span>)</span>
<span id="cb7-17"></span>
<span id="cb7-18">validation_4 <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> (</span>
<span id="cb7-19">    pb.Validate(</span>
<span id="cb7-20">        data<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>pb.load_dataset(dataset<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"small_table"</span>),</span>
<span id="cb7-21">        thresholds<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>pb.Thresholds(critical<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>),</span>
<span id="cb7-22">        actions<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>pb.Actions(critical<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>send_detailed_alert)</span>
<span id="cb7-23">    )</span>
<span id="cb7-24">    .col_vals_gt(</span>
<span id="cb7-25">        columns<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"d"</span>,</span>
<span id="cb7-26">        value<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">5000</span></span>
<span id="cb7-27">    )</span>
<span id="cb7-28">    .interrogate()</span>
<span id="cb7-29">)</span>
<span id="cb7-30"></span>
<span id="cb7-31">validation_4</span></code></pre></div>
<div class="cell-output cell-output-stdout">
<pre><code>
    VALIDATION FAILURE DETAILS
    -------------------------
    Step: 1
    Column: d
    Validation type: col_vals_gt
    Severity: critical (level 50)
    Time: 2026-07-22 23:16:17.724732+00:00

    Explanation: Exceedance of failed test units where values in `d` should have been &gt; `5000`.
    </code></pre>
</div>
<div class="cell-output cell-output-display" data-execution_count="5">
<div id="pb_tbl" style="padding-left:0px;padding-right:0px;padding-top:10px;padding-bottom:10px;overflow-x:auto;overflow-y:auto;width:auto;height:auto;">
<style>
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono&display=swap');
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Sans&display=swap');
#pb_tbl table {
          font-family: 'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Helvetica Neue', 'Fira Sans', 'Droid Sans', Arial, sans-serif;
          -webkit-font-smoothing: antialiased;
          -moz-osx-font-smoothing: grayscale;
        }

#pb_tbl thead, tbody, tfoot, tr, td, th { border-style: none; }
 tr { background-color: transparent; }
#pb_tbl p { margin: 0; padding: 0; }
 #pb_tbl .gt_table { display: table; border-collapse: collapse; line-height: normal; margin-left: auto; margin-right: auto; color: #333333; font-size: 90%; font-weight: normal; font-style: normal; background-color: #FFFFFF; width: auto; border-top-style: solid; border-top-width: 2px; border-top-color: #A8A8A8; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #A8A8A8; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; }
 #pb_tbl .gt_caption { padding-top: 4px; padding-bottom: 4px; }
 #pb_tbl .gt_title { color: #333333; font-size: 125%; font-weight: initial; padding-top: 4px; padding-bottom: 4px; padding-left: 5px; padding-right: 5px; border-bottom-color: #FFFFFF; border-bottom-width: 0; }
 #pb_tbl .gt_subtitle { color: #333333; font-size: 85%; font-weight: initial; padding-top: 3px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; border-top-color: #FFFFFF; border-top-width: 0; }
 #pb_tbl .gt_heading { background-color: #FFFFFF; text-align: left; border-bottom-color: #FFFFFF; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; }
 #pb_tbl .gt_bottom_border { border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; }
 #pb_tbl .gt_col_headings { border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; }
 #pb_tbl .gt_col_heading { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: normal; text-transform: inherit; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; vertical-align: bottom; padding-top: 5px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; overflow-x: hidden; }
 #pb_tbl .gt_column_spanner_outer { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: normal; text-transform: inherit; padding-top: 0; padding-bottom: 0; padding-left: 4px; padding-right: 4px; }
 #pb_tbl .gt_column_spanner_outer:first-child { padding-left: 0; }
 #pb_tbl .gt_column_spanner_outer:last-child { padding-right: 0; }
 #pb_tbl .gt_column_spanner { border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; vertical-align: bottom; padding-top: 5px; padding-bottom: 5px; overflow-x: hidden; display: inline-block; width: 100%; }
 #pb_tbl .gt_spanner_row { border-bottom-style: hidden; }
 #pb_tbl .gt_group_heading { padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; text-transform: inherit; border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; vertical-align: middle; text-align: left; }
 #pb_tbl .gt_empty_group_heading { padding: 0.5px; color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; vertical-align: middle; }
 #pb_tbl .gt_from_md> :first-child { margin-top: 0; }
 #pb_tbl .gt_from_md> :last-child { margin-bottom: 0; }
 #pb_tbl .gt_row { padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; margin: 10px; border-top-style: solid; border-top-width: 1px; border-top-color: #D3D3D3; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; vertical-align: middle; overflow-x: hidden; }
 #pb_tbl .gt_stub { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; text-transform: inherit; border-right-style: solid; border-right-width: 2px; border-right-color: #D3D3D3; padding-left: 5px; padding-right: 5px; }
 #pb_tbl .gt_stub_row_group { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; text-transform: inherit; border-right-style: solid; border-right-width: 2px; border-right-color: #D3D3D3; padding-left: 5px; padding-right: 5px; vertical-align: top; }
 #pb_tbl .gt_row_group_first td { border-top-width: 2px; }
 #pb_tbl .gt_row_group_first th { border-top-width: 2px; }
 #pb_tbl .gt_striped { color: #333333; background-color: #F4F4F4; }
 #pb_tbl .gt_table_body { border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; }
 #pb_tbl .gt_summary_row { color: #333333; background-color: #FFFFFF; text-transform: inherit; padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; }
 #pb_tbl .gt_first_summary_row { border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; }
 #pb_tbl .gt_last_summary_row_top { border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; }
 #pb_tbl .gt_grand_summary_row { color: #333333; background-color: #FFFFFF; text-transform: inherit; padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; }
 #pb_tbl .gt_first_grand_summary_row_bottom { border-top-style: double; border-top-width: 6px; border-top-color: #D3D3D3; }
 #pb_tbl .gt_last_grand_summary_row_top { border-bottom-style: double; border-bottom-width: 6px; border-bottom-color: #D3D3D3; }
 #pb_tbl .gt_sourcenotes { color: #333333; background-color: #FFFFFF; border-bottom-style: none; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; }
 #pb_tbl .gt_sourcenote { font-size: 90%; padding-top: 4px; padding-bottom: 4px; padding-left: 5px; padding-right: 5px; text-align: left; }
 #pb_tbl .gt_left { text-align: left; }
 #pb_tbl .gt_center { text-align: center; }
 #pb_tbl .gt_right { text-align: right; font-variant-numeric: tabular-nums; }
 #pb_tbl .gt_font_normal { font-weight: normal; }
 #pb_tbl .gt_font_bold { font-weight: bold; }
 #pb_tbl .gt_font_italic { font-style: italic; }
 #pb_tbl .gt_super { font-size: 65%; }
 #pb_tbl .gt_footnotes { color: font-color(#FFFFFF); background-color: #FFFFFF; border-bottom-style: none; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; }
 #pb_tbl .gt_footnote { margin: 0px; font-size: 90%; padding-top: 4px; padding-bottom: 4px; padding-left: 5px; padding-right: 5px; }
 #pb_tbl .gt_sourcenotes { color: #333333; background-color: #FFFFFF; border-bottom-style: none; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; }
 #pb_tbl .gt_sourcenote { font-size: 90%; padding-top: 4px; padding-bottom: 4px; padding-left: 5px; padding-right: 5px; text-align: left; }
 #pb_tbl .gt_footnote_marks { font-size: 75%; vertical-align: 0.4em; position: initial; }
 #pb_tbl .gt_asterisk { font-size: 100%; vertical-align: 0; }
 
</style>
<table style="table-layout: fixed;; width: 0px" class="gt_table" data-quarto-disable-processing="true" data-quarto-bootstrap="false">
<colgroup>
  <col style="width:4px;">
  <col style="width:35px;">
  <col style="width:190px;">
  <col style="width:120px;">
  <col style="width:120px;">
  <col style="width:50px;">
  <col style="width:50px;">
  <col style="width:60px;">
  <col style="width:60px;">
  <col style="width:60px;">
  <col style="width:30px;">
  <col style="width:30px;">
  <col style="width:30px;">
  <col style="width:65px;">
</colgroup>

<thead>

  <tr class="gt_heading">
    <td colspan="14" class="gt_heading gt_title gt_font_normal" style="color: #444444;font-size: 28px;text-align: left;font-weight: bold; text-align: left;">Pointblank Validation</td>
  </tr>
  <tr class="gt_heading">
    <td colspan="14" class="gt_heading gt_subtitle gt_font_normal gt_bottom_border" style="text-align: left;"><div><span style="text-decoration-style: solid; text-decoration-color: #ADD8E6; text-decoration-line: underline; text-underline-position: under; color: #333333; font-variant-numeric: tabular-nums; padding-left: 4px; margin-right: 5px; padding-right: 2px;">2026-07-22|23:16:17</span><div style="padding-top: 10px; padding-bottom: 5px;"><span style="background-color: #0075FF; color: #FFFFFF; padding: 0.5em 0.5em; position: inherit; text-transform: uppercase; margin: 5px 10px 5px 0px; border: solid 1px #0075FF; font-weight: bold; padding: 2px 10px 2px 10px; font-size: 10px;">Polars</span><span><span style="background-color: #AAAAAA; color: white; padding: 0.5em 0.5em; position: inherit; text-transform: uppercase; margin: 5px 0px 5px 5px; border: solid 1px #AAAAAA; font-weight: bold; padding: 2px 15px 2px 15px; font-size: smaller;">WARNING</span><span style="background-color: none; color: #333333; padding: 0.5em 0.5em; position: inherit; margin: 5px 0px 5px -4px; font-weight: bold; border: solid 1px #AAAAAA; padding: 2px 15px 2px 15px; font-size: smaller; margin-right: 5px;">—</span><span style="background-color: #EBBC14; color: white; padding: 0.5em 0.5em; position: inherit; text-transform: uppercase; margin: 5px 0px 5px 1px; border: solid 1px #EBBC14; font-weight: bold; padding: 2px 15px 2px 15px; font-size: smaller;">ERROR</span><span style="background-color: none; color: #333333; padding: 0.5em 0.5em; position: inherit; margin: 5px 0px 5px -4px; font-weight: bold; border: solid 1px #EBBC14; padding: 2px 15px 2px 15px; font-size: smaller; margin-right: 5px;">—</span><span style="background-color: #FF3300; color: white; padding: 0.5em 0.5em; position: inherit; text-transform: uppercase; margin: 5px 0px 5px 1px; border: solid 1px #FF3300; font-weight: bold; padding: 2px 15px 2px 15px; font-size: smaller;">CRITICAL</span><span style="background-color: none; color: #333333; padding: 0.5em 0.5em; position: inherit; margin: 5px 0px 5px -4px; font-weight: bold; border: solid 1px #FF3300; padding: 2px 15px 2px 15px; font-size: smaller;">1</span></span></div></div></td>
  </tr>
<tr class="gt_col_headings">
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-status_color"></th>
  <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-i"></th>
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-type_upd">STEP</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-columns_upd">COLUMNS</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-values_upd">VALUES</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-tbl">TBL</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-eval">EVAL</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-test_units">UNITS</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-pass">PASS</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-fail">FAIL</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-w_upd">W</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-e_upd">E</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-c_upd">C</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-extract_upd">EXT</th>
</tr>
</thead>
<tbody class="gt_table_body">
  <tr>
    <td style="height: 40px; background-color: #FF3300; color: transparent;font-size: 0px;" class="gt_row gt_left">#FF3300</td>
    <td style="height: 40px; color: #666666;font-size: 13px;font-weight: bold;" class="gt_row gt_right">1</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_left">
        <div style="margin: 0; padding: 0; display: inline-block; height: 30px; vertical-align: middle; width: 16%;">
            <!--?xml version="1.0" encoding="UTF-8"?--><!--?xml version="1.0" encoding="UTF-8"?-->
<svg width="30px" height="30px" viewbox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" style="background: #FFFFFF;">
    <title>col_vals_gt</title>
    <g id="Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="col_vals_gt" transform="translate(1.500000, 1.500000)" fill-rule="nonzero">
            <path d="M55,0 C57.4852813,0 59.7352813,1.00735931 61.363961,2.63603897 C62.9926407,4.26471863 64,6.51471863 64,9 L64,9 L64,64 L9,64 C6.51471862,64 4.26471862,62.9926407 2.63603897,61.363961 C1.00735931,59.7352814 0,57.4852814 0,55 L0,55 L0,9 C0,6.51471863 1.00735931,4.26471863 2.63603897,2.63603897 C4.26471862,1.00735931 6.51471862,0 9,0 L9,0 L55,0 Z" id="rectangle" stroke="#000000" stroke-width="2" fill="#FFFFFF"></path>
            <path d="M48.7619048,10 L15.2380953,10 C12.3466667,10 10,12.3466667 10,15.2380952 L10,48.7619048 C10,51.6533333 12.3466667,54 15.2380953,54 L48.7619048,54 C51.6533333,54 54,51.6533333 54,48.7619048 L54,15.2380952 C54,12.3466667 51.6533333,10 48.7619048,10 Z M25.2638095,44.3828571 L24.0695238,42.6647619 L39.5847619,32 L24.0695238,21.3352381 L25.2638095,19.6171429 L43.2828572,32 L25.2638095,44.3828571 Z" id="greater_than" fill="#000000"></path>
        </g>
    </g>
</svg>
        </div>
        <div style="font-family: 'IBM Plex Mono', monospace, courier; color: black; font-size: 11px; display: inline-block; vertical-align: middle;">
            <div>col_vals_gt()</div>
        </div>
        
        </td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">d</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">5000</td>
    <td style="height: 40px; background-color: #FCFCFC; border-left: 1px solid #D3D3D3;" class="gt_row gt_center"><svg width="25px" height="25px" viewbox="0 0 25 25" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" style="vertical-align: middle;">
    <g id="unchanged" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="unchanged" transform="translate(0.500000, 0.570147)">
            <rect id="Rectangle" x="0.125132506" y="0" width="23.749735" height="23.7894737"></rect>
            <path d="M5.80375046,8.18194736 C3.77191832,8.18194736 2.11875046,9.83495328 2.11875046,11.8669474 C2.11875046,13.8989414 3.77191832,15.5519474 5.80375046,15.5519474 C7.8355826,15.5519474 9.48875046,13.8989414 9.48875046,11.8669474 C9.48875046,9.83495328 7.83552863,8.18194736 5.80375046,8.18194736 Z M5.80375046,14.814915 C4.17821997,14.814915 2.85578285,13.4924778 2.85578285,11.8669474 C2.85578285,10.2414169 4.17821997,8.91897975 5.80375046,8.91897975 C7.42928095,8.91897975 8.75171807,10.2414169 8.75171807,11.8669474 C8.75171807,13.4924778 7.42928095,14.814915 5.80375046,14.814915 Z" id="Shape" fill="#000000" fill-rule="nonzero"></path>
            <path d="M13.9638189,8.699335 C13.9364621,8.70430925 13.9091059,8.71176968 13.8842359,8.71923074 C13.7822704,8.73663967 13.6877654,8.77643115 13.6056956,8.83860518 L10.2433156,11.3852598 C10.0766886,11.5046343 9.97720993,11.6986181 9.97720993,11.9025491 C9.97720993,12.1064807 10.0766886,12.3004639 10.2433156,12.4198383 L13.6056956,14.966493 C13.891697,15.1803725 14.2970729,15.1231721 14.5109517,14.8371707 C14.7248313,14.5511692 14.6676309,14.145794 14.3816294,13.9319145 L12.5313257,12.5392127 L21.8812495,12.5392127 L21.8812495,11.2658854 L12.5313257,11.2658854 L14.3816294,9.87318364 C14.6377872,9.71650453 14.7497006,9.40066014 14.6477351,9.11714553 C14.5482564,8.83363156 14.262255,8.65954352 13.9638189,8.699335 Z" id="arrow" fill="#000000" transform="translate(15.929230, 11.894737) rotate(-180.000000) translate(-15.929230, -11.894737) "></path>
        </g>
    </g>
</svg></td>
    <td style="height: 40px; background-color: #FCFCFC; border-right: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color:#4CA64C;">✓</span></td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_right">13</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5;" class="gt_row gt_right">1<br>0.08</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5;" class="gt_row gt_right">12<br>0.92</td>
    <td style="height: 40px; background-color: #FCFCFC; border-left: 1px solid #D3D3D3;" class="gt_row gt_center">—</td>
    <td style="height: 40px; background-color: #FCFCFC;" class="gt_row gt_center">—</td>
    <td style="height: 40px; background-color: #FCFCFC; border-right: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color: #FF3300;">●</span></td>
    <td style="height: 40px;" class="gt_row gt_center"><a href="data:text/csv;base64,X3Jvd19udW1fLGRhdGVfdGltZSxkYXRlLGEsYixjLGQsZSxmCjEsMjAxNi0wMS0wNFQxMTowMDowMC4wMDAwMDAsMjAxNi0wMS0wNCwyLDEtYmNkLTM0NSwzLDM0MjMuMjksdHJ1ZSxoaWdoCjMsMjAxNi0wMS0wNVQxMzozMjowMC4wMDAwMDAsMjAxNi0wMS0wNSw2LDgta2RnLTkzOCwzLDIzNDMuMjMsdHJ1ZSxoaWdoCjQsMjAxNi0wMS0wNlQxNzoyMzowMC4wMDAwMDAsMjAxNi0wMS0wNiwyLDUtamRvLTkwMywsMzg5Mi40LGZhbHNlLG1pZAo1LDIwMTYtMDEtMDlUMTI6MzY6MDAuMDAwMDAwLDIwMTYtMDEtMDksOCwzLWxkbS0wMzgsNywyODMuOTQsdHJ1ZSxsb3cKNiwyMDE2LTAxLTExVDA2OjE1OjAwLjAwMDAwMCwyMDE2LTAxLTExLDQsMi1kaGUtOTIzLDQsMzI5MS4wMyx0cnVlLG1pZAo3LDIwMTYtMDEtMTVUMTg6NDY6MDAuMDAwMDAwLDIwMTYtMDEtMTUsNywxLWtudy0wOTMsMyw4NDMuMzQsdHJ1ZSxoaWdoCjgsMjAxNi0wMS0xN1QxMToyNzowMC4wMDAwMDAsMjAxNi0wMS0xNyw0LDUtYm9lLTYzOSwyLDEwMzUuNjQsZmFsc2UsbG93CjksMjAxNi0wMS0yMFQwNDozMDowMC4wMDAwMDAsMjAxNi0wMS0yMCwzLDUtYmNlLTY0Miw5LDgzNy45MyxmYWxzZSxoaWdoCjEwLDIwMTYtMDEtMjBUMDQ6MzA6MDAuMDAwMDAwLDIwMTYtMDEtMjAsMyw1LWJjZS02NDIsOSw4MzcuOTMsZmFsc2UsaGlnaAoxMSwyMDE2LTAxLTI2VDIwOjA3OjAwLjAwMDAwMCwyMDE2LTAxLTI2LDQsMi1kbXgtMDEwLDcsODMzLjk4LHRydWUsbG93CjEyLDIwMTYtMDEtMjhUMDI6NTE6MDAuMDAwMDAwLDIwMTYtMDEtMjgsMiw3LWRteC0wMTAsOCwxMDguMzQsZmFsc2UsbG93CjEzLDIwMTYtMDEtMzBUMTE6MjM6MDAuMDAwMDAwLDIwMTYtMDEtMzAsMSwzLWRrYS0zMDMsLDIyMzAuMDksdHJ1ZSxoaWdoCg==" download="extract_0001.csv"><button style="background-color: #67C2DC; color: #FFFFFF; border: none; padding: 5px; font-weight: bold; cursor: pointer; border-radius: 4px;">CSV</button></a></td>
  </tr>
</tbody>

</table>

</div>
</div>
</div>
<p>The metadata dictionary contains essential fields for a given validation step, including the step number, column name, validation type, severity level, and failure explanation. This gives you complete flexibility to create highly customized responses based on the specific nature of the validation failure.</p>
</section>
<section id="final-actions-with-finalactions" class="level1">
<h1>Final Actions with <code>FinalActions</code></h1>
<p>While regular <a href="`Actions`"><code>Actions</code></a> are great for responding to individual validation steps, sometimes you need to take action based on the overall validation results. This is where the new <code>FinalActions</code> feature from <code>v0.8.1</code> comes in.</p>
<p>Unlike regular <a href="`Actions`"><code>Actions</code></a> that trigger during validation, <a href="`FinalActions`"><code>FinalActions</code></a> execute after all validation steps are complete. <a href="`FinalActions`"><code>FinalActions</code></a> accepts any number of actions (strings or callables) and executes them in sequence. Each argument can be a string message to display in the console, a callable function, or a list of strings/callables for multiple actions to execute in sequence.</p>
<p>The real power of <a href="`FinalActions`"><code>FinalActions</code></a> comes from the ability to access comprehensive information about your validation results using <a href="`get_validation_summary`"><code>get_validation_summary()</code></a>. When called inside a function passed to <a href="`FinalActions`"><code>FinalActions</code></a>, this function provides a dictionary containing counts of passing/failing steps and test units, threshold levels exceeded, and much more:</p>
<div id="414fcd28" class="cell" data-execution_count="6">
<div class="sourceCode cell-code" id="cb9" style="background: #f1f3f5;"><pre class="sourceCode python"><code class="sourceCode python"><span id="cb9-1"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">def</span> generate_summary():</span>
<span id="cb9-2">    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Access comprehensive validation results</span></span>
<span id="cb9-3">    summary <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> pb.get_validation_summary()</span>
<span id="cb9-4"></span>
<span id="cb9-5">    <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">print</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span><span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;">\n</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">=== VALIDATION SUMMARY ==="</span>)</span>
<span id="cb9-6">    <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">print</span>(<span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">f"Total steps: </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">{</span>summary[<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'n_steps'</span>]<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">}</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span>)</span>
<span id="cb9-7">    <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">print</span>(<span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">f"Passing steps: </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">{</span>summary[<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'n_passing_steps'</span>]<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">}</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span>)</span>
<span id="cb9-8">    <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">print</span>(<span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">f"Failing steps: </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">{</span>summary[<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'n_failing_steps'</span>]<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">}</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span>)</span>
<span id="cb9-9"></span>
<span id="cb9-10">    <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">if</span> summary[<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'highest_severity'</span>] <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">==</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"critical"</span>:</span>
<span id="cb9-11">        <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">print</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span><span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;">\n</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">⚠️ CRITICAL FAILURES DETECTED - immediate action required!"</span>)</span>
<span id="cb9-12">    <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">elif</span> summary[<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'highest_severity'</span>] <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">==</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"error"</span>:</span>
<span id="cb9-13">        <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">print</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span><span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;">\n</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">⚠️ ERRORS DETECTED - review needed"</span>)</span>
<span id="cb9-14">    <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">elif</span> summary[<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'highest_severity'</span>] <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">==</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"warning"</span>:</span>
<span id="cb9-15">        <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">print</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span><span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;">\n</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">⚠️ WARNINGS DETECTED - please investigate"</span>)</span>
<span id="cb9-16">    <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">else</span>:</span>
<span id="cb9-17">        <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">print</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span><span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;">\n</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">✅ All validations passed!"</span>)</span>
<span id="cb9-18"></span>
<span id="cb9-19">validation_5 <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> (</span>
<span id="cb9-20">    pb.Validate(</span>
<span id="cb9-21">        data<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>pb.load_dataset(dataset<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"small_table"</span>),</span>
<span id="cb9-22">        tbl_name<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"small_table"</span>,</span>
<span id="cb9-23">        thresholds<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>pb.Thresholds(warning<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>, error<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">5</span>, critical<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">10</span>),</span>
<span id="cb9-24">        final_actions<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>pb.FinalActions(</span>
<span id="cb9-25">            <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Validation process complete."</span>,  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># A simple string message</span></span>
<span id="cb9-26">            generate_summary               <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Our function using get_validation_summary()</span></span>
<span id="cb9-27">        )</span>
<span id="cb9-28">    )</span>
<span id="cb9-29">    .col_vals_gt(columns<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"a"</span>, value<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>)</span>
<span id="cb9-30">    .col_vals_lt(columns<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"d"</span>, value<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">10000</span>)</span>
<span id="cb9-31">    .interrogate()</span>
<span id="cb9-32">)</span>
<span id="cb9-33"></span>
<span id="cb9-34">validation_5</span></code></pre></div>
<div class="cell-output cell-output-stdout">
<pre><code>Validation process complete.

=== VALIDATION SUMMARY ===
Total steps: 2
Passing steps: 1
Failing steps: 1

⚠️ WARNINGS DETECTED - please investigate</code></pre>
</div>
<div class="cell-output cell-output-display" data-execution_count="6">
<div id="pb_tbl" style="padding-left:0px;padding-right:0px;padding-top:10px;padding-bottom:10px;overflow-x:auto;overflow-y:auto;width:auto;height:auto;">
<style>
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono&display=swap');
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Sans&display=swap');
#pb_tbl table {
          font-family: 'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Helvetica Neue', 'Fira Sans', 'Droid Sans', Arial, sans-serif;
          -webkit-font-smoothing: antialiased;
          -moz-osx-font-smoothing: grayscale;
        }

#pb_tbl thead, tbody, tfoot, tr, td, th { border-style: none; }
 tr { background-color: transparent; }
#pb_tbl p { margin: 0; padding: 0; }
 #pb_tbl .gt_table { display: table; border-collapse: collapse; line-height: normal; margin-left: auto; margin-right: auto; color: #333333; font-size: 90%; font-weight: normal; font-style: normal; background-color: #FFFFFF; width: auto; border-top-style: solid; border-top-width: 2px; border-top-color: #A8A8A8; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #A8A8A8; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; }
 #pb_tbl .gt_caption { padding-top: 4px; padding-bottom: 4px; }
 #pb_tbl .gt_title { color: #333333; font-size: 125%; font-weight: initial; padding-top: 4px; padding-bottom: 4px; padding-left: 5px; padding-right: 5px; border-bottom-color: #FFFFFF; border-bottom-width: 0; }
 #pb_tbl .gt_subtitle { color: #333333; font-size: 85%; font-weight: initial; padding-top: 3px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; border-top-color: #FFFFFF; border-top-width: 0; }
 #pb_tbl .gt_heading { background-color: #FFFFFF; text-align: left; border-bottom-color: #FFFFFF; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; }
 #pb_tbl .gt_bottom_border { border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; }
 #pb_tbl .gt_col_headings { border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; }
 #pb_tbl .gt_col_heading { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: normal; text-transform: inherit; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; vertical-align: bottom; padding-top: 5px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; overflow-x: hidden; }
 #pb_tbl .gt_column_spanner_outer { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: normal; text-transform: inherit; padding-top: 0; padding-bottom: 0; padding-left: 4px; padding-right: 4px; }
 #pb_tbl .gt_column_spanner_outer:first-child { padding-left: 0; }
 #pb_tbl .gt_column_spanner_outer:last-child { padding-right: 0; }
 #pb_tbl .gt_column_spanner { border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; vertical-align: bottom; padding-top: 5px; padding-bottom: 5px; overflow-x: hidden; display: inline-block; width: 100%; }
 #pb_tbl .gt_spanner_row { border-bottom-style: hidden; }
 #pb_tbl .gt_group_heading { padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; text-transform: inherit; border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; vertical-align: middle; text-align: left; }
 #pb_tbl .gt_empty_group_heading { padding: 0.5px; color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; vertical-align: middle; }
 #pb_tbl .gt_from_md> :first-child { margin-top: 0; }
 #pb_tbl .gt_from_md> :last-child { margin-bottom: 0; }
 #pb_tbl .gt_row { padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; margin: 10px; border-top-style: solid; border-top-width: 1px; border-top-color: #D3D3D3; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; vertical-align: middle; overflow-x: hidden; }
 #pb_tbl .gt_stub { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; text-transform: inherit; border-right-style: solid; border-right-width: 2px; border-right-color: #D3D3D3; padding-left: 5px; padding-right: 5px; }
 #pb_tbl .gt_stub_row_group { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; text-transform: inherit; border-right-style: solid; border-right-width: 2px; border-right-color: #D3D3D3; padding-left: 5px; padding-right: 5px; vertical-align: top; }
 #pb_tbl .gt_row_group_first td { border-top-width: 2px; }
 #pb_tbl .gt_row_group_first th { border-top-width: 2px; }
 #pb_tbl .gt_striped { color: #333333; background-color: #F4F4F4; }
 #pb_tbl .gt_table_body { border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; }
 #pb_tbl .gt_summary_row { color: #333333; background-color: #FFFFFF; text-transform: inherit; padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; }
 #pb_tbl .gt_first_summary_row { border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; }
 #pb_tbl .gt_last_summary_row_top { border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; }
 #pb_tbl .gt_grand_summary_row { color: #333333; background-color: #FFFFFF; text-transform: inherit; padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; }
 #pb_tbl .gt_first_grand_summary_row_bottom { border-top-style: double; border-top-width: 6px; border-top-color: #D3D3D3; }
 #pb_tbl .gt_last_grand_summary_row_top { border-bottom-style: double; border-bottom-width: 6px; border-bottom-color: #D3D3D3; }
 #pb_tbl .gt_sourcenotes { color: #333333; background-color: #FFFFFF; border-bottom-style: none; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; }
 #pb_tbl .gt_sourcenote { font-size: 90%; padding-top: 4px; padding-bottom: 4px; padding-left: 5px; padding-right: 5px; text-align: left; }
 #pb_tbl .gt_left { text-align: left; }
 #pb_tbl .gt_center { text-align: center; }
 #pb_tbl .gt_right { text-align: right; font-variant-numeric: tabular-nums; }
 #pb_tbl .gt_font_normal { font-weight: normal; }
 #pb_tbl .gt_font_bold { font-weight: bold; }
 #pb_tbl .gt_font_italic { font-style: italic; }
 #pb_tbl .gt_super { font-size: 65%; }
 #pb_tbl .gt_footnotes { color: font-color(#FFFFFF); background-color: #FFFFFF; border-bottom-style: none; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; }
 #pb_tbl .gt_footnote { margin: 0px; font-size: 90%; padding-top: 4px; padding-bottom: 4px; padding-left: 5px; padding-right: 5px; }
 #pb_tbl .gt_sourcenotes { color: #333333; background-color: #FFFFFF; border-bottom-style: none; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; }
 #pb_tbl .gt_sourcenote { font-size: 90%; padding-top: 4px; padding-bottom: 4px; padding-left: 5px; padding-right: 5px; text-align: left; }
 #pb_tbl .gt_footnote_marks { font-size: 75%; vertical-align: 0.4em; position: initial; }
 #pb_tbl .gt_asterisk { font-size: 100%; vertical-align: 0; }
 
</style>
<table style="table-layout: fixed;; width: 0px" class="gt_table" data-quarto-disable-processing="true" data-quarto-bootstrap="false">
<colgroup>
  <col style="width:4px;">
  <col style="width:35px;">
  <col style="width:190px;">
  <col style="width:120px;">
  <col style="width:120px;">
  <col style="width:50px;">
  <col style="width:50px;">
  <col style="width:60px;">
  <col style="width:60px;">
  <col style="width:60px;">
  <col style="width:30px;">
  <col style="width:30px;">
  <col style="width:30px;">
  <col style="width:65px;">
</colgroup>

<thead>

  <tr class="gt_heading">
    <td colspan="14" class="gt_heading gt_title gt_font_normal" style="color: #444444;font-size: 28px;text-align: left;font-weight: bold; text-align: left;">Pointblank Validation</td>
  </tr>
  <tr class="gt_heading">
    <td colspan="14" class="gt_heading gt_subtitle gt_font_normal gt_bottom_border" style="text-align: left;"><div><span style="text-decoration-style: solid; text-decoration-color: #ADD8E6; text-decoration-line: underline; text-underline-position: under; color: #333333; font-variant-numeric: tabular-nums; padding-left: 4px; margin-right: 5px; padding-right: 2px;">2026-07-22|23:16:17</span><div style="padding-top: 10px; padding-bottom: 5px;"><span style="background-color: #0075FF; color: #FFFFFF; padding: 0.5em 0.5em; position: inherit; text-transform: uppercase; margin: 5px 0px 5px 0px; border: solid 1px #0075FF; font-weight: bold; padding: 2px 15px 2px 15px; font-size: 10px;">Polars</span><span style="background-color: none; color: #222222; padding: 0.5em 0.5em; position: inherit; margin: 5px 10px 5px -4px; border: solid 1px #0075FF; font-weight: bold; padding: 2px 15px 2px 15px; font-size: 10px;">small_table</span><span><span style="background-color: #AAAAAA; color: white; padding: 0.5em 0.5em; position: inherit; text-transform: uppercase; margin: 5px 0px 5px 5px; border: solid 1px #AAAAAA; font-weight: bold; padding: 2px 15px 2px 15px; font-size: smaller;">WARNING</span><span style="background-color: none; color: #333333; padding: 0.5em 0.5em; position: inherit; margin: 5px 0px 5px -4px; font-weight: bold; border: solid 1px #AAAAAA; padding: 2px 15px 2px 15px; font-size: smaller; margin-right: 5px;">1</span><span style="background-color: #EBBC14; color: white; padding: 0.5em 0.5em; position: inherit; text-transform: uppercase; margin: 5px 0px 5px 1px; border: solid 1px #EBBC14; font-weight: bold; padding: 2px 15px 2px 15px; font-size: smaller;">ERROR</span><span style="background-color: none; color: #333333; padding: 0.5em 0.5em; position: inherit; margin: 5px 0px 5px -4px; font-weight: bold; border: solid 1px #EBBC14; padding: 2px 15px 2px 15px; font-size: smaller; margin-right: 5px;">5</span><span style="background-color: #FF3300; color: white; padding: 0.5em 0.5em; position: inherit; text-transform: uppercase; margin: 5px 0px 5px 1px; border: solid 1px #FF3300; font-weight: bold; padding: 2px 15px 2px 15px; font-size: smaller;">CRITICAL</span><span style="background-color: none; color: #333333; padding: 0.5em 0.5em; position: inherit; margin: 5px 0px 5px -4px; font-weight: bold; border: solid 1px #FF3300; padding: 2px 15px 2px 15px; font-size: smaller;">10</span></span></div></div></td>
  </tr>
<tr class="gt_col_headings">
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-status_color"></th>
  <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-i"></th>
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-type_upd">STEP</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-columns_upd">COLUMNS</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-values_upd">VALUES</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-tbl">TBL</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-eval">EVAL</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-test_units">UNITS</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-pass">PASS</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-fail">FAIL</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-w_upd">W</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-e_upd">E</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-c_upd">C</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-extract_upd">EXT</th>
</tr>
</thead>
<tbody class="gt_table_body">
  <tr>
    <td style="height: 40px; background-color: #AAAAAA; color: transparent;font-size: 0px;" class="gt_row gt_left">#AAAAAA</td>
    <td style="height: 40px; color: #666666;font-size: 13px;font-weight: bold;" class="gt_row gt_right">1</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_left">
        <div style="margin: 0; padding: 0; display: inline-block; height: 30px; vertical-align: middle; width: 16%;">
            <!--?xml version="1.0" encoding="UTF-8"?--><!--?xml version="1.0" encoding="UTF-8"?-->
<svg width="30px" height="30px" viewbox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" style="background: #FFFFFF;">
    <title>col_vals_gt</title>
    <g id="Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="col_vals_gt" transform="translate(1.500000, 1.500000)" fill-rule="nonzero">
            <path d="M55,0 C57.4852813,0 59.7352813,1.00735931 61.363961,2.63603897 C62.9926407,4.26471863 64,6.51471863 64,9 L64,9 L64,64 L9,64 C6.51471862,64 4.26471862,62.9926407 2.63603897,61.363961 C1.00735931,59.7352814 0,57.4852814 0,55 L0,55 L0,9 C0,6.51471863 1.00735931,4.26471863 2.63603897,2.63603897 C4.26471862,1.00735931 6.51471862,0 9,0 L9,0 L55,0 Z" id="rectangle" stroke="#000000" stroke-width="2" fill="#FFFFFF"></path>
            <path d="M48.7619048,10 L15.2380953,10 C12.3466667,10 10,12.3466667 10,15.2380952 L10,48.7619048 C10,51.6533333 12.3466667,54 15.2380953,54 L48.7619048,54 C51.6533333,54 54,51.6533333 54,48.7619048 L54,15.2380952 C54,12.3466667 51.6533333,10 48.7619048,10 Z M25.2638095,44.3828571 L24.0695238,42.6647619 L39.5847619,32 L24.0695238,21.3352381 L25.2638095,19.6171429 L43.2828572,32 L25.2638095,44.3828571 Z" id="greater_than" fill="#000000"></path>
        </g>
    </g>
</svg>
        </div>
        <div style="font-family: 'IBM Plex Mono', monospace, courier; color: black; font-size: 11px; display: inline-block; vertical-align: middle;">
            <div>col_vals_gt()</div>
        </div>
        
        </td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">a</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">1</td>
    <td style="height: 40px; background-color: #FCFCFC; border-left: 1px solid #D3D3D3;" class="gt_row gt_center"><svg width="25px" height="25px" viewbox="0 0 25 25" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" style="vertical-align: middle;">
    <g id="unchanged" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="unchanged" transform="translate(0.500000, 0.570147)">
            <rect id="Rectangle" x="0.125132506" y="0" width="23.749735" height="23.7894737"></rect>
            <path d="M5.80375046,8.18194736 C3.77191832,8.18194736 2.11875046,9.83495328 2.11875046,11.8669474 C2.11875046,13.8989414 3.77191832,15.5519474 5.80375046,15.5519474 C7.8355826,15.5519474 9.48875046,13.8989414 9.48875046,11.8669474 C9.48875046,9.83495328 7.83552863,8.18194736 5.80375046,8.18194736 Z M5.80375046,14.814915 C4.17821997,14.814915 2.85578285,13.4924778 2.85578285,11.8669474 C2.85578285,10.2414169 4.17821997,8.91897975 5.80375046,8.91897975 C7.42928095,8.91897975 8.75171807,10.2414169 8.75171807,11.8669474 C8.75171807,13.4924778 7.42928095,14.814915 5.80375046,14.814915 Z" id="Shape" fill="#000000" fill-rule="nonzero"></path>
            <path d="M13.9638189,8.699335 C13.9364621,8.70430925 13.9091059,8.71176968 13.8842359,8.71923074 C13.7822704,8.73663967 13.6877654,8.77643115 13.6056956,8.83860518 L10.2433156,11.3852598 C10.0766886,11.5046343 9.97720993,11.6986181 9.97720993,11.9025491 C9.97720993,12.1064807 10.0766886,12.3004639 10.2433156,12.4198383 L13.6056956,14.966493 C13.891697,15.1803725 14.2970729,15.1231721 14.5109517,14.8371707 C14.7248313,14.5511692 14.6676309,14.145794 14.3816294,13.9319145 L12.5313257,12.5392127 L21.8812495,12.5392127 L21.8812495,11.2658854 L12.5313257,11.2658854 L14.3816294,9.87318364 C14.6377872,9.71650453 14.7497006,9.40066014 14.6477351,9.11714553 C14.5482564,8.83363156 14.262255,8.65954352 13.9638189,8.699335 Z" id="arrow" fill="#000000" transform="translate(15.929230, 11.894737) rotate(-180.000000) translate(-15.929230, -11.894737) "></path>
        </g>
    </g>
</svg></td>
    <td style="height: 40px; background-color: #FCFCFC; border-right: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color:#4CA64C;">✓</span></td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_right">13</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5;" class="gt_row gt_right">12<br>0.92</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5;" class="gt_row gt_right">1<br>0.08</td>
    <td style="height: 40px; background-color: #FCFCFC; border-left: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color: #AAAAAA;">●</span></td>
    <td style="height: 40px; background-color: #FCFCFC;" class="gt_row gt_center"><span style="color: #EBBC14;">○</span></td>
    <td style="height: 40px; background-color: #FCFCFC; border-right: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color: #FF3300;">○</span></td>
    <td style="height: 40px;" class="gt_row gt_center"><a href="data:text/csv;base64,X3Jvd19udW1fLGRhdGVfdGltZSxkYXRlLGEsYixjLGQsZSxmCjEzLDIwMTYtMDEtMzBUMTE6MjM6MDAuMDAwMDAwLDIwMTYtMDEtMzAsMSwzLWRrYS0zMDMsLDIyMzAuMDksdHJ1ZSxoaWdoCg==" download="extract_0001.csv"><button style="background-color: #67C2DC; color: #FFFFFF; border: none; padding: 5px; font-weight: bold; cursor: pointer; border-radius: 4px;">CSV</button></a></td>
  </tr>
  <tr>
    <td style="height: 40px; background-color: #4CA64C; color: transparent;font-size: 0px;" class="gt_row gt_left">#4CA64C</td>
    <td style="height: 40px; color: #666666;font-size: 13px;font-weight: bold;" class="gt_row gt_right">2</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_left">
        <div style="margin: 0; padding: 0; display: inline-block; height: 30px; vertical-align: middle; width: 16%;">
            <!--?xml version="1.0" encoding="UTF-8"?--><!--?xml version="1.0" encoding="UTF-8"?-->
<svg width="30px" height="30px" viewbox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" style="background: #FFFFFF;">
    <title>col_vals_lt</title>
    <g id="Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="col_vals_lt" transform="translate(1.500000, 1.500000)" fill-rule="nonzero">
            <path d="M55,0 C57.4852813,0 59.7352813,1.00735931 61.363961,2.63603897 C62.9926407,4.26471863 64,6.51471863 64,9 L64,9 L64,64 L9,64 C6.51471862,64 4.26471862,62.9926407 2.63603897,61.363961 C1.00735931,59.7352814 0,57.4852814 0,55 L0,55 L0,9 C0,6.51471863 1.00735931,4.26471863 2.63603897,2.63603897 C4.26471862,1.00735931 6.51471862,0 9,0 L9,0 L55,0 Z" id="rectangle" stroke="#000000" stroke-width="2" fill="#FFFFFF"></path>
            <path d="M51,10 L13,10 C11.347656,10 10,11.347656 10,13 L10,51 C10,52.652344 11.347656,54 13,54 L51,54 C52.652344,54 54,52.652344 54,51 L54,13 C54,11.347656 52.652344,10 51,10 Z M38.707031,45.292969 L37.292969,46.707031 L22.585938,32 L37.292969,17.292969 L38.707031,18.707031 L25.414063,32 L38.707031,45.292969 Z" id="less_than" fill="#000000"></path>
        </g>
    </g>
</svg>
        </div>
        <div style="font-family: 'IBM Plex Mono', monospace, courier; color: black; font-size: 11px; display: inline-block; vertical-align: middle;">
            <div>col_vals_lt()</div>
        </div>
        
        </td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">d</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">10000</td>
    <td style="height: 40px; background-color: #FCFCFC; border-left: 1px solid #D3D3D3;" class="gt_row gt_center"><svg width="25px" height="25px" viewbox="0 0 25 25" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" style="vertical-align: middle;">
    <g id="unchanged" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="unchanged" transform="translate(0.500000, 0.570147)">
            <rect id="Rectangle" x="0.125132506" y="0" width="23.749735" height="23.7894737"></rect>
            <path d="M5.80375046,8.18194736 C3.77191832,8.18194736 2.11875046,9.83495328 2.11875046,11.8669474 C2.11875046,13.8989414 3.77191832,15.5519474 5.80375046,15.5519474 C7.8355826,15.5519474 9.48875046,13.8989414 9.48875046,11.8669474 C9.48875046,9.83495328 7.83552863,8.18194736 5.80375046,8.18194736 Z M5.80375046,14.814915 C4.17821997,14.814915 2.85578285,13.4924778 2.85578285,11.8669474 C2.85578285,10.2414169 4.17821997,8.91897975 5.80375046,8.91897975 C7.42928095,8.91897975 8.75171807,10.2414169 8.75171807,11.8669474 C8.75171807,13.4924778 7.42928095,14.814915 5.80375046,14.814915 Z" id="Shape" fill="#000000" fill-rule="nonzero"></path>
            <path d="M13.9638189,8.699335 C13.9364621,8.70430925 13.9091059,8.71176968 13.8842359,8.71923074 C13.7822704,8.73663967 13.6877654,8.77643115 13.6056956,8.83860518 L10.2433156,11.3852598 C10.0766886,11.5046343 9.97720993,11.6986181 9.97720993,11.9025491 C9.97720993,12.1064807 10.0766886,12.3004639 10.2433156,12.4198383 L13.6056956,14.966493 C13.891697,15.1803725 14.2970729,15.1231721 14.5109517,14.8371707 C14.7248313,14.5511692 14.6676309,14.145794 14.3816294,13.9319145 L12.5313257,12.5392127 L21.8812495,12.5392127 L21.8812495,11.2658854 L12.5313257,11.2658854 L14.3816294,9.87318364 C14.6377872,9.71650453 14.7497006,9.40066014 14.6477351,9.11714553 C14.5482564,8.83363156 14.262255,8.65954352 13.9638189,8.699335 Z" id="arrow" fill="#000000" transform="translate(15.929230, 11.894737) rotate(-180.000000) translate(-15.929230, -11.894737) "></path>
        </g>
    </g>
</svg></td>
    <td style="height: 40px; background-color: #FCFCFC; border-right: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color:#4CA64C;">✓</span></td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_right">13</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5;" class="gt_row gt_right">13<br>1.00</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5;" class="gt_row gt_right">0<br>0.00</td>
    <td style="height: 40px; background-color: #FCFCFC; border-left: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color: #AAAAAA;">○</span></td>
    <td style="height: 40px; background-color: #FCFCFC;" class="gt_row gt_center"><span style="color: #EBBC14;">○</span></td>
    <td style="height: 40px; background-color: #FCFCFC; border-right: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color: #FF3300;">○</span></td>
    <td style="height: 40px;" class="gt_row gt_center">—</td>
  </tr>
</tbody>

</table>

</div>
</div>
</div>
<p>The <a href="`get_validation_summary`"><code>get_validation_summary()</code></a> function is only available within functions passed to <a href="`FinalActions`"><code>FinalActions</code></a>. It gives you access to these key dictionary fields:</p>
<ul>
<li><code>tbl_name</code>: name of the validated table</li>
<li><code>n_steps</code>: total number of validation steps</li>
<li><code>n_passing_steps</code>, n_failing_steps: count of passing/failing steps</li>
<li><code>n</code>, <code>n_passed</code>, <code>n_failed</code>: total test units and their pass/fail counts</li>
<li><code>highest_severity</code>: the most severe threshold level reached (‘warning’, ‘error’, ‘critical’)</li>
<li>and many more detailed statistics</li>
</ul>
<p>This information allows you to create detailed and specific final actions that can respond appropriately to the overall validation results.</p>
</section>
<section id="combining-regular-and-final-actions" class="level1">
<h1>Combining Regular and Final Actions</h1>
<p>You can use both <a href="`Actions`"><code>Actions</code></a> and <a href="`FinalActions`"><code>FinalActions</code></a> together for comprehensive control over your validation workflow:</p>
<div id="75c0d005" class="cell" data-execution_count="7">
<div class="sourceCode cell-code" id="cb11" style="background: #f1f3f5;"><pre class="sourceCode python"><code class="sourceCode python"><span id="cb11-1"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">def</span> step_alert():</span>
<span id="cb11-2">    metadata <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> pb.get_action_metadata()</span>
<span id="cb11-3">    <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">print</span>(<span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">f"Step </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">{</span>metadata[<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'step'</span>]<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">}</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;"> failed with </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">{</span>metadata[<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'level'</span>]<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">}</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;"> severity"</span>)</span>
<span id="cb11-4"></span>
<span id="cb11-5"></span>
<span id="cb11-6"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">def</span> final_summary():</span>
<span id="cb11-7">    summary <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> pb.get_validation_summary()</span>
<span id="cb11-8"></span>
<span id="cb11-9">    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Get counts by checking each step's status in the dictionaries</span></span>
<span id="cb11-10">    steps <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">range</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>, summary[<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'n_steps'</span>] <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>)</span>
<span id="cb11-11">    n_critical <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">sum</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span> <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">for</span> step <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">in</span> steps <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">if</span> summary[<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'dict_critical'</span>].get(step, <span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">False</span>))</span>
<span id="cb11-12">    n_error <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">sum</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span> <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">for</span> step <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">in</span> steps <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">if</span> summary[<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'dict_error'</span>].get(step, <span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">False</span>))</span>
<span id="cb11-13">    n_warning <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">sum</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span> <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">for</span> step <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">in</span> steps <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">if</span> summary[<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'dict_warning'</span>].get(step, <span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">False</span>))</span>
<span id="cb11-14"></span>
<span id="cb11-15">    <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">print</span>(<span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">f"</span><span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;">\n</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">Validation complete with:"</span>)</span>
<span id="cb11-16">    <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">print</span>(<span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">f"- </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">{</span>n_critical<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">}</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;"> critical issues"</span>)</span>
<span id="cb11-17">    <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">print</span>(<span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">f"- </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">{</span>n_error<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">}</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;"> errors"</span>)</span>
<span id="cb11-18">    <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">print</span>(<span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">f"- </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">{</span>n_warning<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">}</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;"> warnings"</span>)</span>
<span id="cb11-19"></span>
<span id="cb11-20"></span>
<span id="cb11-21">validation_6 <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> (</span>
<span id="cb11-22">    pb.Validate(</span>
<span id="cb11-23">        data<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>pb.load_dataset(dataset<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"small_table"</span>),</span>
<span id="cb11-24">        thresholds<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>pb.Thresholds(warning<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>, error<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">5</span>, critical<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">10</span>),</span>
<span id="cb11-25">        actions<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>pb.Actions(default<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>step_alert),</span>
<span id="cb11-26">        final_actions<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>pb.FinalActions(final_summary),</span>
<span id="cb11-27">    )</span>
<span id="cb11-28">    .col_vals_gt(columns<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"a"</span>, value<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">5</span>)</span>
<span id="cb11-29">    .col_vals_lt(columns<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"d"</span>, value<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1000</span>)</span>
<span id="cb11-30">    .interrogate()</span>
<span id="cb11-31">)</span>
<span id="cb11-32"></span>
<span id="cb11-33">validation_6</span></code></pre></div>
<div class="cell-output cell-output-stdout">
<pre><code>Step 1 failed with critical severity
Step 2 failed with error severity

Validation complete with:
- 1 critical issues
- 2 errors
- 2 warnings</code></pre>
</div>
<div class="cell-output cell-output-display" data-execution_count="7">
<div id="pb_tbl" style="padding-left:0px;padding-right:0px;padding-top:10px;padding-bottom:10px;overflow-x:auto;overflow-y:auto;width:auto;height:auto;">
<style>
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono&display=swap');
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Sans&display=swap');
#pb_tbl table {
          font-family: 'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Helvetica Neue', 'Fira Sans', 'Droid Sans', Arial, sans-serif;
          -webkit-font-smoothing: antialiased;
          -moz-osx-font-smoothing: grayscale;
        }

#pb_tbl thead, tbody, tfoot, tr, td, th { border-style: none; }
 tr { background-color: transparent; }
#pb_tbl p { margin: 0; padding: 0; }
 #pb_tbl .gt_table { display: table; border-collapse: collapse; line-height: normal; margin-left: auto; margin-right: auto; color: #333333; font-size: 90%; font-weight: normal; font-style: normal; background-color: #FFFFFF; width: auto; border-top-style: solid; border-top-width: 2px; border-top-color: #A8A8A8; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #A8A8A8; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; }
 #pb_tbl .gt_caption { padding-top: 4px; padding-bottom: 4px; }
 #pb_tbl .gt_title { color: #333333; font-size: 125%; font-weight: initial; padding-top: 4px; padding-bottom: 4px; padding-left: 5px; padding-right: 5px; border-bottom-color: #FFFFFF; border-bottom-width: 0; }
 #pb_tbl .gt_subtitle { color: #333333; font-size: 85%; font-weight: initial; padding-top: 3px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; border-top-color: #FFFFFF; border-top-width: 0; }
 #pb_tbl .gt_heading { background-color: #FFFFFF; text-align: left; border-bottom-color: #FFFFFF; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; }
 #pb_tbl .gt_bottom_border { border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; }
 #pb_tbl .gt_col_headings { border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; }
 #pb_tbl .gt_col_heading { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: normal; text-transform: inherit; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; vertical-align: bottom; padding-top: 5px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; overflow-x: hidden; }
 #pb_tbl .gt_column_spanner_outer { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: normal; text-transform: inherit; padding-top: 0; padding-bottom: 0; padding-left: 4px; padding-right: 4px; }
 #pb_tbl .gt_column_spanner_outer:first-child { padding-left: 0; }
 #pb_tbl .gt_column_spanner_outer:last-child { padding-right: 0; }
 #pb_tbl .gt_column_spanner { border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; vertical-align: bottom; padding-top: 5px; padding-bottom: 5px; overflow-x: hidden; display: inline-block; width: 100%; }
 #pb_tbl .gt_spanner_row { border-bottom-style: hidden; }
 #pb_tbl .gt_group_heading { padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; text-transform: inherit; border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; vertical-align: middle; text-align: left; }
 #pb_tbl .gt_empty_group_heading { padding: 0.5px; color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; vertical-align: middle; }
 #pb_tbl .gt_from_md> :first-child { margin-top: 0; }
 #pb_tbl .gt_from_md> :last-child { margin-bottom: 0; }
 #pb_tbl .gt_row { padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; margin: 10px; border-top-style: solid; border-top-width: 1px; border-top-color: #D3D3D3; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; vertical-align: middle; overflow-x: hidden; }
 #pb_tbl .gt_stub { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; text-transform: inherit; border-right-style: solid; border-right-width: 2px; border-right-color: #D3D3D3; padding-left: 5px; padding-right: 5px; }
 #pb_tbl .gt_stub_row_group { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; text-transform: inherit; border-right-style: solid; border-right-width: 2px; border-right-color: #D3D3D3; padding-left: 5px; padding-right: 5px; vertical-align: top; }
 #pb_tbl .gt_row_group_first td { border-top-width: 2px; }
 #pb_tbl .gt_row_group_first th { border-top-width: 2px; }
 #pb_tbl .gt_striped { color: #333333; background-color: #F4F4F4; }
 #pb_tbl .gt_table_body { border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; }
 #pb_tbl .gt_summary_row { color: #333333; background-color: #FFFFFF; text-transform: inherit; padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; }
 #pb_tbl .gt_first_summary_row { border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; }
 #pb_tbl .gt_last_summary_row_top { border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; }
 #pb_tbl .gt_grand_summary_row { color: #333333; background-color: #FFFFFF; text-transform: inherit; padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; }
 #pb_tbl .gt_first_grand_summary_row_bottom { border-top-style: double; border-top-width: 6px; border-top-color: #D3D3D3; }
 #pb_tbl .gt_last_grand_summary_row_top { border-bottom-style: double; border-bottom-width: 6px; border-bottom-color: #D3D3D3; }
 #pb_tbl .gt_sourcenotes { color: #333333; background-color: #FFFFFF; border-bottom-style: none; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; }
 #pb_tbl .gt_sourcenote { font-size: 90%; padding-top: 4px; padding-bottom: 4px; padding-left: 5px; padding-right: 5px; text-align: left; }
 #pb_tbl .gt_left { text-align: left; }
 #pb_tbl .gt_center { text-align: center; }
 #pb_tbl .gt_right { text-align: right; font-variant-numeric: tabular-nums; }
 #pb_tbl .gt_font_normal { font-weight: normal; }
 #pb_tbl .gt_font_bold { font-weight: bold; }
 #pb_tbl .gt_font_italic { font-style: italic; }
 #pb_tbl .gt_super { font-size: 65%; }
 #pb_tbl .gt_footnotes { color: font-color(#FFFFFF); background-color: #FFFFFF; border-bottom-style: none; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; }
 #pb_tbl .gt_footnote { margin: 0px; font-size: 90%; padding-top: 4px; padding-bottom: 4px; padding-left: 5px; padding-right: 5px; }
 #pb_tbl .gt_sourcenotes { color: #333333; background-color: #FFFFFF; border-bottom-style: none; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; }
 #pb_tbl .gt_sourcenote { font-size: 90%; padding-top: 4px; padding-bottom: 4px; padding-left: 5px; padding-right: 5px; text-align: left; }
 #pb_tbl .gt_footnote_marks { font-size: 75%; vertical-align: 0.4em; position: initial; }
 #pb_tbl .gt_asterisk { font-size: 100%; vertical-align: 0; }
 
</style>
<table style="table-layout: fixed;; width: 0px" class="gt_table" data-quarto-disable-processing="true" data-quarto-bootstrap="false">
<colgroup>
  <col style="width:4px;">
  <col style="width:35px;">
  <col style="width:190px;">
  <col style="width:120px;">
  <col style="width:120px;">
  <col style="width:50px;">
  <col style="width:50px;">
  <col style="width:60px;">
  <col style="width:60px;">
  <col style="width:60px;">
  <col style="width:30px;">
  <col style="width:30px;">
  <col style="width:30px;">
  <col style="width:65px;">
</colgroup>

<thead>

  <tr class="gt_heading">
    <td colspan="14" class="gt_heading gt_title gt_font_normal" style="color: #444444;font-size: 28px;text-align: left;font-weight: bold; text-align: left;">Pointblank Validation</td>
  </tr>
  <tr class="gt_heading">
    <td colspan="14" class="gt_heading gt_subtitle gt_font_normal gt_bottom_border" style="text-align: left;"><div><span style="text-decoration-style: solid; text-decoration-color: #ADD8E6; text-decoration-line: underline; text-underline-position: under; color: #333333; font-variant-numeric: tabular-nums; padding-left: 4px; margin-right: 5px; padding-right: 2px;">2026-07-22|23:16:17</span><div style="padding-top: 10px; padding-bottom: 5px;"><span style="background-color: #0075FF; color: #FFFFFF; padding: 0.5em 0.5em; position: inherit; text-transform: uppercase; margin: 5px 10px 5px 0px; border: solid 1px #0075FF; font-weight: bold; padding: 2px 10px 2px 10px; font-size: 10px;">Polars</span><span><span style="background-color: #AAAAAA; color: white; padding: 0.5em 0.5em; position: inherit; text-transform: uppercase; margin: 5px 0px 5px 5px; border: solid 1px #AAAAAA; font-weight: bold; padding: 2px 15px 2px 15px; font-size: smaller;">WARNING</span><span style="background-color: none; color: #333333; padding: 0.5em 0.5em; position: inherit; margin: 5px 0px 5px -4px; font-weight: bold; border: solid 1px #AAAAAA; padding: 2px 15px 2px 15px; font-size: smaller; margin-right: 5px;">1</span><span style="background-color: #EBBC14; color: white; padding: 0.5em 0.5em; position: inherit; text-transform: uppercase; margin: 5px 0px 5px 1px; border: solid 1px #EBBC14; font-weight: bold; padding: 2px 15px 2px 15px; font-size: smaller;">ERROR</span><span style="background-color: none; color: #333333; padding: 0.5em 0.5em; position: inherit; margin: 5px 0px 5px -4px; font-weight: bold; border: solid 1px #EBBC14; padding: 2px 15px 2px 15px; font-size: smaller; margin-right: 5px;">5</span><span style="background-color: #FF3300; color: white; padding: 0.5em 0.5em; position: inherit; text-transform: uppercase; margin: 5px 0px 5px 1px; border: solid 1px #FF3300; font-weight: bold; padding: 2px 15px 2px 15px; font-size: smaller;">CRITICAL</span><span style="background-color: none; color: #333333; padding: 0.5em 0.5em; position: inherit; margin: 5px 0px 5px -4px; font-weight: bold; border: solid 1px #FF3300; padding: 2px 15px 2px 15px; font-size: smaller;">10</span></span></div></div></td>
  </tr>
<tr class="gt_col_headings">
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-status_color"></th>
  <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-i"></th>
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-type_upd">STEP</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-columns_upd">COLUMNS</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-values_upd">VALUES</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-tbl">TBL</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-eval">EVAL</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-test_units">UNITS</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-pass">PASS</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-fail">FAIL</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-w_upd">W</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-e_upd">E</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-c_upd">C</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-extract_upd">EXT</th>
</tr>
</thead>
<tbody class="gt_table_body">
  <tr>
    <td style="height: 40px; background-color: #FF3300; color: transparent;font-size: 0px;" class="gt_row gt_left">#FF3300</td>
    <td style="height: 40px; color: #666666;font-size: 13px;font-weight: bold;" class="gt_row gt_right">1</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_left">
        <div style="margin: 0; padding: 0; display: inline-block; height: 30px; vertical-align: middle; width: 16%;">
            <!--?xml version="1.0" encoding="UTF-8"?--><!--?xml version="1.0" encoding="UTF-8"?-->
<svg width="30px" height="30px" viewbox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" style="background: #FFFFFF;">
    <title>col_vals_gt</title>
    <g id="Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="col_vals_gt" transform="translate(1.500000, 1.500000)" fill-rule="nonzero">
            <path d="M55,0 C57.4852813,0 59.7352813,1.00735931 61.363961,2.63603897 C62.9926407,4.26471863 64,6.51471863 64,9 L64,9 L64,64 L9,64 C6.51471862,64 4.26471862,62.9926407 2.63603897,61.363961 C1.00735931,59.7352814 0,57.4852814 0,55 L0,55 L0,9 C0,6.51471863 1.00735931,4.26471863 2.63603897,2.63603897 C4.26471862,1.00735931 6.51471862,0 9,0 L9,0 L55,0 Z" id="rectangle" stroke="#000000" stroke-width="2" fill="#FFFFFF"></path>
            <path d="M48.7619048,10 L15.2380953,10 C12.3466667,10 10,12.3466667 10,15.2380952 L10,48.7619048 C10,51.6533333 12.3466667,54 15.2380953,54 L48.7619048,54 C51.6533333,54 54,51.6533333 54,48.7619048 L54,15.2380952 C54,12.3466667 51.6533333,10 48.7619048,10 Z M25.2638095,44.3828571 L24.0695238,42.6647619 L39.5847619,32 L24.0695238,21.3352381 L25.2638095,19.6171429 L43.2828572,32 L25.2638095,44.3828571 Z" id="greater_than" fill="#000000"></path>
        </g>
    </g>
</svg>
        </div>
        <div style="font-family: 'IBM Plex Mono', monospace, courier; color: black; font-size: 11px; display: inline-block; vertical-align: middle;">
            <div>col_vals_gt()</div>
        </div>
        
        </td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">a</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">5</td>
    <td style="height: 40px; background-color: #FCFCFC; border-left: 1px solid #D3D3D3;" class="gt_row gt_center"><svg width="25px" height="25px" viewbox="0 0 25 25" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" style="vertical-align: middle;">
    <g id="unchanged" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="unchanged" transform="translate(0.500000, 0.570147)">
            <rect id="Rectangle" x="0.125132506" y="0" width="23.749735" height="23.7894737"></rect>
            <path d="M5.80375046,8.18194736 C3.77191832,8.18194736 2.11875046,9.83495328 2.11875046,11.8669474 C2.11875046,13.8989414 3.77191832,15.5519474 5.80375046,15.5519474 C7.8355826,15.5519474 9.48875046,13.8989414 9.48875046,11.8669474 C9.48875046,9.83495328 7.83552863,8.18194736 5.80375046,8.18194736 Z M5.80375046,14.814915 C4.17821997,14.814915 2.85578285,13.4924778 2.85578285,11.8669474 C2.85578285,10.2414169 4.17821997,8.91897975 5.80375046,8.91897975 C7.42928095,8.91897975 8.75171807,10.2414169 8.75171807,11.8669474 C8.75171807,13.4924778 7.42928095,14.814915 5.80375046,14.814915 Z" id="Shape" fill="#000000" fill-rule="nonzero"></path>
            <path d="M13.9638189,8.699335 C13.9364621,8.70430925 13.9091059,8.71176968 13.8842359,8.71923074 C13.7822704,8.73663967 13.6877654,8.77643115 13.6056956,8.83860518 L10.2433156,11.3852598 C10.0766886,11.5046343 9.97720993,11.6986181 9.97720993,11.9025491 C9.97720993,12.1064807 10.0766886,12.3004639 10.2433156,12.4198383 L13.6056956,14.966493 C13.891697,15.1803725 14.2970729,15.1231721 14.5109517,14.8371707 C14.7248313,14.5511692 14.6676309,14.145794 14.3816294,13.9319145 L12.5313257,12.5392127 L21.8812495,12.5392127 L21.8812495,11.2658854 L12.5313257,11.2658854 L14.3816294,9.87318364 C14.6377872,9.71650453 14.7497006,9.40066014 14.6477351,9.11714553 C14.5482564,8.83363156 14.262255,8.65954352 13.9638189,8.699335 Z" id="arrow" fill="#000000" transform="translate(15.929230, 11.894737) rotate(-180.000000) translate(-15.929230, -11.894737) "></path>
        </g>
    </g>
</svg></td>
    <td style="height: 40px; background-color: #FCFCFC; border-right: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color:#4CA64C;">✓</span></td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_right">13</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5;" class="gt_row gt_right">3<br>0.23</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5;" class="gt_row gt_right">10<br>0.77</td>
    <td style="height: 40px; background-color: #FCFCFC; border-left: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color: #AAAAAA;">●</span></td>
    <td style="height: 40px; background-color: #FCFCFC;" class="gt_row gt_center"><span style="color: #EBBC14;">●</span></td>
    <td style="height: 40px; background-color: #FCFCFC; border-right: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color: #FF3300;">●</span></td>
    <td style="height: 40px;" class="gt_row gt_center"><a href="data:text/csv;base64,X3Jvd19udW1fLGRhdGVfdGltZSxkYXRlLGEsYixjLGQsZSxmCjEsMjAxNi0wMS0wNFQxMTowMDowMC4wMDAwMDAsMjAxNi0wMS0wNCwyLDEtYmNkLTM0NSwzLDM0MjMuMjksdHJ1ZSxoaWdoCjIsMjAxNi0wMS0wNFQwMDozMjowMC4wMDAwMDAsMjAxNi0wMS0wNCwzLDUtZWdoLTE2Myw4LDk5OTkuOTksdHJ1ZSxsb3cKNCwyMDE2LTAxLTA2VDE3OjIzOjAwLjAwMDAwMCwyMDE2LTAxLTA2LDIsNS1qZG8tOTAzLCwzODkyLjQsZmFsc2UsbWlkCjYsMjAxNi0wMS0xMVQwNjoxNTowMC4wMDAwMDAsMjAxNi0wMS0xMSw0LDItZGhlLTkyMyw0LDMyOTEuMDMsdHJ1ZSxtaWQKOCwyMDE2LTAxLTE3VDExOjI3OjAwLjAwMDAwMCwyMDE2LTAxLTE3LDQsNS1ib2UtNjM5LDIsMTAzNS42NCxmYWxzZSxsb3cKOSwyMDE2LTAxLTIwVDA0OjMwOjAwLjAwMDAwMCwyMDE2LTAxLTIwLDMsNS1iY2UtNjQyLDksODM3LjkzLGZhbHNlLGhpZ2gKMTAsMjAxNi0wMS0yMFQwNDozMDowMC4wMDAwMDAsMjAxNi0wMS0yMCwzLDUtYmNlLTY0Miw5LDgzNy45MyxmYWxzZSxoaWdoCjExLDIwMTYtMDEtMjZUMjA6MDc6MDAuMDAwMDAwLDIwMTYtMDEtMjYsNCwyLWRteC0wMTAsNyw4MzMuOTgsdHJ1ZSxsb3cKMTIsMjAxNi0wMS0yOFQwMjo1MTowMC4wMDAwMDAsMjAxNi0wMS0yOCwyLDctZG14LTAxMCw4LDEwOC4zNCxmYWxzZSxsb3cKMTMsMjAxNi0wMS0zMFQxMToyMzowMC4wMDAwMDAsMjAxNi0wMS0zMCwxLDMtZGthLTMwMywsMjIzMC4wOSx0cnVlLGhpZ2gK" download="extract_0001.csv"><button style="background-color: #67C2DC; color: #FFFFFF; border: none; padding: 5px; font-weight: bold; cursor: pointer; border-radius: 4px;">CSV</button></a></td>
  </tr>
  <tr>
    <td style="height: 40px; background-color: #EBBC14; color: transparent;font-size: 0px;" class="gt_row gt_left">#EBBC14</td>
    <td style="height: 40px; color: #666666;font-size: 13px;font-weight: bold;" class="gt_row gt_right">2</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_left">
        <div style="margin: 0; padding: 0; display: inline-block; height: 30px; vertical-align: middle; width: 16%;">
            <!--?xml version="1.0" encoding="UTF-8"?--><!--?xml version="1.0" encoding="UTF-8"?-->
<svg width="30px" height="30px" viewbox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" style="background: #FFFFFF;">
    <title>col_vals_lt</title>
    <g id="Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="col_vals_lt" transform="translate(1.500000, 1.500000)" fill-rule="nonzero">
            <path d="M55,0 C57.4852813,0 59.7352813,1.00735931 61.363961,2.63603897 C62.9926407,4.26471863 64,6.51471863 64,9 L64,9 L64,64 L9,64 C6.51471862,64 4.26471862,62.9926407 2.63603897,61.363961 C1.00735931,59.7352814 0,57.4852814 0,55 L0,55 L0,9 C0,6.51471863 1.00735931,4.26471863 2.63603897,2.63603897 C4.26471862,1.00735931 6.51471862,0 9,0 L9,0 L55,0 Z" id="rectangle" stroke="#000000" stroke-width="2" fill="#FFFFFF"></path>
            <path d="M51,10 L13,10 C11.347656,10 10,11.347656 10,13 L10,51 C10,52.652344 11.347656,54 13,54 L51,54 C52.652344,54 54,52.652344 54,51 L54,13 C54,11.347656 52.652344,10 51,10 Z M38.707031,45.292969 L37.292969,46.707031 L22.585938,32 L37.292969,17.292969 L38.707031,18.707031 L25.414063,32 L38.707031,45.292969 Z" id="less_than" fill="#000000"></path>
        </g>
    </g>
</svg>
        </div>
        <div style="font-family: 'IBM Plex Mono', monospace, courier; color: black; font-size: 11px; display: inline-block; vertical-align: middle;">
            <div>col_vals_lt()</div>
        </div>
        
        </td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">d</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">1000</td>
    <td style="height: 40px; background-color: #FCFCFC; border-left: 1px solid #D3D3D3;" class="gt_row gt_center"><svg width="25px" height="25px" viewbox="0 0 25 25" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" style="vertical-align: middle;">
    <g id="unchanged" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="unchanged" transform="translate(0.500000, 0.570147)">
            <rect id="Rectangle" x="0.125132506" y="0" width="23.749735" height="23.7894737"></rect>
            <path d="M5.80375046,8.18194736 C3.77191832,8.18194736 2.11875046,9.83495328 2.11875046,11.8669474 C2.11875046,13.8989414 3.77191832,15.5519474 5.80375046,15.5519474 C7.8355826,15.5519474 9.48875046,13.8989414 9.48875046,11.8669474 C9.48875046,9.83495328 7.83552863,8.18194736 5.80375046,8.18194736 Z M5.80375046,14.814915 C4.17821997,14.814915 2.85578285,13.4924778 2.85578285,11.8669474 C2.85578285,10.2414169 4.17821997,8.91897975 5.80375046,8.91897975 C7.42928095,8.91897975 8.75171807,10.2414169 8.75171807,11.8669474 C8.75171807,13.4924778 7.42928095,14.814915 5.80375046,14.814915 Z" id="Shape" fill="#000000" fill-rule="nonzero"></path>
            <path d="M13.9638189,8.699335 C13.9364621,8.70430925 13.9091059,8.71176968 13.8842359,8.71923074 C13.7822704,8.73663967 13.6877654,8.77643115 13.6056956,8.83860518 L10.2433156,11.3852598 C10.0766886,11.5046343 9.97720993,11.6986181 9.97720993,11.9025491 C9.97720993,12.1064807 10.0766886,12.3004639 10.2433156,12.4198383 L13.6056956,14.966493 C13.891697,15.1803725 14.2970729,15.1231721 14.5109517,14.8371707 C14.7248313,14.5511692 14.6676309,14.145794 14.3816294,13.9319145 L12.5313257,12.5392127 L21.8812495,12.5392127 L21.8812495,11.2658854 L12.5313257,11.2658854 L14.3816294,9.87318364 C14.6377872,9.71650453 14.7497006,9.40066014 14.6477351,9.11714553 C14.5482564,8.83363156 14.262255,8.65954352 13.9638189,8.699335 Z" id="arrow" fill="#000000" transform="translate(15.929230, 11.894737) rotate(-180.000000) translate(-15.929230, -11.894737) "></path>
        </g>
    </g>
</svg></td>
    <td style="height: 40px; background-color: #FCFCFC; border-right: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color:#4CA64C;">✓</span></td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_right">13</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5;" class="gt_row gt_right">6<br>0.46</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5;" class="gt_row gt_right">7<br>0.54</td>
    <td style="height: 40px; background-color: #FCFCFC; border-left: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color: #AAAAAA;">●</span></td>
    <td style="height: 40px; background-color: #FCFCFC;" class="gt_row gt_center"><span style="color: #EBBC14;">●</span></td>
    <td style="height: 40px; background-color: #FCFCFC; border-right: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color: #FF3300;">○</span></td>
    <td style="height: 40px;" class="gt_row gt_center"><a href="data:text/csv;base64,X3Jvd19udW1fLGRhdGVfdGltZSxkYXRlLGEsYixjLGQsZSxmCjEsMjAxNi0wMS0wNFQxMTowMDowMC4wMDAwMDAsMjAxNi0wMS0wNCwyLDEtYmNkLTM0NSwzLDM0MjMuMjksdHJ1ZSxoaWdoCjIsMjAxNi0wMS0wNFQwMDozMjowMC4wMDAwMDAsMjAxNi0wMS0wNCwzLDUtZWdoLTE2Myw4LDk5OTkuOTksdHJ1ZSxsb3cKMywyMDE2LTAxLTA1VDEzOjMyOjAwLjAwMDAwMCwyMDE2LTAxLTA1LDYsOC1rZGctOTM4LDMsMjM0My4yMyx0cnVlLGhpZ2gKNCwyMDE2LTAxLTA2VDE3OjIzOjAwLjAwMDAwMCwyMDE2LTAxLTA2LDIsNS1qZG8tOTAzLCwzODkyLjQsZmFsc2UsbWlkCjYsMjAxNi0wMS0xMVQwNjoxNTowMC4wMDAwMDAsMjAxNi0wMS0xMSw0LDItZGhlLTkyMyw0LDMyOTEuMDMsdHJ1ZSxtaWQKOCwyMDE2LTAxLTE3VDExOjI3OjAwLjAwMDAwMCwyMDE2LTAxLTE3LDQsNS1ib2UtNjM5LDIsMTAzNS42NCxmYWxzZSxsb3cKMTMsMjAxNi0wMS0zMFQxMToyMzowMC4wMDAwMDAsMjAxNi0wMS0zMCwxLDMtZGthLTMwMywsMjIzMC4wOSx0cnVlLGhpZ2gK" download="extract_0002.csv"><button style="background-color: #67C2DC; color: #FFFFFF; border: none; padding: 5px; font-weight: bold; cursor: pointer; border-radius: 4px;">CSV</button></a></td>
  </tr>
</tbody>

</table>

</div>
</div>
</div>
<p>This approach allows you to log individual step failures during the validation process using <a href="`Actions`"><code>Actions</code></a> and generate a comprehensive report after all validation steps are complete using <a href="`FinalActions`"><code>FinalActions</code></a>. Using both action types gives you fine-grained control over when and how notifications and other actions are triggered in your validation workflow.</p>
</section>
<section id="real-world-example-building-an-automated-validation-pipeline" class="level1">
<h1>Real-World Example: Building an Automated Validation Pipeline</h1>
<p>Let’s put everything together in a more realistic example. Imagine you’re validating a gaming revenue dataset and want to:</p>
<ol type="1">
<li>log detailed information about each failure</li>
<li>send a Slack notification if critical failures occur</li>
<li>generate a comprehensive report after validation completes</li>
</ol>
<div id="9a1b3ab8" class="cell" data-execution_count="8">
<div class="sourceCode cell-code" id="cb13" style="background: #f1f3f5;"><pre class="sourceCode python"><code class="sourceCode python"><span id="cb13-1"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">def</span> log_step_failure():</span>
<span id="cb13-2">    metadata <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> pb.get_action_metadata()</span>
<span id="cb13-3">    <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">print</span>(<span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">f"[</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">{</span>metadata[<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'level'</span>]<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">.</span>upper()<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">}</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">] Step </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">{</span>metadata[<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'step'</span>]<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">}</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">: </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">{</span>metadata[<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'failure_text'</span>]<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">}</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span>)</span>
<span id="cb13-4"></span>
<span id="cb13-5"><span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">def</span> analyze_results():</span>
<span id="cb13-6">    summary <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> pb.get_validation_summary()</span>
<span id="cb13-7"></span>
<span id="cb13-8">    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Calculate overall pass rate</span></span>
<span id="cb13-9">    pass_rate <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> (summary[<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'n_passing_steps'</span>] <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/</span> summary[<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'n_steps'</span>]) <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">*</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">100</span></span>
<span id="cb13-10"></span>
<span id="cb13-11">    <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">print</span>(<span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">f"</span><span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;">\n</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">==== VALIDATION RESULTS ===="</span>)</span>
<span id="cb13-12">    <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">print</span>(<span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">f"Table: </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">{</span>summary[<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'tbl_name'</span>]<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">}</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span>)</span>
<span id="cb13-13">    <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">print</span>(<span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">f"Pass rate: </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">{</span>pass_rate<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:.2f}</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">%"</span>)</span>
<span id="cb13-14">    <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">print</span>(<span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">f"Failing steps: </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">{</span>summary[<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'n_failing_steps'</span>]<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">}</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;"> of </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">{</span>summary[<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'n_steps'</span>]<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">}</span><span class="ss" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span>)</span>
<span id="cb13-15"></span>
<span id="cb13-16">    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># In a real scenario, here you might:</span></span>
<span id="cb13-17">    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># 1. Save results to a database</span></span>
<span id="cb13-18">    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># 2. Generate and email an HTML report</span></span>
<span id="cb13-19">    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># 3. Trigger data cleansing workflows</span></span>
<span id="cb13-20"></span>
<span id="cb13-21">    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Simulate a Slack notification</span></span>
<span id="cb13-22">    <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">if</span> summary[<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">'highest_severity'</span>] <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">==</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"critical"</span>:</span>
<span id="cb13-23">        <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">print</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span><span class="ch" style="color: #20794D;
background-color: null;
font-style: inherit;">\n</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">🚨 [SLACK NOTIFICATION] Critical data quality issues detected!"</span>)</span>
<span id="cb13-24">        <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">print</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"@data-team Please investigate immediately."</span>)</span>
<span id="cb13-25"></span>
<span id="cb13-26"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Create our validation workflow with actions</span></span>
<span id="cb13-27">validation_7 <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> (</span>
<span id="cb13-28">    pb.Validate(</span>
<span id="cb13-29">        data<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>pb.load_dataset(dataset<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"game_revenue"</span>),</span>
<span id="cb13-30">        tbl_name<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"game_revenue"</span>,</span>
<span id="cb13-31">        thresholds<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>pb.Thresholds(warning<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.05</span>, error<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.10</span>, critical<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.15</span>),</span>
<span id="cb13-32">        actions<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>pb.Actions(default<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>log_step_failure, highest_only<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">True</span>),</span>
<span id="cb13-33">        final_actions<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>pb.FinalActions(analyze_results),</span>
<span id="cb13-34">        brief<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="va" style="color: #111111;
background-color: null;
font-style: inherit;">True</span>  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Add automatically-generated briefs</span></span>
<span id="cb13-35">    )</span>
<span id="cb13-36">    .col_vals_regex(</span>
<span id="cb13-37">        columns<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"player_id"</span>,</span>
<span id="cb13-38">        pattern<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="vs" style="color: #20794D;
background-color: null;
font-style: inherit;">r"</span><span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;">[A-Z]</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">{12}</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">\d</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">{3}</span><span class="vs" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span>,</span>
<span id="cb13-39">        brief<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Player IDs must follow standard format"</span>  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Custom brief text</span></span>
<span id="cb13-40">    )</span>
<span id="cb13-41">    .col_vals_gt(</span>
<span id="cb13-42">        columns<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"item_revenue"</span>,</span>
<span id="cb13-43">        value<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.10</span></span>
<span id="cb13-44">    )</span>
<span id="cb13-45">    .col_vals_gt(</span>
<span id="cb13-46">        columns<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"session_duration"</span>,</span>
<span id="cb13-47">        value<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">15</span></span>
<span id="cb13-48">    )</span>
<span id="cb13-49">    .interrogate()</span>
<span id="cb13-50">)</span>
<span id="cb13-51"></span>
<span id="cb13-52">validation_7</span></code></pre></div>
<div class="cell-output cell-output-stdout">
<pre><code>[CRITICAL] Step 2: Exceedance of failed test units where values in `item_revenue` should have been &gt; `0.1`.
[CRITICAL] Step 3: Exceedance of failed test units where values in `session_duration` should have been &gt; `15`.

==== VALIDATION RESULTS ====
Table: game_revenue
Pass rate: 33.33%
Failing steps: 2 of 3

🚨 [SLACK NOTIFICATION] Critical data quality issues detected!
@data-team Please investigate immediately.</code></pre>
</div>
<div class="cell-output cell-output-display" data-execution_count="8">
<div id="pb_tbl" style="padding-left:0px;padding-right:0px;padding-top:10px;padding-bottom:10px;overflow-x:auto;overflow-y:auto;width:auto;height:auto;">
<style>
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono&display=swap');
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Sans&display=swap');
#pb_tbl table {
          font-family: 'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Helvetica Neue', 'Fira Sans', 'Droid Sans', Arial, sans-serif;
          -webkit-font-smoothing: antialiased;
          -moz-osx-font-smoothing: grayscale;
        }

#pb_tbl thead, tbody, tfoot, tr, td, th { border-style: none; }
 tr { background-color: transparent; }
#pb_tbl p { margin: 0; padding: 0; }
 #pb_tbl .gt_table { display: table; border-collapse: collapse; line-height: normal; margin-left: auto; margin-right: auto; color: #333333; font-size: 90%; font-weight: normal; font-style: normal; background-color: #FFFFFF; width: auto; border-top-style: solid; border-top-width: 2px; border-top-color: #A8A8A8; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #A8A8A8; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; }
 #pb_tbl .gt_caption { padding-top: 4px; padding-bottom: 4px; }
 #pb_tbl .gt_title { color: #333333; font-size: 125%; font-weight: initial; padding-top: 4px; padding-bottom: 4px; padding-left: 5px; padding-right: 5px; border-bottom-color: #FFFFFF; border-bottom-width: 0; }
 #pb_tbl .gt_subtitle { color: #333333; font-size: 85%; font-weight: initial; padding-top: 3px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; border-top-color: #FFFFFF; border-top-width: 0; }
 #pb_tbl .gt_heading { background-color: #FFFFFF; text-align: left; border-bottom-color: #FFFFFF; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; }
 #pb_tbl .gt_bottom_border { border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; }
 #pb_tbl .gt_col_headings { border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; }
 #pb_tbl .gt_col_heading { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: normal; text-transform: inherit; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; vertical-align: bottom; padding-top: 5px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; overflow-x: hidden; }
 #pb_tbl .gt_column_spanner_outer { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: normal; text-transform: inherit; padding-top: 0; padding-bottom: 0; padding-left: 4px; padding-right: 4px; }
 #pb_tbl .gt_column_spanner_outer:first-child { padding-left: 0; }
 #pb_tbl .gt_column_spanner_outer:last-child { padding-right: 0; }
 #pb_tbl .gt_column_spanner { border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; vertical-align: bottom; padding-top: 5px; padding-bottom: 5px; overflow-x: hidden; display: inline-block; width: 100%; }
 #pb_tbl .gt_spanner_row { border-bottom-style: hidden; }
 #pb_tbl .gt_group_heading { padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; text-transform: inherit; border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; vertical-align: middle; text-align: left; }
 #pb_tbl .gt_empty_group_heading { padding: 0.5px; color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; vertical-align: middle; }
 #pb_tbl .gt_from_md> :first-child { margin-top: 0; }
 #pb_tbl .gt_from_md> :last-child { margin-bottom: 0; }
 #pb_tbl .gt_row { padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; margin: 10px; border-top-style: solid; border-top-width: 1px; border-top-color: #D3D3D3; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; vertical-align: middle; overflow-x: hidden; }
 #pb_tbl .gt_stub { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; text-transform: inherit; border-right-style: solid; border-right-width: 2px; border-right-color: #D3D3D3; padding-left: 5px; padding-right: 5px; }
 #pb_tbl .gt_stub_row_group { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; text-transform: inherit; border-right-style: solid; border-right-width: 2px; border-right-color: #D3D3D3; padding-left: 5px; padding-right: 5px; vertical-align: top; }
 #pb_tbl .gt_row_group_first td { border-top-width: 2px; }
 #pb_tbl .gt_row_group_first th { border-top-width: 2px; }
 #pb_tbl .gt_striped { color: #333333; background-color: #F4F4F4; }
 #pb_tbl .gt_table_body { border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; }
 #pb_tbl .gt_summary_row { color: #333333; background-color: #FFFFFF; text-transform: inherit; padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; }
 #pb_tbl .gt_first_summary_row { border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; }
 #pb_tbl .gt_last_summary_row_top { border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; }
 #pb_tbl .gt_grand_summary_row { color: #333333; background-color: #FFFFFF; text-transform: inherit; padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; }
 #pb_tbl .gt_first_grand_summary_row_bottom { border-top-style: double; border-top-width: 6px; border-top-color: #D3D3D3; }
 #pb_tbl .gt_last_grand_summary_row_top { border-bottom-style: double; border-bottom-width: 6px; border-bottom-color: #D3D3D3; }
 #pb_tbl .gt_sourcenotes { color: #333333; background-color: #FFFFFF; border-bottom-style: none; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; }
 #pb_tbl .gt_sourcenote { font-size: 90%; padding-top: 4px; padding-bottom: 4px; padding-left: 5px; padding-right: 5px; text-align: left; }
 #pb_tbl .gt_left { text-align: left; }
 #pb_tbl .gt_center { text-align: center; }
 #pb_tbl .gt_right { text-align: right; font-variant-numeric: tabular-nums; }
 #pb_tbl .gt_font_normal { font-weight: normal; }
 #pb_tbl .gt_font_bold { font-weight: bold; }
 #pb_tbl .gt_font_italic { font-style: italic; }
 #pb_tbl .gt_super { font-size: 65%; }
 #pb_tbl .gt_footnotes { color: font-color(#FFFFFF); background-color: #FFFFFF; border-bottom-style: none; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; }
 #pb_tbl .gt_footnote { margin: 0px; font-size: 90%; padding-top: 4px; padding-bottom: 4px; padding-left: 5px; padding-right: 5px; }
 #pb_tbl .gt_sourcenotes { color: #333333; background-color: #FFFFFF; border-bottom-style: none; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; }
 #pb_tbl .gt_sourcenote { font-size: 90%; padding-top: 4px; padding-bottom: 4px; padding-left: 5px; padding-right: 5px; text-align: left; }
 #pb_tbl .gt_footnote_marks { font-size: 75%; vertical-align: 0.4em; position: initial; }
 #pb_tbl .gt_asterisk { font-size: 100%; vertical-align: 0; }
 
</style>
<table style="table-layout: fixed;; width: 0px" class="gt_table" data-quarto-disable-processing="true" data-quarto-bootstrap="false">
<colgroup>
  <col style="width:4px;">
  <col style="width:35px;">
  <col style="width:190px;">
  <col style="width:120px;">
  <col style="width:120px;">
  <col style="width:50px;">
  <col style="width:50px;">
  <col style="width:60px;">
  <col style="width:60px;">
  <col style="width:60px;">
  <col style="width:30px;">
  <col style="width:30px;">
  <col style="width:30px;">
  <col style="width:65px;">
</colgroup>

<thead>

  <tr class="gt_heading">
    <td colspan="14" class="gt_heading gt_title gt_font_normal" style="color: #444444;font-size: 28px;text-align: left;font-weight: bold; text-align: left;">Pointblank Validation</td>
  </tr>
  <tr class="gt_heading">
    <td colspan="14" class="gt_heading gt_subtitle gt_font_normal gt_bottom_border" style="text-align: left;"><div><span style="text-decoration-style: solid; text-decoration-color: #ADD8E6; text-decoration-line: underline; text-underline-position: under; color: #333333; font-variant-numeric: tabular-nums; padding-left: 4px; margin-right: 5px; padding-right: 2px;">2026-07-22|23:16:17</span><div style="padding-top: 10px; padding-bottom: 5px;"><span style="background-color: #0075FF; color: #FFFFFF; padding: 0.5em 0.5em; position: inherit; text-transform: uppercase; margin: 5px 0px 5px 0px; border: solid 1px #0075FF; font-weight: bold; padding: 2px 15px 2px 15px; font-size: 10px;">Polars</span><span style="background-color: none; color: #222222; padding: 0.5em 0.5em; position: inherit; margin: 5px 10px 5px -4px; border: solid 1px #0075FF; font-weight: bold; padding: 2px 15px 2px 15px; font-size: 10px;">game_revenue</span><span><span style="background-color: #AAAAAA; color: white; padding: 0.5em 0.5em; position: inherit; text-transform: uppercase; margin: 5px 0px 5px 5px; border: solid 1px #AAAAAA; font-weight: bold; padding: 2px 15px 2px 15px; font-size: smaller;">WARNING</span><span style="background-color: none; color: #333333; padding: 0.5em 0.5em; position: inherit; margin: 5px 0px 5px -4px; font-weight: bold; border: solid 1px #AAAAAA; padding: 2px 15px 2px 15px; font-size: smaller; margin-right: 5px;">0.05</span><span style="background-color: #EBBC14; color: white; padding: 0.5em 0.5em; position: inherit; text-transform: uppercase; margin: 5px 0px 5px 1px; border: solid 1px #EBBC14; font-weight: bold; padding: 2px 15px 2px 15px; font-size: smaller;">ERROR</span><span style="background-color: none; color: #333333; padding: 0.5em 0.5em; position: inherit; margin: 5px 0px 5px -4px; font-weight: bold; border: solid 1px #EBBC14; padding: 2px 15px 2px 15px; font-size: smaller; margin-right: 5px;">0.1</span><span style="background-color: #FF3300; color: white; padding: 0.5em 0.5em; position: inherit; text-transform: uppercase; margin: 5px 0px 5px 1px; border: solid 1px #FF3300; font-weight: bold; padding: 2px 15px 2px 15px; font-size: smaller;">CRITICAL</span><span style="background-color: none; color: #333333; padding: 0.5em 0.5em; position: inherit; margin: 5px 0px 5px -4px; font-weight: bold; border: solid 1px #FF3300; padding: 2px 15px 2px 15px; font-size: smaller;">0.15</span></span></div></div></td>
  </tr>
<tr class="gt_col_headings">
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-status_color"></th>
  <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-i"></th>
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-type_upd">STEP</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-columns_upd">COLUMNS</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-values_upd">VALUES</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-tbl">TBL</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-eval">EVAL</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-test_units">UNITS</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-pass">PASS</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-fail">FAIL</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-w_upd">W</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-e_upd">E</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-c_upd">C</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-extract_upd">EXT</th>
</tr>
</thead>
<tbody class="gt_table_body">
  <tr>
    <td style="height: 40px; background-color: #4CA64C; color: transparent;font-size: 0px;" class="gt_row gt_left">#4CA64C</td>
    <td style="height: 40px; color: #666666;font-size: 13px;font-weight: bold;" class="gt_row gt_right">1</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_left">
        <div style="margin: 0; padding: 0; display: inline-block; height: 30px; vertical-align: middle; width: 16%;">
            <!--?xml version="1.0" encoding="UTF-8"?--><!--?xml version="1.0" encoding="UTF-8"?-->
<svg width="30px" height="30px" viewbox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink">
    <title>col_vals_regex</title>
    <g id="Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="col_vals_regex" transform="translate(0.000000, 0.034483)">
            <path d="M56.712234,1 C59.1975153,1 61.4475153,2.00735931 63.076195,3.63603897 C64.7048747,5.26471863 65.712234,7.51471863 65.712234,10 L65.712234,10 L65.712234,65 L10.712234,65 C8.22695259,65 5.97695259,63.9926407 4.34827294,62.363961 C2.71959328,60.7352814 1.71223397,58.4852814 1.71223397,56 L1.71223397,56 L1.71223397,10 C1.71223397,7.51471863 2.71959328,5.26471863 4.34827294,3.63603897 C5.97695259,2.00735931 8.22695259,1 10.712234,1 L10.712234,1 Z" id="rectangle" stroke="#000000" stroke-width="2" fill="#FFFFFF"></path>
            <g id="regex_symbols" transform="translate(18.000000, 12.000000)" fill="#000000" fill-rule="nonzero">
                <path d="M4.17434508,33.013582 C1.94895328,33.013582 0.138006923,34.8245284 0.138006923,37.0499202 C0.138006923,39.275312 1.94895328,41.0862583 4.17434508,41.0862583 C6.39973688,41.0862583 8.21068324,39.275312 8.21068324,37.0499202 C8.21068324,34.8245284 6.39973688,33.013582 4.17434508,33.013582 Z" id="full_stop"></path>
                <path d="M23.9479718,23.3175402 L21.5628264,23.3175402 C21.2344032,23.3175402 20.9665401,23.0520067 20.9665401,22.7212538 L20.9665401,15.1022979 L14.3445004,18.8873192 C14.0626621,19.050366 13.7016292,18.952538 13.5362533,18.6706991 L12.3436806,16.6442575 C12.262157,16.506832 12.2388642,16.3437852 12.2807909,16.1900549 C12.3203879,16.0363251 12.4205455,15.9058874 12.557971,15.8266929 L19.1800101,11.9880994 L12.557971,8.15183511 C12.4205455,8.07264112 12.3203879,7.93987439 12.2807909,7.78614401 C12.2388642,7.63241423 12.262157,7.46936689 12.3413509,7.33194137 L13.5339237,5.30549975 C13.6993001,5.02366143 14.0626621,4.92816199 14.3445004,5.09120934 L20.9665401,8.87390091 L20.9665401,1.25494501 C20.9665401,0.926521818 21.2344032,0.658658658 21.5628264,0.658658658 L23.9479718,0.658658658 C24.2787247,0.658658658 24.5442582,0.926521818 24.5442582,1.25494501 L24.5442582,8.87390091 L31.1662979,5.09120934 C31.4481362,4.92816199 31.8091691,5.02366143 31.9745455,5.30549975 L33.1671182,7.33194137 C33.2486413,7.46936689 33.2719341,7.63241423 33.2300074,7.78614401 C33.1904104,7.93987439 33.0902528,8.07264112 32.9528278,8.15183511 L26.3307882,11.9880994 L32.9528278,15.8243638 C33.0879237,15.9058874 33.1880813,16.0363251 33.2300074,16.1900549 C33.269605,16.3437852 33.2486413,16.506832 33.1671182,16.6442575 L31.9745455,18.6706991 C31.8091691,18.952538 31.4481362,19.050366 31.1662979,18.8849895 L24.5442582,15.1022979 L24.5442582,22.7212538 C24.5442582,23.0520067 24.2787247,23.3175402 23.9479718,23.3175402 Z" id="asterisk"></path>
            </g>
        </g>
    </g>
</svg>
        </div>
        <div style="font-family: 'IBM Plex Mono', monospace, courier; color: black; font-size: 11px; display: inline-block; vertical-align: middle;">
            <div>col_vals_regex()</div>
        </div>
        <div style="font-size: 9px; font-family: 'IBM Plex Sans'; text-wrap: balance; margin-top: 3px;"><p style="font-size: inherit; margin: 0;">Player IDs must follow standard format</p>
</div>
        </td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">player_id</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">[A-Z]{12}\d{3}</td>
    <td style="height: 40px; background-color: #FCFCFC; border-left: 1px solid #D3D3D3;" class="gt_row gt_center"><svg width="25px" height="25px" viewbox="0 0 25 25" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" style="vertical-align: middle;">
    <g id="unchanged" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="unchanged" transform="translate(0.500000, 0.570147)">
            <rect id="Rectangle" x="0.125132506" y="0" width="23.749735" height="23.7894737"></rect>
            <path d="M5.80375046,8.18194736 C3.77191832,8.18194736 2.11875046,9.83495328 2.11875046,11.8669474 C2.11875046,13.8989414 3.77191832,15.5519474 5.80375046,15.5519474 C7.8355826,15.5519474 9.48875046,13.8989414 9.48875046,11.8669474 C9.48875046,9.83495328 7.83552863,8.18194736 5.80375046,8.18194736 Z M5.80375046,14.814915 C4.17821997,14.814915 2.85578285,13.4924778 2.85578285,11.8669474 C2.85578285,10.2414169 4.17821997,8.91897975 5.80375046,8.91897975 C7.42928095,8.91897975 8.75171807,10.2414169 8.75171807,11.8669474 C8.75171807,13.4924778 7.42928095,14.814915 5.80375046,14.814915 Z" id="Shape" fill="#000000" fill-rule="nonzero"></path>
            <path d="M13.9638189,8.699335 C13.9364621,8.70430925 13.9091059,8.71176968 13.8842359,8.71923074 C13.7822704,8.73663967 13.6877654,8.77643115 13.6056956,8.83860518 L10.2433156,11.3852598 C10.0766886,11.5046343 9.97720993,11.6986181 9.97720993,11.9025491 C9.97720993,12.1064807 10.0766886,12.3004639 10.2433156,12.4198383 L13.6056956,14.966493 C13.891697,15.1803725 14.2970729,15.1231721 14.5109517,14.8371707 C14.7248313,14.5511692 14.6676309,14.145794 14.3816294,13.9319145 L12.5313257,12.5392127 L21.8812495,12.5392127 L21.8812495,11.2658854 L12.5313257,11.2658854 L14.3816294,9.87318364 C14.6377872,9.71650453 14.7497006,9.40066014 14.6477351,9.11714553 C14.5482564,8.83363156 14.262255,8.65954352 13.9638189,8.699335 Z" id="arrow" fill="#000000" transform="translate(15.929230, 11.894737) rotate(-180.000000) translate(-15.929230, -11.894737) "></path>
        </g>
    </g>
</svg></td>
    <td style="height: 40px; background-color: #FCFCFC; border-right: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color:#4CA64C;">✓</span></td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_right">2000</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5;" class="gt_row gt_right">2000<br>1.00</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5;" class="gt_row gt_right">0<br>0.00</td>
    <td style="height: 40px; background-color: #FCFCFC; border-left: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color: #AAAAAA;">○</span></td>
    <td style="height: 40px; background-color: #FCFCFC;" class="gt_row gt_center"><span style="color: #EBBC14;">○</span></td>
    <td style="height: 40px; background-color: #FCFCFC; border-right: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color: #FF3300;">○</span></td>
    <td style="height: 40px;" class="gt_row gt_center">—</td>
  </tr>
  <tr>
    <td style="height: 40px; background-color: #FF3300; color: transparent;font-size: 0px;" class="gt_row gt_left">#FF3300</td>
    <td style="height: 40px; color: #666666;font-size: 13px;font-weight: bold;" class="gt_row gt_right">2</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_left">
        <div style="margin: 0; padding: 0; display: inline-block; height: 30px; vertical-align: middle; width: 16%;">
            <!--?xml version="1.0" encoding="UTF-8"?--><!--?xml version="1.0" encoding="UTF-8"?-->
<svg width="30px" height="30px" viewbox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" style="background: #FFFFFF;">
    <title>col_vals_gt</title>
    <g id="Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="col_vals_gt" transform="translate(1.500000, 1.500000)" fill-rule="nonzero">
            <path d="M55,0 C57.4852813,0 59.7352813,1.00735931 61.363961,2.63603897 C62.9926407,4.26471863 64,6.51471863 64,9 L64,9 L64,64 L9,64 C6.51471862,64 4.26471862,62.9926407 2.63603897,61.363961 C1.00735931,59.7352814 0,57.4852814 0,55 L0,55 L0,9 C0,6.51471863 1.00735931,4.26471863 2.63603897,2.63603897 C4.26471862,1.00735931 6.51471862,0 9,0 L9,0 L55,0 Z" id="rectangle" stroke="#000000" stroke-width="2" fill="#FFFFFF"></path>
            <path d="M48.7619048,10 L15.2380953,10 C12.3466667,10 10,12.3466667 10,15.2380952 L10,48.7619048 C10,51.6533333 12.3466667,54 15.2380953,54 L48.7619048,54 C51.6533333,54 54,51.6533333 54,48.7619048 L54,15.2380952 C54,12.3466667 51.6533333,10 48.7619048,10 Z M25.2638095,44.3828571 L24.0695238,42.6647619 L39.5847619,32 L24.0695238,21.3352381 L25.2638095,19.6171429 L43.2828572,32 L25.2638095,44.3828571 Z" id="greater_than" fill="#000000"></path>
        </g>
    </g>
</svg>
        </div>
        <div style="font-family: 'IBM Plex Mono', monospace, courier; color: black; font-size: 11px; display: inline-block; vertical-align: middle;">
            <div>col_vals_gt()</div>
        </div>
        <div style="font-size: 9px; font-family: 'IBM Plex Sans'; text-wrap: balance; margin-top: 3px;"><p style="font-size: inherit; margin: 0;">Expect that values in <code>item_revenue</code> should be &gt; <code>0.1</code>.</p>
</div>
        </td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">item_revenue</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">0.1</td>
    <td style="height: 40px; background-color: #FCFCFC; border-left: 1px solid #D3D3D3;" class="gt_row gt_center"><svg width="25px" height="25px" viewbox="0 0 25 25" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" style="vertical-align: middle;">
    <g id="unchanged" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="unchanged" transform="translate(0.500000, 0.570147)">
            <rect id="Rectangle" x="0.125132506" y="0" width="23.749735" height="23.7894737"></rect>
            <path d="M5.80375046,8.18194736 C3.77191832,8.18194736 2.11875046,9.83495328 2.11875046,11.8669474 C2.11875046,13.8989414 3.77191832,15.5519474 5.80375046,15.5519474 C7.8355826,15.5519474 9.48875046,13.8989414 9.48875046,11.8669474 C9.48875046,9.83495328 7.83552863,8.18194736 5.80375046,8.18194736 Z M5.80375046,14.814915 C4.17821997,14.814915 2.85578285,13.4924778 2.85578285,11.8669474 C2.85578285,10.2414169 4.17821997,8.91897975 5.80375046,8.91897975 C7.42928095,8.91897975 8.75171807,10.2414169 8.75171807,11.8669474 C8.75171807,13.4924778 7.42928095,14.814915 5.80375046,14.814915 Z" id="Shape" fill="#000000" fill-rule="nonzero"></path>
            <path d="M13.9638189,8.699335 C13.9364621,8.70430925 13.9091059,8.71176968 13.8842359,8.71923074 C13.7822704,8.73663967 13.6877654,8.77643115 13.6056956,8.83860518 L10.2433156,11.3852598 C10.0766886,11.5046343 9.97720993,11.6986181 9.97720993,11.9025491 C9.97720993,12.1064807 10.0766886,12.3004639 10.2433156,12.4198383 L13.6056956,14.966493 C13.891697,15.1803725 14.2970729,15.1231721 14.5109517,14.8371707 C14.7248313,14.5511692 14.6676309,14.145794 14.3816294,13.9319145 L12.5313257,12.5392127 L21.8812495,12.5392127 L21.8812495,11.2658854 L12.5313257,11.2658854 L14.3816294,9.87318364 C14.6377872,9.71650453 14.7497006,9.40066014 14.6477351,9.11714553 C14.5482564,8.83363156 14.262255,8.65954352 13.9638189,8.699335 Z" id="arrow" fill="#000000" transform="translate(15.929230, 11.894737) rotate(-180.000000) translate(-15.929230, -11.894737) "></path>
        </g>
    </g>
</svg></td>
    <td style="height: 40px; background-color: #FCFCFC; border-right: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color:#4CA64C;">✓</span></td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_right">2000</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5;" class="gt_row gt_right">1440<br>0.72</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5;" class="gt_row gt_right">560<br>0.28</td>
    <td style="height: 40px; background-color: #FCFCFC; border-left: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color: #AAAAAA;">●</span></td>
    <td style="height: 40px; background-color: #FCFCFC;" class="gt_row gt_center"><span style="color: #EBBC14;">●</span></td>
    <td style="height: 40px; background-color: #FCFCFC; border-right: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color: #FF3300;">●</span></td>
    <td style="height: 40px;" class="gt_row gt_center"><a href="data:text/csv;base64,X3Jvd19udW1fLHBsYXllcl9pZCxzZXNzaW9uX2lkLHNlc3Npb25fc3RhcnQsdGltZSxpdGVtX3R5cGUsaXRlbV9uYW1lLGl0ZW1fcmV2ZW51ZSxzZXNzaW9uX2R1cmF0aW9uLHN0YXJ0X2RheSxhY3F1aXNpdGlvbixjb3VudHJ5CjUsRUNQQU5PSVhMWkhGODk2LEVDUEFOT0lYTFpIRjg5Ni1oZHU5amtscywyMDE1LTAxLTAxVDExOjUwOjAyLjAwMDAwMCswMDAwLDIwMTUtMDEtMDFUMTE6NTU6MjAuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAzLDM1LjIsMjAxNS0wMS0wMSxnb29nbGUsR2VybWFueQo2LEVDUEFOT0lYTFpIRjg5NixFQ1BBTk9JWExaSEY4OTYtaGR1OWprbHMsMjAxNS0wMS0wMVQxMTo1MDowMi4wMDAwMDArMDAwMCwyMDE1LTAxLTAxVDEyOjA4OjU2LjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMDcsMzUuMiwyMDE1LTAxLTAxLGdvb2dsZSxHZXJtYW55CjcsRUNQQU5PSVhMWkhGODk2LEVDUEFOT0lYTFpIRjg5Ni1oZHU5amtscywyMDE1LTAxLTAxVDExOjUwOjAyLjAwMDAwMCswMDAwLDIwMTUtMDEtMDFUMTI6MTQ6MDguMDAwMDAwKzAwMDAsYWQsYWRfMTBzZWMsMC4wOCwzNS4yLDIwMTUtMDEtMDEsZ29vZ2xlLEdlcm1hbnkKMTAsRlhXVU9SR1lOSkFFMjcxLEZYV1VPUkdZTkpBRTI3MS1ldDdiczYzOSwyMDE1LTAxLTAxVDE1OjE3OjE4LjAwMDAwMCswMDAwLDIwMTUtMDEtMDFUMTU6MTk6MzYuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA4LDMwLjcsMjAxNS0wMS0wMSxvcmdhbmljLENhbmFkYQoxMyxGWFdVT1JHWU5KQUUyNzEsRlhXVU9SR1lOSkFFMjcxLWV0N2JzNjM5LDIwMTUtMDEtMDFUMTU6MTc6MTguMDAwMDAwKzAwMDAsMjAxNS0wMS0wMVQxNTo0Mzo0Mi4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDQsMzAuNywyMDE1LTAxLTAxLG9yZ2FuaWMsQ2FuYWRhCjE2LENQWlZNR1dRU0lPSDEzMixDUFpWTUdXUVNJT0gxMzItZnlzOXg2MnYsMjAxNS0wMS0wMVQxNTo1MjoyNC4wMDAwMDArMDAwMCwyMDE1LTAxLTAxVDE2OjA2OjEyLjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMDc3LDEzLjgsMjAxNS0wMS0wMSxjcm9zc3Byb21vLFNvdXRoIEtvcmVhCjE4LEZYV1VPUkdZTkpBRTI3MSxGWFdVT1JHWU5KQUUyNzEtN3djZGVhaXAsMjAxNS0wMS0wMVQyMjoxNzoyNy4wMDAwMDArMDAwMCwyMDE1LTAxLTAxVDIyOjIyOjU3LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wOCwxMy4xLDIwMTUtMDEtMDEsb3JnYW5pYyxDYW5hZGEKMjEsQ1BaVk1HV1FTSU9IMTMyLENQWlZNR1dRU0lPSDEzMi05M2pxbm01ZCwyMDE1LTAxLTAxVDIyOjQyOjMzLjAwMDAwMCswMDAwLDIwMTUtMDEtMDFUMjI6NDQ6MTUuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAyOCwyMC43LDIwMTUtMDEtMDEsY3Jvc3Nwcm9tbyxTb3V0aCBLb3JlYQoyNyxRSkdWT0JMQVRJSFc0NTcsUUpHVk9CTEFUSUhXNDU3LThheGg1MWJ2LDIwMTUtMDEtMDJUMDE6MDI6MDYuMDAwMDAwKzAwMDAsMjAxNS0wMS0wMlQwMToyNjowNi4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDg4LDMwLjUsMjAxNS0wMS0wMixvdGhlcl9jYW1wYWlnbixTd2VkZW4KMjksRUNQQU5PSVhMWkhGODk2LEVDUEFOT0lYTFpIRjg5Ni14ZWIxbWk0ciwyMDE1LTAxLTAyVDAyOjQxOjU3LjAwMDAwMCswMDAwLDIwMTUtMDEtMDJUMDI6NTA6MjcuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAyLDI4LjMsMjAxNS0wMS0wMSxnb29nbGUsR2VybWFueQozMyxFQ1BBTk9JWExaSEY4OTYsRUNQQU5PSVhMWkhGODk2LXhlYjFtaTRyLDIwMTUtMDEtMDJUMDI6NDE6NTcuMDAwMDAwKzAwMDAsMjAxNS0wMS0wMlQwMzowNDoxNS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDMsMjguMywyMDE1LTAxLTAxLGdvb2dsZSxHZXJtYW55CjM5LEZYV1VPUkdZTkpBRTI3MSxGWFdVT1JHWU5KQUUyNzEtOGszamJzeG8sMjAxNS0wMS0wMlQwMzo1MDoyNy4wMDAwMDArMDAwMCwyMDE1LTAxLTAyVDA0OjA0OjIxLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNSwxNS41LDIwMTUtMDEtMDEsb3JnYW5pYyxDYW5hZGEKNDAsRlhXVU9SR1lOSkFFMjcxLEZYV1VPUkdZTkpBRTI3MS16ODM0a3RmcCwyMDE1LTAxLTAyVDA4OjQyOjQwLjAwMDAwMCswMDAwLDIwMTUtMDEtMDJUMDg6NDU6NTIuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAzLDM3LjAsMjAxNS0wMS0wMSxvcmdhbmljLENhbmFkYQo0MSxGWFdVT1JHWU5KQUUyNzEsRlhXVU9SR1lOSkFFMjcxLXo4MzRrdGZwLDIwMTUtMDEtMDJUMDg6NDI6NDAuMDAwMDAwKzAwMDAsMjAxNS0wMS0wMlQwOTowMDoxNi4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDcsMzcuMCwyMDE1LTAxLTAxLG9yZ2FuaWMsQ2FuYWRhCjQzLEZYV1VPUkdZTkpBRTI3MSxGWFdVT1JHWU5KQUUyNzEtejgzNGt0ZnAsMjAxNS0wMS0wMlQwODo0Mjo0MC4wMDAwMDArMDAwMCwyMDE1LTAxLTAyVDA5OjA5OjI4LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wOCwzNy4wLDIwMTUtMDEtMDEsb3JnYW5pYyxDYW5hZGEKNDUsRlhXVU9SR1lOSkFFMjcxLEZYV1VPUkdZTkpBRTI3MS16ODM0a3RmcCwyMDE1LTAxLTAyVDA4OjQyOjQwLjAwMDAwMCswMDAwLDIwMTUtMDEtMDJUMDk6MTU6NDAuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjEsMzcuMCwyMDE1LTAxLTAxLG9yZ2FuaWMsQ2FuYWRhCjQ5LEZYV1VPUkdZTkpBRTI3MSxGWFdVT1JHWU5KQUUyNzEtM2w5Y3Y4YnMsMjAxNS0wMS0wMlQxMjoyOTo0MC4wMDAwMDArMDAwMCwyMDE1LTAxLTAyVDEyOjM1OjA0LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMywzMy4yLDIwMTUtMDEtMDEsb3JnYW5pYyxDYW5hZGEKNTAsRlhXVU9SR1lOSkFFMjcxLEZYV1VPUkdZTkpBRTI3MS0zbDljdjhicywyMDE1LTAxLTAyVDEyOjI5OjQwLjAwMDAwMCswMDAwLDIwMTUtMDEtMDJUMTI6Mzk6MzQuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAyLDMzLjIsMjAxNS0wMS0wMSxvcmdhbmljLENhbmFkYQo1MixGWFdVT1JHWU5KQUUyNzEsRlhXVU9SR1lOSkFFMjcxLTNsOWN2OGJzLDIwMTUtMDEtMDJUMTI6Mjk6NDAuMDAwMDAwKzAwMDAsMjAxNS0wMS0wMlQxMjo1OTowNC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDgsMzMuMiwyMDE1LTAxLTAxLG9yZ2FuaWMsQ2FuYWRhCjU0LENQWlZNR1dRU0lPSDEzMixDUFpWTUdXUVNJT0gxMzItNTlmNmtvaXEsMjAxNS0wMS0wMlQxNTozNzowOC4wMDAwMDArMDAwMCwyMDE1LTAxLTAyVDE1OjUwOjA4LjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMDk4LDE1LjUsMjAxNS0wMS0wMSxjcm9zc3Byb21vLFNvdXRoIEtvcmVhCjY3LEZYV1VPUkdZTkpBRTI3MSxGWFdVT1JHWU5KQUUyNzEtNXNtMTJyNHYsMjAxNS0wMS0wM1QwNTo1ODoyOS4wMDAwMDArMDAwMCwyMDE1LTAxLTAzVDA2OjE5OjQ3LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNCwzMC42LDIwMTUtMDEtMDEsb3JnYW5pYyxDYW5hZGEKNjksRlhXVU9SR1lOSkFFMjcxLEZYV1VPUkdZTkpBRTI3MS01c20xMnI0diwyMDE1LTAxLTAzVDA1OjU4OjI5LjAwMDAwMCswMDAwLDIwMTUtMDEtMDNUMDY6MjU6NTkuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA5LDMwLjYsMjAxNS0wMS0wMSxvcmdhbmljLENhbmFkYQo3MCxFQ1BBTk9JWExaSEY4OTYsRUNQQU5PSVhMWkhGODk2LWVvYndnbDRuLDIwMTUtMDEtMDNUMDY6MTE6MTAuMDAwMDAwKzAwMDAsMjAxNS0wMS0wM1QwNjoxNjoyOC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDcsMTAuNiwyMDE1LTAxLTAxLGdvb2dsZSxHZXJtYW55CjczLFFKR1ZPQkxBVElIVzQ1NyxRSkdWT0JMQVRJSFc0NTcteXp2NHBkYXcsMjAxNS0wMS0wM1QxNDozMDoxNy4wMDAwMDArMDAwMCwyMDE1LTAxLTAzVDE0OjM1OjU5LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMzMsMTIuMCwyMDE1LTAxLTAyLG90aGVyX2NhbXBhaWduLFN3ZWRlbgo3NixGS1JDSEVMWVRQQlE2MzEsRktSQ0hFTFlUUEJRNjMxLWc1amt3YXVyLDIwMTUtMDEtMDNUMjE6MzQ6NTEuMDAwMDAwKzAwMDAsMjAxNS0wMS0wM1QyMTozODozOS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDMsMTMuOSwyMDE1LTAxLTAzLG9yZ2FuaWMsTWV4aWNvCjg1LEVRVUROR1pJQ01BSzQ4MixFUVVETkdaSUNNQUs0ODItOHVheTl3NzUsMjAxNS0wMS0wNFQwMToyMTowMy4wMDAwMDArMDAwMCwyMDE1LTAxLTA0VDAxOjQwOjM5LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wOCwyNi44LDIwMTUtMDEtMDQsZ29vZ2xlLEdlcm1hbnkKOTEsRUNQQU5PSVhMWkhGODk2LEVDUEFOT0lYTFpIRjg5Ni03ejloc2FncSwyMDE1LTAxLTA0VDAzOjE1OjM0LjAwMDAwMCswMDAwLDIwMTUtMDEtMDRUMDM6MzI6NTguMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAzLDM1LjEsMjAxNS0wMS0wMSxnb29nbGUsR2VybWFueQo5MyxFQ1BBTk9JWExaSEY4OTYsRUNQQU5PSVhMWkhGODk2LTd6OWhzYWdxLDIwMTUtMDEtMDRUMDM6MTU6MzQuMDAwMDAwKzAwMDAsMjAxNS0wMS0wNFQwMzo0MzoyOC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDIsMzUuMSwyMDE1LTAxLTAxLGdvb2dsZSxHZXJtYW55Cjk4LFBNRkhWTkNVRVlMVDkxMyxQTUZIVk5DVUVZTFQ5MTMtbzhnd3hjMWQsMjAxNS0wMS0wNFQwNToxNDozOC4wMDAwMDArMDAwMCwyMDE1LTAxLTA0VDA1OjIwOjU2LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNywxNS4zLDIwMTUtMDEtMDQsb3JnYW5pYyxBdXN0cmlhCjk5LFBNRkhWTkNVRVlMVDkxMyxQTUZIVk5DVUVZTFQ5MTMtbzhnd3hjMWQsMjAxNS0wMS0wNFQwNToxNDozOC4wMDAwMDArMDAwMCwyMDE1LTAxLTA0VDA1OjIyOjM4LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNCwxNS4zLDIwMTUtMDEtMDQsb3JnYW5pYyxBdXN0cmlhCjEwMCxQTUZIVk5DVUVZTFQ5MTMsUE1GSFZOQ1VFWUxUOTEzLW84Z3d4YzFkLDIwMTUtMDEtMDRUMDU6MTQ6MzguMDAwMDAwKzAwMDAsMjAxNS0wMS0wNFQwNToyNToyNi4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDMsMTUuMywyMDE1LTAxLTA0LG9yZ2FuaWMsQXVzdHJpYQoxMDIsSllFQkNMTlVaVFhRNDU3LEpZRUJDTE5VWlRYUTQ1Ny01cnZubzFoNywyMDE1LTAxLTA0VDA5OjE1OjAwLjAwMDAwMCswMDAwLDIwMTUtMDEtMDRUMDk6MzA6MzYuMDAwMDAwKzAwMDAsYWQsYWRfMTBzZWMsMC4wNDUsMzAuMiwyMDE1LTAxLTA0LG90aGVyX2NhbXBhaWduLEVneXB0CjEwMyxKWUVCQ0xOVVpUWFE0NTcsSllFQkNMTlVaVFhRNDU3LTVydm5vMWg3LDIwMTUtMDEtMDRUMDk6MTU6MDAuMDAwMDAwKzAwMDAsMjAxNS0wMS0wNFQwOTo0NDoxOC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDUsMzAuMiwyMDE1LTAxLTA0LG90aGVyX2NhbXBhaWduLEVneXB0CjEwOCxRSkdWT0JMQVRJSFc0NTcsUUpHVk9CTEFUSUhXNDU3LW45dzFrNDI3LDIwMTUtMDEtMDRUMTY6NDE6MjMuMDAwMDAwKzAwMDAsMjAxNS0wMS0wNFQxNjo0Njo1OS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDc3LDM3LjEsMjAxNS0wMS0wMixvdGhlcl9jYW1wYWlnbixTd2VkZW4KMTIwLFpQVElITlNWRllBUTE0NixaUFRJSE5TVkZZQVExNDYtemZramhxM2ksMjAxNS0wMS0wNVQwMTo1Mzo0MC4wMDAwMDArMDAwMCwyMDE1LTAxLTA1VDAyOjAxOjUyLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNDIsMjAuMCwyMDE1LTAxLTA0LGZhY2Vib29rLE1leGljbwoxMjEsWlBUSUhOU1ZGWUFRMTQ2LFpQVElITlNWRllBUTE0Ni16ZmtqaHEzaSwyMDE1LTAxLTA1VDAxOjUzOjQwLjAwMDAwMCswMDAwLDIwMTUtMDEtMDVUMDI6MDU6MDQuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA0MiwyMC4wLDIwMTUtMDEtMDQsZmFjZWJvb2ssTWV4aWNvCjEyMixFUVVETkdaSUNNQUs0ODIsRVFVRE5HWklDTUFLNDgyLTRrdjU4OWVtLDIwMTUtMDEtMDVUMDI6MjA6MTYuMDAwMDAwKzAwMDAsMjAxNS0wMS0wNVQwMjoyMzozNC4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjA3LDI5LjgsMjAxNS0wMS0wNCxnb29nbGUsR2VybWFueQoxMjUsRVFVRE5HWklDTUFLNDgyLEVRVUROR1pJQ01BSzQ4Mi00a3Y1ODllbSwyMDE1LTAxLTA1VDAyOjIwOjE2LjAwMDAwMCswMDAwLDIwMTUtMDEtMDVUMDI6NDA6MzQuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA1LDI5LjgsMjAxNS0wMS0wNCxnb29nbGUsR2VybWFueQoxMzEsRktSQ0hFTFlUUEJRNjMxLEZLUkNIRUxZVFBCUTYzMS1qN284MWQyeCwyMDE1LTAxLTA1VDA4OjUzOjQ4LjAwMDAwMCswMDAwLDIwMTUtMDEtMDVUMDk6MjE6NDguMDAwMDAwKzAwMDAsYWQsYWRfMTBzZWMsMC4wOTYsMjkuNywyMDE1LTAxLTAzLG9yZ2FuaWMsTWV4aWNvCjEzNixFQ1BBTk9JWExaSEY4OTYsRUNQQU5PSVhMWkhGODk2LXpqN3B4bmN0LDIwMTUtMDEtMDVUMDk6MTM6MDMuMDAwMDAwKzAwMDAsMjAxNS0wMS0wNVQwOTozMjo0NS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMSwyOC4xLDIwMTUtMDEtMDEsZ29vZ2xlLEdlcm1hbnkKMTM4LFpMUVhPQkFUVlBVTjM0NixaTFFYT0JBVFZQVU4zNDYtcDM5bmVzNXEsMjAxNS0wMS0wNVQxMDo1OToxMi4wMDAwMDArMDAwMCwyMDE1LTAxLTA1VDExOjExOjAwLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMzYsMTguOCwyMDE1LTAxLTA1LG9yZ2FuaWMsTm9yd2F5CjE0MCxaTFFYT0JBVFZQVU4zNDYsWkxRWE9CQVRWUFVOMzQ2LWE4eDRqNXFsLDIwMTUtMDEtMDVUMTI6MDg6MTkuMDAwMDAwKzAwMDAsMjAxNS0wMS0wNVQxMjoxMDo0OS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDI3LDE3LjcsMjAxNS0wMS0wNSxvcmdhbmljLE5vcndheQoxNDgsWlBUSUhOU1ZGWUFRMTQ2LFpQVElITlNWRllBUTE0Ni1wNTh5ZW51MywyMDE1LTAxLTA1VDIyOjQyOjQ3LjAwMDAwMCswMDAwLDIwMTUtMDEtMDVUMjM6MDg6MTcuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAyNCwzMy4yLDIwMTUtMDEtMDQsZmFjZWJvb2ssTWV4aWNvCjE1MSxHQVlJQkxVQ09FREo3MzIsR0FZSUJMVUNPRURKNzMyLWlrenF5YnUyLDIwMTUtMDEtMDZUMDE6MTE6MDkuMDAwMDAwKzAwMDAsMjAxNS0wMS0wNlQwMTozODo1MS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDUsMzIuNSwyMDE1LTAxLTAzLG9yZ2FuaWMsVW5pdGVkIFN0YXRlcwoxNTMsVlBESktTWlJZUVhFMTIzLFZQREpLU1pSWVFYRTEyMy1wZWt4OGZ6MSwyMDE1LTAxLTA2VDAzOjUwOjMwLjAwMDAwMCswMDAwLDIwMTUtMDEtMDZUMDQ6MDA6MDYuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAzLDM0LjUsMjAxNS0wMS0wNixnb29nbGUsQXVzdHJhbGlhCjE1NixJQ0JBVVpLR1NRUEYxNDUsSUNCQVVaS0dTUVBGMTQ1LXh1ejduNXlwLDIwMTUtMDEtMDZUMDY6MTg6NDguMDAwMDAwKzAwMDAsMjAxNS0wMS0wNlQwNjoyNToyNC4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjA4LDIzLjMsMjAxNS0wMS0wNixnb29nbGUsU291dGggQWZyaWNhCjE2MSxES09BWEVMU0ZQV0M3MjMsREtPQVhFTFNGUFdDNzIzLTI0OW1yemV2LDIwMTUtMDEtMDZUMDk6MjQ6MzUuMDAwMDAwKzAwMDAsMjAxNS0wMS0wNlQwOTozMjoyMy4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDY2LDM0LjYsMjAxNS0wMS0wNSxmYWNlYm9vayxKYXBhbgoxNjUsSllFQkNMTlVaVFhRNDU3LEpZRUJDTE5VWlRYUTQ1Ny0yNzRjejh3cSwyMDE1LTAxLTA2VDA5OjM2OjIzLjAwMDAwMCswMDAwLDIwMTUtMDEtMDZUMTA6MDM6NDcuMDAwMDAwKzAwMDAsYWQsYWRfMTBzZWMsMC4wOTUsMzMuNCwyMDE1LTAxLTA0LG90aGVyX2NhbXBhaWduLEVneXB0CjE3MCxJQ0JBVVpLR1NRUEYxNDUsSUNCQVVaS0dTUVBGMTQ1LWtiaHl2NHByLDIwMTUtMDEtMDZUMTU6MDI6MzkuMDAwMDAwKzAwMDAsMjAxNS0wMS0wNlQxNToxNDowMy4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjA4NCwyMy4zLDIwMTUtMDEtMDYsZ29vZ2xlLFNvdXRoIEFmcmljYQoxODksUE1GSFZOQ1VFWUxUOTEzLFBNRkhWTkNVRVlMVDkxMy1ycHduYXV2MSwyMDE1LTAxLTA2VDIzOjAxOjU4LjAwMDAwMCswMDAwLDIwMTUtMDEtMDZUMjM6MDI6MDQuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA4LDE3LjYsMjAxNS0wMS0wNCxvcmdhbmljLEF1c3RyaWEKMTk3LEVRVUROR1pJQ01BSzQ4MixFUVVETkdaSUNNQUs0ODIta3h2Y21xZnIsMjAxNS0wMS0wNlQyMzozMDozMC4wMDAwMDArMDAwMCwyMDE1LTAxLTA2VDIzOjQ1OjU0LjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMSwxNy40LDIwMTUtMDEtMDQsZ29vZ2xlLEdlcm1hbnkKMjAwLFpQVElITlNWRllBUTE0NixaUFRJSE5TVkZZQVExNDYtc2MzbWJ1MmUsMjAxNS0wMS0wNlQyMzo0NDo1MS4wMDAwMDArMDAwMCwyMDE1LTAxLTA2VDIzOjQ4OjMzLjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMDcyLDI3LjMsMjAxNS0wMS0wNCxmYWNlYm9vayxNZXhpY28KMjAzLFpQVElITlNWRllBUTE0NixaUFRJSE5TVkZZQVExNDYtc2MzbWJ1MmUsMjAxNS0wMS0wNlQyMzo0NDo1MS4wMDAwMDArMDAwMCwyMDE1LTAxLTA3VDAwOjA5OjI3LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNiwyNy4zLDIwMTUtMDEtMDQsZmFjZWJvb2ssTWV4aWNvCjIxMixWUERKS1NaUllRWEUxMjMsVlBESktTWlJZUVhFMTIzLWQ0eWdjenI5LDIwMTUtMDEtMDdUMDE6MTc6MjkuMDAwMDAwKzAwMDAsMjAxNS0wMS0wN1QwMToyMzoyOS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDIsMzUuMiwyMDE1LTAxLTA2LGdvb2dsZSxBdXN0cmFsaWEKMjE1LEhLSlBPTVFXTFZESTY3NCxIS0pQT01RV0xWREk2NzQta2hiaWYzeGUsMjAxNS0wMS0wN1QwMzo0ODozOC4wMDAwMDArMDAwMCwyMDE1LTAxLTA3VDAzOjUwOjAyLjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMDksMzUuMiwyMDE1LTAxLTA2LG90aGVyX2NhbXBhaWduLFNwYWluCjIxNyxIS0pQT01RV0xWREk2NzQsSEtKUE9NUVdMVkRJNjc0LWtoYmlmM3hlLDIwMTUtMDEtMDdUMDM6NDg6MzguMDAwMDAwKzAwMDAsMjAxNS0wMS0wN1QwMzo1Mzo1Ni4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjA5LDM1LjIsMjAxNS0wMS0wNixvdGhlcl9jYW1wYWlnbixTcGFpbgoyMTksR1NRSlhJT0tZTUVBNzEyLEdTUUpYSU9LWU1FQTcxMi00NXpldWxwZCwyMDE1LTAxLTA3VDA0OjQ2OjEyLjAwMDAwMCswMDAwLDIwMTUtMDEtMDdUMDQ6NTA6MzYuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAzLDM1LjIsMjAxNS0wMS0wNyxnb29nbGUsR2VybWFueQoyMjUsUUpHVk9CTEFUSUhXNDU3LFFKR1ZPQkxBVElIVzQ1Ny1jMzE3YWx3aiwyMDE1LTAxLTA3VDA1OjUzOjM2LjAwMDAwMCswMDAwLDIwMTUtMDEtMDdUMDU6NTg6NDIuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA3NywxNC4yLDIwMTUtMDEtMDIsb3RoZXJfY2FtcGFpZ24sU3dlZGVuCjIzMCxKWUVCQ0xOVVpUWFE0NTcsSllFQkNMTlVaVFhRNDU3LTl0cWlsc3c4LDIwMTUtMDEtMDdUMDc6MTU6NTMuMDAwMDAwKzAwMDAsMjAxNS0wMS0wN1QwNzozMTo0MS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDMsMzcuMywyMDE1LTAxLTA0LG90aGVyX2NhbXBhaWduLEVneXB0CjIzMixKWUVCQ0xOVVpUWFE0NTcsSllFQkNMTlVaVFhRNDU3LTl0cWlsc3c4LDIwMTUtMDEtMDdUMDc6MTU6NTMuMDAwMDAwKzAwMDAsMjAxNS0wMS0wN1QwNzo0Njo1OS4wMDAwMDArMDAwMCxhZCxhZF8xNXNlYywwLjA4LDM3LjMsMjAxNS0wMS0wNCxvdGhlcl9jYW1wYWlnbixFZ3lwdAoyMzMsSllFQkNMTlVaVFhRNDU3LEpZRUJDTE5VWlRYUTQ1Ny03b3o2NXdmYiwyMDE1LTAxLTA3VDA4OjI0OjAxLjAwMDAwMCswMDAwLDIwMTUtMDEtMDdUMDg6MzQ6MDEuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAyLDIxLjAsMjAxNS0wMS0wNCxvdGhlcl9jYW1wYWlnbixFZ3lwdAoyMzUsSllFQkNMTlVaVFhRNDU3LEpZRUJDTE5VWlRYUTQ1Ny03b3o2NXdmYiwyMDE1LTAxLTA3VDA4OjI0OjAxLjAwMDAwMCswMDAwLDIwMTUtMDEtMDdUMDg6MzQ6MzEuMDAwMDAwKzAwMDAsYWQsYWRfMTBzZWMsMC4wNSwyMS4wLDIwMTUtMDEtMDQsb3RoZXJfY2FtcGFpZ24sRWd5cHQKMjM2LEpZRUJDTE5VWlRYUTQ1NyxKWUVCQ0xOVVpUWFE0NTctN296NjV3ZmIsMjAxNS0wMS0wN1QwODoyNDowMS4wMDAwMDArMDAwMCwyMDE1LTAxLTA3VDA4OjM0OjQzLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMzUsMjEuMCwyMDE1LTAxLTA0LG90aGVyX2NhbXBhaWduLEVneXB0CjIzOCxRSkdWT0JMQVRJSFc0NTcsUUpHVk9CTEFUSUhXNDU3LW9qd21zcTgzLDIwMTUtMDEtMDdUMDg6Mjk6NDUuMDAwMDAwKzAwMDAsMjAxNS0wMS0wN1QwODozNjoyMS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDk5LDE3LjcsMjAxNS0wMS0wMixvdGhlcl9jYW1wYWlnbixTd2VkZW4KMjM5LFFKR1ZPQkxBVElIVzQ1NyxRSkdWT0JMQVRJSFc0NTctb2p3bXNxODMsMjAxNS0wMS0wN1QwODoyOTo0NS4wMDAwMDArMDAwMCwyMDE1LTAxLTA3VDA4OjQyOjU3LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wOTksMTcuNywyMDE1LTAxLTAyLG90aGVyX2NhbXBhaWduLFN3ZWRlbgoyNDYsTERTVUhDUkFZS01PMTc5LExEU1VIQ1JBWUtNTzE3OS00aWh0b3F5dSwyMDE1LTAxLTA3VDEyOjE4OjMwLjAwMDAwMCswMDAwLDIwMTUtMDEtMDdUMTI6MzQ6MDAuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA1NCwyNi4yLDIwMTUtMDEtMDcsb3RoZXJfY2FtcGFpZ24sUG9ydHVnYWwKMjUwLEtCRVFaR0ZTUlBISjQ3OSxLQkVRWkdGU1JQSEo0NzktNzY1amZ1bWssMjAxNS0wMS0wN1QxMjo0NToxMC4wMDAwMDArMDAwMCwyMDE1LTAxLTA3VDEyOjU0OjEwLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMjEsMjIuMSwyMDE1LTAxLTA3LG9yZ2FuaWMsUnVzc2lhCjI1MixLQkVRWkdGU1JQSEo0NzksS0JFUVpHRlNSUEhKNDc5LTc2NWpmdW1rLDIwMTUtMDEtMDdUMTI6NDU6MTAuMDAwMDAwKzAwMDAsMjAxNS0wMS0wN1QxMjo1NjoyMi4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDMsMjIuMSwyMDE1LTAxLTA3LG9yZ2FuaWMsUnVzc2lhCjI1MyxLSUxXWllIUlNKRUczMTYsS0lMV1pZSFJTSkVHMzE2LW90OWJ2bGFkLDIwMTUtMDEtMDdUMTM6NDg6MzQuMDAwMDAwKzAwMDAsMjAxNS0wMS0wN1QxNDowNTo1Mi4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDg4LDMwLjgsMjAxNS0wMS0wNCxvcmdhbmljLERlbm1hcmsKMjU0LFBaQk5SS1NNVUxIWDIxMyxQWkJOUktTTVVMSFgyMTMta29zdjhobGUsMjAxNS0wMS0wN1QxMzo0OToxOS4wMDAwMDArMDAwMCwyMDE1LTAxLTA3VDE0OjA0OjAxLjAwMDAwMCswMDAwLGFkLGFkXzE1c2VjLDAuMDU2LDIyLjIsMjAxNS0wMS0wNyxvcmdhbmljLEluZGlhCjI1NSxQWkJOUktTTVVMSFgyMTMsUFpCTlJLU01VTEhYMjEzLWtvc3Y4aGxlLDIwMTUtMDEtMDdUMTM6NDk6MTkuMDAwMDAwKzAwMDAsMjAxNS0wMS0wN1QxNDowNTozMS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDA0LDIyLjIsMjAxNS0wMS0wNyxvcmdhbmljLEluZGlhCjI2MixPTUNWVUFJS1NEVFI2NTEsT01DVlVBSUtTRFRSNjUxLWJkbTNvODI2LDIwMTUtMDEtMDdUMTM6NTM6NDYuMDAwMDAwKzAwMDAsMjAxNS0wMS0wN1QxNDoxNTo1Mi4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDMsMzUuNiwyMDE1LTAxLTA3LG90aGVyX2NhbXBhaWduLFVuaXRlZCBTdGF0ZXMKMjgwLFZQREpLU1pSWVFYRTEyMyxWUERKS1NaUllRWEUxMjMtYWwzOG1pcmUsMjAxNS0wMS0wN1QxNzoyMDowNy4wMDAwMDArMDAwMCwyMDE1LTAxLTA3VDE3OjI0OjA3LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNiwzMC4zLDIwMTUtMDEtMDYsZ29vZ2xlLEF1c3RyYWxpYQoyODQsVlBESktTWlJZUVhFMTIzLFZQREpLU1pSWVFYRTEyMy1hbDM4bWlyZSwyMDE1LTAxLTA3VDE3OjIwOjA3LjAwMDAwMCswMDAwLDIwMTUtMDEtMDdUMTc6MzQ6MTkuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA1LDMwLjMsMjAxNS0wMS0wNixnb29nbGUsQXVzdHJhbGlhCjI4NSxWUERKS1NaUllRWEUxMjMsVlBESktTWlJZUVhFMTIzLWFsMzhtaXJlLDIwMTUtMDEtMDdUMTc6MjA6MDcuMDAwMDAwKzAwMDAsMjAxNS0wMS0wN1QxNzo0ODowNy4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDgsMzAuMywyMDE1LTAxLTA2LGdvb2dsZSxBdXN0cmFsaWEKMjg3LFBaQk5SS1NNVUxIWDIxMyxQWkJOUktTTVVMSFgyMTMtanhud2FoNHYsMjAxNS0wMS0wN1QxNzo1NToyMi4wMDAwMDArMDAwMCwyMDE1LTAxLTA3VDE3OjU4OjQ2LjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMDMsMzAuOSwyMDE1LTAxLTA3LG9yZ2FuaWMsSW5kaWEKMjg4LFBaQk5SS1NNVUxIWDIxMyxQWkJOUktTTVVMSFgyMTMtanhud2FoNHYsMjAxNS0wMS0wN1QxNzo1NToyMi4wMDAwMDArMDAwMCwyMDE1LTAxLTA3VDE4OjEyOjA0LjAwMDAwMCswMDAwLGFkLGFkXzE1c2VjLDAuMDQsMzAuOSwyMDE1LTAxLTA3LG9yZ2FuaWMsSW5kaWEKMjg5LFBaQk5SS1NNVUxIWDIxMyxQWkJOUktTTVVMSFgyMTMtanhud2FoNHYsMjAxNS0wMS0wN1QxNzo1NToyMi4wMDAwMDArMDAwMCwyMDE1LTAxLTA3VDE4OjIyOjI4LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMiwzMC45LDIwMTUtMDEtMDcsb3JnYW5pYyxJbmRpYQoyOTEsUFpCTlJLU01VTEhYMjEzLFBaQk5SS1NNVUxIWDIxMy1qeG53YWg0diwyMDE1LTAxLTA3VDE3OjU1OjIyLjAwMDAwMCswMDAwLDIwMTUtMDEtMDdUMTg6MjQ6MjguMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAxNCwzMC45LDIwMTUtMDEtMDcsb3JnYW5pYyxJbmRpYQoyOTQsU0ZKQ1pPVEtHQUlENjQ1LFNGSkNaT1RLR0FJRDY0NS1pYmRtd3Y5NywyMDE1LTAxLTA3VDE4OjI3OjQ2LjAwMDAwMCswMDAwLDIwMTUtMDEtMDdUMTg6Mzc6NTguMDAwMDAwKzAwMDAsYWQsYWRfMTBzZWMsMC4wNywzMC4wLDIwMTUtMDEtMDYsZ29vZ2xlLEZyYW5jZQozMDAsSUNCQVVaS0dTUVBGMTQ1LElDQkFVWktHU1FQRjE0NS1wYTRkbXFpMywyMDE1LTAxLTA3VDIwOjI2OjQxLjAwMDAwMCswMDAwLDIwMTUtMDEtMDdUMjA6MzI6MDUuMDAwMDAwKzAwMDAsYWQsYWRfMTBzZWMsMC4wNTYsMTkuOSwyMDE1LTAxLTA2LGdvb2dsZSxTb3V0aCBBZnJpY2EKMzAxLElDQkFVWktHU1FQRjE0NSxJQ0JBVVpLR1NRUEYxNDUtcGE0ZG1xaTMsMjAxNS0wMS0wN1QyMDoyNjo0MS4wMDAwMDArMDAwMCwyMDE1LTAxLTA3VDIwOjQxOjM1LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMjIsMTkuOSwyMDE1LTAxLTA2LGdvb2dsZSxTb3V0aCBBZnJpY2EKMzAyLFpQVElITlNWRllBUTE0NixaUFRJSE5TVkZZQVExNDYteHQzNzZlZmQsMjAxNS0wMS0wN1QyMDo1Mzo0Mi4wMDAwMDArMDAwMCwyMDE1LTAxLTA3VDIxOjAwOjM2LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNTQsMzEuMywyMDE1LTAxLTA0LGZhY2Vib29rLE1leGljbwozMDYsS0JFUVpHRlNSUEhKNDc5LEtCRVFaR0ZTUlBISjQ3OS02eHp5bmp2ZCwyMDE1LTAxLTA3VDIyOjM3OjM3LjAwMDAwMCswMDAwLDIwMTUtMDEtMDdUMjI6NDM6NTUuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAyNywyNy40LDIwMTUtMDEtMDcsb3JnYW5pYyxSdXNzaWEKMzA4LEtCRVFaR0ZTUlBISjQ3OSxLQkVRWkdGU1JQSEo0NzktNnh6eW5qdmQsMjAxNS0wMS0wN1QyMjozNzozNy4wMDAwMDArMDAwMCwyMDE1LTAxLTA3VDIyOjU4OjEzLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMDksMjcuNCwyMDE1LTAxLTA3LG9yZ2FuaWMsUnVzc2lhCjMxMyxHQVlJQkxVQ09FREo3MzIsR0FZSUJMVUNPRURKNzMyLTlpZmd0dmFyLDIwMTUtMDEtMDdUMjI6NTY6MzkuMDAwMDAwKzAwMDAsMjAxNS0wMS0wN1QyMzoyMjo1MS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDQsMzQuNSwyMDE1LTAxLTAzLG9yZ2FuaWMsVW5pdGVkIFN0YXRlcwozMTcsSlZCWkNQS1hIRk1VNDkxLEpWQlpDUEtYSEZNVTQ5MS1ib3dnZjd0biwyMDE1LTAxLTA3VDIzOjIyOjI4LjAwMDAwMCswMDAwLDIwMTUtMDEtMDdUMjM6Mjc6NDAuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA5LDIxLjEsMjAxNS0wMS0wNyxvcmdhbmljLFVuaXRlZCBTdGF0ZXMKMzE4LEpWQlpDUEtYSEZNVTQ5MSxKVkJaQ1BLWEhGTVU0OTEtYm93Z2Y3dG4sMjAxNS0wMS0wN1QyMzoyMjoyOC4wMDAwMDArMDAwMCwyMDE1LTAxLTA3VDIzOjI4OjA0LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNywyMS4xLDIwMTUtMDEtMDcsb3JnYW5pYyxVbml0ZWQgU3RhdGVzCjMyMSxKVkJaQ1BLWEhGTVU0OTEsSlZCWkNQS1hIRk1VNDkxLWJvd2dmN3RuLDIwMTUtMDEtMDdUMjM6MjI6MjguMDAwMDAwKzAwMDAsMjAxNS0wMS0wN1QyMzozNzoyMi4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDMsMjEuMSwyMDE1LTAxLTA3LG9yZ2FuaWMsVW5pdGVkIFN0YXRlcwozMjIsUFpCTlJLU01VTEhYMjEzLFBaQk5SS1NNVUxIWDIxMy1zaXh1OG82aiwyMDE1LTAxLTA4VDAwOjM2OjEzLjAwMDAwMCswMDAwLDIwMTUtMDEtMDhUMDA6Mzk6MDcuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAyLDEyLjAsMjAxNS0wMS0wNyxvcmdhbmljLEluZGlhCjMyMyxQWkJOUktTTVVMSFgyMTMsUFpCTlJLU01VTEhYMjEzLXNpeHU4bzZqLDIwMTUtMDEtMDhUMDA6MzY6MTMuMDAwMDAwKzAwMDAsMjAxNS0wMS0wOFQwMDozOToyNS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDIyLDEyLjAsMjAxNS0wMS0wNyxvcmdhbmljLEluZGlhCjMyOSxFUVVETkdaSUNNQUs0ODIsRVFVRE5HWklDTUFLNDgyLXkzZG96d3ZzLDIwMTUtMDEtMDhUMDI6Mjg6MzguMDAwMDAwKzAwMDAsMjAxNS0wMS0wOFQwMjo0NDo1Ni4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjA5LDI5LjMsMjAxNS0wMS0wNCxnb29nbGUsR2VybWFueQozMzEsRVFVRE5HWklDTUFLNDgyLEVRVUROR1pJQ01BSzQ4Mi15M2Rvend2cywyMDE1LTAxLTA4VDAyOjI4OjM4LjAwMDAwMCswMDAwLDIwMTUtMDEtMDhUMDI6NTU6MzguMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA2LDI5LjMsMjAxNS0wMS0wNCxnb29nbGUsR2VybWFueQozMzgsUE1GSFZOQ1VFWUxUOTEzLFBNRkhWTkNVRVlMVDkxMy16eGV5cGFzbSwyMDE1LTAxLTA4VDA1OjA5OjA0LjAwMDAwMCswMDAwLDIwMTUtMDEtMDhUMDU6MTY6NDAuMDAwMDAwKzAwMDAsYWQsYWRfMTBzZWMsMC4wNyw5LjgsMjAxNS0wMS0wNCxvcmdhbmljLEF1c3RyaWEKMzM5LFZQREpLU1pSWVFYRTEyMyxWUERKS1NaUllRWEUxMjMtNTMyeGJ1dnksMjAxNS0wMS0wOFQwNTowOTo0MS4wMDAwMDArMDAwMCwyMDE1LTAxLTA4VDA1OjEzOjU5LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNiwxNy44LDIwMTUtMDEtMDYsZ29vZ2xlLEF1c3RyYWxpYQozNDgsSUNCQVVaS0dTUVBGMTQ1LElDQkFVWktHU1FQRjE0NS1mbGFveWRqNSwyMDE1LTAxLTA4VDEyOjQ4OjEzLjAwMDAwMCswMDAwLDIwMTUtMDEtMDhUMTM6MDg6MjUuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAxNDk5LDI3LjksMjAxNS0wMS0wNixnb29nbGUsU291dGggQWZyaWNhCjM1MCxQWkJOUktTTVVMSFgyMTMsUFpCTlJLU01VTEhYMjEzLW0ybjZ0azFpLDIwMTUtMDEtMDhUMTQ6MTA6MTguMDAwMDAwKzAwMDAsMjAxNS0wMS0wOFQxNDoxNjozMC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDEsMzQuMiwyMDE1LTAxLTA3LG9yZ2FuaWMsSW5kaWEKMzUzLFBaQk5SS1NNVUxIWDIxMyxQWkJOUktTTVVMSFgyMTMtbTJuNnRrMWksMjAxNS0wMS0wOFQxNDoxMDoxOC4wMDAwMDArMDAwMCwyMDE1LTAxLTA4VDE0OjM4OjA2LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMDYsMzQuMiwyMDE1LTAxLTA3LG9yZ2FuaWMsSW5kaWEKMzU0LFBaQk5SS1NNVUxIWDIxMyxQWkJOUktTTVVMSFgyMTMtbTJuNnRrMWksMjAxNS0wMS0wOFQxNDoxMDoxOC4wMDAwMDArMDAwMCwyMDE1LTAxLTA4VDE0OjM4OjA2LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMjQsMzQuMiwyMDE1LTAxLTA3LG9yZ2FuaWMsSW5kaWEKMzYxLEtCRVFaR0ZTUlBISjQ3OSxLQkVRWkdGU1JQSEo0NzktbTVpcHF3MmIsMjAxNS0wMS0wOFQxNTowNzo0NS4wMDAwMDArMDAwMCwyMDE1LTAxLTA4VDE1OjE1OjQ1LjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMDMsOS4yLDIwMTUtMDEtMDcsb3JnYW5pYyxSdXNzaWEKMzYyLEtCRVFaR0ZTUlBISjQ3OSxLQkVRWkdGU1JQSEo0NzktZjJlNXJkYWIsMjAxNS0wMS0wOFQxNjoxMTowOC4wMDAwMDArMDAwMCwyMDE1LTAxLTA4VDE2OjE1OjIwLjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMDU0LDMzLjEsMjAxNS0wMS0wNyxvcmdhbmljLFJ1c3NpYQozNjUsS0JFUVpHRlNSUEhKNDc5LEtCRVFaR0ZTUlBISjQ3OS1mMmU1cmRhYiwyMDE1LTAxLTA4VDE2OjExOjA4LjAwMDAwMCswMDAwLDIwMTUtMDEtMDhUMTY6MzU6MDIuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAxOCwzMy4xLDIwMTUtMDEtMDcsb3JnYW5pYyxSdXNzaWEKMzY5LFZQREpLU1pSWVFYRTEyMyxWUERKS1NaUllRWEUxMjMtOW5hZzRocGksMjAxNS0wMS0wOFQxODowNDo1Ni4wMDAwMDArMDAwMCwyMDE1LTAxLTA4VDE4OjE0OjQ0LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNCwzNy45LDIwMTUtMDEtMDYsZ29vZ2xlLEF1c3RyYWxpYQozNzEsVlBESktTWlJZUVhFMTIzLFZQREpLU1pSWVFYRTEyMy05bmFnNGhwaSwyMDE1LTAxLTA4VDE4OjA0OjU2LjAwMDAwMCswMDAwLDIwMTUtMDEtMDhUMTg6MjM6NTAuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA1LDM3LjksMjAxNS0wMS0wNixnb29nbGUsQXVzdHJhbGlhCjM3NyxHU1FKWElPS1lNRUE3MTIsR1NRSlhJT0tZTUVBNzEyLTVtNHZzOWtjLDIwMTUtMDEtMDhUMjA6MDg6NTIuMDAwMDAwKzAwMDAsMjAxNS0wMS0wOFQyMDoxMToyOC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDIsMzEuNiwyMDE1LTAxLTA3LGdvb2dsZSxHZXJtYW55CjM5NCxPTUNWVUFJS1NEVFI2NTEsT01DVlVBSUtTRFRSNjUxLTE0YWV1aWRrLDIwMTUtMDEtMDlUMDE6MTg6NDMuMDAwMDAwKzAwMDAsMjAxNS0wMS0wOVQwMTo0MDowMS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDQsMjQuNiwyMDE1LTAxLTA3LG90aGVyX2NhbXBhaWduLFVuaXRlZCBTdGF0ZXMKMzk1LEdTUUpYSU9LWU1FQTcxMixHU1FKWElPS1lNRUE3MTIteXVnZjZhZGgsMjAxNS0wMS0wOVQwMTo1ODo1Mi4wMDAwMDArMDAwMCwyMDE1LTAxLTA5VDAyOjExOjUyLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNywyNy43LDIwMTUtMDEtMDcsZ29vZ2xlLEdlcm1hbnkKNDAxLFFEVVpKSUVUQ0FHVzY1NCxRRFVaSklFVENBR1c2NTQtZ21pNmJvZjEsMjAxNS0wMS0wOVQwMzowNDowNS4wMDAwMDArMDAwMCwyMDE1LTAxLTA5VDAzOjEwOjA1LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNiwxMS4zLDIwMTUtMDEtMDcsZmFjZWJvb2ssU3dpdHplcmxhbmQKNDAzLEtCRVFaR0ZTUlBISjQ3OSxLQkVRWkdGU1JQSEo0NzktN3BhZWtvYzIsMjAxNS0wMS0wOVQwMzowNDo0MS4wMDAwMDArMDAwMCwyMDE1LTAxLTA5VDAzOjE3OjU5LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMywxOC41LDIwMTUtMDEtMDcsb3JnYW5pYyxSdXNzaWEKNDA2LFpQVElITlNWRllBUTE0NixaUFRJSE5TVkZZQVExNDYtNW80N2QyaWwsMjAxNS0wMS0wOVQwNToxMDozMS4wMDAwMDArMDAwMCwyMDE1LTAxLTA5VDA1OjI0OjQ5LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMjQsMzguNywyMDE1LTAxLTA0LGZhY2Vib29rLE1leGljbwo0MTEsUU5MVlJERU9YRllKODkyLFFOTFZSREVPWEZZSjg5Mi1zZjd3ZWh6OSwyMDE1LTAxLTA5VDA3OjI3OjE0LjAwMDAwMCswMDAwLDIwMTUtMDEtMDlUMDc6Mjk6MzIuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAzLDguMSwyMDE1LTAxLTA5LGNyb3NzcHJvbW8sQXVzdHJhbGlhCjQxMixTRkpDWk9US0dBSUQ2NDUsU0ZKQ1pPVEtHQUlENjQ1LWtsNnMyOXV3LDIwMTUtMDEtMDlUMDg6MTg6MTQuMDAwMDAwKzAwMDAsMjAxNS0wMS0wOVQwODoyNzo0NC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDQsMjkuOCwyMDE1LTAxLTA2LGdvb2dsZSxGcmFuY2UKNDE3LEVRVUROR1pJQ01BSzQ4MixFUVVETkdaSUNNQUs0ODItdXB2M2Q4NWgsMjAxNS0wMS0wOVQwODoyMjowMC4wMDAwMDArMDAwMCwyMDE1LTAxLTA5VDA4OjI2OjU0LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMiwzOC45LDIwMTUtMDEtMDQsZ29vZ2xlLEdlcm1hbnkKNDI2LFFOTFZSREVPWEZZSjg5MixRTkxWUkRFT1hGWUo4OTItY3Z3dGpmbzIsMjAxNS0wMS0wOVQxMzo1NDoyOS4wMDAwMDArMDAwMCwyMDE1LTAxLTA5VDEzOjU2OjU5LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMywyOC41LDIwMTUtMDEtMDksY3Jvc3Nwcm9tbyxBdXN0cmFsaWEKNDI4LFFOTFZSREVPWEZZSjg5MixRTkxWUkRFT1hGWUo4OTItY3Z3dGpmbzIsMjAxNS0wMS0wOVQxMzo1NDoyOS4wMDAwMDArMDAwMCwyMDE1LTAxLTA5VDE0OjIxOjI5LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNiwyOC41LDIwMTUtMDEtMDksY3Jvc3Nwcm9tbyxBdXN0cmFsaWEKNDM0LEdGTFlKSEFQTVpXRDYzMSxHRkxZSkhBUE1aV0Q2MzEtd2R6Mzd2Y3QsMjAxNS0wMS0wOVQxNTo1MDoxOC4wMDAwMDArMDAwMCwyMDE1LTAxLTA5VDE1OjUwOjQyLjAwMDAwMCswMDAwLGFkLGFkXzE1c2VjLDAuMDYyLDMwLjksMjAxNS0wMS0wOSxvcmdhbmljLEluZGlhCjQzNSxHRkxZSkhBUE1aV0Q2MzEsR0ZMWUpIQVBNWldENjMxLXdkejM3dmN0LDIwMTUtMDEtMDlUMTU6NTA6MTguMDAwMDAwKzAwMDAsMjAxNS0wMS0wOVQxNTo1MzowNi4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjAyNCwzMC45LDIwMTUtMDEtMDksb3JnYW5pYyxJbmRpYQo0MzYsR0ZMWUpIQVBNWldENjMxLEdGTFlKSEFQTVpXRDYzMS13ZHozN3ZjdCwyMDE1LTAxLTA5VDE1OjUwOjE4LjAwMDAwMCswMDAwLDIwMTUtMDEtMDlUMTU6NTg6MTIuMDAwMDAwKzAwMDAsYWQsYWRfMTVzZWMsMC4wNTQsMzAuOSwyMDE1LTAxLTA5LG9yZ2FuaWMsSW5kaWEKNDM3LEdGTFlKSEFQTVpXRDYzMSxHRkxZSkhBUE1aV0Q2MzEtd2R6Mzd2Y3QsMjAxNS0wMS0wOVQxNTo1MDoxOC4wMDAwMDArMDAwMCwyMDE1LTAxLTA5VDE2OjEyOjA2LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMTQsMzAuOSwyMDE1LTAxLTA5LG9yZ2FuaWMsSW5kaWEKNDM4LEdGTFlKSEFQTVpXRDYzMSxHRkxZSkhBUE1aV0Q2MzEtd2R6Mzd2Y3QsMjAxNS0wMS0wOVQxNTo1MDoxOC4wMDAwMDArMDAwMCwyMDE1LTAxLTA5VDE2OjE3OjM2LjAwMDAwMCswMDAwLGFkLGFkXzE1c2VjLDAuMDUsMzAuOSwyMDE1LTAxLTA5LG9yZ2FuaWMsSW5kaWEKNDQxLE5NUlVXSEFZSlBCUTgyNCxOTVJVV0hBWUpQQlE4MjQtdm9mM2c5eXQsMjAxNS0wMS0wOVQxODoyNzowMS4wMDAwMDArMDAwMCwyMDE1LTAxLTA5VDE4OjQwOjQ5LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNDksMzguMSwyMDE1LTAxLTA4LG9yZ2FuaWMsSG9uZyBLb25nCjQ0NCxaUFRJSE5TVkZZQVExNDYsWlBUSUhOU1ZGWUFRMTQ2LTcydWNzdmtvLDIwMTUtMDEtMDlUMTg6NTI6MTEuMDAwMDAwKzAwMDAsMjAxNS0wMS0wOVQxODo1MjoyOS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDM2LDM2LjgsMjAxNS0wMS0wNCxmYWNlYm9vayxNZXhpY28KNDQ3LFpQVElITlNWRllBUTE0NixaUFRJSE5TVkZZQVExNDYtNzJ1Y3N2a28sMjAxNS0wMS0wOVQxODo1MjoxMS4wMDAwMDArMDAwMCwyMDE1LTAxLTA5VDE5OjIxOjM1LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMzYsMzYuOCwyMDE1LTAxLTA0LGZhY2Vib29rLE1leGljbwo0NDksTERTVUhDUkFZS01PMTc5LExEU1VIQ1JBWUtNTzE3OS1uNWJmZ2p1OCwyMDE1LTAxLTA5VDIwOjIxOjM0LjAwMDAwMCswMDAwLDIwMTUtMDEtMDlUMjA6MjM6MTYuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA1NCwzNS4zLDIwMTUtMDEtMDcsb3RoZXJfY2FtcGFpZ24sUG9ydHVnYWwKNDUwLExEU1VIQ1JBWUtNTzE3OSxMRFNVSENSQVlLTU8xNzktbjViZmdqdTgsMjAxNS0wMS0wOVQyMDoyMTozNC4wMDAwMDArMDAwMCwyMDE1LTAxLTA5VDIwOjM1OjQwLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNzIsMzUuMywyMDE1LTAxLTA3LG90aGVyX2NhbXBhaWduLFBvcnR1Z2FsCjQ2MixMRFNVSENSQVlLTU8xNzksTERTVUhDUkFZS01PMTc5LTR4a282OWVpLDIwMTUtMDEtMDlUMjM6NTQ6MTcuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMFQwMDowMjoyMy4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDE4LDIwLjMsMjAxNS0wMS0wNyxvdGhlcl9jYW1wYWlnbixQb3J0dWdhbAo0NjUsTERTVUhDUkFZS01PMTc5LExEU1VIQ1JBWUtNTzE3OS00eGtvNjllaSwyMDE1LTAxLTA5VDIzOjU0OjE3LjAwMDAwMCswMDAwLDIwMTUtMDEtMTBUMDA6MTE6NDEuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA3MiwyMC4zLDIwMTUtMDEtMDcsb3RoZXJfY2FtcGFpZ24sUG9ydHVnYWwKNDY2LFFKR1ZPQkxBVElIVzQ1NyxRSkdWT0JMQVRJSFc0NTctN29obGcyNmksMjAxNS0wMS0xMFQwMDo0OTozMS4wMDAwMDArMDAwMCwyMDE1LTAxLTEwVDAwOjUwOjEzLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wODgsMTkuNSwyMDE1LTAxLTAyLG90aGVyX2NhbXBhaWduLFN3ZWRlbgo0NjgsUUpHVk9CTEFUSUhXNDU3LFFKR1ZPQkxBVElIVzQ1Ny03b2hsZzI2aSwyMDE1LTAxLTEwVDAwOjQ5OjMxLjAwMDAwMCswMDAwLDIwMTUtMDEtMTBUMDE6MDg6NTUuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA4OCwxOS41LDIwMTUtMDEtMDIsb3RoZXJfY2FtcGFpZ24sU3dlZGVuCjQ2OSxHU1FKWElPS1lNRUE3MTIsR1NRSlhJT0tZTUVBNzEyLTN4cTd3ZzFsLDIwMTUtMDEtMTBUMDA6NTc6MzEuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMFQwMDo1OTowNy4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjA4LDM5LjgsMjAxNS0wMS0wNyxnb29nbGUsR2VybWFueQo0NzEsR1NRSlhJT0tZTUVBNzEyLEdTUUpYSU9LWU1FQTcxMi0zeHE3d2cxbCwyMDE1LTAxLTEwVDAwOjU3OjMxLjAwMDAwMCswMDAwLDIwMTUtMDEtMTBUMDE6Mjg6MzcuMDAwMDAwKzAwMDAsYWQsYWRfMTBzZWMsMC4wOCwzOS44LDIwMTUtMDEtMDcsZ29vZ2xlLEdlcm1hbnkKNDcyLFJNT1NXSEpHRUxDSTY3NSxSTU9TV0hKR0VMQ0k2NzUtejl5bnVzcHIsMjAxNS0wMS0xMFQwNDowOTo1MC4wMDAwMDArMDAwMCwyMDE1LTAxLTEwVDA0OjE4OjU2LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNSwyNy4yLDIwMTUtMDEtMTAsb3RoZXJfY2FtcGFpZ24sRnJhbmNlCjQ3NCxSTU9TV0hKR0VMQ0k2NzUsUk1PU1dISkdFTENJNjc1LXo5eW51c3ByLDIwMTUtMDEtMTBUMDQ6MDk6NTAuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMFQwNDoyODozOC4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjEsMjcuMiwyMDE1LTAxLTEwLG90aGVyX2NhbXBhaWduLEZyYW5jZQo0NzUsUk1PU1dISkdFTENJNjc1LFJNT1NXSEpHRUxDSTY3NS16OXludXNwciwyMDE1LTAxLTEwVDA0OjA5OjUwLjAwMDAwMCswMDAwLDIwMTUtMDEtMTBUMDQ6Mjk6NTYuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjEsMjcuMiwyMDE1LTAxLTEwLG90aGVyX2NhbXBhaWduLEZyYW5jZQo0ODIsVVpRRkhEQkVNWVBWNTk0LFVaUUZIREJFTVlQVjU5NC1ha2NwenR1bywyMDE1LTAxLTEwVDA1OjQ4OjQ2LjAwMDAwMCswMDAwLDIwMTUtMDEtMTBUMDU6NDg6NTguMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA3Miw4LjEsMjAxNS0wMS0xMCxnb29nbGUsU3dpdHplcmxhbmQKNDgzLEdBWUlCTFVDT0VESjczMixHQVlJQkxVQ09FREo3MzItOHVuYzE3MmwsMjAxNS0wMS0xMFQwNjoyMTozNS4wMDAwMDArMDAwMCwyMDE1LTAxLTEwVDA2OjM3OjU5LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMywzNC44LDIwMTUtMDEtMDMsb3JnYW5pYyxVbml0ZWQgU3RhdGVzCjQ5MyxMRFNVSENSQVlLTU8xNzksTERTVUhDUkFZS01PMTc5LW1hdzdxZXIxLDIwMTUtMDEtMTBUMDc6MzU6NTcuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMFQwNzo1MTozOS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDcyLDI2LjQsMjAxNS0wMS0wNyxvdGhlcl9jYW1wYWlnbixQb3J0dWdhbAo0OTYsTERTVUhDUkFZS01PMTc5LExEU1VIQ1JBWUtNTzE3OS1tYXc3cWVyMSwyMDE1LTAxLTEwVDA3OjM1OjU3LjAwMDAwMCswMDAwLDIwMTUtMDEtMTBUMDc6NTU6MzMuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA1NCwyNi40LDIwMTUtMDEtMDcsb3RoZXJfY2FtcGFpZ24sUG9ydHVnYWwKNTAzLE1YQ09WRVlJQUtGSDU5NCxNWENPVkVZSUFLRkg1OTQtdGRrZXVnMmIsMjAxNS0wMS0xMFQwOToyODoyNi4wMDAwMDArMDAwMCwyMDE1LTAxLTEwVDA5OjU4OjUwLjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMDg0LDMyLjEsMjAxNS0wMS0xMCxvcmdhbmljLENoaW5hCjUwNSxWTFFIWUpDS0JPSU43MjksVkxRSFlKQ0tCT0lONzI5LTkxdDVka2ZtLDIwMTUtMDEtMTBUMDk6NTM6MDIuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMFQwOTo1NjoyNi4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjA4NCwyMy4yLDIwMTUtMDEtMTAsb3JnYW5pYyxKYXBhbgo1MDgsS0JFUVpHRlNSUEhKNDc5LEtCRVFaR0ZTUlBISjQ3OS0xMmdvM3R6NywyMDE1LTAxLTEwVDEwOjMwOjA0LjAwMDAwMCswMDAwLDIwMTUtMDEtMTBUMTA6NDQ6NTIuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAzLDM3LjgsMjAxNS0wMS0wNyxvcmdhbmljLFJ1c3NpYQo1MTYsR0ZMWUpIQVBNWldENjMxLEdGTFlKSEFQTVpXRDYzMS12cHdmajNjYSwyMDE1LTAxLTEwVDEyOjM0OjQ1LjAwMDAwMCswMDAwLDIwMTUtMDEtMTBUMTI6NDg6MzkuMDAwMDAwKzAwMDAsYWQsYWRfMTBzZWMsMC4wMjYsMjEuNCwyMDE1LTAxLTA5LG9yZ2FuaWMsSW5kaWEKNTE3LEdGTFlKSEFQTVpXRDYzMSxHRkxZSkhBUE1aV0Q2MzEtdnB3ZmozY2EsMjAxNS0wMS0xMFQxMjozNDo0NS4wMDAwMDArMDAwMCwyMDE1LTAxLTEwVDEyOjQ5OjUxLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMDQsMjEuNCwyMDE1LTAxLTA5LG9yZ2FuaWMsSW5kaWEKNTE4LEdGTFlKSEFQTVpXRDYzMSxHRkxZSkhBUE1aV0Q2MzEtdnB3ZmozY2EsMjAxNS0wMS0xMFQxMjozNDo0NS4wMDAwMDArMDAwMCwyMDE1LTAxLTEwVDEyOjU1OjUxLjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMDE2LDIxLjQsMjAxNS0wMS0wOSxvcmdhbmljLEluZGlhCjUxOSxQWkJOUktTTVVMSFgyMTMsUFpCTlJLU01VTEhYMjEzLXZ0bHkzNWZjLDIwMTUtMDEtMTBUMTQ6MDY6MzYuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMFQxNDowOToxOC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDA2LDI2LjMsMjAxNS0wMS0wNyxvcmdhbmljLEluZGlhCjUyMCxQWkJOUktTTVVMSFgyMTMsUFpCTlJLU01VTEhYMjEzLXZ0bHkzNWZjLDIwMTUtMDEtMTBUMTQ6MDY6MzYuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMFQxNDoxNDoxOC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDE2LDI2LjMsMjAxNS0wMS0wNyxvcmdhbmljLEluZGlhCjUyMyxQWkJOUktTTVVMSFgyMTMsUFpCTlJLU01VTEhYMjEzLXZ0bHkzNWZjLDIwMTUtMDEtMTBUMTQ6MDY6MzYuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMFQxNDoyNTowMC4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjA0NCwyNi4zLDIwMTUtMDEtMDcsb3JnYW5pYyxJbmRpYQo1MjQsUFpCTlJLU01VTEhYMjEzLFBaQk5SS1NNVUxIWDIxMy12dGx5MzVmYywyMDE1LTAxLTEwVDE0OjA2OjM2LjAwMDAwMCswMDAwLDIwMTUtMDEtMTBUMTQ6MzE6NTQuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAwNiwyNi4zLDIwMTUtMDEtMDcsb3JnYW5pYyxJbmRpYQo1MjYsRVFVRE5HWklDTUFLNDgyLEVRVUROR1pJQ01BSzQ4Mi1pNWtyZzluZiwyMDE1LTAxLTEwVDE0OjEyOjA5LjAwMDAwMCswMDAwLDIwMTUtMDEtMTBUMTQ6MjA6MDkuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAzLDEwLjYsMjAxNS0wMS0wNCxnb29nbGUsR2VybWFueQo1MjcsSllFQkNMTlVaVFhRNDU3LEpZRUJDTE5VWlRYUTQ1Ny1mZ3Btcnd4biwyMDE1LTAxLTEwVDE1OjA1OjIwLjAwMDAwMCswMDAwLDIwMTUtMDEtMTBUMTU6MTI6MzIuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAyLDI1LjMsMjAxNS0wMS0wNCxvdGhlcl9jYW1wYWlnbixFZ3lwdAo1MjgsSllFQkNMTlVaVFhRNDU3LEpZRUJDTE5VWlRYUTQ1Ny1mZ3Btcnd4biwyMDE1LTAxLTEwVDE1OjA1OjIwLjAwMDAwMCswMDAwLDIwMTUtMDEtMTBUMTU6MjE6NDQuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAzNSwyNS4zLDIwMTUtMDEtMDQsb3RoZXJfY2FtcGFpZ24sRWd5cHQKNTI5LEpZRUJDTE5VWlRYUTQ1NyxKWUVCQ0xOVVpUWFE0NTctZmdwbXJ3eG4sMjAxNS0wMS0xMFQxNTowNToyMC4wMDAwMDArMDAwMCwyMDE1LTAxLTEwVDE1OjI0OjIwLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMiwyNS4zLDIwMTUtMDEtMDQsb3RoZXJfY2FtcGFpZ24sRWd5cHQKNTM1LE9NQ1ZVQUlLU0RUUjY1MSxPTUNWVUFJS1NEVFI2NTEtYzlubTJidGwsMjAxNS0wMS0xMFQxNToyOTowMi4wMDAwMDArMDAwMCwyMDE1LTAxLTEwVDE1OjU4OjIwLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4xLDM0LjEsMjAxNS0wMS0wNyxvdGhlcl9jYW1wYWlnbixVbml0ZWQgU3RhdGVzCjUzNixPTUNWVUFJS1NEVFI2NTEsT01DVlVBSUtTRFRSNjUxLWM5bm0yYnRsLDIwMTUtMDEtMTBUMTU6Mjk6MDIuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMFQxNjowMjoyNi4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDQsMzQuMSwyMDE1LTAxLTA3LG90aGVyX2NhbXBhaWduLFVuaXRlZCBTdGF0ZXMKNTQyLFFKR1ZPQkxBVElIVzQ1NyxRSkdWT0JMQVRJSFc0NTctbjN4bGFic3osMjAxNS0wMS0xMFQxNTo0OTo1NC4wMDAwMDArMDAwMCwyMDE1LTAxLTEwVDE1OjU1OjM2LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wOTksMjQuOSwyMDE1LTAxLTAyLG90aGVyX2NhbXBhaWduLFN3ZWRlbgo1NDMsUUpHVk9CTEFUSUhXNDU3LFFKR1ZPQkxBVElIVzQ1Ny1uM3hsYWJzeiwyMDE1LTAxLTEwVDE1OjQ5OjU0LjAwMDAwMCswMDAwLDIwMTUtMDEtMTBUMTY6MDU6MjQuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA0NCwyNC45LDIwMTUtMDEtMDIsb3RoZXJfY2FtcGFpZ24sU3dlZGVuCjU0NCxRSkdWT0JMQVRJSFc0NTcsUUpHVk9CTEFUSUhXNDU3LW4zeGxhYnN6LDIwMTUtMDEtMTBUMTU6NDk6NTQuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMFQxNjowOTo0OC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDMzLDI0LjksMjAxNS0wMS0wMixvdGhlcl9jYW1wYWlnbixTd2VkZW4KNTQ1LFFKR1ZPQkxBVElIVzQ1NyxRSkdWT0JMQVRJSFc0NTctbjN4bGFic3osMjAxNS0wMS0xMFQxNTo0OTo1NC4wMDAwMDArMDAwMCwyMDE1LTAxLTEwVDE2OjEzOjEyLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNDQsMjQuOSwyMDE1LTAxLTAyLG90aGVyX2NhbXBhaWduLFN3ZWRlbgo1NDgsWlBUSUhOU1ZGWUFRMTQ2LFpQVElITlNWRllBUTE0Ni1vNDg1enJlYSwyMDE1LTAxLTEwVDE2OjA4OjM0LjAwMDAwMCswMDAwLDIwMTUtMDEtMTBUMTY6MTk6NDYuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA1NCwxNy41LDIwMTUtMDEtMDQsZmFjZWJvb2ssTWV4aWNvCjU1NCxKVkJaQ1BLWEhGTVU0OTEsSlZCWkNQS1hIRk1VNDkxLW45d3MydGwxLDIwMTUtMDEtMTBUMTg6NDg6MDYuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMFQxOTowNToxOC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDUsMzQuMSwyMDE1LTAxLTA3LG9yZ2FuaWMsVW5pdGVkIFN0YXRlcwo1NTUsSUNCQVVaS0dTUVBGMTQ1LElDQkFVWktHU1FQRjE0NS1lZ3h0aThkcCwyMDE1LTAxLTEwVDE4OjQ5OjM3LjAwMDAwMCswMDAwLDIwMTUtMDEtMTBUMTg6NTM6NTUuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA0OSwzNy4wLDIwMTUtMDEtMDYsZ29vZ2xlLFNvdXRoIEFmcmljYQo1NTYsSUNCQVVaS0dTUVBGMTQ1LElDQkFVWktHU1FQRjE0NS1lZ3h0aThkcCwyMDE1LTAxLTEwVDE4OjQ5OjM3LjAwMDAwMCswMDAwLDIwMTUtMDEtMTBUMTk6MTI6NTUuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA4NDksMzcuMCwyMDE1LTAxLTA2LGdvb2dsZSxTb3V0aCBBZnJpY2EKNTU4LElDQkFVWktHU1FQRjE0NSxJQ0JBVVpLR1NRUEYxNDUtZWd4dGk4ZHAsMjAxNS0wMS0xMFQxODo0OTozNy4wMDAwMDArMDAwMCwyMDE1LTAxLTEwVDE5OjIwOjI1LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNzksMzcuMCwyMDE1LTAxLTA2LGdvb2dsZSxTb3V0aCBBZnJpY2EKNTYwLFFOTFZSREVPWEZZSjg5MixRTkxWUkRFT1hGWUo4OTItNnVjN3RoMjUsMjAxNS0wMS0xMFQxOTo0MjoyOC4wMDAwMDArMDAwMCwyMDE1LTAxLTEwVDE5OjU1OjI4LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMiwyNS4xLDIwMTUtMDEtMDksY3Jvc3Nwcm9tbyxBdXN0cmFsaWEKNTY0LFFOTFZSREVPWEZZSjg5MixRTkxWUkRFT1hGWUo4OTItNnVjN3RoMjUsMjAxNS0wMS0xMFQxOTo0MjoyOC4wMDAwMDArMDAwMCwyMDE1LTAxLTEwVDIwOjA0OjU4LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wOSwyNS4xLDIwMTUtMDEtMDksY3Jvc3Nwcm9tbyxBdXN0cmFsaWEKNTY1LFBaQk5SS1NNVUxIWDIxMyxQWkJOUktTTVVMSFgyMTMteTcyMWZ1dGEsMjAxNS0wMS0xMFQxOTo1NDoxMS4wMDAwMDArMDAwMCwyMDE1LTAxLTEwVDIwOjEyOjI5LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMDQsMzkuOCwyMDE1LTAxLTA3LG9yZ2FuaWMsSW5kaWEKNTY2LFBaQk5SS1NNVUxIWDIxMyxQWkJOUktTTVVMSFgyMTMteTcyMWZ1dGEsMjAxNS0wMS0xMFQxOTo1NDoxMS4wMDAwMDArMDAwMCwyMDE1LTAxLTEwVDIwOjI3OjI5LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMiwzOS44LDIwMTUtMDEtMDcsb3JnYW5pYyxJbmRpYQo1NzEsQkZOTFVSSVNKWFRINjQ3LEJGTkxVUklTSlhUSDY0Ny0zYmNtdGVwZywyMDE1LTAxLTEwVDIxOjAwOjMxLjAwMDAwMCswMDAwLDIwMTUtMDEtMTBUMjE6MTE6MDcuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAyLDM0LjAsMjAxNS0wMS0xMCxvcmdhbmljLEluZGlhCjU3MixCRk5MVVJJU0pYVEg2NDcsQkZOTFVSSVNKWFRINjQ3LTNiY210ZXBnLDIwMTUtMDEtMTBUMjE6MDA6MzEuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMFQyMToxNjo0My4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDA0LDM0LjAsMjAxNS0wMS0xMCxvcmdhbmljLEluZGlhCjU3MyxCRk5MVVJJU0pYVEg2NDcsQkZOTFVSSVNKWFRINjQ3LTNiY210ZXBnLDIwMTUtMDEtMTBUMjE6MDA6MzEuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMFQyMToxODo0My4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDA0LDM0LjAsMjAxNS0wMS0xMCxvcmdhbmljLEluZGlhCjU3NCxCRk5MVVJJU0pYVEg2NDcsQkZOTFVSSVNKWFRINjQ3LTNiY210ZXBnLDIwMTUtMDEtMTBUMjE6MDA6MzEuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMFQyMToyMTo0OS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDE0LDM0LjAsMjAxNS0wMS0xMCxvcmdhbmljLEluZGlhCjU4MCxSTU9TV0hKR0VMQ0k2NzUsUk1PU1dISkdFTENJNjc1LWQ3c2JndTlhLDIwMTUtMDEtMTBUMjM6MjQ6MjAuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMFQyMzozODowMi4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDIsMjQuMCwyMDE1LTAxLTEwLG90aGVyX2NhbXBhaWduLEZyYW5jZQo1ODIsTkFPSlJETUNTRUJJMjgxLE5BT0pSRE1DU0VCSTI4MS1kemU3a3NwdSwyMDE1LTAxLTExVDAwOjI0OjM1LjAwMDAwMCswMDAwLDIwMTUtMDEtMTFUMDA6MzA6MjkuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA4MSwzMC45LDIwMTUtMDEtMTEsb3JnYW5pYyxOb3J3YXkKNTg0LE5BT0pSRE1DU0VCSTI4MSxOQU9KUkRNQ1NFQkkyODEtZHplN2tzcHUsMjAxNS0wMS0xMVQwMDoyNDozNS4wMDAwMDArMDAwMCwyMDE1LTAxLTExVDAwOjQ2OjU5LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNDUsMzAuOSwyMDE1LTAxLTExLG9yZ2FuaWMsTm9yd2F5CjU5NSxHU1FKWElPS1lNRUE3MTIsR1NRSlhJT0tZTUVBNzEyLWk1N3Y0ZmJ4LDIwMTUtMDEtMTFUMDM6MDg6NDYuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMVQwMzoxNzoyMi4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDgsMTAuOCwyMDE1LTAxLTA3LGdvb2dsZSxHZXJtYW55CjYwMSxHU1FKWElPS1lNRUE3MTIsR1NRSlhJT0tZTUVBNzEyLWx5a2FzeG83LDIwMTUtMDEtMTFUMDU6MTY6NDYuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMVQwNToxNzozNC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDUsMjAuMSwyMDE1LTAxLTA3LGdvb2dsZSxHZXJtYW55CjYwNyxDSEtVUkFCVEZaREUzNzIsQ0hLVVJBQlRGWkRFMzcyLXo5eWJoam9xLDIwMTUtMDEtMTFUMDU6NDc6NDMuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMVQwNjowNTo0OS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDg4LDI1LjAsMjAxNS0wMS0xMSxvcmdhbmljLERlbm1hcmsKNjA4LENIS1VSQUJURlpERTM3MixDSEtVUkFCVEZaREUzNzItejl5Ymhqb3EsMjAxNS0wMS0xMVQwNTo0Nzo0My4wMDAwMDArMDAwMCwyMDE1LTAxLTExVDA2OjA4OjMxLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wODgsMjUuMCwyMDE1LTAxLTExLG9yZ2FuaWMsRGVubWFyawo2MTEsUk1PU1dISkdFTENJNjc1LFJNT1NXSEpHRUxDSTY3NS04dWx3ZGt2dCwyMDE1LTAxLTExVDA2OjE1OjM2LjAwMDAwMCswMDAwLDIwMTUtMDEtMTFUMDY6MTU6NTQuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAyLDkuNCwyMDE1LTAxLTEwLG90aGVyX2NhbXBhaWduLEZyYW5jZQo2MTcsSUNCQVVaS0dTUVBGMTQ1LElDQkFVWktHU1FQRjE0NS1iaDFhbmx5NSwyMDE1LTAxLTExVDA2OjQ1OjI0LjAwMDAwMCswMDAwLDIwMTUtMDEtMTFUMDc6MDU6MjQuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA0MSwyOS4zLDIwMTUtMDEtMDYsZ29vZ2xlLFNvdXRoIEFmcmljYQo2MTgsSlZCWkNQS1hIRk1VNDkxLEpWQlpDUEtYSEZNVTQ5MS0xdGFlZzZpeSwyMDE1LTAxLTExVDA3OjA5OjM0LjAwMDAwMCswMDAwLDIwMTUtMDEtMTFUMDc6MTQ6MjIuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAyLDcuOSwyMDE1LTAxLTA3LG9yZ2FuaWMsVW5pdGVkIFN0YXRlcwo2MjMsS0daQ09KSFBGVFFWNzUzLEtHWkNPSkhQRlRRVjc1My1mZTRiZDN4bSwyMDE1LTAxLTExVDA3OjQ0OjI3LjAwMDAwMCswMDAwLDIwMTUtMDEtMTFUMDc6NDU6MjcuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjEsMjIuNiwyMDE1LTAxLTExLG9yZ2FuaWMsVW5pdGVkIFN0YXRlcwo2MjUsT01DVlVBSUtTRFRSNjUxLE9NQ1ZVQUlLU0RUUjY1MS15eDVqbzR2NywyMDE1LTAxLTExVDA5OjA0OjUyLjAwMDAwMCswMDAwLDIwMTUtMDEtMTFUMDk6MDc6NDAuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA2LDM4LjUsMjAxNS0wMS0wNyxvdGhlcl9jYW1wYWlnbixVbml0ZWQgU3RhdGVzCjYyOSxPTUNWVUFJS1NEVFI2NTEsT01DVlVBSUtTRFRSNjUxLXl4NWpvNHY3LDIwMTUtMDEtMTFUMDk6MDQ6NTIuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMVQwOTozMjo0Ni4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDksMzguNSwyMDE1LTAxLTA3LG90aGVyX2NhbXBhaWduLFVuaXRlZCBTdGF0ZXMKNjM0LEFVV0ZEUlpNWFZKSDkyOCxBVVdGRFJaTVhWSkg5MjgtNG42Z3h2ZW8sMjAxNS0wMS0xMVQxMDoxNzoyMi4wMDAwMDArMDAwMCwyMDE1LTAxLTExVDEwOjE4OjU4LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMiwxMy42LDIwMTUtMDEtMTEsZ29vZ2xlLEluZGlhCjYzNixRTkxWUkRFT1hGWUo4OTIsUU5MVlJERU9YRllKODkyLTQ1Y3Z0YXgzLDIwMTUtMDEtMTFUMTA6NTI6MDYuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMVQxMDo1OTo1NC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMSwyMS4yLDIwMTUtMDEtMDksY3Jvc3Nwcm9tbyxBdXN0cmFsaWEKNjM4LFFOTFZSREVPWEZZSjg5MixRTkxWUkRFT1hGWUo4OTItNDVjdnRheDMsMjAxNS0wMS0xMVQxMDo1MjowNi4wMDAwMDArMDAwMCwyMDE1LTAxLTExVDExOjA5OjQyLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNywyMS4yLDIwMTUtMDEtMDksY3Jvc3Nwcm9tbyxBdXN0cmFsaWEKNjM5LEJGTkxVUklTSlhUSDY0NyxCRk5MVVJJU0pYVEg2NDctZnVjcTFlbTgsMjAxNS0wMS0xMVQxMTowMjowOS4wMDAwMDArMDAwMCwyMDE1LTAxLTExVDExOjE0OjM5LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMiw0MC43LDIwMTUtMDEtMTAsb3JnYW5pYyxJbmRpYQo2NDAsQkZOTFVSSVNKWFRINjQ3LEJGTkxVUklTSlhUSDY0Ny1mdWNxMWVtOCwyMDE1LTAxLTExVDExOjAyOjA5LjAwMDAwMCswMDAwLDIwMTUtMDEtMTFUMTE6MTg6MDkuMDAwMDAwKzAwMDAsYWQsYWRfMTBzZWMsMC4wNDYsNDAuNywyMDE1LTAxLTEwLG9yZ2FuaWMsSW5kaWEKNjQyLEJGTkxVUklTSlhUSDY0NyxCRk5MVVJJU0pYVEg2NDctZnVjcTFlbTgsMjAxNS0wMS0xMVQxMTowMjowOS4wMDAwMDArMDAwMCwyMDE1LTAxLTExVDExOjM0OjUxLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMDgsNDAuNywyMDE1LTAxLTEwLG9yZ2FuaWMsSW5kaWEKNjQzLFFOTFZSREVPWEZZSjg5MixRTkxWUkRFT1hGWUo4OTItaTJrZ3hqNW0sMjAxNS0wMS0xMVQxMjoxMzo0My4wMDAwMDArMDAwMCwyMDE1LTAxLTExVDEyOjI3OjEzLjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMDgsMzguOCwyMDE1LTAxLTA5LGNyb3NzcHJvbW8sQXVzdHJhbGlhCjY0NixNWENPVkVZSUFLRkg1OTQsTVhDT1ZFWUlBS0ZINTk0LW16ODV2bmM2LDIwMTUtMDEtMTFUMTQ6MTA6NDMuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMVQxNDoxNTo0My4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDU0LDI2LjgsMjAxNS0wMS0xMCxvcmdhbmljLENoaW5hCjY0OCxNWENPVkVZSUFLRkg1OTQsTVhDT1ZFWUlBS0ZINTk0LW16ODV2bmM2LDIwMTUtMDEtMTFUMTQ6MTA6NDMuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMVQxNDozMjozMS4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjA2LDI2LjgsMjAxNS0wMS0xMCxvcmdhbmljLENoaW5hCjY1NCxRSkdWT0JMQVRJSFc0NTcsUUpHVk9CTEFUSUhXNDU3LTUzbGtmYTZ2LDIwMTUtMDEtMTFUMTQ6MzU6MjIuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMVQxNDozNzoxMC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDMzLDIxLjksMjAxNS0wMS0wMixvdGhlcl9jYW1wYWlnbixTd2VkZW4KNjc1LEdGTFlKSEFQTVpXRDYzMSxHRkxZSkhBUE1aV0Q2MzEta3E3dGptb2UsMjAxNS0wMS0xMVQxODoyMzoyMi4wMDAwMDArMDAwMCwyMDE1LTAxLTExVDE4OjI2OjQ2LjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMDI2LDEyLjIsMjAxNS0wMS0wOSxvcmdhbmljLEluZGlhCjY3NyxJQ0JBVVpLR1NRUEYxNDUsSUNCQVVaS0dTUVBGMTQ1LXp1bzJqOTU0LDIwMTUtMDEtMTFUMTk6MDQ6MzYuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMVQxOToxMjoyNC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDQ5LDguMSwyMDE1LTAxLTA2LGdvb2dsZSxTb3V0aCBBZnJpY2EKNjgwLEZYV0ROS0lVTUpZUjQ3MSxGWFdETktJVU1KWVI0NzEtZXBtY3hoMzUsMjAxNS0wMS0xMVQyMDowMzoyNS4wMDAwMDArMDAwMCwyMDE1LTAxLTExVDIwOjA3OjAxLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wOSwxOS40LDIwMTUtMDEtMTAsb3JnYW5pYyxVbml0ZWQgU3RhdGVzCjY4NixSTU9TV0hKR0VMQ0k2NzUsUk1PU1dISkdFTENJNjc1LXVxZzRvN2V2LDIwMTUtMDEtMTFUMjE6Mzc6MjcuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMVQyMTozOToyMS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDksOC4yLDIwMTUtMDEtMTAsb3RoZXJfY2FtcGFpZ24sRnJhbmNlCjY4OSxQWkJOUktTTVVMSFgyMTMsUFpCTlJLU01VTEhYMjEzLW44ZWw2cHV3LDIwMTUtMDEtMTFUMjI6MDg6MjQuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMVQyMjoyNDozMC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDA0LDI4LjYsMjAxNS0wMS0wNyxvcmdhbmljLEluZGlhCjY5MCxQWkJOUktTTVVMSFgyMTMsUFpCTlJLU01VTEhYMjEzLW44ZWw2cHV3LDIwMTUtMDEtMTFUMjI6MDg6MjQuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMVQyMjoyODowMC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDE2LDI4LjYsMjAxNS0wMS0wNyxvcmdhbmljLEluZGlhCjY5MSxQWkJOUktTTVVMSFgyMTMsUFpCTlJLU01VTEhYMjEzLW44ZWw2cHV3LDIwMTUtMDEtMTFUMjI6MDg6MjQuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMVQyMjozMjo1NC4wMDAwMDArMDAwMCxhZCxhZF8xNXNlYywwLjA0NiwyOC42LDIwMTUtMDEtMDcsb3JnYW5pYyxJbmRpYQo2OTIsUFpCTlJLU01VTEhYMjEzLFBaQk5SS1NNVUxIWDIxMy1uOGVsNnB1dywyMDE1LTAxLTExVDIyOjA4OjI0LjAwMDAwMCswMDAwLDIwMTUtMDEtMTFUMjI6MzU6NTQuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAyNCwyOC42LDIwMTUtMDEtMDcsb3JnYW5pYyxJbmRpYQo2OTQsS0lMV1pZSFJTSkVHMzE2LEtJTFdaWUhSU0pFRzMxNi1oOXQ3ZjV2MiwyMDE1LTAxLTExVDIyOjIwOjQ2LjAwMDAwMCswMDAwLDIwMTUtMDEtMTFUMjI6MzQ6NDAuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA5OSwyOS4yLDIwMTUtMDEtMDQsb3JnYW5pYyxEZW5tYXJrCjY5NyxFUVVETkdaSUNNQUs0ODIsRVFVRE5HWklDTUFLNDgyLWh4ajF3NjRiLDIwMTUtMDEtMTFUMjI6NTg6MTcuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMVQyMzoxMjoyMy4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjA3LDE5LjQsMjAxNS0wMS0wNCxnb29nbGUsR2VybWFueQo2OTgsR0ZMWUpIQVBNWldENjMxLEdGTFlKSEFQTVpXRDYzMS1wZDZqczE1bSwyMDE1LTAxLTExVDIzOjI4OjA5LjAwMDAwMCswMDAwLDIwMTUtMDEtMTFUMjM6MzE6NTEuMDAwMDAwKzAwMDAsYWQsYWRfMTVzZWMsMC4wNDIsOS4wLDIwMTUtMDEtMDksb3JnYW5pYyxJbmRpYQo3MDEsR1NRSlhJT0tZTUVBNzEyLEdTUUpYSU9LWU1FQTcxMi0ycXhudHN3YywyMDE1LTAxLTEyVDAwOjI1OjEzLjAwMDAwMCswMDAwLDIwMTUtMDEtMTJUMDA6NDY6NTUuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA1LDMzLjMsMjAxNS0wMS0wNyxnb29nbGUsR2VybWFueQo3MDksSlZCWkNQS1hIRk1VNDkxLEpWQlpDUEtYSEZNVTQ5MS10ZnI5bTJsdiwyMDE1LTAxLTEyVDAzOjI5OjMxLjAwMDAwMCswMDAwLDIwMTUtMDEtMTJUMDM6Mzk6MDcuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA0LDI0LjQsMjAxNS0wMS0wNyxvcmdhbmljLFVuaXRlZCBTdGF0ZXMKNzEwLEpWQlpDUEtYSEZNVTQ5MSxKVkJaQ1BLWEhGTVU0OTEtdGZyOW0ybHYsMjAxNS0wMS0xMlQwMzoyOTozMS4wMDAwMDArMDAwMCwyMDE1LTAxLTEyVDAzOjQxOjA3LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNSwyNC40LDIwMTUtMDEtMDcsb3JnYW5pYyxVbml0ZWQgU3RhdGVzCjcxMSxBVVdGRFJaTVhWSkg5MjgsQVVXRkRSWk1YVkpIOTI4LW14cmI4bGQzLDIwMTUtMDEtMTJUMDQ6MzA6MTIuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMlQwNDozMTo0OC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDEyLDE5LjQsMjAxNS0wMS0xMSxnb29nbGUsSW5kaWEKNzEzLEFVV0ZEUlpNWFZKSDkyOCxBVVdGRFJaTVhWSkg5MjgtbXhyYjhsZDMsMjAxNS0wMS0xMlQwNDozMDoxMi4wMDAwMDArMDAwMCwyMDE1LTAxLTEyVDA0OjQ0OjAwLjAwMDAwMCswMDAwLGFkLGFkXzE1c2VjLDAuMDY0LDE5LjQsMjAxNS0wMS0xMSxnb29nbGUsSW5kaWEKNzE2LElDQkFVWktHU1FQRjE0NSxJQ0JBVVpLR1NRUEYxNDUtOHlzZ2p2bTYsMjAxNS0wMS0xMlQwNToyMDowMS4wMDAwMDArMDAwMCwyMDE1LTAxLTEyVDA1OjMzOjU1LjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMDgsMTcuNCwyMDE1LTAxLTA2LGdvb2dsZSxTb3V0aCBBZnJpY2EKNzE5LE1YQ09WRVlJQUtGSDU5NCxNWENPVkVZSUFLRkg1OTQtb25jbDN1cDEsMjAxNS0wMS0xMlQwNTo0MjozNy4wMDAwMDArMDAwMCwyMDE1LTAxLTEyVDA1OjQyOjQzLjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMDksMjMuNSwyMDE1LTAxLTEwLG9yZ2FuaWMsQ2hpbmEKNzI1LE9NQ1ZVQUlLU0RUUjY1MSxPTUNWVUFJS1NEVFI2NTEtcnR1MXdwbWUsMjAxNS0wMS0xMlQwNjowMzo0Mi4wMDAwMDArMDAwMCwyMDE1LTAxLTEyVDA2OjMwOjAwLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNywyOS41LDIwMTUtMDEtMDcsb3RoZXJfY2FtcGFpZ24sVW5pdGVkIFN0YXRlcwo3MjcsSUNCQVVaS0dTUVBGMTQ1LElDQkFVWktHU1FQRjE0NS1rdnVoM2N6cywyMDE1LTAxLTEyVDA4OjA0OjM2LjAwMDAwMCswMDAwLDIwMTUtMDEtMTJUMDg6MTI6MTguMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA4NDksMTMuOSwyMDE1LTAxLTA2LGdvb2dsZSxTb3V0aCBBZnJpY2EKNzI5LE1YQ09WRVlJQUtGSDU5NCxNWENPVkVZSUFLRkg1OTQtcHphNmllY24sMjAxNS0wMS0xMlQwODoxNjowMi4wMDAwMDArMDAwMCwyMDE1LTAxLTEyVDA4OjE2OjA4LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMzYsMzYuNiwyMDE1LTAxLTEwLG9yZ2FuaWMsQ2hpbmEKNzMwLE1YQ09WRVlJQUtGSDU5NCxNWENPVkVZSUFLRkg1OTQtcHphNmllY24sMjAxNS0wMS0xMlQwODoxNjowMi4wMDAwMDArMDAwMCwyMDE1LTAxLTEyVDA4OjM2OjMyLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNjYsMzYuNiwyMDE1LTAxLTEwLG9yZ2FuaWMsQ2hpbmEKNzMyLE1YQ09WRVlJQUtGSDU5NCxNWENPVkVZSUFLRkg1OTQtcHphNmllY24sMjAxNS0wMS0xMlQwODoxNjowMi4wMDAwMDArMDAwMCwyMDE1LTAxLTEyVDA4OjQyOjA4LjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMDU0LDM2LjYsMjAxNS0wMS0xMCxvcmdhbmljLENoaW5hCjczMyxKVkJaQ1BLWEhGTVU0OTEsSlZCWkNQS1hIRk1VNDkxLWV3Mml0NnBsLDIwMTUtMDEtMTJUMDg6MTg6NTkuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMlQwODoyMToxMS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDgsMzAuMSwyMDE1LTAxLTA3LG9yZ2FuaWMsVW5pdGVkIFN0YXRlcwo3MzUsSlZCWkNQS1hIRk1VNDkxLEpWQlpDUEtYSEZNVTQ5MS1ldzJpdDZwbCwyMDE1LTAxLTEyVDA4OjE4OjU5LjAwMDAwMCswMDAwLDIwMTUtMDEtMTJUMDg6MzM6MTcuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA2LDMwLjEsMjAxNS0wMS0wNyxvcmdhbmljLFVuaXRlZCBTdGF0ZXMKNzM3LFBMUUVTQk5HVURLSjE1NCxQTFFFU0JOR1VES0oxNTQtcDUzMml2eTEsMjAxNS0wMS0xMlQwODo0ODowNi4wMDAwMDArMDAwMCwyMDE1LTAxLTEyVDA4OjUzOjA2LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMTIsMzYuMCwyMDE1LTAxLTEyLGZhY2Vib29rLEphcGFuCjczOCxQTFFFU0JOR1VES0oxNTQsUExRRVNCTkdVREtKMTU0LXA1MzJpdnkxLDIwMTUtMDEtMTJUMDg6NDg6MDYuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMlQwODo1OTo0OC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDU0LDM2LjAsMjAxNS0wMS0xMixmYWNlYm9vayxKYXBhbgo3MzksUExRRVNCTkdVREtKMTU0LFBMUUVTQk5HVURLSjE1NC1wNTMyaXZ5MSwyMDE1LTAxLTEyVDA4OjQ4OjA2LjAwMDAwMCswMDAwLDIwMTUtMDEtMTJUMDk6MTc6MDAuMDAwMDAwKzAwMDAsYWQsYWRfMTVzZWMsMC4wOTYsMzYuMCwyMDE1LTAxLTEyLGZhY2Vib29rLEphcGFuCjc0MCxQTFFFU0JOR1VES0oxNTQsUExRRVNCTkdVREtKMTU0LXA1MzJpdnkxLDIwMTUtMDEtMTJUMDg6NDg6MDYuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMlQwOToxNzoyNC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDMsMzYuMCwyMDE1LTAxLTEyLGZhY2Vib29rLEphcGFuCjc0MixWTFFIWUpDS0JPSU43MjksVkxRSFlKQ0tCT0lONzI5LTV6cnZveG55LDIwMTUtMDEtMTJUMDg6NDk6NDUuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMlQwODo1NDozOS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDM2LDExLjEsMjAxNS0wMS0xMCxvcmdhbmljLEphcGFuCjc0MyxDSEtVUkFCVEZaREUzNzIsQ0hLVVJBQlRGWkRFMzcyLWV1c25oY3Z3LDIwMTUtMDEtMTJUMTA6MDU6MDUuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMlQxMDoxNDoxNy4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDk5LDM2LjksMjAxNS0wMS0xMSxvcmdhbmljLERlbm1hcmsKNzUxLFFEVVpKSUVUQ0FHVzY1NCxRRFVaSklFVENBR1c2NTQteHZxNTR3bzcsMjAxNS0wMS0xMlQxMDo0Njo0NS4wMDAwMDArMDAwMCwyMDE1LTAxLTEyVDEwOjQ3OjAzLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNzIsMTguNSwyMDE1LTAxLTA3LGZhY2Vib29rLFN3aXR6ZXJsYW5kCjc1OCxHU1FKWElPS1lNRUE3MTIsR1NRSlhJT0tZTUVBNzEyLTlpMnJrNmFjLDIwMTUtMDEtMTJUMTM6Mzk6MDAuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMlQxMzo0NTozMC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDUsMTUuMSwyMDE1LTAxLTA3LGdvb2dsZSxHZXJtYW55Cjc1OSxOQU9KUkRNQ1NFQkkyODEsTkFPSlJETUNTRUJJMjgxLTR4aXA4Z3ZuLDIwMTUtMDEtMTJUMTQ6NTU6MTMuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMlQxNTowMTowMS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDI3LDE4LjgsMjAxNS0wMS0xMSxvcmdhbmljLE5vcndheQo3NjgsQVVXRkRSWk1YVkpIOTI4LEFVV0ZEUlpNWFZKSDkyOC13OWZoazNweiwyMDE1LTAxLTEyVDE3OjI3OjQ1LjAwMDAwMCswMDAwLDIwMTUtMDEtMTJUMTc6MzA6MTUuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAwOCwxMS41LDIwMTUtMDEtMTEsZ29vZ2xlLEluZGlhCjc2OSxBVVdGRFJaTVhWSkg5MjgsQVVXRkRSWk1YVkpIOTI4LXc5ZmhrM3B6LDIwMTUtMDEtMTJUMTc6Mjc6NDUuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMlQxNzozMzozOS4wMDAwMDArMDAwMCxhZCxhZF8xNXNlYywwLjA3OCwxMS41LDIwMTUtMDEtMTEsZ29vZ2xlLEluZGlhCjc3NixDSEtVUkFCVEZaREUzNzIsQ0hLVVJBQlRGWkRFMzcyLXF2dXc0OWc2LDIwMTUtMDEtMTJUMTg6MTk6NDkuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMlQxODoyODo0OS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDk5LDE0LjgsMjAxNS0wMS0xMSxvcmdhbmljLERlbm1hcmsKNzgwLE5BT0pSRE1DU0VCSTI4MSxOQU9KUkRNQ1NFQkkyODEtMm03dXcxODksMjAxNS0wMS0xMlQxOTo1MTo0OS4wMDAwMDArMDAwMCwyMDE1LTAxLTEyVDIwOjI2OjA3LjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMDk5LDM4LjksMjAxNS0wMS0xMSxvcmdhbmljLE5vcndheQo3ODksVVpRRkhEQkVNWVBWNTk0LFVaUUZIREJFTVlQVjU5NC1rZnNyZWw2ZCwyMDE1LTAxLTEyVDIyOjM4OjE3LjAwMDAwMCswMDAwLDIwMTUtMDEtMTJUMjI6NTY6NDcuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA4NCwyNS41LDIwMTUtMDEtMTAsZ29vZ2xlLFN3aXR6ZXJsYW5kCjc5MyxHQVlJQkxVQ09FREo3MzIsR0FZSUJMVUNPRURKNzMyLW1kOWVweTc4LDIwMTUtMDEtMTJUMjI6NDQ6MDQuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMlQyMzoxMzo1Mi4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjA4LDMxLjEsMjAxNS0wMS0wMyxvcmdhbmljLFVuaXRlZCBTdGF0ZXMKODAxLEZYV0ROS0lVTUpZUjQ3MSxGWFdETktJVU1KWVI0NzEtaWhreWRqbTYsMjAxNS0wMS0xMlQyMzoyOToxMS4wMDAwMDArMDAwMCwyMDE1LTAxLTEzVDAwOjAxOjE3LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMywzNS43LDIwMTUtMDEtMTAsb3JnYW5pYyxVbml0ZWQgU3RhdGVzCjgwNyxWTFFIWUpDS0JPSU43MjksVkxRSFlKQ0tCT0lONzI5LXRlMmE3NGxpLDIwMTUtMDEtMTNUMDA6MTc6MDAuMDAwMDAwKzAwMDAsMjAxNS0wMS0xM1QwMDozNjo0OC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDE4LDI1LjQsMjAxNS0wMS0xMCxvcmdhbmljLEphcGFuCjgwOSxKVkJaQ1BLWEhGTVU0OTEsSlZCWkNQS1hIRk1VNDkxLWV3Znp4YWI1LDIwMTUtMDEtMTNUMDA6NDQ6MDEuMDAwMDAwKzAwMDAsMjAxNS0wMS0xM1QwMDo0Nzo1NS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDgsMjUuMiwyMDE1LTAxLTA3LG9yZ2FuaWMsVW5pdGVkIFN0YXRlcwo4MTAsSlZCWkNQS1hIRk1VNDkxLEpWQlpDUEtYSEZNVTQ5MS1ld2Z6eGFiNSwyMDE1LTAxLTEzVDAwOjQ0OjAxLjAwMDAwMCswMDAwLDIwMTUtMDEtMTNUMDA6NTE6MzEuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA1LDI1LjIsMjAxNS0wMS0wNyxvcmdhbmljLFVuaXRlZCBTdGF0ZXMKODExLEpWQlpDUEtYSEZNVTQ5MSxKVkJaQ1BLWEhGTVU0OTEtZXdmenhhYjUsMjAxNS0wMS0xM1QwMDo0NDowMS4wMDAwMDArMDAwMCwyMDE1LTAxLTEzVDAwOjU3OjAxLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNiwyNS4yLDIwMTUtMDEtMDcsb3JnYW5pYyxVbml0ZWQgU3RhdGVzCjgxOCxSTU9TV0hKR0VMQ0k2NzUsUk1PU1dISkdFTENJNjc1LTdxenNyeGhhLDIwMTUtMDEtMTNUMDI6MDY6MDkuMDAwMDAwKzAwMDAsMjAxNS0wMS0xM1QwMjoyNzowOS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDUsMjQuNywyMDE1LTAxLTEwLG90aGVyX2NhbXBhaWduLEZyYW5jZQo4MTksUk1PU1dISkdFTENJNjc1LFJNT1NXSEpHRUxDSTY3NS03cXpzcnhoYSwyMDE1LTAxLTEzVDAyOjA2OjA5LjAwMDAwMCswMDAwLDIwMTUtMDEtMTNUMDI6MzA6MTUuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA2LDI0LjcsMjAxNS0wMS0xMCxvdGhlcl9jYW1wYWlnbixGcmFuY2UKODIwLE9NQ1ZVQUlLU0RUUjY1MSxPTUNWVUFJS1NEVFI2NTEtdm9rcjQ1ODIsMjAxNS0wMS0xM1QwMjoxMTo0Mi4wMDAwMDArMDAwMCwyMDE1LTAxLTEzVDAyOjEyOjI0LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4xLDI2LjMsMjAxNS0wMS0wNyxvdGhlcl9jYW1wYWlnbixVbml0ZWQgU3RhdGVzCjgyNSxPTUNWVUFJS1NEVFI2NTEsT01DVlVBSUtTRFRSNjUxLXZva3I0NTgyLDIwMTUtMDEtMTNUMDI6MTE6NDIuMDAwMDAwKzAwMDAsMjAxNS0wMS0xM1QwMjozMTo1NC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDgsMjYuMywyMDE1LTAxLTA3LG90aGVyX2NhbXBhaWduLFVuaXRlZCBTdGF0ZXMKODI3LE9NQ1ZVQUlLU0RUUjY1MSxPTUNWVUFJS1NEVFI2NTEtdm9rcjQ1ODIsMjAxNS0wMS0xM1QwMjoxMTo0Mi4wMDAwMDArMDAwMCwyMDE1LTAxLTEzVDAyOjM2OjAwLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wOSwyNi4zLDIwMTUtMDEtMDcsb3RoZXJfY2FtcGFpZ24sVW5pdGVkIFN0YXRlcwo4MzAsRlhXRE5LSVVNSllSNDcxLEZYV0ROS0lVTUpZUjQ3MS1wamwzYm5pNSwyMDE1LTAxLTEzVDA0OjEzOjIyLjAwMDAwMCswMDAwLDIwMTUtMDEtMTNUMDQ6MjU6MjIuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAzLDIwLjIsMjAxNS0wMS0xMCxvcmdhbmljLFVuaXRlZCBTdGF0ZXMKODM0LE5BT0pSRE1DU0VCSTI4MSxOQU9KUkRNQ1NFQkkyODEtZWhpMW4yM3YsMjAxNS0wMS0xM1QwNDo1ODoyMC4wMDAwMDArMDAwMCwyMDE1LTAxLTEzVDA1OjA1OjI2LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wODEsMTQuMiwyMDE1LTAxLTExLG9yZ2FuaWMsTm9yd2F5CjgzNSxOQU9KUkRNQ1NFQkkyODEsTkFPSlJETUNTRUJJMjgxLWVoaTFuMjN2LDIwMTUtMDEtMTNUMDQ6NTg6MjAuMDAwMDAwKzAwMDAsMjAxNS0wMS0xM1QwNTowNzowMi4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDksMTQuMiwyMDE1LTAxLTExLG9yZ2FuaWMsTm9yd2F5Cjg0NixSTU9TV0hKR0VMQ0k2NzUsUk1PU1dISkdFTENJNjc1LXJ6bzI4andxLDIwMTUtMDEtMTNUMDg6Mjc6MzQuMDAwMDAwKzAwMDAsMjAxNS0wMS0xM1QwODozNzozNC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDQsMjUuNCwyMDE1LTAxLTEwLG90aGVyX2NhbXBhaWduLEZyYW5jZQo4NDcsUk1PU1dISkdFTENJNjc1LFJNT1NXSEpHRUxDSTY3NS1yem8yOGp3cSwyMDE1LTAxLTEzVDA4OjI3OjM0LjAwMDAwMCswMDAwLDIwMTUtMDEtMTNUMDg6Mzc6NDAuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAyLDI1LjQsMjAxNS0wMS0xMCxvdGhlcl9jYW1wYWlnbixGcmFuY2UKODQ5LFJNT1NXSEpHRUxDSTY3NSxSTU9TV0hKR0VMQ0k2NzUtcnpvMjhqd3EsMjAxNS0wMS0xM1QwODoyNzozNC4wMDAwMDArMDAwMCwyMDE1LTAxLTEzVDA4OjQ5OjUyLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNSwyNS40LDIwMTUtMDEtMTAsb3RoZXJfY2FtcGFpZ24sRnJhbmNlCjg1MixCRk5MVVJJU0pYVEg2NDcsQkZOTFVSSVNKWFRINjQ3LWh4MjlrdDQ4LDIwMTUtMDEtMTNUMDg6NTk6MjkuMDAwMDAwKzAwMDAsMjAxNS0wMS0xM1QwOTowNzoxMS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDI0LDI0LjQsMjAxNS0wMS0xMCxvcmdhbmljLEluZGlhCjg1MyxCRk5MVVJJU0pYVEg2NDcsQkZOTFVSSVNKWFRINjQ3LWh4MjlrdDQ4LDIwMTUtMDEtMTNUMDg6NTk6MjkuMDAwMDAwKzAwMDAsMjAxNS0wMS0xM1QwOToxNDoxMS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDE4LDI0LjQsMjAxNS0wMS0xMCxvcmdhbmljLEluZGlhCjg1NCxCRk5MVVJJU0pYVEg2NDcsQkZOTFVSSVNKWFRINjQ3LWh4MjlrdDQ4LDIwMTUtMDEtMTNUMDg6NTk6MjkuMDAwMDAwKzAwMDAsMjAxNS0wMS0xM1QwOToxNDoxNy4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDA0LDI0LjQsMjAxNS0wMS0xMCxvcmdhbmljLEluZGlhCjg1OCxHQVlJQkxVQ09FREo3MzIsR0FZSUJMVUNPRURKNzMyLWxiOWtyNWlzLDIwMTUtMDEtMTNUMDk6MzU6MzEuMDAwMDAwKzAwMDAsMjAxNS0wMS0xM1QwOTo1Njo0OS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDksMjQuNSwyMDE1LTAxLTAzLG9yZ2FuaWMsVW5pdGVkIFN0YXRlcwo4NTksQ0hLVVJBQlRGWkRFMzcyLENIS1VSQUJURlpERTM3Mi1hNnYyd29zbCwyMDE1LTAxLTEzVDA5OjUyOjQyLjAwMDAwMCswMDAwLDIwMTUtMDEtMTNUMDk6NTc6NDguMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA2NiwyMi42LDIwMTUtMDEtMTEsb3JnYW5pYyxEZW5tYXJrCjg2MyxVWlFGSERCRU1ZUFY1OTQsVVpRRkhEQkVNWVBWNTk0LXYyOWJwcjRpLDIwMTUtMDEtMTNUMTA6NTU6NDIuMDAwMDAwKzAwMDAsMjAxNS0wMS0xM1QxMTowODowNi4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDcyLDEzLjksMjAxNS0wMS0xMCxnb29nbGUsU3dpdHplcmxhbmQKODY0LFFEVVpKSUVUQ0FHVzY1NCxRRFVaSklFVENBR1c2NTQtdDgxMjk0cmosMjAxNS0wMS0xM1QxMToyMTo1MS4wMDAwMDArMDAwMCwyMDE1LTAxLTEzVDExOjQ1OjAzLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMzYsMjQuMCwyMDE1LTAxLTA3LGZhY2Vib29rLFN3aXR6ZXJsYW5kCjg3NSxOQU9KUkRNQ1NFQkkyODEsTkFPSlJETUNTRUJJMjgxLWMxdnVzM2FxLDIwMTUtMDEtMTNUMTQ6MzQ6MjUuMDAwMDAwKzAwMDAsMjAxNS0wMS0xM1QxNTowMTozMS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDU0LDM1LjYsMjAxNS0wMS0xMSxvcmdhbmljLE5vcndheQo4OTQsV0VQS1lOUlhERlVUNTcyLFdFUEtZTlJYREZVVDU3Mi0xd2x0OXppeSwyMDE1LTAxLTEzVDE2OjQxOjE2LjAwMDAwMCswMDAwLDIwMTUtMDEtMTNUMTY6NTI6MzQuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA1NCwyNS42LDIwMTUtMDEtMTMsY3Jvc3Nwcm9tbyxDaGluYQo4OTYsSlVZQkZNUEVSTERXMzk0LEpVWUJGTVBFUkxEVzM5NC02czh2ZmwyeCwyMDE1LTAxLTEzVDE4OjQ1OjQ1LjAwMDAwMCswMDAwLDIwMTUtMDEtMTNUMTg6NTI6NDUuMDAwMDAwKzAwMDAsYWQsYWRfMTBzZWMsMC4wOSwxOS45LDIwMTUtMDEtMTMsb3JnYW5pYyxVbml0ZWQgU3RhdGVzCjkwMCxHU1FKWElPS1lNRUE3MTIsR1NRSlhJT0tZTUVBNzEyLTNxODJ2a2c5LDIwMTUtMDEtMTNUMTk6MTY6NTEuMDAwMDAwKzAwMDAsMjAxNS0wMS0xM1QxOTo0NzozMy4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDYsMzQuMCwyMDE1LTAxLTA3LGdvb2dsZSxHZXJtYW55CjkxMSxXRVBLWU5SWERGVVQ1NzIsV0VQS1lOUlhERlVUNTcyLTZtOXdrNzRvLDIwMTUtMDEtMTNUMjI6MjY6NDguMDAwMDAwKzAwMDAsMjAxNS0wMS0xM1QyMjo0NToxOC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDY2LDI2LjQsMjAxNS0wMS0xMyxjcm9zc3Byb21vLENoaW5hCjkxMyxaUFRJSE5TVkZZQVExNDYsWlBUSUhOU1ZGWUFRMTQ2LWpjM2Q3bnJxLDIwMTUtMDEtMTNUMjI6NDM6MDMuMDAwMDAwKzAwMDAsMjAxNS0wMS0xM1QyMjo1Mzo1Ny4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDQ4LDIzLjIsMjAxNS0wMS0wNCxmYWNlYm9vayxNZXhpY28KOTE1LFBaQk5SS1NNVUxIWDIxMyxQWkJOUktTTVVMSFgyMTMtYmx3ZDN4N3EsMjAxNS0wMS0xM1QyMzoyMzoyNy4wMDAwMDArMDAwMCwyMDE1LTAxLTEzVDIzOjMzOjQ1LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMjQsMjQuNiwyMDE1LTAxLTA3LG9yZ2FuaWMsSW5kaWEKOTE3LFBaQk5SS1NNVUxIWDIxMyxQWkJOUktTTVVMSFgyMTMtYmx3ZDN4N3EsMjAxNS0wMS0xM1QyMzoyMzoyNy4wMDAwMDArMDAwMCwyMDE1LTAxLTEzVDIzOjQwOjMzLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMTgsMjQuNiwyMDE1LTAxLTA3LG9yZ2FuaWMsSW5kaWEKOTE4LFBaQk5SS1NNVUxIWDIxMyxQWkJOUktTTVVMSFgyMTMtYmx3ZDN4N3EsMjAxNS0wMS0xM1QyMzoyMzoyNy4wMDAwMDArMDAwMCwyMDE1LTAxLTEzVDIzOjQxOjI3LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMTgsMjQuNiwyMDE1LTAxLTA3LG9yZ2FuaWMsSW5kaWEKOTE5LFdCS0ZZSlhDWk5VSDU2MyxXQktGWUpYQ1pOVUg1NjMtbnpzcHI2dXQsMjAxNS0wMS0xM1QyMzoyODo1OC4wMDAwMDArMDAwMCwyMDE1LTAxLTEzVDIzOjM2OjI4LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNCwzMC43LDIwMTUtMDEtMTMsb3JnYW5pYyxDYW5hZGEKOTIxLFdCS0ZZSlhDWk5VSDU2MyxXQktGWUpYQ1pOVUg1NjMtbnpzcHI2dXQsMjAxNS0wMS0xM1QyMzoyODo1OC4wMDAwMDArMDAwMCwyMDE1LTAxLTEzVDIzOjUwOjM0LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4xLDMwLjcsMjAxNS0wMS0xMyxvcmdhbmljLENhbmFkYQo5MjQsWElBSEJOS0VDR1JPNTk4LFhJQUhCTktFQ0dSTzU5OC1sNXVmOWlwMywyMDE1LTAxLTE0VDAwOjM4OjQxLjAwMDAwMCswMDAwLDIwMTUtMDEtMTRUMDA6NDY6MjMuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAyLDIwLjAsMjAxNS0wMS0xNCxnb29nbGUsRWd5cHQKOTI2LFhJQUhCTktFQ0dSTzU5OCxYSUFIQk5LRUNHUk81OTgtbDV1ZjlpcDMsMjAxNS0wMS0xNFQwMDozODo0MS4wMDAwMDArMDAwMCwyMDE1LTAxLTE0VDAwOjU4OjA1LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNTUsMjAuMCwyMDE1LTAxLTE0LGdvb2dsZSxFZ3lwdAo5MzQsTVhDT1ZFWUlBS0ZINTk0LE1YQ09WRVlJQUtGSDU5NC1pNzUyNDlmMywyMDE1LTAxLTE0VDAxOjMwOjIzLjAwMDAwMCswMDAwLDIwMTUtMDEtMTRUMDE6NDg6MTEuMDAwMDAwKzAwMDAsYWQsYWRfMTBzZWMsMC4wNzIsMjEuMywyMDE1LTAxLTEwLG9yZ2FuaWMsQ2hpbmEKOTM1LEpVQkRWRkhDTlFXVDE5OCxKVUJEVkZIQ05RV1QxOTgtNXdrYnNkb2ksMjAxNS0wMS0xNFQwMjoxMDo0MC4wMDAwMDArMDAwMCwyMDE1LTAxLTE0VDAyOjE0OjQwLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMzIsMzcuMywyMDE1LTAxLTE0LG9yZ2FuaWMsUGhpbGlwcGluZXMKOTM2LEpVQkRWRkhDTlFXVDE5OCxKVUJEVkZIQ05RV1QxOTgtNXdrYnNkb2ksMjAxNS0wMS0xNFQwMjoxMDo0MC4wMDAwMDArMDAwMCwyMDE1LTAxLTE0VDAyOjI4OjQwLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMjgsMzcuMywyMDE1LTAxLTE0LG9yZ2FuaWMsUGhpbGlwcGluZXMKOTM3LEpVWUJGTVBFUkxEVzM5NCxKVVlCRk1QRVJMRFczOTQtODdsMnRiaHMsMjAxNS0wMS0xNFQwMjozMDozMC4wMDAwMDArMDAwMCwyMDE1LTAxLTE0VDAyOjM4OjM2LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4xLDE3LjgsMjAxNS0wMS0xMyxvcmdhbmljLFVuaXRlZCBTdGF0ZXMKOTQyLE1UQ0lXS09WQVNZUDkyNSxNVENJV0tPVkFTWVA5MjUtNHpxdWs1ZnIsMjAxNS0wMS0xNFQwMjo0NToyMC4wMDAwMDArMDAwMCwyMDE1LTAxLTE0VDAyOjUzOjI2LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMiwxMS41LDIwMTUtMDEtMTQsb3JnYW5pYyxHZXJtYW55Cjk0OSxaUFRJSE5TVkZZQVExNDYsWlBUSUhOU1ZGWUFRMTQ2LTFiNmloN3ZnLDIwMTUtMDEtMTRUMDI6NDg6NTYuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNFQwMzoyMToxNC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDEyLDM0LjksMjAxNS0wMS0wNCxmYWNlYm9vayxNZXhpY28KOTUwLEpZRUJDTE5VWlRYUTQ1NyxKWUVCQ0xOVVpUWFE0NTctYnRvdjZpdzQsMjAxNS0wMS0xNFQwMjo1MzozNy4wMDAwMDArMDAwMCwyMDE1LTAxLTE0VDAyOjU3OjE5LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMzUsOC44LDIwMTUtMDEtMDQsb3RoZXJfY2FtcGFpZ24sRWd5cHQKOTUyLEpWQlpDUEtYSEZNVTQ5MSxKVkJaQ1BLWEhGTVU0OTEtc2F6bnVrZmksMjAxNS0wMS0xNFQwMjo1ODowOS4wMDAwMDArMDAwMCwyMDE1LTAxLTE0VDAzOjA1OjA5LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNSwzNS43LDIwMTUtMDEtMDcsb3JnYW5pYyxVbml0ZWQgU3RhdGVzCjk1NSxKVkJaQ1BLWEhGTVU0OTEsSlZCWkNQS1hIRk1VNDkxLXNhem51a2ZpLDIwMTUtMDEtMTRUMDI6NTg6MDkuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNFQwMzoxNToxNS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDgsMzUuNywyMDE1LTAxLTA3LG9yZ2FuaWMsVW5pdGVkIFN0YXRlcwo5NTcsWElBSEJOS0VDR1JPNTk4LFhJQUhCTktFQ0dSTzU5OC1qbGhkbnM4aSwyMDE1LTAxLTE0VDA0OjMyOjE1LjAwMDAwMCswMDAwLDIwMTUtMDEtMTRUMDQ6MzQ6MzMuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAxNSwxNC4xLDIwMTUtMDEtMTQsZ29vZ2xlLEVneXB0Cjk1OCxYSUFIQk5LRUNHUk81OTgsWElBSEJOS0VDR1JPNTk4LWpsaGRuczhpLDIwMTUtMDEtMTRUMDQ6MzI6MTUuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNFQwNDo0NDowMy4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjA1LDE0LjEsMjAxNS0wMS0xNCxnb29nbGUsRWd5cHQKOTYwLEVGTE5QR1RSWlZBQzc2NSxFRkxOUEdUUlpWQUM3NjUtdHM0OW0zcTcsMjAxNS0wMS0xNFQwNDozMzoyOC4wMDAwMDArMDAwMCwyMDE1LTAxLTE0VDA0OjQ3OjQwLjAwMDAwMCswMDAwLGFkLGFkXzE1c2VjLDAuMDU4LDIwLjcsMjAxNS0wMS0xNCxvdGhlcl9jYW1wYWlnbixSdXNzaWEKOTYxLEVGTE5QR1RSWlZBQzc2NSxFRkxOUEdUUlpWQUM3NjUtdHM0OW0zcTcsMjAxNS0wMS0xNFQwNDozMzoyOC4wMDAwMDArMDAwMCwyMDE1LTAxLTE0VDA0OjUxOjE2LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMTUsMjAuNywyMDE1LTAxLTE0LG90aGVyX2NhbXBhaWduLFJ1c3NpYQo5NjIsRUZMTlBHVFJaVkFDNzY1LEVGTE5QR1RSWlZBQzc2NS10czQ5bTNxNywyMDE1LTAxLTE0VDA0OjMzOjI4LjAwMDAwMCswMDAwLDIwMTUtMDEtMTRUMDQ6NTE6NDAuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAxNSwyMC43LDIwMTUtMDEtMTQsb3RoZXJfY2FtcGFpZ24sUnVzc2lhCjk2OSxETFRGVlFXWUlYUko1ODksRExURlZRV1lJWFJKNTg5LXNreXY4MnBlLDIwMTUtMDEtMTRUMDQ6Mzk6NDkuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNFQwNDo1Mzo1NS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDU1OSwzMi43LDIwMTUtMDEtMTMsb3JnYW5pYyxTb3V0aCBBZnJpY2EKOTcwLERMVEZWUVdZSVhSSjU4OSxETFRGVlFXWUlYUko1ODktc2t5djgycGUsMjAxNS0wMS0xNFQwNDozOTo0OS4wMDAwMDArMDAwMCwyMDE1LTAxLTE0VDA0OjU1OjMxLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNDEsMzIuNywyMDE1LTAxLTEzLG9yZ2FuaWMsU291dGggQWZyaWNhCjk3MixLR1pDT0pIUEZUUVY3NTMsS0daQ09KSFBGVFFWNzUzLXJpY3p0OHBkLDIwMTUtMDEtMTRUMDU6MDY6MDIuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNFQwNToyNDozMi4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDgsMzguMSwyMDE1LTAxLTExLG9yZ2FuaWMsVW5pdGVkIFN0YXRlcwo5NzQsSlZCWkNQS1hIRk1VNDkxLEpWQlpDUEtYSEZNVTQ5MS13MXEybGV1OSwyMDE1LTAxLTE0VDA1OjI4OjQ2LjAwMDAwMCswMDAwLDIwMTUtMDEtMTRUMDU6MzM6NDAuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA1LDUuMSwyMDE1LTAxLTA3LG9yZ2FuaWMsVW5pdGVkIFN0YXRlcwo5NzUsV0JLRllKWENaTlVINTYzLFdCS0ZZSlhDWk5VSDU2My15N3JrYm5naiwyMDE1LTAxLTE0VDA2OjM3OjE1LjAwMDAwMCswMDAwLDIwMTUtMDEtMTRUMDY6Mzc6MjEuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAzLDM5LjAsMjAxNS0wMS0xMyxvcmdhbmljLENhbmFkYQo5ODEsVkxRSFlKQ0tCT0lONzI5LFZMUUhZSkNLQk9JTjcyOS0yN3BvZ21qdiwyMDE1LTAxLTE0VDA3OjA0OjMyLjAwMDAwMCswMDAwLDIwMTUtMDEtMTRUMDc6MDg6NTYuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAzLDkuMywyMDE1LTAxLTEwLG9yZ2FuaWMsSmFwYW4KOTg1LEdKQ1hOVFdFQklQUTM2OSxHSkNYTlRXRUJJUFEzNjktM3VvcGNrbnksMjAxNS0wMS0xNFQwNzo1MjoxMy4wMDAwMDArMDAwMCwyMDE1LTAxLTE0VDA4OjExOjQ5LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNiwzNS45LDIwMTUtMDEtMTQsb3JnYW5pYyxVbml0ZWQgU3RhdGVzCjk4NyxKVVlCRk1QRVJMRFczOTQsSlVZQkZNUEVSTERXMzk0LWF6bXE3dzlsLDIwMTUtMDEtMTRUMDg6MjE6MTMuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNFQwODo0NToxMy4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDQsMzAuMSwyMDE1LTAxLTEzLG9yZ2FuaWMsVW5pdGVkIFN0YXRlcwo5ODgsUU5MVlJERU9YRllKODkyLFFOTFZSREVPWEZZSjg5Mi01dTN3bjhwNywyMDE1LTAxLTE0VDA4OjIxOjQyLjAwMDAwMCswMDAwLDIwMTUtMDEtMTRUMDg6Mjg6MTguMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA4LDM0LjYsMjAxNS0wMS0wOSxjcm9zc3Byb21vLEF1c3RyYWxpYQo5OTAsUU5MVlJERU9YRllKODkyLFFOTFZSREVPWEZZSjg5Mi01dTN3bjhwNywyMDE1LTAxLTE0VDA4OjIxOjQyLjAwMDAwMCswMDAwLDIwMTUtMDEtMTRUMDg6MzM6MjQuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA5LDM0LjYsMjAxNS0wMS0wOSxjcm9zc3Byb21vLEF1c3RyYWxpYQo5OTcsSERTQU1QVE9MQldDNDM4LEhEU0FNUFRPTEJXQzQzOC12dDh1Y3BtMywyMDE1LTAxLTE0VDA5OjAyOjMxLjAwMDAwMCswMDAwLDIwMTUtMDEtMTRUMDk6MTY6MTkuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA2LDIwLjcsMjAxNS0wMS0xNCxvcmdhbmljLFN3aXR6ZXJsYW5kCjEwMDUsTVRDSVdLT1ZBU1lQOTI1LE1UQ0lXS09WQVNZUDkyNS04YTZ4ZnFvaywyMDE1LTAxLTE0VDEwOjE4OjMyLjAwMDAwMCswMDAwLDIwMTUtMDEtMTRUMTA6MzE6MjAuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA0LDE2LjMsMjAxNS0wMS0xNCxvcmdhbmljLEdlcm1hbnkKMTAwOSxHQVlJQkxVQ09FREo3MzIsR0FZSUJMVUNPRURKNzMyLTdvY3N0MW16LDIwMTUtMDEtMTRUMTE6NDM6NTEuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNFQxMTo0NzozMy4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjEsMzUuMSwyMDE1LTAxLTAzLG9yZ2FuaWMsVW5pdGVkIFN0YXRlcwoxMDE1LE5NUlVXSEFZSlBCUTgyNCxOTVJVV0hBWUpQQlE4MjQtMTQ1Y3I4N3EsMjAxNS0wMS0xNFQxMjowMjoyMy4wMDAwMDArMDAwMCwyMDE1LTAxLTE0VDEyOjMyOjUzLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wODQ5LDMzLjMsMjAxNS0wMS0wOCxvcmdhbmljLEhvbmcgS29uZwoxMDE2LE5NUlVXSEFZSlBCUTgyNCxOTVJVV0hBWUpQQlE4MjQtMTQ1Y3I4N3EsMjAxNS0wMS0xNFQxMjowMjoyMy4wMDAwMDArMDAwMCwyMDE1LTAxLTE0VDEyOjMzOjI5LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wOCwzMy4zLDIwMTUtMDEtMDgsb3JnYW5pYyxIb25nIEtvbmcKMTAxNyxOQU9KUkRNQ1NFQkkyODEsTkFPSlJETUNTRUJJMjgxLWd3YjlvNmRjLDIwMTUtMDEtMTRUMTI6NDk6NDUuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNFQxMjo1MTo1Ny4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDU0LDE1LjgsMjAxNS0wMS0xMSxvcmdhbmljLE5vcndheQoxMDI0LEdBWUlCTFVDT0VESjczMixHQVlJQkxVQ09FREo3MzItbHBrdXdncjQsMjAxNS0wMS0xNFQxNDo1NTozOC4wMDAwMDArMDAwMCwyMDE1LTAxLTE0VDE1OjEyOjAyLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wOCwyOS42LDIwMTUtMDEtMDMsb3JnYW5pYyxVbml0ZWQgU3RhdGVzCjEwMjcsQkZOTFVSSVNKWFRINjQ3LEJGTkxVUklTSlhUSDY0Ny16aTk2Y3BuMSwyMDE1LTAxLTE0VDE0OjU5OjQxLjAwMDAwMCswMDAwLDIwMTUtMDEtMTRUMTU6MTY6NDcuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAyNCwyNC44LDIwMTUtMDEtMTAsb3JnYW5pYyxJbmRpYQoxMDMwLEJGTkxVUklTSlhUSDY0NyxCRk5MVVJJU0pYVEg2NDctemk5NmNwbjEsMjAxNS0wMS0xNFQxNDo1OTo0MS4wMDAwMDArMDAwMCwyMDE1LTAxLTE0VDE1OjIyOjE3LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMjIsMjQuOCwyMDE1LTAxLTEwLG9yZ2FuaWMsSW5kaWEKMTAzMSxYSUFIQk5LRUNHUk81OTgsWElBSEJOS0VDR1JPNTk4LXVuMWZiejk1LDIwMTUtMDEtMTRUMTY6MDY6MzcuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNFQxNjowOTo0My4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDUsMjcuMiwyMDE1LTAxLTE0LGdvb2dsZSxFZ3lwdAoxMDMyLFhJQUhCTktFQ0dSTzU5OCxYSUFIQk5LRUNHUk81OTgtdW4xZmJ6OTUsMjAxNS0wMS0xNFQxNjowNjozNy4wMDAwMDArMDAwMCwyMDE1LTAxLTE0VDE2OjE3OjE5LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNDUsMjcuMiwyMDE1LTAxLTE0LGdvb2dsZSxFZ3lwdAoxMDMzLFhJQUhCTktFQ0dSTzU5OCxYSUFIQk5LRUNHUk81OTgtdW4xZmJ6OTUsMjAxNS0wMS0xNFQxNjowNjozNy4wMDAwMDArMDAwMCwyMDE1LTAxLTE0VDE2OjI0OjEzLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNCwyNy4yLDIwMTUtMDEtMTQsZ29vZ2xlLEVneXB0CjEwMzQsWElBSEJOS0VDR1JPNTk4LFhJQUhCTktFQ0dSTzU5OC11bjFmYno5NSwyMDE1LTAxLTE0VDE2OjA2OjM3LjAwMDAwMCswMDAwLDIwMTUtMDEtMTRUMTY6MjY6NDMuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAxLDI3LjIsMjAxNS0wMS0xNCxnb29nbGUsRWd5cHQKMTAzNixYSUFIQk5LRUNHUk81OTgsWElBSEJOS0VDR1JPNTk4LXVuMWZiejk1LDIwMTUtMDEtMTRUMTY6MDY6MzcuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNFQxNjoyODowMS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDIsMjcuMiwyMDE1LTAxLTE0LGdvb2dsZSxFZ3lwdAoxMDM5LE9NQ1ZVQUlLU0RUUjY1MSxPTUNWVUFJS1NEVFI2NTEtYmZsNmRpcmosMjAxNS0wMS0xNFQxNjo0MjoxNC4wMDAwMDArMDAwMCwyMDE1LTAxLTE0VDE2OjQ1OjIwLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMywyNS40LDIwMTUtMDEtMDcsb3RoZXJfY2FtcGFpZ24sVW5pdGVkIFN0YXRlcwoxMDQwLE9NQ1ZVQUlLU0RUUjY1MSxPTUNWVUFJS1NEVFI2NTEtYmZsNmRpcmosMjAxNS0wMS0xNFQxNjo0MjoxNC4wMDAwMDArMDAwMCwyMDE1LTAxLTE0VDE2OjU2OjAyLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNiwyNS40LDIwMTUtMDEtMDcsb3RoZXJfY2FtcGFpZ24sVW5pdGVkIFN0YXRlcwoxMDQ5LFJNT1NXSEpHRUxDSTY3NSxSTU9TV0hKR0VMQ0k2NzUtMWJueGRxenAsMjAxNS0wMS0xNFQxNzoyMjo1My4wMDAwMDArMDAwMCwyMDE1LTAxLTE0VDE3OjQzOjExLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNSwyMC4zLDIwMTUtMDEtMTAsb3RoZXJfY2FtcGFpZ24sRnJhbmNlCjEwNTAsUU5MVlJERU9YRllKODkyLFFOTFZSREVPWEZZSjg5Mi1oM2pvY2xnZiwyMDE1LTAxLTE0VDE4OjIxOjE4LjAwMDAwMCswMDAwLDIwMTUtMDEtMTRUMTg6Mjc6MDAuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA1LDkuNCwyMDE1LTAxLTA5LGNyb3NzcHJvbW8sQXVzdHJhbGlhCjEwNTIsUFpCTlJLU01VTEhYMjEzLFBaQk5SS1NNVUxIWDIxMy1meG9pYmpubCwyMDE1LTAxLTE0VDE4OjMzOjU2LjAwMDAwMCswMDAwLDIwMTUtMDEtMTRUMTg6Mzg6NDQuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAxLDEzLjMsMjAxNS0wMS0wNyxvcmdhbmljLEluZGlhCjEwNTMsUFpCTlJLU01VTEhYMjEzLFBaQk5SS1NNVUxIWDIxMy1meG9pYmpubCwyMDE1LTAxLTE0VDE4OjMzOjU2LjAwMDAwMCswMDAwLDIwMTUtMDEtMTRUMTg6NDU6MjYuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAwNiwxMy4zLDIwMTUtMDEtMDcsb3JnYW5pYyxJbmRpYQoxMDY1LE1YQ09WRVlJQUtGSDU5NCxNWENPVkVZSUFLRkg1OTQtNDI5M3pzdTEsMjAxNS0wMS0xNVQwMDoxOTo0Mi4wMDAwMDArMDAwMCwyMDE1LTAxLTE1VDAwOjI0OjE4LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNDgsMjcuNywyMDE1LTAxLTEwLG9yZ2FuaWMsQ2hpbmEKMTA2OSxHSkNYTlRXRUJJUFEzNjksR0pDWE5UV0VCSVBRMzY5LWs2cW9weWJzLDIwMTUtMDEtMTVUMDA6NTQ6NDAuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNVQwMDo1NToxMC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDIsMTkuMywyMDE1LTAxLTE0LG9yZ2FuaWMsVW5pdGVkIFN0YXRlcwoxMDcyLEdKQ1hOVFdFQklQUTM2OSxHSkNYTlRXRUJJUFEzNjktazZxb3B5YnMsMjAxNS0wMS0xNVQwMDo1NDo0MC4wMDAwMDArMDAwMCwyMDE1LTAxLTE1VDAxOjA0OjA0LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4xLDE5LjMsMjAxNS0wMS0xNCxvcmdhbmljLFVuaXRlZCBTdGF0ZXMKMTA3MyxHSkNYTlRXRUJJUFEzNjksR0pDWE5UV0VCSVBRMzY5LWs2cW9weWJzLDIwMTUtMDEtMTVUMDA6NTQ6NDAuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNVQwMTowNDoyOC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMSwxOS4zLDIwMTUtMDEtMTQsb3JnYW5pYyxVbml0ZWQgU3RhdGVzCjEwODEsTVRDSVdLT1ZBU1lQOTI1LE1UQ0lXS09WQVNZUDkyNS05ZTZhc2xoMiwyMDE1LTAxLTE1VDAyOjE1OjExLjAwMDAwMCswMDAwLDIwMTUtMDEtMTVUMDI6MzE6MTcuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAzLDM1LjMsMjAxNS0wMS0xNCxvcmdhbmljLEdlcm1hbnkKMTA4MyxNVENJV0tPVkFTWVA5MjUsTVRDSVdLT1ZBU1lQOTI1LTllNmFzbGgyLDIwMTUtMDEtMTVUMDI6MTU6MTEuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNVQwMjozMjo1OS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDYsMzUuMywyMDE1LTAxLTE0LG9yZ2FuaWMsR2VybWFueQoxMDk3LFdOVkJBWUdDTEpJUjUxNyxXTlZCQVlHQ0xKSVI1MTctZzFkYnI1ZnosMjAxNS0wMS0xNVQwMzoyNTo1OS4wMDAwMDArMDAwMCwyMDE1LTAxLTE1VDAzOjUwOjA1LjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMDc3LDI4LjgsMjAxNS0wMS0xMyxmYWNlYm9vayxTd2VkZW4KMTA5OSxaTUpMUEdDUklLTkE0NzEsWk1KTFBHQ1JJS05BNDcxLXNqa2ZtYzR5LDIwMTUtMDEtMTVUMDM6Mzk6MzguMDAwMDAwKzAwMDAsMjAxNS0wMS0xNVQwMzo0MzoyNi4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDYsMTcuNSwyMDE1LTAxLTEwLG9yZ2FuaWMsRWd5cHQKMTEwMCxaTUpMUEdDUklLTkE0NzEsWk1KTFBHQ1JJS05BNDcxLXNqa2ZtYzR5LDIwMTUtMDEtMTVUMDM6Mzk6MzguMDAwMDAwKzAwMDAsMjAxNS0wMS0xNVQwMzo0NTo1MC4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjA0NSwxNy41LDIwMTUtMDEtMTAsb3JnYW5pYyxFZ3lwdAoxMTAxLFpNSkxQR0NSSUtOQTQ3MSxaTUpMUEdDUklLTkE0NzEtc2prZm1jNHksMjAxNS0wMS0xNVQwMzozOTozOC4wMDAwMDArMDAwMCwyMDE1LTAxLTE1VDAzOjUyOjE0LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMSwxNy41LDIwMTUtMDEtMTAsb3JnYW5pYyxFZ3lwdAoxMTA2LEJGTkxVUklTSlhUSDY0NyxCRk5MVVJJU0pYVEg2NDctZ3N2amI3d2UsMjAxNS0wMS0xNVQwNTowMTo1MC4wMDAwMDArMDAwMCwyMDE1LTAxLTE1VDA1OjA4OjQ0LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMjIsMTMuNSwyMDE1LTAxLTEwLG9yZ2FuaWMsSW5kaWEKMTEwNyxLR1pDT0pIUEZUUVY3NTMsS0daQ09KSFBGVFFWNzUzLXo1NHhvbHdmLDIwMTUtMDEtMTVUMDU6MTU6MzMuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNVQwNToxNzo0NS4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjEsMjEuOCwyMDE1LTAxLTExLG9yZ2FuaWMsVW5pdGVkIFN0YXRlcwoxMTA4LEtHWkNPSkhQRlRRVjc1MyxLR1pDT0pIUEZUUVY3NTMtejU0eG9sd2YsMjAxNS0wMS0xNVQwNToxNTozMy4wMDAwMDArMDAwMCwyMDE1LTAxLTE1VDA1OjI2OjA5LjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMDksMjEuOCwyMDE1LTAxLTExLG9yZ2FuaWMsVW5pdGVkIFN0YXRlcwoxMTEwLERMVEZWUVdZSVhSSjU4OSxETFRGVlFXWUlYUko1ODktbm9oZmFlMzcsMjAxNS0wMS0xNVQwNToxNjowNC4wMDAwMDArMDAwMCwyMDE1LTAxLTE1VDA1OjIyOjQ2LjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMDk4LDEzLjAsMjAxNS0wMS0xMyxvcmdhbmljLFNvdXRoIEFmcmljYQoxMTExLERMVEZWUVdZSVhSSjU4OSxETFRGVlFXWUlYUko1ODktbm9oZmFlMzcsMjAxNS0wMS0xNVQwNToxNjowNC4wMDAwMDArMDAwMCwyMDE1LTAxLTE1VDA1OjI1OjM0LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNDEsMTMuMCwyMDE1LTAxLTEzLG9yZ2FuaWMsU291dGggQWZyaWNhCjExMjIsUU5MVlJERU9YRllKODkyLFFOTFZSREVPWEZZSjg5Mi05bGt0M3JvOCwyMDE1LTAxLTE1VDA2OjQ1OjM0LjAwMDAwMCswMDAwLDIwMTUtMDEtMTVUMDY6NTQ6MzQuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA5LDM1LjksMjAxNS0wMS0wOSxjcm9zc3Byb21vLEF1c3RyYWxpYQoxMTI3LFFEVVpKSUVUQ0FHVzY1NCxRRFVaSklFVENBR1c2NTQteWR3cmx2NnEsMjAxNS0wMS0xNVQwNjo0Njo1MS4wMDAwMDArMDAwMCwyMDE1LTAxLTE1VDA3OjIzOjM5LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wODQsMzguNiwyMDE1LTAxLTA3LGZhY2Vib29rLFN3aXR6ZXJsYW5kCjExMzAsVkxRSFlKQ0tCT0lONzI5LFZMUUhZSkNLQk9JTjcyOS02c2Z5d3Y3bSwyMDE1LTAxLTE1VDA4OjE4OjIwLjAwMDAwMCswMDAwLDIwMTUtMDEtMTVUMDg6MjE6MDIuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAxMiwzNC4wLDIwMTUtMDEtMTAsb3JnYW5pYyxKYXBhbgoxMTM1LFhJQUhCTktFQ0dSTzU5OCxYSUFIQk5LRUNHUk81OTgtbnE3dWVyd3osMjAxNS0wMS0xNVQwOTo1NzozMS4wMDAwMDArMDAwMCwyMDE1LTAxLTE1VDEwOjAwOjQzLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMiwzMC41LDIwMTUtMDEtMTQsZ29vZ2xlLEVneXB0CjExMzYsWElBSEJOS0VDR1JPNTk4LFhJQUhCTktFQ0dSTzU5OC1ucTd1ZXJ3eiwyMDE1LTAxLTE1VDA5OjU3OjMxLjAwMDAwMCswMDAwLDIwMTUtMDEtMTVUMTA6MDE6MTkuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAzNSwzMC41LDIwMTUtMDEtMTQsZ29vZ2xlLEVneXB0CjExMzcsWElBSEJOS0VDR1JPNTk4LFhJQUhCTktFQ0dSTzU5OC1ucTd1ZXJ3eiwyMDE1LTAxLTE1VDA5OjU3OjMxLjAwMDAwMCswMDAwLDIwMTUtMDEtMTVUMTA6MDM6MDEuMDAwMDAwKzAwMDAsYWQsYWRfMTBzZWMsMC4wNiwzMC41LDIwMTUtMDEtMTQsZ29vZ2xlLEVneXB0CjExMzgsWElBSEJOS0VDR1JPNTk4LFhJQUhCTktFQ0dSTzU5OC1ucTd1ZXJ3eiwyMDE1LTAxLTE1VDA5OjU3OjMxLjAwMDAwMCswMDAwLDIwMTUtMDEtMTVUMTA6MTY6MTMuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA1LDMwLjUsMjAxNS0wMS0xNCxnb29nbGUsRWd5cHQKMTEzOSxYSUFIQk5LRUNHUk81OTgsWElBSEJOS0VDR1JPNTk4LW5xN3Vlcnd6LDIwMTUtMDEtMTVUMDk6NTc6MzEuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNVQxMDoyMToyNS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDMsMzAuNSwyMDE1LTAxLTE0LGdvb2dsZSxFZ3lwdAoxMTQxLFdFUEtZTlJYREZVVDU3MixXRVBLWU5SWERGVVQ1NzItZHo3MTZpOHMsMjAxNS0wMS0xNVQxMDoxNzo1NC4wMDAwMDArMDAwMCwyMDE1LTAxLTE1VDEwOjE4OjM2LjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMDc4LDM5LjUsMjAxNS0wMS0xMyxjcm9zc3Byb21vLENoaW5hCjExNDMsV0VQS1lOUlhERlVUNTcyLFdFUEtZTlJYREZVVDU3Mi1kejcxNmk4cywyMDE1LTAxLTE1VDEwOjE3OjU0LjAwMDAwMCswMDAwLDIwMTUtMDEtMTVUMTA6MjY6MDAuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA0MiwzOS41LDIwMTUtMDEtMTMsY3Jvc3Nwcm9tbyxDaGluYQoxMTQ4LE9NQ1ZVQUlLU0RUUjY1MSxPTUNWVUFJS1NEVFI2NTEteDFndTZmZWEsMjAxNS0wMS0xNVQxMDoyMjo1NS4wMDAwMDArMDAwMCwyMDE1LTAxLTE1VDEwOjM2OjA3LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNywyOS43LDIwMTUtMDEtMDcsb3RoZXJfY2FtcGFpZ24sVW5pdGVkIFN0YXRlcwoxMTUzLEpWQlpDUEtYSEZNVTQ5MSxKVkJaQ1BLWEhGTVU0OTEtanN1YXp5dnAsMjAxNS0wMS0xNVQxMDozNzozOS4wMDAwMDArMDAwMCwyMDE1LTAxLTE1VDEwOjUxOjIxLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wOCwzOC40LDIwMTUtMDEtMDcsb3JnYW5pYyxVbml0ZWQgU3RhdGVzCjExNTcsSlZCWkNQS1hIRk1VNDkxLEpWQlpDUEtYSEZNVTQ5MS1qc3Vhenl2cCwyMDE1LTAxLTE1VDEwOjM3OjM5LjAwMDAwMCswMDAwLDIwMTUtMDEtMTVUMTE6MTE6MjcuMDAwMDAwKzAwMDAsYWQsYWRfMTBzZWMsMC4wOSwzOC40LDIwMTUtMDEtMDcsb3JnYW5pYyxVbml0ZWQgU3RhdGVzCjExNTksWElBSEJOS0VDR1JPNTk4LFhJQUhCTktFQ0dSTzU5OC1hZzE5anQ4ZiwyMDE1LTAxLTE1VDExOjM0OjQyLjAwMDAwMCswMDAwLDIwMTUtMDEtMTVUMTE6Mzg6NDguMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAxLDE1LjksMjAxNS0wMS0xNCxnb29nbGUsRWd5cHQKMTE2MCxYSUFIQk5LRUNHUk81OTgsWElBSEJOS0VDR1JPNTk4LWFnMTlqdDhmLDIwMTUtMDEtMTVUMTE6MzQ6NDIuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNVQxMTo0MDo1NC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDM1LDE1LjksMjAxNS0wMS0xNCxnb29nbGUsRWd5cHQKMTE2NixPQU5DSVZZWEpNUkw1OTcsT0FOQ0lWWVhKTVJMNTk3LWVpeTFmdDVhLDIwMTUtMDEtMTVUMTE6NTA6NDQuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNVQxMjoxMToyMC4wMDAwMDArMDAwMCxhZCxhZF8yMHNlYywwLjA5OCwzOC44LDIwMTUtMDEtMTUsb3RoZXJfY2FtcGFpZ24sSW5kaWEKMTE2NyxPQU5DSVZZWEpNUkw1OTcsT0FOQ0lWWVhKTVJMNTk3LWVpeTFmdDVhLDIwMTUtMDEtMTVUMTE6NTA6NDQuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNVQxMjoyNTo0NC4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjAzNCwzOC44LDIwMTUtMDEtMTUsb3RoZXJfY2FtcGFpZ24sSW5kaWEKMTE3NCxPQU5DSVZZWEpNUkw1OTcsT0FOQ0lWWVhKTVJMNTk3LWJyaTl1cGgxLDIwMTUtMDEtMTVUMTM6MjQ6MjcuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNVQxMzoyNDo1MS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDA0LDE3LjcsMjAxNS0wMS0xNSxvdGhlcl9jYW1wYWlnbixJbmRpYQoxMTc1LE9BTkNJVllYSk1STDU5NyxPQU5DSVZZWEpNUkw1OTctYnJpOXVwaDEsMjAxNS0wMS0xNVQxMzoyNDoyNy4wMDAwMDArMDAwMCwyMDE1LTAxLTE1VDEzOjI4OjE1LjAwMDAwMCswMDAwLGFkLGFkXzE1c2VjLDAuMDgsMTcuNywyMDE1LTAxLTE1LG90aGVyX2NhbXBhaWduLEluZGlhCjExNzgsSlZCWkNQS1hIRk1VNDkxLEpWQlpDUEtYSEZNVTQ5MS0zZWh5N2RxOSwyMDE1LTAxLTE1VDE2OjM3OjQ5LjAwMDAwMCswMDAwLDIwMTUtMDEtMTVUMTY6NDU6MjUuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA3LDguMCwyMDE1LTAxLTA3LG9yZ2FuaWMsVW5pdGVkIFN0YXRlcwoxMTg0LE1UQ0lXS09WQVNZUDkyNSxNVENJV0tPVkFTWVA5MjUteXNwZGlrcWosMjAxNS0wMS0xNVQxNzowNjozMy4wMDAwMDArMDAwMCwyMDE1LTAxLTE1VDE3OjA4OjI3LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNSwzMS4wLDIwMTUtMDEtMTQsb3JnYW5pYyxHZXJtYW55CjExODYsTVRDSVdLT1ZBU1lQOTI1LE1UQ0lXS09WQVNZUDkyNS15c3BkaWtxaiwyMDE1LTAxLTE1VDE3OjA2OjMzLjAwMDAwMCswMDAwLDIwMTUtMDEtMTVUMTc6MTE6MjEuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA0LDMxLjAsMjAxNS0wMS0xNCxvcmdhbmljLEdlcm1hbnkKMTE4OCxETFRGVlFXWUlYUko1ODksRExURlZRV1lJWFJKNTg5LXI0a2J4MXl0LDIwMTUtMDEtMTVUMTg6NDg6NTIuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNVQxOTowMzo0MC4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjA3NywxNy44LDIwMTUtMDEtMTMsb3JnYW5pYyxTb3V0aCBBZnJpY2EKMTE5MyxHSkNYTlRXRUJJUFEzNjksR0pDWE5UV0VCSVBRMzY5LTVpa212ZmIxLDIwMTUtMDEtMTVUMjA6NTI6NTAuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNVQyMDo1NDoyNi4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDIsMzMuMiwyMDE1LTAxLTE0LG9yZ2FuaWMsVW5pdGVkIFN0YXRlcwoxMTk0LEdKQ1hOVFdFQklQUTM2OSxHSkNYTlRXRUJJUFEzNjktNWlrbXZmYjEsMjAxNS0wMS0xNVQyMDo1Mjo1MC4wMDAwMDArMDAwMCwyMDE1LTAxLTE1VDIxOjAyOjMyLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wOSwzMy4yLDIwMTUtMDEtMTQsb3JnYW5pYyxVbml0ZWQgU3RhdGVzCjExOTksVkxRSFlKQ0tCT0lONzI5LFZMUUhZSkNLQk9JTjcyOS05ZXZqb3djdCwyMDE1LTAxLTE1VDIxOjU1OjIxLjAwMDAwMCswMDAwLDIwMTUtMDEtMTVUMjI6MDg6NTcuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAxOCwzNy4yLDIwMTUtMDEtMTAsb3JnYW5pYyxKYXBhbgoxMjAzLFpNSkxQR0NSSUtOQTQ3MSxaTUpMUEdDUklLTkE0NzEtaGk5dXI2eWIsMjAxNS0wMS0xNVQyMjo0OToyMC4wMDAwMDArMDAwMCwyMDE1LTAxLTE1VDIzOjE3OjIwLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNDUsMzkuMCwyMDE1LTAxLTEwLG9yZ2FuaWMsRWd5cHQKMTIxMCxSWVpIQUpFWE1CSUY3MjQsUllaSEFKRVhNQklGNzI0LXFwaWhtcng1LDIwMTUtMDEtMTZUMDE6MTg6MTIuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNlQwMToyNTo1NC4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjA4MSwxNC4wLDIwMTUtMDEtMTUsZ29vZ2xlLFBvcnR1Z2FsCjEyMjIsSlZCWkNQS1hIRk1VNDkxLEpWQlpDUEtYSEZNVTQ5MS0yb3p1eWxrdywyMDE1LTAxLTE2VDAyOjU1OjM1LjAwMDAwMCswMDAwLDIwMTUtMDEtMTZUMDM6MjA6NTMuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA1LDM4LjIsMjAxNS0wMS0wNyxvcmdhbmljLFVuaXRlZCBTdGF0ZXMKMTIyNixYSUFIQk5LRUNHUk81OTgsWElBSEJOS0VDR1JPNTk4LTc0YXRtaXhnLDIwMTUtMDEtMTZUMDM6NDI6MzkuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNlQwMzo0NjowOS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDMsMTYuOCwyMDE1LTAxLTE0LGdvb2dsZSxFZ3lwdAoxMjI5LEJGTkxVUklTSlhUSDY0NyxCRk5MVVJJU0pYVEg2NDctZmRhc3d5cWcsMjAxNS0wMS0xNlQwMzo0NzoxNC4wMDAwMDArMDAwMCwyMDE1LTAxLTE2VDAzOjUyOjMyLjAwMDAwMCswMDAwLGFkLGFkXzIwc2VjLDAuMDg0LDEyLjEsMjAxNS0wMS0xMCxvcmdhbmljLEluZGlhCjEyMzAsQkZOTFVSSVNKWFRINjQ3LEJGTkxVUklTSlhUSDY0Ny1mZGFzd3lxZywyMDE1LTAxLTE2VDAzOjQ3OjE0LjAwMDAwMCswMDAwLDIwMTUtMDEtMTZUMDM6NTU6MDIuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAxOCwxMi4xLDIwMTUtMDEtMTAsb3JnYW5pYyxJbmRpYQoxMjM1LE9NQ1ZVQUlLU0RUUjY1MSxPTUNWVUFJS1NEVFI2NTEtcTVtNnZyNHgsMjAxNS0wMS0xNlQwNzoyODowMC4wMDAwMDArMDAwMCwyMDE1LTAxLTE2VDA3OjUwOjAwLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4xLDM2LjksMjAxNS0wMS0wNyxvdGhlcl9jYW1wYWlnbixVbml0ZWQgU3RhdGVzCjEyMzYsT01DVlVBSUtTRFRSNjUxLE9NQ1ZVQUlLU0RUUjY1MS1xNW02dnI0eCwyMDE1LTAxLTE2VDA3OjI4OjAwLjAwMDAwMCswMDAwLDIwMTUtMDEtMTZUMDc6NTM6NDguMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAyLDM2LjksMjAxNS0wMS0wNyxvdGhlcl9jYW1wYWlnbixVbml0ZWQgU3RhdGVzCjEyMzcsT01DVlVBSUtTRFRSNjUxLE9NQ1ZVQUlLU0RUUjY1MS1xNW02dnI0eCwyMDE1LTAxLTE2VDA3OjI4OjAwLjAwMDAwMCswMDAwLDIwMTUtMDEtMTZUMDg6MDE6MzAuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA3LDM2LjksMjAxNS0wMS0wNyxvdGhlcl9jYW1wYWlnbixVbml0ZWQgU3RhdGVzCjEyNDMsWlBUSUhOU1ZGWUFRMTQ2LFpQVElITlNWRllBUTE0Ni1vaWwxODI2dSwyMDE1LTAxLTE2VDA3OjQ2OjQxLjAwMDAwMCswMDAwLDIwMTUtMDEtMTZUMDc6NTY6NTMuMDAwMDAwKzAwMDAsYWQsYWRfMTBzZWMsMC4wOTYsMjEuOCwyMDE1LTAxLTA0LGZhY2Vib29rLE1leGljbwoxMjQ0LFpQVElITlNWRllBUTE0NixaUFRJSE5TVkZZQVExNDYtb2lsMTgyNnUsMjAxNS0wMS0xNlQwNzo0Njo0MS4wMDAwMDArMDAwMCwyMDE1LTAxLTE2VDA4OjAzOjUzLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNzIsMjEuOCwyMDE1LTAxLTA0LGZhY2Vib29rLE1leGljbwoxMjQ1LFVQRk1MSUVLV0hZWDk2NCxVUEZNTElFS1dIWVg5NjQteHJvZ21kYmssMjAxNS0wMS0xNlQwODowMzozOS4wMDAwMDArMDAwMCwyMDE1LTAxLTE2VDA4OjA4OjI3LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4xLDMzLjQsMjAxNS0wMS0xNixvcmdhbmljLEdlcm1hbnkKMTI0OCxVUEZNTElFS1dIWVg5NjQsVVBGTUxJRUtXSFlYOTY0LXhyb2dtZGJrLDIwMTUtMDEtMTZUMDg6MDM6MzkuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNlQwODoyMjoyNy4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDMsMzMuNCwyMDE1LTAxLTE2LG9yZ2FuaWMsR2VybWFueQoxMjU1LFFKR1ZPQkxBVElIVzQ1NyxRSkdWT0JMQVRJSFc0NTctdWhqN2Z4dGQsMjAxNS0wMS0xNlQwODoxNjozMy4wMDAwMDArMDAwMCwyMDE1LTAxLTE2VDA4OjI1OjIxLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMzMsMjkuNCwyMDE1LTAxLTAyLG90aGVyX2NhbXBhaWduLFN3ZWRlbgoxMjU2LFFKR1ZPQkxBVElIVzQ1NyxRSkdWT0JMQVRJSFc0NTctdWhqN2Z4dGQsMjAxNS0wMS0xNlQwODoxNjozMy4wMDAwMDArMDAwMCwyMDE1LTAxLTE2VDA4OjI5OjQ1LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMjIsMjkuNCwyMDE1LTAxLTAyLG90aGVyX2NhbXBhaWduLFN3ZWRlbgoxMjU3LFFKR1ZPQkxBVElIVzQ1NyxRSkdWT0JMQVRJSFc0NTctdWhqN2Z4dGQsMjAxNS0wMS0xNlQwODoxNjozMy4wMDAwMDArMDAwMCwyMDE1LTAxLTE2VDA4OjMyOjI3LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wODgsMjkuNCwyMDE1LTAxLTAyLG90aGVyX2NhbXBhaWduLFN3ZWRlbgoxMjY0LFJNT1NXSEpHRUxDSTY3NSxSTU9TV0hKR0VMQ0k2NzUtb2lic3luNGYsMjAxNS0wMS0xNlQwOTozMTo0Mi4wMDAwMDArMDAwMCwyMDE1LTAxLTE2VDA5OjMyOjU0LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wOSwxNi42LDIwMTUtMDEtMTAsb3RoZXJfY2FtcGFpZ24sRnJhbmNlCjEyNjcsTkFPSlJETUNTRUJJMjgxLE5BT0pSRE1DU0VCSTI4MS1ud2Z2ZDRtbywyMDE1LTAxLTE2VDEwOjAwOjEyLjAwMDAwMCswMDAwLDIwMTUtMDEtMTZUMTA6MDA6MzAuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAzNiwxNS40LDIwMTUtMDEtMTEsb3JnYW5pYyxOb3J3YXkKMTI2OSxOQU9KUkRNQ1NFQkkyODEsTkFPSlJETUNTRUJJMjgxLW53ZnZkNG1vLDIwMTUtMDEtMTZUMTA6MDA6MTIuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNlQxMDowNDozNi4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDI3LDE1LjQsMjAxNS0wMS0xMSxvcmdhbmljLE5vcndheQoxMjc2LE1ZUUdKS09VSVdIRjYxOSxNWVFHSktPVUlXSEY2MTktOW82cDVnaWEsMjAxNS0wMS0xNlQxMDoyMzoxNS4wMDAwMDArMDAwMCwyMDE1LTAxLTE2VDEwOjI5OjIxLjAwMDAwMCswMDAwLGFkLGFkXzE1c2VjLDAuMDc4LDE3LjQsMjAxNS0wMS0xNixvcmdhbmljLEluZGlhCjEyNzcsR0pDWE5UV0VCSVBRMzY5LEdKQ1hOVFdFQklQUTM2OS00cWd0YmhmYywyMDE1LTAxLTE2VDExOjE3OjE0LjAwMDAwMCswMDAwLDIwMTUtMDEtMTZUMTE6MzA6NTYuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAyLDI2LjQsMjAxNS0wMS0xNCxvcmdhbmljLFVuaXRlZCBTdGF0ZXMKMTI3OCxHSkNYTlRXRUJJUFEzNjksR0pDWE5UV0VCSVBRMzY5LTRxZ3RiaGZjLDIwMTUtMDEtMTZUMTE6MTc6MTQuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNlQxMTozMTowOC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDQsMjYuNCwyMDE1LTAxLTE0LG9yZ2FuaWMsVW5pdGVkIFN0YXRlcwoxMjgyLEdKQ1hOVFdFQklQUTM2OSxHSkNYTlRXRUJJUFEzNjktNHFndGJoZmMsMjAxNS0wMS0xNlQxMToxNzoxNC4wMDAwMDArMDAwMCwyMDE1LTAxLTE2VDExOjQxOjI2LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4xLDI2LjQsMjAxNS0wMS0xNCxvcmdhbmljLFVuaXRlZCBTdGF0ZXMKMTI4NyxNVENJV0tPVkFTWVA5MjUsTVRDSVdLT1ZBU1lQOTI1LWhzNGk1MnZnLDIwMTUtMDEtMTZUMTI6MjI6MjMuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNlQxMjozMDozNS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMSw0MS4wLDIwMTUtMDEtMTQsb3JnYW5pYyxHZXJtYW55CjEyODksTVRDSVdLT1ZBU1lQOTI1LE1UQ0lXS09WQVNZUDkyNS1oczRpNTJ2ZywyMDE1LTAxLTE2VDEyOjIyOjIzLjAwMDAwMCswMDAwLDIwMTUtMDEtMTZUMTI6NDg6MjMuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjEsNDEuMCwyMDE1LTAxLTE0LG9yZ2FuaWMsR2VybWFueQoxMjkyLFpQVElITlNWRllBUTE0NixaUFRJSE5TVkZZQVExNDYtdThjNG5xNzUsMjAxNS0wMS0xNlQxMjoyMzo1OS4wMDAwMDArMDAwMCwyMDE1LTAxLTE2VDEyOjMxOjIzLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNzIsMTAuMiwyMDE1LTAxLTA0LGZhY2Vib29rLE1leGljbwoxMjk0LFBMUUVTQk5HVURLSjE1NCxQTFFFU0JOR1VES0oxNTQtOHB2dGFsNm4sMjAxNS0wMS0xNlQxMjozNjozOC4wMDAwMDArMDAwMCwyMDE1LTAxLTE2VDEyOjQ2OjAyLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNDIsMzIuNiwyMDE1LTAxLTEyLGZhY2Vib29rLEphcGFuCjEzMDIsV0VQS1lOUlhERlVUNTcyLFdFUEtZTlJYREZVVDU3Mi1haDhiNms5NSwyMDE1LTAxLTE2VDEzOjExOjI2LjAwMDAwMCswMDAwLDIwMTUtMDEtMTZUMTM6MTg6MjAuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA3MiwxMi45LDIwMTUtMDEtMTMsY3Jvc3Nwcm9tbyxDaGluYQoxMzAzLEdKQ1hOVFdFQklQUTM2OSxHSkNYTlRXRUJJUFEzNjktazdweG00NTEsMjAxNS0wMS0xNlQxMzoxOToxMC4wMDAwMDArMDAwMCwyMDE1LTAxLTE2VDEzOjI2OjIyLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNCwzMy40LDIwMTUtMDEtMTQsb3JnYW5pYyxVbml0ZWQgU3RhdGVzCjEzMDYsT01DVlVBSUtTRFRSNjUxLE9NQ1ZVQUlLU0RUUjY1MS1xYjRwM3JmdiwyMDE1LTAxLTE2VDEzOjI4OjU2LjAwMDAwMCswMDAwLDIwMTUtMDEtMTZUMTM6Mjk6MzIuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA1LDQwLjQsMjAxNS0wMS0wNyxvdGhlcl9jYW1wYWlnbixVbml0ZWQgU3RhdGVzCjEzMDcsT01DVlVBSUtTRFRSNjUxLE9NQ1ZVQUlLU0RUUjY1MS1xYjRwM3JmdiwyMDE1LTAxLTE2VDEzOjI4OjU2LjAwMDAwMCswMDAwLDIwMTUtMDEtMTZUMTM6NTE6MDIuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA4LDQwLjQsMjAxNS0wMS0wNyxvdGhlcl9jYW1wYWlnbixVbml0ZWQgU3RhdGVzCjEzMTQsR0FZSUJMVUNPRURKNzMyLEdBWUlCTFVDT0VESjczMi05dmEyNHV6ZCwyMDE1LTAxLTE2VDEzOjM1OjE0LjAwMDAwMCswMDAwLDIwMTUtMDEtMTZUMTQ6MDA6NDQuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA0LDI2LjgsMjAxNS0wMS0wMyxvcmdhbmljLFVuaXRlZCBTdGF0ZXMKMTMxNSxQSk9UQk5IWExGUlEyNjUsUEpPVEJOSFhMRlJRMjY1LWJjOWlsaDR3LDIwMTUtMDEtMTZUMTQ6NDc6MzkuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNlQxNDo1Mzo1MS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMSw0MC4wLDIwMTUtMDEtMTYsb3JnYW5pYyxBdXN0cmlhCjEzMTYsUEpPVEJOSFhMRlJRMjY1LFBKT1RCTkhYTEZSUTI2NS1iYzlpbGg0dywyMDE1LTAxLTE2VDE0OjQ3OjM5LjAwMDAwMCswMDAwLDIwMTUtMDEtMTZUMTQ6NTU6MzkuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA3LDQwLjAsMjAxNS0wMS0xNixvcmdhbmljLEF1c3RyaWEKMTMyMSxHSkNYTlRXRUJJUFEzNjksR0pDWE5UV0VCSVBRMzY5LTZidmM1Z3FkLDIwMTUtMDEtMTZUMTU6MzI6MzQuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNlQxNTozMjo1Mi4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDIsNS4xLDIwMTUtMDEtMTQsb3JnYW5pYyxVbml0ZWQgU3RhdGVzCjEzMjQsUFpCTlJLU01VTEhYMjEzLFBaQk5SS1NNVUxIWDIxMy1vNnh5dXZoOCwyMDE1LTAxLTE2VDE2OjI5OjEwLjAwMDAwMCswMDAwLDIwMTUtMDEtMTZUMTY6MzM6NTguMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAyLDE4LjUsMjAxNS0wMS0wNyxvcmdhbmljLEluZGlhCjEzMjUsUFpCTlJLU01VTEhYMjEzLFBaQk5SS1NNVUxIWDIxMy1vNnh5dXZoOCwyMDE1LTAxLTE2VDE2OjI5OjEwLjAwMDAwMCswMDAwLDIwMTUtMDEtMTZUMTY6MzQ6MzQuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAxNiwxOC41LDIwMTUtMDEtMDcsb3JnYW5pYyxJbmRpYQoxMzI4LEtHWkNPSkhQRlRRVjc1MyxLR1pDT0pIUEZUUVY3NTMtd2gzc2U1NjcsMjAxNS0wMS0xNlQxNzozNzoyOC4wMDAwMDArMDAwMCwyMDE1LTAxLTE2VDE3OjU4OjIyLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4xLDM3LjAsMjAxNS0wMS0xMSxvcmdhbmljLFVuaXRlZCBTdGF0ZXMKMTMzNCxIRFNBTVBUT0xCV0M0MzgsSERTQU1QVE9MQldDNDM4LXg2OXRuenJ2LDIwMTUtMDEtMTZUMTk6NDI6MjIuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNlQxOTo0OTo0Ni4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDk2LDE1LjksMjAxNS0wMS0xNCxvcmdhbmljLFN3aXR6ZXJsYW5kCjEzNDEsWElBSEJOS0VDR1JPNTk4LFhJQUhCTktFQ0dSTzU5OC1scGk4MnVyaywyMDE1LTAxLTE2VDIwOjM4OjIwLjAwMDAwMCswMDAwLDIwMTUtMDEtMTZUMjA6NTQ6MDguMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAyLDQxLjAsMjAxNS0wMS0xNCxnb29nbGUsRWd5cHQKMTM0MyxYSUFIQk5LRUNHUk81OTgsWElBSEJOS0VDR1JPNTk4LWxwaTgydXJrLDIwMTUtMDEtMTZUMjA6Mzg6MjAuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNlQyMTowMjozMi4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDIsNDEuMCwyMDE1LTAxLTE0LGdvb2dsZSxFZ3lwdAoxMzQ0LFhJQUhCTktFQ0dSTzU5OCxYSUFIQk5LRUNHUk81OTgtbHBpODJ1cmssMjAxNS0wMS0xNlQyMDozODoyMC4wMDAwMDArMDAwMCwyMDE1LTAxLTE2VDIxOjA3OjQ0LjAwMDAwMCswMDAwLGFkLGFkXzE1c2VjLDAuMDksNDEuMCwyMDE1LTAxLTE0LGdvb2dsZSxFZ3lwdAoxMzQ3LEdBWUlCTFVDT0VESjczMixHQVlJQkxVQ09FREo3MzItZWw1ajM0eHQsMjAxNS0wMS0xNlQyMDo1NjozOS4wMDAwMDArMDAwMCwyMDE1LTAxLTE2VDIxOjA0OjAzLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNywyNS41LDIwMTUtMDEtMDMsb3JnYW5pYyxVbml0ZWQgU3RhdGVzCjEzNTEsR0FZSUJMVUNPRURKNzMyLEdBWUlCTFVDT0VESjczMi1lbDVqMzR4dCwyMDE1LTAxLTE2VDIwOjU2OjM5LjAwMDAwMCswMDAwLDIwMTUtMDEtMTZUMjE6MTA6MzMuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjEsMjUuNSwyMDE1LTAxLTAzLG9yZ2FuaWMsVW5pdGVkIFN0YXRlcwoxMzUyLE5BT0pSRE1DU0VCSTI4MSxOQU9KUkRNQ1NFQkkyODEtMW1zeXQ5MmssMjAxNS0wMS0xNlQyMTo1ODo1MC4wMDAwMDArMDAwMCwyMDE1LTAxLTE2VDIyOjA5OjQ0LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNDUsMTUuNSwyMDE1LTAxLTExLG9yZ2FuaWMsTm9yd2F5CjEzNTcsUEpPVEJOSFhMRlJRMjY1LFBKT1RCTkhYTEZSUTI2NS13bXV0cmsyaCwyMDE1LTAxLTE2VDIyOjA2OjIxLjAwMDAwMCswMDAwLDIwMTUtMDEtMTZUMjI6MzI6NTcuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAyLDI2LjcsMjAxNS0wMS0xNixvcmdhbmljLEF1c3RyaWEKMTM2MixRTkxWUkRFT1hGWUo4OTIsUU5MVlJERU9YRllKODkyLXJiZnNocDhpLDIwMTUtMDEtMTZUMjM6Mjc6MDUuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNlQyMzo1MzowNS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDksMjcuNCwyMDE1LTAxLTA5LGNyb3NzcHJvbW8sQXVzdHJhbGlhCjEzNjUsSllFQkNMTlVaVFhRNDU3LEpZRUJDTE5VWlRYUTQ1Ny11bHZqa3doOCwyMDE1LTAxLTE2VDIzOjQ2OjE1LjAwMDAwMCswMDAwLDIwMTUtMDEtMTdUMDA6MTM6MjEuMDAwMDAwKzAwMDAsYWQsYWRfMTBzZWMsMC4wNiwzNy43LDIwMTUtMDEtMDQsb3RoZXJfY2FtcGFpZ24sRWd5cHQKMTM2OCxETFRGVlFXWUlYUko1ODksRExURlZRV1lJWFJKNTg5LXkzdnNycWxiLDIwMTUtMDEtMTdUMDE6MzA6MTcuMDAwMDAwKzAwMDAsMjAxNS0wMS0xN1QwMTo0MDo1OS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDIxOTgsMzcuMiwyMDE1LTAxLTEzLG9yZ2FuaWMsU291dGggQWZyaWNhCjEzNzYsWkdFVlFKU0tGSUJYMzk4LFpHRVZRSlNLRklCWDM5OC1sd3V5MXhhdiwyMDE1LTAxLTE3VDAxOjU5OjE5LjAwMDAwMCswMDAwLDIwMTUtMDEtMTdUMDI6MDM6NDkuMDAwMDAwKzAwMDAsYWQsYWRfMTBzZWMsMC4wOTgsMzMuNiwyMDE1LTAxLTE3LG9yZ2FuaWMsU291dGggS29yZWEKMTM3NyxaR0VWUUpTS0ZJQlgzOTgsWkdFVlFKU0tGSUJYMzk4LWx3dXkxeGF2LDIwMTUtMDEtMTdUMDE6NTk6MTkuMDAwMDAwKzAwMDAsMjAxNS0wMS0xN1QwMjoyMTo1NS4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjA3NywzMy42LDIwMTUtMDEtMTcsb3JnYW5pYyxTb3V0aCBLb3JlYQoxNDAwLFhJQUhCTktFQ0dSTzU5OCxYSUFIQk5LRUNHUk81OTgtZ3J2dTFwNmYsMjAxNS0wMS0xN1QwMzozODozNi4wMDAwMDArMDAwMCwyMDE1LTAxLTE3VDAzOjQyOjEyLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNTUsMTEuMiwyMDE1LTAxLTE0LGdvb2dsZSxFZ3lwdAoxNDA0LFBaQk5SS1NNVUxIWDIxMyxQWkJOUktTTVVMSFgyMTMtMTcyOHFmZG4sMjAxNS0wMS0xN1QwMzozODo0Ni4wMDAwMDArMDAwMCwyMDE1LTAxLTE3VDAzOjQ5OjIyLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMiwyMi41LDIwMTUtMDEtMDcsb3JnYW5pYyxJbmRpYQoxNDA1LFBaQk5SS1NNVUxIWDIxMyxQWkJOUktTTVVMSFgyMTMtMTcyOHFmZG4sMjAxNS0wMS0xN1QwMzozODo0Ni4wMDAwMDArMDAwMCwyMDE1LTAxLTE3VDAzOjUzOjQwLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMjQsMjIuNSwyMDE1LTAxLTA3LG9yZ2FuaWMsSW5kaWEKMTQwNixNWVFHSktPVUlXSEY2MTksTVlRR0pLT1VJV0hGNjE5LTVobnRtaXd5LDIwMTUtMDEtMTdUMDQ6MDM6MTMuMDAwMDAwKzAwMDAsMjAxNS0wMS0xN1QwNDowODoxMy4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDI0LDguMywyMDE1LTAxLTE2LG9yZ2FuaWMsSW5kaWEKMTQwOSxKWUVCQ0xOVVpUWFE0NTcsSllFQkNMTlVaVFhRNDU3LWRtdmt5Mm5oLDIwMTUtMDEtMTdUMDU6MzY6MzcuMDAwMDAwKzAwMDAsMjAxNS0wMS0xN1QwNTo0MjowMS4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjAzNSwxMi40LDIwMTUtMDEtMDQsb3RoZXJfY2FtcGFpZ24sRWd5cHQKMTQxMCxNWVFHSktPVUlXSEY2MTksTVlRR0pLT1VJV0hGNjE5LXRsd2NzeTc2LDIwMTUtMDEtMTdUMDY6MjM6NTguMDAwMDAwKzAwMDAsMjAxNS0wMS0xN1QwNjoyNDoxMC4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjAyOCwxMi4zLDIwMTUtMDEtMTYsb3JnYW5pYyxJbmRpYQoxNDExLE1ZUUdKS09VSVdIRjYxOSxNWVFHSktPVUlXSEY2MTktdGx3Y3N5NzYsMjAxNS0wMS0xN1QwNjoyMzo1OC4wMDAwMDArMDAwMCwyMDE1LTAxLTE3VDA2OjI5OjA0LjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMDE0LDEyLjMsMjAxNS0wMS0xNixvcmdhbmljLEluZGlhCjE0MTMsUEpPVEJOSFhMRlJRMjY1LFBKT1RCTkhYTEZSUTI2NS11YXFkeTVldCwyMDE1LTAxLTE3VDA2OjM0OjEyLjAwMDAwMCswMDAwLDIwMTUtMDEtMTdUMDY6NDI6MDYuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA4LDIxLjUsMjAxNS0wMS0xNixvcmdhbmljLEF1c3RyaWEKMTQyMCxFS0lIWEJSRkdPQ0Q1NzEsRUtJSFhCUkZHT0NENTcxLW41a2UyYWw3LDIwMTUtMDEtMTdUMDg6MTY6MTYuMDAwMDAwKzAwMDAsMjAxNS0wMS0xN1QwODoxNjo1OC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDgsMzcuMiwyMDE1LTAxLTE3LGFwcGxlLFVuaXRlZCBLaW5nZG9tCjE0MjYsV0JLRllKWENaTlVINTYzLFdCS0ZZSlhDWk5VSDU2My1sbWpudTcxZywyMDE1LTAxLTE3VDA4OjMzOjAwLjAwMDAwMCswMDAwLDIwMTUtMDEtMTdUMDg6NDY6NDIuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA1LDE0LjYsMjAxNS0wMS0xMyxvcmdhbmljLENhbmFkYQoxNDM0LEJGTkxVUklTSlhUSDY0NyxCRk5MVVJJU0pYVEg2NDctcWp1Z3BmMm4sMjAxNS0wMS0xN1QwOTo1ODoxOC4wMDAwMDArMDAwMCwyMDE1LTAxLTE3VDA5OjU5OjA2LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMTgsMjkuOCwyMDE1LTAxLTEwLG9yZ2FuaWMsSW5kaWEKMTQzNSxCRk5MVVJJU0pYVEg2NDcsQkZOTFVSSVNKWFRINjQ3LXFqdWdwZjJuLDIwMTUtMDEtMTdUMDk6NTg6MTguMDAwMDAwKzAwMDAsMjAxNS0wMS0xN1QxMDowNTowMC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDE4LDI5LjgsMjAxNS0wMS0xMCxvcmdhbmljLEluZGlhCjE0MzYsQkZOTFVSSVNKWFRINjQ3LEJGTkxVUklTSlhUSDY0Ny1xanVncGYybiwyMDE1LTAxLTE3VDA5OjU4OjE4LjAwMDAwMCswMDAwLDIwMTUtMDEtMTdUMTA6MTU6NDguMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAyLDI5LjgsMjAxNS0wMS0xMCxvcmdhbmljLEluZGlhCjE0MzgsQkZOTFVSSVNKWFRINjQ3LEJGTkxVUklTSlhUSDY0Ny1xanVncGYybiwyMDE1LTAxLTE3VDA5OjU4OjE4LjAwMDAwMCswMDAwLDIwMTUtMDEtMTdUMTA6MjU6MDYuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAwNiwyOS44LDIwMTUtMDEtMTAsb3JnYW5pYyxJbmRpYQoxNDQ0LFhJQUhCTktFQ0dSTzU5OCxYSUFIQk5LRUNHUk81OTgtcW84cm16aWosMjAxNS0wMS0xN1QxMDo0MzoyOC4wMDAwMDArMDAwMCwyMDE1LTAxLTE3VDEwOjU4OjM0LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMywyOC44LDIwMTUtMDEtMTQsZ29vZ2xlLEVneXB0CjE0NDUsWElBSEJOS0VDR1JPNTk4LFhJQUhCTktFQ0dSTzU5OC1xbzhybXppaiwyMDE1LTAxLTE3VDEwOjQzOjI4LjAwMDAwMCswMDAwLDIwMTUtMDEtMTdUMTE6MDE6MDQuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAxNSwyOC44LDIwMTUtMDEtMTQsZ29vZ2xlLEVneXB0CjE0NDcsWElBSEJOS0VDR1JPNTk4LFhJQUhCTktFQ0dSTzU5OC1xbzhybXppaiwyMDE1LTAxLTE3VDEwOjQzOjI4LjAwMDAwMCswMDAwLDIwMTUtMDEtMTdUMTE6MDg6NTguMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA1LDI4LjgsMjAxNS0wMS0xNCxnb29nbGUsRWd5cHQKMTQ2MSxNVENJV0tPVkFTWVA5MjUsTVRDSVdLT1ZBU1lQOTI1LW51OWR3M2JvLDIwMTUtMDEtMTdUMTI6MDM6MjcuMDAwMDAwKzAwMDAsMjAxNS0wMS0xN1QxMjoyNjowOS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDcsMzAuMCwyMDE1LTAxLTE0LG9yZ2FuaWMsR2VybWFueQoxNDY0LE1UQ0lXS09WQVNZUDkyNSxNVENJV0tPVkFTWVA5MjUtbnU5ZHczYm8sMjAxNS0wMS0xN1QxMjowMzoyNy4wMDAwMDArMDAwMCwyMDE1LTAxLTE3VDEyOjMxOjAzLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMywzMC4wLDIwMTUtMDEtMTQsb3JnYW5pYyxHZXJtYW55CjE0NzYsRUtJSFhCUkZHT0NENTcxLEVLSUhYQlJGR09DRDU3MS02bDFkNXhqcSwyMDE1LTAxLTE3VDEyOjU5OjI0LjAwMDAwMCswMDAwLDIwMTUtMDEtMTdUMTM6MDE6MjQuMDAwMDAwKzAwMDAsYWQsYWRfMTBzZWMsMC4wOSwzMy41LDIwMTUtMDEtMTcsYXBwbGUsVW5pdGVkIEtpbmdkb20KMTQ3NyxFS0lIWEJSRkdPQ0Q1NzEsRUtJSFhCUkZHT0NENTcxLTZsMWQ1eGpxLDIwMTUtMDEtMTdUMTI6NTk6MjQuMDAwMDAwKzAwMDAsMjAxNS0wMS0xN1QxMzowMjo0Mi4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDYsMzMuNSwyMDE1LTAxLTE3LGFwcGxlLFVuaXRlZCBLaW5nZG9tCjE0NzgsRUtJSFhCUkZHT0NENTcxLEVLSUhYQlJGR09DRDU3MS02bDFkNXhqcSwyMDE1LTAxLTE3VDEyOjU5OjI0LjAwMDAwMCswMDAwLDIwMTUtMDEtMTdUMTM6MTk6MTIuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjEsMzMuNSwyMDE1LTAxLTE3LGFwcGxlLFVuaXRlZCBLaW5nZG9tCjE0ODEsVVBGTUxJRUtXSFlYOTY0LFVQRk1MSUVLV0hZWDk2NC0ycW9tOG5leSwyMDE1LTAxLTE3VDE0OjUyOjA5LjAwMDAwMCswMDAwLDIwMTUtMDEtMTdUMTQ6NTc6MDkuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAzLDE4LjAsMjAxNS0wMS0xNixvcmdhbmljLEdlcm1hbnkKMTQ4OSxJQ0JBVVpLR1NRUEYxNDUsSUNCQVVaS0dTUVBGMTQ1LWg5dWtuMWZ4LDIwMTUtMDEtMTdUMTY6MDg6NTcuMDAwMDAwKzAwMDAsMjAxNS0wMS0xN1QxNjozMjo0NS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDM0LDI2LjUsMjAxNS0wMS0wNixnb29nbGUsU291dGggQWZyaWNhCjE0OTcsRkdLWFBOSVJKSENZNjI1LEZHS1hQTklSSkhDWTYyNS1vdnd0amh1cywyMDE1LTAxLTE3VDE3OjAwOjMzLjAwMDAwMCswMDAwLDIwMTUtMDEtMTdUMTc6MzQ6NDUuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA4LDM3LjksMjAxNS0wMS0xNyxjcm9zc3Byb21vLEhvbmcgS29uZwoxNDk5LElDQkFVWktHU1FQRjE0NSxJQ0JBVVpLR1NRUEYxNDUtOGozb3lzdDQsMjAxNS0wMS0xN1QxNzozODoxNy4wMDAwMDArMDAwMCwyMDE1LTAxLTE3VDE3OjQ2OjIzLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMzQsMTUuOCwyMDE1LTAxLTA2LGdvb2dsZSxTb3V0aCBBZnJpY2EKMTUwMixaUFRJSE5TVkZZQVExNDYsWlBUSUhOU1ZGWUFRMTQ2LW45cGw0MjdzLDIwMTUtMDEtMTdUMTg6Mjg6MjUuMDAwMDAwKzAwMDAsMjAxNS0wMS0xN1QxODozNjo0OS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDcyLDE4LjgsMjAxNS0wMS0wNCxmYWNlYm9vayxNZXhpY28KMTUwNSxaTUpMUEdDUklLTkE0NzEsWk1KTFBHQ1JJS05BNDcxLWN1Njd6aDV0LDIwMTUtMDEtMTdUMTk6MTA6MTYuMDAwMDAwKzAwMDAsMjAxNS0wMS0xN1QxOToxMTo0Ni4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjA4LDMyLjAsMjAxNS0wMS0xMCxvcmdhbmljLEVneXB0CjE1MDcsWk1KTFBHQ1JJS05BNDcxLFpNSkxQR0NSSUtOQTQ3MS1jdTY3emg1dCwyMDE1LTAxLTE3VDE5OjEwOjE2LjAwMDAwMCswMDAwLDIwMTUtMDEtMTdUMTk6MzA6MDQuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA1LDMyLjAsMjAxNS0wMS0xMCxvcmdhbmljLEVneXB0CjE1MDksTVRDSVdLT1ZBU1lQOTI1LE1UQ0lXS09WQVNZUDkyNS01d3YzdGEybywyMDE1LTAxLTE3VDE5OjE2OjE5LjAwMDAwMCswMDAwLDIwMTUtMDEtMTdUMTk6Mjg6NDkuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA5LDE2LjIsMjAxNS0wMS0xNCxvcmdhbmljLEdlcm1hbnkKMTUxMCxXQktGWUpYQ1pOVUg1NjMsV0JLRllKWENaTlVINTYzLWNqODRnN3NhLDIwMTUtMDEtMTdUMTk6MTY6NTIuMDAwMDAwKzAwMDAsMjAxNS0wMS0xN1QxOToxNzo0Ni4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDQsMjYuNSwyMDE1LTAxLTEzLG9yZ2FuaWMsQ2FuYWRhCjE1MTIsV0JLRllKWENaTlVINTYzLFdCS0ZZSlhDWk5VSDU2My1jajg0ZzdzYSwyMDE1LTAxLTE3VDE5OjE2OjUyLjAwMDAwMCswMDAwLDIwMTUtMDEtMTdUMTk6MjA6NDAuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA4LDI2LjUsMjAxNS0wMS0xMyxvcmdhbmljLENhbmFkYQoxNTE5LFZMT1NDS1laQkVUSjY4NCxWTE9TQ0tZWkJFVEo2ODQtejR2NnI3d3UsMjAxNS0wMS0xN1QyMTozMjowNy4wMDAwMDArMDAwMCwyMDE1LTAxLTE3VDIxOjQ3OjE5LjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMSw0MC4yLDIwMTUtMDEtMTcsb3JnYW5pYyxGcmFuY2UKMTUyNSxKVkJaQ1BLWEhGTVU0OTEsSlZCWkNQS1hIRk1VNDkxLXd2dDQxa3hjLDIwMTUtMDEtMTdUMjI6NDE6MjkuMDAwMDAwKzAwMDAsMjAxNS0wMS0xN1QyMzowNjoyMy4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDUsMzQuOSwyMDE1LTAxLTA3LG9yZ2FuaWMsVW5pdGVkIFN0YXRlcwoxNTI2LEpWQlpDUEtYSEZNVTQ5MSxKVkJaQ1BLWEhGTVU0OTEtd3Z0NDFreGMsMjAxNS0wMS0xN1QyMjo0MToyOS4wMDAwMDArMDAwMCwyMDE1LTAxLTE3VDIzOjA5OjA1LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wOCwzNC45LDIwMTUtMDEtMDcsb3JnYW5pYyxVbml0ZWQgU3RhdGVzCjE1MjksUFpCTlJLU01VTEhYMjEzLFBaQk5SS1NNVUxIWDIxMy1yaGNhbXp0ZiwyMDE1LTAxLTE3VDIzOjA1OjE2LjAwMDAwMCswMDAwLDIwMTUtMDEtMTdUMjM6MDk6MjIuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAxOCwxNi4xLDIwMTUtMDEtMDcsb3JnYW5pYyxJbmRpYQoxNTMwLFBaQk5SS1NNVUxIWDIxMyxQWkJOUktTTVVMSFgyMTMtcmhjYW16dGYsMjAxNS0wMS0xN1QyMzowNToxNi4wMDAwMDArMDAwMCwyMDE1LTAxLTE3VDIzOjExOjM0LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMDgsMTYuMSwyMDE1LTAxLTA3LG9yZ2FuaWMsSW5kaWEKMTUzMyxQWkJOUktTTVVMSFgyMTMsUFpCTlJLU01VTEhYMjEzLXJoY2FtenRmLDIwMTUtMDEtMTdUMjM6MDU6MTYuMDAwMDAwKzAwMDAsMjAxNS0wMS0xN1QyMzoxOTo1Mi4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjAxNiwxNi4xLDIwMTUtMDEtMDcsb3JnYW5pYyxJbmRpYQoxNTM0LFhJQUhCTktFQ0dSTzU5OCxYSUFIQk5LRUNHUk81OTgtaWN5YTFtN3QsMjAxNS0wMS0xN1QyMzozMTo1Ny4wMDAwMDArMDAwMCwyMDE1LTAxLTE3VDIzOjM4OjM5LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNDUsMTUuMywyMDE1LTAxLTE0LGdvb2dsZSxFZ3lwdAoxNTM1LFhJQUhCTktFQ0dSTzU5OCxYSUFIQk5LRUNHUk81OTgtaWN5YTFtN3QsMjAxNS0wMS0xN1QyMzozMTo1Ny4wMDAwMDArMDAwMCwyMDE1LTAxLTE3VDIzOjQ2OjE1LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMjUsMTUuMywyMDE1LTAxLTE0LGdvb2dsZSxFZ3lwdAoxNTM5LEdBWUlCTFVDT0VESjczMixHQVlJQkxVQ09FREo3MzItMXJwaHFkd3osMjAxNS0wMS0xOFQwMDozNDoyOC4wMDAwMDArMDAwMCwyMDE1LTAxLTE4VDAwOjUyOjM0LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4xLDI4LjUsMjAxNS0wMS0wMyxvcmdhbmljLFVuaXRlZCBTdGF0ZXMKMTU0OCxQSk9UQk5IWExGUlEyNjUsUEpPVEJOSFhMRlJRMjY1LTk1dHN5bGkzLDIwMTUtMDEtMThUMDI6MDI6MzIuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOFQwMjo0MToxNC4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjA3LDQwLjcsMjAxNS0wMS0xNixvcmdhbmljLEF1c3RyaWEKMTU1MCxXQktGWUpYQ1pOVUg1NjMsV0JLRllKWENaTlVINTYzLXEyZjlnaXlkLDIwMTUtMDEtMThUMDI6NTQ6NTAuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOFQwMjo1OTozOC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDYsMTYuMiwyMDE1LTAxLTEzLG9yZ2FuaWMsQ2FuYWRhCjE1NTMsV0JLRllKWENaTlVINTYzLFdCS0ZZSlhDWk5VSDU2My1xMmY5Z2l5ZCwyMDE1LTAxLTE4VDAyOjU0OjUwLjAwMDAwMCswMDAwLDIwMTUtMDEtMThUMDM6MDM6MDIuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA1LDE2LjIsMjAxNS0wMS0xMyxvcmdhbmljLENhbmFkYQoxNTU1LFdFUEtZTlJYREZVVDU3MixXRVBLWU5SWERGVVQ1NzItbTVqd3ZpdHMsMjAxNS0wMS0xOFQwMzowMzo1OS4wMDAwMDArMDAwMCwyMDE1LTAxLTE4VDAzOjA3OjM1LjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMDg0LDMxLjAsMjAxNS0wMS0xMyxjcm9zc3Byb21vLENoaW5hCjE1NTcsV0VQS1lOUlhERlVUNTcyLFdFUEtZTlJYREZVVDU3Mi1tNWp3dml0cywyMDE1LTAxLTE4VDAzOjAzOjU5LjAwMDAwMCswMDAwLDIwMTUtMDEtMThUMDM6MTY6MTcuMDAwMDAwKzAwMDAsYWQsYWRfMTBzZWMsMC4wNzgsMzEuMCwyMDE1LTAxLTEzLGNyb3NzcHJvbW8sQ2hpbmEKMTU1OCxXRVBLWU5SWERGVVQ1NzIsV0VQS1lOUlhERlVUNTcyLW01and2aXRzLDIwMTUtMDEtMThUMDM6MDM6NTkuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOFQwMzoxNjo0MS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDcyLDMxLjAsMjAxNS0wMS0xMyxjcm9zc3Byb21vLENoaW5hCjE1NjEsS0daQ09KSFBGVFFWNzUzLEtHWkNPSkhQRlRRVjc1My1kYnFqM2s4cCwyMDE1LTAxLTE4VDAzOjQxOjU2LjAwMDAwMCswMDAwLDIwMTUtMDEtMThUMDM6NTA6MzguMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA0LDIzLjIsMjAxNS0wMS0xMSxvcmdhbmljLFVuaXRlZCBTdGF0ZXMKMTU2NCxLR1pDT0pIUEZUUVY3NTMsS0daQ09KSFBGVFFWNzUzLWRicWozazhwLDIwMTUtMDEtMThUMDM6NDE6NTYuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOFQwNDowMzoyMC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDcsMjMuMiwyMDE1LTAxLTExLG9yZ2FuaWMsVW5pdGVkIFN0YXRlcwoxNTY5LFBKT1RCTkhYTEZSUTI2NSxQSk9UQk5IWExGUlEyNjUtbWlwOHZvMmIsMjAxNS0wMS0xOFQwNDoyNjo0NS4wMDAwMDArMDAwMCwyMDE1LTAxLTE4VDA0OjU0OjI3LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wOCwzNi40LDIwMTUtMDEtMTYsb3JnYW5pYyxBdXN0cmlhCjE1NzIsR0pDWE5UV0VCSVBRMzY5LEdKQ1hOVFdFQklQUTM2OS1hY3Mzd2ZuaywyMDE1LTAxLTE4VDA1OjAwOjAzLjAwMDAwMCswMDAwLDIwMTUtMDEtMThUMDU6MDQ6MzMuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA5LDMzLjMsMjAxNS0wMS0xNCxvcmdhbmljLFVuaXRlZCBTdGF0ZXMKMTU4MixOUE1KSVlIRVRHS1cyOTcsTlBNSklZSEVUR0tXMjk3LXRuaTc4dTllLDIwMTUtMDEtMThUMDU6MjQ6MTguMDAwMDAwKzAwMDAsMjAxNS0wMS0xOFQwNTozODowNi4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDIsMTQuMywyMDE1LTAxLTE4LGdvb2dsZSxQaGlsaXBwaW5lcwoxNTkxLFpQVElITlNWRllBUTE0NixaUFRJSE5TVkZZQVExNDYtZmwyOG52Z2MsMjAxNS0wMS0xOFQwNjo0NjowMS4wMDAwMDArMDAwMCwyMDE1LTAxLTE4VDA2OjU3OjEzLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMzYsMjMuOSwyMDE1LTAxLTA0LGZhY2Vib29rLE1leGljbwoxNTkyLFpQVElITlNWRllBUTE0NixaUFRJSE5TVkZZQVExNDYtZmwyOG52Z2MsMjAxNS0wMS0xOFQwNjo0NjowMS4wMDAwMDArMDAwMCwyMDE1LTAxLTE4VDA3OjAwOjU1LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNDgsMjMuOSwyMDE1LTAxLTA0LGZhY2Vib29rLE1leGljbwoxNTk1LEtJTFdaWUhSU0pFRzMxNixLSUxXWllIUlNKRUczMTYteTc4MjRlbmQsMjAxNS0wMS0xOFQwODozODo0Mi4wMDAwMDArMDAwMCwyMDE1LTAxLTE4VDA4OjM5OjEyLjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMDk5LDI2LjUsMjAxNS0wMS0wNCxvcmdhbmljLERlbm1hcmsKMTU5OSxSTU9TV0hKR0VMQ0k2NzUsUk1PU1dISkdFTENJNjc1LTh2ZzloNmxtLDIwMTUtMDEtMThUMDg6NTY6MTguMDAwMDAwKzAwMDAsMjAxNS0wMS0xOFQwODo1Njo1NC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDksMzEuOSwyMDE1LTAxLTEwLG90aGVyX2NhbXBhaWduLEZyYW5jZQoxNjA0LERMVEZWUVdZSVhSSjU4OSxETFRGVlFXWUlYUko1ODktNmdqaHl2ZDcsMjAxNS0wMS0xOFQwOTowMDozNi4wMDAwMDArMDAwMCwyMDE1LTAxLTE4VDA5OjEzOjI0LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNzcsMzcuNSwyMDE1LTAxLTEzLG9yZ2FuaWMsU291dGggQWZyaWNhCjE2MDYsRExURlZRV1lJWFJKNTg5LERMVEZWUVdZSVhSSjU4OS02Z2poeXZkNywyMDE1LTAxLTE4VDA5OjAwOjM2LjAwMDAwMCswMDAwLDIwMTUtMDEtMThUMDk6Mzc6MDAuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA3NywzNy41LDIwMTUtMDEtMTMsb3JnYW5pYyxTb3V0aCBBZnJpY2EKMTYwOCxKWUVCQ0xOVVpUWFE0NTcsSllFQkNMTlVaVFhRNDU3LWo3c252bzhpLDIwMTUtMDEtMThUMDk6MTM6MDIuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOFQwOToxOTowOC4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjA3LDE4LjgsMjAxNS0wMS0wNCxvdGhlcl9jYW1wYWlnbixFZ3lwdAoxNjA5LEpZRUJDTE5VWlRYUTQ1NyxKWUVCQ0xOVVpUWFE0NTctajdzbnZvOGksMjAxNS0wMS0xOFQwOToxMzowMi4wMDAwMDArMDAwMCwyMDE1LTAxLTE4VDA5OjIzOjU2LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNDUsMTguOCwyMDE1LTAxLTA0LG90aGVyX2NhbXBhaWduLEVneXB0CjE2MTAsSllFQkNMTlVaVFhRNDU3LEpZRUJDTE5VWlRYUTQ1Ny1qN3Nudm84aSwyMDE1LTAxLTE4VDA5OjEzOjAyLjAwMDAwMCswMDAwLDIwMTUtMDEtMThUMDk6Mjg6MzIuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAzNSwxOC44LDIwMTUtMDEtMDQsb3RoZXJfY2FtcGFpZ24sRWd5cHQKMTYyNSxNVENJV0tPVkFTWVA5MjUsTVRDSVdLT1ZBU1lQOTI1LXBjbjhrdDJtLDIwMTUtMDEtMThUMTE6MTQ6MjkuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOFQxMToyMDoxMS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDgsMjUuOSwyMDE1LTAxLTE0LG9yZ2FuaWMsR2VybWFueQoxNjI4LE1UQ0lXS09WQVNZUDkyNSxNVENJV0tPVkFTWVA5MjUtcGNuOGt0Mm0sMjAxNS0wMS0xOFQxMToxNDoyOS4wMDAwMDArMDAwMCwyMDE1LTAxLTE4VDExOjM2OjIzLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNiwyNS45LDIwMTUtMDEtMTQsb3JnYW5pYyxHZXJtYW55CjE2MzQsWkdFVlFKU0tGSUJYMzk4LFpHRVZRSlNLRklCWDM5OC0ycndoMXB2NiwyMDE1LTAxLTE4VDEzOjMzOjMxLjAwMDAwMCswMDAwLDIwMTUtMDEtMThUMTM6NTI6MDEuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA2MywzMC43LDIwMTUtMDEtMTcsb3JnYW5pYyxTb3V0aCBLb3JlYQoxNjM1LFpHRVZRSlNLRklCWDM5OCxaR0VWUUpTS0ZJQlgzOTgtMnJ3aDFwdjYsMjAxNS0wMS0xOFQxMzozMzozMS4wMDAwMDArMDAwMCwyMDE1LTAxLTE4VDEzOjU4OjU1LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMjgsMzAuNywyMDE1LTAxLTE3LG9yZ2FuaWMsU291dGggS29yZWEKMTY0MSxaTUpMUEdDUklLTkE0NzEsWk1KTFBHQ1JJS05BNDcxLW56anViZmdyLDIwMTUtMDEtMThUMTM6NTU6MTAuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOFQxMzo1OToyOC4wMDAwMDArMDAwMCxhZCxhZF8xNXNlYywwLjA4NCw2LjIsMjAxNS0wMS0xMCxvcmdhbmljLEVneXB0CjE2NDQsRkdLWFBOSVJKSENZNjI1LEZHS1hQTklSSkhDWTYyNS1vZ3VmcmFpaiwyMDE1LTAxLTE4VDEzOjU5OjM0LjAwMDAwMCswMDAwLDIwMTUtMDEtMThUMTQ6MTE6NDAuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAzNCwzMi4xLDIwMTUtMDEtMTcsY3Jvc3Nwcm9tbyxIb25nIEtvbmcKMTY1MSxHSkNYTlRXRUJJUFEzNjksR0pDWE5UV0VCSVBRMzY5LXlibmFjcTM0LDIwMTUtMDEtMThUMTQ6MzQ6MDQuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOFQxNDo1ODoyMi4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDMsMjkuNiwyMDE1LTAxLTE0LG9yZ2FuaWMsVW5pdGVkIFN0YXRlcwoxNjU1LFJZWkhBSkVYTUJJRjcyNCxSWVpIQUpFWE1CSUY3MjQtcTFqOGNmb3UsMjAxNS0wMS0xOFQxNToxNzozNy4wMDAwMDArMDAwMCwyMDE1LTAxLTE4VDE1OjI5OjQ5LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMzYsMTUuMiwyMDE1LTAxLTE1LGdvb2dsZSxQb3J0dWdhbAoxNjU2LFJZWkhBSkVYTUJJRjcyNCxSWVpIQUpFWE1CSUY3MjQtcTFqOGNmb3UsMjAxNS0wMS0xOFQxNToxNzozNy4wMDAwMDArMDAwMCwyMDE1LTAxLTE4VDE1OjMyOjM3LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wODEsMTUuMiwyMDE1LTAxLTE1LGdvb2dsZSxQb3J0dWdhbAoxNjU5LEVLSUhYQlJGR09DRDU3MSxFS0lIWEJSRkdPQ0Q1NzEtZHZxZ3htNTYsMjAxNS0wMS0xOFQxNToyOToyMi4wMDAwMDArMDAwMCwyMDE1LTAxLTE4VDE1OjM2OjE2LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNSwzNS45LDIwMTUtMDEtMTcsYXBwbGUsVW5pdGVkIEtpbmdkb20KMTY2NCxQTFFFU0JOR1VES0oxNTQsUExRRVNCTkdVREtKMTU0LTNscTZpN29mLDIwMTUtMDEtMThUMTU6NDY6NDEuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOFQxNTo1MToxMS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDQ4LDM1LjIsMjAxNS0wMS0xMixmYWNlYm9vayxKYXBhbgoxNjY4LEhEU0FNUFRPTEJXQzQzOCxIRFNBTVBUT0xCV0M0MzgtZWJhNjI5eHQsMjAxNS0wMS0xOFQxNzozMDoyNi4wMDAwMDArMDAwMCwyMDE1LTAxLTE4VDE3OjM1OjUwLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wODQsMTYuNiwyMDE1LTAxLTE0LG9yZ2FuaWMsU3dpdHplcmxhbmQKMTY3OCxNVENJV0tPVkFTWVA5MjUsTVRDSVdLT1ZBU1lQOTI1LW45Z2xiaDI3LDIwMTUtMDEtMThUMjA6MTA6NDIuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOFQyMDoyMDoyNC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMSwyMC42LDIwMTUtMDEtMTQsb3JnYW5pYyxHZXJtYW55CjE2NzksTVRDSVdLT1ZBU1lQOTI1LE1UQ0lXS09WQVNZUDkyNS1uOWdsYmgyNywyMDE1LTAxLTE4VDIwOjEwOjQyLjAwMDAwMCswMDAwLDIwMTUtMDEtMThUMjA6MzA6MDYuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA5LDIwLjYsMjAxNS0wMS0xNCxvcmdhbmljLEdlcm1hbnkKMTY4MSxNVENJV0tPVkFTWVA5MjUsTVRDSVdLT1ZBU1lQOTI1LW45Z2xiaDI3LDIwMTUtMDEtMThUMjA6MTA6NDIuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOFQyMDozMDozMC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDIsMjAuNiwyMDE1LTAxLTE0LG9yZ2FuaWMsR2VybWFueQoxNjg2LFhJQUhCTktFQ0dSTzU5OCxYSUFIQk5LRUNHUk81OTgtZXlndHdwbTcsMjAxNS0wMS0xOFQyMjoxNzo1NC4wMDAwMDArMDAwMCwyMDE1LTAxLTE4VDIyOjIzOjM2LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNDUsMzYuMiwyMDE1LTAxLTE0LGdvb2dsZSxFZ3lwdAoxNjg5LE1UQ0lXS09WQVNZUDkyNSxNVENJV0tPVkFTWVA5MjUtOHJwemQ2bXcsMjAxNS0wMS0xOFQyMzozNDo0MS4wMDAwMDArMDAwMCwyMDE1LTAxLTE4VDIzOjM0OjUzLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wOCwyOS42LDIwMTUtMDEtMTQsb3JnYW5pYyxHZXJtYW55CjE2OTEsTVRDSVdLT1ZBU1lQOTI1LE1UQ0lXS09WQVNZUDkyNS04cnB6ZDZtdywyMDE1LTAxLTE4VDIzOjM0OjQxLjAwMDAwMCswMDAwLDIwMTUtMDEtMTlUMDA6MDM6NDcuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAyLDI5LjYsMjAxNS0wMS0xNCxvcmdhbmljLEdlcm1hbnkKMTcwMCxRRFVaSklFVENBR1c2NTQsUURVWkpJRVRDQUdXNjU0LWZrNnhtOXV6LDIwMTUtMDEtMThUMjM6NDk6MDcuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOVQwMDowOTowMS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDQ4LDIxLjcsMjAxNS0wMS0wNyxmYWNlYm9vayxTd2l0emVybGFuZAoxNzA1LFdFUEtZTlJYREZVVDU3MixXRVBLWU5SWERGVVQ1NzItajNhdnVsNzUsMjAxNS0wMS0xOVQwMDozNzoyNy4wMDAwMDArMDAwMCwyMDE1LTAxLTE5VDAwOjQxOjAzLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMTIsMjkuOSwyMDE1LTAxLTEzLGNyb3NzcHJvbW8sQ2hpbmEKMTcwNixXRVBLWU5SWERGVVQ1NzIsV0VQS1lOUlhERlVUNTcyLWozYXZ1bDc1LDIwMTUtMDEtMTlUMDA6Mzc6MjcuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOVQwMDo0Mjo0NS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDEyLDI5LjksMjAxNS0wMS0xMyxjcm9zc3Byb21vLENoaW5hCjE3MDgsV0VQS1lOUlhERlVUNTcyLFdFUEtZTlJYREZVVDU3Mi1qM2F2dWw3NSwyMDE1LTAxLTE5VDAwOjM3OjI3LjAwMDAwMCswMDAwLDIwMTUtMDEtMTlUMDA6NDk6MDkuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA0OCwyOS45LDIwMTUtMDEtMTMsY3Jvc3Nwcm9tbyxDaGluYQoxNzEwLFhJQUhCTktFQ0dSTzU5OCxYSUFIQk5LRUNHUk81OTgteWlsc3hmNXAsMjAxNS0wMS0xOVQwMDo1MjozMi4wMDAwMDArMDAwMCwyMDE1LTAxLTE5VDAwOjU2OjAyLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNSwzMC40LDIwMTUtMDEtMTQsZ29vZ2xlLEVneXB0CjE3MTEsWElBSEJOS0VDR1JPNTk4LFhJQUhCTktFQ0dSTzU5OC15aWxzeGY1cCwyMDE1LTAxLTE5VDAwOjUyOjMyLjAwMDAwMCswMDAwLDIwMTUtMDEtMTlUMDE6MDI6MjAuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA0LDMwLjQsMjAxNS0wMS0xNCxnb29nbGUsRWd5cHQKMTcxMixYSUFIQk5LRUNHUk81OTgsWElBSEJOS0VDR1JPNTk4LXlpbHN4ZjVwLDIwMTUtMDEtMTlUMDA6NTI6MzIuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOVQwMTowNDowOC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDE1LDMwLjQsMjAxNS0wMS0xNCxnb29nbGUsRWd5cHQKMTcxMyxYSUFIQk5LRUNHUk81OTgsWElBSEJOS0VDR1JPNTk4LXlpbHN4ZjVwLDIwMTUtMDEtMTlUMDA6NTI6MzIuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOVQwMTowNTowOC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDE1LDMwLjQsMjAxNS0wMS0xNCxnb29nbGUsRWd5cHQKMTcxNixRSkdWT0JMQVRJSFc0NTcsUUpHVk9CTEFUSUhXNDU3LWNtZWxhNHo4LDIwMTUtMDEtMTlUMDE6MTE6NDEuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOVQwMToyMToxMS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDQ0LDQwLjksMjAxNS0wMS0wMixvdGhlcl9jYW1wYWlnbixTd2VkZW4KMTcxOSxHQVlJQkxVQ09FREo3MzIsR0FZSUJMVUNPRURKNzMyLTEzOHo3Z3ByLDIwMTUtMDEtMTlUMDE6Mjc6NDQuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOVQwMTozMDo1Ni4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDcsMzAuOCwyMDE1LTAxLTAzLG9yZ2FuaWMsVW5pdGVkIFN0YXRlcwoxNzIwLEdBWUlCTFVDT0VESjczMixHQVlJQkxVQ09FREo3MzItMTM4ejdncHIsMjAxNS0wMS0xOVQwMToyNzo0NC4wMDAwMDArMDAwMCwyMDE1LTAxLTE5VDAxOjMxOjA4LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMywzMC44LDIwMTUtMDEtMDMsb3JnYW5pYyxVbml0ZWQgU3RhdGVzCjE3MjYsWElBSEJOS0VDR1JPNTk4LFhJQUhCTktFQ0dSTzU5OC0zN2Vvc3poOCwyMDE1LTAxLTE5VDAzOjE3OjAzLjAwMDAwMCswMDAwLDIwMTUtMDEtMTlUMDM6MjU6NDUuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA0NSwzOS45LDIwMTUtMDEtMTQsZ29vZ2xlLEVneXB0CjE3MjgsWElBSEJOS0VDR1JPNTk4LFhJQUhCTktFQ0dSTzU5OC0zN2Vvc3poOCwyMDE1LTAxLTE5VDAzOjE3OjAzLjAwMDAwMCswMDAwLDIwMTUtMDEtMTlUMDM6Mjk6MzMuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAzNSwzOS45LDIwMTUtMDEtMTQsZ29vZ2xlLEVneXB0CjE3MzcsTVRDSVdLT1ZBU1lQOTI1LE1UQ0lXS09WQVNZUDkyNS1lcWJjdnlndCwyMDE1LTAxLTE5VDA0OjM4OjU0LjAwMDAwMCswMDAwLDIwMTUtMDEtMTlUMDQ6Mzk6MTIuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAyLDkuNCwyMDE1LTAxLTE0LG9yZ2FuaWMsR2VybWFueQoxNzQyLEZHS1hQTklSSkhDWTYyNSxGR0tYUE5JUkpIQ1k2MjUtMmQxOG80aWosMjAxNS0wMS0xOVQwNTowMDo1Ni4wMDAwMDArMDAwMCwyMDE1LTAxLTE5VDA1OjEwOjMyLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNDIsMTEuMywyMDE1LTAxLTE3LGNyb3NzcHJvbW8sSG9uZyBLb25nCg==" download="extract_0002.csv"><button style="background-color: #67C2DC; color: #FFFFFF; border: none; padding: 5px; font-weight: bold; cursor: pointer; border-radius: 4px;">CSV</button></a></td>
  </tr>
  <tr>
    <td style="height: 40px; background-color: #FF3300; color: transparent;font-size: 0px;" class="gt_row gt_left">#FF3300</td>
    <td style="height: 40px; color: #666666;font-size: 13px;font-weight: bold;" class="gt_row gt_right">3</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_left">
        <div style="margin: 0; padding: 0; display: inline-block; height: 30px; vertical-align: middle; width: 16%;">
            <!--?xml version="1.0" encoding="UTF-8"?--><!--?xml version="1.0" encoding="UTF-8"?-->
<svg width="30px" height="30px" viewbox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" style="background: #FFFFFF;">
    <title>col_vals_gt</title>
    <g id="Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="col_vals_gt" transform="translate(1.500000, 1.500000)" fill-rule="nonzero">
            <path d="M55,0 C57.4852813,0 59.7352813,1.00735931 61.363961,2.63603897 C62.9926407,4.26471863 64,6.51471863 64,9 L64,9 L64,64 L9,64 C6.51471862,64 4.26471862,62.9926407 2.63603897,61.363961 C1.00735931,59.7352814 0,57.4852814 0,55 L0,55 L0,9 C0,6.51471863 1.00735931,4.26471863 2.63603897,2.63603897 C4.26471862,1.00735931 6.51471862,0 9,0 L9,0 L55,0 Z" id="rectangle" stroke="#000000" stroke-width="2" fill="#FFFFFF"></path>
            <path d="M48.7619048,10 L15.2380953,10 C12.3466667,10 10,12.3466667 10,15.2380952 L10,48.7619048 C10,51.6533333 12.3466667,54 15.2380953,54 L48.7619048,54 C51.6533333,54 54,51.6533333 54,48.7619048 L54,15.2380952 C54,12.3466667 51.6533333,10 48.7619048,10 Z M25.2638095,44.3828571 L24.0695238,42.6647619 L39.5847619,32 L24.0695238,21.3352381 L25.2638095,19.6171429 L43.2828572,32 L25.2638095,44.3828571 Z" id="greater_than" fill="#000000"></path>
        </g>
    </g>
</svg>
        </div>
        <div style="font-family: 'IBM Plex Mono', monospace, courier; color: black; font-size: 11px; display: inline-block; vertical-align: middle;">
            <div>col_vals_gt()</div>
        </div>
        <div style="font-size: 9px; font-family: 'IBM Plex Sans'; text-wrap: balance; margin-top: 3px;"><p style="font-size: inherit; margin: 0;">Expect that values in <code>session_duration</code> should be &gt; <code>15</code>.</p>
</div>
        </td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">session_duration</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">15</td>
    <td style="height: 40px; background-color: #FCFCFC; border-left: 1px solid #D3D3D3;" class="gt_row gt_center"><svg width="25px" height="25px" viewbox="0 0 25 25" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" style="vertical-align: middle;">
    <g id="unchanged" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="unchanged" transform="translate(0.500000, 0.570147)">
            <rect id="Rectangle" x="0.125132506" y="0" width="23.749735" height="23.7894737"></rect>
            <path d="M5.80375046,8.18194736 C3.77191832,8.18194736 2.11875046,9.83495328 2.11875046,11.8669474 C2.11875046,13.8989414 3.77191832,15.5519474 5.80375046,15.5519474 C7.8355826,15.5519474 9.48875046,13.8989414 9.48875046,11.8669474 C9.48875046,9.83495328 7.83552863,8.18194736 5.80375046,8.18194736 Z M5.80375046,14.814915 C4.17821997,14.814915 2.85578285,13.4924778 2.85578285,11.8669474 C2.85578285,10.2414169 4.17821997,8.91897975 5.80375046,8.91897975 C7.42928095,8.91897975 8.75171807,10.2414169 8.75171807,11.8669474 C8.75171807,13.4924778 7.42928095,14.814915 5.80375046,14.814915 Z" id="Shape" fill="#000000" fill-rule="nonzero"></path>
            <path d="M13.9638189,8.699335 C13.9364621,8.70430925 13.9091059,8.71176968 13.8842359,8.71923074 C13.7822704,8.73663967 13.6877654,8.77643115 13.6056956,8.83860518 L10.2433156,11.3852598 C10.0766886,11.5046343 9.97720993,11.6986181 9.97720993,11.9025491 C9.97720993,12.1064807 10.0766886,12.3004639 10.2433156,12.4198383 L13.6056956,14.966493 C13.891697,15.1803725 14.2970729,15.1231721 14.5109517,14.8371707 C14.7248313,14.5511692 14.6676309,14.145794 14.3816294,13.9319145 L12.5313257,12.5392127 L21.8812495,12.5392127 L21.8812495,11.2658854 L12.5313257,11.2658854 L14.3816294,9.87318364 C14.6377872,9.71650453 14.7497006,9.40066014 14.6477351,9.11714553 C14.5482564,8.83363156 14.262255,8.65954352 13.9638189,8.699335 Z" id="arrow" fill="#000000" transform="translate(15.929230, 11.894737) rotate(-180.000000) translate(-15.929230, -11.894737) "></path>
        </g>
    </g>
</svg></td>
    <td style="height: 40px; background-color: #FCFCFC; border-right: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color:#4CA64C;">✓</span></td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_right">2000</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5;" class="gt_row gt_right">1675<br>0.84</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5;" class="gt_row gt_right">325<br>0.16</td>
    <td style="height: 40px; background-color: #FCFCFC; border-left: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color: #AAAAAA;">●</span></td>
    <td style="height: 40px; background-color: #FCFCFC;" class="gt_row gt_center"><span style="color: #EBBC14;">●</span></td>
    <td style="height: 40px; background-color: #FCFCFC; border-right: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color: #FF3300;">●</span></td>
    <td style="height: 40px;" class="gt_row gt_center"><a href="data:text/csv;base64,X3Jvd19udW1fLHBsYXllcl9pZCxzZXNzaW9uX2lkLHNlc3Npb25fc3RhcnQsdGltZSxpdGVtX3R5cGUsaXRlbV9uYW1lLGl0ZW1fcmV2ZW51ZSxzZXNzaW9uX2R1cmF0aW9uLHN0YXJ0X2RheSxhY3F1aXNpdGlvbixjb3VudHJ5CjE1LENQWlZNR1dRU0lPSDEzMixDUFpWTUdXUVNJT0gxMzItZnlzOXg2MnYsMjAxNS0wMS0wMVQxNTo1MjoyNC4wMDAwMDArMDAwMCwyMDE1LTAxLTAxVDE1OjU5OjEyLjAwMDAwMCswMDAwLGlhcCxnb2xkMiwxLjU5LDEzLjgsMjAxNS0wMS0wMSxjcm9zc3Byb21vLFNvdXRoIEtvcmVhCjE2LENQWlZNR1dRU0lPSDEzMixDUFpWTUdXUVNJT0gxMzItZnlzOXg2MnYsMjAxNS0wMS0wMVQxNTo1MjoyNC4wMDAwMDArMDAwMCwyMDE1LTAxLTAxVDE2OjA2OjEyLjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMDc3LDEzLjgsMjAxNS0wMS0wMSxjcm9zc3Byb21vLFNvdXRoIEtvcmVhCjE3LEZYV1VPUkdZTkpBRTI3MSxGWFdVT1JHWU5KQUUyNzEtN3djZGVhaXAsMjAxNS0wMS0wMVQyMjoxNzoyNy4wMDAwMDArMDAwMCwyMDE1LTAxLTAxVDIyOjE5OjAzLjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMTUsMTMuMSwyMDE1LTAxLTAxLG9yZ2FuaWMsQ2FuYWRhCjE4LEZYV1VPUkdZTkpBRTI3MSxGWFdVT1JHWU5KQUUyNzEtN3djZGVhaXAsMjAxNS0wMS0wMVQyMjoxNzoyNy4wMDAwMDArMDAwMCwyMDE1LTAxLTAxVDIyOjIyOjU3LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wOCwxMy4xLDIwMTUtMDEtMDEsb3JnYW5pYyxDYW5hZGEKMTksRlhXVU9SR1lOSkFFMjcxLEZYV1VPUkdZTkpBRTI3MS03d2NkZWFpcCwyMDE1LTAxLTAxVDIyOjE3OjI3LjAwMDAwMCswMDAwLDIwMTUtMDEtMDFUMjI6Mjc6NTEuMDAwMDAwKzAwMDAsaWFwLGdlbXM1LDkwLjk5LDEzLjEsMjAxNS0wMS0wMSxvcmdhbmljLENhbmFkYQo1OSxMU0dOQURKRkVLWUI5NTEsTFNHTkFESkZFS1lCOTUxLTFicmY1aGpjLDIwMTUtMDEtMDNUMDA6MDY6MzMuMDAwMDAwKzAwMDAsMjAxNS0wMS0wM1QwMDowOTowMy4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjE0Nyw1LjEsMjAxNS0wMS0wMyxvcmdhbmljLEhvbmcgS29uZwo2MCxDUFpWTUdXUVNJT0gxMzIsQ1BaVk1HV1FTSU9IMTMyLXJtMTM3YzhxLDIwMTUtMDEtMDNUMDA6NDg6MjYuMDAwMDAwKzAwMDAsMjAxNS0wMS0wM1QwMDo0ODozMi4wMDAwMDArMDAwMCxhZCxhZF8xNXNlYywwLjE1LDYuMywyMDE1LTAxLTAxLGNyb3NzcHJvbW8sU291dGggS29yZWEKNjQsR0FZSUJMVUNPRURKNzMyLEdBWUlCTFVDT0VESjczMi1jZHBsMjMxeiwyMDE1LTAxLTAzVDAzOjA2OjUyLjAwMDAwMCswMDAwLDIwMTUtMDEtMDNUMDM6MTA6MzQuMDAwMDAwKzAwMDAsYWQsYWRfMTBzZWMsMC4xNCwxMy41LDIwMTUtMDEtMDMsb3JnYW5pYyxVbml0ZWQgU3RhdGVzCjY1LEdBWUlCTFVDT0VESjczMixHQVlJQkxVQ09FREo3MzItY2RwbDIzMXosMjAxNS0wMS0wM1QwMzowNjo1Mi4wMDAwMDArMDAwMCwyMDE1LTAxLTAzVDAzOjE1OjI4LjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMTcsMTMuNSwyMDE1LTAxLTAzLG9yZ2FuaWMsVW5pdGVkIFN0YXRlcwo3MCxFQ1BBTk9JWExaSEY4OTYsRUNQQU5PSVhMWkhGODk2LWVvYndnbDRuLDIwMTUtMDEtMDNUMDY6MTE6MTAuMDAwMDAwKzAwMDAsMjAxNS0wMS0wM1QwNjoxNjoyOC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDcsMTAuNiwyMDE1LTAxLTAxLGdvb2dsZSxHZXJtYW55CjcxLEZLUkNIRUxZVFBCUTYzMSxGS1JDSEVMWVRQQlE2MzEtdTdoazJ3ZnAsMjAxNS0wMS0wM1QxMzozOTowMi4wMDAwMDArMDAwMCwyMDE1LTAxLTAzVDEzOjQzOjU2LjAwMDAwMCswMDAwLGlhcCxnb2xkMiwwLjc5LDYuOSwyMDE1LTAxLTAzLG9yZ2FuaWMsTWV4aWNvCjcyLFFKR1ZPQkxBVElIVzQ1NyxRSkdWT0JMQVRJSFc0NTcteXp2NHBkYXcsMjAxNS0wMS0wM1QxNDozMDoxNy4wMDAwMDArMDAwMCwyMDE1LTAxLTAzVDE0OjM0OjU5LjAwMDAwMCswMDAwLGlhcCxnZW1zMiw5Ljk5LDEyLjAsMjAxNS0wMS0wMixvdGhlcl9jYW1wYWlnbixTd2VkZW4KNzMsUUpHVk9CTEFUSUhXNDU3LFFKR1ZPQkxBVElIVzQ1Ny15enY0cGRhdywyMDE1LTAxLTAzVDE0OjMwOjE3LjAwMDAwMCswMDAwLDIwMTUtMDEtMDNUMTQ6MzU6NTkuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAzMywxMi4wLDIwMTUtMDEtMDIsb3RoZXJfY2FtcGFpZ24sU3dlZGVuCjc0LENQWlZNR1dRU0lPSDEzMixDUFpWTUdXUVNJT0gxMzItbHNxMWp2ZWYsMjAxNS0wMS0wM1QxODo0MzoxOC4wMDAwMDArMDAwMCwyMDE1LTAxLTAzVDE4OjQ3OjQ4LjAwMDAwMCswMDAwLGFkLGFkX3N1cnZleSwwLjg2OCw3LjcsMjAxNS0wMS0wMSxjcm9zc3Byb21vLFNvdXRoIEtvcmVhCjc1LEdBWUlCTFVDT0VESjczMixHQVlJQkxVQ09FREo3MzItaTl0Z24zYXEsMjAxNS0wMS0wM1QxODo0NjowOS4wMDAwMDArMDAwMCwyMDE1LTAxLTAzVDE4OjQ4OjE1LjAwMDAwMCswMDAwLGFkLGFkX3N1cnZleSwxLjUsOC41LDIwMTUtMDEtMDMsb3JnYW5pYyxVbml0ZWQgU3RhdGVzCjc2LEZLUkNIRUxZVFBCUTYzMSxGS1JDSEVMWVRQQlE2MzEtZzVqa3dhdXIsMjAxNS0wMS0wM1QyMTozNDo1MS4wMDAwMDArMDAwMCwyMDE1LTAxLTAzVDIxOjM4OjM5LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMywxMy45LDIwMTUtMDEtMDMsb3JnYW5pYyxNZXhpY28KMTEyLEVDUEFOT0lYTFpIRjg5NixFQ1BBTk9JWExaSEY4OTYtcmZscTcyaTMsMjAxNS0wMS0wNFQxODo0Mzo0Ni4wMDAwMDArMDAwMCwyMDE1LTAxLTA0VDE4OjQ4OjIyLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4xMSwxMS40LDIwMTUtMDEtMDEsZ29vZ2xlLEdlcm1hbnkKMTEzLEVDUEFOT0lYTFpIRjg5NixFQ1BBTk9JWExaSEY4OTYtcmZscTcyaTMsMjAxNS0wMS0wNFQxODo0Mzo0Ni4wMDAwMDArMDAwMCwyMDE1LTAxLTA0VDE4OjUxOjA0LjAwMDAwMCswMDAwLGlhcCxnb2xkNCwxNy45OSwxMS40LDIwMTUtMDEtMDEsZ29vZ2xlLEdlcm1hbnkKMTE4LFJLTU9WREpHRVNYWTEzNSxSS01PVkRKR0VTWFkxMzUtbHo5Z25vMnEsMjAxNS0wMS0wNFQyMDo1MjozMC4wMDAwMDArMDAwMCwyMDE1LTAxLTA0VDIwOjU0OjQyLjAwMDAwMCswMDAwLGFkLGFkXzIwc2VjLDAuNDA2LDYuNywyMDE1LTAxLTA0LGdvb2dsZSxTb3V0aCBLb3JlYQoxMTksUktNT1ZESkdFU1hZMTM1LFJLTU9WREpHRVNYWTEzNS1sejlnbm8ycSwyMDE1LTAxLTA0VDIwOjUyOjMwLjAwMDAwMCswMDAwLDIwMTUtMDEtMDRUMjA6NTQ6NTQuMDAwMDAwKzAwMDAsaWFwLG9mZmVyNSwyMy4xOSw2LjcsMjAxNS0wMS0wNCxnb29nbGUsU291dGggS29yZWEKMTI2LEdBWUlCTFVDT0VESjczMixHQVlJQkxVQ09FREo3MzItcDE2c2J2MmQsMjAxNS0wMS0wNVQwODo0MDo0MC4wMDAwMDArMDAwMCwyMDE1LTAxLTA1VDA4OjQzOjEwLjAwMDAwMCswMDAwLGlhcCxnZW1zMSwxLjc0LDEzLjksMjAxNS0wMS0wMyxvcmdhbmljLFVuaXRlZCBTdGF0ZXMKMTY4LEhLSlBPTVFXTFZESTY3NCxIS0pQT01RV0xWREk2NzQtNWZ4YjkxNnUsMjAxNS0wMS0wNlQxMToyNDowMS4wMDAwMDArMDAwMCwyMDE1LTAxLTA2VDExOjI1OjU1LjAwMDAwMCswMDAwLGlhcCxnb2xkMiwxLjU5LDYuNiwyMDE1LTAxLTA2LG90aGVyX2NhbXBhaWduLFNwYWluCjE3OSxES09BWEVMU0ZQV0M3MjMsREtPQVhFTFNGUFdDNzIzLWpjcmI5dHFtLDIwMTUtMDEtMDZUMTY6MzQ6MjUuMDAwMDAwKzAwMDAsMjAxNS0wMS0wNlQxNjozNDozNy4wMDAwMDArMDAwMCxhZCxhZF9zdXJ2ZXksMC42MywxMy42LDIwMTUtMDEtMDUsZmFjZWJvb2ssSmFwYW4KMTg4LEtJTFdaWUhSU0pFRzMxNixLSUxXWllIUlNKRUczMTYteTRlNXh1NmQsMjAxNS0wMS0wNlQyMDozNjozMi4wMDAwMDArMDAwMCwyMDE1LTAxLTA2VDIwOjM5OjAyLjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMjMxLDkuNCwyMDE1LTAxLTA0LG9yZ2FuaWMsRGVubWFyawoyMjUsUUpHVk9CTEFUSUhXNDU3LFFKR1ZPQkxBVElIVzQ1Ny1jMzE3YWx3aiwyMDE1LTAxLTA3VDA1OjUzOjM2LjAwMDAwMCswMDAwLDIwMTUtMDEtMDdUMDU6NTg6NDIuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA3NywxNC4yLDIwMTUtMDEtMDIsb3RoZXJfY2FtcGFpZ24sU3dlZGVuCjIyNixKVkJaQ1BLWEhGTVU0OTEsSlZCWkNQS1hIRk1VNDkxLTZ0cWY3NTkzLDIwMTUtMDEtMDdUMDY6NTU6NTMuMDAwMDAwKzAwMDAsMjAxNS0wMS0wN1QwNzowMjoxMS4wMDAwMDArMDAwMCxhZCxhZF8xNXNlYywwLjI5LDkuNywyMDE1LTAxLTA3LG9yZ2FuaWMsVW5pdGVkIFN0YXRlcwoyMjcsSlZCWkNQS1hIRk1VNDkxLEpWQlpDUEtYSEZNVTQ5MS02dHFmNzU5MywyMDE1LTAxLTA3VDA2OjU1OjUzLjAwMDAwMCswMDAwLDIwMTUtMDEtMDdUMDc6MDM6NTkuMDAwMDAwKzAwMDAsaWFwLG9mZmVyNCwxMy45OSw5LjcsMjAxNS0wMS0wNyxvcmdhbmljLFVuaXRlZCBTdGF0ZXMKMjI4LEpWQlpDUEtYSEZNVTQ5MSxKVkJaQ1BLWEhGTVU0OTEtNnRxZjc1OTMsMjAxNS0wMS0wN1QwNjo1NTo1My4wMDAwMDArMDAwMCwyMDE1LTAxLTA3VDA3OjA1OjE3LjAwMDAwMCswMDAwLGlhcCxnZW1zMywxNy40OSw5LjcsMjAxNS0wMS0wNyxvcmdhbmljLFVuaXRlZCBTdGF0ZXMKMjc4LEhLSlBPTVFXTFZESTY3NCxIS0pQT01RV0xWREk2NzQtcHh5OTdqNmYsMjAxNS0wMS0wN1QxNTowMDo0My4wMDAwMDArMDAwMCwyMDE1LTAxLTA3VDE1OjA0OjM3LjAwMDAwMCswMDAwLGlhcCxvZmZlcjMsMTEuOTksNi44LDIwMTUtMDEtMDYsb3RoZXJfY2FtcGFpZ24sU3BhaW4KMjc5LEhLSlBPTVFXTFZESTY3NCxIS0pQT01RV0xWREk2NzQtcHh5OTdqNmYsMjAxNS0wMS0wN1QxNTowMDo0My4wMDAwMDArMDAwMCwyMDE1LTAxLTA3VDE1OjA3OjEzLjAwMDAwMCswMDAwLGFkLGFkXzE1c2VjLDAuMTM1LDYuOCwyMDE1LTAxLTA2LG90aGVyX2NhbXBhaWduLFNwYWluCjMyMixQWkJOUktTTVVMSFgyMTMsUFpCTlJLU01VTEhYMjEzLXNpeHU4bzZqLDIwMTUtMDEtMDhUMDA6MzY6MTMuMDAwMDAwKzAwMDAsMjAxNS0wMS0wOFQwMDozOTowNy4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDIsMTIuMCwyMDE1LTAxLTA3LG9yZ2FuaWMsSW5kaWEKMzIzLFBaQk5SS1NNVUxIWDIxMyxQWkJOUktTTVVMSFgyMTMtc2l4dThvNmosMjAxNS0wMS0wOFQwMDozNjoxMy4wMDAwMDArMDAwMCwyMDE1LTAxLTA4VDAwOjM5OjI1LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMjIsMTIuMCwyMDE1LTAxLTA3LG9yZ2FuaWMsSW5kaWEKMzI0LFBaQk5SS1NNVUxIWDIxMyxQWkJOUktTTVVMSFgyMTMtc2l4dThvNmosMjAxNS0wMS0wOFQwMDozNjoxMy4wMDAwMDArMDAwMCwyMDE1LTAxLTA4VDAwOjQ2OjAxLjAwMDAwMCswMDAwLGlhcCxnZW1zNSw1MS45OSwxMi4wLDIwMTUtMDEtMDcsb3JnYW5pYyxJbmRpYQozMjUsUFpCTlJLU01VTEhYMjEzLFBaQk5SS1NNVUxIWDIxMy1zaXh1OG82aiwyMDE1LTAxLTA4VDAwOjM2OjEzLjAwMDAwMCswMDAwLDIwMTUtMDEtMDhUMDA6NDg6MDEuMDAwMDAwKzAwMDAsaWFwLG9mZmVyNCw3Ljk5LDEyLjAsMjAxNS0wMS0wNyxvcmdhbmljLEluZGlhCjMzOCxQTUZIVk5DVUVZTFQ5MTMsUE1GSFZOQ1VFWUxUOTEzLXp4ZXlwYXNtLDIwMTUtMDEtMDhUMDU6MDk6MDQuMDAwMDAwKzAwMDAsMjAxNS0wMS0wOFQwNToxNjo0MC4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjA3LDkuOCwyMDE1LTAxLTA0LG9yZ2FuaWMsQXVzdHJpYQozNDEsTk1SVVdIQVlKUEJRODI0LE5NUlVXSEFZSlBCUTgyNC13dXQ4ZDZjMywyMDE1LTAxLTA4VDA3OjE3OjUzLjAwMDAwMCswMDAwLDIwMTUtMDEtMDhUMDc6MTk6MjkuMDAwMDAwKzAwMDAsYWQsYWRfMTVzZWMsMC4yNTksNS42LDIwMTUtMDEtMDgsb3JnYW5pYyxIb25nIEtvbmcKMzQyLFFKR1ZPQkxBVElIVzQ1NyxRSkdWT0JMQVRJSFc0NTctaXVrMWhwZzcsMjAxNS0wMS0wOFQwNzoyNzo1MC4wMDAwMDArMDAwMCwyMDE1LTAxLTA4VDA3OjMwOjM4LjAwMDAwMCswMDAwLGlhcCxvZmZlcjEsNC45OSw5LjYsMjAxNS0wMS0wMixvdGhlcl9jYW1wYWlnbixTd2VkZW4KMzQzLFFKR1ZPQkxBVElIVzQ1NyxRSkdWT0JMQVRJSFc0NTctaXVrMWhwZzcsMjAxNS0wMS0wOFQwNzoyNzo1MC4wMDAwMDArMDAwMCwyMDE1LTAxLTA4VDA3OjMyOjMyLjAwMDAwMCswMDAwLGFkLGFkXzE1c2VjLDAuMjY0LDkuNiwyMDE1LTAxLTAyLG90aGVyX2NhbXBhaWduLFN3ZWRlbgozNDQsSllFQkNMTlVaVFhRNDU3LEpZRUJDTE5VWlRYUTQ1Ny10am9ka2d4OCwyMDE1LTAxLTA4VDEwOjAwOjMyLjAwMDAwMCswMDAwLDIwMTUtMDEtMDhUMTA6MDY6NTAuMDAwMDAwKzAwMDAsYWQsYWRfMzBzZWMsMC4zOTYsMTEuMiwyMDE1LTAxLTA0LG90aGVyX2NhbXBhaWduLEVneXB0CjM0NSxKWUVCQ0xOVVpUWFE0NTcsSllFQkNMTlVaVFhRNDU3LXRqb2RrZ3g4LDIwMTUtMDEtMDhUMTA6MDA6MzIuMDAwMDAwKzAwMDAsMjAxNS0wMS0wOFQxMDoxMTozOC4wMDAwMDArMDAwMCxpYXAsZ2VtczIsNC45OSwxMS4yLDIwMTUtMDEtMDQsb3RoZXJfY2FtcGFpZ24sRWd5cHQKMzYxLEtCRVFaR0ZTUlBISjQ3OSxLQkVRWkdGU1JQSEo0NzktbTVpcHF3MmIsMjAxNS0wMS0wOFQxNTowNzo0NS4wMDAwMDArMDAwMCwyMDE1LTAxLTA4VDE1OjE1OjQ1LjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMDMsOS4yLDIwMTUtMDEtMDcsb3JnYW5pYyxSdXNzaWEKMzY2LENOSVpZS1BIR1VMRjY1OSxDTklaWUtQSEdVTEY2NTktZHU4NGVyaWosMjAxNS0wMS0wOFQxNzozNzo0OS4wMDAwMDArMDAwMCwyMDE1LTAxLTA4VDE3OjM4OjEzLjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMiwxNS4wLDIwMTUtMDEtMDgsb3JnYW5pYyxDYW5hZGEKMzY3LENOSVpZS1BIR1VMRjY1OSxDTklaWUtQSEdVTEY2NTktZHU4NGVyaWosMjAxNS0wMS0wOFQxNzozNzo0OS4wMDAwMDArMDAwMCwyMDE1LTAxLTA4VDE3OjQ5OjE5LjAwMDAwMCswMDAwLGFkLGFkXzE1c2VjLDAuMiwxNS4wLDIwMTUtMDEtMDgsb3JnYW5pYyxDYW5hZGEKMzY4LENOSVpZS1BIR1VMRjY1OSxDTklaWUtQSEdVTEY2NTktZHU4NGVyaWosMjAxNS0wMS0wOFQxNzozNzo0OS4wMDAwMDArMDAwMCwyMDE1LTAxLTA4VDE3OjUxOjMxLjAwMDAwMCswMDAwLGFkLGFkXzE1c2VjLDAuMywxNS4wLDIwMTUtMDEtMDgsb3JnYW5pYyxDYW5hZGEKMzczLEhLSlBPTVFXTFZESTY3NCxIS0pQT01RV0xWREk2NzQtdmV4Z3FqcDYsMjAxNS0wMS0wOFQxOTowNjowMS4wMDAwMDArMDAwMCwyMDE1LTAxLTA4VDE5OjA4OjEzLjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMjA3LDEyLjksMjAxNS0wMS0wNixvdGhlcl9jYW1wYWlnbixTcGFpbgozODcsSEtKUE9NUVdMVkRJNjc0LEhLSlBPTVFXTFZESTY3NC1ybXh6aG9hYiwyMDE1LTAxLTA4VDIzOjI0OjIyLjAwMDAwMCswMDAwLDIwMTUtMDEtMDhUMjM6MjU6MzQuMDAwMDAwKzAwMDAsYWQsYWRfMTBzZWMsMC4xNzEsMTAuMSwyMDE1LTAxLTA2LG90aGVyX2NhbXBhaWduLFNwYWluCjM4OCxIS0pQT01RV0xWREk2NzQsSEtKUE9NUVdMVkRJNjc0LXJteHpob2FiLDIwMTUtMDEtMDhUMjM6MjQ6MjIuMDAwMDAwKzAwMDAsMjAxNS0wMS0wOFQyMzoyNjozNC4wMDAwMDArMDAwMCxhZCxhZF8xNXNlYywwLjQzMiwxMC4xLDIwMTUtMDEtMDYsb3RoZXJfY2FtcGFpZ24sU3BhaW4KMzk5LFFEVVpKSUVUQ0FHVzY1NCxRRFVaSklFVENBR1c2NTQtZ21pNmJvZjEsMjAxNS0wMS0wOVQwMzowNDowNS4wMDAwMDArMDAwMCwyMDE1LTAxLTA5VDAzOjA1OjUzLjAwMDAwMCswMDAwLGFkLGFkXzE1c2VjLDAuNTUyLDExLjMsMjAxNS0wMS0wNyxmYWNlYm9vayxTd2l0emVybGFuZAo0MDAsUURVWkpJRVRDQUdXNjU0LFFEVVpKSUVUQ0FHVzY1NC1nbWk2Ym9mMSwyMDE1LTAxLTA5VDAzOjA0OjA1LjAwMDAwMCswMDAwLDIwMTUtMDEtMDlUMDM6MTA6MDUuMDAwMDAwKzAwMDAsaWFwLG9mZmVyMywxNi40ODksMTEuMywyMDE1LTAxLTA3LGZhY2Vib29rLFN3aXR6ZXJsYW5kCjQwMSxRRFVaSklFVENBR1c2NTQsUURVWkpJRVRDQUdXNjU0LWdtaTZib2YxLDIwMTUtMDEtMDlUMDM6MDQ6MDUuMDAwMDAwKzAwMDAsMjAxNS0wMS0wOVQwMzoxMDowNS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDYsMTEuMywyMDE1LTAxLTA3LGZhY2Vib29rLFN3aXR6ZXJsYW5kCjQwOCxPTUNWVUFJS1NEVFI2NTEsT01DVlVBSUtTRFRSNjUxLWhlc3p4eTJiLDIwMTUtMDEtMDlUMDU6NDQ6MjcuMDAwMDAwKzAwMDAsMjAxNS0wMS0wOVQwNTo0NjowMy4wMDAwMDArMDAwMCxpYXAsZ2VtczUsOTAuOTksNy4zLDIwMTUtMDEtMDcsb3RoZXJfY2FtcGFpZ24sVW5pdGVkIFN0YXRlcwo0MDksT01DVlVBSUtTRFRSNjUxLE9NQ1ZVQUlLU0RUUjY1MS1oZXN6eHkyYiwyMDE1LTAxLTA5VDA1OjQ0OjI3LjAwMDAwMCswMDAwLDIwMTUtMDEtMDlUMDU6NDg6NDUuMDAwMDAwKzAwMDAsaWFwLG9mZmVyMiw2Ljk5LDcuMywyMDE1LTAxLTA3LG90aGVyX2NhbXBhaWduLFVuaXRlZCBTdGF0ZXMKNDEwLEVRVUROR1pJQ01BSzQ4MixFUVVETkdaSUNNQUs0ODItbjRlamRndncsMjAxNS0wMS0wOVQwNzoxMTozNS4wMDAwMDArMDAwMCwyMDE1LTAxLTA5VDA3OjEyOjU5LjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMTksNi44LDIwMTUtMDEtMDQsZ29vZ2xlLEdlcm1hbnkKNDExLFFOTFZSREVPWEZZSjg5MixRTkxWUkRFT1hGWUo4OTItc2Y3d2VoejksMjAxNS0wMS0wOVQwNzoyNzoxNC4wMDAwMDArMDAwMCwyMDE1LTAxLTA5VDA3OjI5OjMyLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMyw4LjEsMjAxNS0wMS0wOSxjcm9zc3Byb21vLEF1c3RyYWxpYQo0MjksR0FZSUJMVUNPRURKNzMyLEdBWUlCTFVDT0VESjczMi1zeWlocWJubywyMDE1LTAxLTA5VDEzOjU1OjUyLjAwMDAwMCswMDAwLDIwMTUtMDEtMDlUMTM6NTc6MDQuMDAwMDAwKzAwMDAsaWFwLG9mZmVyNCwxMy45OSw1LjksMjAxNS0wMS0wMyxvcmdhbmljLFVuaXRlZCBTdGF0ZXMKNDMwLEdBWUlCTFVDT0VESjczMixHQVlJQkxVQ09FREo3MzItc3lpaHFibm8sMjAxNS0wMS0wOVQxMzo1NTo1Mi4wMDAwMDArMDAwMCwyMDE1LTAxLTA5VDEzOjU3OjUyLjAwMDAwMCswMDAwLGlhcCxvZmZlcjIsNi45OSw1LjksMjAxNS0wMS0wMyxvcmdhbmljLFVuaXRlZCBTdGF0ZXMKNDMxLEdBWUlCTFVDT0VESjczMixHQVlJQkxVQ09FREo3MzItc3lpaHFibm8sMjAxNS0wMS0wOVQxMzo1NTo1Mi4wMDAwMDArMDAwMCwyMDE1LTAxLTA5VDE0OjAxOjA0LjAwMDAwMCswMDAwLGFkLGFkXzMwc2VjLDAuOTgsNS45LDIwMTUtMDEtMDMsb3JnYW5pYyxVbml0ZWQgU3RhdGVzCjQzMixTRkpDWk9US0dBSUQ2NDUsU0ZKQ1pPVEtHQUlENjQ1LXE4MTZtNHpnLDIwMTUtMDEtMDlUMTQ6MDA6MjIuMDAwMDAwKzAwMDAsMjAxNS0wMS0wOVQxNDoxMjo0Ni4wMDAwMDArMDAwMCxpYXAsb2ZmZXI0LDE3Ljk5MSwxNC40LDIwMTUtMDEtMDYsZ29vZ2xlLEZyYW5jZQo0MzMsU0ZKQ1pPVEtHQUlENjQ1LFNGSkNaT1RLR0FJRDY0NS1xODE2bTR6ZywyMDE1LTAxLTA5VDE0OjAwOjIyLjAwMDAwMCswMDAwLDIwMTUtMDEtMDlUMTQ6MTM6MzQuMDAwMDAwKzAwMDAsYWQsYWRfMjBzZWMsMC45NSwxNC40LDIwMTUtMDEtMDYsZ29vZ2xlLEZyYW5jZQo0ODIsVVpRRkhEQkVNWVBWNTk0LFVaUUZIREJFTVlQVjU5NC1ha2NwenR1bywyMDE1LTAxLTEwVDA1OjQ4OjQ2LjAwMDAwMCswMDAwLDIwMTUtMDEtMTBUMDU6NDg6NTguMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA3Miw4LjEsMjAxNS0wMS0xMCxnb29nbGUsU3dpdHplcmxhbmQKNTA3LE5NUlVXSEFZSlBCUTgyNCxOTVJVV0hBWUpQQlE4MjQtejVpYjJvZmosMjAxNS0wMS0xMFQwOTo1NDoxNy4wMDAwMDArMDAwMCwyMDE1LTAxLTEwVDA5OjU1OjExLjAwMDAwMCswMDAwLGFkLGFkXzE1c2VjLDAuMjE3LDYuMCwyMDE1LTAxLTA4LG9yZ2FuaWMsSG9uZyBLb25nCjUyNSxFUVVETkdaSUNNQUs0ODIsRVFVRE5HWklDTUFLNDgyLWk1a3JnOW5mLDIwMTUtMDEtMTBUMTQ6MTI6MDkuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMFQxNDoxOTozOS4wMDAwMDArMDAwMCxpYXAsb2ZmZXIzLDEzLjQ5MSwxMC42LDIwMTUtMDEtMDQsZ29vZ2xlLEdlcm1hbnkKNTI2LEVRVUROR1pJQ01BSzQ4MixFUVVETkdaSUNNQUs0ODItaTVrcmc5bmYsMjAxNS0wMS0xMFQxNDoxMjowOS4wMDAwMDArMDAwMCwyMDE1LTAxLTEwVDE0OjIwOjA5LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMywxMC42LDIwMTUtMDEtMDQsZ29vZ2xlLEdlcm1hbnkKNTQ5LFFOTFZSREVPWEZZSjg5MixRTkxWUkRFT1hGWUo4OTItbHo1Zm1yNmssMjAxNS0wMS0xMFQxNjo0NDoxNy4wMDAwMDArMDAwMCwyMDE1LTAxLTEwVDE2OjQ1OjI5LjAwMDAwMCswMDAwLGlhcCxnb2xkMywzLjQ5LDMuNywyMDE1LTAxLTA5LGNyb3NzcHJvbW8sQXVzdHJhbGlhCjU2OSxLQkVRWkdGU1JQSEo0NzksS0JFUVpHRlNSUEhKNDc5LXJxZWdqbGYzLDIwMTUtMDEtMTBUMjA6MTg6NDcuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMFQyMDoyMDo0Ny4wMDAwMDArMDAwMCxhZCxhZF8xNXNlYywwLjEzNSwxMC41LDIwMTUtMDEtMDcsb3JnYW5pYyxSdXNzaWEKNTcwLEtCRVFaR0ZTUlBISjQ3OSxLQkVRWkdGU1JQSEo0NzktcnFlZ2psZjMsMjAxNS0wMS0xMFQyMDoxODo0Ny4wMDAwMDArMDAwMCwyMDE1LTAxLTEwVDIwOjIzOjQ3LjAwMDAwMCswMDAwLGlhcCxnb2xkMiwwLjc5NiwxMC41LDIwMTUtMDEtMDcsb3JnYW5pYyxSdXNzaWEKNTg1LFFEVVpKSUVUQ0FHVzY1NCxRRFVaSklFVENBR1c2NTQtY2ZvN3ZudGUsMjAxNS0wMS0xMVQwMDo1NzoxMy4wMDAwMDArMDAwMCwyMDE1LTAxLTExVDAxOjA1OjEzLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4xNDQsMTAuMywyMDE1LTAxLTA3LGZhY2Vib29rLFN3aXR6ZXJsYW5kCjU4NixRRFVaSklFVENBR1c2NTQsUURVWkpJRVRDQUdXNjU0LWNmbzd2bnRlLDIwMTUtMDEtMTFUMDA6NTc6MTMuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMVQwMTowNTozMS4wMDAwMDArMDAwMCxpYXAsZ2VtczEsMi43NCwxMC4zLDIwMTUtMDEtMDcsZmFjZWJvb2ssU3dpdHplcmxhbmQKNTkzLEdTUUpYSU9LWU1FQTcxMixHU1FKWElPS1lNRUE3MTItaTU3djRmYngsMjAxNS0wMS0xMVQwMzowODo0Ni4wMDAwMDArMDAwMCwyMDE1LTAxLTExVDAzOjEzOjIyLjAwMDAwMCswMDAwLGlhcCxnZW1zMSwyLjI0LDEwLjgsMjAxNS0wMS0wNyxnb29nbGUsR2VybWFueQo1OTQsR1NRSlhJT0tZTUVBNzEyLEdTUUpYSU9LWU1FQTcxMi1pNTd2NGZieCwyMDE1LTAxLTExVDAzOjA4OjQ2LjAwMDAwMCswMDAwLDIwMTUtMDEtMTFUMDM6MTY6MDQuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjExLDEwLjgsMjAxNS0wMS0wNyxnb29nbGUsR2VybWFueQo1OTUsR1NRSlhJT0tZTUVBNzEyLEdTUUpYSU9LWU1FQTcxMi1pNTd2NGZieCwyMDE1LTAxLTExVDAzOjA4OjQ2LjAwMDAwMCswMDAwLDIwMTUtMDEtMTFUMDM6MTc6MjIuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA4LDEwLjgsMjAxNS0wMS0wNyxnb29nbGUsR2VybWFueQo1OTksUUpHVk9CTEFUSUhXNDU3LFFKR1ZPQkxBVElIVzQ1Ny1yMWliNGV3YywyMDE1LTAxLTExVDAzOjQ1OjI3LjAwMDAwMCswMDAwLDIwMTUtMDEtMTFUMDM6NDk6MDMuMDAwMDAwKzAwMDAsYWQsYWRfMzBzZWMsMS4zMzEsNS43LDIwMTUtMDEtMDIsb3RoZXJfY2FtcGFpZ24sU3dlZGVuCjYxMSxSTU9TV0hKR0VMQ0k2NzUsUk1PU1dISkdFTENJNjc1LTh1bHdka3Z0LDIwMTUtMDEtMTFUMDY6MTU6MzYuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMVQwNjoxNTo1NC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDIsOS40LDIwMTUtMDEtMTAsb3RoZXJfY2FtcGFpZ24sRnJhbmNlCjYxOCxKVkJaQ1BLWEhGTVU0OTEsSlZCWkNQS1hIRk1VNDkxLTF0YWVnNml5LDIwMTUtMDEtMTFUMDc6MDk6MzQuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMVQwNzoxNDoyMi4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDIsNy45LDIwMTUtMDEtMDcsb3JnYW5pYyxVbml0ZWQgU3RhdGVzCjYxOSxKVkJaQ1BLWEhGTVU0OTEsSlZCWkNQS1hIRk1VNDkxLTF0YWVnNml5LDIwMTUtMDEtMTFUMDc6MDk6MzQuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMVQwNzoxNTo1Mi4wMDAwMDArMDAwMCxpYXAsb2ZmZXIxLDMuNDksNy45LDIwMTUtMDEtMDcsb3JnYW5pYyxVbml0ZWQgU3RhdGVzCjYyMCxSTU9TV0hKR0VMQ0k2NzUsUk1PU1dISkdFTENJNjc1LXQ0eThiamN1LDIwMTUtMDEtMTFUMDc6MjQ6MjQuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMVQwNzoyNToxOC4wMDAwMDArMDAwMCxpYXAsb2ZmZXI0LDE3Ljk5MSw1LjAsMjAxNS0wMS0xMCxvdGhlcl9jYW1wYWlnbixGcmFuY2UKNjIxLFJNT1NXSEpHRUxDSTY3NSxSTU9TV0hKR0VMQ0k2NzUtdDR5OGJqY3UsMjAxNS0wMS0xMVQwNzoyNDoyNC4wMDAwMDArMDAwMCwyMDE1LTAxLTExVDA3OjI2OjI0LjAwMDAwMCswMDAwLGlhcCxvZmZlcjUsMjYuMDksNS4wLDIwMTUtMDEtMTAsb3RoZXJfY2FtcGFpZ24sRnJhbmNlCjYyMixSTU9TV0hKR0VMQ0k2NzUsUk1PU1dISkdFTENJNjc1LXQ0eThiamN1LDIwMTUtMDEtMTFUMDc6MjQ6MjQuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMVQwNzoyODozNi4wMDAwMDArMDAwMCxhZCxhZF8xNXNlYywwLjUzLDUuMCwyMDE1LTAxLTEwLG90aGVyX2NhbXBhaWduLEZyYW5jZQo2MzQsQVVXRkRSWk1YVkpIOTI4LEFVV0ZEUlpNWFZKSDkyOC00bjZneHZlbywyMDE1LTAxLTExVDEwOjE3OjIyLjAwMDAwMCswMDAwLDIwMTUtMDEtMTFUMTA6MTg6NTguMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAyLDEzLjYsMjAxNS0wMS0xMSxnb29nbGUsSW5kaWEKNjM1LEFVV0ZEUlpNWFZKSDkyOCxBVVdGRFJaTVhWSkg5MjgtNG42Z3h2ZW8sMjAxNS0wMS0xMVQxMDoxNzoyMi4wMDAwMDArMDAwMCwyMDE1LTAxLTExVDEwOjI3OjIyLjAwMDAwMCswMDAwLGlhcCxvZmZlcjUsMTEuNTksMTMuNiwyMDE1LTAxLTExLGdvb2dsZSxJbmRpYQo2NTcsS0JFUVpHRlNSUEhKNDc5LEtCRVFaR0ZTUlBISjQ3OS05cnA4aHRnMiwyMDE1LTAxLTExVDE0OjQ4OjA0LjAwMDAwMCswMDAwLDIwMTUtMDEtMTFUMTQ6NTE6NDYuMDAwMDAwKzAwMDAsYWQsYWRfMzBzZWMsMC40NDcsOS45LDIwMTUtMDEtMDcsb3JnYW5pYyxSdXNzaWEKNjYyLE5BT0pSRE1DU0VCSTI4MSxOQU9KUkRNQ1NFQkkyODEtZDRzYXk2cTUsMjAxNS0wMS0xMVQxNTo0Nzo0Ni4wMDAwMDArMDAwMCwyMDE1LTAxLTExVDE1OjU2OjE2LjAwMDAwMCswMDAwLGFkLGFkX3N1cnZleSwwLjksMTIuNCwyMDE1LTAxLTExLG9yZ2FuaWMsTm9yd2F5CjY2MyxHRkxZSkhBUE1aV0Q2MzEsR0ZMWUpIQVBNWldENjMxLWkydjFibDdhLDIwMTUtMDEtMTFUMTY6MTM6MjQuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMVQxNjoxNDo1NC4wMDAwMDArMDAwMCxpYXAsZ2VtczIsMy45OSwzLjYsMjAxNS0wMS0wOSxvcmdhbmljLEluZGlhCjY3NCxHRkxZSkhBUE1aV0Q2MzEsR0ZMWUpIQVBNWldENjMxLWtxN3RqbW9lLDIwMTUtMDEtMTFUMTg6MjM6MjIuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMVQxODoyNDo0Ni4wMDAwMDArMDAwMCxpYXAsb2ZmZXI0LDcuOTksMTIuMiwyMDE1LTAxLTA5LG9yZ2FuaWMsSW5kaWEKNjc1LEdGTFlKSEFQTVpXRDYzMSxHRkxZSkhBUE1aV0Q2MzEta3E3dGptb2UsMjAxNS0wMS0xMVQxODoyMzoyMi4wMDAwMDArMDAwMCwyMDE1LTAxLTExVDE4OjI2OjQ2LjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMDI2LDEyLjIsMjAxNS0wMS0wOSxvcmdhbmljLEluZGlhCjY3NixOQU9KUkRNQ1NFQkkyODEsTkFPSlJETUNTRUJJMjgxLWYzcWh1c3c5LDIwMTUtMDEtMTFUMTg6NDc6MzEuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMVQxODo0ODowMS4wMDAwMDArMDAwMCxhZCxhZF8zMHNlYywwLjk4MSw2LjksMjAxNS0wMS0xMSxvcmdhbmljLE5vcndheQo2NzcsSUNCQVVaS0dTUVBGMTQ1LElDQkFVWktHU1FQRjE0NS16dW8yajk1NCwyMDE1LTAxLTExVDE5OjA0OjM2LjAwMDAwMCswMDAwLDIwMTUtMDEtMTFUMTk6MTI6MjQuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA0OSw4LjEsMjAxNS0wMS0wNixnb29nbGUsU291dGggQWZyaWNhCjY3OCxHQVlJQkxVQ09FREo3MzIsR0FZSUJMVUNPRURKNzMyLXZwZ2N6bTlzLDIwMTUtMDEtMTFUMTk6MjM6MjQuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMVQxOToyNjoxOC4wMDAwMDArMDAwMCxhZCxhZF8xNXNlYywwLjI4LDEzLjcsMjAxNS0wMS0wMyxvcmdhbmljLFVuaXRlZCBTdGF0ZXMKNjc5LENOSVpZS1BIR1VMRjY1OSxDTklaWUtQSEdVTEY2NTktMWhyZ3hpYm0sMjAxNS0wMS0xMVQxOTozMzozNS4wMDAwMDArMDAwMCwyMDE1LTAxLTExVDE5OjM1OjM1LjAwMDAwMCswMDAwLGFkLGFkXzE1c2VjLDAuNSw3LjQsMjAxNS0wMS0wOCxvcmdhbmljLENhbmFkYQo2ODMsTVhDT1ZFWUlBS0ZINTk0LE1YQ09WRVlJQUtGSDU5NC02Z212dXg1NywyMDE1LTAxLTExVDIxOjA1OjM4LjAwMDAwMCswMDAwLDIwMTUtMDEtMTFUMjE6MDY6MDguMDAwMDAwKzAwMDAsYWQsYWRfcGxheWFibGUsMC43OTgsNy41LDIwMTUtMDEtMTAsb3JnYW5pYyxDaGluYQo2ODYsUk1PU1dISkdFTENJNjc1LFJNT1NXSEpHRUxDSTY3NS11cWc0bzdldiwyMDE1LTAxLTExVDIxOjM3OjI3LjAwMDAwMCswMDAwLDIwMTUtMDEtMTFUMjE6Mzk6MjEuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA5LDguMiwyMDE1LTAxLTEwLG90aGVyX2NhbXBhaWduLEZyYW5jZQo2OTgsR0ZMWUpIQVBNWldENjMxLEdGTFlKSEFQTVpXRDYzMS1wZDZqczE1bSwyMDE1LTAxLTExVDIzOjI4OjA5LjAwMDAwMCswMDAwLDIwMTUtMDEtMTFUMjM6MzE6NTEuMDAwMDAwKzAwMDAsYWQsYWRfMTVzZWMsMC4wNDIsOS4wLDIwMTUtMDEtMDksb3JnYW5pYyxJbmRpYQo3MDIsSElBTEJYRUdZWlJXNzM4LEhJQUxCWEVHWVpSVzczOC14Y3N5cGVvNywyMDE1LTAxLTEyVDAwOjM4OjQ3LjAwMDAwMCswMDAwLDIwMTUtMDEtMTJUMDA6NDI6NTkuMDAwMDAwKzAwMDAsaWFwLG9mZmVyNCw3Ljk5LDkuNSwyMDE1LTAxLTEyLG9yZ2FuaWMsQ2hpbmEKNzAzLEhJQUxCWEVHWVpSVzczOCxISUFMQlhFR1laUlc3MzgteGNzeXBlbzcsMjAxNS0wMS0xMlQwMDozODo0Ny4wMDAwMDArMDAwMCwyMDE1LTAxLTEyVDAwOjQ4OjExLjAwMDAwMCswMDAwLGlhcCxvZmZlcjQsNy45OSw5LjUsMjAxNS0wMS0xMixvcmdhbmljLENoaW5hCjcwNixKWUVCQ0xOVVpUWFE0NTcsSllFQkNMTlVaVFhRNDU3LXBtajhldmhzLDIwMTUtMDEtMTJUMDI6NDI6MzQuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMlQwMjo0NTo0MC4wMDAwMDArMDAwMCxhZCxhZF8yMHNlYywwLjI3LDExLjAsMjAxNS0wMS0wNCxvdGhlcl9jYW1wYWlnbixFZ3lwdAo3MjYsSUNCQVVaS0dTUVBGMTQ1LElDQkFVWktHU1FQRjE0NS1rdnVoM2N6cywyMDE1LTAxLTEyVDA4OjA0OjM2LjAwMDAwMCswMDAwLDIwMTUtMDEtMTJUMDg6MDU6MTguMDAwMDAwKzAwMDAsYWQsYWRfc3VydmV5LDEuMDIyLDEzLjksMjAxNS0wMS0wNixnb29nbGUsU291dGggQWZyaWNhCjcyNyxJQ0JBVVpLR1NRUEYxNDUsSUNCQVVaS0dTUVBGMTQ1LWt2dWgzY3pzLDIwMTUtMDEtMTJUMDg6MDQ6MzYuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMlQwODoxMjoxOC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDg0OSwxMy45LDIwMTUtMDEtMDYsZ29vZ2xlLFNvdXRoIEFmcmljYQo3MjgsSUNCQVVaS0dTUVBGMTQ1LElDQkFVWktHU1FQRjE0NS1rdnVoM2N6cywyMDE1LTAxLTEyVDA4OjA0OjM2LjAwMDAwMCswMDAwLDIwMTUtMDEtMTJUMDg6MTY6NDIuMDAwMDAwKzAwMDAsaWFwLGdlbXMyLDYuOTksMTMuOSwyMDE1LTAxLTA2LGdvb2dsZSxTb3V0aCBBZnJpY2EKNzQyLFZMUUhZSkNLQk9JTjcyOSxWTFFIWUpDS0JPSU43MjktNXpydm94bnksMjAxNS0wMS0xMlQwODo0OTo0NS4wMDAwMDArMDAwMCwyMDE1LTAxLTEyVDA4OjU0OjM5LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMzYsMTEuMSwyMDE1LTAxLTEwLG9yZ2FuaWMsSmFwYW4KNzU1LFFOTFZSREVPWEZZSjg5MixRTkxWUkRFT1hGWUo4OTItZXNkYmF5OWgsMjAxNS0wMS0xMlQxMjoxNDoxNC4wMDAwMDArMDAwMCwyMDE1LTAxLTEyVDEyOjE4OjIwLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4xMSw4LjcsMjAxNS0wMS0wOSxjcm9zc3Byb21vLEF1c3RyYWxpYQo3NjMsR1NRSlhJT0tZTUVBNzEyLEdTUUpYSU9LWU1FQTcxMi03dzJiNWt5diwyMDE1LTAxLTEyVDE2OjI0OjA5LjAwMDAwMCswMDAwLDIwMTUtMDEtMTJUMTY6MzA6NTEuMDAwMDAwKzAwMDAsYWQsYWRfc3VydmV5LDAuNjksMTIuOSwyMDE1LTAxLTA3LGdvb2dsZSxHZXJtYW55Cjc2NCxHU1FKWElPS1lNRUE3MTIsR1NRSlhJT0tZTUVBNzEyLTd3MmI1a3l2LDIwMTUtMDEtMTJUMTY6MjQ6MDkuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMlQxNjozMzowOS4wMDAwMDArMDAwMCxhZCxhZF8xNXNlYywwLjQ1LDEyLjksMjAxNS0wMS0wNyxnb29nbGUsR2VybWFueQo3NjUsUURVWkpJRVRDQUdXNjU0LFFEVVpKSUVUQ0FHVzY1NC0ybWplb2JycCwyMDE1LTAxLTEyVDE2OjUzOjA4LjAwMDAwMCswMDAwLDIwMTUtMDEtMTJUMTY6NTc6MjYuMDAwMDAwKzAwMDAsaWFwLG9mZmVyNCwyMS45OSw3LjYsMjAxNS0wMS0wNyxmYWNlYm9vayxTd2l0emVybGFuZAo3NjYsUURVWkpJRVRDQUdXNjU0LFFEVVpKSUVUQ0FHVzY1NC0ybWplb2JycCwyMDE1LTAxLTEyVDE2OjUzOjA4LjAwMDAwMCswMDAwLDIwMTUtMDEtMTJUMTY6NTk6NTYuMDAwMDAwKzAwMDAsYWQsYWRfMTVzZWMsMC42Niw3LjYsMjAxNS0wMS0wNyxmYWNlYm9vayxTd2l0emVybGFuZAo3NjcsQVVXRkRSWk1YVkpIOTI4LEFVV0ZEUlpNWFZKSDkyOC13OWZoazNweiwyMDE1LTAxLTEyVDE3OjI3OjQ1LjAwMDAwMCswMDAwLDIwMTUtMDEtMTJUMTc6Mjk6MzkuMDAwMDAwKzAwMDAsaWFwLG9mZmVyNCw3Ljk5LDExLjUsMjAxNS0wMS0xMSxnb29nbGUsSW5kaWEKNzY4LEFVV0ZEUlpNWFZKSDkyOCxBVVdGRFJaTVhWSkg5MjgtdzlmaGszcHosMjAxNS0wMS0xMlQxNzoyNzo0NS4wMDAwMDArMDAwMCwyMDE1LTAxLTEyVDE3OjMwOjE1LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMDgsMTEuNSwyMDE1LTAxLTExLGdvb2dsZSxJbmRpYQo3NjksQVVXRkRSWk1YVkpIOTI4LEFVV0ZEUlpNWFZKSDkyOC13OWZoazNweiwyMDE1LTAxLTEyVDE3OjI3OjQ1LjAwMDAwMCswMDAwLDIwMTUtMDEtMTJUMTc6MzM6MzkuMDAwMDAwKzAwMDAsYWQsYWRfMTVzZWMsMC4wNzgsMTEuNSwyMDE1LTAxLTExLGdvb2dsZSxJbmRpYQo3NzAsQVVXRkRSWk1YVkpIOTI4LEFVV0ZEUlpNWFZKSDkyOC13OWZoazNweiwyMDE1LTAxLTEyVDE3OjI3OjQ1LjAwMDAwMCswMDAwLDIwMTUtMDEtMTJUMTc6MzY6NDUuMDAwMDAwKzAwMDAsaWFwLGdlbXMzLDkuOTksMTEuNSwyMDE1LTAxLTExLGdvb2dsZSxJbmRpYQo3NzEsRlhXRE5LSVVNSllSNDcxLEZYV0ROS0lVTUpZUjQ3MS1oOWdwY243bSwyMDE1LTAxLTEyVDE3OjM2OjA0LjAwMDAwMCswMDAwLDIwMTUtMDEtMTJUMTc6MzY6MjguMDAwMDAwKzAwMDAsYWQsYWRfc3VydmV5LDEuMzksNy44LDIwMTUtMDEtMTAsb3JnYW5pYyxVbml0ZWQgU3RhdGVzCjc3MixCRk5MVVJJU0pYVEg2NDcsQkZOTFVSSVNKWFRINjQ3LTZvNWh4Mjd6LDIwMTUtMDEtMTJUMTc6Mzc6MzkuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMlQxNzozOToyNy4wMDAwMDArMDAwMCxpYXAsb2ZmZXI1LDExLjU5LDQuMSwyMDE1LTAxLTEwLG9yZ2FuaWMsSW5kaWEKNzczLEJGTkxVUklTSlhUSDY0NyxCRk5MVVJJU0pYVEg2NDctNm81aHgyN3osMjAxNS0wMS0xMlQxNzozNzozOS4wMDAwMDArMDAwMCwyMDE1LTAxLTEyVDE3OjQxOjQ1LjAwMDAwMCswMDAwLGlhcCxnZW1zMyw5Ljk5LDQuMSwyMDE1LTAxLTEwLG9yZ2FuaWMsSW5kaWEKNzc0LENIS1VSQUJURlpERTM3MixDSEtVUkFCVEZaREUzNzItcXZ1dzQ5ZzYsMjAxNS0wMS0xMlQxODoxOTo0OS4wMDAwMDArMDAwMCwyMDE1LTAxLTEyVDE4OjIzOjAxLjAwMDAwMCswMDAwLGlhcCxnZW1zNCw2NS45OSwxNC44LDIwMTUtMDEtMTEsb3JnYW5pYyxEZW5tYXJrCjc3NSxDSEtVUkFCVEZaREUzNzIsQ0hLVVJBQlRGWkRFMzcyLXF2dXc0OWc2LDIwMTUtMDEtMTJUMTg6MTk6NDkuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMlQxODoyNjowNy4wMDAwMDArMDAwMCxpYXAsb2ZmZXI0LDIxLjk5LDE0LjgsMjAxNS0wMS0xMSxvcmdhbmljLERlbm1hcmsKNzc2LENIS1VSQUJURlpERTM3MixDSEtVUkFCVEZaREUzNzItcXZ1dzQ5ZzYsMjAxNS0wMS0xMlQxODoxOTo0OS4wMDAwMDArMDAwMCwyMDE1LTAxLTEyVDE4OjI4OjQ5LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wOTksMTQuOCwyMDE1LTAxLTExLG9yZ2FuaWMsRGVubWFyawo3ODEsS0daQ09KSFBGVFFWNzUzLEtHWkNPSkhQRlRRVjc1My15MWxzY2JtMiwyMDE1LTAxLTEyVDE5OjU1OjMxLjAwMDAwMCswMDAwLDIwMTUtMDEtMTJUMTk6NTc6NDMuMDAwMDAwKzAwMDAsYWQsYWRfMTVzZWMsMC4yNywxMS41LDIwMTUtMDEtMTEsb3JnYW5pYyxVbml0ZWQgU3RhdGVzCjc4MixLR1pDT0pIUEZUUVY3NTMsS0daQ09KSFBGVFFWNzUzLXkxbHNjYm0yLDIwMTUtMDEtMTJUMTk6NTU6MzEuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMlQyMDowNjoxOS4wMDAwMDArMDAwMCxhZCxhZF9zdXJ2ZXksMS4wMiwxMS41LDIwMTUtMDEtMTEsb3JnYW5pYyxVbml0ZWQgU3RhdGVzCjgyOCxLR1pDT0pIUEZUUVY3NTMsS0daQ09KSFBGVFFWNzUzLTFncXBhdWhvLDIwMTUtMDEtMTNUMDM6MjE6MjUuMDAwMDAwKzAwMDAsMjAxNS0wMS0xM1QwMzoyNzo0My4wMDAwMDArMDAwMCxhZCxhZF9zdXJ2ZXksMS4yOSwxNC40LDIwMTUtMDEtMTEsb3JnYW5pYyxVbml0ZWQgU3RhdGVzCjgyOSxLR1pDT0pIUEZUUVY3NTMsS0daQ09KSFBGVFFWNzUzLTFncXBhdWhvLDIwMTUtMDEtMTNUMDM6MjE6MjUuMDAwMDAwKzAwMDAsMjAxNS0wMS0xM1QwMzozMTo1NS4wMDAwMDArMDAwMCxhZCxhZF9zdXJ2ZXksMC44MSwxNC40LDIwMTUtMDEtMTEsb3JnYW5pYyxVbml0ZWQgU3RhdGVzCjgzNCxOQU9KUkRNQ1NFQkkyODEsTkFPSlJETUNTRUJJMjgxLWVoaTFuMjN2LDIwMTUtMDEtMTNUMDQ6NTg6MjAuMDAwMDAwKzAwMDAsMjAxNS0wMS0xM1QwNTowNToyNi4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDgxLDE0LjIsMjAxNS0wMS0xMSxvcmdhbmljLE5vcndheQo4MzUsTkFPSlJETUNTRUJJMjgxLE5BT0pSRE1DU0VCSTI4MS1laGkxbjIzdiwyMDE1LTAxLTEzVDA0OjU4OjIwLjAwMDAwMCswMDAwLDIwMTUtMDEtMTNUMDU6MDc6MDIuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA5LDE0LjIsMjAxNS0wMS0xMSxvcmdhbmljLE5vcndheQo4NTAsV05WQkFZR0NMSklSNTE3LFdOVkJBWUdDTEpJUjUxNy1rN2Jtc2VxNSwyMDE1LTAxLTEzVDA4OjU0OjMxLjAwMDAwMCswMDAwLDIwMTUtMDEtMTNUMDg6NTQ6MzcuMDAwMDAwKzAwMDAsYWQsYWRfMTBzZWMsMC4xODcsMTUuMCwyMDE1LTAxLTEzLGZhY2Vib29rLFN3ZWRlbgo4NTEsV05WQkFZR0NMSklSNTE3LFdOVkJBWUdDTEpJUjUxNy1rN2Jtc2VxNSwyMDE1LTAxLTEzVDA4OjU0OjMxLjAwMDAwMCswMDAwLDIwMTUtMDEtMTNUMDk6MDE6MDcuMDAwMDAwKzAwMDAsYWQsYWRfc3VydmV5LDEuNTE4LDE1LjAsMjAxNS0wMS0xMyxmYWNlYm9vayxTd2VkZW4KODYzLFVaUUZIREJFTVlQVjU5NCxVWlFGSERCRU1ZUFY1OTQtdjI5YnByNGksMjAxNS0wMS0xM1QxMDo1NTo0Mi4wMDAwMDArMDAwMCwyMDE1LTAxLTEzVDExOjA4OjA2LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNzIsMTMuOSwyMDE1LTAxLTEwLGdvb2dsZSxTd2l0emVybGFuZAo4NjUsSlVZQkZNUEVSTERXMzk0LEpVWUJGTVBFUkxEVzM5NC1xZXIzNW14aywyMDE1LTAxLTEzVDExOjQzOjIwLjAwMDAwMCswMDAwLDIwMTUtMDEtMTNUMTE6NDY6MjAuMDAwMDAwKzAwMDAsYWQsYWRfMTBzZWMsMC4xOCwxNC4yLDIwMTUtMDEtMTMsb3JnYW5pYyxVbml0ZWQgU3RhdGVzCjg2NixKVVlCRk1QRVJMRFczOTQsSlVZQkZNUEVSTERXMzk0LXFlcjM1bXhrLDIwMTUtMDEtMTNUMTE6NDM6MjAuMDAwMDAwKzAwMDAsMjAxNS0wMS0xM1QxMTo1NjowOC4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjE5LDE0LjIsMjAxNS0wMS0xMyxvcmdhbmljLFVuaXRlZCBTdGF0ZXMKODg3LEdBWUlCTFVDT0VESjczMixHQVlJQkxVQ09FREo3MzItbWwyN3NoM3osMjAxNS0wMS0xM1QxNTo0NDo1Ny4wMDAwMDArMDAwMCwyMDE1LTAxLTEzVDE1OjQ3OjIxLjAwMDAwMCswMDAwLGFkLGFkXzMwc2VjLDAuNzksNi40LDIwMTUtMDEtMDMsb3JnYW5pYyxVbml0ZWQgU3RhdGVzCjg4OCxHQVlJQkxVQ09FREo3MzIsR0FZSUJMVUNPRURKNzMyLW1sMjdzaDN6LDIwMTUtMDEtMTNUMTU6NDQ6NTcuMDAwMDAwKzAwMDAsMjAxNS0wMS0xM1QxNTo0NzozMy4wMDAwMDArMDAwMCxpYXAsb2ZmZXI0LDEzLjk5LDYuNCwyMDE1LTAxLTAzLG9yZ2FuaWMsVW5pdGVkIFN0YXRlcwo4ODksR0FZSUJMVUNPRURKNzMyLEdBWUlCTFVDT0VESjczMi1tbDI3c2gzeiwyMDE1LTAxLTEzVDE1OjQ0OjU3LjAwMDAwMCswMDAwLDIwMTUtMDEtMTNUMTU6NTA6MDkuMDAwMDAwKzAwMDAsaWFwLGdlbXMzLDE3LjQ5LDYuNCwyMDE1LTAxLTAzLG9yZ2FuaWMsVW5pdGVkIFN0YXRlcwo5MDEsR1NRSlhJT0tZTUVBNzEyLEdTUUpYSU9LWU1FQTcxMi10OThhYzdvdSwyMDE1LTAxLTEzVDIwOjM1OjQ5LjAwMDAwMCswMDAwLDIwMTUtMDEtMTNUMjA6MzY6MjUuMDAwMDAwKzAwMDAsYWQsYWRfc3VydmV5LDEuMTksMTIuMiwyMDE1LTAxLTA3LGdvb2dsZSxHZXJtYW55CjkwMixHU1FKWElPS1lNRUE3MTIsR1NRSlhJT0tZTUVBNzEyLXQ5OGFjN291LDIwMTUtMDEtMTNUMjA6MzU6NDkuMDAwMDAwKzAwMDAsMjAxNS0wMS0xM1QyMDozODowMS4wMDAwMDArMDAwMCxhZCxhZF8xNXNlYywwLjM0OTcsMTIuMiwyMDE1LTAxLTA3LGdvb2dsZSxHZXJtYW55CjkwMyxHU1FKWElPS1lNRUE3MTIsR1NRSlhJT0tZTUVBNzEyLXQ5OGFjN291LDIwMTUtMDEtMTNUMjA6MzU6NDkuMDAwMDAwKzAwMDAsMjAxNS0wMS0xM1QyMDo0NjowMS4wMDAwMDArMDAwMCxpYXAsb2ZmZXI1LDI2LjA5LDEyLjIsMjAxNS0wMS0wNyxnb29nbGUsR2VybWFueQo5MDgsS0lMV1pZSFJTSkVHMzE2LEtJTFdaWUhSU0pFRzMxNi11a2U3ZGhxaiwyMDE1LTAxLTEzVDIyOjE2OjI5LjAwMDAwMCswMDAwLDIwMTUtMDEtMTNUMjI6MTc6MzUuMDAwMDAwKzAwMDAsaWFwLG9mZmVyMiwxMC45OSwzLjIsMjAxNS0wMS0wNCxvcmdhbmljLERlbm1hcmsKOTI3LEdTUUpYSU9LWU1FQTcxMixHU1FKWElPS1lNRUE3MTItOGY1MTRrZGMsMjAxNS0wMS0xNFQwMDo1OToxMC4wMDAwMDArMDAwMCwyMDE1LTAxLTE0VDAwOjU5OjQwLjAwMDAwMCswMDAwLGlhcCxnZW1zMSwyLjI0LDguNCwyMDE1LTAxLTA3LGdvb2dsZSxHZXJtYW55CjkyOCxHU1FKWElPS1lNRUE3MTIsR1NRSlhJT0tZTUVBNzEyLThmNTE0a2RjLDIwMTUtMDEtMTRUMDA6NTk6MTAuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNFQwMTowMDowNC4wMDAwMDArMDAwMCxhZCxhZF8zMHNlYywxLjE4LDguNCwyMDE1LTAxLTA3LGdvb2dsZSxHZXJtYW55CjkyOSxIRFNBTVBUT0xCV0M0MzgsSERTQU1QVE9MQldDNDM4LWFpNG02amNoLDIwMTUtMDEtMTRUMDE6MjY6NDQuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNFQwMTozMDo1MC4wMDAwMDArMDAwMCxpYXAsb2ZmZXIyLDEwLjk5LDYuNSwyMDE1LTAxLTE0LG9yZ2FuaWMsU3dpdHplcmxhbmQKOTMwLEhEU0FNUFRPTEJXQzQzOCxIRFNBTVBUT0xCV0M0MzgtYWk0bTZqY2gsMjAxNS0wMS0xNFQwMToyNjo0NC4wMDAwMDArMDAwMCwyMDE1LTAxLTE0VDAxOjMyOjAyLjAwMDAwMCswMDAwLGlhcCxnb2xkNiw2NS45OSw2LjUsMjAxNS0wMS0xNCxvcmdhbmljLFN3aXR6ZXJsYW5kCjkzMSxIRFNBTVBUT0xCV0M0MzgsSERTQU1QVE9MQldDNDM4LWFpNG02amNoLDIwMTUtMDEtMTRUMDE6MjY6NDQuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNFQwMTozMjowMi4wMDAwMDArMDAwMCxpYXAsZ29sZDIsMi4xOSw2LjUsMjAxNS0wMS0xNCxvcmdhbmljLFN3aXR6ZXJsYW5kCjk0MSxNVENJV0tPVkFTWVA5MjUsTVRDSVdLT1ZBU1lQOTI1LTR6cXVrNWZyLDIwMTUtMDEtMTRUMDI6NDU6MjAuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNFQwMjo0ODoyNi4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMTEsMTEuNSwyMDE1LTAxLTE0LG9yZ2FuaWMsR2VybWFueQo5NDIsTVRDSVdLT1ZBU1lQOTI1LE1UQ0lXS09WQVNZUDkyNS00enF1azVmciwyMDE1LTAxLTE0VDAyOjQ1OjIwLjAwMDAwMCswMDAwLDIwMTUtMDEtMTRUMDI6NTM6MjYuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAyLDExLjUsMjAxNS0wMS0xNCxvcmdhbmljLEdlcm1hbnkKOTQzLE1UQ0lXS09WQVNZUDkyNSxNVENJV0tPVkFTWVA5MjUtNHpxdWs1ZnIsMjAxNS0wMS0xNFQwMjo0NToyMC4wMDAwMDArMDAwMCwyMDE1LTAxLTE0VDAyOjU2OjUwLjAwMDAwMCswMDAwLGlhcCxnb2xkMiwxLjc5LDExLjUsMjAxNS0wMS0xNCxvcmdhbmljLEdlcm1hbnkKOTUwLEpZRUJDTE5VWlRYUTQ1NyxKWUVCQ0xOVVpUWFE0NTctYnRvdjZpdzQsMjAxNS0wMS0xNFQwMjo1MzozNy4wMDAwMDArMDAwMCwyMDE1LTAxLTE0VDAyOjU3OjE5LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMzUsOC44LDIwMTUtMDEtMDQsb3RoZXJfY2FtcGFpZ24sRWd5cHQKOTU3LFhJQUhCTktFQ0dSTzU5OCxYSUFIQk5LRUNHUk81OTgtamxoZG5zOGksMjAxNS0wMS0xNFQwNDozMjoxNS4wMDAwMDArMDAwMCwyMDE1LTAxLTE0VDA0OjM0OjMzLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMTUsMTQuMSwyMDE1LTAxLTE0LGdvb2dsZSxFZ3lwdAo5NTgsWElBSEJOS0VDR1JPNTk4LFhJQUhCTktFQ0dSTzU5OC1qbGhkbnM4aSwyMDE1LTAxLTE0VDA0OjMyOjE1LjAwMDAwMCswMDAwLDIwMTUtMDEtMTRUMDQ6NDQ6MDMuMDAwMDAwKzAwMDAsYWQsYWRfMTBzZWMsMC4wNSwxNC4xLDIwMTUtMDEtMTQsZ29vZ2xlLEVneXB0Cjk2MyxJQ0JBVVpLR1NRUEYxNDUsSUNCQVVaS0dTUVBGMTQ1LTlldTd3emtxLDIwMTUtMDEtMTRUMDQ6MzY6NDEuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNFQwNDozNjo0Ny4wMDAwMDArMDAwMCxhZCxhZF9zdXJ2ZXksMC40NzYsMTMuOSwyMDE1LTAxLTA2LGdvb2dsZSxTb3V0aCBBZnJpY2EKOTY0LElDQkFVWktHU1FQRjE0NSxJQ0JBVVpLR1NRUEYxNDUtOWV1N3d6a3EsMjAxNS0wMS0xNFQwNDozNjo0MS4wMDAwMDArMDAwMCwyMDE1LTAxLTE0VDA0OjM3OjI5LjAwMDAwMCswMDAwLGFkLGFkXzMwc2VjLDAuNTUzLDEzLjksMjAxNS0wMS0wNixnb29nbGUsU291dGggQWZyaWNhCjk3MyxKVkJaQ1BLWEhGTVU0OTEsSlZCWkNQS1hIRk1VNDkxLXcxcTJsZXU5LDIwMTUtMDEtMTRUMDU6Mjg6NDYuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNFQwNTozMToyOC4wMDAwMDArMDAwMCxpYXAsb2ZmZXI1LDIwLjI5LDUuMSwyMDE1LTAxLTA3LG9yZ2FuaWMsVW5pdGVkIFN0YXRlcwo5NzQsSlZCWkNQS1hIRk1VNDkxLEpWQlpDUEtYSEZNVTQ5MS13MXEybGV1OSwyMDE1LTAxLTE0VDA1OjI4OjQ2LjAwMDAwMCswMDAwLDIwMTUtMDEtMTRUMDU6MzM6NDAuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA1LDUuMSwyMDE1LTAxLTA3LG9yZ2FuaWMsVW5pdGVkIFN0YXRlcwo5ODEsVkxRSFlKQ0tCT0lONzI5LFZMUUhZSkNLQk9JTjcyOS0yN3BvZ21qdiwyMDE1LTAxLTE0VDA3OjA0OjMyLjAwMDAwMCswMDAwLDIwMTUtMDEtMTRUMDc6MDg6NTYuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAzLDkuMywyMDE1LTAxLTEwLG9yZ2FuaWMsSmFwYW4KMTAwNyxRTkxWUkRFT1hGWUo4OTIsUU5MVlJERU9YRllKODkyLTkzaGVscjV1LDIwMTUtMDEtMTRUMTE6MzE6NDYuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNFQxMTozMzo0MC4wMDAwMDArMDAwMCxpYXAsZ2VtczQsNDEuOTksNi41LDIwMTUtMDEtMDksY3Jvc3Nwcm9tbyxBdXN0cmFsaWEKMTAwOCxRTkxWUkRFT1hGWUo4OTIsUU5MVlJERU9YRllKODkyLTkzaGVscjV1LDIwMTUtMDEtMTRUMTE6MzE6NDYuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNFQxMTozNDoxMC4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjE1LDYuNSwyMDE1LTAxLTA5LGNyb3NzcHJvbW8sQXVzdHJhbGlhCjEwMTksUk1PU1dISkdFTENJNjc1LFJNT1NXSEpHRUxDSTY3NS1uMXk0cjZvOSwyMDE1LTAxLTE0VDE0OjQwOjQzLjAwMDAwMCswMDAwLDIwMTUtMDEtMTRUMTQ6NDE6MzcuMDAwMDAwKzAwMDAsaWFwLGdvbGQ1LDI2LjA5LDUuOSwyMDE1LTAxLTEwLG90aGVyX2NhbXBhaWduLEZyYW5jZQoxMDM3LEpVQkRWRkhDTlFXVDE5OCxKVUJEVkZIQ05RV1QxOTgtOWg0eHMycGIsMjAxNS0wMS0xNFQxNjowODoyNS4wMDAwMDArMDAwMCwyMDE1LTAxLTE0VDE2OjA4OjQzLjAwMDAwMCswMDAwLGlhcCxvZmZlcjUsOC42OSwzLjMsMjAxNS0wMS0xNCxvcmdhbmljLFBoaWxpcHBpbmVzCjEwMzgsSlVCRFZGSENOUVdUMTk4LEpVQkRWRkhDTlFXVDE5OC05aDR4czJwYiwyMDE1LTAxLTE0VDE2OjA4OjI1LjAwMDAwMCswMDAwLDIwMTUtMDEtMTRUMTY6MTE6MDEuMDAwMDAwKzAwMDAsaWFwLG9mZmVyNCw1Ljk5LDMuMywyMDE1LTAxLTE0LG9yZ2FuaWMsUGhpbGlwcGluZXMKMTA1MCxRTkxWUkRFT1hGWUo4OTIsUU5MVlJERU9YRllKODkyLWgzam9jbGdmLDIwMTUtMDEtMTRUMTg6MjE6MTguMDAwMDAwKzAwMDAsMjAxNS0wMS0xNFQxODoyNzowMC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDUsOS40LDIwMTUtMDEtMDksY3Jvc3Nwcm9tbyxBdXN0cmFsaWEKMTA1MSxQWkJOUktTTVVMSFgyMTMsUFpCTlJLU01VTEhYMjEzLWZ4b2liam5sLDIwMTUtMDEtMTRUMTg6MzM6NTYuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNFQxODozNDoyNi4wMDAwMDArMDAwMCxpYXAsZ29sZDYsMjMuOTksMTMuMywyMDE1LTAxLTA3LG9yZ2FuaWMsSW5kaWEKMTA1MixQWkJOUktTTVVMSFgyMTMsUFpCTlJLU01VTEhYMjEzLWZ4b2liam5sLDIwMTUtMDEtMTRUMTg6MzM6NTYuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNFQxODozODo0NC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDEsMTMuMywyMDE1LTAxLTA3LG9yZ2FuaWMsSW5kaWEKMTA1MyxQWkJOUktTTVVMSFgyMTMsUFpCTlJLU01VTEhYMjEzLWZ4b2liam5sLDIwMTUtMDEtMTRUMTg6MzM6NTYuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNFQxODo0NToyNi4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDA2LDEzLjMsMjAxNS0wMS0wNyxvcmdhbmljLEluZGlhCjEwNTcsUUpHVk9CTEFUSUhXNDU3LFFKR1ZPQkxBVElIVzQ1Ny16YmxlaG1pdywyMDE1LTAxLTE0VDE5OjQ3OjM0LjAwMDAwMCswMDAwLDIwMTUtMDEtMTRUMTk6NTI6MTAuMDAwMDAwKzAwMDAsaWFwLG9mZmVyNCwxOS45OSwxMi4wLDIwMTUtMDEtMDIsb3RoZXJfY2FtcGFpZ24sU3dlZGVuCjEwNTgsUUpHVk9CTEFUSUhXNDU3LFFKR1ZPQkxBVElIVzQ1Ny16YmxlaG1pdywyMDE1LTAxLTE0VDE5OjQ3OjM0LjAwMDAwMCswMDAwLDIwMTUtMDEtMTRUMTk6NTI6NTguMDAwMDAwKzAwMDAsYWQsYWRfMTVzZWMsMC40ODQsMTIuMCwyMDE1LTAxLTAyLG90aGVyX2NhbXBhaWduLFN3ZWRlbgoxMDU5LFFKR1ZPQkxBVElIVzQ1NyxRSkdWT0JMQVRJSFc0NTctemJsZWhtaXcsMjAxNS0wMS0xNFQxOTo0NzozNC4wMDAwMDArMDAwMCwyMDE1LTAxLTE0VDE5OjU0OjIyLjAwMDAwMCswMDAwLGlhcCxnZW1zMywyNC45OSwxMi4wLDIwMTUtMDEtMDIsb3RoZXJfY2FtcGFpZ24sU3dlZGVuCjEwODUsQ0hLVVJBQlRGWkRFMzcyLENIS1VSQUJURlpERTM3Mi02Y3B6YXhuaiwyMDE1LTAxLTE1VDAyOjM4OjA4LjAwMDAwMCswMDAwLDIwMTUtMDEtMTVUMDI6NDQ6MjYuMDAwMDAwKzAwMDAsaWFwLGdvbGQ3LDEzMS45OSw5LjcsMjAxNS0wMS0xMSxvcmdhbmljLERlbm1hcmsKMTA4NixDSEtVUkFCVEZaREUzNzIsQ0hLVVJBQlRGWkRFMzcyLTZjcHpheG5qLDIwMTUtMDEtMTVUMDI6Mzg6MDguMDAwMDAwKzAwMDAsMjAxNS0wMS0xNVQwMjo0NDo1Ni4wMDAwMDArMDAwMCxhZCxhZF8xNXNlYywwLjE4Nyw5LjcsMjAxNS0wMS0xMSxvcmdhbmljLERlbm1hcmsKMTA4NyxLR1pDT0pIUEZUUVY3NTMsS0daQ09KSFBGVFFWNzUzLWxkdW90cW5mLDIwMTUtMDEtMTVUMDI6NDU6NTguMDAwMDAwKzAwMDAsMjAxNS0wMS0xNVQwMjo0OToxNi4wMDAwMDArMDAwMCxpYXAsb2ZmZXIzLDEwLjQ5LDYuMiwyMDE1LTAxLTExLG9yZ2FuaWMsVW5pdGVkIFN0YXRlcwoxMDg4LEtHWkNPSkhQRlRRVjc1MyxLR1pDT0pIUEZUUVY3NTMtbGR1b3RxbmYsMjAxNS0wMS0xNVQwMjo0NTo1OC4wMDAwMDArMDAwMCwyMDE1LTAxLTE1VDAyOjUxOjQwLjAwMDAwMCswMDAwLGlhcCxvZmZlcjMsMTAuNDksNi4yLDIwMTUtMDEtMTEsb3JnYW5pYyxVbml0ZWQgU3RhdGVzCjEwODksTkFPSlJETUNTRUJJMjgxLE5BT0pSRE1DU0VCSTI4MS1jNTFiZXBueSwyMDE1LTAxLTE1VDAyOjQ4OjE4LjAwMDAwMCswMDAwLDIwMTUtMDEtMTVUMDI6NTA6MzAuMDAwMDAwKzAwMDAsYWQsYWRfMjBzZWMsMC42MDMsMTEuMCwyMDE1LTAxLTExLG9yZ2FuaWMsTm9yd2F5CjEwOTAsTkFPSlJETUNTRUJJMjgxLE5BT0pSRE1DU0VCSTI4MS1jNTFiZXBueSwyMDE1LTAxLTE1VDAyOjQ4OjE4LjAwMDAwMCswMDAwLDIwMTUtMDEtMTVUMDI6NTE6MzAuMDAwMDAwKzAwMDAsaWFwLG9mZmVyMSw1LjQ5LDExLjAsMjAxNS0wMS0xMSxvcmdhbmljLE5vcndheQoxMDkxLE5BT0pSRE1DU0VCSTI4MSxOQU9KUkRNQ1NFQkkyODEtYzUxYmVwbnksMjAxNS0wMS0xNVQwMjo0ODoxOC4wMDAwMDArMDAwMCwyMDE1LTAxLTE1VDAyOjUyOjQ4LjAwMDAwMCswMDAwLGFkLGFkXzE1c2VjLDAuMjQzLDExLjAsMjAxNS0wMS0xMSxvcmdhbmljLE5vcndheQoxMDkyLFFKR1ZPQkxBVElIVzQ1NyxRSkdWT0JMQVRJSFc0NTctcGxtMzl5dGMsMjAxNS0wMS0xNVQwMjo1NjoxNi4wMDAwMDArMDAwMCwyMDE1LTAxLTE1VDAyOjU3OjEwLjAwMDAwMCswMDAwLGFkLGFkX3N1cnZleSwxLjEyMiwxMy44LDIwMTUtMDEtMDIsb3RoZXJfY2FtcGFpZ24sU3dlZGVuCjEwOTMsUUpHVk9CTEFUSUhXNDU3LFFKR1ZPQkxBVElIVzQ1Ny1wbG0zOXl0YywyMDE1LTAxLTE1VDAyOjU2OjE2LjAwMDAwMCswMDAwLDIwMTUtMDEtMTVUMDI6NTg6NTIuMDAwMDAwKzAwMDAsYWQsYWRfMTVzZWMsMC40NjIsMTMuOCwyMDE1LTAxLTAyLG90aGVyX2NhbXBhaWduLFN3ZWRlbgoxMDk0LFFKR1ZPQkxBVElIVzQ1NyxRSkdWT0JMQVRJSFc0NTctcGxtMzl5dGMsMjAxNS0wMS0xNVQwMjo1NjoxNi4wMDAwMDArMDAwMCwyMDE1LTAxLTE1VDAzOjAyOjQwLjAwMDAwMCswMDAwLGlhcCxnb2xkMSwwLjk5LDEzLjgsMjAxNS0wMS0wMixvdGhlcl9jYW1wYWlnbixTd2VkZW4KMTEwNSxCRk5MVVJJU0pYVEg2NDcsQkZOTFVSSVNKWFRINjQ3LWdzdmpiN3dlLDIwMTUtMDEtMTVUMDU6MDE6NTAuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNVQwNTowNTowMi4wMDAwMDArMDAwMCxpYXAsZ29sZDUsMTEuNTksMTMuNSwyMDE1LTAxLTEwLG9yZ2FuaWMsSW5kaWEKMTEwNixCRk5MVVJJU0pYVEg2NDcsQkZOTFVSSVNKWFRINjQ3LWdzdmpiN3dlLDIwMTUtMDEtMTVUMDU6MDE6NTAuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNVQwNTowODo0NC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDIyLDEzLjUsMjAxNS0wMS0xMCxvcmdhbmljLEluZGlhCjExMTAsRExURlZRV1lJWFJKNTg5LERMVEZWUVdZSVhSSjU4OS1ub2hmYWUzNywyMDE1LTAxLTE1VDA1OjE2OjA0LjAwMDAwMCswMDAwLDIwMTUtMDEtMTVUMDU6MjI6NDYuMDAwMDAwKzAwMDAsYWQsYWRfMTBzZWMsMC4wOTgsMTMuMCwyMDE1LTAxLTEzLG9yZ2FuaWMsU291dGggQWZyaWNhCjExMTEsRExURlZRV1lJWFJKNTg5LERMVEZWUVdZSVhSSjU4OS1ub2hmYWUzNywyMDE1LTAxLTE1VDA1OjE2OjA0LjAwMDAwMCswMDAwLDIwMTUtMDEtMTVUMDU6MjU6MzQuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA0MSwxMy4wLDIwMTUtMDEtMTMsb3JnYW5pYyxTb3V0aCBBZnJpY2EKMTExOCxIRFNBTVBUT0xCV0M0MzgsSERTQU1QVE9MQldDNDM4LTI4dXE3bGFoLDIwMTUtMDEtMTVUMDY6MTM6MjcuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNVQwNjoxNTowOS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMTA4LDEwLjQsMjAxNS0wMS0xNCxvcmdhbmljLFN3aXR6ZXJsYW5kCjExMTksSERTQU1QVE9MQldDNDM4LEhEU0FNUFRPTEJXQzQzOC0yOHVxN2xhaCwyMDE1LTAxLTE1VDA2OjEzOjI3LjAwMDAwMCswMDAwLDIwMTUtMDEtMTVUMDY6MjE6NTcuMDAwMDAwKzAwMDAsaWFwLGdlbXM0LDY1Ljk5LDEwLjQsMjAxNS0wMS0xNCxvcmdhbmljLFN3aXR6ZXJsYW5kCjExMjgsSUNCQVVaS0dTUVBGMTQ1LElDQkFVWktHU1FQRjE0NS11OGVnZmE1aywyMDE1LTAxLTE1VDA3OjI1OjUyLjAwMDAwMCswMDAwLDIwMTUtMDEtMTVUMDc6Mjg6MjguMDAwMDAwKzAwMDAsYWQsYWRfMzBzZWMsMC43Nyw2LjQsMjAxNS0wMS0wNixnb29nbGUsU291dGggQWZyaWNhCjExNTgsRExURlZRV1lJWFJKNTg5LERMVEZWUVdZSVhSSjU4OS1zNmJranF5MywyMDE1LTAxLTE1VDExOjA4OjM3LjAwMDAwMCswMDAwLDIwMTUtMDEtMTVUMTE6MDk6MDcuMDAwMDAwKzAwMDAsaWFwLGdlbXMyLDYuOTksMTIuMSwyMDE1LTAxLTEzLG9yZ2FuaWMsU291dGggQWZyaWNhCjExNjQsSUNCQVVaS0dTUVBGMTQ1LElDQkFVWktHU1FQRjE0NS1ueXIxZDZrcCwyMDE1LTAxLTE1VDExOjQ3OjE4LjAwMDAwMCswMDAwLDIwMTUtMDEtMTVUMTE6NDg6NDIuMDAwMDAwKzAwMDAsaWFwLGdlbXMzLDE3LjQ5LDUuNCwyMDE1LTAxLTA2LGdvb2dsZSxTb3V0aCBBZnJpY2EKMTE3NyxKVkJaQ1BLWEhGTVU0OTEsSlZCWkNQS1hIRk1VNDkxLTNlaHk3ZHE5LDIwMTUtMDEtMTVUMTY6Mzc6NDkuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNVQxNjo0MTo1NS4wMDAwMDArMDAwMCxpYXAsZ29sZDcsODMuOTksOC4wLDIwMTUtMDEtMDcsb3JnYW5pYyxVbml0ZWQgU3RhdGVzCjExNzgsSlZCWkNQS1hIRk1VNDkxLEpWQlpDUEtYSEZNVTQ5MS0zZWh5N2RxOSwyMDE1LTAxLTE1VDE2OjM3OjQ5LjAwMDAwMCswMDAwLDIwMTUtMDEtMTVUMTY6NDU6MjUuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA3LDguMCwyMDE1LTAxLTA3LG9yZ2FuaWMsVW5pdGVkIFN0YXRlcwoxMTg5LEJTRU5UQ1dMSk1QSTI1OCxCU0VOVENXTEpNUEkyNTgtODl4dWRxYWIsMjAxNS0wMS0xNVQyMDoxOTo1NC4wMDAwMDArMDAwMCwyMDE1LTAxLTE1VDIwOjIxOjM2LjAwMDAwMCswMDAwLGlhcCxvZmZlcjEsMi40OSw3LjMsMjAxNS0wMS0xNSxvcmdhbmljLEVneXB0CjExOTAsQlNFTlRDV0xKTVBJMjU4LEJTRU5UQ1dMSk1QSTI1OC04OXh1ZHFhYiwyMDE1LTAxLTE1VDIwOjE5OjU0LjAwMDAwMCswMDAwLDIwMTUtMDEtMTVUMjA6MjM6MTguMDAwMDAwKzAwMDAsYWQsYWRfc3VydmV5LDAuNjksNy4zLDIwMTUtMDEtMTUsb3JnYW5pYyxFZ3lwdAoxMTkxLFJZWkhBSkVYTUJJRjcyNCxSWVpIQUpFWE1CSUY3MjQtcGVobGI4MzYsMjAxNS0wMS0xNVQyMDoyODoxMi4wMDAwMDArMDAwMCwyMDE1LTAxLTE1VDIwOjMwOjMwLjAwMDAwMCswMDAwLGlhcCxvZmZlcjUsMjAuMjksNi4yLDIwMTUtMDEtMTUsZ29vZ2xlLFBvcnR1Z2FsCjExOTIsUllaSEFKRVhNQklGNzI0LFJZWkhBSkVYTUJJRjcyNC1wZWhsYjgzNiwyMDE1LTAxLTE1VDIwOjI4OjEyLjAwMDAwMCswMDAwLDIwMTUtMDEtMTVUMjA6MzE6MTguMDAwMDAwKzAwMDAsaWFwLGdlbXM0LDQxLjk5LDYuMiwyMDE1LTAxLTE1LGdvb2dsZSxQb3J0dWdhbAoxMjAwLFJZWkhBSkVYTUJJRjcyNCxSWVpIQUpFWE1CSUY3MjQtM3ptMWFiaTIsMjAxNS0wMS0xNVQyMjozNDowNi4wMDAwMDArMDAwMCwyMDE1LTAxLTE1VDIyOjM1OjE4LjAwMDAwMCswMDAwLGFkLGFkXzIwc2VjLDAuNTQsNi4wLDIwMTUtMDEtMTUsZ29vZ2xlLFBvcnR1Z2FsCjEyMDksUURVWkpJRVRDQUdXNjU0LFFEVVpKSUVUQ0FHVzY1NC03bHZ6cnQ4aywyMDE1LTAxLTE2VDAwOjIwOjQ3LjAwMDAwMCswMDAwLDIwMTUtMDEtMTZUMDA6MzE6NTMuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjE0NCwxNC4zLDIwMTUtMDEtMDcsZmFjZWJvb2ssU3dpdHplcmxhbmQKMTIxMCxSWVpIQUpFWE1CSUY3MjQsUllaSEFKRVhNQklGNzI0LXFwaWhtcng1LDIwMTUtMDEtMTZUMDE6MTg6MTIuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNlQwMToyNTo1NC4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjA4MSwxNC4wLDIwMTUtMDEtMTUsZ29vZ2xlLFBvcnR1Z2FsCjEyMjMsV0JLRllKWENaTlVINTYzLFdCS0ZZSlhDWk5VSDU2My1obXVhNjU3MywyMDE1LTAxLTE2VDAzOjAyOjIyLjAwMDAwMCswMDAwLDIwMTUtMDEtMTZUMDM6MDM6NDYuMDAwMDAwKzAwMDAsYWQsYWRfMzBzZWMsMC45NCwxMy44LDIwMTUtMDEtMTMsb3JnYW5pYyxDYW5hZGEKMTIyNCxXQktGWUpYQ1pOVUg1NjMsV0JLRllKWENaTlVINTYzLWhtdWE2NTczLDIwMTUtMDEtMTZUMDM6MDI6MjIuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNlQwMzoxNTo0MC4wMDAwMDArMDAwMCxpYXAsZ29sZDEsMC42OSwxMy44LDIwMTUtMDEtMTMsb3JnYW5pYyxDYW5hZGEKMTIyNSxGWFdETktJVU1KWVI0NzEsRlhXRE5LSVVNSllSNDcxLTZ0aHZ5cW5pLDIwMTUtMDEtMTZUMDM6MjE6MDYuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNlQwMzoyNjozNi4wMDAwMDArMDAwMCxhZCxhZF9zdXJ2ZXksMC42Nyw4LjIsMjAxNS0wMS0xMCxvcmdhbmljLFVuaXRlZCBTdGF0ZXMKMTIyOCxCRk5MVVJJU0pYVEg2NDcsQkZOTFVSSVNKWFRINjQ3LWZkYXN3eXFnLDIwMTUtMDEtMTZUMDM6NDc6MTQuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNlQwMzo1MjoyNi4wMDAwMDArMDAwMCxpYXAsb2ZmZXIzLDUuOTksMTIuMSwyMDE1LTAxLTEwLG9yZ2FuaWMsSW5kaWEKMTIyOSxCRk5MVVJJU0pYVEg2NDcsQkZOTFVSSVNKWFRINjQ3LWZkYXN3eXFnLDIwMTUtMDEtMTZUMDM6NDc6MTQuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNlQwMzo1MjozMi4wMDAwMDArMDAwMCxhZCxhZF8yMHNlYywwLjA4NCwxMi4xLDIwMTUtMDEtMTAsb3JnYW5pYyxJbmRpYQoxMjMwLEJGTkxVUklTSlhUSDY0NyxCRk5MVVJJU0pYVEg2NDctZmRhc3d5cWcsMjAxNS0wMS0xNlQwMzo0NzoxNC4wMDAwMDArMDAwMCwyMDE1LTAxLTE2VDAzOjU1OjAyLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMTgsMTIuMSwyMDE1LTAxLTEwLG9yZ2FuaWMsSW5kaWEKMTI1NCxLSUxXWllIUlNKRUczMTYsS0lMV1pZSFJTSkVHMzE2LWx2Z2g0cWF1LDIwMTUtMDEtMTZUMDg6MTA6MzQuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNlQwODoxNDo0Ni4wMDAwMDArMDAwMCxhZCxhZF8zMHNlYywxLjAzNCw4LjAsMjAxNS0wMS0wNCxvcmdhbmljLERlbm1hcmsKMTI3MCxQSk9UQk5IWExGUlEyNjUsUEpPVEJOSFhMRlJRMjY1LWxha2lzdDhwLDIwMTUtMDEtMTZUMTA6MTI6NTAuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNlQxMDoxNzo0NC4wMDAwMDArMDAwMCxhZCxhZF9zdXJ2ZXksMC41MywxNC40LDIwMTUtMDEtMTYsb3JnYW5pYyxBdXN0cmlhCjEyNzEsUEpPVEJOSFhMRlJRMjY1LFBKT1RCTkhYTEZSUTI2NS1sYWtpc3Q4cCwyMDE1LTAxLTE2VDEwOjEyOjUwLjAwMDAwMCswMDAwLDIwMTUtMDEtMTZUMTA6MTc6NTAuMDAwMDAwKzAwMDAsYWQsYWRfc3VydmV5LDEuMjEsMTQuNCwyMDE1LTAxLTE2LG9yZ2FuaWMsQXVzdHJpYQoxMjcyLFBKT1RCTkhYTEZSUTI2NSxQSk9UQk5IWExGUlEyNjUtbGFraXN0OHAsMjAxNS0wMS0xNlQxMDoxMjo1MC4wMDAwMDArMDAwMCwyMDE1LTAxLTE2VDEwOjIwOjA4LjAwMDAwMCswMDAwLGlhcCxnZW1zMSwyLjI0LDE0LjQsMjAxNS0wMS0xNixvcmdhbmljLEF1c3RyaWEKMTI4NSxXTlZCQVlHQ0xKSVI1MTcsV05WQkFZR0NMSklSNTE3LXFqbmYzcHI2LDIwMTUtMDEtMTZUMTI6MTU6MDEuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNlQxMjoyMjozMS4wMDAwMDArMDAwMCxhZCxhZF8xNXNlYywwLjI2NCw4LjYsMjAxNS0wMS0xMyxmYWNlYm9vayxTd2VkZW4KMTI5MSxaUFRJSE5TVkZZQVExNDYsWlBUSUhOU1ZGWUFRMTQ2LXU4YzRucTc1LDIwMTUtMDEtMTZUMTI6MjM6NTkuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNlQxMjozMToyMy4wMDAwMDArMDAwMCxpYXAsZ29sZDMsMS45OSwxMC4yLDIwMTUtMDEtMDQsZmFjZWJvb2ssTWV4aWNvCjEyOTIsWlBUSUhOU1ZGWUFRMTQ2LFpQVElITlNWRllBUTE0Ni11OGM0bnE3NSwyMDE1LTAxLTE2VDEyOjIzOjU5LjAwMDAwMCswMDAwLDIwMTUtMDEtMTZUMTI6MzE6MjMuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA3MiwxMC4yLDIwMTUtMDEtMDQsZmFjZWJvb2ssTWV4aWNvCjEyOTMsWlBUSUhOU1ZGWUFRMTQ2LFpQVElITlNWRllBUTE0Ni11OGM0bnE3NSwyMDE1LTAxLTE2VDEyOjIzOjU5LjAwMDAwMCswMDAwLDIwMTUtMDEtMTZUMTI6MzI6MTcuMDAwMDAwKzAwMDAsYWQsYWRfcGxheWFibGUsMC45MiwxMC4yLDIwMTUtMDEtMDQsZmFjZWJvb2ssTWV4aWNvCjEzMDEsV0VQS1lOUlhERlVUNTcyLFdFUEtZTlJYREZVVDU3Mi1haDhiNms5NSwyMDE1LTAxLTE2VDEzOjExOjI2LjAwMDAwMCswMDAwLDIwMTUtMDEtMTZUMTM6MTg6MDIuMDAwMDAwKzAwMDAsYWQsYWRfc3VydmV5LDAuNiwxMi45LDIwMTUtMDEtMTMsY3Jvc3Nwcm9tbyxDaGluYQoxMzAyLFdFUEtZTlJYREZVVDU3MixXRVBLWU5SWERGVVQ1NzItYWg4YjZrOTUsMjAxNS0wMS0xNlQxMzoxMToyNi4wMDAwMDArMDAwMCwyMDE1LTAxLTE2VDEzOjE4OjIwLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNzIsMTIuOSwyMDE1LTAxLTEzLGNyb3NzcHJvbW8sQ2hpbmEKMTMxOCxLR1pDT0pIUEZUUVY3NTMsS0daQ09KSFBGVFFWNzUzLTZrOXhpdWdyLDIwMTUtMDEtMTZUMTQ6NTU6MzIuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNlQxNTowMDozMi4wMDAwMDArMDAwMCxhZCxhZF9wbGF5YWJsZSwxLjA3LDUuMCwyMDE1LTAxLTExLG9yZ2FuaWMsVW5pdGVkIFN0YXRlcwoxMzE5LE1YQ09WRVlJQUtGSDU5NCxNWENPVkVZSUFLRkg1OTQtamhuYzJydjUsMjAxNS0wMS0xNlQxNTowMjo1NS4wMDAwMDArMDAwMCwyMDE1LTAxLTE2VDE1OjA0OjE5LjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMTIsMTQuNiwyMDE1LTAxLTEwLG9yZ2FuaWMsQ2hpbmEKMTMyMCxNVENJV0tPVkFTWVA5MjUsTVRDSVdLT1ZBU1lQOTI1LWZ0Y2JzMjE3LDIwMTUtMDEtMTZUMTU6Mjc6MjQuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNlQxNTozMDoyNC4wMDAwMDArMDAwMCxhZCxhZF8yMHNlYywwLjc5LDcuMSwyMDE1LTAxLTE0LG9yZ2FuaWMsR2VybWFueQoxMzIxLEdKQ1hOVFdFQklQUTM2OSxHSkNYTlRXRUJJUFEzNjktNmJ2YzVncWQsMjAxNS0wMS0xNlQxNTozMjozNC4wMDAwMDArMDAwMCwyMDE1LTAxLTE2VDE1OjMyOjUyLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMiw1LjEsMjAxNS0wMS0xNCxvcmdhbmljLFVuaXRlZCBTdGF0ZXMKMTMyMixHSkNYTlRXRUJJUFEzNjksR0pDWE5UV0VCSVBRMzY5LTZidmM1Z3FkLDIwMTUtMDEtMTZUMTU6MzI6MzQuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNlQxNTozMzoyOC4wMDAwMDArMDAwMCxpYXAsZ2VtczMsMTcuNDksNS4xLDIwMTUtMDEtMTQsb3JnYW5pYyxVbml0ZWQgU3RhdGVzCjEzMjMsR0pDWE5UV0VCSVBRMzY5LEdKQ1hOVFdFQklQUTM2OS02YnZjNWdxZCwyMDE1LTAxLTE2VDE1OjMyOjM0LjAwMDAwMCswMDAwLDIwMTUtMDEtMTZUMTU6MzQ6NTIuMDAwMDAwKzAwMDAsaWFwLG9mZmVyNSwyMC4yOSw1LjEsMjAxNS0wMS0xNCxvcmdhbmljLFVuaXRlZCBTdGF0ZXMKMTMzMCxLSUxXWllIUlNKRUczMTYsS0lMV1pZSFJTSkVHMzE2LXpvaWF2OHl0LDIwMTUtMDEtMTZUMTc6NDQ6MTAuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNlQxNzo0NjoyMi4wMDAwMDArMDAwMCxpYXAsb2ZmZXI0LDIxLjk5LDcuMSwyMDE1LTAxLTA0LG9yZ2FuaWMsRGVubWFyawoxMzM3LElDQkFVWktHU1FQRjE0NSxJQ0JBVVpLR1NRUEYxNDUtbXh3MW9ndXAsMjAxNS0wMS0xNlQyMDoyOTowMy4wMDAwMDArMDAwMCwyMDE1LTAxLTE2VDIwOjI5OjM5LjAwMDAwMCswMDAwLGFkLGFkXzE1c2VjLDAuMTQ5OSw4LjAsMjAxNS0wMS0wNixnb29nbGUsU291dGggQWZyaWNhCjEzMzgsSUNCQVVaS0dTUVBGMTQ1LElDQkFVWktHU1FQRjE0NS1teHcxb2d1cCwyMDE1LTAxLTE2VDIwOjI5OjAzLjAwMDAwMCswMDAwLDIwMTUtMDEtMTZUMjA6MzA6MzMuMDAwMDAwKzAwMDAsaWFwLGdvbGQxLDAuNjksOC4wLDIwMTUtMDEtMDYsZ29vZ2xlLFNvdXRoIEFmcmljYQoxMzM5LElDQkFVWktHU1FQRjE0NSxJQ0JBVVpLR1NRUEYxNDUtbXh3MW9ndXAsMjAxNS0wMS0xNlQyMDoyOTowMy4wMDAwMDArMDAwMCwyMDE1LTAxLTE2VDIwOjMyOjA5LjAwMDAwMCswMDAwLGlhcCxnZW1zMSwxLjc0LDguMCwyMDE1LTAxLTA2LGdvb2dsZSxTb3V0aCBBZnJpY2EKMTM0MCxJQ0JBVVpLR1NRUEYxNDUsSUNCQVVaS0dTUVBGMTQ1LW14dzFvZ3VwLDIwMTUtMDEtMTZUMjA6Mjk6MDMuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNlQyMDozMzoxNS4wMDAwMDArMDAwMCxpYXAsZ29sZDIsMS4zOSw4LjAsMjAxNS0wMS0wNixnb29nbGUsU291dGggQWZyaWNhCjEzNTgsSUNCQVVaS0dTUVBGMTQ1LElDQkFVWktHU1FQRjE0NS1nNnZodzcyaSwyMDE1LTAxLTE2VDIyOjU3OjEzLjAwMDAwMCswMDAwLDIwMTUtMDEtMTZUMjM6MDI6MTkuMDAwMDAwKzAwMDAsYWQsYWRfc3VydmV5LDEuMDAxLDYuMiwyMDE1LTAxLTA2LGdvb2dsZSxTb3V0aCBBZnJpY2EKMTM2NyxHSkNYTlRXRUJJUFEzNjksR0pDWE5UV0VCSVBRMzY5LXh1aHNyNXQyLDIwMTUtMDEtMTdUMDE6MTQ6NDIuMDAwMDAwKzAwMDAsMjAxNS0wMS0xN1QwMToxNTowNi4wMDAwMDArMDAwMCxhZCxhZF8xNXNlYywwLjU1LDkuMSwyMDE1LTAxLTE0LG9yZ2FuaWMsVW5pdGVkIFN0YXRlcwoxMzc0LEZYV0ROS0lVTUpZUjQ3MSxGWFdETktJVU1KWVI0NzEtdHluazRybW8sMjAxNS0wMS0xN1QwMTozNzowMy4wMDAwMDArMDAwMCwyMDE1LTAxLTE3VDAxOjQzOjUxLjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMiwxMS44LDIwMTUtMDEtMTAsb3JnYW5pYyxVbml0ZWQgU3RhdGVzCjEzNzksSERTQU1QVE9MQldDNDM4LEhEU0FNUFRPTEJXQzQzOC1kb3Q5MjFsaywyMDE1LTAxLTE3VDAyOjMzOjU2LjAwMDAwMCswMDAwLDIwMTUtMDEtMTdUMDI6Mzc6MjAuMDAwMDAwKzAwMDAsaWFwLGdvbGQ2LDY1Ljk5LDEyLjIsMjAxNS0wMS0xNCxvcmdhbmljLFN3aXR6ZXJsYW5kCjEzODAsSERTQU1QVE9MQldDNDM4LEhEU0FNUFRPTEJXQzQzOC1kb3Q5MjFsaywyMDE1LTAxLTE3VDAyOjMzOjU2LjAwMDAwMCswMDAwLDIwMTUtMDEtMTdUMDI6Mzg6MTQuMDAwMDAwKzAwMDAsYWQsYWRfMTBzZWMsMC4xMzIsMTIuMiwyMDE1LTAxLTE0LG9yZ2FuaWMsU3dpdHplcmxhbmQKMTM4MSxIRFNBTVBUT0xCV0M0MzgsSERTQU1QVE9MQldDNDM4LWRvdDkyMWxrLDIwMTUtMDEtMTdUMDI6MzM6NTYuMDAwMDAwKzAwMDAsMjAxNS0wMS0xN1QwMjo0MDo0NC4wMDAwMDArMDAwMCxhZCxhZF8xNXNlYywwLjU4OCwxMi4yLDIwMTUtMDEtMTQsb3JnYW5pYyxTd2l0emVybGFuZAoxMzgyLEhEU0FNUFRPTEJXQzQzOCxIRFNBTVBUT0xCV0M0MzgtZG90OTIxbGssMjAxNS0wMS0xN1QwMjozMzo1Ni4wMDAwMDArMDAwMCwyMDE1LTAxLTE3VDAyOjQ0OjAyLjAwMDAwMCswMDAwLGlhcCxnZW1zNCw2NS45OSwxMi4yLDIwMTUtMDEtMTQsb3JnYW5pYyxTd2l0emVybGFuZAoxMzg2LFpHRVZRSlNLRklCWDM5OCxaR0VWUUpTS0ZJQlgzOTgtdWhzejRydmQsMjAxNS0wMS0xN1QwMzowOToyMy4wMDAwMDArMDAwMCwyMDE1LTAxLTE3VDAzOjEzOjE3LjAwMDAwMCswMDAwLGFkLGFkXzIwc2VjLDAuNzcsOC4wLDIwMTUtMDEtMTcsb3JnYW5pYyxTb3V0aCBLb3JlYQoxMzg3LFpHRVZRSlNLRklCWDM5OCxaR0VWUUpTS0ZJQlgzOTgtdWhzejRydmQsMjAxNS0wMS0xN1QwMzowOToyMy4wMDAwMDArMDAwMCwyMDE1LTAxLTE3VDAzOjE2OjA1LjAwMDAwMCswMDAwLGlhcCxvZmZlcjIsNy45OSw4LjAsMjAxNS0wMS0xNyxvcmdhbmljLFNvdXRoIEtvcmVhCjE0MDAsWElBSEJOS0VDR1JPNTk4LFhJQUhCTktFQ0dSTzU5OC1ncnZ1MXA2ZiwyMDE1LTAxLTE3VDAzOjM4OjM2LjAwMDAwMCswMDAwLDIwMTUtMDEtMTdUMDM6NDI6MTIuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA1NSwxMS4yLDIwMTUtMDEtMTQsZ29vZ2xlLEVneXB0CjE0MDEsWElBSEJOS0VDR1JPNTk4LFhJQUhCTktFQ0dSTzU5OC1ncnZ1MXA2ZiwyMDE1LTAxLTE3VDAzOjM4OjM2LjAwMDAwMCswMDAwLDIwMTUtMDEtMTdUMDM6NDU6NDguMDAwMDAwKzAwMDAsaWFwLG9mZmVyMiw0Ljk5LDExLjIsMjAxNS0wMS0xNCxnb29nbGUsRWd5cHQKMTQwNixNWVFHSktPVUlXSEY2MTksTVlRR0pLT1VJV0hGNjE5LTVobnRtaXd5LDIwMTUtMDEtMTdUMDQ6MDM6MTMuMDAwMDAwKzAwMDAsMjAxNS0wMS0xN1QwNDowODoxMy4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDI0LDguMywyMDE1LTAxLTE2LG9yZ2FuaWMsSW5kaWEKMTQwOCxKWUVCQ0xOVVpUWFE0NTcsSllFQkNMTlVaVFhRNDU3LWRtdmt5Mm5oLDIwMTUtMDEtMTdUMDU6MzY6MzcuMDAwMDAwKzAwMDAsMjAxNS0wMS0xN1QwNTozOTo1NS4wMDAwMDArMDAwMCxhZCxhZF8xNXNlYywwLjI0LDEyLjQsMjAxNS0wMS0wNCxvdGhlcl9jYW1wYWlnbixFZ3lwdAoxNDA5LEpZRUJDTE5VWlRYUTQ1NyxKWUVCQ0xOVVpUWFE0NTctZG12a3kybmgsMjAxNS0wMS0xN1QwNTozNjozNy4wMDAwMDArMDAwMCwyMDE1LTAxLTE3VDA1OjQyOjAxLjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMDM1LDEyLjQsMjAxNS0wMS0wNCxvdGhlcl9jYW1wYWlnbixFZ3lwdAoxNDEwLE1ZUUdKS09VSVdIRjYxOSxNWVFHSktPVUlXSEY2MTktdGx3Y3N5NzYsMjAxNS0wMS0xN1QwNjoyMzo1OC4wMDAwMDArMDAwMCwyMDE1LTAxLTE3VDA2OjI0OjEwLjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMDI4LDEyLjMsMjAxNS0wMS0xNixvcmdhbmljLEluZGlhCjE0MTEsTVlRR0pLT1VJV0hGNjE5LE1ZUUdKS09VSVdIRjYxOS10bHdjc3k3NiwyMDE1LTAxLTE3VDA2OjIzOjU4LjAwMDAwMCswMDAwLDIwMTUtMDEtMTdUMDY6Mjk6MDQuMDAwMDAwKzAwMDAsYWQsYWRfMTBzZWMsMC4wMTQsMTIuMywyMDE1LTAxLTE2LG9yZ2FuaWMsSW5kaWEKMTQyNSxXQktGWUpYQ1pOVUg1NjMsV0JLRllKWENaTlVINTYzLWxtam51NzFnLDIwMTUtMDEtMTdUMDg6MzM6MDAuMDAwMDAwKzAwMDAsMjAxNS0wMS0xN1QwODozNTozMC4wMDAwMDArMDAwMCxhZCxhZF8xNXNlYywwLjQyLDE0LjYsMjAxNS0wMS0xMyxvcmdhbmljLENhbmFkYQoxNDI2LFdCS0ZZSlhDWk5VSDU2MyxXQktGWUpYQ1pOVUg1NjMtbG1qbnU3MWcsMjAxNS0wMS0xN1QwODozMzowMC4wMDAwMDArMDAwMCwyMDE1LTAxLTE3VDA4OjQ2OjQyLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNSwxNC42LDIwMTUtMDEtMTMsb3JnYW5pYyxDYW5hZGEKMTQ0MCxLSUxXWllIUlNKRUczMTYsS0lMV1pZSFJTSkVHMzE2LTMxcGh6Zjg3LDIwMTUtMDEtMTdUMTA6MjQ6NTIuMDAwMDAwKzAwMDAsMjAxNS0wMS0xN1QxMDoyNDo1OC4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjE3NiwxNC45LDIwMTUtMDEtMDQsb3JnYW5pYyxEZW5tYXJrCjE0NDEsS0lMV1pZSFJTSkVHMzE2LEtJTFdaWUhSU0pFRzMxNi0zMXBoemY4NywyMDE1LTAxLTE3VDEwOjI0OjUyLjAwMDAwMCswMDAwLDIwMTUtMDEtMTdUMTA6Mjk6NTIuMDAwMDAwKzAwMDAsaWFwLG9mZmVyMiwxMC45OSwxNC45LDIwMTUtMDEtMDQsb3JnYW5pYyxEZW5tYXJrCjE0NTMsUEpPVEJOSFhMRlJRMjY1LFBKT1RCTkhYTEZSUTI2NS05MjdvbWc0eiwyMDE1LTAxLTE3VDExOjA3OjE3LjAwMDAwMCswMDAwLDIwMTUtMDEtMTdUMTE6MTA6NDcuMDAwMDAwKzAwMDAsYWQsYWRfMTVzZWMsMC40MiwxMi41LDIwMTUtMDEtMTYsb3JnYW5pYyxBdXN0cmlhCjE0NTQsUEpPVEJOSFhMRlJRMjY1LFBKT1RCTkhYTEZSUTI2NS05MjdvbWc0eiwyMDE1LTAxLTE3VDExOjA3OjE3LjAwMDAwMCswMDAwLDIwMTUtMDEtMTdUMTE6MTY6MTcuMDAwMDAwKzAwMDAsYWQsYWRfMTBzZWMsMC4xOSwxMi41LDIwMTUtMDEtMTYsb3JnYW5pYyxBdXN0cmlhCjE0NTUsR0pDWE5UV0VCSVBRMzY5LEdKQ1hOVFdFQklQUTM2OS00NmNkanp5NywyMDE1LTAxLTE3VDExOjI1OjI1LjAwMDAwMCswMDAwLDIwMTUtMDEtMTdUMTE6Mjg6MDEuMDAwMDAwKzAwMDAsaWFwLG9mZmVyNCwxMy45OSw0LjYsMjAxNS0wMS0xNCxvcmdhbmljLFVuaXRlZCBTdGF0ZXMKMTQ4MixaUFRJSE5TVkZZQVExNDYsWlBUSUhOU1ZGWUFRMTQ2LTJ2cjR5enNqLDIwMTUtMDEtMTdUMTU6MDg6NTcuMDAwMDAwKzAwMDAsMjAxNS0wMS0xN1QxNToxMTo0NS4wMDAwMDArMDAwMCxhZCxhZF8xNXNlYywwLjEyLDE0LjAsMjAxNS0wMS0wNCxmYWNlYm9vayxNZXhpY28KMTQ4MyxaUFRJSE5TVkZZQVExNDYsWlBUSUhOU1ZGWUFRMTQ2LTJ2cjR5enNqLDIwMTUtMDEtMTdUMTU6MDg6NTcuMDAwMDAwKzAwMDAsMjAxNS0wMS0xN1QxNToxNDoyNy4wMDAwMDArMDAwMCxpYXAsZ2VtczMsOS45OSwxNC4wLDIwMTUtMDEtMDQsZmFjZWJvb2ssTWV4aWNvCjE0ODQsWlBUSUhOU1ZGWUFRMTQ2LFpQVElITlNWRllBUTE0Ni0ydnI0eXpzaiwyMDE1LTAxLTE3VDE1OjA4OjU3LjAwMDAwMCswMDAwLDIwMTUtMDEtMTdUMTU6MjI6MDMuMDAwMDAwKzAwMDAsYWQsYWRfMTVzZWMsMC4zNTQsMTQuMCwyMDE1LTAxLTA0LGZhY2Vib29rLE1leGljbwoxNDkwLFFEVVpKSUVUQ0FHVzY1NCxRRFVaSklFVENBR1c2NTQtdm8zaGt1MjgsMjAxNS0wMS0xN1QxNjoxNDoyOC4wMDAwMDArMDAwMCwyMDE1LTAxLTE3VDE2OjIxOjU4LjAwMDAwMCswMDAwLGlhcCxnb2xkMiwyLjE5LDguNiwyMDE1LTAxLTA3LGZhY2Vib29rLFN3aXR6ZXJsYW5kCjE1MTUsUk1PU1dISkdFTENJNjc1LFJNT1NXSEpHRUxDSTY3NS1qdjJxbnlvNiwyMDE1LTAxLTE3VDIwOjM5OjA5LjAwMDAwMCswMDAwLDIwMTUtMDEtMTdUMjA6NDQ6MzkuMDAwMDAwKzAwMDAsYWQsYWRfc3VydmV5LDAuOTQsOC42LDIwMTUtMDEtMTAsb3RoZXJfY2FtcGFpZ24sRnJhbmNlCjE1MTYsT01DVlVBSUtTRFRSNjUxLE9NQ1ZVQUlLU0RUUjY1MS15c285ZTFiMiwyMDE1LTAxLTE3VDIwOjU4OjM0LjAwMDAwMCswMDAwLDIwMTUtMDEtMTdUMjE6MDE6MzQuMDAwMDAwKzAwMDAsaWFwLG9mZmVyMywxMC40OSw0LjIsMjAxNS0wMS0wNyxvdGhlcl9jYW1wYWlnbixVbml0ZWQgU3RhdGVzCjE1MTcsT01DVlVBSUtTRFRSNjUxLE9NQ1ZVQUlLU0RUUjY1MS15c285ZTFiMiwyMDE1LTAxLTE3VDIwOjU4OjM0LjAwMDAwMCswMDAwLDIwMTUtMDEtMTdUMjE6MDI6MzQuMDAwMDAwKzAwMDAsaWFwLG9mZmVyNSwyMC4yOSw0LjIsMjAxNS0wMS0wNyxvdGhlcl9jYW1wYWlnbixVbml0ZWQgU3RhdGVzCjE1NDksUURVWkpJRVRDQUdXNjU0LFFEVVpKSUVUQ0FHVzY1NC01bWFrODQ2NywyMDE1LTAxLTE4VDAyOjAyOjU4LjAwMDAwMCswMDAwLDIwMTUtMDEtMThUMDI6MDY6MTYuMDAwMDAwKzAwMDAsYWQsYWRfc3VydmV5LDEuNTI0LDUuMywyMDE1LTAxLTA3LGZhY2Vib29rLFN3aXR6ZXJsYW5kCjE1NTQsUU5MVlJERU9YRllKODkyLFFOTFZSREVPWEZZSjg5Mi1mM2p0NGg1OSwyMDE1LTAxLTE4VDAzOjAyOjE2LjAwMDAwMCswMDAwLDIwMTUtMDEtMThUMDM6MDY6MjIuMDAwMDAwKzAwMDAsYWQsYWRfMTBzZWMsMC4xNyw3LjMsMjAxNS0wMS0wOSxjcm9zc3Byb21vLEF1c3RyYWxpYQoxNTY1LFFKR1ZPQkxBVElIVzQ1NyxRSkdWT0JMQVRJSFc0NTctdmY0dTdkZ3MsMjAxNS0wMS0xOFQwMzo0MzoxMy4wMDAwMDArMDAwMCwyMDE1LTAxLTE4VDAzOjU0OjQ5LjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMTg3LDEzLjQsMjAxNS0wMS0wMixvdGhlcl9jYW1wYWlnbixTd2VkZW4KMTU2NixRSkdWT0JMQVRJSFc0NTcsUUpHVk9CTEFUSUhXNDU3LXZmNHU3ZGdzLDIwMTUtMDEtMThUMDM6NDM6MTMuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOFQwMzo1NTozNy4wMDAwMDArMDAwMCxpYXAsZ2VtczIsOS45OSwxMy40LDIwMTUtMDEtMDIsb3RoZXJfY2FtcGFpZ24sU3dlZGVuCjE1ODAsTlBNSklZSEVUR0tXMjk3LE5QTUpJWUhFVEdLVzI5Ny10bmk3OHU5ZSwyMDE1LTAxLTE4VDA1OjI0OjE4LjAwMDAwMCswMDAwLDIwMTUtMDEtMThUMDU6MzI6MTIuMDAwMDAwKzAwMDAsYWQsYWRfcGxheWFibGUsMC4zNzYsMTQuMywyMDE1LTAxLTE4LGdvb2dsZSxQaGlsaXBwaW5lcwoxNTgxLE5QTUpJWUhFVEdLVzI5NyxOUE1KSVlIRVRHS1cyOTctdG5pNzh1OWUsMjAxNS0wMS0xOFQwNToyNDoxOC4wMDAwMDArMDAwMCwyMDE1LTAxLTE4VDA1OjMyOjE4LjAwMDAwMCswMDAwLGlhcCxvZmZlcjQsNS45OSwxNC4zLDIwMTUtMDEtMTgsZ29vZ2xlLFBoaWxpcHBpbmVzCjE1ODIsTlBNSklZSEVUR0tXMjk3LE5QTUpJWUhFVEdLVzI5Ny10bmk3OHU5ZSwyMDE1LTAxLTE4VDA1OjI0OjE4LjAwMDAwMCswMDAwLDIwMTUtMDEtMThUMDU6Mzg6MDYuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAyLDE0LjMsMjAxNS0wMS0xOCxnb29nbGUsUGhpbGlwcGluZXMKMTU4MyxGR0tYUE5JUkpIQ1k2MjUsRkdLWFBOSVJKSENZNjI1LW9rcnZtdTlmLDIwMTUtMDEtMThUMDY6MDM6NTcuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOFQwNjowNjo1Ny4wMDAwMDArMDAwMCxpYXAsZ29sZDIsMS4xOSw4LjIsMjAxNS0wMS0xNyxjcm9zc3Byb21vLEhvbmcgS29uZwoxNTg2LFJZWkhBSkVYTUJJRjcyNCxSWVpIQUpFWE1CSUY3MjQtOGE5bHhvN20sMjAxNS0wMS0xOFQwNjoxODo1Mi4wMDAwMDArMDAwMCwyMDE1LTAxLTE4VDA2OjE5OjI4LjAwMDAwMCswMDAwLGlhcCxnZW1zNCw0MS45OSwxMS42LDIwMTUtMDEtMTUsZ29vZ2xlLFBvcnR1Z2FsCjE1ODcsUllaSEFKRVhNQklGNzI0LFJZWkhBSkVYTUJJRjcyNC04YTlseG83bSwyMDE1LTAxLTE4VDA2OjE4OjUyLjAwMDAwMCswMDAwLDIwMTUtMDEtMThUMDY6MjU6MjguMDAwMDAwKzAwMDAsYWQsYWRfcGxheWFibGUsMS40NCwxMS42LDIwMTUtMDEtMTUsZ29vZ2xlLFBvcnR1Z2FsCjE1ODgsUllaSEFKRVhNQklGNzI0LFJZWkhBSkVYTUJJRjcyNC04YTlseG83bSwyMDE1LTAxLTE4VDA2OjE4OjUyLjAwMDAwMCswMDAwLDIwMTUtMDEtMThUMDY6MjY6NDAuMDAwMDAwKzAwMDAsaWFwLGdvbGQzLDMuNDksMTEuNiwyMDE1LTAxLTE1LGdvb2dsZSxQb3J0dWdhbAoxNTkzLEVLSUhYQlJGR09DRDU3MSxFS0lIWEJSRkdPQ0Q1NzEtaG9sdWM5MWEsMjAxNS0wMS0xOFQwNzoxMTo0MC4wMDAwMDArMDAwMCwyMDE1LTAxLTE4VDA3OjE0OjU4LjAwMDAwMCswMDAwLGFkLGFkXzE1c2VjLDAuMzIsMTIuNiwyMDE1LTAxLTE3LGFwcGxlLFVuaXRlZCBLaW5nZG9tCjE1OTQsRUtJSFhCUkZHT0NENTcxLEVLSUhYQlJGR09DRDU3MS1ob2x1YzkxYSwyMDE1LTAxLTE4VDA3OjExOjQwLjAwMDAwMCswMDAwLDIwMTUtMDEtMThUMDc6MTg6NTguMDAwMDAwKzAwMDAsaWFwLG9mZmVyMywxNC45OSwxMi42LDIwMTUtMDEtMTcsYXBwbGUsVW5pdGVkIEtpbmdkb20KMTYyOSxOUE1KSVlIRVRHS1cyOTcsTlBNSklZSEVUR0tXMjk3LXpqbjVoOGtkLDIwMTUtMDEtMThUMTE6MjQ6NTYuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOFQxMTozNzowOC4wMDAwMDArMDAwMCxhZCxhZF9zdXJ2ZXksMC4zLDEzLjQsMjAxNS0wMS0xOCxnb29nbGUsUGhpbGlwcGluZXMKMTYzMCxOUE1KSVlIRVRHS1cyOTcsTlBNSklZSEVUR0tXMjk3LXpqbjVoOGtkLDIwMTUtMDEtMThUMTE6MjQ6NTYuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOFQxMTozNzo1MC4wMDAwMDArMDAwMCxpYXAsb2ZmZXIzLDQuNDksMTMuNCwyMDE1LTAxLTE4LGdvb2dsZSxQaGlsaXBwaW5lcwoxNjQxLFpNSkxQR0NSSUtOQTQ3MSxaTUpMUEdDUklLTkE0NzEtbnpqdWJmZ3IsMjAxNS0wMS0xOFQxMzo1NToxMC4wMDAwMDArMDAwMCwyMDE1LTAxLTE4VDEzOjU5OjI4LjAwMDAwMCswMDAwLGFkLGFkXzE1c2VjLDAuMDg0LDYuMiwyMDE1LTAxLTEwLG9yZ2FuaWMsRWd5cHQKMTY1MixOQU9KUkRNQ1NFQkkyODEsTkFPSlJETUNTRUJJMjgxLWpzNnBreTdvLDIwMTUtMDEtMThUMTQ6NDY6MzYuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOFQxNDo1MDoxMi4wMDAwMDArMDAwMCxhZCxhZF8zMHNlYywwLjk3MiwxMi42LDIwMTUtMDEtMTEsb3JnYW5pYyxOb3J3YXkKMTY1MyxOQU9KUkRNQ1NFQkkyODEsTkFPSlJETUNTRUJJMjgxLWpzNnBreTdvLDIwMTUtMDEtMThUMTQ6NDY6MzYuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOFQxNDo1MDozNi4wMDAwMDArMDAwMCxpYXAsb2ZmZXIxLDUuNDksMTIuNiwyMDE1LTAxLTExLG9yZ2FuaWMsTm9yd2F5CjE2NTQsSUNCQVVaS0dTUVBGMTQ1LElDQkFVWktHU1FQRjE0NS04MWpteGZyNSwyMDE1LTAxLTE4VDE1OjAzOjU5LjAwMDAwMCswMDAwLDIwMTUtMDEtMThUMTU6MDY6MjkuMDAwMDAwKzAwMDAsYWQsYWRfMTVzZWMsMC4zMDcsOC42LDIwMTUtMDEtMDYsZ29vZ2xlLFNvdXRoIEFmcmljYQoxNjYzLFpHRVZRSlNLRklCWDM5OCxaR0VWUUpTS0ZJQlgzOTgtNmV6d240bG0sMjAxNS0wMS0xOFQxNTozODozNS4wMDAwMDArMDAwMCwyMDE1LTAxLTE4VDE1OjQyOjU5LjAwMDAwMCswMDAwLGFkLGFkX3N1cnZleSwwLjM5Miw1LjcsMjAxNS0wMS0xNyxvcmdhbmljLFNvdXRoIEtvcmVhCjE2NzUsSERTQU1QVE9MQldDNDM4LEhEU0FNUFRPTEJXQzQzOC1jcXNsbWJvMiwyMDE1LTAxLTE4VDE4OjU3OjQ4LjAwMDAwMCswMDAwLDIwMTUtMDEtMThUMTg6NTg6MjQuMDAwMDAwKzAwMDAsaWFwLGdlbXMzLDI3LjQ5LDcuOCwyMDE1LTAxLTE0LG9yZ2FuaWMsU3dpdHplcmxhbmQKMTY3NixIRFNBTVBUT0xCV0M0MzgsSERTQU1QVE9MQldDNDM4LWNxc2xtYm8yLDIwMTUtMDEtMThUMTg6NTc6NDguMDAwMDAwKzAwMDAsMjAxNS0wMS0xOFQxOTowMjoxMi4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMTIsNy44LDIwMTUtMDEtMTQsb3JnYW5pYyxTd2l0emVybGFuZAoxNjgyLEJGTkxVUklTSlhUSDY0NyxCRk5MVVJJU0pYVEg2NDctZ2o0aTlocHEsMjAxNS0wMS0xOFQyMDo1NjozMi4wMDAwMDArMDAwMCwyMDE1LTAxLTE4VDIxOjAyOjUwLjAwMDAwMCswMDAwLGFkLGFkXzMwc2VjLDAuMTgsMTQuMywyMDE1LTAxLTEwLG9yZ2FuaWMsSW5kaWEKMTY4MyxCRk5MVVJJU0pYVEg2NDcsQkZOTFVSSVNKWFRINjQ3LWdqNGk5aHBxLDIwMTUtMDEtMThUMjA6NTY6MzIuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOFQyMTowNDowMi4wMDAwMDArMDAwMCxpYXAsZ29sZDUsMTEuNTksMTQuMywyMDE1LTAxLTEwLG9yZ2FuaWMsSW5kaWEKMTcyNCxKWUVCQ0xOVVpUWFE0NTcsSllFQkNMTlVaVFhRNDU3LWJkNTFpc2dhLDIwMTUtMDEtMTlUMDI6MzU6MjcuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOVQwMjo0MjoxNS4wMDAwMDArMDAwMCxhZCxhZF8yMHNlYywwLjM5LDguNSwyMDE1LTAxLTA0LG90aGVyX2NhbXBhaWduLEVneXB0CjE3MjUsRUtJSFhCUkZHT0NENTcxLEVLSUhYQlJGR09DRDU3MS1hand0dXpobiwyMDE1LTAxLTE5VDAzOjAxOjM5LjAwMDAwMCswMDAwLDIwMTUtMDEtMTlUMDM6MDQ6MjEuMDAwMDAwKzAwMDAsYWQsYWRfMjBzZWMsMS4wOCw2LjgsMjAxNS0wMS0xNyxhcHBsZSxVbml0ZWQgS2luZ2RvbQoxNzM0LFdaR0lIUlRTS0NWRDE2NSxXWkdJSFJUU0tDVkQxNjUtYXM1dHBueTksMjAxNS0wMS0xOVQwNDoxMTo1Ny4wMDAwMDArMDAwMCwyMDE1LTAxLTE5VDA0OjE4OjI3LjAwMDAwMCswMDAwLGFkLGFkXzE1c2VjLDAuNiw3LjIsMjAxNS0wMS0xNyxvcmdhbmljLFVuaXRlZCBTdGF0ZXMKMTczNSxXWkdJSFJUU0tDVkQxNjUsV1pHSUhSVFNLQ1ZEMTY1LWFzNXRwbnk5LDIwMTUtMDEtMTlUMDQ6MTE6NTcuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOVQwNDoxODozMy4wMDAwMDArMDAwMCxpYXAsZ29sZDEsMC42OSw3LjIsMjAxNS0wMS0xNyxvcmdhbmljLFVuaXRlZCBTdGF0ZXMKMTczNixXWkdJSFJUU0tDVkQxNjUsV1pHSUhSVFNLQ1ZEMTY1LWFzNXRwbnk5LDIwMTUtMDEtMTlUMDQ6MTE6NTcuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOVQwNDoxOTowOS4wMDAwMDArMDAwMCxpYXAsb2ZmZXIzLDEwLjQ5LDcuMiwyMDE1LTAxLTE3LG9yZ2FuaWMsVW5pdGVkIFN0YXRlcwoxNzM3LE1UQ0lXS09WQVNZUDkyNSxNVENJV0tPVkFTWVA5MjUtZXFiY3Z5Z3QsMjAxNS0wMS0xOVQwNDozODo1NC4wMDAwMDArMDAwMCwyMDE1LTAxLTE5VDA0OjM5OjEyLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMiw5LjQsMjAxNS0wMS0xNCxvcmdhbmljLEdlcm1hbnkKMTc0MCxGR0tYUE5JUkpIQ1k2MjUsRkdLWFBOSVJKSENZNjI1LTJkMThvNGlqLDIwMTUtMDEtMTlUMDU6MDA6NTYuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOVQwNTowNDozOC4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjE0NywxMS4zLDIwMTUtMDEtMTcsY3Jvc3Nwcm9tbyxIb25nIEtvbmcKMTc0MSxGR0tYUE5JUkpIQ1k2MjUsRkdLWFBOSVJKSENZNjI1LTJkMThvNGlqLDIwMTUtMDEtMTlUMDU6MDA6NTYuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOVQwNTowNzozOC4wMDAwMDArMDAwMCxpYXAsb2ZmZXIyLDUuOTksMTEuMywyMDE1LTAxLTE3LGNyb3NzcHJvbW8sSG9uZyBLb25nCjE3NDIsRkdLWFBOSVJKSENZNjI1LEZHS1hQTklSSkhDWTYyNS0yZDE4bzRpaiwyMDE1LTAxLTE5VDA1OjAwOjU2LjAwMDAwMCswMDAwLDIwMTUtMDEtMTlUMDU6MTA6MzIuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA0MiwxMS4zLDIwMTUtMDEtMTcsY3Jvc3Nwcm9tbyxIb25nIEtvbmcKMTc1NyxHQVlJQkxVQ09FREo3MzIsR0FZSUJMVUNPRURKNzMyLWxlY280MWd6LDIwMTUtMDEtMTlUMDY6MTQ6MzIuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOVQwNjoyMDozOC4wMDAwMDArMDAwMCxhZCxhZF8zMHNlYywxLjI2LDEwLjksMjAxNS0wMS0wMyxvcmdhbmljLFVuaXRlZCBTdGF0ZXMKMTc1OCxHQVlJQkxVQ09FREo3MzIsR0FZSUJMVUNPRURKNzMyLWxlY280MWd6LDIwMTUtMDEtMTlUMDY6MTQ6MzIuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOVQwNjoyNToxNC4wMDAwMDArMDAwMCxhZCxhZF9zdXJ2ZXksMS4yOCwxMC45LDIwMTUtMDEtMDMsb3JnYW5pYyxVbml0ZWQgU3RhdGVzCjE3NjksQkZOTFVSSVNKWFRINjQ3LEJGTkxVUklTSlhUSDY0Ny10Y2Y1eXNhdiwyMDE1LTAxLTE5VDA4OjA1OjIwLjAwMDAwMCswMDAwLDIwMTUtMDEtMTlUMDg6MDg6NTYuMDAwMDAwKzAwMDAsYWQsYWRfMTBzZWMsMC4wMTYsNS45LDIwMTUtMDEtMTAsb3JnYW5pYyxJbmRpYQoxNzg1LEZHS1hQTklSSkhDWTYyNSxGR0tYUE5JUkpIQ1k2MjUtcTU5cG93bmwsMjAxNS0wMS0xOVQxMDo1Nzo0My4wMDAwMDArMDAwMCwyMDE1LTAxLTE5VDExOjAyOjMxLjAwMDAwMCswMDAwLGFkLGFkX3N1cnZleSwwLjQ4MywxNC40LDIwMTUtMDEtMTcsY3Jvc3Nwcm9tbyxIb25nIEtvbmcKMTc4NixGR0tYUE5JUkpIQ1k2MjUsRkdLWFBOSVJKSENZNjI1LXE1OXBvd25sLDIwMTUtMDEtMTlUMTA6NTc6NDMuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOVQxMTowNzoxOS4wMDAwMDArMDAwMCxpYXAsb2ZmZXIxLDIuOTksMTQuNCwyMDE1LTAxLTE3LGNyb3NzcHJvbW8sSG9uZyBLb25nCjE3ODcsRkdLWFBOSVJKSENZNjI1LEZHS1hQTklSSkhDWTYyNS1xNTlwb3dubCwyMDE1LTAxLTE5VDEwOjU3OjQzLjAwMDAwMCswMDAwLDIwMTUtMDEtMTlUMTE6MTE6NTUuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA1NiwxNC40LDIwMTUtMDEtMTcsY3Jvc3Nwcm9tbyxIb25nIEtvbmcKMTc5MSxGWFdETktJVU1KWVI0NzEsRlhXRE5LSVVNSllSNDcxLWdxN2QzMnRlLDIwMTUtMDEtMTlUMTE6NDA6NTMuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOVQxMTo1MTo0Ny4wMDAwMDArMDAwMCxhZCxhZF8xNXNlYywwLjM5LDExLjQsMjAxNS0wMS0xMCxvcmdhbmljLFVuaXRlZCBTdGF0ZXMKMTc5MixKVkJaQ1BLWEhGTVU0OTEsSlZCWkNQS1hIRk1VNDkxLXVmNmtocmExLDIwMTUtMDEtMTlUMTI6MzQ6MjguMDAwMDAwKzAwMDAsMjAxNS0wMS0xOVQxMjozNzoxNi4wMDAwMDArMDAwMCxhZCxhZF8xNXNlYywwLjE1LDE1LjAsMjAxNS0wMS0wNyxvcmdhbmljLFVuaXRlZCBTdGF0ZXMKMTc5MyxKVkJaQ1BLWEhGTVU0OTEsSlZCWkNQS1hIRk1VNDkxLXVmNmtocmExLDIwMTUtMDEtMTlUMTI6MzQ6MjguMDAwMDAwKzAwMDAsMjAxNS0wMS0xOVQxMjo0NzozNC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMSwxNS4wLDIwMTUtMDEtMDcsb3JnYW5pYyxVbml0ZWQgU3RhdGVzCjE3OTQsSlZCWkNQS1hIRk1VNDkxLEpWQlpDUEtYSEZNVTQ5MS11ZjZraHJhMSwyMDE1LTAxLTE5VDEyOjM0OjI4LjAwMDAwMCswMDAwLDIwMTUtMDEtMTlUMTI6NDg6NTIuMDAwMDAwKzAwMDAsaWFwLGdlbXM1LDkwLjk5LDE1LjAsMjAxNS0wMS0wNyxvcmdhbmljLFVuaXRlZCBTdGF0ZXMKMTgwMSxHSkNYTlRXRUJJUFEzNjksR0pDWE5UV0VCSVBRMzY5LWp5NGY1c2NiLDIwMTUtMDEtMTlUMTQ6MDI6MTQuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOVQxNDowNjozOC4wMDAwMDArMDAwMCxhZCxhZF9zdXJ2ZXksMC41OCwxNS4wLDIwMTUtMDEtMTQsb3JnYW5pYyxVbml0ZWQgU3RhdGVzCjE4MDIsR0pDWE5UV0VCSVBRMzY5LEdKQ1hOVFdFQklQUTM2OS1qeTRmNXNjYiwyMDE1LTAxLTE5VDE0OjAyOjE0LjAwMDAwMCswMDAwLDIwMTUtMDEtMTlUMTQ6MDg6MjAuMDAwMDAwKzAwMDAsaWFwLGdlbXM1LDkwLjk5LDE1LjAsMjAxNS0wMS0xNCxvcmdhbmljLFVuaXRlZCBTdGF0ZXMKMTgwMyxHSkNYTlRXRUJJUFEzNjksR0pDWE5UV0VCSVBRMzY5LWp5NGY1c2NiLDIwMTUtMDEtMTlUMTQ6MDI6MTQuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOVQxNDoxMTo1Ni4wMDAwMDArMDAwMCxhZCxhZF9zdXJ2ZXksMS4yNCwxNS4wLDIwMTUtMDEtMTQsb3JnYW5pYyxVbml0ZWQgU3RhdGVzCjE4MDksUURVWkpJRVRDQUdXNjU0LFFEVVpKSUVUQ0FHVzY1NC1kMXFuazU3eCwyMDE1LTAxLTE5VDE2OjI4OjI0LjAwMDAwMCswMDAwLDIwMTUtMDEtMTlUMTY6MzI6NDIuMDAwMDAwKzAwMDAsYWQsYWRfMTVzZWMsMC43MDgsOS42LDIwMTUtMDEtMDcsZmFjZWJvb2ssU3dpdHplcmxhbmQKMTgyNixSTU9TV0hKR0VMQ0k2NzUsUk1PU1dISkdFTENJNjc1LXdmNHJ6eWp2LDIwMTUtMDEtMTlUMTk6MTc6NDYuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOVQxOToyMDowNC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDksNS43LDIwMTUtMDEtMTAsb3RoZXJfY2FtcGFpZ24sRnJhbmNlCjE4MzgsRUtJSFhCUkZHT0NENTcxLEVLSUhYQlJGR09DRDU3MS03bml4cWJ0OSwyMDE1LTAxLTE5VDIwOjA4OjU4LjAwMDAwMCswMDAwLDIwMTUtMDEtMTlUMjA6MTI6MTAuMDAwMDAwKzAwMDAsaWFwLG9mZmVyMSw0Ljk5LDExLjYsMjAxNS0wMS0xNyxhcHBsZSxVbml0ZWQgS2luZ2RvbQoxODM5LEVLSUhYQlJGR09DRDU3MSxFS0lIWEJSRkdPQ0Q1NzEtN25peHFidDksMjAxNS0wMS0xOVQyMDowODo1OC4wMDAwMDArMDAwMCwyMDE1LTAxLTE5VDIwOjE0OjM0LjAwMDAwMCswMDAwLGFkLGFkXzIwc2VjLDAuOCwxMS42LDIwMTUtMDEtMTcsYXBwbGUsVW5pdGVkIEtpbmdkb20KMTg0MCxFS0lIWEJSRkdPQ0Q1NzEsRUtJSFhCUkZHT0NENTcxLTduaXhxYnQ5LDIwMTUtMDEtMTlUMjA6MDg6NTguMDAwMDAwKzAwMDAsMjAxNS0wMS0xOVQyMDoxOTo1Mi4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjE0LDExLjYsMjAxNS0wMS0xNyxhcHBsZSxVbml0ZWQgS2luZ2RvbQoxODQxLEhEU0FNUFRPTEJXQzQzOCxIRFNBTVBUT0xCV0M0MzgteHVreml2M2IsMjAxNS0wMS0xOVQyMDoxODozNS4wMDAwMDArMDAwMCwyMDE1LTAxLTE5VDIwOjE5OjQxLjAwMDAwMCswMDAwLGlhcCxvZmZlcjUsMzEuODksMTQuMSwyMDE1LTAxLTE0LG9yZ2FuaWMsU3dpdHplcmxhbmQKMTg0MixIRFNBTVBUT0xCV0M0MzgsSERTQU1QVE9MQldDNDM4LXh1a3ppdjNiLDIwMTUtMDEtMTlUMjA6MTg6MzUuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOVQyMDoyMToyMy4wMDAwMDArMDAwMCxhZCxhZF8yMHNlYywwLjQ0NCwxNC4xLDIwMTUtMDEtMTQsb3JnYW5pYyxTd2l0emVybGFuZAoxODQzLEhEU0FNUFRPTEJXQzQzOCxIRFNBTVBUT0xCV0M0MzgteHVreml2M2IsMjAxNS0wMS0xOVQyMDoxODozNS4wMDAwMDArMDAwMCwyMDE1LTAxLTE5VDIwOjI4OjExLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4xMiwxNC4xLDIwMTUtMDEtMTQsb3JnYW5pYyxTd2l0emVybGFuZAoxODUyLEdKQ1hOVFdFQklQUTM2OSxHSkNYTlRXRUJJUFEzNjktYm1zOWcycHcsMjAxNS0wMS0yMFQwMDozODowNC4wMDAwMDArMDAwMCwyMDE1LTAxLTIwVDAwOjM4OjM0LjAwMDAwMCswMDAwLGlhcCxnZW1zNSw5MC45OSwxMy45LDIwMTUtMDEtMTQsb3JnYW5pYyxVbml0ZWQgU3RhdGVzCjE4NTMsR0pDWE5UV0VCSVBRMzY5LEdKQ1hOVFdFQklQUTM2OS1ibXM5ZzJwdywyMDE1LTAxLTIwVDAwOjM4OjA0LjAwMDAwMCswMDAwLDIwMTUtMDEtMjBUMDA6NDc6MTYuMDAwMDAwKzAwMDAsaWFwLGdlbXMzLDE3LjQ5LDEzLjksMjAxNS0wMS0xNCxvcmdhbmljLFVuaXRlZCBTdGF0ZXMKMTg1NCxHSkNYTlRXRUJJUFEzNjksR0pDWE5UV0VCSVBRMzY5LWJtczlnMnB3LDIwMTUtMDEtMjBUMDA6Mzg6MDQuMDAwMDAwKzAwMDAsMjAxNS0wMS0yMFQwMDo1MDo1Mi4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMSwxMy45LDIwMTUtMDEtMTQsb3JnYW5pYyxVbml0ZWQgU3RhdGVzCjE4NjAsT0FCSldESUdRUkNVNDE4LE9BQkpXRElHUVJDVTQxOC1jdGdtcGl1biwyMDE1LTAxLTIwVDAzOjE2OjI0LjAwMDAwMCswMDAwLDIwMTUtMDEtMjBUMDM6MjE6NDguMDAwMDAwKzAwMDAsYWQsYWRfc3VydmV5LDAuNiwxNC44LDIwMTUtMDEtMjAsZmFjZWJvb2ssRnJhbmNlCjE4NjEsT0FCSldESUdRUkNVNDE4LE9BQkpXRElHUVJDVTQxOC1jdGdtcGl1biwyMDE1LTAxLTIwVDAzOjE2OjI0LjAwMDAwMCswMDAwLDIwMTUtMDEtMjBUMDM6Mjc6NTQuMDAwMDAwKzAwMDAsYWQsYWRfMTBzZWMsMC4xMiwxNC44LDIwMTUtMDEtMjAsZmFjZWJvb2ssRnJhbmNlCjE4NzUsRExURlZRV1lJWFJKNTg5LERMVEZWUVdZSVhSSjU4OS1sM2g4cWNvNSwyMDE1LTAxLTIwVDA2OjA5OjA4LjAwMDAwMCswMDAwLDIwMTUtMDEtMjBUMDY6MTQ6NDQuMDAwMDAwKzAwMDAsYWQsYWRfMTBzZWMsMC4xNTQsNy43LDIwMTUtMDEtMTMsb3JnYW5pYyxTb3V0aCBBZnJpY2EKMTg4NSxFS0lIWEJSRkdPQ0Q1NzEsRUtJSFhCUkZHT0NENTcxLXByMW1qZWhjLDIwMTUtMDEtMjBUMDY6MjQ6NTAuMDAwMDAwKzAwMDAsMjAxNS0wMS0yMFQwNjozMjoyNi4wMDAwMDArMDAwMCxhZCxhZF8yMHNlYywwLjY0OSwxMy40LDIwMTUtMDEtMTcsYXBwbGUsVW5pdGVkIEtpbmdkb20KMTg5MCxRV1pPQ0lFVUxWSEo1ODQsUVdaT0NJRVVMVkhKNTg0LWM0eW52YjE3LDIwMTUtMDEtMjBUMDY6NDc6MDQuMDAwMDAwKzAwMDAsMjAxNS0wMS0yMFQwNjo0OTo1Mi4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDIsMTMuMSwyMDE1LTAxLTIwLGdvb2dsZSxFZ3lwdAoxODkxLFFXWk9DSUVVTFZISjU4NCxRV1pPQ0lFVUxWSEo1ODQtYzR5bnZiMTcsMjAxNS0wMS0yMFQwNjo0NzowNC4wMDAwMDArMDAwMCwyMDE1LTAxLTIwVDA2OjUxOjUyLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNTUsMTMuMSwyMDE1LTAxLTIwLGdvb2dsZSxFZ3lwdAoxODkyLFFXWk9DSUVVTFZISjU4NCxRV1pPQ0lFVUxWSEo1ODQtYzR5bnZiMTcsMjAxNS0wMS0yMFQwNjo0NzowNC4wMDAwMDArMDAwMCwyMDE1LTAxLTIwVDA2OjUzOjIyLjAwMDAwMCswMDAwLGlhcCxvZmZlcjIsNC45OSwxMy4xLDIwMTUtMDEtMjAsZ29vZ2xlLEVneXB0CjE4OTUsQUlPSEtQRkNYWVNCNDc1LEFJT0hLUEZDWFlTQjQ3NS1vcmY5enE3aywyMDE1LTAxLTIwVDA3OjM5OjI2LjAwMDAwMCswMDAwLDIwMTUtMDEtMjBUMDc6NDg6MjAuMDAwMDAwKzAwMDAsYWQsYWRfMTVzZWMsMC41OCw5LjUsMjAxNS0wMS0xOCxvcmdhbmljLEF1c3RyYWxpYQoxODk2LFJNT1NXSEpHRUxDSTY3NSxSTU9TV0hKR0VMQ0k2NzUtaWJqb2V5YXgsMjAxNS0wMS0yMFQwOTowNDoxNS4wMDAwMDArMDAwMCwyMDE1LTAxLTIwVDA5OjA3OjI3LjAwMDAwMCswMDAwLGlhcCxvZmZlcjUsMjYuMDksOS4yLDIwMTUtMDEtMTAsb3RoZXJfY2FtcGFpZ24sRnJhbmNlCjE4OTcsUk1PU1dISkdFTENJNjc1LFJNT1NXSEpHRUxDSTY3NS1pYmpvZXlheCwyMDE1LTAxLTIwVDA5OjA0OjE1LjAwMDAwMCswMDAwLDIwMTUtMDEtMjBUMDk6MDc6NDUuMDAwMDAwKzAwMDAsYWQsYWRfMTBzZWMsMC4xMyw5LjIsMjAxNS0wMS0xMCxvdGhlcl9jYW1wYWlnbixGcmFuY2UKMTg5OCxSTU9TV0hKR0VMQ0k2NzUsUk1PU1dISkdFTENJNjc1LWliam9leWF4LDIwMTUtMDEtMjBUMDk6MDQ6MTUuMDAwMDAwKzAwMDAsMjAxNS0wMS0yMFQwOTowOToyNy4wMDAwMDArMDAwMCxpYXAsb2ZmZXIyLDguOTksOS4yLDIwMTUtMDEtMTAsb3RoZXJfY2FtcGFpZ24sRnJhbmNlCjE5MTMsTVRDSVdLT1ZBU1lQOTI1LE1UQ0lXS09WQVNZUDkyNS0xcTN4dmZtcCwyMDE1LTAxLTIwVDEyOjM0OjQzLjAwMDAwMCswMDAwLDIwMTUtMDEtMjBUMTI6MzU6MzcuMDAwMDAwKzAwMDAsaWFwLG9mZmVyNSwyNi4wOSwzLjksMjAxNS0wMS0xNCxvcmdhbmljLEdlcm1hbnkKMTkxNCxNVENJV0tPVkFTWVA5MjUsTVRDSVdLT1ZBU1lQOTI1LTFxM3h2Zm1wLDIwMTUtMDEtMjBUMTI6MzQ6NDMuMDAwMDAwKzAwMDAsMjAxNS0wMS0yMFQxMjozNzoyNS4wMDAwMDArMDAwMCxpYXAsZ29sZDIsMS43OSwzLjksMjAxNS0wMS0xNCxvcmdhbmljLEdlcm1hbnkKMTkxOSxCRk5MVVJJU0pYVEg2NDcsQkZOTFVSSVNKWFRINjQ3LWxlbjZ2dWpkLDIwMTUtMDEtMjBUMTQ6MDk6NTEuMDAwMDAwKzAwMDAsMjAxNS0wMS0yMFQxNDoxMDowMy4wMDAwMDArMDAwMCxpYXAsZ29sZDcsNDcuOTksNC41LDIwMTUtMDEtMTAsb3JnYW5pYyxJbmRpYQoxOTIwLEJGTkxVUklTSlhUSDY0NyxCRk5MVVJJU0pYVEg2NDctbGVuNnZ1amQsMjAxNS0wMS0yMFQxNDowOTo1MS4wMDAwMDArMDAwMCwyMDE1LTAxLTIwVDE0OjE0OjIxLjAwMDAwMCswMDAwLGlhcCxnb2xkNiwyMy45OSw0LjUsMjAxNS0wMS0xMCxvcmdhbmljLEluZGlhCjE5NTQsUllaSEFKRVhNQklGNzI0LFJZWkhBSkVYTUJJRjcyNC1yajR2eGJpdSwyMDE1LTAxLTIwVDE4OjI0OjE0LjAwMDAwMCswMDAwLDIwMTUtMDEtMjBUMTg6MjQ6MzguMDAwMDAwKzAwMDAsaWFwLGdvbGQ2LDQxLjk5LDkuMiwyMDE1LTAxLTE1LGdvb2dsZSxQb3J0dWdhbAoxOTU1LFJZWkhBSkVYTUJJRjcyNCxSWVpIQUpFWE1CSUY3MjQtcmo0dnhiaXUsMjAxNS0wMS0yMFQxODoyNDoxNC4wMDAwMDArMDAwMCwyMDE1LTAxLTIwVDE4OjI3OjQ0LjAwMDAwMCswMDAwLGlhcCxvZmZlcjMsMTAuNDksOS4yLDIwMTUtMDEtMTUsZ29vZ2xlLFBvcnR1Z2FsCjE5NTYsUllaSEFKRVhNQklGNzI0LFJZWkhBSkVYTUJJRjcyNC1yajR2eGJpdSwyMDE1LTAxLTIwVDE4OjI0OjE0LjAwMDAwMCswMDAwLDIwMTUtMDEtMjBUMTg6MzA6MTQuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAzNiw5LjIsMjAxNS0wMS0xNSxnb29nbGUsUG9ydHVnYWwKMTk3MCxXWkdJSFJUU0tDVkQxNjUsV1pHSUhSVFNLQ1ZEMTY1LXR3a2cybzE4LDIwMTUtMDEtMjBUMjI6NTQ6MDkuMDAwMDAwKzAwMDAsMjAxNS0wMS0yMFQyMjo1Nzo0NS4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjE2LDcuOCwyMDE1LTAxLTE3LG9yZ2FuaWMsVW5pdGVkIFN0YXRlcwoxOTkyLEpWQlpDUEtYSEZNVTQ5MSxKVkJaQ1BLWEhGTVU0OTEtd3ZpNmhzMnQsMjAxNS0wMS0yMVQwMTo0OTozNi4wMDAwMDArMDAwMCwyMDE1LTAxLTIxVDAxOjUzOjM2LjAwMDAwMCswMDAwLGlhcCxnb2xkNiw0MS45OSw3LjEsMjAxNS0wMS0wNyxvcmdhbmljLFVuaXRlZCBTdGF0ZXMKMTk5MyxKVkJaQ1BLWEhGTVU0OTEsSlZCWkNQS1hIRk1VNDkxLXd2aTZoczJ0LDIwMTUtMDEtMjFUMDE6NDk6MzYuMDAwMDAwKzAwMDAsMjAxNS0wMS0yMVQwMTo1NTo0Mi4wMDAwMDArMDAwMCxpYXAsZ2VtczMsMTcuNDksNy4xLDIwMTUtMDEtMDcsb3JnYW5pYyxVbml0ZWQgU3RhdGVzCjE5OTgsUk1PU1dISkdFTENJNjc1LFJNT1NXSEpHRUxDSTY3NS12Ymhjc210ciwyMDE1LTAxLTIxVDAyOjM5OjQ4LjAwMDAwMCswMDAwLDIwMTUtMDEtMjFUMDI6NDA6MDAuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAzLDguNCwyMDE1LTAxLTEwLG90aGVyX2NhbXBhaWduLEZyYW5jZQoxOTk5LFJNT1NXSEpHRUxDSTY3NSxSTU9TV0hKR0VMQ0k2NzUtdmJoY3NtdHIsMjAxNS0wMS0yMVQwMjozOTo0OC4wMDAwMDArMDAwMCwyMDE1LTAxLTIxVDAyOjQ3OjEyLjAwMDAwMCswMDAwLGlhcCxvZmZlcjUsMjYuMDksOC40LDIwMTUtMDEtMTAsb3RoZXJfY2FtcGFpZ24sRnJhbmNlCg==" download="extract_0003.csv"><button style="background-color: #67C2DC; color: #FFFFFF; border: none; padding: 5px; font-weight: bold; cursor: pointer; border-radius: 4px;">CSV</button></a></td>
  </tr>
</tbody>

</table>

</div>
</div>
</div>
</section>
<section id="wrapping-up-from-passive-validation-to-active-data-quality-management" class="level1">
<h1>Wrapping Up: from Passive Validation to Active Data Quality Management</h1>
<p>With <a href="`Actions`"><code>Actions</code></a> and <a href="`FinalActions`"><code>FinalActions</code></a>, Pointblank is now more of a complete data quality management system. Instead of just detecting problems, you can now:</p>
<ol type="1">
<li>respond immediately to validation failures</li>
<li>customize responses based on severity level</li>
<li>generate comprehensive reports after validation completes</li>
<li>integrate with other systems through custom action functions</li>
<li>automate workflows based on validation results</li>
</ol>
<p>These capabilities transform data validation from a passive reporting activity into an active component of your data pipeline, helping ensure that data quality issues are detected, reported, and addressed efficiently.</p>
<p>As we continue to enhance Pointblank, we’d love to hear how you’re using <a href="`Actions`"><code>Actions</code></a> and <a href="`FinalActions`"><code>FinalActions</code></a> in your workflows. Share your experiences or suggestions with us on <a href="https://discord.gg/YH7CybCNCQ">Discord</a> or file an issue on <a href="https://github.com/posit-dev/pointblank/issues">GitHub</a>.</p>
</section>
<section id="learn-more" class="level1">
<h1>Learn More</h1>
<p>Explore our documentation to learn more about Pointblank’s action capabilities:</p>
<ul>
<li><a href="../../reference/Actions.html">Actions documentation</a></li>
<li><a href="../../reference/FinalActions.html">FinalActions documentation</a></li>
<li><a href="../../user-guide/actions.qmd">User Guide on Triggering Actions</a></li>
</ul>


</section>

 ]]></description>
  <guid>https://posit-dev.github.io/pointblank/blog/all-about-actions/</guid>
  <pubDate>Fri, 02 May 2025 00:00:00 GMT</pubDate>
</item>
<item>
  <title>Introducing Pointblank</title>
  <dc:creator>Rich Iannone</dc:creator>
  <link>https://posit-dev.github.io/pointblank/blog/intro-pointblank/</link>
  <description><![CDATA[ 




<p>If you have tabular data (and who doesn’t?) this is the package for you! I’ve long been interested in data quality and so I’ve spent a lot of time building tooling that makes it possible to perform data quality checks. And there’s so many reasons to care about data quality. If I were to put down just one good reason for why data quality is worth your time it is because having good data quality strongly determines the quality of decisions.</p>
<p>Having the ability to distinguish bad data from good data is the first step in solving DQ issues, and the sustained practice of doing data validation will guard against intrusions of poor-quality data. Pointblank has been designed to really help here. Though it’s a fairly new package it is currently quite capable. And it’s available in PyPI, so you can install it by using:</p>
<div class="sourceCode" id="cb1" style="background: #f1f3f5;"><pre class="sourceCode bash"><code class="sourceCode bash"><span id="cb1-1"><span class="ex" style="color: null;
background-color: null;
font-style: inherit;">pip</span> install pointblank</span></code></pre></div>
<div class="callout callout-style-default callout-note callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
Note
</div>
</div>
<div class="callout-body-container callout-body">
<p>To run the examples in this post, you’ll need to have a DataFrame library installed. Pointblank works seamlessly with both Polars and Pandas but you’ll need to install at least one of them on your own. We also have a DuckDB example that’s running via Ibis (so, you’ll have to install Ibis with the DuckDB backend for that to work).</p>
</div>
</div>
<section id="how-pointblank-transforms-your-data-validation-workflow" class="level1">
<h1>How Pointblank Transforms Your Data Validation Workflow</h1>
<p>What sets Pointblank apart is its intuitive, expressive approach to data validation. Rather than writing dozens of ad-hoc checks scattered throughout your codebase, Pointblank lets you define a comprehensive validation plan with just a few lines of code. The fluent API makes your validation intentions crystal clear, whether you’re ensuring numeric values fall within expected ranges, text fields match specific patterns, or relationships between columns remain consistent.</p>
<p>But say you find problems. What are you gonna do about it? Well, Pointblank wants to help at not just finding problems but helping you understand them. When validation failures occur, the detailed reporting capabilities (in the form of beautiful, sharable tables) show you exactly where issues are. Right down to the specific rows and columns. This transforms data validation from a binary pass/fail exercise into a super-insightful diagnostic tool.</p>
<p><img src="https://posit-dev.github.io/pointblank/blog/intro-pointblank/step_report.png" class="img-fluid"></p>
<p>Here’s the the best part: Pointblank is designed to work with your existing data stack. Whether you’re using Polars, Pandas, DuckDB, or other database systems, Pointblank tries hard to integrate without forcing you to change your workflow. We also have international spoken language support for reporting, meaning that validation reports can be localized to your team’s preferred language. This making data quality accessible to everyone in your organization (like a team sport!).</p>
<p><img src="https://posit-dev.github.io/pointblank/blog/intro-pointblank/pointblank-localized.png" class="img-fluid"></p>
<p>Alright! Let’s look at a few demonstrations of Pointblank’s capabilities for data validation.</p>
</section>
<section id="the-data-validation-workflow" class="level1">
<h1>The Data Validation Workflow</h1>
<p>Let’s get right to performing a basic check of a Polars DataFrame. We’ll make use of the included <code>small_table</code> dataset.</p>
<div id="5cfa6296" class="cell" data-execution_count="1">
<div class="sourceCode cell-code" id="cb2" style="background: #f1f3f5;"><pre class="sourceCode python"><code class="sourceCode python"><span id="cb2-1"><span class="im" style="color: #00769E;
background-color: null;
font-style: inherit;">import</span> pointblank <span class="im" style="color: #00769E;
background-color: null;
font-style: inherit;">as</span> pb</span>
<span id="cb2-2"></span>
<span id="cb2-3">small_table <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> pb.load_dataset(dataset<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"small_table"</span>, tbl_type<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"polars"</span>)</span>
<span id="cb2-4"></span>
<span id="cb2-5">validation_1 <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> (</span>
<span id="cb2-6">    pb.Validate(</span>
<span id="cb2-7">        data<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>small_table,</span>
<span id="cb2-8">        tbl_name<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"small_table"</span>,</span>
<span id="cb2-9">        label<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Example Validation"</span></span>
<span id="cb2-10">    )</span>
<span id="cb2-11">    .col_vals_lt(columns<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"a"</span>, value<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">10</span>)</span>
<span id="cb2-12">    .col_vals_between(columns<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"d"</span>, left<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>, right<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">5000</span>)</span>
<span id="cb2-13">    .col_vals_in_set(columns<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"f"</span>, <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">set</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>[<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"low"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"mid"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"high"</span>])</span>
<span id="cb2-14">    .col_vals_regex(columns<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"b"</span>, pattern<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="vs" style="color: #20794D;
background-color: null;
font-style: inherit;">r"</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">^</span><span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;">[0-9]</span><span class="vs" style="color: #20794D;
background-color: null;
font-style: inherit;">-</span><span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;">[a-z]</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">{3}</span><span class="vs" style="color: #20794D;
background-color: null;
font-style: inherit;">-</span><span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;">[0-9]</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">{3}</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">$</span><span class="vs" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span>)</span>
<span id="cb2-15">    .interrogate()</span>
<span id="cb2-16">)</span>
<span id="cb2-17"></span>
<span id="cb2-18">validation_1</span></code></pre></div>
<div class="cell-output cell-output-display" data-execution_count="1">
<div id="pb_tbl" style="padding-left:0px;padding-right:0px;padding-top:10px;padding-bottom:10px;overflow-x:auto;overflow-y:auto;width:auto;height:auto;">
<style>
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono&display=swap');
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Sans&display=swap');
#pb_tbl table {
          font-family: 'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Helvetica Neue', 'Fira Sans', 'Droid Sans', Arial, sans-serif;
          -webkit-font-smoothing: antialiased;
          -moz-osx-font-smoothing: grayscale;
        }

#pb_tbl thead, tbody, tfoot, tr, td, th { border-style: none; }
 tr { background-color: transparent; }
#pb_tbl p { margin: 0; padding: 0; }
 #pb_tbl .gt_table { display: table; border-collapse: collapse; line-height: normal; margin-left: auto; margin-right: auto; color: #333333; font-size: 90%; font-weight: normal; font-style: normal; background-color: #FFFFFF; width: auto; border-top-style: solid; border-top-width: 2px; border-top-color: #A8A8A8; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #A8A8A8; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; }
 #pb_tbl .gt_caption { padding-top: 4px; padding-bottom: 4px; }
 #pb_tbl .gt_title { color: #333333; font-size: 125%; font-weight: initial; padding-top: 4px; padding-bottom: 4px; padding-left: 5px; padding-right: 5px; border-bottom-color: #FFFFFF; border-bottom-width: 0; }
 #pb_tbl .gt_subtitle { color: #333333; font-size: 85%; font-weight: initial; padding-top: 3px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; border-top-color: #FFFFFF; border-top-width: 0; }
 #pb_tbl .gt_heading { background-color: #FFFFFF; text-align: left; border-bottom-color: #FFFFFF; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; }
 #pb_tbl .gt_bottom_border { border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; }
 #pb_tbl .gt_col_headings { border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; }
 #pb_tbl .gt_col_heading { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: normal; text-transform: inherit; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; vertical-align: bottom; padding-top: 5px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; overflow-x: hidden; }
 #pb_tbl .gt_column_spanner_outer { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: normal; text-transform: inherit; padding-top: 0; padding-bottom: 0; padding-left: 4px; padding-right: 4px; }
 #pb_tbl .gt_column_spanner_outer:first-child { padding-left: 0; }
 #pb_tbl .gt_column_spanner_outer:last-child { padding-right: 0; }
 #pb_tbl .gt_column_spanner { border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; vertical-align: bottom; padding-top: 5px; padding-bottom: 5px; overflow-x: hidden; display: inline-block; width: 100%; }
 #pb_tbl .gt_spanner_row { border-bottom-style: hidden; }
 #pb_tbl .gt_group_heading { padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; text-transform: inherit; border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; vertical-align: middle; text-align: left; }
 #pb_tbl .gt_empty_group_heading { padding: 0.5px; color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; vertical-align: middle; }
 #pb_tbl .gt_from_md> :first-child { margin-top: 0; }
 #pb_tbl .gt_from_md> :last-child { margin-bottom: 0; }
 #pb_tbl .gt_row { padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; margin: 10px; border-top-style: solid; border-top-width: 1px; border-top-color: #D3D3D3; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; vertical-align: middle; overflow-x: hidden; }
 #pb_tbl .gt_stub { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; text-transform: inherit; border-right-style: solid; border-right-width: 2px; border-right-color: #D3D3D3; padding-left: 5px; padding-right: 5px; }
 #pb_tbl .gt_stub_row_group { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; text-transform: inherit; border-right-style: solid; border-right-width: 2px; border-right-color: #D3D3D3; padding-left: 5px; padding-right: 5px; vertical-align: top; }
 #pb_tbl .gt_row_group_first td { border-top-width: 2px; }
 #pb_tbl .gt_row_group_first th { border-top-width: 2px; }
 #pb_tbl .gt_striped { color: #333333; background-color: #F4F4F4; }
 #pb_tbl .gt_table_body { border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; }
 #pb_tbl .gt_summary_row { color: #333333; background-color: #FFFFFF; text-transform: inherit; padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; }
 #pb_tbl .gt_first_summary_row { border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; }
 #pb_tbl .gt_last_summary_row_top { border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; }
 #pb_tbl .gt_grand_summary_row { color: #333333; background-color: #FFFFFF; text-transform: inherit; padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; }
 #pb_tbl .gt_first_grand_summary_row_bottom { border-top-style: double; border-top-width: 6px; border-top-color: #D3D3D3; }
 #pb_tbl .gt_last_grand_summary_row_top { border-bottom-style: double; border-bottom-width: 6px; border-bottom-color: #D3D3D3; }
 #pb_tbl .gt_sourcenotes { color: #333333; background-color: #FFFFFF; border-bottom-style: none; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; }
 #pb_tbl .gt_sourcenote { font-size: 90%; padding-top: 4px; padding-bottom: 4px; padding-left: 5px; padding-right: 5px; text-align: left; }
 #pb_tbl .gt_left { text-align: left; }
 #pb_tbl .gt_center { text-align: center; }
 #pb_tbl .gt_right { text-align: right; font-variant-numeric: tabular-nums; }
 #pb_tbl .gt_font_normal { font-weight: normal; }
 #pb_tbl .gt_font_bold { font-weight: bold; }
 #pb_tbl .gt_font_italic { font-style: italic; }
 #pb_tbl .gt_super { font-size: 65%; }
 #pb_tbl .gt_footnotes { color: font-color(#FFFFFF); background-color: #FFFFFF; border-bottom-style: none; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; }
 #pb_tbl .gt_footnote { margin: 0px; font-size: 90%; padding-top: 4px; padding-bottom: 4px; padding-left: 5px; padding-right: 5px; }
 #pb_tbl .gt_sourcenotes { color: #333333; background-color: #FFFFFF; border-bottom-style: none; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; }
 #pb_tbl .gt_sourcenote { font-size: 90%; padding-top: 4px; padding-bottom: 4px; padding-left: 5px; padding-right: 5px; text-align: left; }
 #pb_tbl .gt_footnote_marks { font-size: 75%; vertical-align: 0.4em; position: initial; }
 #pb_tbl .gt_asterisk { font-size: 100%; vertical-align: 0; }
 
</style>
<table style="table-layout: fixed;; width: 0px" class="gt_table" data-quarto-disable-processing="true" data-quarto-bootstrap="false">
<colgroup>
  <col style="width:4px;">
  <col style="width:35px;">
  <col style="width:190px;">
  <col style="width:120px;">
  <col style="width:120px;">
  <col style="width:50px;">
  <col style="width:50px;">
  <col style="width:60px;">
  <col style="width:60px;">
  <col style="width:60px;">
  <col style="width:30px;">
  <col style="width:30px;">
  <col style="width:30px;">
  <col style="width:65px;">
</colgroup>

<thead>

  <tr class="gt_heading">
    <td colspan="14" class="gt_heading gt_title gt_font_normal" style="color: #444444;font-size: 28px;text-align: left;font-weight: bold; text-align: left;">Pointblank Validation</td>
  </tr>
  <tr class="gt_heading">
    <td colspan="14" class="gt_heading gt_subtitle gt_font_normal gt_bottom_border" style="text-align: left;"><div><span style="text-decoration-style: solid; text-decoration-color: #ADD8E6; text-decoration-line: underline; text-underline-position: under; color: #333333; font-variant-numeric: tabular-nums; padding-left: 4px; margin-right: 5px; padding-right: 2px;">Example Validation</span><div style="padding-top: 10px; padding-bottom: 5px;"><span style="background-color: #0075FF; color: #FFFFFF; padding: 0.5em 0.5em; position: inherit; text-transform: uppercase; margin: 5px 0px 5px 0px; border: solid 1px #0075FF; font-weight: bold; padding: 2px 15px 2px 15px; font-size: 10px;">Polars</span><span style="background-color: none; color: #222222; padding: 0.5em 0.5em; position: inherit; margin: 5px 10px 5px -4px; border: solid 1px #0075FF; font-weight: bold; padding: 2px 15px 2px 15px; font-size: 10px;">small_table</span></div></div></td>
  </tr>
<tr class="gt_col_headings">
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-status_color"></th>
  <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-i"></th>
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-type_upd">STEP</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-columns_upd">COLUMNS</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-values_upd">VALUES</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-tbl">TBL</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-eval">EVAL</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-test_units">UNITS</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-pass">PASS</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-fail">FAIL</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-w_upd">W</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-e_upd">E</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-c_upd">C</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-extract_upd">EXT</th>
</tr>
</thead>
<tbody class="gt_table_body">
  <tr>
    <td style="height: 40px; background-color: #4CA64C; color: transparent;font-size: 0px;" class="gt_row gt_left">#4CA64C</td>
    <td style="height: 40px; color: #666666;font-size: 13px;font-weight: bold;" class="gt_row gt_right">1</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_left">
        <div style="margin: 0; padding: 0; display: inline-block; height: 30px; vertical-align: middle; width: 16%;">
            <!--?xml version="1.0" encoding="UTF-8"?--><!--?xml version="1.0" encoding="UTF-8"?-->
<svg width="30px" height="30px" viewbox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" style="background: #FFFFFF;">
    <title>col_vals_lt</title>
    <g id="Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="col_vals_lt" transform="translate(1.500000, 1.500000)" fill-rule="nonzero">
            <path d="M55,0 C57.4852813,0 59.7352813,1.00735931 61.363961,2.63603897 C62.9926407,4.26471863 64,6.51471863 64,9 L64,9 L64,64 L9,64 C6.51471862,64 4.26471862,62.9926407 2.63603897,61.363961 C1.00735931,59.7352814 0,57.4852814 0,55 L0,55 L0,9 C0,6.51471863 1.00735931,4.26471863 2.63603897,2.63603897 C4.26471862,1.00735931 6.51471862,0 9,0 L9,0 L55,0 Z" id="rectangle" stroke="#000000" stroke-width="2" fill="#FFFFFF"></path>
            <path d="M51,10 L13,10 C11.347656,10 10,11.347656 10,13 L10,51 C10,52.652344 11.347656,54 13,54 L51,54 C52.652344,54 54,52.652344 54,51 L54,13 C54,11.347656 52.652344,10 51,10 Z M38.707031,45.292969 L37.292969,46.707031 L22.585938,32 L37.292969,17.292969 L38.707031,18.707031 L25.414063,32 L38.707031,45.292969 Z" id="less_than" fill="#000000"></path>
        </g>
    </g>
</svg>
        </div>
        <div style="font-family: 'IBM Plex Mono', monospace, courier; color: black; font-size: 11px; display: inline-block; vertical-align: middle;">
            <div>col_vals_lt()</div>
        </div>
        
        </td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">a</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">10</td>
    <td style="height: 40px; background-color: #FCFCFC; border-left: 1px solid #D3D3D3;" class="gt_row gt_center"><svg width="25px" height="25px" viewbox="0 0 25 25" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" style="vertical-align: middle;">
    <g id="unchanged" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="unchanged" transform="translate(0.500000, 0.570147)">
            <rect id="Rectangle" x="0.125132506" y="0" width="23.749735" height="23.7894737"></rect>
            <path d="M5.80375046,8.18194736 C3.77191832,8.18194736 2.11875046,9.83495328 2.11875046,11.8669474 C2.11875046,13.8989414 3.77191832,15.5519474 5.80375046,15.5519474 C7.8355826,15.5519474 9.48875046,13.8989414 9.48875046,11.8669474 C9.48875046,9.83495328 7.83552863,8.18194736 5.80375046,8.18194736 Z M5.80375046,14.814915 C4.17821997,14.814915 2.85578285,13.4924778 2.85578285,11.8669474 C2.85578285,10.2414169 4.17821997,8.91897975 5.80375046,8.91897975 C7.42928095,8.91897975 8.75171807,10.2414169 8.75171807,11.8669474 C8.75171807,13.4924778 7.42928095,14.814915 5.80375046,14.814915 Z" id="Shape" fill="#000000" fill-rule="nonzero"></path>
            <path d="M13.9638189,8.699335 C13.9364621,8.70430925 13.9091059,8.71176968 13.8842359,8.71923074 C13.7822704,8.73663967 13.6877654,8.77643115 13.6056956,8.83860518 L10.2433156,11.3852598 C10.0766886,11.5046343 9.97720993,11.6986181 9.97720993,11.9025491 C9.97720993,12.1064807 10.0766886,12.3004639 10.2433156,12.4198383 L13.6056956,14.966493 C13.891697,15.1803725 14.2970729,15.1231721 14.5109517,14.8371707 C14.7248313,14.5511692 14.6676309,14.145794 14.3816294,13.9319145 L12.5313257,12.5392127 L21.8812495,12.5392127 L21.8812495,11.2658854 L12.5313257,11.2658854 L14.3816294,9.87318364 C14.6377872,9.71650453 14.7497006,9.40066014 14.6477351,9.11714553 C14.5482564,8.83363156 14.262255,8.65954352 13.9638189,8.699335 Z" id="arrow" fill="#000000" transform="translate(15.929230, 11.894737) rotate(-180.000000) translate(-15.929230, -11.894737) "></path>
        </g>
    </g>
</svg></td>
    <td style="height: 40px; background-color: #FCFCFC; border-right: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color:#4CA64C;">✓</span></td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_right">13</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5;" class="gt_row gt_right">13<br>1.00</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5;" class="gt_row gt_right">0<br>0.00</td>
    <td style="height: 40px; background-color: #FCFCFC; border-left: 1px solid #D3D3D3;" class="gt_row gt_center">—</td>
    <td style="height: 40px; background-color: #FCFCFC;" class="gt_row gt_center">—</td>
    <td style="height: 40px; background-color: #FCFCFC; border-right: 1px solid #D3D3D3;" class="gt_row gt_center">—</td>
    <td style="height: 40px;" class="gt_row gt_center">—</td>
  </tr>
  <tr>
    <td style="height: 40px; background-color: #4CA64C66; color: transparent;font-size: 0px;" class="gt_row gt_left">#4CA64C66</td>
    <td style="height: 40px; color: #666666;font-size: 13px;font-weight: bold;" class="gt_row gt_right">2</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_left">
        <div style="margin: 0; padding: 0; display: inline-block; height: 30px; vertical-align: middle; width: 16%;">
            <!--?xml version="1.0" encoding="UTF-8"?--><!--?xml version="1.0" encoding="UTF-8"?-->
<svg width="30px" height="30px" viewbox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink">
    <title>col_vals_between</title>
    <g id="Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="col_vals_between" transform="translate(0.000000, 0.206897)">
            <path d="M56.712234,1 C59.1975153,1 61.4475153,2.00735931 63.076195,3.63603897 C64.7048747,5.26471863 65.712234,7.51471863 65.712234,10 L65.712234,10 L65.712234,65 L10.712234,65 C8.22695259,65 5.97695259,63.9926407 4.34827294,62.363961 C2.71959328,60.7352814 1.71223397,58.4852814 1.71223397,56 L1.71223397,56 L1.71223397,10 C1.71223397,7.51471863 2.71959328,5.26471863 4.34827294,3.63603897 C5.97695259,2.00735931 8.22695259,1 10.712234,1 L10.712234,1 Z" id="rectangle" stroke="#000000" stroke-width="2" fill="#FFFFFF"></path>
            <path d="M11.993484,21.96875 C10.962234,22.082031 10.188797,22.964844 10.212234,24 L10.212234,42 C10.200515,42.722656 10.579422,43.390625 11.204422,43.753906 C11.825515,44.121094 12.598953,44.121094 13.220047,43.753906 C13.845047,43.390625 14.223953,42.722656 14.212234,42 L14.212234,24 C14.220047,23.457031 14.009109,22.9375 13.626297,22.554688 C13.243484,22.171875 12.723953,21.960938 12.180984,21.96875 C12.118484,21.964844 12.055984,21.964844 11.993484,21.96875 Z M55.993484,21.96875 C54.962234,22.082031 54.188797,22.964844 54.212234,24 L54.212234,42 C54.200515,42.722656 54.579422,43.390625 55.204422,43.753906 C55.825515,44.121094 56.598953,44.121094 57.220047,43.753906 C57.845047,43.390625 58.223953,42.722656 58.212234,42 L58.212234,24 C58.220047,23.457031 58.009109,22.9375 57.626297,22.554688 C57.243484,22.171875 56.723953,21.960938 56.180984,21.96875 C56.118484,21.964844 56.055984,21.964844 55.993484,21.96875 Z M16.212234,22 C15.661453,22 15.212234,22.449219 15.212234,23 C15.212234,23.550781 15.661453,24 16.212234,24 C16.763015,24 17.212234,23.550781 17.212234,23 C17.212234,22.449219 16.763015,22 16.212234,22 Z M20.212234,22 C19.661453,22 19.212234,22.449219 19.212234,23 C19.212234,23.550781 19.661453,24 20.212234,24 C20.763015,24 21.212234,23.550781 21.212234,23 C21.212234,22.449219 20.763015,22 20.212234,22 Z M24.212234,22 C23.661453,22 23.212234,22.449219 23.212234,23 C23.212234,23.550781 23.661453,24 24.212234,24 C24.763015,24 25.212234,23.550781 25.212234,23 C25.212234,22.449219 24.763015,22 24.212234,22 Z M28.212234,22 C27.661453,22 27.212234,22.449219 27.212234,23 C27.212234,23.550781 27.661453,24 28.212234,24 C28.763015,24 29.212234,23.550781 29.212234,23 C29.212234,22.449219 28.763015,22 28.212234,22 Z M32.212234,22 C31.661453,22 31.212234,22.449219 31.212234,23 C31.212234,23.550781 31.661453,24 32.212234,24 C32.763015,24 33.212234,23.550781 33.212234,23 C33.212234,22.449219 32.763015,22 32.212234,22 Z M36.212234,22 C35.661453,22 35.212234,22.449219 35.212234,23 C35.212234,23.550781 35.661453,24 36.212234,24 C36.763015,24 37.212234,23.550781 37.212234,23 C37.212234,22.449219 36.763015,22 36.212234,22 Z M40.212234,22 C39.661453,22 39.212234,22.449219 39.212234,23 C39.212234,23.550781 39.661453,24 40.212234,24 C40.763015,24 41.212234,23.550781 41.212234,23 C41.212234,22.449219 40.763015,22 40.212234,22 Z M44.212234,22 C43.661453,22 43.212234,22.449219 43.212234,23 C43.212234,23.550781 43.661453,24 44.212234,24 C44.763015,24 45.212234,23.550781 45.212234,23 C45.212234,22.449219 44.763015,22 44.212234,22 Z M48.212234,22 C47.661453,22 47.212234,22.449219 47.212234,23 C47.212234,23.550781 47.661453,24 48.212234,24 C48.763015,24 49.212234,23.550781 49.212234,23 C49.212234,22.449219 48.763015,22 48.212234,22 Z M52.212234,22 C51.661453,22 51.212234,22.449219 51.212234,23 C51.212234,23.550781 51.661453,24 52.212234,24 C52.763015,24 53.212234,23.550781 53.212234,23 C53.212234,22.449219 52.763015,22 52.212234,22 Z M21.462234,27.96875 C21.419265,27.976563 21.376297,27.988281 21.337234,28 C21.177078,28.027344 21.02864,28.089844 20.899734,28.1875 L15.618484,32.1875 C15.356765,32.375 15.200515,32.679688 15.200515,33 C15.200515,33.320313 15.356765,33.625 15.618484,33.8125 L20.899734,37.8125 C21.348953,38.148438 21.985672,38.058594 22.321609,37.609375 C22.657547,37.160156 22.567703,36.523438 22.118484,36.1875 L19.212234,34 L49.212234,34 L46.305984,36.1875 C45.856765,36.523438 45.766922,37.160156 46.102859,37.609375 C46.438797,38.058594 47.075515,38.148438 47.524734,37.8125 L52.805984,33.8125 C53.067703,33.625 53.223953,33.320313 53.223953,33 C53.223953,32.679688 53.067703,32.375 52.805984,32.1875 L47.524734,28.1875 C47.30989,28.027344 47.040359,27.960938 46.774734,28 C46.743484,28 46.712234,28 46.680984,28 C46.282547,28.074219 45.96614,28.382813 45.884109,28.78125 C45.802078,29.179688 45.970047,29.585938 46.305984,29.8125 L49.212234,32 L19.212234,32 L22.118484,29.8125 C22.520828,29.566406 22.696609,29.070313 22.536453,28.625 C22.380203,28.179688 21.930984,27.90625 21.462234,27.96875 Z M16.212234,42 C15.661453,42 15.212234,42.449219 15.212234,43 C15.212234,43.550781 15.661453,44 16.212234,44 C16.763015,44 17.212234,43.550781 17.212234,43 C17.212234,42.449219 16.763015,42 16.212234,42 Z M20.212234,42 C19.661453,42 19.212234,42.449219 19.212234,43 C19.212234,43.550781 19.661453,44 20.212234,44 C20.763015,44 21.212234,43.550781 21.212234,43 C21.212234,42.449219 20.763015,42 20.212234,42 Z M24.212234,42 C23.661453,42 23.212234,42.449219 23.212234,43 C23.212234,43.550781 23.661453,44 24.212234,44 C24.763015,44 25.212234,43.550781 25.212234,43 C25.212234,42.449219 24.763015,42 24.212234,42 Z M28.212234,42 C27.661453,42 27.212234,42.449219 27.212234,43 C27.212234,43.550781 27.661453,44 28.212234,44 C28.763015,44 29.212234,43.550781 29.212234,43 C29.212234,42.449219 28.763015,42 28.212234,42 Z M32.212234,42 C31.661453,42 31.212234,42.449219 31.212234,43 C31.212234,43.550781 31.661453,44 32.212234,44 C32.763015,44 33.212234,43.550781 33.212234,43 C33.212234,42.449219 32.763015,42 32.212234,42 Z M36.212234,42 C35.661453,42 35.212234,42.449219 35.212234,43 C35.212234,43.550781 35.661453,44 36.212234,44 C36.763015,44 37.212234,43.550781 37.212234,43 C37.212234,42.449219 36.763015,42 36.212234,42 Z M40.212234,42 C39.661453,42 39.212234,42.449219 39.212234,43 C39.212234,43.550781 39.661453,44 40.212234,44 C40.763015,44 41.212234,43.550781 41.212234,43 C41.212234,42.449219 40.763015,42 40.212234,42 Z M44.212234,42 C43.661453,42 43.212234,42.449219 43.212234,43 C43.212234,43.550781 43.661453,44 44.212234,44 C44.763015,44 45.212234,43.550781 45.212234,43 C45.212234,42.449219 44.763015,42 44.212234,42 Z M48.212234,42 C47.661453,42 47.212234,42.449219 47.212234,43 C47.212234,43.550781 47.661453,44 48.212234,44 C48.763015,44 49.212234,43.550781 49.212234,43 C49.212234,42.449219 48.763015,42 48.212234,42 Z M52.212234,42 C51.661453,42 51.212234,42.449219 51.212234,43 C51.212234,43.550781 51.661453,44 52.212234,44 C52.763015,44 53.212234,43.550781 53.212234,43 C53.212234,42.449219 52.763015,42 52.212234,42 Z" id="inside_range" fill="#000000" fill-rule="nonzero"></path>
        </g>
    </g>
</svg>
        </div>
        <div style="font-family: 'IBM Plex Mono', monospace, courier; color: black; font-size: 10px; display: inline-block; vertical-align: middle;">
            <div>col_vals_between()</div>
        </div>
        
        </td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">d</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">[0, 5000]</td>
    <td style="height: 40px; background-color: #FCFCFC; border-left: 1px solid #D3D3D3;" class="gt_row gt_center"><svg width="25px" height="25px" viewbox="0 0 25 25" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" style="vertical-align: middle;">
    <g id="unchanged" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="unchanged" transform="translate(0.500000, 0.570147)">
            <rect id="Rectangle" x="0.125132506" y="0" width="23.749735" height="23.7894737"></rect>
            <path d="M5.80375046,8.18194736 C3.77191832,8.18194736 2.11875046,9.83495328 2.11875046,11.8669474 C2.11875046,13.8989414 3.77191832,15.5519474 5.80375046,15.5519474 C7.8355826,15.5519474 9.48875046,13.8989414 9.48875046,11.8669474 C9.48875046,9.83495328 7.83552863,8.18194736 5.80375046,8.18194736 Z M5.80375046,14.814915 C4.17821997,14.814915 2.85578285,13.4924778 2.85578285,11.8669474 C2.85578285,10.2414169 4.17821997,8.91897975 5.80375046,8.91897975 C7.42928095,8.91897975 8.75171807,10.2414169 8.75171807,11.8669474 C8.75171807,13.4924778 7.42928095,14.814915 5.80375046,14.814915 Z" id="Shape" fill="#000000" fill-rule="nonzero"></path>
            <path d="M13.9638189,8.699335 C13.9364621,8.70430925 13.9091059,8.71176968 13.8842359,8.71923074 C13.7822704,8.73663967 13.6877654,8.77643115 13.6056956,8.83860518 L10.2433156,11.3852598 C10.0766886,11.5046343 9.97720993,11.6986181 9.97720993,11.9025491 C9.97720993,12.1064807 10.0766886,12.3004639 10.2433156,12.4198383 L13.6056956,14.966493 C13.891697,15.1803725 14.2970729,15.1231721 14.5109517,14.8371707 C14.7248313,14.5511692 14.6676309,14.145794 14.3816294,13.9319145 L12.5313257,12.5392127 L21.8812495,12.5392127 L21.8812495,11.2658854 L12.5313257,11.2658854 L14.3816294,9.87318364 C14.6377872,9.71650453 14.7497006,9.40066014 14.6477351,9.11714553 C14.5482564,8.83363156 14.262255,8.65954352 13.9638189,8.699335 Z" id="arrow" fill="#000000" transform="translate(15.929230, 11.894737) rotate(-180.000000) translate(-15.929230, -11.894737) "></path>
        </g>
    </g>
</svg></td>
    <td style="height: 40px; background-color: #FCFCFC; border-right: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color:#4CA64C;">✓</span></td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_right">13</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5;" class="gt_row gt_right">12<br>0.92</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5;" class="gt_row gt_right">1<br>0.08</td>
    <td style="height: 40px; background-color: #FCFCFC; border-left: 1px solid #D3D3D3;" class="gt_row gt_center">—</td>
    <td style="height: 40px; background-color: #FCFCFC;" class="gt_row gt_center">—</td>
    <td style="height: 40px; background-color: #FCFCFC; border-right: 1px solid #D3D3D3;" class="gt_row gt_center">—</td>
    <td style="height: 40px;" class="gt_row gt_center"><a href="data:text/csv;base64,X3Jvd19udW1fLGRhdGVfdGltZSxkYXRlLGEsYixjLGQsZSxmCjIsMjAxNi0wMS0wNFQwMDozMjowMC4wMDAwMDAsMjAxNi0wMS0wNCwzLDUtZWdoLTE2Myw4LDk5OTkuOTksdHJ1ZSxsb3cK" download="extract_0002.csv"><button style="background-color: #67C2DC; color: #FFFFFF; border: none; padding: 5px; font-weight: bold; cursor: pointer; border-radius: 4px;">CSV</button></a></td>
  </tr>
  <tr>
    <td style="height: 40px; background-color: #4CA64C; color: transparent;font-size: 0px;" class="gt_row gt_left">#4CA64C</td>
    <td style="height: 40px; color: #666666;font-size: 13px;font-weight: bold;" class="gt_row gt_right">3</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_left">
        <div style="margin: 0; padding: 0; display: inline-block; height: 30px; vertical-align: middle; width: 16%;">
            <!--?xml version="1.0" encoding="UTF-8"?--><!--?xml version="1.0" encoding="UTF-8"?-->
<svg width="30px" height="30px" viewbox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink">
    <title>col_vals_in_set</title>
    <g id="Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="col_vals_in_set" transform="translate(0.000000, 0.172414)">
            <path d="M56.712234,1 C59.1975153,1 61.4475153,2.00735931 63.076195,3.63603897 C64.7048747,5.26471863 65.712234,7.51471863 65.712234,10 L65.712234,10 L65.712234,65 L10.712234,65 C8.22695259,65 5.97695259,63.9926407 4.34827294,62.363961 C2.71959328,60.7352814 1.71223397,58.4852814 1.71223397,56 L1.71223397,56 L1.71223397,10 C1.71223397,7.51471863 2.71959328,5.26471863 4.34827294,3.63603897 C5.97695259,2.00735931 8.22695259,1 10.712234,1 L10.712234,1 Z" id="rectangle" stroke="#000000" stroke-width="2" fill="#FFFFFF"></path>
            <path d="M44.127969,41.1538382 L31.0814568,41.1538382 C29.9510748,41.1536429 28.8827052,40.9256134 27.9079888,40.5136953 C26.4467442,39.8960136 25.19849,38.8599685 24.3189894,37.5577099 C23.8792391,36.906727 23.5314818,36.1899233 23.2936866,35.4252675 C23.2130217,35.16589 23.1460289,34.9005554 23.0913409,34.6307286 L44.1278714,34.6307286 C45.028466,34.6306309 45.7586488,33.9004481 45.7586488,32.9998535 C45.7586488,32.0992589 45.028466,31.3690761 44.1278714,31.3690761 L23.0905596,31.3690761 C23.1990567,30.8337194 23.3597028,30.3180894 23.5675173,29.8264831 C24.185199,28.3652386 25.2212442,27.1169844 26.5236004,26.2374838 C27.1745833,25.7977334 27.891387,25.4499762 28.6560428,25.2122786 C29.4208939,24.9744833 30.2334994,24.8459665 31.0813591,24.8459665 L44.1277737,24.8459665 C45.0283683,24.8459665 45.7586488,24.1157837 45.7586488,23.2151891 C45.7586488,22.3145945 45.0283683,21.5844117 44.1277737,21.5844117 L31.0813591,21.5844117 C29.5096643,21.5844117 28.0039858,21.9038483 26.6373711,22.4820765 C24.5866678,23.3498583 22.8469049,24.7950871 21.6163267,26.616296 C20.3856508,28.4362354 19.665136,30.6413347 19.6658191,33.0000488 C19.6658191,34.5717436 19.9852563,36.0774222 20.5635822,37.4440369 C21.4312663,39.4947402 22.8765927,41.2345031 24.697704,42.4650813 C26.5176434,43.6957572 28.7227427,44.4155883 31.0814568,44.4155883 L44.1278714,44.4155883 C45.028466,44.4155883 45.7586488,43.6854055 45.7586488,42.7848109 C45.7586488,41.8842163 45.0285636,41.1538382 44.127969,41.1538382 Z" id="set_of" fill="#000000" fill-rule="nonzero"></path>
        </g>
    </g>
</svg>
        </div>
        <div style="font-family: 'IBM Plex Mono', monospace, courier; color: black; font-size: 11px; display: inline-block; vertical-align: middle;">
            <div>col_vals_in_set()</div>
        </div>
        
        </td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">f</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">low, mid, high</td>
    <td style="height: 40px; background-color: #FCFCFC; border-left: 1px solid #D3D3D3;" class="gt_row gt_center"><svg width="25px" height="25px" viewbox="0 0 25 25" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" style="vertical-align: middle;">
    <g id="unchanged" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="unchanged" transform="translate(0.500000, 0.570147)">
            <rect id="Rectangle" x="0.125132506" y="0" width="23.749735" height="23.7894737"></rect>
            <path d="M5.80375046,8.18194736 C3.77191832,8.18194736 2.11875046,9.83495328 2.11875046,11.8669474 C2.11875046,13.8989414 3.77191832,15.5519474 5.80375046,15.5519474 C7.8355826,15.5519474 9.48875046,13.8989414 9.48875046,11.8669474 C9.48875046,9.83495328 7.83552863,8.18194736 5.80375046,8.18194736 Z M5.80375046,14.814915 C4.17821997,14.814915 2.85578285,13.4924778 2.85578285,11.8669474 C2.85578285,10.2414169 4.17821997,8.91897975 5.80375046,8.91897975 C7.42928095,8.91897975 8.75171807,10.2414169 8.75171807,11.8669474 C8.75171807,13.4924778 7.42928095,14.814915 5.80375046,14.814915 Z" id="Shape" fill="#000000" fill-rule="nonzero"></path>
            <path d="M13.9638189,8.699335 C13.9364621,8.70430925 13.9091059,8.71176968 13.8842359,8.71923074 C13.7822704,8.73663967 13.6877654,8.77643115 13.6056956,8.83860518 L10.2433156,11.3852598 C10.0766886,11.5046343 9.97720993,11.6986181 9.97720993,11.9025491 C9.97720993,12.1064807 10.0766886,12.3004639 10.2433156,12.4198383 L13.6056956,14.966493 C13.891697,15.1803725 14.2970729,15.1231721 14.5109517,14.8371707 C14.7248313,14.5511692 14.6676309,14.145794 14.3816294,13.9319145 L12.5313257,12.5392127 L21.8812495,12.5392127 L21.8812495,11.2658854 L12.5313257,11.2658854 L14.3816294,9.87318364 C14.6377872,9.71650453 14.7497006,9.40066014 14.6477351,9.11714553 C14.5482564,8.83363156 14.262255,8.65954352 13.9638189,8.699335 Z" id="arrow" fill="#000000" transform="translate(15.929230, 11.894737) rotate(-180.000000) translate(-15.929230, -11.894737) "></path>
        </g>
    </g>
</svg></td>
    <td style="height: 40px; background-color: #FCFCFC; border-right: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color:#4CA64C;">✓</span></td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_right">13</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5;" class="gt_row gt_right">13<br>1.00</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5;" class="gt_row gt_right">0<br>0.00</td>
    <td style="height: 40px; background-color: #FCFCFC; border-left: 1px solid #D3D3D3;" class="gt_row gt_center">—</td>
    <td style="height: 40px; background-color: #FCFCFC;" class="gt_row gt_center">—</td>
    <td style="height: 40px; background-color: #FCFCFC; border-right: 1px solid #D3D3D3;" class="gt_row gt_center">—</td>
    <td style="height: 40px;" class="gt_row gt_center">—</td>
  </tr>
  <tr>
    <td style="height: 40px; background-color: #4CA64C; color: transparent;font-size: 0px;" class="gt_row gt_left">#4CA64C</td>
    <td style="height: 40px; color: #666666;font-size: 13px;font-weight: bold;" class="gt_row gt_right">4</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_left">
        <div style="margin: 0; padding: 0; display: inline-block; height: 30px; vertical-align: middle; width: 16%;">
            <!--?xml version="1.0" encoding="UTF-8"?--><!--?xml version="1.0" encoding="UTF-8"?-->
<svg width="30px" height="30px" viewbox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink">
    <title>col_vals_regex</title>
    <g id="Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="col_vals_regex" transform="translate(0.000000, 0.034483)">
            <path d="M56.712234,1 C59.1975153,1 61.4475153,2.00735931 63.076195,3.63603897 C64.7048747,5.26471863 65.712234,7.51471863 65.712234,10 L65.712234,10 L65.712234,65 L10.712234,65 C8.22695259,65 5.97695259,63.9926407 4.34827294,62.363961 C2.71959328,60.7352814 1.71223397,58.4852814 1.71223397,56 L1.71223397,56 L1.71223397,10 C1.71223397,7.51471863 2.71959328,5.26471863 4.34827294,3.63603897 C5.97695259,2.00735931 8.22695259,1 10.712234,1 L10.712234,1 Z" id="rectangle" stroke="#000000" stroke-width="2" fill="#FFFFFF"></path>
            <g id="regex_symbols" transform="translate(18.000000, 12.000000)" fill="#000000" fill-rule="nonzero">
                <path d="M4.17434508,33.013582 C1.94895328,33.013582 0.138006923,34.8245284 0.138006923,37.0499202 C0.138006923,39.275312 1.94895328,41.0862583 4.17434508,41.0862583 C6.39973688,41.0862583 8.21068324,39.275312 8.21068324,37.0499202 C8.21068324,34.8245284 6.39973688,33.013582 4.17434508,33.013582 Z" id="full_stop"></path>
                <path d="M23.9479718,23.3175402 L21.5628264,23.3175402 C21.2344032,23.3175402 20.9665401,23.0520067 20.9665401,22.7212538 L20.9665401,15.1022979 L14.3445004,18.8873192 C14.0626621,19.050366 13.7016292,18.952538 13.5362533,18.6706991 L12.3436806,16.6442575 C12.262157,16.506832 12.2388642,16.3437852 12.2807909,16.1900549 C12.3203879,16.0363251 12.4205455,15.9058874 12.557971,15.8266929 L19.1800101,11.9880994 L12.557971,8.15183511 C12.4205455,8.07264112 12.3203879,7.93987439 12.2807909,7.78614401 C12.2388642,7.63241423 12.262157,7.46936689 12.3413509,7.33194137 L13.5339237,5.30549975 C13.6993001,5.02366143 14.0626621,4.92816199 14.3445004,5.09120934 L20.9665401,8.87390091 L20.9665401,1.25494501 C20.9665401,0.926521818 21.2344032,0.658658658 21.5628264,0.658658658 L23.9479718,0.658658658 C24.2787247,0.658658658 24.5442582,0.926521818 24.5442582,1.25494501 L24.5442582,8.87390091 L31.1662979,5.09120934 C31.4481362,4.92816199 31.8091691,5.02366143 31.9745455,5.30549975 L33.1671182,7.33194137 C33.2486413,7.46936689 33.2719341,7.63241423 33.2300074,7.78614401 C33.1904104,7.93987439 33.0902528,8.07264112 32.9528278,8.15183511 L26.3307882,11.9880994 L32.9528278,15.8243638 C33.0879237,15.9058874 33.1880813,16.0363251 33.2300074,16.1900549 C33.269605,16.3437852 33.2486413,16.506832 33.1671182,16.6442575 L31.9745455,18.6706991 C31.8091691,18.952538 31.4481362,19.050366 31.1662979,18.8849895 L24.5442582,15.1022979 L24.5442582,22.7212538 C24.5442582,23.0520067 24.2787247,23.3175402 23.9479718,23.3175402 Z" id="asterisk"></path>
            </g>
        </g>
    </g>
</svg>
        </div>
        <div style="font-family: 'IBM Plex Mono', monospace, courier; color: black; font-size: 11px; display: inline-block; vertical-align: middle;">
            <div>col_vals_regex()</div>
        </div>
        
        </td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">b</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">^[0-9]-[a-z]{3}-[0-9]{3}$</td>
    <td style="height: 40px; background-color: #FCFCFC; border-left: 1px solid #D3D3D3;" class="gt_row gt_center"><svg width="25px" height="25px" viewbox="0 0 25 25" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" style="vertical-align: middle;">
    <g id="unchanged" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="unchanged" transform="translate(0.500000, 0.570147)">
            <rect id="Rectangle" x="0.125132506" y="0" width="23.749735" height="23.7894737"></rect>
            <path d="M5.80375046,8.18194736 C3.77191832,8.18194736 2.11875046,9.83495328 2.11875046,11.8669474 C2.11875046,13.8989414 3.77191832,15.5519474 5.80375046,15.5519474 C7.8355826,15.5519474 9.48875046,13.8989414 9.48875046,11.8669474 C9.48875046,9.83495328 7.83552863,8.18194736 5.80375046,8.18194736 Z M5.80375046,14.814915 C4.17821997,14.814915 2.85578285,13.4924778 2.85578285,11.8669474 C2.85578285,10.2414169 4.17821997,8.91897975 5.80375046,8.91897975 C7.42928095,8.91897975 8.75171807,10.2414169 8.75171807,11.8669474 C8.75171807,13.4924778 7.42928095,14.814915 5.80375046,14.814915 Z" id="Shape" fill="#000000" fill-rule="nonzero"></path>
            <path d="M13.9638189,8.699335 C13.9364621,8.70430925 13.9091059,8.71176968 13.8842359,8.71923074 C13.7822704,8.73663967 13.6877654,8.77643115 13.6056956,8.83860518 L10.2433156,11.3852598 C10.0766886,11.5046343 9.97720993,11.6986181 9.97720993,11.9025491 C9.97720993,12.1064807 10.0766886,12.3004639 10.2433156,12.4198383 L13.6056956,14.966493 C13.891697,15.1803725 14.2970729,15.1231721 14.5109517,14.8371707 C14.7248313,14.5511692 14.6676309,14.145794 14.3816294,13.9319145 L12.5313257,12.5392127 L21.8812495,12.5392127 L21.8812495,11.2658854 L12.5313257,11.2658854 L14.3816294,9.87318364 C14.6377872,9.71650453 14.7497006,9.40066014 14.6477351,9.11714553 C14.5482564,8.83363156 14.262255,8.65954352 13.9638189,8.699335 Z" id="arrow" fill="#000000" transform="translate(15.929230, 11.894737) rotate(-180.000000) translate(-15.929230, -11.894737) "></path>
        </g>
    </g>
</svg></td>
    <td style="height: 40px; background-color: #FCFCFC; border-right: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color:#4CA64C;">✓</span></td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_right">13</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5;" class="gt_row gt_right">13<br>1.00</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5;" class="gt_row gt_right">0<br>0.00</td>
    <td style="height: 40px; background-color: #FCFCFC; border-left: 1px solid #D3D3D3;" class="gt_row gt_center">—</td>
    <td style="height: 40px; background-color: #FCFCFC;" class="gt_row gt_center">—</td>
    <td style="height: 40px; background-color: #FCFCFC; border-right: 1px solid #D3D3D3;" class="gt_row gt_center">—</td>
    <td style="height: 40px;" class="gt_row gt_center">—</td>
  </tr>
</tbody>
<tfoot><tr class="gt_sourcenotes"><td class="gt_sourcenote" colspan="14" style="text-align: left;"><span class="gt_from_md"><div style="margin-top: 5px; margin-bottom: 5px;"><span style="background-color: #FFF; color: #444; padding: 0.5em 0.5em; position: inherit; text-transform: uppercase; margin-left: 10px; margin-right: 5px; border: solid 1px #999999; font-variant-numeric: tabular-nums; border-radius: 0; padding: 2px 10px 2px 10px;">2026-07-22 23:16:23 UTC</span><span style="background-color: #FFF; color: #444; padding: 0.5em 0.5em; position: inherit; margin-right: 5px; border: solid 1px #999999; font-variant-numeric: tabular-nums; border-radius: 0; padding: 2px 10px 2px 10px;">&lt; 1 s</span><span style="background-color: #FFF; color: #444; padding: 0.5em 0.5em; position: inherit; text-transform: uppercase; margin: 5px 1px 5px -1px; border: solid 1px #999999; font-variant-numeric: tabular-nums; border-radius: 0; padding: 2px 10px 2px 10px;">2026-07-22 23:16:23 UTC</span></div></span></td></tr></tfoot>
</table>

</div>
</div>
</div>
<p>There’s a lot to take in here so let’s break down the code first! Note these three key pieces:</p>
<ul>
<li>the <code>Validate(data=...)</code> argument takes a DataFrame (or database table) that you want to validate</li>
<li>the methods starting with <code>col_*</code> specify validation steps that run on specific columns</li>
<li>the <code>interrogate()</code> method executes the validation plan on the table (it’s the finishing step)</li>
</ul>
<p>This common pattern is used in a validation workflow, where <a href="`Validate`"><code>Validate</code></a> and <a href="`Validate.interrogate`"><code>interrogate()</code></a> bookend a validation plan generated through calling validation methods.</p>
<p>Now, onto the result: it’s a table! Naturally, we’re using the awesome Great Tables package here in Pointblank to really give you the goods on how the validation went down. Each row in this reporting table represents a single validation step (one for each invocation of a <code>col_vals_*()</code> validation method). Generally speaking, the left side of the validation report tables outlines the key validation rules, and the right side provides the results of each validation step.</p>
<p>We tried to keep it simple in principle, but a lot of useful information can be packed into this validation table. Here’s a diagram that describes a few of the important parts of the validation report table:</p>
<p><img src="https://posit-dev.github.io/pointblank/blog/intro-pointblank/validation-table-diagram.png" class="img-fluid" style="width:100.0%"></p>
<p>All of those numbers under the <code>UNITS</code>, <code>PASS</code>, and <code>FAIL</code> columns have to do with test units, a measure of central importance in Pointblank. Each validation step will execute a type of validation test on the target table. For example, a <a href="`Validate.col_vals_lt`"><code>col_vals_lt()</code></a> validation step can test that each value in a column is less than a specified number. The key finding that’s reported as a result of this test is the number of test units that pass or fail. This little diagram explains what those numbers mean:</p>
<p><img src="https://posit-dev.github.io/pointblank/blog/intro-pointblank/validation-test-units.png" class="img-fluid" data-text-align="center"></p>
<p>Failing test units can be tied to threshold levels, which can provide a better indication of whether failures should raise some basic awareness or spur you into action. Here’s a validation workflow that sets three failure threshold levels that signal the severity of data quality problems:</p>
<div id="9347a40d" class="cell" data-execution_count="2">
<div class="sourceCode cell-code" id="cb3" style="background: #f1f3f5;"><pre class="sourceCode python"><code class="sourceCode python"><span id="cb3-1"><span class="im" style="color: #00769E;
background-color: null;
font-style: inherit;">import</span> pointblank <span class="im" style="color: #00769E;
background-color: null;
font-style: inherit;">as</span> pb</span>
<span id="cb3-2"><span class="im" style="color: #00769E;
background-color: null;
font-style: inherit;">import</span> polars <span class="im" style="color: #00769E;
background-color: null;
font-style: inherit;">as</span> pl</span>
<span id="cb3-3"></span>
<span id="cb3-4">validation_2 <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> (</span>
<span id="cb3-5">    pb.Validate(</span>
<span id="cb3-6">        data<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>pb.load_dataset(dataset<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"game_revenue"</span>, tbl_type<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"polars"</span>),</span>
<span id="cb3-7">        tbl_name<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"game_revenue"</span>,</span>
<span id="cb3-8">        label<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Data validation with threshold levels set."</span>,</span>
<span id="cb3-9">        thresholds<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>pb.Thresholds(warning<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>, error<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">20</span>, critical<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.10</span>),</span>
<span id="cb3-10">    )</span>
<span id="cb3-11">    .col_vals_regex(columns<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"player_id"</span>, pattern<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="vs" style="color: #20794D;
background-color: null;
font-style: inherit;">r"</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">^</span><span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;">[A-Z]</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">{12}</span><span class="pp" style="color: #AD0000;
background-color: null;
font-style: inherit;">[0-9]</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">{3}</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">$</span><span class="vs" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span>)        <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># STEP 1</span></span>
<span id="cb3-12">    .col_vals_gt(columns<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"session_duration"</span>, value<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">5</span>)                           <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># STEP 2</span></span>
<span id="cb3-13">    .col_vals_ge(columns<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"item_revenue"</span>, value<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.02</span>)                            <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># STEP 3</span></span>
<span id="cb3-14">    .col_vals_in_set(columns<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"item_type"</span>, <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">set</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>[<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"iap"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"ad"</span>])                    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># STEP 4</span></span>
<span id="cb3-15">    .col_vals_in_set(                                                           <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># STEP 5</span></span>
<span id="cb3-16">        columns<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"acquisition"</span>,</span>
<span id="cb3-17">        <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">set</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>[<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"google"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"facebook"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"organic"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"crosspromo"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"other_campaign"</span>]</span>
<span id="cb3-18">    )</span>
<span id="cb3-19">    .col_vals_not_in_set(columns<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"country"</span>, <span class="bu" style="color: null;
background-color: null;
font-style: inherit;">set</span><span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>[<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Mongolia"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Germany"</span>])        <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># STEP 6</span></span>
<span id="cb3-20">    .col_vals_between(                                                          <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># STEP 7</span></span>
<span id="cb3-21">        columns<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"session_duration"</span>,</span>
<span id="cb3-22">        left<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">10</span>, right<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">50</span>,</span>
<span id="cb3-23">        pre <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> <span class="kw" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">lambda</span> df: df.select(pl.median(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"session_duration"</span>))</span>
<span id="cb3-24">    )</span>
<span id="cb3-25">    .rows_distinct(columns_subset<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>[<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"player_id"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"session_id"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"time"</span>])          <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># STEP 8</span></span>
<span id="cb3-26">    .row_count_match(count<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2000</span>)                                                <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># STEP 9</span></span>
<span id="cb3-27">    .col_exists(columns<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"start_day"</span>)                                            <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># STEP 10</span></span>
<span id="cb3-28">    .interrogate()</span>
<span id="cb3-29">)</span>
<span id="cb3-30"></span>
<span id="cb3-31">validation_2</span></code></pre></div>
<div class="cell-output cell-output-display" data-execution_count="2">
<div id="pb_tbl" style="padding-left:0px;padding-right:0px;padding-top:10px;padding-bottom:10px;overflow-x:auto;overflow-y:auto;width:auto;height:auto;">
<style>
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono&display=swap');
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Sans&display=swap');
#pb_tbl table {
          font-family: 'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Helvetica Neue', 'Fira Sans', 'Droid Sans', Arial, sans-serif;
          -webkit-font-smoothing: antialiased;
          -moz-osx-font-smoothing: grayscale;
        }

#pb_tbl thead, tbody, tfoot, tr, td, th { border-style: none; }
 tr { background-color: transparent; }
#pb_tbl p { margin: 0; padding: 0; }
 #pb_tbl .gt_table { display: table; border-collapse: collapse; line-height: normal; margin-left: auto; margin-right: auto; color: #333333; font-size: 90%; font-weight: normal; font-style: normal; background-color: #FFFFFF; width: auto; border-top-style: solid; border-top-width: 2px; border-top-color: #A8A8A8; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #A8A8A8; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; }
 #pb_tbl .gt_caption { padding-top: 4px; padding-bottom: 4px; }
 #pb_tbl .gt_title { color: #333333; font-size: 125%; font-weight: initial; padding-top: 4px; padding-bottom: 4px; padding-left: 5px; padding-right: 5px; border-bottom-color: #FFFFFF; border-bottom-width: 0; }
 #pb_tbl .gt_subtitle { color: #333333; font-size: 85%; font-weight: initial; padding-top: 3px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; border-top-color: #FFFFFF; border-top-width: 0; }
 #pb_tbl .gt_heading { background-color: #FFFFFF; text-align: left; border-bottom-color: #FFFFFF; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; }
 #pb_tbl .gt_bottom_border { border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; }
 #pb_tbl .gt_col_headings { border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; }
 #pb_tbl .gt_col_heading { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: normal; text-transform: inherit; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; vertical-align: bottom; padding-top: 5px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; overflow-x: hidden; }
 #pb_tbl .gt_column_spanner_outer { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: normal; text-transform: inherit; padding-top: 0; padding-bottom: 0; padding-left: 4px; padding-right: 4px; }
 #pb_tbl .gt_column_spanner_outer:first-child { padding-left: 0; }
 #pb_tbl .gt_column_spanner_outer:last-child { padding-right: 0; }
 #pb_tbl .gt_column_spanner { border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; vertical-align: bottom; padding-top: 5px; padding-bottom: 5px; overflow-x: hidden; display: inline-block; width: 100%; }
 #pb_tbl .gt_spanner_row { border-bottom-style: hidden; }
 #pb_tbl .gt_group_heading { padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; text-transform: inherit; border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; vertical-align: middle; text-align: left; }
 #pb_tbl .gt_empty_group_heading { padding: 0.5px; color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; vertical-align: middle; }
 #pb_tbl .gt_from_md> :first-child { margin-top: 0; }
 #pb_tbl .gt_from_md> :last-child { margin-bottom: 0; }
 #pb_tbl .gt_row { padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; margin: 10px; border-top-style: solid; border-top-width: 1px; border-top-color: #D3D3D3; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; vertical-align: middle; overflow-x: hidden; }
 #pb_tbl .gt_stub { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; text-transform: inherit; border-right-style: solid; border-right-width: 2px; border-right-color: #D3D3D3; padding-left: 5px; padding-right: 5px; }
 #pb_tbl .gt_stub_row_group { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; text-transform: inherit; border-right-style: solid; border-right-width: 2px; border-right-color: #D3D3D3; padding-left: 5px; padding-right: 5px; vertical-align: top; }
 #pb_tbl .gt_row_group_first td { border-top-width: 2px; }
 #pb_tbl .gt_row_group_first th { border-top-width: 2px; }
 #pb_tbl .gt_striped { color: #333333; background-color: #F4F4F4; }
 #pb_tbl .gt_table_body { border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; }
 #pb_tbl .gt_summary_row { color: #333333; background-color: #FFFFFF; text-transform: inherit; padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; }
 #pb_tbl .gt_first_summary_row { border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; }
 #pb_tbl .gt_last_summary_row_top { border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; }
 #pb_tbl .gt_grand_summary_row { color: #333333; background-color: #FFFFFF; text-transform: inherit; padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; }
 #pb_tbl .gt_first_grand_summary_row_bottom { border-top-style: double; border-top-width: 6px; border-top-color: #D3D3D3; }
 #pb_tbl .gt_last_grand_summary_row_top { border-bottom-style: double; border-bottom-width: 6px; border-bottom-color: #D3D3D3; }
 #pb_tbl .gt_sourcenotes { color: #333333; background-color: #FFFFFF; border-bottom-style: none; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; }
 #pb_tbl .gt_sourcenote { font-size: 90%; padding-top: 4px; padding-bottom: 4px; padding-left: 5px; padding-right: 5px; text-align: left; }
 #pb_tbl .gt_left { text-align: left; }
 #pb_tbl .gt_center { text-align: center; }
 #pb_tbl .gt_right { text-align: right; font-variant-numeric: tabular-nums; }
 #pb_tbl .gt_font_normal { font-weight: normal; }
 #pb_tbl .gt_font_bold { font-weight: bold; }
 #pb_tbl .gt_font_italic { font-style: italic; }
 #pb_tbl .gt_super { font-size: 65%; }
 #pb_tbl .gt_footnotes { color: font-color(#FFFFFF); background-color: #FFFFFF; border-bottom-style: none; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; }
 #pb_tbl .gt_footnote { margin: 0px; font-size: 90%; padding-top: 4px; padding-bottom: 4px; padding-left: 5px; padding-right: 5px; }
 #pb_tbl .gt_sourcenotes { color: #333333; background-color: #FFFFFF; border-bottom-style: none; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; }
 #pb_tbl .gt_sourcenote { font-size: 90%; padding-top: 4px; padding-bottom: 4px; padding-left: 5px; padding-right: 5px; text-align: left; }
 #pb_tbl .gt_footnote_marks { font-size: 75%; vertical-align: 0.4em; position: initial; }
 #pb_tbl .gt_asterisk { font-size: 100%; vertical-align: 0; }
 
</style>
<table style="table-layout: fixed;; width: 0px" class="gt_table" data-quarto-disable-processing="true" data-quarto-bootstrap="false">
<colgroup>
  <col style="width:4px;">
  <col style="width:35px;">
  <col style="width:190px;">
  <col style="width:120px;">
  <col style="width:120px;">
  <col style="width:50px;">
  <col style="width:50px;">
  <col style="width:60px;">
  <col style="width:60px;">
  <col style="width:60px;">
  <col style="width:30px;">
  <col style="width:30px;">
  <col style="width:30px;">
  <col style="width:65px;">
</colgroup>

<thead>

  <tr class="gt_heading">
    <td colspan="14" class="gt_heading gt_title gt_font_normal" style="color: #444444;font-size: 28px;text-align: left;font-weight: bold; text-align: left;">Pointblank Validation</td>
  </tr>
  <tr class="gt_heading">
    <td colspan="14" class="gt_heading gt_subtitle gt_font_normal gt_bottom_border" style="text-align: left;"><div><span style="text-decoration-style: solid; text-decoration-color: #ADD8E6; text-decoration-line: underline; text-underline-position: under; color: #333333; font-variant-numeric: tabular-nums; padding-left: 4px; margin-right: 5px; padding-right: 2px;">Data validation with threshold levels set.</span><div style="padding-top: 10px; padding-bottom: 5px;"><span style="background-color: #0075FF; color: #FFFFFF; padding: 0.5em 0.5em; position: inherit; text-transform: uppercase; margin: 5px 0px 5px 0px; border: solid 1px #0075FF; font-weight: bold; padding: 2px 15px 2px 15px; font-size: 10px;">Polars</span><span style="background-color: none; color: #222222; padding: 0.5em 0.5em; position: inherit; margin: 5px 10px 5px -4px; border: solid 1px #0075FF; font-weight: bold; padding: 2px 15px 2px 15px; font-size: 10px;">game_revenue</span><span><span style="background-color: #AAAAAA; color: white; padding: 0.5em 0.5em; position: inherit; text-transform: uppercase; margin: 5px 0px 5px 5px; border: solid 1px #AAAAAA; font-weight: bold; padding: 2px 15px 2px 15px; font-size: smaller;">WARNING</span><span style="background-color: none; color: #333333; padding: 0.5em 0.5em; position: inherit; margin: 5px 0px 5px -4px; font-weight: bold; border: solid 1px #AAAAAA; padding: 2px 15px 2px 15px; font-size: smaller; margin-right: 5px;">1</span><span style="background-color: #EBBC14; color: white; padding: 0.5em 0.5em; position: inherit; text-transform: uppercase; margin: 5px 0px 5px 1px; border: solid 1px #EBBC14; font-weight: bold; padding: 2px 15px 2px 15px; font-size: smaller;">ERROR</span><span style="background-color: none; color: #333333; padding: 0.5em 0.5em; position: inherit; margin: 5px 0px 5px -4px; font-weight: bold; border: solid 1px #EBBC14; padding: 2px 15px 2px 15px; font-size: smaller; margin-right: 5px;">20</span><span style="background-color: #FF3300; color: white; padding: 0.5em 0.5em; position: inherit; text-transform: uppercase; margin: 5px 0px 5px 1px; border: solid 1px #FF3300; font-weight: bold; padding: 2px 15px 2px 15px; font-size: smaller;">CRITICAL</span><span style="background-color: none; color: #333333; padding: 0.5em 0.5em; position: inherit; margin: 5px 0px 5px -4px; font-weight: bold; border: solid 1px #FF3300; padding: 2px 15px 2px 15px; font-size: smaller;">0.1</span></span></div></div></td>
  </tr>
<tr class="gt_col_headings">
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-status_color"></th>
  <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-i"></th>
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-type_upd">STEP</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-columns_upd">COLUMNS</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-values_upd">VALUES</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-tbl">TBL</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-eval">EVAL</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-test_units">UNITS</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-pass">PASS</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-fail">FAIL</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-w_upd">W</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-e_upd">E</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-c_upd">C</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-extract_upd">EXT</th>
</tr>
</thead>
<tbody class="gt_table_body">
  <tr>
    <td style="height: 40px; background-color: #4CA64C; color: transparent;font-size: 0px;" class="gt_row gt_left">#4CA64C</td>
    <td style="height: 40px; color: #666666;font-size: 13px;font-weight: bold;" class="gt_row gt_right">1</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_left">
        <div style="margin: 0; padding: 0; display: inline-block; height: 30px; vertical-align: middle; width: 16%;">
            <!--?xml version="1.0" encoding="UTF-8"?--><!--?xml version="1.0" encoding="UTF-8"?-->
<svg width="30px" height="30px" viewbox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink">
    <title>col_vals_regex</title>
    <g id="Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="col_vals_regex" transform="translate(0.000000, 0.034483)">
            <path d="M56.712234,1 C59.1975153,1 61.4475153,2.00735931 63.076195,3.63603897 C64.7048747,5.26471863 65.712234,7.51471863 65.712234,10 L65.712234,10 L65.712234,65 L10.712234,65 C8.22695259,65 5.97695259,63.9926407 4.34827294,62.363961 C2.71959328,60.7352814 1.71223397,58.4852814 1.71223397,56 L1.71223397,56 L1.71223397,10 C1.71223397,7.51471863 2.71959328,5.26471863 4.34827294,3.63603897 C5.97695259,2.00735931 8.22695259,1 10.712234,1 L10.712234,1 Z" id="rectangle" stroke="#000000" stroke-width="2" fill="#FFFFFF"></path>
            <g id="regex_symbols" transform="translate(18.000000, 12.000000)" fill="#000000" fill-rule="nonzero">
                <path d="M4.17434508,33.013582 C1.94895328,33.013582 0.138006923,34.8245284 0.138006923,37.0499202 C0.138006923,39.275312 1.94895328,41.0862583 4.17434508,41.0862583 C6.39973688,41.0862583 8.21068324,39.275312 8.21068324,37.0499202 C8.21068324,34.8245284 6.39973688,33.013582 4.17434508,33.013582 Z" id="full_stop"></path>
                <path d="M23.9479718,23.3175402 L21.5628264,23.3175402 C21.2344032,23.3175402 20.9665401,23.0520067 20.9665401,22.7212538 L20.9665401,15.1022979 L14.3445004,18.8873192 C14.0626621,19.050366 13.7016292,18.952538 13.5362533,18.6706991 L12.3436806,16.6442575 C12.262157,16.506832 12.2388642,16.3437852 12.2807909,16.1900549 C12.3203879,16.0363251 12.4205455,15.9058874 12.557971,15.8266929 L19.1800101,11.9880994 L12.557971,8.15183511 C12.4205455,8.07264112 12.3203879,7.93987439 12.2807909,7.78614401 C12.2388642,7.63241423 12.262157,7.46936689 12.3413509,7.33194137 L13.5339237,5.30549975 C13.6993001,5.02366143 14.0626621,4.92816199 14.3445004,5.09120934 L20.9665401,8.87390091 L20.9665401,1.25494501 C20.9665401,0.926521818 21.2344032,0.658658658 21.5628264,0.658658658 L23.9479718,0.658658658 C24.2787247,0.658658658 24.5442582,0.926521818 24.5442582,1.25494501 L24.5442582,8.87390091 L31.1662979,5.09120934 C31.4481362,4.92816199 31.8091691,5.02366143 31.9745455,5.30549975 L33.1671182,7.33194137 C33.2486413,7.46936689 33.2719341,7.63241423 33.2300074,7.78614401 C33.1904104,7.93987439 33.0902528,8.07264112 32.9528278,8.15183511 L26.3307882,11.9880994 L32.9528278,15.8243638 C33.0879237,15.9058874 33.1880813,16.0363251 33.2300074,16.1900549 C33.269605,16.3437852 33.2486413,16.506832 33.1671182,16.6442575 L31.9745455,18.6706991 C31.8091691,18.952538 31.4481362,19.050366 31.1662979,18.8849895 L24.5442582,15.1022979 L24.5442582,22.7212538 C24.5442582,23.0520067 24.2787247,23.3175402 23.9479718,23.3175402 Z" id="asterisk"></path>
            </g>
        </g>
    </g>
</svg>
        </div>
        <div style="font-family: 'IBM Plex Mono', monospace, courier; color: black; font-size: 11px; display: inline-block; vertical-align: middle;">
            <div>col_vals_regex()</div>
        </div>
        
        </td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">player_id</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">^[A-Z]{12}[0-9]{3}$</td>
    <td style="height: 40px; background-color: #FCFCFC; border-left: 1px solid #D3D3D3;" class="gt_row gt_center"><svg width="25px" height="25px" viewbox="0 0 25 25" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" style="vertical-align: middle;">
    <g id="unchanged" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="unchanged" transform="translate(0.500000, 0.570147)">
            <rect id="Rectangle" x="0.125132506" y="0" width="23.749735" height="23.7894737"></rect>
            <path d="M5.80375046,8.18194736 C3.77191832,8.18194736 2.11875046,9.83495328 2.11875046,11.8669474 C2.11875046,13.8989414 3.77191832,15.5519474 5.80375046,15.5519474 C7.8355826,15.5519474 9.48875046,13.8989414 9.48875046,11.8669474 C9.48875046,9.83495328 7.83552863,8.18194736 5.80375046,8.18194736 Z M5.80375046,14.814915 C4.17821997,14.814915 2.85578285,13.4924778 2.85578285,11.8669474 C2.85578285,10.2414169 4.17821997,8.91897975 5.80375046,8.91897975 C7.42928095,8.91897975 8.75171807,10.2414169 8.75171807,11.8669474 C8.75171807,13.4924778 7.42928095,14.814915 5.80375046,14.814915 Z" id="Shape" fill="#000000" fill-rule="nonzero"></path>
            <path d="M13.9638189,8.699335 C13.9364621,8.70430925 13.9091059,8.71176968 13.8842359,8.71923074 C13.7822704,8.73663967 13.6877654,8.77643115 13.6056956,8.83860518 L10.2433156,11.3852598 C10.0766886,11.5046343 9.97720993,11.6986181 9.97720993,11.9025491 C9.97720993,12.1064807 10.0766886,12.3004639 10.2433156,12.4198383 L13.6056956,14.966493 C13.891697,15.1803725 14.2970729,15.1231721 14.5109517,14.8371707 C14.7248313,14.5511692 14.6676309,14.145794 14.3816294,13.9319145 L12.5313257,12.5392127 L21.8812495,12.5392127 L21.8812495,11.2658854 L12.5313257,11.2658854 L14.3816294,9.87318364 C14.6377872,9.71650453 14.7497006,9.40066014 14.6477351,9.11714553 C14.5482564,8.83363156 14.262255,8.65954352 13.9638189,8.699335 Z" id="arrow" fill="#000000" transform="translate(15.929230, 11.894737) rotate(-180.000000) translate(-15.929230, -11.894737) "></path>
        </g>
    </g>
</svg></td>
    <td style="height: 40px; background-color: #FCFCFC; border-right: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color:#4CA64C;">✓</span></td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_right">2000</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5;" class="gt_row gt_right">2000<br>1.00</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5;" class="gt_row gt_right">0<br>0.00</td>
    <td style="height: 40px; background-color: #FCFCFC; border-left: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color: #AAAAAA;">○</span></td>
    <td style="height: 40px; background-color: #FCFCFC;" class="gt_row gt_center"><span style="color: #EBBC14;">○</span></td>
    <td style="height: 40px; background-color: #FCFCFC; border-right: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color: #FF3300;">○</span></td>
    <td style="height: 40px;" class="gt_row gt_center">—</td>
  </tr>
  <tr>
    <td style="height: 40px; background-color: #AAAAAA; color: transparent;font-size: 0px;" class="gt_row gt_left">#AAAAAA</td>
    <td style="height: 40px; color: #666666;font-size: 13px;font-weight: bold;" class="gt_row gt_right">2</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_left">
        <div style="margin: 0; padding: 0; display: inline-block; height: 30px; vertical-align: middle; width: 16%;">
            <!--?xml version="1.0" encoding="UTF-8"?--><!--?xml version="1.0" encoding="UTF-8"?-->
<svg width="30px" height="30px" viewbox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" style="background: #FFFFFF;">
    <title>col_vals_gt</title>
    <g id="Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="col_vals_gt" transform="translate(1.500000, 1.500000)" fill-rule="nonzero">
            <path d="M55,0 C57.4852813,0 59.7352813,1.00735931 61.363961,2.63603897 C62.9926407,4.26471863 64,6.51471863 64,9 L64,9 L64,64 L9,64 C6.51471862,64 4.26471862,62.9926407 2.63603897,61.363961 C1.00735931,59.7352814 0,57.4852814 0,55 L0,55 L0,9 C0,6.51471863 1.00735931,4.26471863 2.63603897,2.63603897 C4.26471862,1.00735931 6.51471862,0 9,0 L9,0 L55,0 Z" id="rectangle" stroke="#000000" stroke-width="2" fill="#FFFFFF"></path>
            <path d="M48.7619048,10 L15.2380953,10 C12.3466667,10 10,12.3466667 10,15.2380952 L10,48.7619048 C10,51.6533333 12.3466667,54 15.2380953,54 L48.7619048,54 C51.6533333,54 54,51.6533333 54,48.7619048 L54,15.2380952 C54,12.3466667 51.6533333,10 48.7619048,10 Z M25.2638095,44.3828571 L24.0695238,42.6647619 L39.5847619,32 L24.0695238,21.3352381 L25.2638095,19.6171429 L43.2828572,32 L25.2638095,44.3828571 Z" id="greater_than" fill="#000000"></path>
        </g>
    </g>
</svg>
        </div>
        <div style="font-family: 'IBM Plex Mono', monospace, courier; color: black; font-size: 11px; display: inline-block; vertical-align: middle;">
            <div>col_vals_gt()</div>
        </div>
        
        </td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">session_duration</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">5</td>
    <td style="height: 40px; background-color: #FCFCFC; border-left: 1px solid #D3D3D3;" class="gt_row gt_center"><svg width="25px" height="25px" viewbox="0 0 25 25" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" style="vertical-align: middle;">
    <g id="unchanged" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="unchanged" transform="translate(0.500000, 0.570147)">
            <rect id="Rectangle" x="0.125132506" y="0" width="23.749735" height="23.7894737"></rect>
            <path d="M5.80375046,8.18194736 C3.77191832,8.18194736 2.11875046,9.83495328 2.11875046,11.8669474 C2.11875046,13.8989414 3.77191832,15.5519474 5.80375046,15.5519474 C7.8355826,15.5519474 9.48875046,13.8989414 9.48875046,11.8669474 C9.48875046,9.83495328 7.83552863,8.18194736 5.80375046,8.18194736 Z M5.80375046,14.814915 C4.17821997,14.814915 2.85578285,13.4924778 2.85578285,11.8669474 C2.85578285,10.2414169 4.17821997,8.91897975 5.80375046,8.91897975 C7.42928095,8.91897975 8.75171807,10.2414169 8.75171807,11.8669474 C8.75171807,13.4924778 7.42928095,14.814915 5.80375046,14.814915 Z" id="Shape" fill="#000000" fill-rule="nonzero"></path>
            <path d="M13.9638189,8.699335 C13.9364621,8.70430925 13.9091059,8.71176968 13.8842359,8.71923074 C13.7822704,8.73663967 13.6877654,8.77643115 13.6056956,8.83860518 L10.2433156,11.3852598 C10.0766886,11.5046343 9.97720993,11.6986181 9.97720993,11.9025491 C9.97720993,12.1064807 10.0766886,12.3004639 10.2433156,12.4198383 L13.6056956,14.966493 C13.891697,15.1803725 14.2970729,15.1231721 14.5109517,14.8371707 C14.7248313,14.5511692 14.6676309,14.145794 14.3816294,13.9319145 L12.5313257,12.5392127 L21.8812495,12.5392127 L21.8812495,11.2658854 L12.5313257,11.2658854 L14.3816294,9.87318364 C14.6377872,9.71650453 14.7497006,9.40066014 14.6477351,9.11714553 C14.5482564,8.83363156 14.262255,8.65954352 13.9638189,8.699335 Z" id="arrow" fill="#000000" transform="translate(15.929230, 11.894737) rotate(-180.000000) translate(-15.929230, -11.894737) "></path>
        </g>
    </g>
</svg></td>
    <td style="height: 40px; background-color: #FCFCFC; border-right: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color:#4CA64C;">✓</span></td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_right">2000</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5;" class="gt_row gt_right">1982<br>0.99</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5;" class="gt_row gt_right">18<br>0.01</td>
    <td style="height: 40px; background-color: #FCFCFC; border-left: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color: #AAAAAA;">●</span></td>
    <td style="height: 40px; background-color: #FCFCFC;" class="gt_row gt_center"><span style="color: #EBBC14;">○</span></td>
    <td style="height: 40px; background-color: #FCFCFC; border-right: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color: #FF3300;">○</span></td>
    <td style="height: 40px;" class="gt_row gt_center"><a href="data:text/csv;base64,X3Jvd19udW1fLHBsYXllcl9pZCxzZXNzaW9uX2lkLHNlc3Npb25fc3RhcnQsdGltZSxpdGVtX3R5cGUsaXRlbV9uYW1lLGl0ZW1fcmV2ZW51ZSxzZXNzaW9uX2R1cmF0aW9uLHN0YXJ0X2RheSxhY3F1aXNpdGlvbixjb3VudHJ5CjU0OSxRTkxWUkRFT1hGWUo4OTIsUU5MVlJERU9YRllKODkyLWx6NWZtcjZrLDIwMTUtMDEtMTBUMTY6NDQ6MTcuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMFQxNjo0NToyOS4wMDAwMDArMDAwMCxpYXAsZ29sZDMsMy40OSwzLjcsMjAxNS0wMS0wOSxjcm9zc3Byb21vLEF1c3RyYWxpYQo2MjAsUk1PU1dISkdFTENJNjc1LFJNT1NXSEpHRUxDSTY3NS10NHk4YmpjdSwyMDE1LTAxLTExVDA3OjI0OjI0LjAwMDAwMCswMDAwLDIwMTUtMDEtMTFUMDc6MjU6MTguMDAwMDAwKzAwMDAsaWFwLG9mZmVyNCwxNy45OTEsNS4wLDIwMTUtMDEtMTAsb3RoZXJfY2FtcGFpZ24sRnJhbmNlCjYyMSxSTU9TV0hKR0VMQ0k2NzUsUk1PU1dISkdFTENJNjc1LXQ0eThiamN1LDIwMTUtMDEtMTFUMDc6MjQ6MjQuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMVQwNzoyNjoyNC4wMDAwMDArMDAwMCxpYXAsb2ZmZXI1LDI2LjA5LDUuMCwyMDE1LTAxLTEwLG90aGVyX2NhbXBhaWduLEZyYW5jZQo2MjIsUk1PU1dISkdFTENJNjc1LFJNT1NXSEpHRUxDSTY3NS10NHk4YmpjdSwyMDE1LTAxLTExVDA3OjI0OjI0LjAwMDAwMCswMDAwLDIwMTUtMDEtMTFUMDc6Mjg6MzYuMDAwMDAwKzAwMDAsYWQsYWRfMTVzZWMsMC41Myw1LjAsMjAxNS0wMS0xMCxvdGhlcl9jYW1wYWlnbixGcmFuY2UKNjYzLEdGTFlKSEFQTVpXRDYzMSxHRkxZSkhBUE1aV0Q2MzEtaTJ2MWJsN2EsMjAxNS0wMS0xMVQxNjoxMzoyNC4wMDAwMDArMDAwMCwyMDE1LTAxLTExVDE2OjE0OjU0LjAwMDAwMCswMDAwLGlhcCxnZW1zMiwzLjk5LDMuNiwyMDE1LTAxLTA5LG9yZ2FuaWMsSW5kaWEKNzcyLEJGTkxVUklTSlhUSDY0NyxCRk5MVVJJU0pYVEg2NDctNm81aHgyN3osMjAxNS0wMS0xMlQxNzozNzozOS4wMDAwMDArMDAwMCwyMDE1LTAxLTEyVDE3OjM5OjI3LjAwMDAwMCswMDAwLGlhcCxvZmZlcjUsMTEuNTksNC4xLDIwMTUtMDEtMTAsb3JnYW5pYyxJbmRpYQo3NzMsQkZOTFVSSVNKWFRINjQ3LEJGTkxVUklTSlhUSDY0Ny02bzVoeDI3eiwyMDE1LTAxLTEyVDE3OjM3OjM5LjAwMDAwMCswMDAwLDIwMTUtMDEtMTJUMTc6NDE6NDUuMDAwMDAwKzAwMDAsaWFwLGdlbXMzLDkuOTksNC4xLDIwMTUtMDEtMTAsb3JnYW5pYyxJbmRpYQo5MDgsS0lMV1pZSFJTSkVHMzE2LEtJTFdaWUhSU0pFRzMxNi11a2U3ZGhxaiwyMDE1LTAxLTEzVDIyOjE2OjI5LjAwMDAwMCswMDAwLDIwMTUtMDEtMTNUMjI6MTc6MzUuMDAwMDAwKzAwMDAsaWFwLG9mZmVyMiwxMC45OSwzLjIsMjAxNS0wMS0wNCxvcmdhbmljLERlbm1hcmsKMTAzNyxKVUJEVkZIQ05RV1QxOTgsSlVCRFZGSENOUVdUMTk4LTloNHhzMnBiLDIwMTUtMDEtMTRUMTY6MDg6MjUuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNFQxNjowODo0My4wMDAwMDArMDAwMCxpYXAsb2ZmZXI1LDguNjksMy4zLDIwMTUtMDEtMTQsb3JnYW5pYyxQaGlsaXBwaW5lcwoxMDM4LEpVQkRWRkhDTlFXVDE5OCxKVUJEVkZIQ05RV1QxOTgtOWg0eHMycGIsMjAxNS0wMS0xNFQxNjowODoyNS4wMDAwMDArMDAwMCwyMDE1LTAxLTE0VDE2OjExOjAxLjAwMDAwMCswMDAwLGlhcCxvZmZlcjQsNS45OSwzLjMsMjAxNS0wMS0xNCxvcmdhbmljLFBoaWxpcHBpbmVzCjEzMTgsS0daQ09KSFBGVFFWNzUzLEtHWkNPSkhQRlRRVjc1My02azl4aXVnciwyMDE1LTAxLTE2VDE0OjU1OjMyLjAwMDAwMCswMDAwLDIwMTUtMDEtMTZUMTU6MDA6MzIuMDAwMDAwKzAwMDAsYWQsYWRfcGxheWFibGUsMS4wNyw1LjAsMjAxNS0wMS0xMSxvcmdhbmljLFVuaXRlZCBTdGF0ZXMKMTQ1NSxHSkNYTlRXRUJJUFEzNjksR0pDWE5UV0VCSVBRMzY5LTQ2Y2Rqenk3LDIwMTUtMDEtMTdUMTE6MjU6MjUuMDAwMDAwKzAwMDAsMjAxNS0wMS0xN1QxMToyODowMS4wMDAwMDArMDAwMCxpYXAsb2ZmZXI0LDEzLjk5LDQuNiwyMDE1LTAxLTE0LG9yZ2FuaWMsVW5pdGVkIFN0YXRlcwoxNTE2LE9NQ1ZVQUlLU0RUUjY1MSxPTUNWVUFJS1NEVFI2NTEteXNvOWUxYjIsMjAxNS0wMS0xN1QyMDo1ODozNC4wMDAwMDArMDAwMCwyMDE1LTAxLTE3VDIxOjAxOjM0LjAwMDAwMCswMDAwLGlhcCxvZmZlcjMsMTAuNDksNC4yLDIwMTUtMDEtMDcsb3RoZXJfY2FtcGFpZ24sVW5pdGVkIFN0YXRlcwoxNTE3LE9NQ1ZVQUlLU0RUUjY1MSxPTUNWVUFJS1NEVFI2NTEteXNvOWUxYjIsMjAxNS0wMS0xN1QyMDo1ODozNC4wMDAwMDArMDAwMCwyMDE1LTAxLTE3VDIxOjAyOjM0LjAwMDAwMCswMDAwLGlhcCxvZmZlcjUsMjAuMjksNC4yLDIwMTUtMDEtMDcsb3RoZXJfY2FtcGFpZ24sVW5pdGVkIFN0YXRlcwoxOTEzLE1UQ0lXS09WQVNZUDkyNSxNVENJV0tPVkFTWVA5MjUtMXEzeHZmbXAsMjAxNS0wMS0yMFQxMjozNDo0My4wMDAwMDArMDAwMCwyMDE1LTAxLTIwVDEyOjM1OjM3LjAwMDAwMCswMDAwLGlhcCxvZmZlcjUsMjYuMDksMy45LDIwMTUtMDEtMTQsb3JnYW5pYyxHZXJtYW55CjE5MTQsTVRDSVdLT1ZBU1lQOTI1LE1UQ0lXS09WQVNZUDkyNS0xcTN4dmZtcCwyMDE1LTAxLTIwVDEyOjM0OjQzLjAwMDAwMCswMDAwLDIwMTUtMDEtMjBUMTI6Mzc6MjUuMDAwMDAwKzAwMDAsaWFwLGdvbGQyLDEuNzksMy45LDIwMTUtMDEtMTQsb3JnYW5pYyxHZXJtYW55CjE5MTksQkZOTFVSSVNKWFRINjQ3LEJGTkxVUklTSlhUSDY0Ny1sZW42dnVqZCwyMDE1LTAxLTIwVDE0OjA5OjUxLjAwMDAwMCswMDAwLDIwMTUtMDEtMjBUMTQ6MTA6MDMuMDAwMDAwKzAwMDAsaWFwLGdvbGQ3LDQ3Ljk5LDQuNSwyMDE1LTAxLTEwLG9yZ2FuaWMsSW5kaWEKMTkyMCxCRk5MVVJJU0pYVEg2NDcsQkZOTFVSSVNKWFRINjQ3LWxlbjZ2dWpkLDIwMTUtMDEtMjBUMTQ6MDk6NTEuMDAwMDAwKzAwMDAsMjAxNS0wMS0yMFQxNDoxNDoyMS4wMDAwMDArMDAwMCxpYXAsZ29sZDYsMjMuOTksNC41LDIwMTUtMDEtMTAsb3JnYW5pYyxJbmRpYQo=" download="extract_0002.csv"><button style="background-color: #67C2DC; color: #FFFFFF; border: none; padding: 5px; font-weight: bold; cursor: pointer; border-radius: 4px;">CSV</button></a></td>
  </tr>
  <tr>
    <td style="height: 40px; background-color: #EBBC14; color: transparent;font-size: 0px;" class="gt_row gt_left">#EBBC14</td>
    <td style="height: 40px; color: #666666;font-size: 13px;font-weight: bold;" class="gt_row gt_right">3</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_left">
        <div style="margin: 0; padding: 0; display: inline-block; height: 30px; vertical-align: middle; width: 16%;">
            <!--?xml version="1.0" encoding="UTF-8"?--><!--?xml version="1.0" encoding="UTF-8"?-->
<svg width="30px" height="30px" viewbox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" style="background: #FFFFFF;">
    <title>col_vals_ge</title>
    <g id="Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="col_vals_ge" transform="translate(1.500000, 1.500000)" fill-rule="nonzero">
            <path d="M55,0 C57.4852813,0 59.7352813,1.00735931 61.363961,2.63603897 C62.9926407,4.26471863 64,6.51471863 64,9 L64,9 L64,64 L9,64 C6.51471862,64 4.26471862,62.9926407 2.63603897,61.363961 C1.00735931,59.7352814 0,57.4852814 0,55 L0,55 L0,9 C0,6.51471863 1.00735931,4.26471863 2.63603897,2.63603897 C4.26471862,1.00735931 6.51471862,0 9,0 L9,0 L55,0 Z" id="rectangle" stroke="#000000" stroke-width="2" fill="#FFFFFF"></path>
            <path d="M48.7619048,10 L15.2380953,10 C12.3466667,10 10,12.3466667 10,15.2380952 L10,48.7619048 C10,51.6533333 12.3466667,54 15.2380953,54 L48.7619048,54 C51.6533333,54 54,51.6533333 54,48.7619048 L54,15.2380952 C54,12.3466667 51.6533333,10 48.7619048,10 Z M43.5238095,46.6666667 L20.4761905,46.6666667 L20.4761905,44.5714286 L43.5238095,44.5714286 L43.5238095,46.6666667 Z M22.0161905,40.2552381 L21.0314286,38.4114286 L39.1761905,28.8571429 L21.0314286,19.3028571 L22.0161905,17.4590476 L43.6809524,28.8571429 L22.0161905,40.2552381 Z" id="greater_than_equal" fill="#000000"></path>
        </g>
    </g>
</svg>
        </div>
        <div style="font-family: 'IBM Plex Mono', monospace, courier; color: black; font-size: 11px; display: inline-block; vertical-align: middle;">
            <div>col_vals_ge()</div>
        </div>
        
        </td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">item_revenue</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">0.02</td>
    <td style="height: 40px; background-color: #FCFCFC; border-left: 1px solid #D3D3D3;" class="gt_row gt_center"><svg width="25px" height="25px" viewbox="0 0 25 25" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" style="vertical-align: middle;">
    <g id="unchanged" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="unchanged" transform="translate(0.500000, 0.570147)">
            <rect id="Rectangle" x="0.125132506" y="0" width="23.749735" height="23.7894737"></rect>
            <path d="M5.80375046,8.18194736 C3.77191832,8.18194736 2.11875046,9.83495328 2.11875046,11.8669474 C2.11875046,13.8989414 3.77191832,15.5519474 5.80375046,15.5519474 C7.8355826,15.5519474 9.48875046,13.8989414 9.48875046,11.8669474 C9.48875046,9.83495328 7.83552863,8.18194736 5.80375046,8.18194736 Z M5.80375046,14.814915 C4.17821997,14.814915 2.85578285,13.4924778 2.85578285,11.8669474 C2.85578285,10.2414169 4.17821997,8.91897975 5.80375046,8.91897975 C7.42928095,8.91897975 8.75171807,10.2414169 8.75171807,11.8669474 C8.75171807,13.4924778 7.42928095,14.814915 5.80375046,14.814915 Z" id="Shape" fill="#000000" fill-rule="nonzero"></path>
            <path d="M13.9638189,8.699335 C13.9364621,8.70430925 13.9091059,8.71176968 13.8842359,8.71923074 C13.7822704,8.73663967 13.6877654,8.77643115 13.6056956,8.83860518 L10.2433156,11.3852598 C10.0766886,11.5046343 9.97720993,11.6986181 9.97720993,11.9025491 C9.97720993,12.1064807 10.0766886,12.3004639 10.2433156,12.4198383 L13.6056956,14.966493 C13.891697,15.1803725 14.2970729,15.1231721 14.5109517,14.8371707 C14.7248313,14.5511692 14.6676309,14.145794 14.3816294,13.9319145 L12.5313257,12.5392127 L21.8812495,12.5392127 L21.8812495,11.2658854 L12.5313257,11.2658854 L14.3816294,9.87318364 C14.6377872,9.71650453 14.7497006,9.40066014 14.6477351,9.11714553 C14.5482564,8.83363156 14.262255,8.65954352 13.9638189,8.699335 Z" id="arrow" fill="#000000" transform="translate(15.929230, 11.894737) rotate(-180.000000) translate(-15.929230, -11.894737) "></path>
        </g>
    </g>
</svg></td>
    <td style="height: 40px; background-color: #FCFCFC; border-right: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color:#4CA64C;">✓</span></td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_right">2000</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5;" class="gt_row gt_right">1941<br>0.97</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5;" class="gt_row gt_right">59<br>0.03</td>
    <td style="height: 40px; background-color: #FCFCFC; border-left: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color: #AAAAAA;">●</span></td>
    <td style="height: 40px; background-color: #FCFCFC;" class="gt_row gt_center"><span style="color: #EBBC14;">●</span></td>
    <td style="height: 40px; background-color: #FCFCFC; border-right: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color: #FF3300;">○</span></td>
    <td style="height: 40px;" class="gt_row gt_center"><a href="data:text/csv;base64,X3Jvd19udW1fLHBsYXllcl9pZCxzZXNzaW9uX2lkLHNlc3Npb25fc3RhcnQsdGltZSxpdGVtX3R5cGUsaXRlbV9uYW1lLGl0ZW1fcmV2ZW51ZSxzZXNzaW9uX2R1cmF0aW9uLHN0YXJ0X2RheSxhY3F1aXNpdGlvbixjb3VudHJ5CjI1NSxQWkJOUktTTVVMSFgyMTMsUFpCTlJLU01VTEhYMjEzLWtvc3Y4aGxlLDIwMTUtMDEtMDdUMTM6NDk6MTkuMDAwMDAwKzAwMDAsMjAxNS0wMS0wN1QxNDowNTozMS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDA0LDIyLjIsMjAxNS0wMS0wNyxvcmdhbmljLEluZGlhCjI5MSxQWkJOUktTTVVMSFgyMTMsUFpCTlJLU01VTEhYMjEzLWp4bndhaDR2LDIwMTUtMDEtMDdUMTc6NTU6MjIuMDAwMDAwKzAwMDAsMjAxNS0wMS0wN1QxODoyNDoyOC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDE0LDMwLjksMjAxNS0wMS0wNyxvcmdhbmljLEluZGlhCjMwOCxLQkVRWkdGU1JQSEo0NzksS0JFUVpHRlNSUEhKNDc5LTZ4enluanZkLDIwMTUtMDEtMDdUMjI6Mzc6MzcuMDAwMDAwKzAwMDAsMjAxNS0wMS0wN1QyMjo1ODoxMy4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDA5LDI3LjQsMjAxNS0wMS0wNyxvcmdhbmljLFJ1c3NpYQozNDgsSUNCQVVaS0dTUVBGMTQ1LElDQkFVWktHU1FQRjE0NS1mbGFveWRqNSwyMDE1LTAxLTA4VDEyOjQ4OjEzLjAwMDAwMCswMDAwLDIwMTUtMDEtMDhUMTM6MDg6MjUuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAxNDk5LDI3LjksMjAxNS0wMS0wNixnb29nbGUsU291dGggQWZyaWNhCjM1MCxQWkJOUktTTVVMSFgyMTMsUFpCTlJLU01VTEhYMjEzLW0ybjZ0azFpLDIwMTUtMDEtMDhUMTQ6MTA6MTguMDAwMDAwKzAwMDAsMjAxNS0wMS0wOFQxNDoxNjozMC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDEsMzQuMiwyMDE1LTAxLTA3LG9yZ2FuaWMsSW5kaWEKMzUzLFBaQk5SS1NNVUxIWDIxMyxQWkJOUktTTVVMSFgyMTMtbTJuNnRrMWksMjAxNS0wMS0wOFQxNDoxMDoxOC4wMDAwMDArMDAwMCwyMDE1LTAxLTA4VDE0OjM4OjA2LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMDYsMzQuMiwyMDE1LTAxLTA3LG9yZ2FuaWMsSW5kaWEKMzY1LEtCRVFaR0ZTUlBISjQ3OSxLQkVRWkdGU1JQSEo0NzktZjJlNXJkYWIsMjAxNS0wMS0wOFQxNjoxMTowOC4wMDAwMDArMDAwMCwyMDE1LTAxLTA4VDE2OjM1OjAyLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMTgsMzMuMSwyMDE1LTAxLTA3LG9yZ2FuaWMsUnVzc2lhCjQzNyxHRkxZSkhBUE1aV0Q2MzEsR0ZMWUpIQVBNWldENjMxLXdkejM3dmN0LDIwMTUtMDEtMDlUMTU6NTA6MTguMDAwMDAwKzAwMDAsMjAxNS0wMS0wOVQxNjoxMjowNi4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDE0LDMwLjksMjAxNS0wMS0wOSxvcmdhbmljLEluZGlhCjQ2MixMRFNVSENSQVlLTU8xNzksTERTVUhDUkFZS01PMTc5LTR4a282OWVpLDIwMTUtMDEtMDlUMjM6NTQ6MTcuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMFQwMDowMjoyMy4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDE4LDIwLjMsMjAxNS0wMS0wNyxvdGhlcl9jYW1wYWlnbixQb3J0dWdhbAo1MTcsR0ZMWUpIQVBNWldENjMxLEdGTFlKSEFQTVpXRDYzMS12cHdmajNjYSwyMDE1LTAxLTEwVDEyOjM0OjQ1LjAwMDAwMCswMDAwLDIwMTUtMDEtMTBUMTI6NDk6NTEuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAwNCwyMS40LDIwMTUtMDEtMDksb3JnYW5pYyxJbmRpYQo1MTgsR0ZMWUpIQVBNWldENjMxLEdGTFlKSEFQTVpXRDYzMS12cHdmajNjYSwyMDE1LTAxLTEwVDEyOjM0OjQ1LjAwMDAwMCswMDAwLDIwMTUtMDEtMTBUMTI6NTU6NTEuMDAwMDAwKzAwMDAsYWQsYWRfMTBzZWMsMC4wMTYsMjEuNCwyMDE1LTAxLTA5LG9yZ2FuaWMsSW5kaWEKNTE5LFBaQk5SS1NNVUxIWDIxMyxQWkJOUktTTVVMSFgyMTMtdnRseTM1ZmMsMjAxNS0wMS0xMFQxNDowNjozNi4wMDAwMDArMDAwMCwyMDE1LTAxLTEwVDE0OjA5OjE4LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMDYsMjYuMywyMDE1LTAxLTA3LG9yZ2FuaWMsSW5kaWEKNTIwLFBaQk5SS1NNVUxIWDIxMyxQWkJOUktTTVVMSFgyMTMtdnRseTM1ZmMsMjAxNS0wMS0xMFQxNDowNjozNi4wMDAwMDArMDAwMCwyMDE1LTAxLTEwVDE0OjE0OjE4LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMTYsMjYuMywyMDE1LTAxLTA3LG9yZ2FuaWMsSW5kaWEKNTI0LFBaQk5SS1NNVUxIWDIxMyxQWkJOUktTTVVMSFgyMTMtdnRseTM1ZmMsMjAxNS0wMS0xMFQxNDowNjozNi4wMDAwMDArMDAwMCwyMDE1LTAxLTEwVDE0OjMxOjU0LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMDYsMjYuMywyMDE1LTAxLTA3LG9yZ2FuaWMsSW5kaWEKNTY1LFBaQk5SS1NNVUxIWDIxMyxQWkJOUktTTVVMSFgyMTMteTcyMWZ1dGEsMjAxNS0wMS0xMFQxOTo1NDoxMS4wMDAwMDArMDAwMCwyMDE1LTAxLTEwVDIwOjEyOjI5LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMDQsMzkuOCwyMDE1LTAxLTA3LG9yZ2FuaWMsSW5kaWEKNTcyLEJGTkxVUklTSlhUSDY0NyxCRk5MVVJJU0pYVEg2NDctM2JjbXRlcGcsMjAxNS0wMS0xMFQyMTowMDozMS4wMDAwMDArMDAwMCwyMDE1LTAxLTEwVDIxOjE2OjQzLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMDQsMzQuMCwyMDE1LTAxLTEwLG9yZ2FuaWMsSW5kaWEKNTczLEJGTkxVUklTSlhUSDY0NyxCRk5MVVJJU0pYVEg2NDctM2JjbXRlcGcsMjAxNS0wMS0xMFQyMTowMDozMS4wMDAwMDArMDAwMCwyMDE1LTAxLTEwVDIxOjE4OjQzLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMDQsMzQuMCwyMDE1LTAxLTEwLG9yZ2FuaWMsSW5kaWEKNTc0LEJGTkxVUklTSlhUSDY0NyxCRk5MVVJJU0pYVEg2NDctM2JjbXRlcGcsMjAxNS0wMS0xMFQyMTowMDozMS4wMDAwMDArMDAwMCwyMDE1LTAxLTEwVDIxOjIxOjQ5LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMTQsMzQuMCwyMDE1LTAxLTEwLG9yZ2FuaWMsSW5kaWEKNjQyLEJGTkxVUklTSlhUSDY0NyxCRk5MVVJJU0pYVEg2NDctZnVjcTFlbTgsMjAxNS0wMS0xMVQxMTowMjowOS4wMDAwMDArMDAwMCwyMDE1LTAxLTExVDExOjM0OjUxLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMDgsNDAuNywyMDE1LTAxLTEwLG9yZ2FuaWMsSW5kaWEKNjg5LFBaQk5SS1NNVUxIWDIxMyxQWkJOUktTTVVMSFgyMTMtbjhlbDZwdXcsMjAxNS0wMS0xMVQyMjowODoyNC4wMDAwMDArMDAwMCwyMDE1LTAxLTExVDIyOjI0OjMwLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMDQsMjguNiwyMDE1LTAxLTA3LG9yZ2FuaWMsSW5kaWEKNjkwLFBaQk5SS1NNVUxIWDIxMyxQWkJOUktTTVVMSFgyMTMtbjhlbDZwdXcsMjAxNS0wMS0xMVQyMjowODoyNC4wMDAwMDArMDAwMCwyMDE1LTAxLTExVDIyOjI4OjAwLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMTYsMjguNiwyMDE1LTAxLTA3LG9yZ2FuaWMsSW5kaWEKNzExLEFVV0ZEUlpNWFZKSDkyOCxBVVdGRFJaTVhWSkg5MjgtbXhyYjhsZDMsMjAxNS0wMS0xMlQwNDozMDoxMi4wMDAwMDArMDAwMCwyMDE1LTAxLTEyVDA0OjMxOjQ4LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMTIsMTkuNCwyMDE1LTAxLTExLGdvb2dsZSxJbmRpYQo3MzcsUExRRVNCTkdVREtKMTU0LFBMUUVTQk5HVURLSjE1NC1wNTMyaXZ5MSwyMDE1LTAxLTEyVDA4OjQ4OjA2LjAwMDAwMCswMDAwLDIwMTUtMDEtMTJUMDg6NTM6MDYuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAxMiwzNi4wLDIwMTUtMDEtMTIsZmFjZWJvb2ssSmFwYW4KNzY4LEFVV0ZEUlpNWFZKSDkyOCxBVVdGRFJaTVhWSkg5MjgtdzlmaGszcHosMjAxNS0wMS0xMlQxNzoyNzo0NS4wMDAwMDArMDAwMCwyMDE1LTAxLTEyVDE3OjMwOjE1LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMDgsMTEuNSwyMDE1LTAxLTExLGdvb2dsZSxJbmRpYQo4MDcsVkxRSFlKQ0tCT0lONzI5LFZMUUhZSkNLQk9JTjcyOS10ZTJhNzRsaSwyMDE1LTAxLTEzVDAwOjE3OjAwLjAwMDAwMCswMDAwLDIwMTUtMDEtMTNUMDA6MzY6NDguMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAxOCwyNS40LDIwMTUtMDEtMTAsb3JnYW5pYyxKYXBhbgo4NTMsQkZOTFVSSVNKWFRINjQ3LEJGTkxVUklTSlhUSDY0Ny1oeDI5a3Q0OCwyMDE1LTAxLTEzVDA4OjU5OjI5LjAwMDAwMCswMDAwLDIwMTUtMDEtMTNUMDk6MTQ6MTEuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAxOCwyNC40LDIwMTUtMDEtMTAsb3JnYW5pYyxJbmRpYQo4NTQsQkZOTFVSSVNKWFRINjQ3LEJGTkxVUklTSlhUSDY0Ny1oeDI5a3Q0OCwyMDE1LTAxLTEzVDA4OjU5OjI5LjAwMDAwMCswMDAwLDIwMTUtMDEtMTNUMDk6MTQ6MTcuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAwNCwyNC40LDIwMTUtMDEtMTAsb3JnYW5pYyxJbmRpYQo5MTcsUFpCTlJLU01VTEhYMjEzLFBaQk5SS1NNVUxIWDIxMy1ibHdkM3g3cSwyMDE1LTAxLTEzVDIzOjIzOjI3LjAwMDAwMCswMDAwLDIwMTUtMDEtMTNUMjM6NDA6MzMuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAxOCwyNC42LDIwMTUtMDEtMDcsb3JnYW5pYyxJbmRpYQo5MTgsUFpCTlJLU01VTEhYMjEzLFBaQk5SS1NNVUxIWDIxMy1ibHdkM3g3cSwyMDE1LTAxLTEzVDIzOjIzOjI3LjAwMDAwMCswMDAwLDIwMTUtMDEtMTNUMjM6NDE6MjcuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAxOCwyNC42LDIwMTUtMDEtMDcsb3JnYW5pYyxJbmRpYQo5NDksWlBUSUhOU1ZGWUFRMTQ2LFpQVElITlNWRllBUTE0Ni0xYjZpaDd2ZywyMDE1LTAxLTE0VDAyOjQ4OjU2LjAwMDAwMCswMDAwLDIwMTUtMDEtMTRUMDM6MjE6MTQuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAxMiwzNC45LDIwMTUtMDEtMDQsZmFjZWJvb2ssTWV4aWNvCjk1NyxYSUFIQk5LRUNHUk81OTgsWElBSEJOS0VDR1JPNTk4LWpsaGRuczhpLDIwMTUtMDEtMTRUMDQ6MzI6MTUuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNFQwNDozNDozMy4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDE1LDE0LjEsMjAxNS0wMS0xNCxnb29nbGUsRWd5cHQKOTYxLEVGTE5QR1RSWlZBQzc2NSxFRkxOUEdUUlpWQUM3NjUtdHM0OW0zcTcsMjAxNS0wMS0xNFQwNDozMzoyOC4wMDAwMDArMDAwMCwyMDE1LTAxLTE0VDA0OjUxOjE2LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMTUsMjAuNywyMDE1LTAxLTE0LG90aGVyX2NhbXBhaWduLFJ1c3NpYQo5NjIsRUZMTlBHVFJaVkFDNzY1LEVGTE5QR1RSWlZBQzc2NS10czQ5bTNxNywyMDE1LTAxLTE0VDA0OjMzOjI4LjAwMDAwMCswMDAwLDIwMTUtMDEtMTRUMDQ6NTE6NDAuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAxNSwyMC43LDIwMTUtMDEtMTQsb3RoZXJfY2FtcGFpZ24sUnVzc2lhCjEwMzQsWElBSEJOS0VDR1JPNTk4LFhJQUhCTktFQ0dSTzU5OC11bjFmYno5NSwyMDE1LTAxLTE0VDE2OjA2OjM3LjAwMDAwMCswMDAwLDIwMTUtMDEtMTRUMTY6MjY6NDMuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAxLDI3LjIsMjAxNS0wMS0xNCxnb29nbGUsRWd5cHQKMTA1MixQWkJOUktTTVVMSFgyMTMsUFpCTlJLU01VTEhYMjEzLWZ4b2liam5sLDIwMTUtMDEtMTRUMTg6MzM6NTYuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNFQxODozODo0NC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDEsMTMuMywyMDE1LTAxLTA3LG9yZ2FuaWMsSW5kaWEKMTA1MyxQWkJOUktTTVVMSFgyMTMsUFpCTlJLU01VTEhYMjEzLWZ4b2liam5sLDIwMTUtMDEtMTRUMTg6MzM6NTYuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNFQxODo0NToyNi4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDA2LDEzLjMsMjAxNS0wMS0wNyxvcmdhbmljLEluZGlhCjExMDEsWk1KTFBHQ1JJS05BNDcxLFpNSkxQR0NSSUtOQTQ3MS1zamtmbWM0eSwyMDE1LTAxLTE1VDAzOjM5OjM4LjAwMDAwMCswMDAwLDIwMTUtMDEtMTVUMDM6NTI6MTQuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAxLDE3LjUsMjAxNS0wMS0xMCxvcmdhbmljLEVneXB0CjExMzAsVkxRSFlKQ0tCT0lONzI5LFZMUUhZSkNLQk9JTjcyOS02c2Z5d3Y3bSwyMDE1LTAxLTE1VDA4OjE4OjIwLjAwMDAwMCswMDAwLDIwMTUtMDEtMTVUMDg6MjE6MDIuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAxMiwzNC4wLDIwMTUtMDEtMTAsb3JnYW5pYyxKYXBhbgoxMTU5LFhJQUhCTktFQ0dSTzU5OCxYSUFIQk5LRUNHUk81OTgtYWcxOWp0OGYsMjAxNS0wMS0xNVQxMTozNDo0Mi4wMDAwMDArMDAwMCwyMDE1LTAxLTE1VDExOjM4OjQ4LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMSwxNS45LDIwMTUtMDEtMTQsZ29vZ2xlLEVneXB0CjExNzQsT0FOQ0lWWVhKTVJMNTk3LE9BTkNJVllYSk1STDU5Ny1icmk5dXBoMSwyMDE1LTAxLTE1VDEzOjI0OjI3LjAwMDAwMCswMDAwLDIwMTUtMDEtMTVUMTM6MjQ6NTEuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAwNCwxNy43LDIwMTUtMDEtMTUsb3RoZXJfY2FtcGFpZ24sSW5kaWEKMTE5OSxWTFFIWUpDS0JPSU43MjksVkxRSFlKQ0tCT0lONzI5LTlldmpvd2N0LDIwMTUtMDEtMTVUMjE6NTU6MjEuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNVQyMjowODo1Ny4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDE4LDM3LjIsMjAxNS0wMS0xMCxvcmdhbmljLEphcGFuCjEyMzAsQkZOTFVSSVNKWFRINjQ3LEJGTkxVUklTSlhUSDY0Ny1mZGFzd3lxZywyMDE1LTAxLTE2VDAzOjQ3OjE0LjAwMDAwMCswMDAwLDIwMTUtMDEtMTZUMDM6NTU6MDIuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAxOCwxMi4xLDIwMTUtMDEtMTAsb3JnYW5pYyxJbmRpYQoxMzI1LFBaQk5SS1NNVUxIWDIxMyxQWkJOUktTTVVMSFgyMTMtbzZ4eXV2aDgsMjAxNS0wMS0xNlQxNjoyOToxMC4wMDAwMDArMDAwMCwyMDE1LTAxLTE2VDE2OjM0OjM0LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMTYsMTguNSwyMDE1LTAxLTA3LG9yZ2FuaWMsSW5kaWEKMTQxMSxNWVFHSktPVUlXSEY2MTksTVlRR0pLT1VJV0hGNjE5LXRsd2NzeTc2LDIwMTUtMDEtMTdUMDY6MjM6NTguMDAwMDAwKzAwMDAsMjAxNS0wMS0xN1QwNjoyOTowNC4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjAxNCwxMi4zLDIwMTUtMDEtMTYsb3JnYW5pYyxJbmRpYQoxNDM0LEJGTkxVUklTSlhUSDY0NyxCRk5MVVJJU0pYVEg2NDctcWp1Z3BmMm4sMjAxNS0wMS0xN1QwOTo1ODoxOC4wMDAwMDArMDAwMCwyMDE1LTAxLTE3VDA5OjU5OjA2LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMTgsMjkuOCwyMDE1LTAxLTEwLG9yZ2FuaWMsSW5kaWEKMTQzNSxCRk5MVVJJU0pYVEg2NDcsQkZOTFVSSVNKWFRINjQ3LXFqdWdwZjJuLDIwMTUtMDEtMTdUMDk6NTg6MTguMDAwMDAwKzAwMDAsMjAxNS0wMS0xN1QxMDowNTowMC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDE4LDI5LjgsMjAxNS0wMS0xMCxvcmdhbmljLEluZGlhCjE0MzgsQkZOTFVSSVNKWFRINjQ3LEJGTkxVUklTSlhUSDY0Ny1xanVncGYybiwyMDE1LTAxLTE3VDA5OjU4OjE4LjAwMDAwMCswMDAwLDIwMTUtMDEtMTdUMTA6MjU6MDYuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAwNiwyOS44LDIwMTUtMDEtMTAsb3JnYW5pYyxJbmRpYQoxNDQ1LFhJQUhCTktFQ0dSTzU5OCxYSUFIQk5LRUNHUk81OTgtcW84cm16aWosMjAxNS0wMS0xN1QxMDo0MzoyOC4wMDAwMDArMDAwMCwyMDE1LTAxLTE3VDExOjAxOjA0LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMTUsMjguOCwyMDE1LTAxLTE0LGdvb2dsZSxFZ3lwdAoxNTI5LFBaQk5SS1NNVUxIWDIxMyxQWkJOUktTTVVMSFgyMTMtcmhjYW16dGYsMjAxNS0wMS0xN1QyMzowNToxNi4wMDAwMDArMDAwMCwyMDE1LTAxLTE3VDIzOjA5OjIyLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMTgsMTYuMSwyMDE1LTAxLTA3LG9yZ2FuaWMsSW5kaWEKMTUzMCxQWkJOUktTTVVMSFgyMTMsUFpCTlJLU01VTEhYMjEzLXJoY2FtenRmLDIwMTUtMDEtMTdUMjM6MDU6MTYuMDAwMDAwKzAwMDAsMjAxNS0wMS0xN1QyMzoxMTozNC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDA4LDE2LjEsMjAxNS0wMS0wNyxvcmdhbmljLEluZGlhCjE1MzMsUFpCTlJLU01VTEhYMjEzLFBaQk5SS1NNVUxIWDIxMy1yaGNhbXp0ZiwyMDE1LTAxLTE3VDIzOjA1OjE2LjAwMDAwMCswMDAwLDIwMTUtMDEtMTdUMjM6MTk6NTIuMDAwMDAwKzAwMDAsYWQsYWRfMTBzZWMsMC4wMTYsMTYuMSwyMDE1LTAxLTA3LG9yZ2FuaWMsSW5kaWEKMTcwNSxXRVBLWU5SWERGVVQ1NzIsV0VQS1lOUlhERlVUNTcyLWozYXZ1bDc1LDIwMTUtMDEtMTlUMDA6Mzc6MjcuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOVQwMDo0MTowMy4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDEyLDI5LjksMjAxNS0wMS0xMyxjcm9zc3Byb21vLENoaW5hCjE3MDYsV0VQS1lOUlhERlVUNTcyLFdFUEtZTlJYREZVVDU3Mi1qM2F2dWw3NSwyMDE1LTAxLTE5VDAwOjM3OjI3LjAwMDAwMCswMDAwLDIwMTUtMDEtMTlUMDA6NDI6NDUuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAxMiwyOS45LDIwMTUtMDEtMTMsY3Jvc3Nwcm9tbyxDaGluYQoxNzEyLFhJQUhCTktFQ0dSTzU5OCxYSUFIQk5LRUNHUk81OTgteWlsc3hmNXAsMjAxNS0wMS0xOVQwMDo1MjozMi4wMDAwMDArMDAwMCwyMDE1LTAxLTE5VDAxOjA0OjA4LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMTUsMzAuNCwyMDE1LTAxLTE0LGdvb2dsZSxFZ3lwdAoxNzEzLFhJQUhCTktFQ0dSTzU5OCxYSUFIQk5LRUNHUk81OTgteWlsc3hmNXAsMjAxNS0wMS0xOVQwMDo1MjozMi4wMDAwMDArMDAwMCwyMDE1LTAxLTE5VDAxOjA1OjA4LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMTUsMzAuNCwyMDE1LTAxLTE0LGdvb2dsZSxFZ3lwdAoxNzY5LEJGTkxVUklTSlhUSDY0NyxCRk5MVVJJU0pYVEg2NDctdGNmNXlzYXYsMjAxNS0wMS0xOVQwODowNToyMC4wMDAwMDArMDAwMCwyMDE1LTAxLTE5VDA4OjA4OjU2LjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMDE2LDUuOSwyMDE1LTAxLTEwLG9yZ2FuaWMsSW5kaWEKMTc3OSxOUE1KSVlIRVRHS1cyOTcsTlBNSklZSEVUR0tXMjk3LXJ5MWo2c3p3LDIwMTUtMDEtMTlUMTA6MDE6MDguMDAwMDAwKzAwMDAsMjAxNS0wMS0xOVQxMDoxMzowOC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDE2LDI4LjQsMjAxNS0wMS0xOCxnb29nbGUsUGhpbGlwcGluZXMKMTkzMCxaR0VWUUpTS0ZJQlgzOTgsWkdFVlFKU0tGSUJYMzk4LXNvd2o2aDMxLDIwMTUtMDEtMjBUMTY6MDE6MTIuMDAwMDAwKzAwMDAsMjAxNS0wMS0yMFQxNjozNTo0OC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDE1LDQxLjAsMjAxNS0wMS0xNyxvcmdhbmljLFNvdXRoIEtvcmVhCjE5NDAsWlBUSUhOU1ZGWUFRMTQ2LFpQVElITlNWRllBUTE0Ni13Nm90ejE4cywyMDE1LTAxLTIwVDE2OjM5OjMyLjAwMDAwMCswMDAwLDIwMTUtMDEtMjBUMTY6NTg6MDIuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAxMiwzMy4xLDIwMTUtMDEtMDQsZmFjZWJvb2ssTWV4aWNvCg==" download="extract_0003.csv"><button style="background-color: #67C2DC; color: #FFFFFF; border: none; padding: 5px; font-weight: bold; cursor: pointer; border-radius: 4px;">CSV</button></a></td>
  </tr>
  <tr>
    <td style="height: 40px; background-color: #4CA64C; color: transparent;font-size: 0px;" class="gt_row gt_left">#4CA64C</td>
    <td style="height: 40px; color: #666666;font-size: 13px;font-weight: bold;" class="gt_row gt_right">4</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_left">
        <div style="margin: 0; padding: 0; display: inline-block; height: 30px; vertical-align: middle; width: 16%;">
            <!--?xml version="1.0" encoding="UTF-8"?--><!--?xml version="1.0" encoding="UTF-8"?-->
<svg width="30px" height="30px" viewbox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink">
    <title>col_vals_in_set</title>
    <g id="Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="col_vals_in_set" transform="translate(0.000000, 0.172414)">
            <path d="M56.712234,1 C59.1975153,1 61.4475153,2.00735931 63.076195,3.63603897 C64.7048747,5.26471863 65.712234,7.51471863 65.712234,10 L65.712234,10 L65.712234,65 L10.712234,65 C8.22695259,65 5.97695259,63.9926407 4.34827294,62.363961 C2.71959328,60.7352814 1.71223397,58.4852814 1.71223397,56 L1.71223397,56 L1.71223397,10 C1.71223397,7.51471863 2.71959328,5.26471863 4.34827294,3.63603897 C5.97695259,2.00735931 8.22695259,1 10.712234,1 L10.712234,1 Z" id="rectangle" stroke="#000000" stroke-width="2" fill="#FFFFFF"></path>
            <path d="M44.127969,41.1538382 L31.0814568,41.1538382 C29.9510748,41.1536429 28.8827052,40.9256134 27.9079888,40.5136953 C26.4467442,39.8960136 25.19849,38.8599685 24.3189894,37.5577099 C23.8792391,36.906727 23.5314818,36.1899233 23.2936866,35.4252675 C23.2130217,35.16589 23.1460289,34.9005554 23.0913409,34.6307286 L44.1278714,34.6307286 C45.028466,34.6306309 45.7586488,33.9004481 45.7586488,32.9998535 C45.7586488,32.0992589 45.028466,31.3690761 44.1278714,31.3690761 L23.0905596,31.3690761 C23.1990567,30.8337194 23.3597028,30.3180894 23.5675173,29.8264831 C24.185199,28.3652386 25.2212442,27.1169844 26.5236004,26.2374838 C27.1745833,25.7977334 27.891387,25.4499762 28.6560428,25.2122786 C29.4208939,24.9744833 30.2334994,24.8459665 31.0813591,24.8459665 L44.1277737,24.8459665 C45.0283683,24.8459665 45.7586488,24.1157837 45.7586488,23.2151891 C45.7586488,22.3145945 45.0283683,21.5844117 44.1277737,21.5844117 L31.0813591,21.5844117 C29.5096643,21.5844117 28.0039858,21.9038483 26.6373711,22.4820765 C24.5866678,23.3498583 22.8469049,24.7950871 21.6163267,26.616296 C20.3856508,28.4362354 19.665136,30.6413347 19.6658191,33.0000488 C19.6658191,34.5717436 19.9852563,36.0774222 20.5635822,37.4440369 C21.4312663,39.4947402 22.8765927,41.2345031 24.697704,42.4650813 C26.5176434,43.6957572 28.7227427,44.4155883 31.0814568,44.4155883 L44.1278714,44.4155883 C45.028466,44.4155883 45.7586488,43.6854055 45.7586488,42.7848109 C45.7586488,41.8842163 45.0285636,41.1538382 44.127969,41.1538382 Z" id="set_of" fill="#000000" fill-rule="nonzero"></path>
        </g>
    </g>
</svg>
        </div>
        <div style="font-family: 'IBM Plex Mono', monospace, courier; color: black; font-size: 11px; display: inline-block; vertical-align: middle;">
            <div>col_vals_in_set()</div>
        </div>
        
        </td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">item_type</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">iap, ad</td>
    <td style="height: 40px; background-color: #FCFCFC; border-left: 1px solid #D3D3D3;" class="gt_row gt_center"><svg width="25px" height="25px" viewbox="0 0 25 25" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" style="vertical-align: middle;">
    <g id="unchanged" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="unchanged" transform="translate(0.500000, 0.570147)">
            <rect id="Rectangle" x="0.125132506" y="0" width="23.749735" height="23.7894737"></rect>
            <path d="M5.80375046,8.18194736 C3.77191832,8.18194736 2.11875046,9.83495328 2.11875046,11.8669474 C2.11875046,13.8989414 3.77191832,15.5519474 5.80375046,15.5519474 C7.8355826,15.5519474 9.48875046,13.8989414 9.48875046,11.8669474 C9.48875046,9.83495328 7.83552863,8.18194736 5.80375046,8.18194736 Z M5.80375046,14.814915 C4.17821997,14.814915 2.85578285,13.4924778 2.85578285,11.8669474 C2.85578285,10.2414169 4.17821997,8.91897975 5.80375046,8.91897975 C7.42928095,8.91897975 8.75171807,10.2414169 8.75171807,11.8669474 C8.75171807,13.4924778 7.42928095,14.814915 5.80375046,14.814915 Z" id="Shape" fill="#000000" fill-rule="nonzero"></path>
            <path d="M13.9638189,8.699335 C13.9364621,8.70430925 13.9091059,8.71176968 13.8842359,8.71923074 C13.7822704,8.73663967 13.6877654,8.77643115 13.6056956,8.83860518 L10.2433156,11.3852598 C10.0766886,11.5046343 9.97720993,11.6986181 9.97720993,11.9025491 C9.97720993,12.1064807 10.0766886,12.3004639 10.2433156,12.4198383 L13.6056956,14.966493 C13.891697,15.1803725 14.2970729,15.1231721 14.5109517,14.8371707 C14.7248313,14.5511692 14.6676309,14.145794 14.3816294,13.9319145 L12.5313257,12.5392127 L21.8812495,12.5392127 L21.8812495,11.2658854 L12.5313257,11.2658854 L14.3816294,9.87318364 C14.6377872,9.71650453 14.7497006,9.40066014 14.6477351,9.11714553 C14.5482564,8.83363156 14.262255,8.65954352 13.9638189,8.699335 Z" id="arrow" fill="#000000" transform="translate(15.929230, 11.894737) rotate(-180.000000) translate(-15.929230, -11.894737) "></path>
        </g>
    </g>
</svg></td>
    <td style="height: 40px; background-color: #FCFCFC; border-right: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color:#4CA64C;">✓</span></td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_right">2000</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5;" class="gt_row gt_right">2000<br>1.00</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5;" class="gt_row gt_right">0<br>0.00</td>
    <td style="height: 40px; background-color: #FCFCFC; border-left: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color: #AAAAAA;">○</span></td>
    <td style="height: 40px; background-color: #FCFCFC;" class="gt_row gt_center"><span style="color: #EBBC14;">○</span></td>
    <td style="height: 40px; background-color: #FCFCFC; border-right: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color: #FF3300;">○</span></td>
    <td style="height: 40px;" class="gt_row gt_center">—</td>
  </tr>
  <tr>
    <td style="height: 40px; background-color: #EBBC14; color: transparent;font-size: 0px;" class="gt_row gt_left">#EBBC14</td>
    <td style="height: 40px; color: #666666;font-size: 13px;font-weight: bold;" class="gt_row gt_right">5</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_left">
        <div style="margin: 0; padding: 0; display: inline-block; height: 30px; vertical-align: middle; width: 16%;">
            <!--?xml version="1.0" encoding="UTF-8"?--><!--?xml version="1.0" encoding="UTF-8"?-->
<svg width="30px" height="30px" viewbox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink">
    <title>col_vals_in_set</title>
    <g id="Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="col_vals_in_set" transform="translate(0.000000, 0.172414)">
            <path d="M56.712234,1 C59.1975153,1 61.4475153,2.00735931 63.076195,3.63603897 C64.7048747,5.26471863 65.712234,7.51471863 65.712234,10 L65.712234,10 L65.712234,65 L10.712234,65 C8.22695259,65 5.97695259,63.9926407 4.34827294,62.363961 C2.71959328,60.7352814 1.71223397,58.4852814 1.71223397,56 L1.71223397,56 L1.71223397,10 C1.71223397,7.51471863 2.71959328,5.26471863 4.34827294,3.63603897 C5.97695259,2.00735931 8.22695259,1 10.712234,1 L10.712234,1 Z" id="rectangle" stroke="#000000" stroke-width="2" fill="#FFFFFF"></path>
            <path d="M44.127969,41.1538382 L31.0814568,41.1538382 C29.9510748,41.1536429 28.8827052,40.9256134 27.9079888,40.5136953 C26.4467442,39.8960136 25.19849,38.8599685 24.3189894,37.5577099 C23.8792391,36.906727 23.5314818,36.1899233 23.2936866,35.4252675 C23.2130217,35.16589 23.1460289,34.9005554 23.0913409,34.6307286 L44.1278714,34.6307286 C45.028466,34.6306309 45.7586488,33.9004481 45.7586488,32.9998535 C45.7586488,32.0992589 45.028466,31.3690761 44.1278714,31.3690761 L23.0905596,31.3690761 C23.1990567,30.8337194 23.3597028,30.3180894 23.5675173,29.8264831 C24.185199,28.3652386 25.2212442,27.1169844 26.5236004,26.2374838 C27.1745833,25.7977334 27.891387,25.4499762 28.6560428,25.2122786 C29.4208939,24.9744833 30.2334994,24.8459665 31.0813591,24.8459665 L44.1277737,24.8459665 C45.0283683,24.8459665 45.7586488,24.1157837 45.7586488,23.2151891 C45.7586488,22.3145945 45.0283683,21.5844117 44.1277737,21.5844117 L31.0813591,21.5844117 C29.5096643,21.5844117 28.0039858,21.9038483 26.6373711,22.4820765 C24.5866678,23.3498583 22.8469049,24.7950871 21.6163267,26.616296 C20.3856508,28.4362354 19.665136,30.6413347 19.6658191,33.0000488 C19.6658191,34.5717436 19.9852563,36.0774222 20.5635822,37.4440369 C21.4312663,39.4947402 22.8765927,41.2345031 24.697704,42.4650813 C26.5176434,43.6957572 28.7227427,44.4155883 31.0814568,44.4155883 L44.1278714,44.4155883 C45.028466,44.4155883 45.7586488,43.6854055 45.7586488,42.7848109 C45.7586488,41.8842163 45.0285636,41.1538382 44.127969,41.1538382 Z" id="set_of" fill="#000000" fill-rule="nonzero"></path>
        </g>
    </g>
</svg>
        </div>
        <div style="font-family: 'IBM Plex Mono', monospace, courier; color: black; font-size: 11px; display: inline-block; vertical-align: middle;">
            <div>col_vals_in_set()</div>
        </div>
        
        </td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">acquisition</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">google, facebook, organic, crosspromo, other_campaign</td>
    <td style="height: 40px; background-color: #FCFCFC; border-left: 1px solid #D3D3D3;" class="gt_row gt_center"><svg width="25px" height="25px" viewbox="0 0 25 25" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" style="vertical-align: middle;">
    <g id="unchanged" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="unchanged" transform="translate(0.500000, 0.570147)">
            <rect id="Rectangle" x="0.125132506" y="0" width="23.749735" height="23.7894737"></rect>
            <path d="M5.80375046,8.18194736 C3.77191832,8.18194736 2.11875046,9.83495328 2.11875046,11.8669474 C2.11875046,13.8989414 3.77191832,15.5519474 5.80375046,15.5519474 C7.8355826,15.5519474 9.48875046,13.8989414 9.48875046,11.8669474 C9.48875046,9.83495328 7.83552863,8.18194736 5.80375046,8.18194736 Z M5.80375046,14.814915 C4.17821997,14.814915 2.85578285,13.4924778 2.85578285,11.8669474 C2.85578285,10.2414169 4.17821997,8.91897975 5.80375046,8.91897975 C7.42928095,8.91897975 8.75171807,10.2414169 8.75171807,11.8669474 C8.75171807,13.4924778 7.42928095,14.814915 5.80375046,14.814915 Z" id="Shape" fill="#000000" fill-rule="nonzero"></path>
            <path d="M13.9638189,8.699335 C13.9364621,8.70430925 13.9091059,8.71176968 13.8842359,8.71923074 C13.7822704,8.73663967 13.6877654,8.77643115 13.6056956,8.83860518 L10.2433156,11.3852598 C10.0766886,11.5046343 9.97720993,11.6986181 9.97720993,11.9025491 C9.97720993,12.1064807 10.0766886,12.3004639 10.2433156,12.4198383 L13.6056956,14.966493 C13.891697,15.1803725 14.2970729,15.1231721 14.5109517,14.8371707 C14.7248313,14.5511692 14.6676309,14.145794 14.3816294,13.9319145 L12.5313257,12.5392127 L21.8812495,12.5392127 L21.8812495,11.2658854 L12.5313257,11.2658854 L14.3816294,9.87318364 C14.6377872,9.71650453 14.7497006,9.40066014 14.6477351,9.11714553 C14.5482564,8.83363156 14.262255,8.65954352 13.9638189,8.699335 Z" id="arrow" fill="#000000" transform="translate(15.929230, 11.894737) rotate(-180.000000) translate(-15.929230, -11.894737) "></path>
        </g>
    </g>
</svg></td>
    <td style="height: 40px; background-color: #FCFCFC; border-right: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color:#4CA64C;">✓</span></td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_right">2000</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5;" class="gt_row gt_right">1975<br>0.99</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5;" class="gt_row gt_right">25<br>0.01</td>
    <td style="height: 40px; background-color: #FCFCFC; border-left: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color: #AAAAAA;">●</span></td>
    <td style="height: 40px; background-color: #FCFCFC;" class="gt_row gt_center"><span style="color: #EBBC14;">●</span></td>
    <td style="height: 40px; background-color: #FCFCFC; border-right: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color: #FF3300;">○</span></td>
    <td style="height: 40px;" class="gt_row gt_center"><a href="data:text/csv;base64,X3Jvd19udW1fLHBsYXllcl9pZCxzZXNzaW9uX2lkLHNlc3Npb25fc3RhcnQsdGltZSxpdGVtX3R5cGUsaXRlbV9uYW1lLGl0ZW1fcmV2ZW51ZSxzZXNzaW9uX2R1cmF0aW9uLHN0YXJ0X2RheSxhY3F1aXNpdGlvbixjb3VudHJ5CjEzODMsRUtJSFhCUkZHT0NENTcxLEVLSUhYQlJGR09DRDU3MS1tM3QxaW41NywyMDE1LTAxLTE3VDAyOjQxOjQ1LjAwMDAwMCswMDAwLDIwMTUtMDEtMTdUMDI6NDg6MDkuMDAwMDAwKzAwMDAsYWQsYWRfc3VydmV5LDEuNDgsMTguOSwyMDE1LTAxLTE3LGFwcGxlLFVuaXRlZCBLaW5nZG9tCjEzODQsRUtJSFhCUkZHT0NENTcxLEVLSUhYQlJGR09DRDU3MS1tM3QxaW41NywyMDE1LTAxLTE3VDAyOjQxOjQ1LjAwMDAwMCswMDAwLDIwMTUtMDEtMTdUMDI6NTA6MjEuMDAwMDAwKzAwMDAsYWQsYWRfMTVzZWMsMC41NywxOC45LDIwMTUtMDEtMTcsYXBwbGUsVW5pdGVkIEtpbmdkb20KMTM4NSxFS0lIWEJSRkdPQ0Q1NzEsRUtJSFhCUkZHT0NENTcxLW0zdDFpbjU3LDIwMTUtMDEtMTdUMDI6NDE6NDUuMDAwMDAwKzAwMDAsMjAxNS0wMS0xN1QwMjo1MTo0NS4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjE5LDE4LjksMjAxNS0wMS0xNyxhcHBsZSxVbml0ZWQgS2luZ2RvbQoxNDIwLEVLSUhYQlJGR09DRDU3MSxFS0lIWEJSRkdPQ0Q1NzEtbjVrZTJhbDcsMjAxNS0wMS0xN1QwODoxNjoxNi4wMDAwMDArMDAwMCwyMDE1LTAxLTE3VDA4OjE2OjU4LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wOCwzNy4yLDIwMTUtMDEtMTcsYXBwbGUsVW5pdGVkIEtpbmdkb20KMTQyMSxFS0lIWEJSRkdPQ0Q1NzEsRUtJSFhCUkZHT0NENTcxLW41a2UyYWw3LDIwMTUtMDEtMTdUMDg6MTY6MTYuMDAwMDAwKzAwMDAsMjAxNS0wMS0xN1QwODozMzo0MC4wMDAwMDArMDAwMCxpYXAsZ29sZDMsNC45OSwzNy4yLDIwMTUtMDEtMTcsYXBwbGUsVW5pdGVkIEtpbmdkb20KMTQyMixFS0lIWEJSRkdPQ0Q1NzEsRUtJSFhCUkZHT0NENTcxLW41a2UyYWw3LDIwMTUtMDEtMTdUMDg6MTY6MTYuMDAwMDAwKzAwMDAsMjAxNS0wMS0xN1QwODozODo1Mi4wMDAwMDArMDAwMCxhZCxhZF9wbGF5YWJsZSwxLjAxLDM3LjIsMjAxNS0wMS0xNyxhcHBsZSxVbml0ZWQgS2luZ2RvbQoxNDIzLEVLSUhYQlJGR09DRDU3MSxFS0lIWEJSRkdPQ0Q1NzEtbjVrZTJhbDcsMjAxNS0wMS0xN1QwODoxNjoxNi4wMDAwMDArMDAwMCwyMDE1LTAxLTE3VDA4OjQyOjE2LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4xMSwzNy4yLDIwMTUtMDEtMTcsYXBwbGUsVW5pdGVkIEtpbmdkb20KMTQyNCxFS0lIWEJSRkdPQ0Q1NzEsRUtJSFhCUkZHT0NENTcxLW41a2UyYWw3LDIwMTUtMDEtMTdUMDg6MTY6MTYuMDAwMDAwKzAwMDAsMjAxNS0wMS0xN1QwODo0NDowNC4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjExLDM3LjIsMjAxNS0wMS0xNyxhcHBsZSxVbml0ZWQgS2luZ2RvbQoxNDc2LEVLSUhYQlJGR09DRDU3MSxFS0lIWEJSRkdPQ0Q1NzEtNmwxZDV4anEsMjAxNS0wMS0xN1QxMjo1OToyNC4wMDAwMDArMDAwMCwyMDE1LTAxLTE3VDEzOjAxOjI0LjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMDksMzMuNSwyMDE1LTAxLTE3LGFwcGxlLFVuaXRlZCBLaW5nZG9tCjE0NzcsRUtJSFhCUkZHT0NENTcxLEVLSUhYQlJGR09DRDU3MS02bDFkNXhqcSwyMDE1LTAxLTE3VDEyOjU5OjI0LjAwMDAwMCswMDAwLDIwMTUtMDEtMTdUMTM6MDI6NDIuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA2LDMzLjUsMjAxNS0wMS0xNyxhcHBsZSxVbml0ZWQgS2luZ2RvbQoxNDc4LEVLSUhYQlJGR09DRDU3MSxFS0lIWEJSRkdPQ0Q1NzEtNmwxZDV4anEsMjAxNS0wMS0xN1QxMjo1OToyNC4wMDAwMDArMDAwMCwyMDE1LTAxLTE3VDEzOjE5OjEyLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4xLDMzLjUsMjAxNS0wMS0xNyxhcHBsZSxVbml0ZWQgS2luZ2RvbQoxNDc5LEVLSUhYQlJGR09DRDU3MSxFS0lIWEJSRkdPQ0Q1NzEtNmwxZDV4anEsMjAxNS0wMS0xN1QxMjo1OToyNC4wMDAwMDArMDAwMCwyMDE1LTAxLTE3VDEzOjI3OjQyLjAwMDAwMCswMDAwLGFkLGFkXzE1c2VjLDAuMzQ5NywzMy41LDIwMTUtMDEtMTcsYXBwbGUsVW5pdGVkIEtpbmdkb20KMTU5MyxFS0lIWEJSRkdPQ0Q1NzEsRUtJSFhCUkZHT0NENTcxLWhvbHVjOTFhLDIwMTUtMDEtMThUMDc6MTE6NDAuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOFQwNzoxNDo1OC4wMDAwMDArMDAwMCxhZCxhZF8xNXNlYywwLjMyLDEyLjYsMjAxNS0wMS0xNyxhcHBsZSxVbml0ZWQgS2luZ2RvbQoxNTk0LEVLSUhYQlJGR09DRDU3MSxFS0lIWEJSRkdPQ0Q1NzEtaG9sdWM5MWEsMjAxNS0wMS0xOFQwNzoxMTo0MC4wMDAwMDArMDAwMCwyMDE1LTAxLTE4VDA3OjE4OjU4LjAwMDAwMCswMDAwLGlhcCxvZmZlcjMsMTQuOTksMTIuNiwyMDE1LTAxLTE3LGFwcGxlLFVuaXRlZCBLaW5nZG9tCjE2NTcsRUtJSFhCUkZHT0NENTcxLEVLSUhYQlJGR09DRDU3MS1kdnFneG01NiwyMDE1LTAxLTE4VDE1OjI5OjIyLjAwMDAwMCswMDAwLDIwMTUtMDEtMThUMTU6MzM6MjguMDAwMDAwKzAwMDAsYWQsYWRfMTBzZWMsMC4xNywzNS45LDIwMTUtMDEtMTcsYXBwbGUsVW5pdGVkIEtpbmdkb20KMTY1OCxFS0lIWEJSRkdPQ0Q1NzEsRUtJSFhCUkZHT0NENTcxLWR2cWd4bTU2LDIwMTUtMDEtMThUMTU6Mjk6MjIuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOFQxNTozNDoxNi4wMDAwMDArMDAwMCxpYXAsb2ZmZXIyLDkuOTksMzUuOSwyMDE1LTAxLTE3LGFwcGxlLFVuaXRlZCBLaW5nZG9tCjE2NTksRUtJSFhCUkZHT0NENTcxLEVLSUhYQlJGR09DRDU3MS1kdnFneG01NiwyMDE1LTAxLTE4VDE1OjI5OjIyLjAwMDAwMCswMDAwLDIwMTUtMDEtMThUMTU6MzY6MTYuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA1LDM1LjksMjAxNS0wMS0xNyxhcHBsZSxVbml0ZWQgS2luZ2RvbQoxNjYwLEVLSUhYQlJGR09DRDU3MSxFS0lIWEJSRkdPQ0Q1NzEtZHZxZ3htNTYsMjAxNS0wMS0xOFQxNToyOToyMi4wMDAwMDArMDAwMCwyMDE1LTAxLTE4VDE1OjQzOjI4LjAwMDAwMCswMDAwLGFkLGFkXzE1c2VjLDAuMTYsMzUuOSwyMDE1LTAxLTE3LGFwcGxlLFVuaXRlZCBLaW5nZG9tCjE2NjEsRUtJSFhCUkZHT0NENTcxLEVLSUhYQlJGR09DRDU3MS1kdnFneG01NiwyMDE1LTAxLTE4VDE1OjI5OjIyLjAwMDAwMCswMDAwLDIwMTUtMDEtMThUMTU6NTQ6NTIuMDAwMDAwKzAwMDAsYWQsYWRfc3VydmV5LDAuNjEsMzUuOSwyMDE1LTAxLTE3LGFwcGxlLFVuaXRlZCBLaW5nZG9tCjE2NjIsRUtJSFhCUkZHT0NENTcxLEVLSUhYQlJGR09DRDU3MS1kdnFneG01NiwyMDE1LTAxLTE4VDE1OjI5OjIyLjAwMDAwMCswMDAwLDIwMTUtMDEtMThUMTY6MDQ6MTYuMDAwMDAwKzAwMDAsYWQsYWRfc3VydmV5LDEuMCwzNS45LDIwMTUtMDEtMTcsYXBwbGUsVW5pdGVkIEtpbmdkb20KMTcyNSxFS0lIWEJSRkdPQ0Q1NzEsRUtJSFhCUkZHT0NENTcxLWFqd3R1emhuLDIwMTUtMDEtMTlUMDM6MDE6MzkuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOVQwMzowNDoyMS4wMDAwMDArMDAwMCxhZCxhZF8yMHNlYywxLjA4LDYuOCwyMDE1LTAxLTE3LGFwcGxlLFVuaXRlZCBLaW5nZG9tCjE4MzgsRUtJSFhCUkZHT0NENTcxLEVLSUhYQlJGR09DRDU3MS03bml4cWJ0OSwyMDE1LTAxLTE5VDIwOjA4OjU4LjAwMDAwMCswMDAwLDIwMTUtMDEtMTlUMjA6MTI6MTAuMDAwMDAwKzAwMDAsaWFwLG9mZmVyMSw0Ljk5LDExLjYsMjAxNS0wMS0xNyxhcHBsZSxVbml0ZWQgS2luZ2RvbQoxODM5LEVLSUhYQlJGR09DRDU3MSxFS0lIWEJSRkdPQ0Q1NzEtN25peHFidDksMjAxNS0wMS0xOVQyMDowODo1OC4wMDAwMDArMDAwMCwyMDE1LTAxLTE5VDIwOjE0OjM0LjAwMDAwMCswMDAwLGFkLGFkXzIwc2VjLDAuOCwxMS42LDIwMTUtMDEtMTcsYXBwbGUsVW5pdGVkIEtpbmdkb20KMTg0MCxFS0lIWEJSRkdPQ0Q1NzEsRUtJSFhCUkZHT0NENTcxLTduaXhxYnQ5LDIwMTUtMDEtMTlUMjA6MDg6NTguMDAwMDAwKzAwMDAsMjAxNS0wMS0xOVQyMDoxOTo1Mi4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjE0LDExLjYsMjAxNS0wMS0xNyxhcHBsZSxVbml0ZWQgS2luZ2RvbQoxODg1LEVLSUhYQlJGR09DRDU3MSxFS0lIWEJSRkdPQ0Q1NzEtcHIxbWplaGMsMjAxNS0wMS0yMFQwNjoyNDo1MC4wMDAwMDArMDAwMCwyMDE1LTAxLTIwVDA2OjMyOjI2LjAwMDAwMCswMDAwLGFkLGFkXzIwc2VjLDAuNjQ5LDEzLjQsMjAxNS0wMS0xNyxhcHBsZSxVbml0ZWQgS2luZ2RvbQo=" download="extract_0005.csv"><button style="background-color: #67C2DC; color: #FFFFFF; border: none; padding: 5px; font-weight: bold; cursor: pointer; border-radius: 4px;">CSV</button></a></td>
  </tr>
  <tr>
    <td style="height: 40px; background-color: #FF3300; color: transparent;font-size: 0px;" class="gt_row gt_left">#FF3300</td>
    <td style="height: 40px; color: #666666;font-size: 13px;font-weight: bold;" class="gt_row gt_right">6</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_left">
        <div style="margin: 0; padding: 0; display: inline-block; height: 30px; vertical-align: middle; width: 16%;">
            <!--?xml version="1.0" encoding="UTF-8"?--><!--?xml version="1.0" encoding="UTF-8"?-->
<svg width="30px" height="30px" viewbox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink">
    <title>col_vals_not_in_set</title>
    <g id="Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="col_vals_not_in_set" transform="translate(0.000000, 0.655172)">
            <path d="M56.712234,1 C59.1975153,1 61.4475153,2.00735931 63.076195,3.63603897 C64.7048747,5.26471863 65.712234,7.51471863 65.712234,10 L65.712234,10 L65.712234,65 L10.712234,65 C8.22695259,65 5.97695259,63.9926407 4.34827294,62.363961 C2.71959328,60.7352814 1.71223397,58.4852814 1.71223397,56 L1.71223397,56 L1.71223397,10 C1.71223397,7.51471863 2.71959328,5.26471863 4.34827294,3.63603897 C5.97695259,2.00735931 8.22695259,1 10.712234,1 L10.712234,1 Z" id="rectangle" stroke="#000000" stroke-width="2" fill="#FFFFFF"></path>
            <path d="M44.127969,41.1538382 L31.0814568,41.1538382 C29.9510748,41.1536429 28.8827052,40.9256134 27.9079888,40.5136953 C26.4467442,39.8960136 25.19849,38.8599685 24.3189894,37.5577099 C23.8792391,36.906727 23.5314818,36.1899233 23.2936866,35.4252675 C23.2130217,35.16589 23.1460289,34.9005554 23.0913409,34.6307286 L44.1278714,34.6307286 C45.028466,34.6306309 45.7586488,33.9004481 45.7586488,32.9998535 C45.7586488,32.0992589 45.028466,31.3690761 44.1278714,31.3690761 L23.0905596,31.3690761 C23.1990567,30.8337194 23.3597028,30.3180894 23.5675173,29.8264831 C24.185199,28.3652386 25.2212442,27.1169844 26.5236004,26.2374838 C27.1745833,25.7977334 27.891387,25.4499762 28.6560428,25.2122786 C29.4208939,24.9744833 30.2334994,24.8459665 31.0813591,24.8459665 L44.1277737,24.8459665 C45.0283683,24.8459665 45.7586488,24.1157837 45.7586488,23.2151891 C45.7586488,22.3145945 45.0283683,21.5844117 44.1277737,21.5844117 L31.0813591,21.5844117 C29.5096643,21.5844117 28.0039858,21.9038483 26.6373711,22.4820765 C24.5866678,23.3498583 22.8469049,24.7950871 21.6163267,26.616296 C20.3856508,28.4362354 19.665136,30.6413347 19.6658191,33.0000488 C19.6658191,34.5717436 19.9852563,36.0774222 20.5635822,37.4440369 C21.4312663,39.4947402 22.8765927,41.2345031 24.697704,42.4650813 C26.5176434,43.6957572 28.7227427,44.4155883 31.0814568,44.4155883 L44.1278714,44.4155883 C45.028466,44.4155883 45.7586488,43.6854055 45.7586488,42.7848109 C45.7586488,41.8842163 45.0285636,41.1538382 44.127969,41.1538382 Z" id="set_of" fill="#000000" fill-rule="nonzero"></path>
            <path d="M32.7624859,7.45752636 C33.0386282,7.45752636 33.2624859,7.68138398 33.2624859,7.95752636 L33.2624859,57.0855723 C33.2624859,57.3617146 33.0386282,57.5855723 32.7624859,57.5855723 C32.4863435,57.5855723 32.2624859,57.3617146 32.2624859,57.0855723 L32.2624859,7.95752636 C32.2624859,7.68138398 32.4863435,7.45752636 32.7624859,7.45752636 Z" id="line_black" fill="#000000" transform="translate(32.762486, 32.521549) rotate(-320.000000) translate(-32.762486, -32.521549) "></path>
            <polygon id="line_white" fill="#FFFFFF" transform="translate(34.661982, 31.674853) rotate(-320.000000) translate(-34.661982, -31.674853) " points="34.1619821 8.063154 35.1619821 8.063154 35.1619821 55.2865512 34.1619821 55.2865512"></polygon>
        </g>
    </g>
</svg>
        </div>
        <div style="font-family: 'IBM Plex Mono', monospace, courier; color: black; font-size: 10px; display: inline-block; vertical-align: middle;">
            <div>col_vals_not_in_set()</div>
        </div>
        
        </td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">country</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">Mongolia, Germany</td>
    <td style="height: 40px; background-color: #FCFCFC; border-left: 1px solid #D3D3D3;" class="gt_row gt_center"><svg width="25px" height="25px" viewbox="0 0 25 25" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" style="vertical-align: middle;">
    <g id="unchanged" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="unchanged" transform="translate(0.500000, 0.570147)">
            <rect id="Rectangle" x="0.125132506" y="0" width="23.749735" height="23.7894737"></rect>
            <path d="M5.80375046,8.18194736 C3.77191832,8.18194736 2.11875046,9.83495328 2.11875046,11.8669474 C2.11875046,13.8989414 3.77191832,15.5519474 5.80375046,15.5519474 C7.8355826,15.5519474 9.48875046,13.8989414 9.48875046,11.8669474 C9.48875046,9.83495328 7.83552863,8.18194736 5.80375046,8.18194736 Z M5.80375046,14.814915 C4.17821997,14.814915 2.85578285,13.4924778 2.85578285,11.8669474 C2.85578285,10.2414169 4.17821997,8.91897975 5.80375046,8.91897975 C7.42928095,8.91897975 8.75171807,10.2414169 8.75171807,11.8669474 C8.75171807,13.4924778 7.42928095,14.814915 5.80375046,14.814915 Z" id="Shape" fill="#000000" fill-rule="nonzero"></path>
            <path d="M13.9638189,8.699335 C13.9364621,8.70430925 13.9091059,8.71176968 13.8842359,8.71923074 C13.7822704,8.73663967 13.6877654,8.77643115 13.6056956,8.83860518 L10.2433156,11.3852598 C10.0766886,11.5046343 9.97720993,11.6986181 9.97720993,11.9025491 C9.97720993,12.1064807 10.0766886,12.3004639 10.2433156,12.4198383 L13.6056956,14.966493 C13.891697,15.1803725 14.2970729,15.1231721 14.5109517,14.8371707 C14.7248313,14.5511692 14.6676309,14.145794 14.3816294,13.9319145 L12.5313257,12.5392127 L21.8812495,12.5392127 L21.8812495,11.2658854 L12.5313257,11.2658854 L14.3816294,9.87318364 C14.6377872,9.71650453 14.7497006,9.40066014 14.6477351,9.11714553 C14.5482564,8.83363156 14.262255,8.65954352 13.9638189,8.699335 Z" id="arrow" fill="#000000" transform="translate(15.929230, 11.894737) rotate(-180.000000) translate(-15.929230, -11.894737) "></path>
        </g>
    </g>
</svg></td>
    <td style="height: 40px; background-color: #FCFCFC; border-right: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color:#4CA64C;">✓</span></td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_right">2000</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5;" class="gt_row gt_right">1775<br>0.89</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5;" class="gt_row gt_right">225<br>0.11</td>
    <td style="height: 40px; background-color: #FCFCFC; border-left: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color: #AAAAAA;">●</span></td>
    <td style="height: 40px; background-color: #FCFCFC;" class="gt_row gt_center"><span style="color: #EBBC14;">●</span></td>
    <td style="height: 40px; background-color: #FCFCFC; border-right: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color: #FF3300;">●</span></td>
    <td style="height: 40px;" class="gt_row gt_center"><a href="data:text/csv;base64,X3Jvd19udW1fLHBsYXllcl9pZCxzZXNzaW9uX2lkLHNlc3Npb25fc3RhcnQsdGltZSxpdGVtX3R5cGUsaXRlbV9uYW1lLGl0ZW1fcmV2ZW51ZSxzZXNzaW9uX2R1cmF0aW9uLHN0YXJ0X2RheSxhY3F1aXNpdGlvbixjb3VudHJ5CjEsRUNQQU5PSVhMWkhGODk2LEVDUEFOT0lYTFpIRjg5Ni1lb2wyajhicywyMDE1LTAxLTAxVDAxOjMxOjAzLjAwMDAwMCswMDAwLDIwMTUtMDEtMDFUMDE6MzE6MjcuMDAwMDAwKzAwMDAsaWFwLG9mZmVyMiw4Ljk5LDE2LjMsMjAxNS0wMS0wMSxnb29nbGUsR2VybWFueQoyLEVDUEFOT0lYTFpIRjg5NixFQ1BBTk9JWExaSEY4OTYtZW9sMmo4YnMsMjAxNS0wMS0wMVQwMTozMTowMy4wMDAwMDArMDAwMCwyMDE1LTAxLTAxVDAxOjM2OjU3LjAwMDAwMCswMDAwLGlhcCxnZW1zMywyMi40OSwxNi4zLDIwMTUtMDEtMDEsZ29vZ2xlLEdlcm1hbnkKMyxFQ1BBTk9JWExaSEY4OTYsRUNQQU5PSVhMWkhGODk2LWVvbDJqOGJzLDIwMTUtMDEtMDFUMDE6MzE6MDMuMDAwMDAwKzAwMDAsMjAxNS0wMS0wMVQwMTozNzo0NS4wMDAwMDArMDAwMCxpYXAsZ29sZDcsMTA3Ljk5LDE2LjMsMjAxNS0wMS0wMSxnb29nbGUsR2VybWFueQo0LEVDUEFOT0lYTFpIRjg5NixFQ1BBTk9JWExaSEY4OTYtZW9sMmo4YnMsMjAxNS0wMS0wMVQwMTozMTowMy4wMDAwMDArMDAwMCwyMDE1LTAxLTAxVDAxOjQyOjMzLjAwMDAwMCswMDAwLGFkLGFkXzIwc2VjLDAuNzYsMTYuMywyMDE1LTAxLTAxLGdvb2dsZSxHZXJtYW55CjUsRUNQQU5PSVhMWkhGODk2LEVDUEFOT0lYTFpIRjg5Ni1oZHU5amtscywyMDE1LTAxLTAxVDExOjUwOjAyLjAwMDAwMCswMDAwLDIwMTUtMDEtMDFUMTE6NTU6MjAuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAzLDM1LjIsMjAxNS0wMS0wMSxnb29nbGUsR2VybWFueQo2LEVDUEFOT0lYTFpIRjg5NixFQ1BBTk9JWExaSEY4OTYtaGR1OWprbHMsMjAxNS0wMS0wMVQxMTo1MDowMi4wMDAwMDArMDAwMCwyMDE1LTAxLTAxVDEyOjA4OjU2LjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMDcsMzUuMiwyMDE1LTAxLTAxLGdvb2dsZSxHZXJtYW55CjcsRUNQQU5PSVhMWkhGODk2LEVDUEFOT0lYTFpIRjg5Ni1oZHU5amtscywyMDE1LTAxLTAxVDExOjUwOjAyLjAwMDAwMCswMDAwLDIwMTUtMDEtMDFUMTI6MTQ6MDguMDAwMDAwKzAwMDAsYWQsYWRfMTBzZWMsMC4wOCwzNS4yLDIwMTUtMDEtMDEsZ29vZ2xlLEdlcm1hbnkKOCxFQ1BBTk9JWExaSEY4OTYsRUNQQU5PSVhMWkhGODk2LWhkdTlqa2xzLDIwMTUtMDEtMDFUMTE6NTA6MDIuMDAwMDAwKzAwMDAsMjAxNS0wMS0wMVQxMjoyMTo0NC4wMDAwMDArMDAwMCxhZCxhZF8zMHNlYywxLjE3LDM1LjIsMjAxNS0wMS0wMSxnb29nbGUsR2VybWFueQo5LEVDUEFOT0lYTFpIRjg5NixFQ1BBTk9JWExaSEY4OTYtaGR1OWprbHMsMjAxNS0wMS0wMVQxMTo1MDowMi4wMDAwMDArMDAwMCwyMDE1LTAxLTAxVDEyOjI0OjIwLjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMTQsMzUuMiwyMDE1LTAxLTAxLGdvb2dsZSxHZXJtYW55CjI4LEVDUEFOT0lYTFpIRjg5NixFQ1BBTk9JWExaSEY4OTYteGViMW1pNHIsMjAxNS0wMS0wMlQwMjo0MTo1Ny4wMDAwMDArMDAwMCwyMDE1LTAxLTAyVDAyOjQ2OjI3LjAwMDAwMCswMDAwLGlhcCxnZW1zNCw1My45OSwyOC4zLDIwMTUtMDEtMDEsZ29vZ2xlLEdlcm1hbnkKMjksRUNQQU5PSVhMWkhGODk2LEVDUEFOT0lYTFpIRjg5Ni14ZWIxbWk0ciwyMDE1LTAxLTAyVDAyOjQxOjU3LjAwMDAwMCswMDAwLDIwMTUtMDEtMDJUMDI6NTA6MjcuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAyLDI4LjMsMjAxNS0wMS0wMSxnb29nbGUsR2VybWFueQozMCxFQ1BBTk9JWExaSEY4OTYsRUNQQU5PSVhMWkhGODk2LXhlYjFtaTRyLDIwMTUtMDEtMDJUMDI6NDE6NTcuMDAwMDAwKzAwMDAsMjAxNS0wMS0wMlQwMjo1ODoxNS4wMDAwMDArMDAwMCxhZCxhZF8yMHNlYywwLjUzLDI4LjMsMjAxNS0wMS0wMSxnb29nbGUsR2VybWFueQozMSxFQ1BBTk9JWExaSEY4OTYsRUNQQU5PSVhMWkhGODk2LXhlYjFtaTRyLDIwMTUtMDEtMDJUMDI6NDE6NTcuMDAwMDAwKzAwMDAsMjAxNS0wMS0wMlQwMjo1OToxNS4wMDAwMDArMDAwMCxpYXAsb2ZmZXIzLDEzLjQ5LDI4LjMsMjAxNS0wMS0wMSxnb29nbGUsR2VybWFueQozMixFQ1BBTk9JWExaSEY4OTYsRUNQQU5PSVhMWkhGODk2LXhlYjFtaTRyLDIwMTUtMDEtMDJUMDI6NDE6NTcuMDAwMDAwKzAwMDAsMjAxNS0wMS0wMlQwMzowNDowMy4wMDAwMDArMDAwMCxpYXAsZ2VtczQsNTMuOTksMjguMywyMDE1LTAxLTAxLGdvb2dsZSxHZXJtYW55CjMzLEVDUEFOT0lYTFpIRjg5NixFQ1BBTk9JWExaSEY4OTYteGViMW1pNHIsMjAxNS0wMS0wMlQwMjo0MTo1Ny4wMDAwMDArMDAwMCwyMDE1LTAxLTAyVDAzOjA0OjE1LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMywyOC4zLDIwMTUtMDEtMDEsZ29vZ2xlLEdlcm1hbnkKMzQsRUNQQU5PSVhMWkhGODk2LEVDUEFOT0lYTFpIRjg5Ni14ZWIxbWk0ciwyMDE1LTAxLTAyVDAyOjQxOjU3LjAwMDAwMCswMDAwLDIwMTUtMDEtMDJUMDM6MDQ6NTEuMDAwMDAwKzAwMDAsYWQsYWRfMTVzZWMsMC4zOCwyOC4zLDIwMTUtMDEtMDEsZ29vZ2xlLEdlcm1hbnkKMzUsRUNQQU5PSVhMWkhGODk2LEVDUEFOT0lYTFpIRjg5Ni14ZWIxbWk0ciwyMDE1LTAxLTAyVDAyOjQxOjU3LjAwMDAwMCswMDAwLDIwMTUtMDEtMDJUMDM6MDY6MzMuMDAwMDAwKzAwMDAsaWFwLG9mZmVyNSwyNi4wOSwyOC4zLDIwMTUtMDEtMDEsZ29vZ2xlLEdlcm1hbnkKNzAsRUNQQU5PSVhMWkhGODk2LEVDUEFOT0lYTFpIRjg5Ni1lb2J3Z2w0biwyMDE1LTAxLTAzVDA2OjExOjEwLjAwMDAwMCswMDAwLDIwMTUtMDEtMDNUMDY6MTY6MjguMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA3LDEwLjYsMjAxNS0wMS0wMSxnb29nbGUsR2VybWFueQo4MixFQ1BBTk9JWExaSEY4OTYsRUNQQU5PSVhMWkhGODk2LW55eGdiNjFqLDIwMTUtMDEtMDNUMjI6NTM6NTIuMDAwMDAwKzAwMDAsMjAxNS0wMS0wM1QyMjo1NDo0Ni4wMDAwMDArMDAwMCxpYXAsZ2VtczMsMjIuNDksMTUuNiwyMDE1LTAxLTAxLGdvb2dsZSxHZXJtYW55CjgzLEVDUEFOT0lYTFpIRjg5NixFQ1BBTk9JWExaSEY4OTYtbnl4Z2I2MWosMjAxNS0wMS0wM1QyMjo1Mzo1Mi4wMDAwMDArMDAwMCwyMDE1LTAxLTAzVDIzOjA0OjE2LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4xMiwxNS42LDIwMTUtMDEtMDEsZ29vZ2xlLEdlcm1hbnkKODQsRVFVRE5HWklDTUFLNDgyLEVRVUROR1pJQ01BSzQ4Mi04dWF5OXc3NSwyMDE1LTAxLTA0VDAxOjIxOjAzLjAwMDAwMCswMDAwLDIwMTUtMDEtMDRUMDE6MzY6MDMuMDAwMDAwKzAwMDAsYWQsYWRfMzBzZWMsMS4wMiwyNi44LDIwMTUtMDEtMDQsZ29vZ2xlLEdlcm1hbnkKODUsRVFVRE5HWklDTUFLNDgyLEVRVUROR1pJQ01BSzQ4Mi04dWF5OXc3NSwyMDE1LTAxLTA0VDAxOjIxOjAzLjAwMDAwMCswMDAwLDIwMTUtMDEtMDRUMDE6NDA6MzkuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA4LDI2LjgsMjAxNS0wMS0wNCxnb29nbGUsR2VybWFueQo4NixFUVVETkdaSUNNQUs0ODIsRVFVRE5HWklDTUFLNDgyLTh1YXk5dzc1LDIwMTUtMDEtMDRUMDE6MjE6MDMuMDAwMDAwKzAwMDAsMjAxNS0wMS0wNFQwMTo0Nzo1MS4wMDAwMDArMDAwMCxhZCxhZF8xNXNlYywwLjUsMjYuOCwyMDE1LTAxLTA0LGdvb2dsZSxHZXJtYW55CjkxLEVDUEFOT0lYTFpIRjg5NixFQ1BBTk9JWExaSEY4OTYtN3o5aHNhZ3EsMjAxNS0wMS0wNFQwMzoxNTozNC4wMDAwMDArMDAwMCwyMDE1LTAxLTA0VDAzOjMyOjU4LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMywzNS4xLDIwMTUtMDEtMDEsZ29vZ2xlLEdlcm1hbnkKOTIsRUNQQU5PSVhMWkhGODk2LEVDUEFOT0lYTFpIRjg5Ni03ejloc2FncSwyMDE1LTAxLTA0VDAzOjE1OjM0LjAwMDAwMCswMDAwLDIwMTUtMDEtMDRUMDM6NDM6MDQuMDAwMDAwKzAwMDAsYWQsYWRfMzBzZWMsMC43MywzNS4xLDIwMTUtMDEtMDEsZ29vZ2xlLEdlcm1hbnkKOTMsRUNQQU5PSVhMWkhGODk2LEVDUEFOT0lYTFpIRjg5Ni03ejloc2FncSwyMDE1LTAxLTA0VDAzOjE1OjM0LjAwMDAwMCswMDAwLDIwMTUtMDEtMDRUMDM6NDM6MjguMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAyLDM1LjEsMjAxNS0wMS0wMSxnb29nbGUsR2VybWFueQo5NCxFQ1BBTk9JWExaSEY4OTYsRUNQQU5PSVhMWkhGODk2LTd6OWhzYWdxLDIwMTUtMDEtMDRUMDM6MTU6MzQuMDAwMDAwKzAwMDAsMjAxNS0wMS0wNFQwMzo0NToyMi4wMDAwMDArMDAwMCxpYXAsb2ZmZXIyLDguOTksMzUuMSwyMDE1LTAxLTAxLGdvb2dsZSxHZXJtYW55Cjk1LEVRVUROR1pJQ01BSzQ4MixFUVVETkdaSUNNQUs0ODItaDJuczZsdmksMjAxNS0wMS0wNFQwNDoxMzoyMS4wMDAwMDArMDAwMCwyMDE1LTAxLTA0VDA0OjE0OjE1LjAwMDAwMCswMDAwLGlhcCxnZW1zMiw4Ljk5LDE3LjIsMjAxNS0wMS0wNCxnb29nbGUsR2VybWFueQo5NixFUVVETkdaSUNNQUs0ODIsRVFVRE5HWklDTUFLNDgyLWgybnM2bHZpLDIwMTUtMDEtMDRUMDQ6MTM6MjEuMDAwMDAwKzAwMDAsMjAxNS0wMS0wNFQwNDoxNzo1Ny4wMDAwMDArMDAwMCxhZCxhZF8xNXNlYywwLjM0OSwxNy4yLDIwMTUtMDEtMDQsZ29vZ2xlLEdlcm1hbnkKOTcsRVFVRE5HWklDTUFLNDgyLEVRVUROR1pJQ01BSzQ4Mi1oMm5zNmx2aSwyMDE1LTAxLTA0VDA0OjEzOjIxLjAwMDAwMCswMDAwLDIwMTUtMDEtMDRUMDQ6Mjg6MzkuMDAwMDAwKzAwMDAsYWQsYWRfMTVzZWMsMC4yNSwxNy4yLDIwMTUtMDEtMDQsZ29vZ2xlLEdlcm1hbnkKMTEyLEVDUEFOT0lYTFpIRjg5NixFQ1BBTk9JWExaSEY4OTYtcmZscTcyaTMsMjAxNS0wMS0wNFQxODo0Mzo0Ni4wMDAwMDArMDAwMCwyMDE1LTAxLTA0VDE4OjQ4OjIyLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4xMSwxMS40LDIwMTUtMDEtMDEsZ29vZ2xlLEdlcm1hbnkKMTEzLEVDUEFOT0lYTFpIRjg5NixFQ1BBTk9JWExaSEY4OTYtcmZscTcyaTMsMjAxNS0wMS0wNFQxODo0Mzo0Ni4wMDAwMDArMDAwMCwyMDE1LTAxLTA0VDE4OjUxOjA0LjAwMDAwMCswMDAwLGlhcCxnb2xkNCwxNy45OSwxMS40LDIwMTUtMDEtMDEsZ29vZ2xlLEdlcm1hbnkKMTIyLEVRVUROR1pJQ01BSzQ4MixFUVVETkdaSUNNQUs0ODItNGt2NTg5ZW0sMjAxNS0wMS0wNVQwMjoyMDoxNi4wMDAwMDArMDAwMCwyMDE1LTAxLTA1VDAyOjIzOjM0LjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMDcsMjkuOCwyMDE1LTAxLTA0LGdvb2dsZSxHZXJtYW55CjEyMyxFUVVETkdaSUNNQUs0ODIsRVFVRE5HWklDTUFLNDgyLTRrdjU4OWVtLDIwMTUtMDEtMDVUMDI6MjA6MTYuMDAwMDAwKzAwMDAsMjAxNS0wMS0wNVQwMjozMToyOC4wMDAwMDArMDAwMCxhZCxhZF8yMHNlYywwLjgyLDI5LjgsMjAxNS0wMS0wNCxnb29nbGUsR2VybWFueQoxMjQsRVFVRE5HWklDTUFLNDgyLEVRVUROR1pJQ01BSzQ4Mi00a3Y1ODllbSwyMDE1LTAxLTA1VDAyOjIwOjE2LjAwMDAwMCswMDAwLDIwMTUtMDEtMDVUMDI6NDA6MTYuMDAwMDAwKzAwMDAsYWQsYWRfMjBzZWMsMC40MSwyOS44LDIwMTUtMDEtMDQsZ29vZ2xlLEdlcm1hbnkKMTI1LEVRVUROR1pJQ01BSzQ4MixFUVVETkdaSUNNQUs0ODItNGt2NTg5ZW0sMjAxNS0wMS0wNVQwMjoyMDoxNi4wMDAwMDArMDAwMCwyMDE1LTAxLTA1VDAyOjQwOjM0LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNSwyOS44LDIwMTUtMDEtMDQsZ29vZ2xlLEdlcm1hbnkKMTMzLEVDUEFOT0lYTFpIRjg5NixFQ1BBTk9JWExaSEY4OTYtemo3cHhuY3QsMjAxNS0wMS0wNVQwOToxMzowMy4wMDAwMDArMDAwMCwyMDE1LTAxLTA1VDA5OjIwOjIxLjAwMDAwMCswMDAwLGlhcCxnZW1zNCw1My45OSwyOC4xLDIwMTUtMDEtMDEsZ29vZ2xlLEdlcm1hbnkKMTM0LEVDUEFOT0lYTFpIRjg5NixFQ1BBTk9JWExaSEY4OTYtemo3cHhuY3QsMjAxNS0wMS0wNVQwOToxMzowMy4wMDAwMDArMDAwMCwyMDE1LTAxLTA1VDA5OjI0OjE1LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4xMiwyOC4xLDIwMTUtMDEtMDEsZ29vZ2xlLEdlcm1hbnkKMTM1LEVDUEFOT0lYTFpIRjg5NixFQ1BBTk9JWExaSEY4OTYtemo3cHhuY3QsMjAxNS0wMS0wNVQwOToxMzowMy4wMDAwMDArMDAwMCwyMDE1LTAxLTA1VDA5OjI0OjIxLjAwMDAwMCswMDAwLGlhcCxvZmZlcjUsMjYuMDksMjguMSwyMDE1LTAxLTAxLGdvb2dsZSxHZXJtYW55CjEzNixFQ1BBTk9JWExaSEY4OTYsRUNQQU5PSVhMWkhGODk2LXpqN3B4bmN0LDIwMTUtMDEtMDVUMDk6MTM6MDMuMDAwMDAwKzAwMDAsMjAxNS0wMS0wNVQwOTozMjo0NS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMSwyOC4xLDIwMTUtMDEtMDEsZ29vZ2xlLEdlcm1hbnkKMTY2LEVRVUROR1pJQ01BSzQ4MixFUVVETkdaSUNNQUs0ODItNmt2aGZsejMsMjAxNS0wMS0wNlQxMToxMjoxMS4wMDAwMDArMDAwMCwyMDE1LTAxLTA2VDExOjE2OjI5LjAwMDAwMCswMDAwLGFkLGFkXzE1c2VjLDAuNDQsMjcuMiwyMDE1LTAxLTA0LGdvb2dsZSxHZXJtYW55CjE2NyxFUVVETkdaSUNNQUs0ODIsRVFVRE5HWklDTUFLNDgyLTZrdmhmbHozLDIwMTUtMDEtMDZUMTE6MTI6MTEuMDAwMDAwKzAwMDAsMjAxNS0wMS0wNlQxMToyMzoyOS4wMDAwMDArMDAwMCxhZCxhZF8zMHNlYywxLjI3LDI3LjIsMjAxNS0wMS0wNCxnb29nbGUsR2VybWFueQoxOTUsRVFVRE5HWklDTUFLNDgyLEVRVUROR1pJQ01BSzQ4Mi1reHZjbXFmciwyMDE1LTAxLTA2VDIzOjMwOjMwLjAwMDAwMCswMDAwLDIwMTUtMDEtMDZUMjM6Mzk6MTguMDAwMDAwKzAwMDAsYWQsYWRfMzBzZWMsMS4yOCwxNy40LDIwMTUtMDEtMDQsZ29vZ2xlLEdlcm1hbnkKMTk2LEVRVUROR1pJQ01BSzQ4MixFUVVETkdaSUNNQUs0ODIta3h2Y21xZnIsMjAxNS0wMS0wNlQyMzozMDozMC4wMDAwMDArMDAwMCwyMDE1LTAxLTA2VDIzOjQyOjI0LjAwMDAwMCswMDAwLGlhcCxnb2xkMiwxLjc5LDE3LjQsMjAxNS0wMS0wNCxnb29nbGUsR2VybWFueQoxOTcsRVFVRE5HWklDTUFLNDgyLEVRVUROR1pJQ01BSzQ4Mi1reHZjbXFmciwyMDE1LTAxLTA2VDIzOjMwOjMwLjAwMDAwMCswMDAwLDIwMTUtMDEtMDZUMjM6NDU6NTQuMDAwMDAwKzAwMDAsYWQsYWRfMTBzZWMsMC4xLDE3LjQsMjAxNS0wMS0wNCxnb29nbGUsR2VybWFueQoxOTgsRVFVRE5HWklDTUFLNDgyLEVRVUROR1pJQ01BSzQ4Mi1reHZjbXFmciwyMDE1LTAxLTA2VDIzOjMwOjMwLjAwMDAwMCswMDAwLDIwMTUtMDEtMDZUMjM6NDc6MzAuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjEyLDE3LjQsMjAxNS0wMS0wNCxnb29nbGUsR2VybWFueQoyMTksR1NRSlhJT0tZTUVBNzEyLEdTUUpYSU9LWU1FQTcxMi00NXpldWxwZCwyMDE1LTAxLTA3VDA0OjQ2OjEyLjAwMDAwMCswMDAwLDIwMTUtMDEtMDdUMDQ6NTA6MzYuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAzLDM1LjIsMjAxNS0wMS0wNyxnb29nbGUsR2VybWFueQoyMjAsR1NRSlhJT0tZTUVBNzEyLEdTUUpYSU9LWU1FQTcxMi00NXpldWxwZCwyMDE1LTAxLTA3VDA0OjQ2OjEyLjAwMDAwMCswMDAwLDIwMTUtMDEtMDdUMDQ6NTU6MjQuMDAwMDAwKzAwMDAsYWQsYWRfMTVzZWMsMC42LDM1LjIsMjAxNS0wMS0wNyxnb29nbGUsR2VybWFueQoyMjEsR1NRSlhJT0tZTUVBNzEyLEdTUUpYSU9LWU1FQTcxMi00NXpldWxwZCwyMDE1LTAxLTA3VDA0OjQ2OjEyLjAwMDAwMCswMDAwLDIwMTUtMDEtMDdUMDU6MDM6NTQuMDAwMDAwKzAwMDAsYWQsYWRfcGxheWFibGUsMS42OCwzNS4yLDIwMTUtMDEtMDcsZ29vZ2xlLEdlcm1hbnkKMjQxLEdTUUpYSU9LWU1FQTcxMixHU1FKWElPS1lNRUE3MTItYnBka3N4bmosMjAxNS0wMS0wN1QwODo0MDowNC4wMDAwMDArMDAwMCwyMDE1LTAxLTA3VDA4OjQ0OjIyLjAwMDAwMCswMDAwLGFkLGFkX3N1cnZleSwwLjkxLDIwLjcsMjAxNS0wMS0wNyxnb29nbGUsR2VybWFueQoyNDIsR1NRSlhJT0tZTUVBNzEyLEdTUUpYSU9LWU1FQTcxMi1icGRrc3huaiwyMDE1LTAxLTA3VDA4OjQwOjA0LjAwMDAwMCswMDAwLDIwMTUtMDEtMDdUMDg6NDg6NDYuMDAwMDAwKzAwMDAsYWQsYWRfMTVzZWMsMC4xNSwyMC43LDIwMTUtMDEtMDcsZ29vZ2xlLEdlcm1hbnkKMjQzLEdTUUpYSU9LWU1FQTcxMixHU1FKWElPS1lNRUE3MTItYnBka3N4bmosMjAxNS0wMS0wN1QwODo0MDowNC4wMDAwMDArMDAwMCwyMDE1LTAxLTA3VDA4OjUzOjA0LjAwMDAwMCswMDAwLGlhcCxnb2xkMyw0LjQ5LDIwLjcsMjAxNS0wMS0wNyxnb29nbGUsR2VybWFueQoyNDQsR1NRSlhJT0tZTUVBNzEyLEdTUUpYSU9LWU1FQTcxMi1icGRrc3huaiwyMDE1LTAxLTA3VDA4OjQwOjA0LjAwMDAwMCswMDAwLDIwMTUtMDEtMDdUMDg6NTc6MjguMDAwMDAwKzAwMDAsYWQsYWRfMTVzZWMsMC40NDk1LDIwLjcsMjAxNS0wMS0wNyxnb29nbGUsR2VybWFueQoyNzAsRVFVRE5HWklDTUFLNDgyLEVRVUROR1pJQ01BSzQ4Mi00d29kaGlyeCwyMDE1LTAxLTA3VDE0OjIxOjIwLjAwMDAwMCswMDAwLDIwMTUtMDEtMDdUMTQ6MjY6NDQuMDAwMDAwKzAwMDAsaWFwLG9mZmVyMywxMy40OSwxOC40LDIwMTUtMDEtMDQsZ29vZ2xlLEdlcm1hbnkKMjcxLEVRVUROR1pJQ01BSzQ4MixFUVVETkdaSUNNQUs0ODItNHdvZGhpcngsMjAxNS0wMS0wN1QxNDoyMToyMC4wMDAwMDArMDAwMCwyMDE1LTAxLTA3VDE0OjM3OjUwLjAwMDAwMCswMDAwLGFkLGFkXzE1c2VjLDAuMzIsMTguNCwyMDE1LTAxLTA0LGdvb2dsZSxHZXJtYW55CjI3MixFUVVETkdaSUNNQUs0ODIsRVFVRE5HWklDTUFLNDgyLTR3b2RoaXJ4LDIwMTUtMDEtMDdUMTQ6MjE6MjAuMDAwMDAwKzAwMDAsMjAxNS0wMS0wN1QxNDozODo1MC4wMDAwMDArMDAwMCxhZCxhZF8zMHNlYywwLjczLDE4LjQsMjAxNS0wMS0wNCxnb29nbGUsR2VybWFueQoyNzMsRVFVRE5HWklDTUFLNDgyLEVRVUROR1pJQ01BSzQ4Mi00d29kaGlyeCwyMDE1LTAxLTA3VDE0OjIxOjIwLjAwMDAwMCswMDAwLDIwMTUtMDEtMDdUMTQ6Mzk6MjYuMDAwMDAwKzAwMDAsYWQsYWRfMTVzZWMsMC41NCwxOC40LDIwMTUtMDEtMDQsZ29vZ2xlLEdlcm1hbnkKMzI2LEVRVUROR1pJQ01BSzQ4MixFUVVETkdaSUNNQUs0ODIteTNkb3p3dnMsMjAxNS0wMS0wOFQwMjoyODozOC4wMDAwMDArMDAwMCwyMDE1LTAxLTA4VDAyOjMxOjMyLjAwMDAwMCswMDAwLGlhcCxnb2xkMyw0LjQ5LDI5LjMsMjAxNS0wMS0wNCxnb29nbGUsR2VybWFueQozMjcsRVFVRE5HWklDTUFLNDgyLEVRVUROR1pJQ01BSzQ4Mi15M2Rvend2cywyMDE1LTAxLTA4VDAyOjI4OjM4LjAwMDAwMCswMDAwLDIwMTUtMDEtMDhUMDI6Mzc6MDguMDAwMDAwKzAwMDAsaWFwLG9mZmVyMSw0LjQ5LDI5LjMsMjAxNS0wMS0wNCxnb29nbGUsR2VybWFueQozMjgsRVFVRE5HWklDTUFLNDgyLEVRVUROR1pJQ01BSzQ4Mi15M2Rvend2cywyMDE1LTAxLTA4VDAyOjI4OjM4LjAwMDAwMCswMDAwLDIwMTUtMDEtMDhUMDI6NDM6NTAuMDAwMDAwKzAwMDAsYWQsYWRfMTBzZWMsMC4xNSwyOS4zLDIwMTUtMDEtMDQsZ29vZ2xlLEdlcm1hbnkKMzI5LEVRVUROR1pJQ01BSzQ4MixFUVVETkdaSUNNQUs0ODIteTNkb3p3dnMsMjAxNS0wMS0wOFQwMjoyODozOC4wMDAwMDArMDAwMCwyMDE1LTAxLTA4VDAyOjQ0OjU2LjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMDksMjkuMywyMDE1LTAxLTA0LGdvb2dsZSxHZXJtYW55CjMzMCxFUVVETkdaSUNNQUs0ODIsRVFVRE5HWklDTUFLNDgyLXkzZG96d3ZzLDIwMTUtMDEtMDhUMDI6Mjg6MzguMDAwMDAwKzAwMDAsMjAxNS0wMS0wOFQwMjo0ODowMi4wMDAwMDArMDAwMCxhZCxhZF8zMHNlYywwLjkxLDI5LjMsMjAxNS0wMS0wNCxnb29nbGUsR2VybWFueQozMzEsRVFVRE5HWklDTUFLNDgyLEVRVUROR1pJQ01BSzQ4Mi15M2Rvend2cywyMDE1LTAxLTA4VDAyOjI4OjM4LjAwMDAwMCswMDAwLDIwMTUtMDEtMDhUMDI6NTU6MzguMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA2LDI5LjMsMjAxNS0wMS0wNCxnb29nbGUsR2VybWFueQozMzIsRVFVRE5HWklDTUFLNDgyLEVRVUROR1pJQ01BSzQ4Mi15M2Rvend2cywyMDE1LTAxLTA4VDAyOjI4OjM4LjAwMDAwMCswMDAwLDIwMTUtMDEtMDhUMDI6NTc6MzIuMDAwMDAwKzAwMDAsYWQsYWRfMTBzZWMsMC4xOCwyOS4zLDIwMTUtMDEtMDQsZ29vZ2xlLEdlcm1hbnkKMzc3LEdTUUpYSU9LWU1FQTcxMixHU1FKWElPS1lNRUE3MTItNW00dnM5a2MsMjAxNS0wMS0wOFQyMDowODo1Mi4wMDAwMDArMDAwMCwyMDE1LTAxLTA4VDIwOjExOjI4LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMiwzMS42LDIwMTUtMDEtMDcsZ29vZ2xlLEdlcm1hbnkKMzc4LEdTUUpYSU9LWU1FQTcxMixHU1FKWElPS1lNRUE3MTItNW00dnM5a2MsMjAxNS0wMS0wOFQyMDowODo1Mi4wMDAwMDArMDAwMCwyMDE1LTAxLTA4VDIwOjExOjU4LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4xMiwzMS42LDIwMTUtMDEtMDcsZ29vZ2xlLEdlcm1hbnkKMzc5LEdTUUpYSU9LWU1FQTcxMixHU1FKWElPS1lNRUE3MTItNW00dnM5a2MsMjAxNS0wMS0wOFQyMDowODo1Mi4wMDAwMDArMDAwMCwyMDE1LTAxLTA4VDIwOjIxOjUyLjAwMDAwMCswMDAwLGFkLGFkXzIwc2VjLDAuNjksMzEuNiwyMDE1LTAxLTA3LGdvb2dsZSxHZXJtYW55CjM4MCxHU1FKWElPS1lNRUE3MTIsR1NRSlhJT0tZTUVBNzEyLTVtNHZzOWtjLDIwMTUtMDEtMDhUMjA6MDg6NTIuMDAwMDAwKzAwMDAsMjAxNS0wMS0wOFQyMDoyNjoyOC4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjIsMzEuNiwyMDE1LTAxLTA3LGdvb2dsZSxHZXJtYW55CjM4MSxHU1FKWElPS1lNRUE3MTIsR1NRSlhJT0tZTUVBNzEyLTVtNHZzOWtjLDIwMTUtMDEtMDhUMjA6MDg6NTIuMDAwMDAwKzAwMDAsMjAxNS0wMS0wOFQyMDozMTo0Ni4wMDAwMDArMDAwMCxpYXAsZ2VtczIsOC45OSwzMS42LDIwMTUtMDEtMDcsZ29vZ2xlLEdlcm1hbnkKMzgyLEdTUUpYSU9LWU1FQTcxMixHU1FKWElPS1lNRUE3MTItNW00dnM5a2MsMjAxNS0wMS0wOFQyMDowODo1Mi4wMDAwMDArMDAwMCwyMDE1LTAxLTA4VDIwOjM1OjQwLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4xMSwzMS42LDIwMTUtMDEtMDcsZ29vZ2xlLEdlcm1hbnkKMzg5LEdTUUpYSU9LWU1FQTcxMixHU1FKWElPS1lNRUE3MTItcm51MXBmYmgsMjAxNS0wMS0wOVQwMDo1MjowMS4wMDAwMDArMDAwMCwyMDE1LTAxLTA5VDAwOjUyOjQ5LjAwMDAwMCswMDAwLGlhcCxnZW1zMywyMi40OSwyMi40LDIwMTUtMDEtMDcsZ29vZ2xlLEdlcm1hbnkKMzkwLEdTUUpYSU9LWU1FQTcxMixHU1FKWElPS1lNRUE3MTItcm51MXBmYmgsMjAxNS0wMS0wOVQwMDo1MjowMS4wMDAwMDArMDAwMCwyMDE1LTAxLTA5VDAwOjU4OjEzLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4xMSwyMi40LDIwMTUtMDEtMDcsZ29vZ2xlLEdlcm1hbnkKMzkxLEdTUUpYSU9LWU1FQTcxMixHU1FKWElPS1lNRUE3MTItcm51MXBmYmgsMjAxNS0wMS0wOVQwMDo1MjowMS4wMDAwMDArMDAwMCwyMDE1LTAxLTA5VDAxOjAzOjQzLjAwMDAwMCswMDAwLGFkLGFkXzE1c2VjLDAuNDksMjIuNCwyMDE1LTAxLTA3LGdvb2dsZSxHZXJtYW55CjM5MixHU1FKWElPS1lNRUE3MTIsR1NRSlhJT0tZTUVBNzEyLXJudTFwZmJoLDIwMTUtMDEtMDlUMDA6NTI6MDEuMDAwMDAwKzAwMDAsMjAxNS0wMS0wOVQwMTowODozNy4wMDAwMDArMDAwMCxhZCxhZF9wbGF5YWJsZSwwLjk2LDIyLjQsMjAxNS0wMS0wNyxnb29nbGUsR2VybWFueQozOTUsR1NRSlhJT0tZTUVBNzEyLEdTUUpYSU9LWU1FQTcxMi15dWdmNmFkaCwyMDE1LTAxLTA5VDAxOjU4OjUyLjAwMDAwMCswMDAwLDIwMTUtMDEtMDlUMDI6MTE6NTIuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA3LDI3LjcsMjAxNS0wMS0wNyxnb29nbGUsR2VybWFueQozOTYsR1NRSlhJT0tZTUVBNzEyLEdTUUpYSU9LWU1FQTcxMi15dWdmNmFkaCwyMDE1LTAxLTA5VDAxOjU4OjUyLjAwMDAwMCswMDAwLDIwMTUtMDEtMDlUMDI6MjE6MjIuMDAwMDAwKzAwMDAsaWFwLGdvbGQyLDEuNzksMjcuNywyMDE1LTAxLTA3LGdvb2dsZSxHZXJtYW55CjM5NyxHU1FKWElPS1lNRUE3MTIsR1NRSlhJT0tZTUVBNzEyLXl1Z2Y2YWRoLDIwMTUtMDEtMDlUMDE6NTg6NTIuMDAwMDAwKzAwMDAsMjAxNS0wMS0wOVQwMjoyMjo1OC4wMDAwMDArMDAwMCxpYXAsZ29sZDIsMS43OSwyNy43LDIwMTUtMDEtMDcsZ29vZ2xlLEdlcm1hbnkKMzk4LEdTUUpYSU9LWU1FQTcxMixHU1FKWElPS1lNRUE3MTIteXVnZjZhZGgsMjAxNS0wMS0wOVQwMTo1ODo1Mi4wMDAwMDArMDAwMCwyMDE1LTAxLTA5VDAyOjIzOjU4LjAwMDAwMCswMDAwLGFkLGFkXzMwc2VjLDAuODIsMjcuNywyMDE1LTAxLTA3LGdvb2dsZSxHZXJtYW55CjQxMCxFUVVETkdaSUNNQUs0ODIsRVFVRE5HWklDTUFLNDgyLW40ZWpkZ3Z3LDIwMTUtMDEtMDlUMDc6MTE6MzUuMDAwMDAwKzAwMDAsMjAxNS0wMS0wOVQwNzoxMjo1OS4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjE5LDYuOCwyMDE1LTAxLTA0LGdvb2dsZSxHZXJtYW55CjQxNyxFUVVETkdaSUNNQUs0ODIsRVFVRE5HWklDTUFLNDgyLXVwdjNkODVoLDIwMTUtMDEtMDlUMDg6MjI6MDAuMDAwMDAwKzAwMDAsMjAxNS0wMS0wOVQwODoyNjo1NC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDIsMzguOSwyMDE1LTAxLTA0LGdvb2dsZSxHZXJtYW55CjQxOCxFUVVETkdaSUNNQUs0ODIsRVFVRE5HWklDTUFLNDgyLXVwdjNkODVoLDIwMTUtMDEtMDlUMDg6MjI6MDAuMDAwMDAwKzAwMDAsMjAxNS0wMS0wOVQwODoyOTo0Mi4wMDAwMDArMDAwMCxhZCxhZF9zdXJ2ZXksMC44NywzOC45LDIwMTUtMDEtMDQsZ29vZ2xlLEdlcm1hbnkKNDIzLE1QVVhEWUJKVFpDRjQ4NixNUFVYRFlCSlRaQ0Y0ODYtd2R2bGszOGEsMjAxNS0wMS0wOVQxMjowMjo0OC4wMDAwMDArMDAwMCwyMDE1LTAxLTA5VDEyOjA5OjEyLjAwMDAwMCswMDAwLGFkLGFkX3N1cnZleSwwLjc4LDE1LjIsMjAxNS0wMS0wOSxvcmdhbmljLEdlcm1hbnkKNDI0LE1QVVhEWUJKVFpDRjQ4NixNUFVYRFlCSlRaQ0Y0ODYtd2R2bGszOGEsMjAxNS0wMS0wOVQxMjowMjo0OC4wMDAwMDArMDAwMCwyMDE1LTAxLTA5VDEyOjExOjA2LjAwMDAwMCswMDAwLGFkLGFkXzE1c2VjLDAuMjIsMTUuMiwyMDE1LTAxLTA5LG9yZ2FuaWMsR2VybWFueQo0MjUsTVBVWERZQkpUWkNGNDg2LE1QVVhEWUJKVFpDRjQ4Ni13ZHZsazM4YSwyMDE1LTAxLTA5VDEyOjAyOjQ4LjAwMDAwMCswMDAwLDIwMTUtMDEtMDlUMTI6MTc6MDAuMDAwMDAwKzAwMDAsYWQsYWRfMTVzZWMsMC4yMjgsMTUuMiwyMDE1LTAxLTA5LG9yZ2FuaWMsR2VybWFueQo0NTMsRVFVRE5HWklDTUFLNDgyLEVRVUROR1pJQ01BSzQ4Mi12bmw5cDh3eiwyMDE1LTAxLTA5VDIxOjIzOjAxLjAwMDAwMCswMDAwLDIwMTUtMDEtMDlUMjE6MzM6MzcuMDAwMDAwKzAwMDAsaWFwLG9mZmVyMywxMy40OSwzMy45LDIwMTUtMDEtMDQsZ29vZ2xlLEdlcm1hbnkKNDU0LEVRVUROR1pJQ01BSzQ4MixFUVVETkdaSUNNQUs0ODItdm5sOXA4d3osMjAxNS0wMS0wOVQyMToyMzowMS4wMDAwMDArMDAwMCwyMDE1LTAxLTA5VDIxOjM0OjAxLjAwMDAwMCswMDAwLGFkLGFkXzIwc2VjLDAuNjEsMzMuOSwyMDE1LTAxLTA0LGdvb2dsZSxHZXJtYW55CjQ1NSxFUVVETkdaSUNNQUs0ODIsRVFVRE5HWklDTUFLNDgyLXZubDlwOHd6LDIwMTUtMDEtMDlUMjE6MjM6MDEuMDAwMDAwKzAwMDAsMjAxNS0wMS0wOVQyMTozNTowMS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMTIsMzMuOSwyMDE1LTAxLTA0LGdvb2dsZSxHZXJtYW55CjQ1NixFUVVETkdaSUNNQUs0ODIsRVFVRE5HWklDTUFLNDgyLXZubDlwOHd6LDIwMTUtMDEtMDlUMjE6MjM6MDEuMDAwMDAwKzAwMDAsMjAxNS0wMS0wOVQyMTozNzozMS4wMDAwMDArMDAwMCxhZCxhZF9zdXJ2ZXksMC41NiwzMy45LDIwMTUtMDEtMDQsZ29vZ2xlLEdlcm1hbnkKNDU3LEVRVUROR1pJQ01BSzQ4MixFUVVETkdaSUNNQUs0ODItdm5sOXA4d3osMjAxNS0wMS0wOVQyMToyMzowMS4wMDAwMDArMDAwMCwyMDE1LTAxLTA5VDIxOjQyOjE5LjAwMDAwMCswMDAwLGFkLGFkXzIwc2VjLDAuNjQ5LDMzLjksMjAxNS0wMS0wNCxnb29nbGUsR2VybWFueQo0NTgsRVFVRE5HWklDTUFLNDgyLEVRVUROR1pJQ01BSzQ4Mi12bmw5cDh3eiwyMDE1LTAxLTA5VDIxOjIzOjAxLjAwMDAwMCswMDAwLDIwMTUtMDEtMDlUMjE6NTU6MTkuMDAwMDAwKzAwMDAsYWQsYWRfcGxheWFibGUsMC43MSwzMy45LDIwMTUtMDEtMDQsZ29vZ2xlLEdlcm1hbnkKNDY5LEdTUUpYSU9LWU1FQTcxMixHU1FKWElPS1lNRUE3MTItM3hxN3dnMWwsMjAxNS0wMS0xMFQwMDo1NzozMS4wMDAwMDArMDAwMCwyMDE1LTAxLTEwVDAwOjU5OjA3LjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMDgsMzkuOCwyMDE1LTAxLTA3LGdvb2dsZSxHZXJtYW55CjQ3MCxHU1FKWElPS1lNRUE3MTIsR1NRSlhJT0tZTUVBNzEyLTN4cTd3ZzFsLDIwMTUtMDEtMTBUMDA6NTc6MzEuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMFQwMTowNzoxMy4wMDAwMDArMDAwMCxpYXAsb2ZmZXIyLDguOTksMzkuOCwyMDE1LTAxLTA3LGdvb2dsZSxHZXJtYW55CjQ3MSxHU1FKWElPS1lNRUE3MTIsR1NRSlhJT0tZTUVBNzEyLTN4cTd3ZzFsLDIwMTUtMDEtMTBUMDA6NTc6MzEuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMFQwMToyODozNy4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjA4LDM5LjgsMjAxNS0wMS0wNyxnb29nbGUsR2VybWFueQo1MjUsRVFVRE5HWklDTUFLNDgyLEVRVUROR1pJQ01BSzQ4Mi1pNWtyZzluZiwyMDE1LTAxLTEwVDE0OjEyOjA5LjAwMDAwMCswMDAwLDIwMTUtMDEtMTBUMTQ6MTk6MzkuMDAwMDAwKzAwMDAsaWFwLG9mZmVyMywxMy40OTEsMTAuNiwyMDE1LTAxLTA0LGdvb2dsZSxHZXJtYW55CjUyNixFUVVETkdaSUNNQUs0ODIsRVFVRE5HWklDTUFLNDgyLWk1a3JnOW5mLDIwMTUtMDEtMTBUMTQ6MTI6MDkuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMFQxNDoyMDowOS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDMsMTAuNiwyMDE1LTAxLTA0LGdvb2dsZSxHZXJtYW55CjU5MyxHU1FKWElPS1lNRUE3MTIsR1NRSlhJT0tZTUVBNzEyLWk1N3Y0ZmJ4LDIwMTUtMDEtMTFUMDM6MDg6NDYuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMVQwMzoxMzoyMi4wMDAwMDArMDAwMCxpYXAsZ2VtczEsMi4yNCwxMC44LDIwMTUtMDEtMDcsZ29vZ2xlLEdlcm1hbnkKNTk0LEdTUUpYSU9LWU1FQTcxMixHU1FKWElPS1lNRUE3MTItaTU3djRmYngsMjAxNS0wMS0xMVQwMzowODo0Ni4wMDAwMDArMDAwMCwyMDE1LTAxLTExVDAzOjE2OjA0LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4xMSwxMC44LDIwMTUtMDEtMDcsZ29vZ2xlLEdlcm1hbnkKNTk1LEdTUUpYSU9LWU1FQTcxMixHU1FKWElPS1lNRUE3MTItaTU3djRmYngsMjAxNS0wMS0xMVQwMzowODo0Ni4wMDAwMDArMDAwMCwyMDE1LTAxLTExVDAzOjE3OjIyLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wOCwxMC44LDIwMTUtMDEtMDcsZ29vZ2xlLEdlcm1hbnkKNjAwLEdTUUpYSU9LWU1FQTcxMixHU1FKWElPS1lNRUE3MTItbHlrYXN4bzcsMjAxNS0wMS0xMVQwNToxNjo0Ni4wMDAwMDArMDAwMCwyMDE1LTAxLTExVDA1OjE2OjUyLjAwMDAwMCswMDAwLGFkLGFkXzIwc2VjLDEuMSwyMC4xLDIwMTUtMDEtMDcsZ29vZ2xlLEdlcm1hbnkKNjAxLEdTUUpYSU9LWU1FQTcxMixHU1FKWElPS1lNRUE3MTItbHlrYXN4bzcsMjAxNS0wMS0xMVQwNToxNjo0Ni4wMDAwMDArMDAwMCwyMDE1LTAxLTExVDA1OjE3OjM0LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNSwyMC4xLDIwMTUtMDEtMDcsZ29vZ2xlLEdlcm1hbnkKNjAyLEdTUUpYSU9LWU1FQTcxMixHU1FKWElPS1lNRUE3MTItbHlrYXN4bzcsMjAxNS0wMS0xMVQwNToxNjo0Ni4wMDAwMDArMDAwMCwyMDE1LTAxLTExVDA1OjI0OjQwLjAwMDAwMCswMDAwLGFkLGFkX3BsYXlhYmxlLDAuNzUsMjAuMSwyMDE1LTAxLTA3LGdvb2dsZSxHZXJtYW55CjYwMyxHU1FKWElPS1lNRUE3MTIsR1NRSlhJT0tZTUVBNzEyLWx5a2FzeG83LDIwMTUtMDEtMTFUMDU6MTY6NDYuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMVQwNToyNTo1OC4wMDAwMDArMDAwMCxhZCxhZF9zdXJ2ZXksMC44OCwyMC4xLDIwMTUtMDEtMDcsZ29vZ2xlLEdlcm1hbnkKNjQ5LEdTUUpYSU9LWU1FQTcxMixHU1FKWElPS1lNRUE3MTItdm1sZmpic2MsMjAxNS0wMS0xMVQxNDoxMjoxOC4wMDAwMDArMDAwMCwyMDE1LTAxLTExVDE0OjI1OjA2LjAwMDAwMCswMDAwLGFkLGFkXzE1c2VjLDAuMjUsMzEuNCwyMDE1LTAxLTA3LGdvb2dsZSxHZXJtYW55CjY1MCxHU1FKWElPS1lNRUE3MTIsR1NRSlhJT0tZTUVBNzEyLXZtbGZqYnNjLDIwMTUtMDEtMTFUMTQ6MTI6MTguMDAwMDAwKzAwMDAsMjAxNS0wMS0xMVQxNDozMDowMC4wMDAwMDArMDAwMCxhZCxhZF8xNXNlYywwLjE5LDMxLjQsMjAxNS0wMS0wNyxnb29nbGUsR2VybWFueQo2NTEsR1NRSlhJT0tZTUVBNzEyLEdTUUpYSU9LWU1FQTcxMi12bWxmamJzYywyMDE1LTAxLTExVDE0OjEyOjE4LjAwMDAwMCswMDAwLDIwMTUtMDEtMTFUMTQ6MzM6NDguMDAwMDAwKzAwMDAsaWFwLG9mZmVyMSw0LjQ5LDMxLjQsMjAxNS0wMS0wNyxnb29nbGUsR2VybWFueQo2NTIsR1NRSlhJT0tZTUVBNzEyLEdTUUpYSU9LWU1FQTcxMi12bWxmamJzYywyMDE1LTAxLTExVDE0OjEyOjE4LjAwMDAwMCswMDAwLDIwMTUtMDEtMTFUMTQ6Mzk6MjQuMDAwMDAwKzAwMDAsYWQsYWRfMTBzZWMsMC4xMywzMS40LDIwMTUtMDEtMDcsZ29vZ2xlLEdlcm1hbnkKNjUzLEdTUUpYSU9LWU1FQTcxMixHU1FKWElPS1lNRUE3MTItdm1sZmpic2MsMjAxNS0wMS0xMVQxNDoxMjoxOC4wMDAwMDArMDAwMCwyMDE1LTAxLTExVDE0OjQxOjM2LjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMTUsMzEuNCwyMDE1LTAxLTA3LGdvb2dsZSxHZXJtYW55CjY2NCxFUVVETkdaSUNNQUs0ODIsRVFVRE5HWklDTUFLNDgyLWt3eWk0ZHN2LDIwMTUtMDEtMTFUMTY6MzE6NTAuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMVQxNjozNDoyNi4wMDAwMDArMDAwMCxpYXAsb2ZmZXI0LDE3Ljk5LDIxLjIsMjAxNS0wMS0wNCxnb29nbGUsR2VybWFueQo2NjUsRVFVRE5HWklDTUFLNDgyLEVRVUROR1pJQ01BSzQ4Mi1rd3lpNGRzdiwyMDE1LTAxLTExVDE2OjMxOjUwLjAwMDAwMCswMDAwLDIwMTUtMDEtMTFUMTY6Mzg6NTYuMDAwMDAwKzAwMDAsYWQsYWRfMTBzZWMsMC4yMywyMS4yLDIwMTUtMDEtMDQsZ29vZ2xlLEdlcm1hbnkKNjY2LEVRVUROR1pJQ01BSzQ4MixFUVVETkdaSUNNQUs0ODIta3d5aTRkc3YsMjAxNS0wMS0xMVQxNjozMTo1MC4wMDAwMDArMDAwMCwyMDE1LTAxLTExVDE2OjQwOjU2LjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMTIsMjEuMiwyMDE1LTAxLTA0LGdvb2dsZSxHZXJtYW55CjY2NyxFUVVETkdaSUNNQUs0ODIsRVFVRE5HWklDTUFLNDgyLWt3eWk0ZHN2LDIwMTUtMDEtMTFUMTY6MzE6NTAuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMVQxNjo0NDoyMC4wMDAwMDArMDAwMCxhZCxhZF9zdXJ2ZXksMC44NSwyMS4yLDIwMTUtMDEtMDQsZ29vZ2xlLEdlcm1hbnkKNjY4LEVRVUROR1pJQ01BSzQ4MixFUVVETkdaSUNNQUs0ODIta3d5aTRkc3YsMjAxNS0wMS0xMVQxNjozMTo1MC4wMDAwMDArMDAwMCwyMDE1LTAxLTExVDE2OjQ5OjI2LjAwMDAwMCswMDAwLGlhcCxnb2xkMyw0LjQ5LDIxLjIsMjAxNS0wMS0wNCxnb29nbGUsR2VybWFueQo2OTUsRVFVRE5HWklDTUFLNDgyLEVRVUROR1pJQ01BSzQ4Mi1oeGoxdzY0YiwyMDE1LTAxLTExVDIyOjU4OjE3LjAwMDAwMCswMDAwLDIwMTUtMDEtMTFUMjM6MDk6NTMuMDAwMDAwKzAwMDAsYWQsYWRfMTVzZWMsMC4yNSwxOS40LDIwMTUtMDEtMDQsZ29vZ2xlLEdlcm1hbnkKNjk2LEVRVUROR1pJQ01BSzQ4MixFUVVETkdaSUNNQUs0ODItaHhqMXc2NGIsMjAxNS0wMS0xMVQyMjo1ODoxNy4wMDAwMDArMDAwMCwyMDE1LTAxLTExVDIzOjEwOjE3LjAwMDAwMCswMDAwLGlhcCxnb2xkMiwxLjc5LDE5LjQsMjAxNS0wMS0wNCxnb29nbGUsR2VybWFueQo2OTcsRVFVRE5HWklDTUFLNDgyLEVRVUROR1pJQ01BSzQ4Mi1oeGoxdzY0YiwyMDE1LTAxLTExVDIyOjU4OjE3LjAwMDAwMCswMDAwLDIwMTUtMDEtMTFUMjM6MTI6MjMuMDAwMDAwKzAwMDAsYWQsYWRfMTBzZWMsMC4wNywxOS40LDIwMTUtMDEtMDQsZ29vZ2xlLEdlcm1hbnkKNjk5LEdTUUpYSU9LWU1FQTcxMixHU1FKWElPS1lNRUE3MTItMnF4bnRzd2MsMjAxNS0wMS0xMlQwMDoyNToxMy4wMDAwMDArMDAwMCwyMDE1LTAxLTEyVDAwOjI1OjMxLjAwMDAwMCswMDAwLGFkLGFkXzE1c2VjLDAuNCwzMy4zLDIwMTUtMDEtMDcsZ29vZ2xlLEdlcm1hbnkKNzAwLEdTUUpYSU9LWU1FQTcxMixHU1FKWElPS1lNRUE3MTItMnF4bnRzd2MsMjAxNS0wMS0xMlQwMDoyNToxMy4wMDAwMDArMDAwMCwyMDE1LTAxLTEyVDAwOjQ2OjU1LjAwMDAwMCswMDAwLGlhcCxvZmZlcjEsNC40OSwzMy4zLDIwMTUtMDEtMDcsZ29vZ2xlLEdlcm1hbnkKNzAxLEdTUUpYSU9LWU1FQTcxMixHU1FKWElPS1lNRUE3MTItMnF4bnRzd2MsMjAxNS0wMS0xMlQwMDoyNToxMy4wMDAwMDArMDAwMCwyMDE1LTAxLTEyVDAwOjQ2OjU1LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNSwzMy4zLDIwMTUtMDEtMDcsZ29vZ2xlLEdlcm1hbnkKNzQ4LEVRVUROR1pJQ01BSzQ4MixFUVVETkdaSUNNQUs0ODItd3JkN3FzbWIsMjAxNS0wMS0xMlQxMDowNTo1OC4wMDAwMDArMDAwMCwyMDE1LTAxLTEyVDEwOjI0OjEwLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4xMSwyMy4yLDIwMTUtMDEtMDQsZ29vZ2xlLEdlcm1hbnkKNzU2LEdTUUpYSU9LWU1FQTcxMixHU1FKWElPS1lNRUE3MTItOWkycms2YWMsMjAxNS0wMS0xMlQxMzozOTowMC4wMDAwMDArMDAwMCwyMDE1LTAxLTEyVDEzOjQxOjE4LjAwMDAwMCswMDAwLGlhcCxvZmZlcjQsMTcuOTkxLDE1LjEsMjAxNS0wMS0wNyxnb29nbGUsR2VybWFueQo3NTcsR1NRSlhJT0tZTUVBNzEyLEdTUUpYSU9LWU1FQTcxMi05aTJyazZhYywyMDE1LTAxLTEyVDEzOjM5OjAwLjAwMDAwMCswMDAwLDIwMTUtMDEtMTJUMTM6NDI6NTQuMDAwMDAwKzAwMDAsaWFwLGdvbGQ0LDE3Ljk5MSwxNS4xLDIwMTUtMDEtMDcsZ29vZ2xlLEdlcm1hbnkKNzU4LEdTUUpYSU9LWU1FQTcxMixHU1FKWElPS1lNRUE3MTItOWkycms2YWMsMjAxNS0wMS0xMlQxMzozOTowMC4wMDAwMDArMDAwMCwyMDE1LTAxLTEyVDEzOjQ1OjMwLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wNSwxNS4xLDIwMTUtMDEtMDcsZ29vZ2xlLEdlcm1hbnkKNzYxLEVRVUROR1pJQ01BSzQ4MixFUVVETkdaSUNNQUs0ODItYXplaW91cTIsMjAxNS0wMS0xMlQxNToyMToyNy4wMDAwMDArMDAwMCwyMDE1LTAxLTEyVDE1OjM0OjA5LjAwMDAwMCswMDAwLGFkLGFkXzMwc2VjLDAuODMsMzguNSwyMDE1LTAxLTA0LGdvb2dsZSxHZXJtYW55Cjc2MixFUVVETkdaSUNNQUs0ODIsRVFVRE5HWklDTUFLNDgyLWF6ZWlvdXEyLDIwMTUtMDEtMTJUMTU6MjE6MjcuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMlQxNTozNzowOS4wMDAwMDArMDAwMCxhZCxhZF8xNXNlYywwLjM3LDM4LjUsMjAxNS0wMS0wNCxnb29nbGUsR2VybWFueQo3NjMsR1NRSlhJT0tZTUVBNzEyLEdTUUpYSU9LWU1FQTcxMi03dzJiNWt5diwyMDE1LTAxLTEyVDE2OjI0OjA5LjAwMDAwMCswMDAwLDIwMTUtMDEtMTJUMTY6MzA6NTEuMDAwMDAwKzAwMDAsYWQsYWRfc3VydmV5LDAuNjksMTIuOSwyMDE1LTAxLTA3LGdvb2dsZSxHZXJtYW55Cjc2NCxHU1FKWElPS1lNRUE3MTIsR1NRSlhJT0tZTUVBNzEyLTd3MmI1a3l2LDIwMTUtMDEtMTJUMTY6MjQ6MDkuMDAwMDAwKzAwMDAsMjAxNS0wMS0xMlQxNjozMzowOS4wMDAwMDArMDAwMCxhZCxhZF8xNXNlYywwLjQ1LDEyLjksMjAxNS0wMS0wNyxnb29nbGUsR2VybWFueQo4OTcsR1NRSlhJT0tZTUVBNzEyLEdTUUpYSU9LWU1FQTcxMi0zcTgydmtnOSwyMDE1LTAxLTEzVDE5OjE2OjUxLjAwMDAwMCswMDAwLDIwMTUtMDEtMTNUMTk6Mjc6MDkuMDAwMDAwKzAwMDAsYWQsYWRfMzBzZWMsMC43NCwzNC4wLDIwMTUtMDEtMDcsZ29vZ2xlLEdlcm1hbnkKODk4LEdTUUpYSU9LWU1FQTcxMixHU1FKWElPS1lNRUE3MTItM3E4MnZrZzksMjAxNS0wMS0xM1QxOToxNjo1MS4wMDAwMDArMDAwMCwyMDE1LTAxLTEzVDE5OjI3OjI3LjAwMDAwMCswMDAwLGFkLGFkXzE1c2VjLDAuNTcsMzQuMCwyMDE1LTAxLTA3LGdvb2dsZSxHZXJtYW55Cjg5OSxHU1FKWElPS1lNRUE3MTIsR1NRSlhJT0tZTUVBNzEyLTNxODJ2a2c5LDIwMTUtMDEtMTNUMTk6MTY6NTEuMDAwMDAwKzAwMDAsMjAxNS0wMS0xM1QxOTo0MToxNS4wMDAwMDArMDAwMCxhZCxhZF8yMHNlYywwLjY1LDM0LjAsMjAxNS0wMS0wNyxnb29nbGUsR2VybWFueQo5MDAsR1NRSlhJT0tZTUVBNzEyLEdTUUpYSU9LWU1FQTcxMi0zcTgydmtnOSwyMDE1LTAxLTEzVDE5OjE2OjUxLjAwMDAwMCswMDAwLDIwMTUtMDEtMTNUMTk6NDc6MzMuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA2LDM0LjAsMjAxNS0wMS0wNyxnb29nbGUsR2VybWFueQo5MDEsR1NRSlhJT0tZTUVBNzEyLEdTUUpYSU9LWU1FQTcxMi10OThhYzdvdSwyMDE1LTAxLTEzVDIwOjM1OjQ5LjAwMDAwMCswMDAwLDIwMTUtMDEtMTNUMjA6MzY6MjUuMDAwMDAwKzAwMDAsYWQsYWRfc3VydmV5LDEuMTksMTIuMiwyMDE1LTAxLTA3LGdvb2dsZSxHZXJtYW55CjkwMixHU1FKWElPS1lNRUE3MTIsR1NRSlhJT0tZTUVBNzEyLXQ5OGFjN291LDIwMTUtMDEtMTNUMjA6MzU6NDkuMDAwMDAwKzAwMDAsMjAxNS0wMS0xM1QyMDozODowMS4wMDAwMDArMDAwMCxhZCxhZF8xNXNlYywwLjM0OTcsMTIuMiwyMDE1LTAxLTA3LGdvb2dsZSxHZXJtYW55CjkwMyxHU1FKWElPS1lNRUE3MTIsR1NRSlhJT0tZTUVBNzEyLXQ5OGFjN291LDIwMTUtMDEtMTNUMjA6MzU6NDkuMDAwMDAwKzAwMDAsMjAxNS0wMS0xM1QyMDo0NjowMS4wMDAwMDArMDAwMCxpYXAsb2ZmZXI1LDI2LjA5LDEyLjIsMjAxNS0wMS0wNyxnb29nbGUsR2VybWFueQo5MjcsR1NRSlhJT0tZTUVBNzEyLEdTUUpYSU9LWU1FQTcxMi04ZjUxNGtkYywyMDE1LTAxLTE0VDAwOjU5OjEwLjAwMDAwMCswMDAwLDIwMTUtMDEtMTRUMDA6NTk6NDAuMDAwMDAwKzAwMDAsaWFwLGdlbXMxLDIuMjQsOC40LDIwMTUtMDEtMDcsZ29vZ2xlLEdlcm1hbnkKOTI4LEdTUUpYSU9LWU1FQTcxMixHU1FKWElPS1lNRUE3MTItOGY1MTRrZGMsMjAxNS0wMS0xNFQwMDo1OToxMC4wMDAwMDArMDAwMCwyMDE1LTAxLTE0VDAxOjAwOjA0LjAwMDAwMCswMDAwLGFkLGFkXzMwc2VjLDEuMTgsOC40LDIwMTUtMDEtMDcsZ29vZ2xlLEdlcm1hbnkKOTQxLE1UQ0lXS09WQVNZUDkyNSxNVENJV0tPVkFTWVA5MjUtNHpxdWs1ZnIsMjAxNS0wMS0xNFQwMjo0NToyMC4wMDAwMDArMDAwMCwyMDE1LTAxLTE0VDAyOjQ4OjI2LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4xMSwxMS41LDIwMTUtMDEtMTQsb3JnYW5pYyxHZXJtYW55Cjk0MixNVENJV0tPVkFTWVA5MjUsTVRDSVdLT1ZBU1lQOTI1LTR6cXVrNWZyLDIwMTUtMDEtMTRUMDI6NDU6MjAuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNFQwMjo1MzoyNi4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDIsMTEuNSwyMDE1LTAxLTE0LG9yZ2FuaWMsR2VybWFueQo5NDMsTVRDSVdLT1ZBU1lQOTI1LE1UQ0lXS09WQVNZUDkyNS00enF1azVmciwyMDE1LTAxLTE0VDAyOjQ1OjIwLjAwMDAwMCswMDAwLDIwMTUtMDEtMTRUMDI6NTY6NTAuMDAwMDAwKzAwMDAsaWFwLGdvbGQyLDEuNzksMTEuNSwyMDE1LTAxLTE0LG9yZ2FuaWMsR2VybWFueQo5ODIsR1NRSlhJT0tZTUVBNzEyLEdTUUpYSU9LWU1FQTcxMi1vYXliMzZkYywyMDE1LTAxLTE0VDA3OjQzOjM4LjAwMDAwMCswMDAwLDIwMTUtMDEtMTRUMDc6NDU6MjYuMDAwMDAwKzAwMDAsYWQsYWRfMTVzZWMsMC4yNiwyMy40LDIwMTUtMDEtMDcsZ29vZ2xlLEdlcm1hbnkKOTgzLEdTUUpYSU9LWU1FQTcxMixHU1FKWElPS1lNRUE3MTItb2F5YjM2ZGMsMjAxNS0wMS0xNFQwNzo0MzozOC4wMDAwMDArMDAwMCwyMDE1LTAxLTE0VDA3OjU3OjE0LjAwMDAwMCswMDAwLGFkLGFkX3N1cnZleSwwLjcsMjMuNCwyMDE1LTAxLTA3LGdvb2dsZSxHZXJtYW55CjEwMDIsTVRDSVdLT1ZBU1lQOTI1LE1UQ0lXS09WQVNZUDkyNS04YTZ4ZnFvaywyMDE1LTAxLTE0VDEwOjE4OjMyLjAwMDAwMCswMDAwLDIwMTUtMDEtMTRUMTA6MjM6MjYuMDAwMDAwKzAwMDAsaWFwLG9mZmVyNCwxNy45OSwxNi4zLDIwMTUtMDEtMTQsb3JnYW5pYyxHZXJtYW55CjEwMDMsTVRDSVdLT1ZBU1lQOTI1LE1UQ0lXS09WQVNZUDkyNS04YTZ4ZnFvaywyMDE1LTAxLTE0VDEwOjE4OjMyLjAwMDAwMCswMDAwLDIwMTUtMDEtMTRUMTA6Mjc6MjYuMDAwMDAwKzAwMDAsYWQsYWRfMTVzZWMsMC4yOSwxNi4zLDIwMTUtMDEtMTQsb3JnYW5pYyxHZXJtYW55CjEwMDQsTVRDSVdLT1ZBU1lQOTI1LE1UQ0lXS09WQVNZUDkyNS04YTZ4ZnFvaywyMDE1LTAxLTE0VDEwOjE4OjMyLjAwMDAwMCswMDAwLDIwMTUtMDEtMTRUMTA6Mjk6NTYuMDAwMDAwKzAwMDAsYWQsYWRfcGxheWFibGUsMC42NiwxNi4zLDIwMTUtMDEtMTQsb3JnYW5pYyxHZXJtYW55CjEwMDUsTVRDSVdLT1ZBU1lQOTI1LE1UQ0lXS09WQVNZUDkyNS04YTZ4ZnFvaywyMDE1LTAxLTE0VDEwOjE4OjMyLjAwMDAwMCswMDAwLDIwMTUtMDEtMTRUMTA6MzE6MjAuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA0LDE2LjMsMjAxNS0wMS0xNCxvcmdhbmljLEdlcm1hbnkKMTAwNixNVENJV0tPVkFTWVA5MjUsTVRDSVdLT1ZBU1lQOTI1LThhNnhmcW9rLDIwMTUtMDEtMTRUMTA6MTg6MzIuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNFQxMDozMjowOC4wMDAwMDArMDAwMCxpYXAsb2ZmZXIyLDguOTksMTYuMywyMDE1LTAxLTE0LG9yZ2FuaWMsR2VybWFueQoxMDc5LE1UQ0lXS09WQVNZUDkyNSxNVENJV0tPVkFTWVA5MjUtOWU2YXNsaDIsMjAxNS0wMS0xNVQwMjoxNToxMS4wMDAwMDArMDAwMCwyMDE1LTAxLTE1VDAyOjE3OjE3LjAwMDAwMCswMDAwLGFkLGFkXzIwc2VjLDAuMzUsMzUuMywyMDE1LTAxLTE0LG9yZ2FuaWMsR2VybWFueQoxMDgwLE1UQ0lXS09WQVNZUDkyNSxNVENJV0tPVkFTWVA5MjUtOWU2YXNsaDIsMjAxNS0wMS0xNVQwMjoxNToxMS4wMDAwMDArMDAwMCwyMDE1LTAxLTE1VDAyOjI2OjQxLjAwMDAwMCswMDAwLGlhcCxnb2xkMyw0LjQ5LDM1LjMsMjAxNS0wMS0xNCxvcmdhbmljLEdlcm1hbnkKMTA4MSxNVENJV0tPVkFTWVA5MjUsTVRDSVdLT1ZBU1lQOTI1LTllNmFzbGgyLDIwMTUtMDEtMTVUMDI6MTU6MTEuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNVQwMjozMToxNy4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDMsMzUuMywyMDE1LTAxLTE0LG9yZ2FuaWMsR2VybWFueQoxMDgyLE1UQ0lXS09WQVNZUDkyNSxNVENJV0tPVkFTWVA5MjUtOWU2YXNsaDIsMjAxNS0wMS0xNVQwMjoxNToxMS4wMDAwMDArMDAwMCwyMDE1LTAxLTE1VDAyOjMyOjExLjAwMDAwMCswMDAwLGlhcCxnZW1zMiw4Ljk5LDM1LjMsMjAxNS0wMS0xNCxvcmdhbmljLEdlcm1hbnkKMTA4MyxNVENJV0tPVkFTWVA5MjUsTVRDSVdLT1ZBU1lQOTI1LTllNmFzbGgyLDIwMTUtMDEtMTVUMDI6MTU6MTEuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNVQwMjozMjo1OS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDYsMzUuMywyMDE1LTAxLTE0LG9yZ2FuaWMsR2VybWFueQoxMDg0LE1UQ0lXS09WQVNZUDkyNSxNVENJV0tPVkFTWVA5MjUtOWU2YXNsaDIsMjAxNS0wMS0xNVQwMjoxNToxMS4wMDAwMDArMDAwMCwyMDE1LTAxLTE1VDAyOjQ0OjU5LjAwMDAwMCswMDAwLGFkLGFkXzE1c2VjLDAuNDQsMzUuMywyMDE1LTAxLTE0LG9yZ2FuaWMsR2VybWFueQoxMTMzLEdTUUpYSU9LWU1FQTcxMixHU1FKWElPS1lNRUE3MTItczdrZTVicjgsMjAxNS0wMS0xNVQwOToyMjozOS4wMDAwMDArMDAwMCwyMDE1LTAxLTE1VDA5OjMxOjE1LjAwMDAwMCswMDAwLGFkLGFkX3N1cnZleSwxLjI0LDE2LjMsMjAxNS0wMS0wNyxnb29nbGUsR2VybWFueQoxMTM0LEdTUUpYSU9LWU1FQTcxMixHU1FKWElPS1lNRUE3MTItczdrZTVicjgsMjAxNS0wMS0xNVQwOToyMjozOS4wMDAwMDArMDAwMCwyMDE1LTAxLTE1VDA5OjM1OjE1LjAwMDAwMCswMDAwLGFkLGFkXzE1c2VjLDAuNTUsMTYuMywyMDE1LTAxLTA3LGdvb2dsZSxHZXJtYW55CjExODQsTVRDSVdLT1ZBU1lQOTI1LE1UQ0lXS09WQVNZUDkyNS15c3BkaWtxaiwyMDE1LTAxLTE1VDE3OjA2OjMzLjAwMDAwMCswMDAwLDIwMTUtMDEtMTVUMTc6MDg6MjcuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA1LDMxLjAsMjAxNS0wMS0xNCxvcmdhbmljLEdlcm1hbnkKMTE4NSxNVENJV0tPVkFTWVA5MjUsTVRDSVdLT1ZBU1lQOTI1LXlzcGRpa3FqLDIwMTUtMDEtMTVUMTc6MDY6MzMuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNVQxNzowOTo1MS4wMDAwMDArMDAwMCxpYXAsb2ZmZXI0LDE3Ljk5LDMxLjAsMjAxNS0wMS0xNCxvcmdhbmljLEdlcm1hbnkKMTE4NixNVENJV0tPVkFTWVA5MjUsTVRDSVdLT1ZBU1lQOTI1LXlzcGRpa3FqLDIwMTUtMDEtMTVUMTc6MDY6MzMuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNVQxNzoxMToyMS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDQsMzEuMCwyMDE1LTAxLTE0LG9yZ2FuaWMsR2VybWFueQoxMTg3LE1UQ0lXS09WQVNZUDkyNSxNVENJV0tPVkFTWVA5MjUteXNwZGlrcWosMjAxNS0wMS0xNVQxNzowNjozMy4wMDAwMDArMDAwMCwyMDE1LTAxLTE1VDE3OjIzOjUxLjAwMDAwMCswMDAwLGlhcCxvZmZlcjQsMTcuOTksMzEuMCwyMDE1LTAxLTE0LG9yZ2FuaWMsR2VybWFueQoxMjA1LEdTUUpYSU9LWU1FQTcxMixHU1FKWElPS1lNRUE3MTItd21kZjQ5b3gsMjAxNS0wMS0xNVQyMzoxMTo1NS4wMDAwMDArMDAwMCwyMDE1LTAxLTE1VDIzOjE1OjEzLjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMTQsMjAuNywyMDE1LTAxLTA3LGdvb2dsZSxHZXJtYW55CjEyMDYsR1NRSlhJT0tZTUVBNzEyLEdTUUpYSU9LWU1FQTcxMi13bWRmNDlveCwyMDE1LTAxLTE1VDIzOjExOjU1LjAwMDAwMCswMDAwLDIwMTUtMDEtMTVUMjM6MTU6MzEuMDAwMDAwKzAwMDAsYWQsYWRfc3VydmV5LDAuNTcsMjAuNywyMDE1LTAxLTA3LGdvb2dsZSxHZXJtYW55CjEyMDcsR1NRSlhJT0tZTUVBNzEyLEdTUUpYSU9LWU1FQTcxMi13bWRmNDlveCwyMDE1LTAxLTE1VDIzOjExOjU1LjAwMDAwMCswMDAwLDIwMTUtMDEtMTVUMjM6Mjk6NDMuMDAwMDAwKzAwMDAsYWQsYWRfMTVzZWMsMC4zNDk3LDIwLjcsMjAxNS0wMS0wNyxnb29nbGUsR2VybWFueQoxMjA4LEdTUUpYSU9LWU1FQTcxMixHU1FKWElPS1lNRUE3MTItd21kZjQ5b3gsMjAxNS0wMS0xNVQyMzoxMTo1NS4wMDAwMDArMDAwMCwyMDE1LTAxLTE1VDIzOjMwOjE5LjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMjIsMjAuNywyMDE1LTAxLTA3LGdvb2dsZSxHZXJtYW55CjEyNDUsVVBGTUxJRUtXSFlYOTY0LFVQRk1MSUVLV0hZWDk2NC14cm9nbWRiaywyMDE1LTAxLTE2VDA4OjAzOjM5LjAwMDAwMCswMDAwLDIwMTUtMDEtMTZUMDg6MDg6MjcuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjEsMzMuNCwyMDE1LTAxLTE2LG9yZ2FuaWMsR2VybWFueQoxMjQ2LFVQRk1MSUVLV0hZWDk2NCxVUEZNTElFS1dIWVg5NjQteHJvZ21kYmssMjAxNS0wMS0xNlQwODowMzozOS4wMDAwMDArMDAwMCwyMDE1LTAxLTE2VDA4OjEzOjU3LjAwMDAwMCswMDAwLGlhcCxvZmZlcjEsNC40OSwzMy40LDIwMTUtMDEtMTYsb3JnYW5pYyxHZXJtYW55CjEyNDcsVVBGTUxJRUtXSFlYOTY0LFVQRk1MSUVLV0hZWDk2NC14cm9nbWRiaywyMDE1LTAxLTE2VDA4OjAzOjM5LjAwMDAwMCswMDAwLDIwMTUtMDEtMTZUMDg6MTk6MDkuMDAwMDAwKzAwMDAsYWQsYWRfMTBzZWMsMC4xMiwzMy40LDIwMTUtMDEtMTYsb3JnYW5pYyxHZXJtYW55CjEyNDgsVVBGTUxJRUtXSFlYOTY0LFVQRk1MSUVLV0hZWDk2NC14cm9nbWRiaywyMDE1LTAxLTE2VDA4OjAzOjM5LjAwMDAwMCswMDAwLDIwMTUtMDEtMTZUMDg6MjI6MjcuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAzLDMzLjQsMjAxNS0wMS0xNixvcmdhbmljLEdlcm1hbnkKMTI0OSxVUEZNTElFS1dIWVg5NjQsVVBGTUxJRUtXSFlYOTY0LXhyb2dtZGJrLDIwMTUtMDEtMTZUMDg6MDM6MzkuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNlQwODoyNzo1MS4wMDAwMDArMDAwMCxhZCxhZF8xNXNlYywwLjQ5LDMzLjQsMjAxNS0wMS0xNixvcmdhbmljLEdlcm1hbnkKMTI4NixNVENJV0tPVkFTWVA5MjUsTVRDSVdLT1ZBU1lQOTI1LWhzNGk1MnZnLDIwMTUtMDEtMTZUMTI6MjI6MjMuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNlQxMjozMDoyMy4wMDAwMDArMDAwMCxhZCxhZF8xMHNlYywwLjIzLDQxLjAsMjAxNS0wMS0xNCxvcmdhbmljLEdlcm1hbnkKMTI4NyxNVENJV0tPVkFTWVA5MjUsTVRDSVdLT1ZBU1lQOTI1LWhzNGk1MnZnLDIwMTUtMDEtMTZUMTI6MjI6MjMuMDAwMDAwKzAwMDAsMjAxNS0wMS0xNlQxMjozMDozNS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMSw0MS4wLDIwMTUtMDEtMTQsb3JnYW5pYyxHZXJtYW55CjEyODgsTVRDSVdLT1ZBU1lQOTI1LE1UQ0lXS09WQVNZUDkyNS1oczRpNTJ2ZywyMDE1LTAxLTE2VDEyOjIyOjIzLjAwMDAwMCswMDAwLDIwMTUtMDEtMTZUMTI6Mzg6NTkuMDAwMDAwKzAwMDAsYWQsYWRfMzBzZWMsMS4yNyw0MS4wLDIwMTUtMDEtMTQsb3JnYW5pYyxHZXJtYW55CjEyODksTVRDSVdLT1ZBU1lQOTI1LE1UQ0lXS09WQVNZUDkyNS1oczRpNTJ2ZywyMDE1LTAxLTE2VDEyOjIyOjIzLjAwMDAwMCswMDAwLDIwMTUtMDEtMTZUMTI6NDg6MjMuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjEsNDEuMCwyMDE1LTAxLTE0LG9yZ2FuaWMsR2VybWFueQoxMjkwLE1UQ0lXS09WQVNZUDkyNSxNVENJV0tPVkFTWVA5MjUtaHM0aTUydmcsMjAxNS0wMS0xNlQxMjoyMjoyMy4wMDAwMDArMDAwMCwyMDE1LTAxLTE2VDEyOjU5OjExLjAwMDAwMCswMDAwLGFkLGFkX3BsYXlhYmxlLDEuMjIsNDEuMCwyMDE1LTAxLTE0LG9yZ2FuaWMsR2VybWFueQoxMzIwLE1UQ0lXS09WQVNZUDkyNSxNVENJV0tPVkFTWVA5MjUtZnRjYnMyMTcsMjAxNS0wMS0xNlQxNToyNzoyNC4wMDAwMDArMDAwMCwyMDE1LTAxLTE2VDE1OjMwOjI0LjAwMDAwMCswMDAwLGFkLGFkXzIwc2VjLDAuNzksNy4xLDIwMTUtMDEtMTQsb3JnYW5pYyxHZXJtYW55CjEzOTIsVVBGTUxJRUtXSFlYOTY0LFVQRk1MSUVLV0hZWDk2NC1waDh6NTd3dCwyMDE1LTAxLTE3VDAzOjE2OjQxLjAwMDAwMCswMDAwLDIwMTUtMDEtMTdUMDM6MjU6MjkuMDAwMDAwKzAwMDAsYWQsYWRfMzBzZWMsMS4xMyw0MC42LDIwMTUtMDEtMTYsb3JnYW5pYyxHZXJtYW55CjEzOTMsVVBGTUxJRUtXSFlYOTY0LFVQRk1MSUVLV0hZWDk2NC1waDh6NTd3dCwyMDE1LTAxLTE3VDAzOjE2OjQxLjAwMDAwMCswMDAwLDIwMTUtMDEtMTdUMDM6Mzk6MDUuMDAwMDAwKzAwMDAsYWQsYWRfMTVzZWMsMC41LDQwLjYsMjAxNS0wMS0xNixvcmdhbmljLEdlcm1hbnkKMTM5NCxVUEZNTElFS1dIWVg5NjQsVVBGTUxJRUtXSFlYOTY0LXBoOHo1N3d0LDIwMTUtMDEtMTdUMDM6MTY6NDEuMDAwMDAwKzAwMDAsMjAxNS0wMS0xN1QwMzo0MzozNS4wMDAwMDArMDAwMCxhZCxhZF8zMHNlYywxLjA3OTgsNDAuNiwyMDE1LTAxLTE2LG9yZ2FuaWMsR2VybWFueQoxMzk1LFVQRk1MSUVLV0hZWDk2NCxVUEZNTElFS1dIWVg5NjQtcGg4ejU3d3QsMjAxNS0wMS0xN1QwMzoxNjo0MS4wMDAwMDArMDAwMCwyMDE1LTAxLTE3VDAzOjQ2OjIzLjAwMDAwMCswMDAwLGlhcCxvZmZlcjIsOC45OSw0MC42LDIwMTUtMDEtMTYsb3JnYW5pYyxHZXJtYW55CjEzOTYsVVBGTUxJRUtXSFlYOTY0LFVQRk1MSUVLV0hZWDk2NC1waDh6NTd3dCwyMDE1LTAxLTE3VDAzOjE2OjQxLjAwMDAwMCswMDAwLDIwMTUtMDEtMTdUMDM6NTQ6NTMuMDAwMDAwKzAwMDAsYWQsYWRfMzBzZWMsMS4zNSw0MC42LDIwMTUtMDEtMTYsb3JnYW5pYyxHZXJtYW55CjEzOTcsVVBGTUxJRUtXSFlYOTY0LFVQRk1MSUVLV0hZWDk2NC1waDh6NTd3dCwyMDE1LTAxLTE3VDAzOjE2OjQxLjAwMDAwMCswMDAwLDIwMTUtMDEtMTdUMDM6NTU6NDEuMDAwMDAwKzAwMDAsYWQsYWRfMTVzZWMsMC41NSw0MC42LDIwMTUtMDEtMTYsb3JnYW5pYyxHZXJtYW55CjE0MDcsR1NRSlhJT0tZTUVBNzEyLEdTUUpYSU9LWU1FQTcxMi1jZjQ1YWJvbiwyMDE1LTAxLTE3VDA0OjA2OjEwLjAwMDAwMCswMDAwLDIwMTUtMDEtMTdUMDQ6MjU6MjguMDAwMDAwKzAwMDAsYWQsYWRfMzBzZWMsMC45NCwyMC40LDIwMTUtMDEtMDcsZ29vZ2xlLEdlcm1hbnkKMTQ1OCxNVENJV0tPVkFTWVA5MjUsTVRDSVdLT1ZBU1lQOTI1LW51OWR3M2JvLDIwMTUtMDEtMTdUMTI6MDM6MjcuMDAwMDAwKzAwMDAsMjAxNS0wMS0xN1QxMjowOTo1Ny4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMTEsMzAuMCwyMDE1LTAxLTE0LG9yZ2FuaWMsR2VybWFueQoxNDU5LE1UQ0lXS09WQVNZUDkyNSxNVENJV0tPVkFTWVA5MjUtbnU5ZHczYm8sMjAxNS0wMS0xN1QxMjowMzoyNy4wMDAwMDArMDAwMCwyMDE1LTAxLTE3VDEyOjE4OjA5LjAwMDAwMCswMDAwLGlhcCxvZmZlcjMsMTMuNDkxLDMwLjAsMjAxNS0wMS0xNCxvcmdhbmljLEdlcm1hbnkKMTQ2MCxNVENJV0tPVkFTWVA5MjUsTVRDSVdLT1ZBU1lQOTI1LW51OWR3M2JvLDIwMTUtMDEtMTdUMTI6MDM6MjcuMDAwMDAwKzAwMDAsMjAxNS0wMS0xN1QxMjoxOTo1MS4wMDAwMDArMDAwMCxhZCxhZF8xNXNlYywwLjI0LDMwLjAsMjAxNS0wMS0xNCxvcmdhbmljLEdlcm1hbnkKMTQ2MSxNVENJV0tPVkFTWVA5MjUsTVRDSVdLT1ZBU1lQOTI1LW51OWR3M2JvLDIwMTUtMDEtMTdUMTI6MDM6MjcuMDAwMDAwKzAwMDAsMjAxNS0wMS0xN1QxMjoyNjowOS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDcsMzAuMCwyMDE1LTAxLTE0LG9yZ2FuaWMsR2VybWFueQoxNDYyLE1UQ0lXS09WQVNZUDkyNSxNVENJV0tPVkFTWVA5MjUtbnU5ZHczYm8sMjAxNS0wMS0xN1QxMjowMzoyNy4wMDAwMDArMDAwMCwyMDE1LTAxLTE3VDEyOjI2OjM5LjAwMDAwMCswMDAwLGlhcCxnZW1zMSwyLjI0LDMwLjAsMjAxNS0wMS0xNCxvcmdhbmljLEdlcm1hbnkKMTQ2MyxNVENJV0tPVkFTWVA5MjUsTVRDSVdLT1ZBU1lQOTI1LW51OWR3M2JvLDIwMTUtMDEtMTdUMTI6MDM6MjcuMDAwMDAwKzAwMDAsMjAxNS0wMS0xN1QxMjoyNzo1MS4wMDAwMDArMDAwMCxpYXAsZ29sZDMsNC40OSwzMC4wLDIwMTUtMDEtMTQsb3JnYW5pYyxHZXJtYW55CjE0NjQsTVRDSVdLT1ZBU1lQOTI1LE1UQ0lXS09WQVNZUDkyNS1udTlkdzNibywyMDE1LTAxLTE3VDEyOjAzOjI3LjAwMDAwMCswMDAwLDIwMTUtMDEtMTdUMTI6MzE6MDMuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAzLDMwLjAsMjAxNS0wMS0xNCxvcmdhbmljLEdlcm1hbnkKMTQ4MCxVUEZNTElFS1dIWVg5NjQsVVBGTUxJRUtXSFlYOTY0LTJxb204bmV5LDIwMTUtMDEtMTdUMTQ6NTI6MDkuMDAwMDAwKzAwMDAsMjAxNS0wMS0xN1QxNDo1NTo1Ny4wMDAwMDArMDAwMCxhZCxhZF8zMHNlYywxLjI4LDE4LjAsMjAxNS0wMS0xNixvcmdhbmljLEdlcm1hbnkKMTQ4MSxVUEZNTElFS1dIWVg5NjQsVVBGTUxJRUtXSFlYOTY0LTJxb204bmV5LDIwMTUtMDEtMTdUMTQ6NTI6MDkuMDAwMDAwKzAwMDAsMjAxNS0wMS0xN1QxNDo1NzowOS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDMsMTguMCwyMDE1LTAxLTE2LG9yZ2FuaWMsR2VybWFueQoxNTA5LE1UQ0lXS09WQVNZUDkyNSxNVENJV0tPVkFTWVA5MjUtNXd2M3RhMm8sMjAxNS0wMS0xN1QxOToxNjoxOS4wMDAwMDArMDAwMCwyMDE1LTAxLTE3VDE5OjI4OjQ5LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wOSwxNi4yLDIwMTUtMDEtMTQsb3JnYW5pYyxHZXJtYW55CjE2MjQsTVRDSVdLT1ZBU1lQOTI1LE1UQ0lXS09WQVNZUDkyNS1wY244a3QybSwyMDE1LTAxLTE4VDExOjE0OjI5LjAwMDAwMCswMDAwLDIwMTUtMDEtMThUMTE6MTc6MTcuMDAwMDAwKzAwMDAsaWFwLG9mZmVyMSw0LjQ5LDI1LjksMjAxNS0wMS0xNCxvcmdhbmljLEdlcm1hbnkKMTYyNSxNVENJV0tPVkFTWVA5MjUsTVRDSVdLT1ZBU1lQOTI1LXBjbjhrdDJtLDIwMTUtMDEtMThUMTE6MTQ6MjkuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOFQxMToyMDoxMS4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDgsMjUuOSwyMDE1LTAxLTE0LG9yZ2FuaWMsR2VybWFueQoxNjI2LE1UQ0lXS09WQVNZUDkyNSxNVENJV0tPVkFTWVA5MjUtcGNuOGt0Mm0sMjAxNS0wMS0xOFQxMToxNDoyOS4wMDAwMDArMDAwMCwyMDE1LTAxLTE4VDExOjI3OjExLjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMTMsMjUuOSwyMDE1LTAxLTE0LG9yZ2FuaWMsR2VybWFueQoxNjI3LE1UQ0lXS09WQVNZUDkyNSxNVENJV0tPVkFTWVA5MjUtcGNuOGt0Mm0sMjAxNS0wMS0xOFQxMToxNDoyOS4wMDAwMDArMDAwMCwyMDE1LTAxLTE4VDExOjMzOjI5LjAwMDAwMCswMDAwLGFkLGFkX3N1cnZleSwxLjIyLDI1LjksMjAxNS0wMS0xNCxvcmdhbmljLEdlcm1hbnkKMTYyOCxNVENJV0tPVkFTWVA5MjUsTVRDSVdLT1ZBU1lQOTI1LXBjbjhrdDJtLDIwMTUtMDEtMThUMTE6MTQ6MjkuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOFQxMTozNjoyMy4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDYsMjUuOSwyMDE1LTAxLTE0LG9yZ2FuaWMsR2VybWFueQoxNjc3LE1UQ0lXS09WQVNZUDkyNSxNVENJV0tPVkFTWVA5MjUtbjlnbGJoMjcsMjAxNS0wMS0xOFQyMDoxMDo0Mi4wMDAwMDArMDAwMCwyMDE1LTAxLTE4VDIwOjE0OjA2LjAwMDAwMCswMDAwLGlhcCxnZW1zMSwyLjI0LDIwLjYsMjAxNS0wMS0xNCxvcmdhbmljLEdlcm1hbnkKMTY3OCxNVENJV0tPVkFTWVA5MjUsTVRDSVdLT1ZBU1lQOTI1LW45Z2xiaDI3LDIwMTUtMDEtMThUMjA6MTA6NDIuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOFQyMDoyMDoyNC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMSwyMC42LDIwMTUtMDEtMTQsb3JnYW5pYyxHZXJtYW55CjE2NzksTVRDSVdLT1ZBU1lQOTI1LE1UQ0lXS09WQVNZUDkyNS1uOWdsYmgyNywyMDE1LTAxLTE4VDIwOjEwOjQyLjAwMDAwMCswMDAwLDIwMTUtMDEtMThUMjA6MzA6MDYuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA5LDIwLjYsMjAxNS0wMS0xNCxvcmdhbmljLEdlcm1hbnkKMTY4MCxNVENJV0tPVkFTWVA5MjUsTVRDSVdLT1ZBU1lQOTI1LW45Z2xiaDI3LDIwMTUtMDEtMThUMjA6MTA6NDIuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOFQyMDozMDoxOC4wMDAwMDArMDAwMCxhZCxhZF9zdXJ2ZXksMC43MiwyMC42LDIwMTUtMDEtMTQsb3JnYW5pYyxHZXJtYW55CjE2ODEsTVRDSVdLT1ZBU1lQOTI1LE1UQ0lXS09WQVNZUDkyNS1uOWdsYmgyNywyMDE1LTAxLTE4VDIwOjEwOjQyLjAwMDAwMCswMDAwLDIwMTUtMDEtMThUMjA6MzA6MzAuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAyLDIwLjYsMjAxNS0wMS0xNCxvcmdhbmljLEdlcm1hbnkKMTY4OSxNVENJV0tPVkFTWVA5MjUsTVRDSVdLT1ZBU1lQOTI1LThycHpkNm13LDIwMTUtMDEtMThUMjM6MzQ6NDEuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOFQyMzozNDo1My4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDgsMjkuNiwyMDE1LTAxLTE0LG9yZ2FuaWMsR2VybWFueQoxNjkwLE1UQ0lXS09WQVNZUDkyNSxNVENJV0tPVkFTWVA5MjUtOHJwemQ2bXcsMjAxNS0wMS0xOFQyMzozNDo0MS4wMDAwMDArMDAwMCwyMDE1LTAxLTE5VDAwOjAwOjUzLjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4xMiwyOS42LDIwMTUtMDEtMTQsb3JnYW5pYyxHZXJtYW55CjE2OTEsTVRDSVdLT1ZBU1lQOTI1LE1UQ0lXS09WQVNZUDkyNS04cnB6ZDZtdywyMDE1LTAxLTE4VDIzOjM0OjQxLjAwMDAwMCswMDAwLDIwMTUtMDEtMTlUMDA6MDM6NDcuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAyLDI5LjYsMjAxNS0wMS0xNCxvcmdhbmljLEdlcm1hbnkKMTY5MixHU1FKWElPS1lNRUE3MTIsR1NRSlhJT0tZTUVBNzEyLTR5MmV1NXA2LDIwMTUtMDEtMThUMjM6NDM6NDEuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOFQyMzo1NzoyOS4wMDAwMDArMDAwMCxhZCxhZF8zMHNlYywxLjI1LDM2LjMsMjAxNS0wMS0wNyxnb29nbGUsR2VybWFueQoxNjkzLEdTUUpYSU9LWU1FQTcxMixHU1FKWElPS1lNRUE3MTItNHkyZXU1cDYsMjAxNS0wMS0xOFQyMzo0Mzo0MS4wMDAwMDArMDAwMCwyMDE1LTAxLTE4VDIzOjU5OjQ3LjAwMDAwMCswMDAwLGFkLGFkX3N1cnZleSwwLjU1LDM2LjMsMjAxNS0wMS0wNyxnb29nbGUsR2VybWFueQoxNjk0LEdTUUpYSU9LWU1FQTcxMixHU1FKWElPS1lNRUE3MTItNHkyZXU1cDYsMjAxNS0wMS0xOFQyMzo0Mzo0MS4wMDAwMDArMDAwMCwyMDE1LTAxLTE5VDAwOjE1OjU5LjAwMDAwMCswMDAwLGFkLGFkX3BsYXlhYmxlLDEuNTgsMzYuMywyMDE1LTAxLTA3LGdvb2dsZSxHZXJtYW55CjE3MzcsTVRDSVdLT1ZBU1lQOTI1LE1UQ0lXS09WQVNZUDkyNS1lcWJjdnlndCwyMDE1LTAxLTE5VDA0OjM4OjU0LjAwMDAwMCswMDAwLDIwMTUtMDEtMTlUMDQ6Mzk6MTIuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjAyLDkuNCwyMDE1LTAxLTE0LG9yZ2FuaWMsR2VybWFueQoxNzc2LEdTUUpYSU9LWU1FQTcxMixHU1FKWElPS1lNRUE3MTItMmQ2enVjYjMsMjAxNS0wMS0xOVQwOTowMjoyOS4wMDAwMDArMDAwMCwyMDE1LTAxLTE5VDA5OjA5OjA1LjAwMDAwMCswMDAwLGlhcCxnb2xkMiwxLjc5LDE1LjMsMjAxNS0wMS0wNyxnb29nbGUsR2VybWFueQoxNzc3LEdTUUpYSU9LWU1FQTcxMixHU1FKWElPS1lNRUE3MTItMmQ2enVjYjMsMjAxNS0wMS0xOVQwOTowMjoyOS4wMDAwMDArMDAwMCwyMDE1LTAxLTE5VDA5OjEwOjI5LjAwMDAwMCswMDAwLGFkLGFkXzVzZWMsMC4wMiwxNS4zLDIwMTUtMDEtMDcsZ29vZ2xlLEdlcm1hbnkKMTgzNSxHU1FKWElPS1lNRUE3MTIsR1NRSlhJT0tZTUVBNzEyLThkYnlpbXc3LDIwMTUtMDEtMTlUMjA6MDE6NTIuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOVQyMDowNDoyOC4wMDAwMDArMDAwMCxpYXAsb2ZmZXI0LDE3Ljk5LDIzLjYsMjAxNS0wMS0wNyxnb29nbGUsR2VybWFueQoxODM2LEdTUUpYSU9LWU1FQTcxMixHU1FKWElPS1lNRUE3MTItOGRieWltdzcsMjAxNS0wMS0xOVQyMDowMTo1Mi4wMDAwMDArMDAwMCwyMDE1LTAxLTE5VDIwOjEwOjE2LjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMTQsMjMuNiwyMDE1LTAxLTA3LGdvb2dsZSxHZXJtYW55CjE4MzcsR1NRSlhJT0tZTUVBNzEyLEdTUUpYSU9LWU1FQTcxMi04ZGJ5aW13NywyMDE1LTAxLTE5VDIwOjAxOjUyLjAwMDAwMCswMDAwLDIwMTUtMDEtMTlUMjA6MTQ6MDQuMDAwMDAwKzAwMDAsYWQsYWRfMzBzZWMsMS4wOSwyMy42LDIwMTUtMDEtMDcsZ29vZ2xlLEdlcm1hbnkKMTg0NCxNVENJV0tPVkFTWVA5MjUsTVRDSVdLT1ZBU1lQOTI1LXp5a2Jkbzc1LDIwMTUtMDEtMTlUMjE6NTc6MjQuMDAwMDAwKzAwMDAsMjAxNS0wMS0xOVQyMTo1ODo0OC4wMDAwMDArMDAwMCxhZCxhZF9zdXJ2ZXksMC41MywxOC44LDIwMTUtMDEtMTQsb3JnYW5pYyxHZXJtYW55CjE4OTMsR1NRSlhJT0tZTUVBNzEyLEdTUUpYSU9LWU1FQTcxMi1vNHl3ZGt6diwyMDE1LTAxLTIwVDA2OjQ5OjI4LjAwMDAwMCswMDAwLDIwMTUtMDEtMjBUMDY6NTU6MjguMDAwMDAwKzAwMDAsaWFwLG9mZmVyNSwyNi4wOSw0MC45LDIwMTUtMDEtMDcsZ29vZ2xlLEdlcm1hbnkKMTg5NCxHU1FKWElPS1lNRUE3MTIsR1NRSlhJT0tZTUVBNzEyLW80eXdka3p2LDIwMTUtMDEtMjBUMDY6NDk6MjguMDAwMDAwKzAwMDAsMjAxNS0wMS0yMFQwNzoxMjoyOC4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDUsNDAuOSwyMDE1LTAxLTA3LGdvb2dsZSxHZXJtYW55CjE5MTMsTVRDSVdLT1ZBU1lQOTI1LE1UQ0lXS09WQVNZUDkyNS0xcTN4dmZtcCwyMDE1LTAxLTIwVDEyOjM0OjQzLjAwMDAwMCswMDAwLDIwMTUtMDEtMjBUMTI6MzU6MzcuMDAwMDAwKzAwMDAsaWFwLG9mZmVyNSwyNi4wOSwzLjksMjAxNS0wMS0xNCxvcmdhbmljLEdlcm1hbnkKMTkxNCxNVENJV0tPVkFTWVA5MjUsTVRDSVdLT1ZBU1lQOTI1LTFxM3h2Zm1wLDIwMTUtMDEtMjBUMTI6MzQ6NDMuMDAwMDAwKzAwMDAsMjAxNS0wMS0yMFQxMjozNzoyNS4wMDAwMDArMDAwMCxpYXAsZ29sZDIsMS43OSwzLjksMjAxNS0wMS0xNCxvcmdhbmljLEdlcm1hbnkKMTkxNSxHU1FKWElPS1lNRUE3MTIsR1NRSlhJT0tZTUVBNzEyLWV1MmxtcjF0LDIwMTUtMDEtMjBUMTM6MjU6MjQuMDAwMDAwKzAwMDAsMjAxNS0wMS0yMFQxMzoyNjowNi4wMDAwMDArMDAwMCxhZCxhZF81c2VjLDAuMDIsMjQuMSwyMDE1LTAxLTA3LGdvb2dsZSxHZXJtYW55CjE5MTYsR1NRSlhJT0tZTUVBNzEyLEdTUUpYSU9LWU1FQTcxMi1ldTJsbXIxdCwyMDE1LTAxLTIwVDEzOjI1OjI0LjAwMDAwMCswMDAwLDIwMTUtMDEtMjBUMTM6MjY6MjQuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjA5LDI0LjEsMjAxNS0wMS0wNyxnb29nbGUsR2VybWFueQoxOTE3LEdTUUpYSU9LWU1FQTcxMixHU1FKWElPS1lNRUE3MTItZXUybG1yMXQsMjAxNS0wMS0yMFQxMzoyNToyNC4wMDAwMDArMDAwMCwyMDE1LTAxLTIwVDEzOjQxOjAwLjAwMDAwMCswMDAwLGlhcCxnb2xkMiwxLjc5LDI0LjEsMjAxNS0wMS0wNyxnb29nbGUsR2VybWFueQoxOTE4LEdTUUpYSU9LWU1FQTcxMixHU1FKWElPS1lNRUE3MTItZXUybG1yMXQsMjAxNS0wMS0yMFQxMzoyNToyNC4wMDAwMDArMDAwMCwyMDE1LTAxLTIwVDEzOjQzOjU0LjAwMDAwMCswMDAwLGFkLGFkXzEwc2VjLDAuMTgsMjQuMSwyMDE1LTAxLTA3LGdvb2dsZSxHZXJtYW55CjE5ODcsVlBOUllMTUJLSkdUOTI1LFZQTlJZTE1CS0pHVDkyNS12dDI2cTlnYiwyMDE1LTAxLTIxVDAxOjA3OjI0LjAwMDAwMCswMDAwLDIwMTUtMDEtMjFUMDE6MTA6MzAuMDAwMDAwKzAwMDAsYWQsYWRfNXNlYywwLjEsMjQuOSwyMDE1LTAxLTIxLG90aGVyX2NhbXBhaWduLEdlcm1hbnkKMTk4OCxWUE5SWUxNQktKR1Q5MjUsVlBOUllMTUJLSkdUOTI1LXZ0MjZxOWdiLDIwMTUtMDEtMjFUMDE6MDc6MjQuMDAwMDAwKzAwMDAsMjAxNS0wMS0yMVQwMToxMTo1NC4wMDAwMDArMDAwMCxpYXAsb2ZmZXI0LDE3Ljk5LDI0LjksMjAxNS0wMS0yMSxvdGhlcl9jYW1wYWlnbixHZXJtYW55CjE5ODksVlBOUllMTUJLSkdUOTI1LFZQTlJZTE1CS0pHVDkyNS12dDI2cTlnYiwyMDE1LTAxLTIxVDAxOjA3OjI0LjAwMDAwMCswMDAwLDIwMTUtMDEtMjFUMDE6MjE6MjQuMDAwMDAwKzAwMDAsYWQsYWRfMTVzZWMsMC4yNiwyNC45LDIwMTUtMDEtMjEsb3RoZXJfY2FtcGFpZ24sR2VybWFueQoxOTkwLFZQTlJZTE1CS0pHVDkyNSxWUE5SWUxNQktKR1Q5MjUtdnQyNnE5Z2IsMjAxNS0wMS0yMVQwMTowNzoyNC4wMDAwMDArMDAwMCwyMDE1LTAxLTIxVDAxOjIzOjM2LjAwMDAwMCswMDAwLGFkLGFkX3N1cnZleSwxLjE3LDI0LjksMjAxNS0wMS0yMSxvdGhlcl9jYW1wYWlnbixHZXJtYW55CjE5OTEsVlBOUllMTUJLSkdUOTI1LFZQTlJZTE1CS0pHVDkyNS12dDI2cTlnYiwyMDE1LTAxLTIxVDAxOjA3OjI0LjAwMDAwMCswMDAwLDIwMTUtMDEtMjFUMDE6MjY6MTIuMDAwMDAwKzAwMDAsYWQsYWRfc3VydmV5LDAuNzIsMjQuOSwyMDE1LTAxLTIxLG90aGVyX2NhbXBhaWduLEdlcm1hbnkK" download="extract_0006.csv"><button style="background-color: #67C2DC; color: #FFFFFF; border: none; padding: 5px; font-weight: bold; cursor: pointer; border-radius: 4px;">CSV</button></a></td>
  </tr>
  <tr>
    <td style="height: 40px; background-color: #4CA64C; color: transparent;font-size: 0px;" class="gt_row gt_left">#4CA64C</td>
    <td style="height: 40px; color: #666666;font-size: 13px;font-weight: bold;" class="gt_row gt_right">7</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_left">
        <div style="margin: 0; padding: 0; display: inline-block; height: 30px; vertical-align: middle; width: 16%;">
            <!--?xml version="1.0" encoding="UTF-8"?--><!--?xml version="1.0" encoding="UTF-8"?-->
<svg width="30px" height="30px" viewbox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink">
    <title>col_vals_between</title>
    <g id="Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="col_vals_between" transform="translate(0.000000, 0.206897)">
            <path d="M56.712234,1 C59.1975153,1 61.4475153,2.00735931 63.076195,3.63603897 C64.7048747,5.26471863 65.712234,7.51471863 65.712234,10 L65.712234,10 L65.712234,65 L10.712234,65 C8.22695259,65 5.97695259,63.9926407 4.34827294,62.363961 C2.71959328,60.7352814 1.71223397,58.4852814 1.71223397,56 L1.71223397,56 L1.71223397,10 C1.71223397,7.51471863 2.71959328,5.26471863 4.34827294,3.63603897 C5.97695259,2.00735931 8.22695259,1 10.712234,1 L10.712234,1 Z" id="rectangle" stroke="#000000" stroke-width="2" fill="#FFFFFF"></path>
            <path d="M11.993484,21.96875 C10.962234,22.082031 10.188797,22.964844 10.212234,24 L10.212234,42 C10.200515,42.722656 10.579422,43.390625 11.204422,43.753906 C11.825515,44.121094 12.598953,44.121094 13.220047,43.753906 C13.845047,43.390625 14.223953,42.722656 14.212234,42 L14.212234,24 C14.220047,23.457031 14.009109,22.9375 13.626297,22.554688 C13.243484,22.171875 12.723953,21.960938 12.180984,21.96875 C12.118484,21.964844 12.055984,21.964844 11.993484,21.96875 Z M55.993484,21.96875 C54.962234,22.082031 54.188797,22.964844 54.212234,24 L54.212234,42 C54.200515,42.722656 54.579422,43.390625 55.204422,43.753906 C55.825515,44.121094 56.598953,44.121094 57.220047,43.753906 C57.845047,43.390625 58.223953,42.722656 58.212234,42 L58.212234,24 C58.220047,23.457031 58.009109,22.9375 57.626297,22.554688 C57.243484,22.171875 56.723953,21.960938 56.180984,21.96875 C56.118484,21.964844 56.055984,21.964844 55.993484,21.96875 Z M16.212234,22 C15.661453,22 15.212234,22.449219 15.212234,23 C15.212234,23.550781 15.661453,24 16.212234,24 C16.763015,24 17.212234,23.550781 17.212234,23 C17.212234,22.449219 16.763015,22 16.212234,22 Z M20.212234,22 C19.661453,22 19.212234,22.449219 19.212234,23 C19.212234,23.550781 19.661453,24 20.212234,24 C20.763015,24 21.212234,23.550781 21.212234,23 C21.212234,22.449219 20.763015,22 20.212234,22 Z M24.212234,22 C23.661453,22 23.212234,22.449219 23.212234,23 C23.212234,23.550781 23.661453,24 24.212234,24 C24.763015,24 25.212234,23.550781 25.212234,23 C25.212234,22.449219 24.763015,22 24.212234,22 Z M28.212234,22 C27.661453,22 27.212234,22.449219 27.212234,23 C27.212234,23.550781 27.661453,24 28.212234,24 C28.763015,24 29.212234,23.550781 29.212234,23 C29.212234,22.449219 28.763015,22 28.212234,22 Z M32.212234,22 C31.661453,22 31.212234,22.449219 31.212234,23 C31.212234,23.550781 31.661453,24 32.212234,24 C32.763015,24 33.212234,23.550781 33.212234,23 C33.212234,22.449219 32.763015,22 32.212234,22 Z M36.212234,22 C35.661453,22 35.212234,22.449219 35.212234,23 C35.212234,23.550781 35.661453,24 36.212234,24 C36.763015,24 37.212234,23.550781 37.212234,23 C37.212234,22.449219 36.763015,22 36.212234,22 Z M40.212234,22 C39.661453,22 39.212234,22.449219 39.212234,23 C39.212234,23.550781 39.661453,24 40.212234,24 C40.763015,24 41.212234,23.550781 41.212234,23 C41.212234,22.449219 40.763015,22 40.212234,22 Z M44.212234,22 C43.661453,22 43.212234,22.449219 43.212234,23 C43.212234,23.550781 43.661453,24 44.212234,24 C44.763015,24 45.212234,23.550781 45.212234,23 C45.212234,22.449219 44.763015,22 44.212234,22 Z M48.212234,22 C47.661453,22 47.212234,22.449219 47.212234,23 C47.212234,23.550781 47.661453,24 48.212234,24 C48.763015,24 49.212234,23.550781 49.212234,23 C49.212234,22.449219 48.763015,22 48.212234,22 Z M52.212234,22 C51.661453,22 51.212234,22.449219 51.212234,23 C51.212234,23.550781 51.661453,24 52.212234,24 C52.763015,24 53.212234,23.550781 53.212234,23 C53.212234,22.449219 52.763015,22 52.212234,22 Z M21.462234,27.96875 C21.419265,27.976563 21.376297,27.988281 21.337234,28 C21.177078,28.027344 21.02864,28.089844 20.899734,28.1875 L15.618484,32.1875 C15.356765,32.375 15.200515,32.679688 15.200515,33 C15.200515,33.320313 15.356765,33.625 15.618484,33.8125 L20.899734,37.8125 C21.348953,38.148438 21.985672,38.058594 22.321609,37.609375 C22.657547,37.160156 22.567703,36.523438 22.118484,36.1875 L19.212234,34 L49.212234,34 L46.305984,36.1875 C45.856765,36.523438 45.766922,37.160156 46.102859,37.609375 C46.438797,38.058594 47.075515,38.148438 47.524734,37.8125 L52.805984,33.8125 C53.067703,33.625 53.223953,33.320313 53.223953,33 C53.223953,32.679688 53.067703,32.375 52.805984,32.1875 L47.524734,28.1875 C47.30989,28.027344 47.040359,27.960938 46.774734,28 C46.743484,28 46.712234,28 46.680984,28 C46.282547,28.074219 45.96614,28.382813 45.884109,28.78125 C45.802078,29.179688 45.970047,29.585938 46.305984,29.8125 L49.212234,32 L19.212234,32 L22.118484,29.8125 C22.520828,29.566406 22.696609,29.070313 22.536453,28.625 C22.380203,28.179688 21.930984,27.90625 21.462234,27.96875 Z M16.212234,42 C15.661453,42 15.212234,42.449219 15.212234,43 C15.212234,43.550781 15.661453,44 16.212234,44 C16.763015,44 17.212234,43.550781 17.212234,43 C17.212234,42.449219 16.763015,42 16.212234,42 Z M20.212234,42 C19.661453,42 19.212234,42.449219 19.212234,43 C19.212234,43.550781 19.661453,44 20.212234,44 C20.763015,44 21.212234,43.550781 21.212234,43 C21.212234,42.449219 20.763015,42 20.212234,42 Z M24.212234,42 C23.661453,42 23.212234,42.449219 23.212234,43 C23.212234,43.550781 23.661453,44 24.212234,44 C24.763015,44 25.212234,43.550781 25.212234,43 C25.212234,42.449219 24.763015,42 24.212234,42 Z M28.212234,42 C27.661453,42 27.212234,42.449219 27.212234,43 C27.212234,43.550781 27.661453,44 28.212234,44 C28.763015,44 29.212234,43.550781 29.212234,43 C29.212234,42.449219 28.763015,42 28.212234,42 Z M32.212234,42 C31.661453,42 31.212234,42.449219 31.212234,43 C31.212234,43.550781 31.661453,44 32.212234,44 C32.763015,44 33.212234,43.550781 33.212234,43 C33.212234,42.449219 32.763015,42 32.212234,42 Z M36.212234,42 C35.661453,42 35.212234,42.449219 35.212234,43 C35.212234,43.550781 35.661453,44 36.212234,44 C36.763015,44 37.212234,43.550781 37.212234,43 C37.212234,42.449219 36.763015,42 36.212234,42 Z M40.212234,42 C39.661453,42 39.212234,42.449219 39.212234,43 C39.212234,43.550781 39.661453,44 40.212234,44 C40.763015,44 41.212234,43.550781 41.212234,43 C41.212234,42.449219 40.763015,42 40.212234,42 Z M44.212234,42 C43.661453,42 43.212234,42.449219 43.212234,43 C43.212234,43.550781 43.661453,44 44.212234,44 C44.763015,44 45.212234,43.550781 45.212234,43 C45.212234,42.449219 44.763015,42 44.212234,42 Z M48.212234,42 C47.661453,42 47.212234,42.449219 47.212234,43 C47.212234,43.550781 47.661453,44 48.212234,44 C48.763015,44 49.212234,43.550781 49.212234,43 C49.212234,42.449219 48.763015,42 48.212234,42 Z M52.212234,42 C51.661453,42 51.212234,42.449219 51.212234,43 C51.212234,43.550781 51.661453,44 52.212234,44 C52.763015,44 53.212234,43.550781 53.212234,43 C53.212234,42.449219 52.763015,42 52.212234,42 Z" id="inside_range" fill="#000000" fill-rule="nonzero"></path>
        </g>
    </g>
</svg>
        </div>
        <div style="font-family: 'IBM Plex Mono', monospace, courier; color: black; font-size: 10px; display: inline-block; vertical-align: middle;">
            <div>col_vals_between()</div>
        </div>
        
        </td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">session_duration</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">[10, 50]</td>
    <td style="height: 40px; background-color: #FCFCFC; border-left: 1px solid #D3D3D3;" class="gt_row gt_center"><svg width="24px" height="25px" viewbox="0 0 24 25" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" style="vertical-align: middle;">
    <g id="modified" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="modified" transform="translate(0.000000, 0.570147)">
            <rect id="Rectangle" x="0.125132506" y="0" width="23.749735" height="23.7894737"></rect>
            <rect id="Rectangle" fill="#000000" x="15.2215626" y="14.8025885" width="6.34089821" height="6.34089821"></rect>
            <rect id="Rectangle" fill="#9A7CB4" x="16.1264309" y="15.7074568" width="4.53116158" height="4.53116158"></rect>
            <path d="M4.40094816,14.3498527 C2.36911602,14.3498527 0.715948163,16.0028586 0.715948163,18.0348527 C0.715948163,20.0668467 2.36911602,21.7198527 4.40094816,21.7198527 C6.43278031,21.7198527 8.08594816,20.0668467 8.08594816,18.0348527 C8.08594816,16.0028586 6.43272633,14.3498527 4.40094816,14.3498527 Z M4.40094816,20.9828203 C2.77541767,20.9828203 1.45298055,19.6603831 1.45298055,18.0348527 C1.45298055,16.4093222 2.77541767,15.086885 4.40094816,15.086885 C6.02647865,15.086885 7.34891578,16.4093222 7.34891578,18.0348527 C7.34891578,19.6603831 6.02647865,20.9828203 4.40094816,20.9828203 Z" id="Shape" fill="#000000" fill-rule="nonzero"></path>
            <path d="M18.4333601,-0.640287588 L18.4333601,14.5882952 L9.52131131,14.5882952 L11.3716151,15.980997 C11.6576165,16.1948765 11.7148169,16.6002518 11.5009374,16.8862532 C11.2870585,17.1722546 10.8816827,17.229455 10.5956813,17.0155755 L10.5956813,17.0155755 L7.23330126,14.4689208 C7.06667429,14.3495464 6.96719559,14.1555632 6.96719559,13.9516316 C6.96719559,13.7477006 7.06667429,13.5537168 7.23330126,13.4343424 L7.23330126,13.4343424 L10.5956813,10.8876877 C10.677751,10.8255137 10.7722561,10.7857222 10.8742216,10.7683132 C10.8990916,10.7608522 10.9264478,10.7533918 10.9538046,10.7484175 C11.2522407,10.708626 11.5382421,10.8827141 11.6377208,11.166228 C11.7396863,11.4497426 11.6277729,11.765587 11.3716151,11.9222661 L11.3716151,11.9222661 L9.52131131,13.3149679 L17.1593533,13.3147124 L17.1594577,0.633614828 L6.9283533,0.633614828 L6.9283533,-0.640287588 L18.4333601,-0.640287588 Z" id="arrow" fill="#000000" transform="translate(12.680857, 8.252286) rotate(-90.000000) translate(-12.680857, -8.252286) "></path>
        </g>
    </g>
</svg></td>
    <td style="height: 40px; background-color: #FCFCFC; border-right: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color:#4CA64C;">✓</span></td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_right">1</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5;" class="gt_row gt_right">1<br>1.00</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5;" class="gt_row gt_right">0<br>0.00</td>
    <td style="height: 40px; background-color: #FCFCFC; border-left: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color: #AAAAAA;">○</span></td>
    <td style="height: 40px; background-color: #FCFCFC;" class="gt_row gt_center"><span style="color: #EBBC14;">○</span></td>
    <td style="height: 40px; background-color: #FCFCFC; border-right: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color: #FF3300;">○</span></td>
    <td style="height: 40px;" class="gt_row gt_center">—</td>
  </tr>
  <tr>
    <td style="height: 40px; background-color: #EBBC14; color: transparent;font-size: 0px;" class="gt_row gt_left">#EBBC14</td>
    <td style="height: 40px; color: #666666;font-size: 13px;font-weight: bold;" class="gt_row gt_right">8</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_left">
        <div style="margin: 0; padding: 0; display: inline-block; height: 30px; vertical-align: middle; width: 16%;">
            <!--?xml version="1.0" encoding="UTF-8"?--><!--?xml version="1.0" encoding="UTF-8"?-->
<svg width="30px" height="30px" viewbox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink">
    <title>rows_distinct</title>
    <g id="Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="rows_distinct" transform="translate(0.000000, 0.482759)">
            <path d="M56.712234,1 C59.1975153,1 61.4475153,2.00735931 63.076195,3.63603897 C64.7048747,5.26471863 65.712234,7.51471863 65.712234,10 L65.712234,10 L65.712234,65 L10.712234,65 C8.22695259,65 5.97695259,63.9926407 4.34827294,62.363961 C2.71959328,60.7352814 1.71223397,58.4852814 1.71223397,56 L1.71223397,56 L1.71223397,10 C1.71223397,7.51471863 2.71959328,5.26471863 4.34827294,3.63603897 C5.97695259,2.00735931 8.22695259,1 10.712234,1 L10.712234,1 Z" id="rectangle" stroke="#000000" stroke-width="2" fill="#FFFFFF"></path>
            <g id="no_gemini" transform="translate(17.000000, 13.000000)">
                <path d="M3.66705619,6.62107508 C3.12510104,6.64066386 2.67455974,7.04767444 2.60273432,7.58527682 C2.52873228,8.1228792 2.85303526,8.6343627 3.37104848,8.79760239 C4.40489909,9.15455286 6.70113553,9.87063021 9.86580595,10.364702 L9.86580595,30.7369976 C6.65978137,31.2332458 4.37225104,31.964559 3.37104848,32.3215095 C2.78991555,32.5282797 2.48520173,33.1681784 2.69197196,33.7493114 C2.8987422,34.3304443 3.53864094,34.6351581 4.11977387,34.4283879 C5.54975217,33.9190808 10.2031678,32.4608072 16.5172734,32.4608072 C22.7943781,32.4608072 27.5500901,33.8907855 29.0540706,34.4109757 C29.6352036,34.6133926 30.2707495,34.304326 30.4731664,33.7231931 C30.6755833,33.1420601 30.3665167,32.5065142 29.7853838,32.3040973 C28.7493568,31.9449704 26.4313554,31.2441283 23.2383897,30.7544098 L23.2383897,10.3821143 C26.4444143,9.88804243 28.745004,9.16108259 29.7679716,8.79760239 C30.3491045,8.59083215 30.6538184,7.95093341 30.4470481,7.36980048 C30.2402779,6.78866755 29.6003791,6.48395373 29.0192462,6.69072396 C27.5587963,7.20873774 22.9162637,8.65830464 16.6391589,8.65830464 C10.3707603,8.65830464 5.61287188,7.21309051 4.10236166,6.69072396 C3.96306391,6.6384873 3.81506005,6.61454548 3.66705619,6.62107508 Z M12.0945699,10.6432975 C13.4940771,10.789125 15.0198226,10.8870686 16.6391589,10.8870686 C18.1997289,10.8870686 19.6623552,10.7978311 21.0096257,10.6607098 L21.0096257,30.4584021 C19.623178,30.316928 18.1191975,30.2320433 16.5172734,30.2320433 C14.9327615,30.2320433 13.4570763,30.3191044 12.0945699,30.4584021 L12.0945699,10.6432975 Z" id="gemini" stroke="#000000" stroke-width="2" fill="#000000" fill-rule="nonzero"></path>
                <path d="M16.6605354,-5.05929499 C16.9366778,-5.05929499 17.1605354,-4.83543737 17.1605354,-4.55929499 L17.1605354,44.5687509 C17.1605354,44.8448933 16.9366778,45.0687509 16.6605354,45.0687509 C16.384393,45.0687509 16.1605354,44.8448933 16.1605354,44.5687509 L16.1605354,-4.55929499 C16.1605354,-4.83543737 16.384393,-5.05929499 16.6605354,-5.05929499 Z" id="line_black" fill="#000000" transform="translate(16.660535, 20.004728) rotate(-320.000000) translate(-16.660535, -20.004728) "></path>
                <polygon id="line_white" fill="#FFFFFF" transform="translate(18.560032, 19.158031) rotate(-320.000000) translate(-18.560032, -19.158031) " points="18.0600316 -4.45366735 19.0600316 -4.45366735 19.0600316 42.7697299 18.0600316 42.7697299"></polygon>
            </g>
        </g>
    </g>
</svg>
        </div>
        <div style="font-family: 'IBM Plex Mono', monospace, courier; color: black; font-size: 11px; display: inline-block; vertical-align: middle;">
            <div>rows_distinct()</div>
        </div>
        
        </td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">player_id, session_id, time</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">—</td>
    <td style="height: 40px; background-color: #FCFCFC; border-left: 1px solid #D3D3D3;" class="gt_row gt_center"><svg width="25px" height="25px" viewbox="0 0 25 25" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" style="vertical-align: middle;">
    <g id="unchanged" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="unchanged" transform="translate(0.500000, 0.570147)">
            <rect id="Rectangle" x="0.125132506" y="0" width="23.749735" height="23.7894737"></rect>
            <path d="M5.80375046,8.18194736 C3.77191832,8.18194736 2.11875046,9.83495328 2.11875046,11.8669474 C2.11875046,13.8989414 3.77191832,15.5519474 5.80375046,15.5519474 C7.8355826,15.5519474 9.48875046,13.8989414 9.48875046,11.8669474 C9.48875046,9.83495328 7.83552863,8.18194736 5.80375046,8.18194736 Z M5.80375046,14.814915 C4.17821997,14.814915 2.85578285,13.4924778 2.85578285,11.8669474 C2.85578285,10.2414169 4.17821997,8.91897975 5.80375046,8.91897975 C7.42928095,8.91897975 8.75171807,10.2414169 8.75171807,11.8669474 C8.75171807,13.4924778 7.42928095,14.814915 5.80375046,14.814915 Z" id="Shape" fill="#000000" fill-rule="nonzero"></path>
            <path d="M13.9638189,8.699335 C13.9364621,8.70430925 13.9091059,8.71176968 13.8842359,8.71923074 C13.7822704,8.73663967 13.6877654,8.77643115 13.6056956,8.83860518 L10.2433156,11.3852598 C10.0766886,11.5046343 9.97720993,11.6986181 9.97720993,11.9025491 C9.97720993,12.1064807 10.0766886,12.3004639 10.2433156,12.4198383 L13.6056956,14.966493 C13.891697,15.1803725 14.2970729,15.1231721 14.5109517,14.8371707 C14.7248313,14.5511692 14.6676309,14.145794 14.3816294,13.9319145 L12.5313257,12.5392127 L21.8812495,12.5392127 L21.8812495,11.2658854 L12.5313257,11.2658854 L14.3816294,9.87318364 C14.6377872,9.71650453 14.7497006,9.40066014 14.6477351,9.11714553 C14.5482564,8.83363156 14.262255,8.65954352 13.9638189,8.699335 Z" id="arrow" fill="#000000" transform="translate(15.929230, 11.894737) rotate(-180.000000) translate(-15.929230, -11.894737) "></path>
        </g>
    </g>
</svg></td>
    <td style="height: 40px; background-color: #FCFCFC; border-right: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color:#4CA64C;">✓</span></td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_right">2000</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5;" class="gt_row gt_right">1978<br>0.99</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5;" class="gt_row gt_right">22<br>0.01</td>
    <td style="height: 40px; background-color: #FCFCFC; border-left: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color: #AAAAAA;">●</span></td>
    <td style="height: 40px; background-color: #FCFCFC;" class="gt_row gt_center"><span style="color: #EBBC14;">●</span></td>
    <td style="height: 40px; background-color: #FCFCFC; border-right: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color: #FF3300;">○</span></td>
    <td style="height: 40px;" class="gt_row gt_center"><a href="data:text/csv;base64,X3Jvd19udW1fLHBsYXllcl9pZCxzZXNzaW9uX2lkLHRpbWUKMzUzLFBaQk5SS1NNVUxIWDIxMyxQWkJOUktTTVVMSFgyMTMtbTJuNnRrMWksMjAxNS0wMS0wOFQxNDozODowNi4wMDAwMDArMDAwMAozNTQsUFpCTlJLU01VTEhYMjEzLFBaQk5SS1NNVUxIWDIxMy1tMm42dGsxaSwyMDE1LTAxLTA4VDE0OjM4OjA2LjAwMDAwMCswMDAwCjQwMCxRRFVaSklFVENBR1c2NTQsUURVWkpJRVRDQUdXNjU0LWdtaTZib2YxLDIwMTUtMDEtMDlUMDM6MTA6MDUuMDAwMDAwKzAwMDAKNDAxLFFEVVpKSUVUQ0FHVzY1NCxRRFVaSklFVENBR1c2NTQtZ21pNmJvZjEsMjAxNS0wMS0wOVQwMzoxMDowNS4wMDAwMDArMDAwMAo1NTMsSlZCWkNQS1hIRk1VNDkxLEpWQlpDUEtYSEZNVTQ5MS1uOXdzMnRsMSwyMDE1LTAxLTEwVDE5OjA1OjE4LjAwMDAwMCswMDAwCjU1NCxKVkJaQ1BLWEhGTVU0OTEsSlZCWkNQS1hIRk1VNDkxLW45d3MydGwxLDIwMTUtMDEtMTBUMTk6MDU6MTguMDAwMDAwKzAwMDAKNjQxLEJGTkxVUklTSlhUSDY0NyxCRk5MVVJJU0pYVEg2NDctZnVjcTFlbTgsMjAxNS0wMS0xMVQxMTozNDo1MS4wMDAwMDArMDAwMAo2NDIsQkZOTFVSSVNKWFRINjQ3LEJGTkxVUklTSlhUSDY0Ny1mdWNxMWVtOCwyMDE1LTAxLTExVDExOjM0OjUxLjAwMDAwMCswMDAwCjY2MCxHQVlJQkxVQ09FREo3MzIsR0FZSUJMVUNPRURKNzMyLWdidmVtNDg1LDIwMTUtMDEtMTFUMTU6MTQ6NTYuMDAwMDAwKzAwMDAKNjYxLEdBWUlCTFVDT0VESjczMixHQVlJQkxVQ09FREo3MzItZ2J2ZW00ODUsMjAxNS0wMS0xMVQxNToxNDo1Ni4wMDAwMDArMDAwMAo3MDAsR1NRSlhJT0tZTUVBNzEyLEdTUUpYSU9LWU1FQTcxMi0ycXhudHN3YywyMDE1LTAxLTEyVDAwOjQ2OjU1LjAwMDAwMCswMDAwCjcwMSxHU1FKWElPS1lNRUE3MTIsR1NRSlhJT0tZTUVBNzEyLTJxeG50c3djLDIwMTUtMDEtMTJUMDA6NDY6NTUuMDAwMDAwKzAwMDAKODI1LE9NQ1ZVQUlLU0RUUjY1MSxPTUNWVUFJS1NEVFI2NTEtdm9rcjQ1ODIsMjAxNS0wMS0xM1QwMjozMTo1NC4wMDAwMDArMDAwMAo4MjYsT01DVlVBSUtTRFRSNjUxLE9NQ1ZVQUlLU0RUUjY1MS12b2tyNDU4MiwyMDE1LTAxLTEzVDAyOjMxOjU0LjAwMDAwMCswMDAwCjkzMCxIRFNBTVBUT0xCV0M0MzgsSERTQU1QVE9MQldDNDM4LWFpNG02amNoLDIwMTUtMDEtMTRUMDE6MzI6MDIuMDAwMDAwKzAwMDAKOTMxLEhEU0FNUFRPTEJXQzQzOCxIRFNBTVBUT0xCV0M0MzgtYWk0bTZqY2gsMjAxNS0wMS0xNFQwMTozMjowMi4wMDAwMDArMDAwMAoxMDIwLEdBWUlCTFVDT0VESjczMixHQVlJQkxVQ09FREo3MzItbHBrdXdncjQsMjAxNS0wMS0xNFQxNDo1OToyMC4wMDAwMDArMDAwMAoxMDIxLEdBWUlCTFVDT0VESjczMixHQVlJQkxVQ09FREo3MzItbHBrdXdncjQsMjAxNS0wMS0xNFQxNDo1OToyMC4wMDAwMDArMDAwMAoxMDIzLEdBWUlCTFVDT0VESjczMixHQVlJQkxVQ09FREo3MzItbHBrdXdncjQsMjAxNS0wMS0xNFQxNToxMjowMi4wMDAwMDArMDAwMAoxMDI0LEdBWUlCTFVDT0VESjczMixHQVlJQkxVQ09FREo3MzItbHBrdXdncjQsMjAxNS0wMS0xNFQxNToxMjowMi4wMDAwMDArMDAwMAoxMjkxLFpQVElITlNWRllBUTE0NixaUFRJSE5TVkZZQVExNDYtdThjNG5xNzUsMjAxNS0wMS0xNlQxMjozMToyMy4wMDAwMDArMDAwMAoxMjkyLFpQVElITlNWRllBUTE0NixaUFRJSE5TVkZZQVExNDYtdThjNG5xNzUsMjAxNS0wMS0xNlQxMjozMToyMy4wMDAwMDArMDAwMAo=" download="extract_0008.csv"><button style="background-color: #67C2DC; color: #FFFFFF; border: none; padding: 5px; font-weight: bold; cursor: pointer; border-radius: 4px;">CSV</button></a></td>
  </tr>
  <tr>
    <td style="height: 40px; background-color: #4CA64C; color: transparent;font-size: 0px;" class="gt_row gt_left">#4CA64C</td>
    <td style="height: 40px; color: #666666;font-size: 13px;font-weight: bold;" class="gt_row gt_right">9</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_left">
        <div style="margin: 0; padding: 0; display: inline-block; height: 30px; vertical-align: middle; width: 16%;">
            <!--?xml version="1.0" encoding="UTF-8"?--><!--?xml version="1.0" encoding="UTF-8"?-->
<svg width="30px" height="30px" viewbox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink">
    <title>row_count_match</title>
    <g id="Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="row_count_match" transform="translate(0.000000, 0.793103)">
            <path d="M56.712234,1.01466935 C59.1975153,1.01466935 61.4475153,2.02202867 63.076195,3.65070832 C64.7048747,5.27938798 65.712234,7.52938798 65.712234,10.0146694 L65.712234,10.0146694 L65.712234,65.0146694 L10.712234,65.0146694 C8.22695259,65.0146694 5.97695259,64.00731 4.34827294,62.3786304 C2.71959328,60.7499507 1.71223397,58.4999507 1.71223397,56.0146694 L1.71223397,56.0146694 L1.71223397,10.0146694 C1.71223397,7.52938798 2.71959328,5.27938798 4.34827294,3.65070832 C5.97695259,2.02202867 8.22695259,1.01466935 10.712234,1.01466935 L10.712234,1.01466935 Z" id="rectangle" stroke="#000000" stroke-width="2" fill="#FFFFFF"></path>
            <path d="M29.1646149,28.4853306 L29.1646149,69.4853306 L27.0549084,69.4850493 C26.9296179,69.4826944 26.6295085,69.4606645 26.4163708,69.2548765 C26.2882481,69.1311718 26.212234,68.9348269 26.212234,68.6519973 L26.212234,68.6519973 L26.212234,29.318664 C26.212234,29.0358344 26.2882481,28.8394895 26.4163708,28.7157848 C26.6561507,28.4842733 27.0060041,28.4853306 27.0931863,28.4853306 L29.1646149,28.4853306 Z M35.1599393,28.4853306 L35.1599393,69.4853306 L32.2645286,69.4853306 L32.2645286,28.4853306 L35.1599393,28.4853306 Z M40.3593475,28.4857507 C40.4733953,28.488728 40.76682,28.5048146 40.9853552,28.6949451 C41.1008215,28.7954034 41.1819999,28.9513684 41.2051776,29.174832 L41.2051776,29.174832 L41.212234,68.6519973 C41.212234,68.9309833 41.1385277,69.1258369 41.0132803,69.2498094 C40.7943074,69.4665535 40.478047,69.4818787 40.3594139,69.4849106 L40.3594139,69.4849106 L38.259853,69.4852498 L38.259853,28.4854114 Z" id="rows_two" stroke="#000000" fill-rule="nonzero" transform="translate(33.712234, 48.985331) rotate(-90.000000) translate(-33.712234, -48.985331) "></path>
            <g id="vertical_equal" transform="translate(30.000000, 29.380570)" stroke="#000000" stroke-linecap="square">
                <line x1="2.21223397" y1="0.514669353" x2="2.21223397" y2="7.58573716" id="Line"></line>
                <line x1="5.21223397" y1="0.514669353" x2="5.21223397" y2="7.58573716" id="Line"></line>
            </g>
            <path d="M27.0931863,-2.98533065 C26.8836625,-2.98533065 25.712234,-2.93533065 25.712234,-1.65199731 L25.712234,37.681336 C25.712234,38.9646694 26.8836625,39.0146694 27.0931863,39.0146694 L29.6646149,39.0146694 L29.6646149,-2.98533065 L27.0931863,-2.98533065 Z M35.6721771,-2.98533065 L35.6721771,39.0146694 L31.7522908,39.0146694 L31.7522908,39.0146694 L31.7522908,-2.98533065 L31.7522908,-2.98533065 L35.6721771,-2.98533065 Z M40.3656149,-2.9849096 C40.6448786,-2.97823698 41.712234,-2.87699731 41.712234,-1.65199731 L41.712234,-1.65199731 L41.712234,37.681336 C41.712234,38.9646694 40.5408054,39.0146694 40.3312816,39.0146694 L40.3312816,39.0146694 L37.759853,39.0146694 L37.759853,-2.98533065 Z" id="rows_one" fill="#000000" fill-rule="nonzero" transform="translate(33.712234, 18.014669) rotate(-90.000000) translate(-33.712234, -18.014669) "></path>
        </g>
    </g>
</svg>
        </div>
        <div style="font-family: 'IBM Plex Mono', monospace, courier; color: black; font-size: 11px; display: inline-block; vertical-align: middle;">
            <div>row_count_match()</div>
        </div>
        
        </td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">—</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">2000</td>
    <td style="height: 40px; background-color: #FCFCFC; border-left: 1px solid #D3D3D3;" class="gt_row gt_center"><svg width="25px" height="25px" viewbox="0 0 25 25" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" style="vertical-align: middle;">
    <g id="unchanged" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="unchanged" transform="translate(0.500000, 0.570147)">
            <rect id="Rectangle" x="0.125132506" y="0" width="23.749735" height="23.7894737"></rect>
            <path d="M5.80375046,8.18194736 C3.77191832,8.18194736 2.11875046,9.83495328 2.11875046,11.8669474 C2.11875046,13.8989414 3.77191832,15.5519474 5.80375046,15.5519474 C7.8355826,15.5519474 9.48875046,13.8989414 9.48875046,11.8669474 C9.48875046,9.83495328 7.83552863,8.18194736 5.80375046,8.18194736 Z M5.80375046,14.814915 C4.17821997,14.814915 2.85578285,13.4924778 2.85578285,11.8669474 C2.85578285,10.2414169 4.17821997,8.91897975 5.80375046,8.91897975 C7.42928095,8.91897975 8.75171807,10.2414169 8.75171807,11.8669474 C8.75171807,13.4924778 7.42928095,14.814915 5.80375046,14.814915 Z" id="Shape" fill="#000000" fill-rule="nonzero"></path>
            <path d="M13.9638189,8.699335 C13.9364621,8.70430925 13.9091059,8.71176968 13.8842359,8.71923074 C13.7822704,8.73663967 13.6877654,8.77643115 13.6056956,8.83860518 L10.2433156,11.3852598 C10.0766886,11.5046343 9.97720993,11.6986181 9.97720993,11.9025491 C9.97720993,12.1064807 10.0766886,12.3004639 10.2433156,12.4198383 L13.6056956,14.966493 C13.891697,15.1803725 14.2970729,15.1231721 14.5109517,14.8371707 C14.7248313,14.5511692 14.6676309,14.145794 14.3816294,13.9319145 L12.5313257,12.5392127 L21.8812495,12.5392127 L21.8812495,11.2658854 L12.5313257,11.2658854 L14.3816294,9.87318364 C14.6377872,9.71650453 14.7497006,9.40066014 14.6477351,9.11714553 C14.5482564,8.83363156 14.262255,8.65954352 13.9638189,8.699335 Z" id="arrow" fill="#000000" transform="translate(15.929230, 11.894737) rotate(-180.000000) translate(-15.929230, -11.894737) "></path>
        </g>
    </g>
</svg></td>
    <td style="height: 40px; background-color: #FCFCFC; border-right: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color:#4CA64C;">✓</span></td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_right">1</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5;" class="gt_row gt_right">1<br>1.00</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5;" class="gt_row gt_right">0<br>0.00</td>
    <td style="height: 40px; background-color: #FCFCFC; border-left: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color: #AAAAAA;">○</span></td>
    <td style="height: 40px; background-color: #FCFCFC;" class="gt_row gt_center"><span style="color: #EBBC14;">○</span></td>
    <td style="height: 40px; background-color: #FCFCFC; border-right: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color: #FF3300;">○</span></td>
    <td style="height: 40px;" class="gt_row gt_center">—</td>
  </tr>
  <tr>
    <td style="height: 40px; background-color: #4CA64C; color: transparent;font-size: 0px;" class="gt_row gt_left">#4CA64C</td>
    <td style="height: 40px; color: #666666;font-size: 13px;font-weight: bold;" class="gt_row gt_right">10</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_left">
        <div style="margin: 0; padding: 0; display: inline-block; height: 30px; vertical-align: middle; width: 16%;">
            <!--?xml version="1.0" encoding="UTF-8"?--><!--?xml version="1.0" encoding="UTF-8"?-->
<svg width="30px" height="30px" viewbox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink">
    <title>col_exists</title>
    <g id="Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="col_exists" transform="translate(0.000000, 0.827586)">
            <path d="M56.712234,1.01466935 C59.1975153,1.01466935 61.4475153,2.02202867 63.076195,3.65070832 C64.7048747,5.27938798 65.712234,7.52938798 65.712234,10.0146694 L65.712234,10.0146694 L65.712234,65.0146694 L10.712234,65.0146694 C8.22695259,65.0146694 5.97695259,64.00731 4.34827294,62.3786304 C2.71959328,60.7499507 1.71223397,58.4999507 1.71223397,56.0146694 L1.71223397,56.0146694 L1.71223397,10.0146694 C1.71223397,7.52938798 2.71959328,5.27938798 4.34827294,3.65070832 C5.97695259,2.02202867 8.22695259,1.01466935 10.712234,1.01466935 L10.712234,1.01466935 Z" id="rectangle" stroke="#000000" stroke-width="2" fill="#FFFFFF"></path>
            <rect id="column" fill="#000000" x="12.2117153" y="12.0146694" width="20" height="42" rx="1"></rect>
            <path d="M44.3177114,43.0146694 L44.3177114,40.5136928 L46.818688,40.5136928 L46.818688,43.0146694 L44.3177114,43.0146694 Z M44.3177114,38.0000209 L44.3177114,37.314474 C44.3177114,35.6979295 44.9397755,34.178739 46.1839224,32.7568569 L46.9837271,31.830099 C48.3125097,30.3066539 48.9768911,29.058294 48.9768911,28.0849819 C48.9768911,27.3317229 48.6849019,26.7350492 48.1009146,26.2949428 C47.5169273,25.8548364 46.7298258,25.6347865 45.7395864,25.6347865 C44.4446581,25.6347865 43.0693463,25.9479345 41.6136099,26.5742397 L41.6136099,24.4541225 C43.1793729,23.9801618 44.643551,23.743185 46.006188,23.743185 C47.7327591,23.743185 49.1038392,24.1303881 50.1194692,24.9048061 C51.1350993,25.679224 51.6429067,26.7265768 51.6429067,28.0468959 C51.6429067,28.7916913 51.4969121,29.4327982 51.2049185,29.9702358 C50.9129248,30.5076733 50.3522208,31.1699389 49.5227896,31.9570522 L48.7356802,32.6933803 C47.9485669,33.4381757 47.432296,34.0623556 47.1868521,34.5659389 C46.9414081,35.0695221 46.818688,35.7487146 46.818688,36.6035365 L46.818688,38.0000209 L44.3177114,38.0000209 Z" id="?" fill="#000000"></path>
        </g>
    </g>
</svg>
        </div>
        <div style="font-family: 'IBM Plex Mono', monospace, courier; color: black; font-size: 11px; display: inline-block; vertical-align: middle;">
            <div>col_exists()</div>
        </div>
        
        </td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">start_day</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">—</td>
    <td style="height: 40px; background-color: #FCFCFC; border-left: 1px solid #D3D3D3;" class="gt_row gt_center"><svg width="25px" height="25px" viewbox="0 0 25 25" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" style="vertical-align: middle;">
    <g id="unchanged" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="unchanged" transform="translate(0.500000, 0.570147)">
            <rect id="Rectangle" x="0.125132506" y="0" width="23.749735" height="23.7894737"></rect>
            <path d="M5.80375046,8.18194736 C3.77191832,8.18194736 2.11875046,9.83495328 2.11875046,11.8669474 C2.11875046,13.8989414 3.77191832,15.5519474 5.80375046,15.5519474 C7.8355826,15.5519474 9.48875046,13.8989414 9.48875046,11.8669474 C9.48875046,9.83495328 7.83552863,8.18194736 5.80375046,8.18194736 Z M5.80375046,14.814915 C4.17821997,14.814915 2.85578285,13.4924778 2.85578285,11.8669474 C2.85578285,10.2414169 4.17821997,8.91897975 5.80375046,8.91897975 C7.42928095,8.91897975 8.75171807,10.2414169 8.75171807,11.8669474 C8.75171807,13.4924778 7.42928095,14.814915 5.80375046,14.814915 Z" id="Shape" fill="#000000" fill-rule="nonzero"></path>
            <path d="M13.9638189,8.699335 C13.9364621,8.70430925 13.9091059,8.71176968 13.8842359,8.71923074 C13.7822704,8.73663967 13.6877654,8.77643115 13.6056956,8.83860518 L10.2433156,11.3852598 C10.0766886,11.5046343 9.97720993,11.6986181 9.97720993,11.9025491 C9.97720993,12.1064807 10.0766886,12.3004639 10.2433156,12.4198383 L13.6056956,14.966493 C13.891697,15.1803725 14.2970729,15.1231721 14.5109517,14.8371707 C14.7248313,14.5511692 14.6676309,14.145794 14.3816294,13.9319145 L12.5313257,12.5392127 L21.8812495,12.5392127 L21.8812495,11.2658854 L12.5313257,11.2658854 L14.3816294,9.87318364 C14.6377872,9.71650453 14.7497006,9.40066014 14.6477351,9.11714553 C14.5482564,8.83363156 14.262255,8.65954352 13.9638189,8.699335 Z" id="arrow" fill="#000000" transform="translate(15.929230, 11.894737) rotate(-180.000000) translate(-15.929230, -11.894737) "></path>
        </g>
    </g>
</svg></td>
    <td style="height: 40px; background-color: #FCFCFC; border-right: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color:#4CA64C;">✓</span></td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_right">1</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5;" class="gt_row gt_right">1<br>1.00</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5;" class="gt_row gt_right">0<br>0.00</td>
    <td style="height: 40px; background-color: #FCFCFC; border-left: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color: #AAAAAA;">○</span></td>
    <td style="height: 40px; background-color: #FCFCFC;" class="gt_row gt_center"><span style="color: #EBBC14;">○</span></td>
    <td style="height: 40px; background-color: #FCFCFC; border-right: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color: #FF3300;">○</span></td>
    <td style="height: 40px;" class="gt_row gt_center">—</td>
  </tr>
</tbody>
<tfoot><tr class="gt_sourcenotes"><td class="gt_sourcenote" colspan="14" style="text-align: left;"><span class="gt_from_md"><div style="margin-top: 5px; margin-bottom: 5px;"><span style="background-color: #FFF; color: #444; padding: 0.5em 0.5em; position: inherit; text-transform: uppercase; margin-left: 10px; margin-right: 5px; border: solid 1px #999999; font-variant-numeric: tabular-nums; border-radius: 0; padding: 2px 10px 2px 10px;">2026-07-22 23:16:23 UTC</span><span style="background-color: #FFF; color: #444; padding: 0.5em 0.5em; position: inherit; margin-right: 5px; border: solid 1px #999999; font-variant-numeric: tabular-nums; border-radius: 0; padding: 2px 10px 2px 10px;">&lt; 1 s</span><span style="background-color: #FFF; color: #444; padding: 0.5em 0.5em; position: inherit; text-transform: uppercase; margin: 5px 1px 5px -1px; border: solid 1px #999999; font-variant-numeric: tabular-nums; border-radius: 0; padding: 2px 10px 2px 10px;">2026-07-22 23:16:23 UTC</span></div></span></td></tr><tr class="gt_sourcenotes"><td class="gt_sourcenote" colspan="14" style="text-align: left;"><span class="gt_from_md"><hr style="border: none; border-top-width: 1px; border-top-style: dotted; border-top-color: #B5B5B5; margin-top: -3px; margin-bottom: 3px;">
<strong>Notes</strong>
<p><span style="font-variant: small-caps; font-weight: bold; font-size: smaller; text-transform: uppercase; color: #333333;">Step 7</span> <span style="font-family: &quot;IBM Plex Mono&quot;, monospace; font-size: smaller;">(pre_applied)</span> Precondition applied: table dimensions <span style="font-family: monospace;">[2,000 rows, 11 columns]</span> → <span style="font-family: monospace;">[<strong>1</strong> row, <strong>1</strong> column]</span>.</p></span></td></tr></tfoot>
</table>

</div>
</div>
</div>
<p>This data validation makes use of the many <a href="../../reference/index.html#validation-steps">validation methods available in the library</a>. Because thresholds have been set at the <code>Validate(thresholds=)</code> parameter, we can now see where certain validation steps have greater amounts of failures. Any validation steps with green indicators passed with flying colors, whereas: (1) gray indicates the ‘warning’ condition was met (at least one test unit failing), (2) yellow is for the ‘error’ condition (20 or more test units failing), and (3) red means ‘critical’ and that’s tripped when 10% of all test units are failing ones.</p>
<p>Reporting tables are essential to the package and they help communicate what went wrong (or well) in a validation workflow. Now let’s look at some additional reporting that Pointblank can give you to better understand <em>where</em> things might’ve gone wrong.</p>
</section>
<section id="reporting-for-individual-validation-steps" class="level1">
<h1>Reporting for Individual Validation Steps</h1>
<p>The second validation step of the previous data validation showed 18 failing test units. That translates to 18 spots in a 2,000 row DataFrame where a data quality assertion failed. We often would like to know exactly what that failing data is; it’s usually the next step toward addressing data quality issues.</p>
<p>Pointblank offers a method that gives you a tabular report on a specific step: <a href="`Validate.get_step_report`"><code>get_step_report()</code></a>. The previous tables you’ve seen (the validation report table) dealt with providing a summary of all validation steps. In contrast, a focused report on a single step can help to get to the heart of a data quality issue. Here’s how that looks for Step 2:</p>
<div id="300b387b" class="cell" data-execution_count="3">
<div class="sourceCode cell-code" id="cb4" style="background: #f1f3f5;"><pre class="sourceCode python"><code class="sourceCode python"><span id="cb4-1">validation_2.get_step_report(i<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>)</span></code></pre></div>
<div class="cell-output cell-output-display" data-execution_count="3">
<div id="pb_preview_tbl" style="padding-left:0px;padding-right:0px;padding-top:10px;padding-bottom:10px;overflow-x:auto;overflow-y:auto;width:auto;height:auto;">
<style>
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono&display=swap');
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Sans&display=swap');
#pb_preview_tbl table {
          font-family: 'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Helvetica Neue', 'Fira Sans', 'Droid Sans', Arial, sans-serif;
          -webkit-font-smoothing: antialiased;
          -moz-osx-font-smoothing: grayscale;
        }

#pb_preview_tbl thead, tbody, tfoot, tr, td, th { border-style: none; }
 tr { background-color: transparent; }
#pb_preview_tbl p { margin: 0; padding: 0; }
 #pb_preview_tbl .gt_table { display: table; border-collapse: collapse; line-height: normal; margin-left: auto; margin-right: auto; color: #333333; font-size: 16px; font-weight: normal; font-style: normal; background-color: #FFFFFF; width: auto; border-top-style: solid; border-top-width: 2px; border-top-color: #A8A8A8; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #A8A8A8; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; }
 #pb_preview_tbl .gt_caption { padding-top: 4px; padding-bottom: 4px; }
 #pb_preview_tbl .gt_title { color: #333333; font-size: 125%; font-weight: initial; padding-top: 4px; padding-bottom: 4px; padding-left: 5px; padding-right: 5px; border-bottom-color: #FFFFFF; border-bottom-width: 0; }
 #pb_preview_tbl .gt_subtitle { color: #333333; font-size: 85%; font-weight: initial; padding-top: 3px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; border-top-color: #FFFFFF; border-top-width: 0; }
 #pb_preview_tbl .gt_heading { background-color: #FFFFFF; text-align: left; border-bottom-color: #FFFFFF; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; }
 #pb_preview_tbl .gt_bottom_border { border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; }
 #pb_preview_tbl .gt_col_headings { border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; }
 #pb_preview_tbl .gt_col_heading { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: normal; text-transform: inherit; border-left-style: solid; border-left-width: 1px; border-left-color: #F2F2F2; border-right-style: solid; border-right-width: 1px; border-right-color: #F2F2F2; vertical-align: bottom; padding-top: 5px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; overflow-x: hidden; }
 #pb_preview_tbl .gt_column_spanner_outer { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: normal; text-transform: inherit; padding-top: 0; padding-bottom: 0; padding-left: 4px; padding-right: 4px; }
 #pb_preview_tbl .gt_column_spanner_outer:first-child { padding-left: 0; }
 #pb_preview_tbl .gt_column_spanner_outer:last-child { padding-right: 0; }
 #pb_preview_tbl .gt_column_spanner { border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; vertical-align: bottom; padding-top: 5px; padding-bottom: 5px; overflow-x: hidden; display: inline-block; width: 100%; }
 #pb_preview_tbl .gt_spanner_row { border-bottom-style: hidden; }
 #pb_preview_tbl .gt_group_heading { padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; text-transform: inherit; border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; vertical-align: middle; text-align: left; }
 #pb_preview_tbl .gt_empty_group_heading { padding: 0.5px; color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; vertical-align: middle; }
 #pb_preview_tbl .gt_from_md> :first-child { margin-top: 0; }
 #pb_preview_tbl .gt_from_md> :last-child { margin-bottom: 0; }
 #pb_preview_tbl .gt_row { padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; margin: 10px; border-top-style: solid; border-top-width: 1px; border-top-color: #D3D3D3; border-left-style: solid; border-left-width: 1px; border-left-color: #E9E9E9; border-right-style: solid; border-right-width: 1px; border-right-color: #E9E9E9; vertical-align: middle; overflow-x: hidden; }
 #pb_preview_tbl .gt_stub { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; text-transform: inherit; border-right-style: solid; border-right-width: 2px; border-right-color: #D3D3D3; padding-left: 5px; padding-right: 5px; }
 #pb_preview_tbl .gt_stub_row_group { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; text-transform: inherit; border-right-style: solid; border-right-width: 2px; border-right-color: #D3D3D3; padding-left: 5px; padding-right: 5px; vertical-align: top; }
 #pb_preview_tbl .gt_row_group_first td { border-top-width: 2px; }
 #pb_preview_tbl .gt_row_group_first th { border-top-width: 2px; }
 #pb_preview_tbl .gt_striped { color: #333333; background-color: #F4F4F4; }
 #pb_preview_tbl .gt_table_body { border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; }
 #pb_preview_tbl .gt_summary_row { color: #333333; background-color: #FFFFFF; text-transform: inherit; padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; }
 #pb_preview_tbl .gt_first_summary_row { border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; }
 #pb_preview_tbl .gt_last_summary_row_top { border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; }
 #pb_preview_tbl .gt_grand_summary_row { color: #333333; background-color: #FFFFFF; text-transform: inherit; padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; }
 #pb_preview_tbl .gt_first_grand_summary_row_bottom { border-top-style: double; border-top-width: 6px; border-top-color: #D3D3D3; }
 #pb_preview_tbl .gt_last_grand_summary_row_top { border-bottom-style: double; border-bottom-width: 6px; border-bottom-color: #D3D3D3; }
 #pb_preview_tbl .gt_sourcenotes { color: #333333; background-color: #FFFFFF; border-bottom-style: none; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; }
 #pb_preview_tbl .gt_sourcenote { font-size: 90%; padding-top: 4px; padding-bottom: 4px; padding-left: 5px; padding-right: 5px; text-align: left; }
 #pb_preview_tbl .gt_left { text-align: left; }
 #pb_preview_tbl .gt_center { text-align: center; }
 #pb_preview_tbl .gt_right { text-align: right; font-variant-numeric: tabular-nums; }
 #pb_preview_tbl .gt_font_normal { font-weight: normal; }
 #pb_preview_tbl .gt_font_bold { font-weight: bold; }
 #pb_preview_tbl .gt_font_italic { font-style: italic; }
 #pb_preview_tbl .gt_super { font-size: 65%; }
 #pb_preview_tbl .gt_footnotes { color: font-color(#FFFFFF); background-color: #FFFFFF; border-bottom-style: none; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; }
 #pb_preview_tbl .gt_footnote { margin: 0px; font-size: 90%; padding-top: 4px; padding-bottom: 4px; padding-left: 5px; padding-right: 5px; }
 #pb_preview_tbl .gt_sourcenotes { color: #333333; background-color: #FFFFFF; border-bottom-style: none; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; }
 #pb_preview_tbl .gt_sourcenote { font-size: 90%; padding-top: 4px; padding-bottom: 4px; padding-left: 5px; padding-right: 5px; text-align: left; }
 #pb_preview_tbl .gt_footnote_marks { font-size: 75%; vertical-align: 0.4em; position: initial; }
 #pb_preview_tbl .gt_asterisk { font-size: 100%; vertical-align: 0; }
 
</style>
<table style="table-layout: fixed;; width: 0px" class="gt_table" data-quarto-disable-processing="true" data-quarto-bootstrap="false">
<colgroup>
  <col style="width:41.2px;">
  <col style="width:127px;">
  <col style="width:197px;">
  <col style="width:205px;">
  <col style="width:205px;">
  <col style="width:80px;">
  <col style="width:80px;">
  <col style="width:104px;">
  <col style="width:135px;">
  <col style="width:88px;">
  <col style="width:119px;">
  <col style="width:96px;">
</colgroup>

<thead>

  <tr class="gt_heading">
    <td colspan="12" class="gt_heading gt_title gt_font_normal">Report for Validation Step 2<div style="font-size: 13.6px; "><div style="padding-top: 7px;">ASSERTION <span style="border-style: solid; border-width: thin; border-color: lightblue; padding-left: 2px; padding-right: 2px;"><code style="color: #303030; background-color: transparent; position: relative; bottom: 1px;"><code style="color: #303030; font-family: monospace; font-size: smaller;">session_duration &gt; 5</code></code></span></div><div style="padding-top: 7px;"><strong>18</strong> / <strong>2000</strong> TEST UNIT FAILURES IN COLUMN <strong>8</strong> </div><div>EXTRACT OF FIRST <strong>10</strong> ROWS (WITH <span style="color: #B22222;">TEST UNIT FAILURES IN RED</span>):</div></div></td>
  </tr>
<tr class="gt_col_headings">
  <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" style="color: gray20;font-family: IBM Plex Mono;font-size: 12px;" scope="col" id="pb_preview_tbl-_row_num_"></th>
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" style="color: gray20;font-family: IBM Plex Mono;font-size: 12px;" scope="col" id="pb_preview_tbl-player_id"><div><div style="white-space: nowrap; text-overflow: ellipsis; overflow: hidden; padding-bottom: 2px; margin-bottom: 2px;">player_id</div><div style="white-space: nowrap; text-overflow: ellipsis; overflow: hidden; padding-top: 2px; margin-top: 2px;"><em>String</em></div></div></th>
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" style="color: gray20;font-family: IBM Plex Mono;font-size: 12px;" scope="col" id="pb_preview_tbl-session_id"><div><div style="white-space: nowrap; text-overflow: ellipsis; overflow: hidden; padding-bottom: 2px; margin-bottom: 2px;">session_id</div><div style="white-space: nowrap; text-overflow: ellipsis; overflow: hidden; padding-top: 2px; margin-top: 2px;"><em>String</em></div></div></th>
  <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" style="color: gray20;font-family: IBM Plex Mono;font-size: 12px;" scope="col" id="pb_preview_tbl-session_start"><div><div style="white-space: nowrap; text-overflow: ellipsis; overflow: hidden; padding-bottom: 2px; margin-bottom: 2px;">session_start</div><div style="white-space: nowrap; text-overflow: ellipsis; overflow: hidden; padding-top: 2px; margin-top: 2px;"><em>Datetime</em></div></div></th>
  <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" style="color: gray20;font-family: IBM Plex Mono;font-size: 12px;" scope="col" id="pb_preview_tbl-time"><div><div style="white-space: nowrap; text-overflow: ellipsis; overflow: hidden; padding-bottom: 2px; margin-bottom: 2px;">time</div><div style="white-space: nowrap; text-overflow: ellipsis; overflow: hidden; padding-top: 2px; margin-top: 2px;"><em>Datetime</em></div></div></th>
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" style="color: gray20;font-family: IBM Plex Mono;font-size: 12px;" scope="col" id="pb_preview_tbl-item_type"><div><div style="white-space: nowrap; text-overflow: ellipsis; overflow: hidden; padding-bottom: 2px; margin-bottom: 2px;">item_type</div><div style="white-space: nowrap; text-overflow: ellipsis; overflow: hidden; padding-top: 2px; margin-top: 2px;"><em>String</em></div></div></th>
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" style="color: gray20;font-family: IBM Plex Mono;font-size: 12px;" scope="col" id="pb_preview_tbl-item_name"><div><div style="white-space: nowrap; text-overflow: ellipsis; overflow: hidden; padding-bottom: 2px; margin-bottom: 2px;">item_name</div><div style="white-space: nowrap; text-overflow: ellipsis; overflow: hidden; padding-top: 2px; margin-top: 2px;"><em>String</em></div></div></th>
  <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" style="color: gray20;font-family: IBM Plex Mono;font-size: 12px;" scope="col" id="pb_preview_tbl-item_revenue"><div><div style="white-space: nowrap; text-overflow: ellipsis; overflow: hidden; padding-bottom: 2px; margin-bottom: 2px;">item_revenue</div><div style="white-space: nowrap; text-overflow: ellipsis; overflow: hidden; padding-top: 2px; margin-top: 2px;"><em>Float64</em></div></div></th>
  <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" style="color: gray20;font-family: IBM Plex Mono;font-size: 12px; border-left: 2px solid black;border-right: 2px solid black;" scope="col" id="pb_preview_tbl-session_duration"><div><div style="white-space: nowrap; text-overflow: ellipsis; overflow: hidden; padding-bottom: 2px; margin-bottom: 2px;">session_duration</div><div style="white-space: nowrap; text-overflow: ellipsis; overflow: hidden; padding-top: 2px; margin-top: 2px;"><em>Float64</em></div></div></th>
  <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" style="color: gray20;font-family: IBM Plex Mono;font-size: 12px;" scope="col" id="pb_preview_tbl-start_day"><div><div style="white-space: nowrap; text-overflow: ellipsis; overflow: hidden; padding-bottom: 2px; margin-bottom: 2px;">start_day</div><div style="white-space: nowrap; text-overflow: ellipsis; overflow: hidden; padding-top: 2px; margin-top: 2px;"><em>Date</em></div></div></th>
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" style="color: gray20;font-family: IBM Plex Mono;font-size: 12px;" scope="col" id="pb_preview_tbl-acquisition"><div><div style="white-space: nowrap; text-overflow: ellipsis; overflow: hidden; padding-bottom: 2px; margin-bottom: 2px;">acquisition</div><div style="white-space: nowrap; text-overflow: ellipsis; overflow: hidden; padding-top: 2px; margin-top: 2px;"><em>String</em></div></div></th>
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" style="color: gray20;font-family: IBM Plex Mono;font-size: 12px;" scope="col" id="pb_preview_tbl-country"><div><div style="white-space: nowrap; text-overflow: ellipsis; overflow: hidden; padding-bottom: 2px; margin-bottom: 2px;">country</div><div style="white-space: nowrap; text-overflow: ellipsis; overflow: hidden; padding-top: 2px; margin-top: 2px;"><em>String</em></div></div></th>
</tr>
</thead>
<tbody class="gt_table_body">
  <tr>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E; color: gray;font-family: IBM Plex Mono;font-size: 10px; border-right: 2px solid #6699CC80;" class="gt_row gt_right">549</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_left">QNLVRDEOXFYJ892</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_left">QNLVRDEOXFYJ892-lz5fmr6k</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_right">2015-01-10 16:44:17+00:00</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_right">2015-01-10 16:45:29+00:00</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_left">iap</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_left">gold3</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_right">3.49</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E; color: #B22222; background-color: #FFC1C159; border-left: 2px solid black;border-right: 2px solid black;" class="gt_row gt_right">3.7</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_right">2015-01-09</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_left">crosspromo</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_left">Australia</td>
  </tr>
  <tr>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E; color: gray;font-family: IBM Plex Mono;font-size: 10px; border-right: 2px solid #6699CC80;" class="gt_row gt_right">620</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_left">RMOSWHJGELCI675</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_left">RMOSWHJGELCI675-t4y8bjcu</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_right">2015-01-11 07:24:24+00:00</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_right">2015-01-11 07:25:18+00:00</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_left">iap</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_left">offer4</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_right">17.991</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E; color: #B22222; background-color: #FFC1C159; border-left: 2px solid black;border-right: 2px solid black;" class="gt_row gt_right">5.0</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_right">2015-01-10</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_left">other_campaign</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_left">France</td>
  </tr>
  <tr>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E; color: gray;font-family: IBM Plex Mono;font-size: 10px; border-right: 2px solid #6699CC80;" class="gt_row gt_right">621</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_left">RMOSWHJGELCI675</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_left">RMOSWHJGELCI675-t4y8bjcu</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_right">2015-01-11 07:24:24+00:00</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_right">2015-01-11 07:26:24+00:00</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_left">iap</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_left">offer5</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_right">26.09</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E; color: #B22222; background-color: #FFC1C159; border-left: 2px solid black;border-right: 2px solid black;" class="gt_row gt_right">5.0</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_right">2015-01-10</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_left">other_campaign</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_left">France</td>
  </tr>
  <tr>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E; color: gray;font-family: IBM Plex Mono;font-size: 10px; border-right: 2px solid #6699CC80;" class="gt_row gt_right">622</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_left">RMOSWHJGELCI675</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_left">RMOSWHJGELCI675-t4y8bjcu</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_right">2015-01-11 07:24:24+00:00</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_right">2015-01-11 07:28:36+00:00</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_left">ad</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_left">ad_15sec</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_right">0.53</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E; color: #B22222; background-color: #FFC1C159; border-left: 2px solid black;border-right: 2px solid black;" class="gt_row gt_right">5.0</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_right">2015-01-10</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_left">other_campaign</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_left">France</td>
  </tr>
  <tr>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E; color: gray;font-family: IBM Plex Mono;font-size: 10px; border-right: 2px solid #6699CC80;" class="gt_row gt_right">663</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_left">GFLYJHAPMZWD631</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_left">GFLYJHAPMZWD631-i2v1bl7a</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_right">2015-01-11 16:13:24+00:00</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_right">2015-01-11 16:14:54+00:00</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_left">iap</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_left">gems2</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_right">3.99</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E; color: #B22222; background-color: #FFC1C159; border-left: 2px solid black;border-right: 2px solid black;" class="gt_row gt_right">3.6</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_right">2015-01-09</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_left">organic</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_left">India</td>
  </tr>
  <tr>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E; color: gray;font-family: IBM Plex Mono;font-size: 10px; border-right: 2px solid #6699CC80;" class="gt_row gt_right">772</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_left">BFNLURISJXTH647</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_left">BFNLURISJXTH647-6o5hx27z</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_right">2015-01-12 17:37:39+00:00</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_right">2015-01-12 17:39:27+00:00</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_left">iap</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_left">offer5</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_right">11.59</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E; color: #B22222; background-color: #FFC1C159; border-left: 2px solid black;border-right: 2px solid black;" class="gt_row gt_right">4.1</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_right">2015-01-10</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_left">organic</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_left">India</td>
  </tr>
  <tr>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E; color: gray;font-family: IBM Plex Mono;font-size: 10px; border-right: 2px solid #6699CC80;" class="gt_row gt_right">773</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_left">BFNLURISJXTH647</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_left">BFNLURISJXTH647-6o5hx27z</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_right">2015-01-12 17:37:39+00:00</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_right">2015-01-12 17:41:45+00:00</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_left">iap</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_left">gems3</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_right">9.99</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E; color: #B22222; background-color: #FFC1C159; border-left: 2px solid black;border-right: 2px solid black;" class="gt_row gt_right">4.1</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_right">2015-01-10</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_left">organic</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_left">India</td>
  </tr>
  <tr>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E; color: gray;font-family: IBM Plex Mono;font-size: 10px; border-right: 2px solid #6699CC80;" class="gt_row gt_right">908</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_left">KILWZYHRSJEG316</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_left">KILWZYHRSJEG316-uke7dhqj</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_right">2015-01-13 22:16:29+00:00</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_right">2015-01-13 22:17:35+00:00</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_left">iap</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_left">offer2</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_right">10.99</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E; color: #B22222; background-color: #FFC1C159; border-left: 2px solid black;border-right: 2px solid black;" class="gt_row gt_right">3.2</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_right">2015-01-04</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_left">organic</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_left">Denmark</td>
  </tr>
  <tr>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E; color: gray;font-family: IBM Plex Mono;font-size: 10px; border-right: 2px solid #6699CC80;" class="gt_row gt_right">1037</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_left">JUBDVFHCNQWT198</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_left">JUBDVFHCNQWT198-9h4xs2pb</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_right">2015-01-14 16:08:25+00:00</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_right">2015-01-14 16:08:43+00:00</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_left">iap</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_left">offer5</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_right">8.69</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E; color: #B22222; background-color: #FFC1C159; border-left: 2px solid black;border-right: 2px solid black;" class="gt_row gt_right">3.3</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_right">2015-01-14</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_left">organic</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E;" class="gt_row gt_left">Philippines</td>
  </tr>
  <tr>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E; border-bottom: 2px solid #6699CC80; color: gray;font-family: IBM Plex Mono;font-size: 10px; border-right: 2px solid #6699CC80;" class="gt_row gt_right">1038</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E; border-bottom: 2px solid #6699CC80;" class="gt_row gt_left">JUBDVFHCNQWT198</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E; border-bottom: 2px solid #6699CC80;" class="gt_row gt_left">JUBDVFHCNQWT198-9h4xs2pb</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E; border-bottom: 2px solid #6699CC80;" class="gt_row gt_right">2015-01-14 16:08:25+00:00</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E; border-bottom: 2px solid #6699CC80;" class="gt_row gt_right">2015-01-14 16:11:01+00:00</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E; border-bottom: 2px solid #6699CC80;" class="gt_row gt_left">iap</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E; border-bottom: 2px solid #6699CC80;" class="gt_row gt_left">offer4</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E; border-bottom: 2px solid #6699CC80;" class="gt_row gt_right">5.99</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E; border-bottom: 2px solid #6699CC80; color: #B22222; background-color: #FFC1C159; border-left: 2px solid black;border-right: 2px solid black;" class="gt_row gt_right">3.3</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E; border-bottom: 2px solid #6699CC80;" class="gt_row gt_right">2015-01-14</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E; border-bottom: 2px solid #6699CC80;" class="gt_row gt_left">organic</td>
    <td style="height: 14px; padding: 4px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; color: black;font-family: IBM Plex Mono;font-size: 12px; border-top: 1px solid #E9E9E;border-bottom: 1px solid #E9E9E; border-bottom: 2px solid #6699CC80;" class="gt_row gt_left">Philippines</td>
  </tr>
</tbody>

</table>

</div>
</div>
</div>
<p>This report provides the 18 rows where the failure occurred. If you scroll the table to the right you’ll see the column that underwent testing (<code>session_duration</code>) is highlighted in red. All of these values are <code>5.0</code> or less, which is in violation of the assertion (in the header) that <code>session_duration &gt; 5</code>.</p>
<p>These types of bespoke reports are useful for finding a needle in a haystack. Another good use for a step report is when validating a table schema. Using the <a href="`Validate.col_schema_match`"><code>col_schema_match()</code></a> validation method with a table schema prepared with the <a href="`Schema`"><code>Schema</code></a> class allows us to verify our understanding of the table structure. Here is a validation that performs a schema validation with the <code>small_table</code> dataset prepared as a DuckDB table:</p>
<div id="62a51535" class="cell" data-execution_count="4">
<div class="sourceCode cell-code" id="cb5" style="background: #f1f3f5;"><pre class="sourceCode python"><code class="sourceCode python"><span id="cb5-1"><span class="im" style="color: #00769E;
background-color: null;
font-style: inherit;">import</span> pointblank <span class="im" style="color: #00769E;
background-color: null;
font-style: inherit;">as</span> pb</span>
<span id="cb5-2"></span>
<span id="cb5-3"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Create a schema for the target table (`small_table` as a DuckDB table)</span></span>
<span id="cb5-4">schema <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> pb.Schema(</span>
<span id="cb5-5">    columns<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>[</span>
<span id="cb5-6">        (<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"date_time"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"timestamp(6)"</span>),</span>
<span id="cb5-7">        (<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"dates"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"date"</span>),</span>
<span id="cb5-8">        (<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"a"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"int64"</span>),</span>
<span id="cb5-9">        (<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"b"</span>,),</span>
<span id="cb5-10">        (<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"c"</span>,),</span>
<span id="cb5-11">        (<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"d"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"float64"</span>),</span>
<span id="cb5-12">        (<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"e"</span>, [<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"bool"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"boolean"</span>]),</span>
<span id="cb5-13">        (<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"f"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"str"</span>),</span>
<span id="cb5-14">    ]</span>
<span id="cb5-15">)</span>
<span id="cb5-16"></span>
<span id="cb5-17"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Use the `col_schema_match()` validation method to perform a schema check</span></span>
<span id="cb5-18">validation_3 <span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span> (</span>
<span id="cb5-19">    pb.Validate(</span>
<span id="cb5-20">        data<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>pb.load_dataset(dataset<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"small_table"</span>, tbl_type<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"duckdb"</span>),</span>
<span id="cb5-21">        tbl_name<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"small_table"</span>,</span>
<span id="cb5-22">        label<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Schema check"</span></span>
<span id="cb5-23">    )</span>
<span id="cb5-24">    .col_schema_match(schema<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span>schema)</span>
<span id="cb5-25">    .interrogate()</span>
<span id="cb5-26">)</span>
<span id="cb5-27"></span>
<span id="cb5-28">validation_3</span></code></pre></div>
<div class="cell-output cell-output-display" data-execution_count="4">
<div id="pb_tbl" style="padding-left:0px;padding-right:0px;padding-top:10px;padding-bottom:10px;overflow-x:auto;overflow-y:auto;width:auto;height:auto;">
<style>
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono&display=swap');
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Sans&display=swap');
#pb_tbl table {
          font-family: 'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Helvetica Neue', 'Fira Sans', 'Droid Sans', Arial, sans-serif;
          -webkit-font-smoothing: antialiased;
          -moz-osx-font-smoothing: grayscale;
        }

#pb_tbl thead, tbody, tfoot, tr, td, th { border-style: none; }
 tr { background-color: transparent; }
#pb_tbl p { margin: 0; padding: 0; }
 #pb_tbl .gt_table { display: table; border-collapse: collapse; line-height: normal; margin-left: auto; margin-right: auto; color: #333333; font-size: 90%; font-weight: normal; font-style: normal; background-color: #FFFFFF; width: auto; border-top-style: solid; border-top-width: 2px; border-top-color: #A8A8A8; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #A8A8A8; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; }
 #pb_tbl .gt_caption { padding-top: 4px; padding-bottom: 4px; }
 #pb_tbl .gt_title { color: #333333; font-size: 125%; font-weight: initial; padding-top: 4px; padding-bottom: 4px; padding-left: 5px; padding-right: 5px; border-bottom-color: #FFFFFF; border-bottom-width: 0; }
 #pb_tbl .gt_subtitle { color: #333333; font-size: 85%; font-weight: initial; padding-top: 3px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; border-top-color: #FFFFFF; border-top-width: 0; }
 #pb_tbl .gt_heading { background-color: #FFFFFF; text-align: left; border-bottom-color: #FFFFFF; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; }
 #pb_tbl .gt_bottom_border { border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; }
 #pb_tbl .gt_col_headings { border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; }
 #pb_tbl .gt_col_heading { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: normal; text-transform: inherit; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; vertical-align: bottom; padding-top: 5px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; overflow-x: hidden; }
 #pb_tbl .gt_column_spanner_outer { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: normal; text-transform: inherit; padding-top: 0; padding-bottom: 0; padding-left: 4px; padding-right: 4px; }
 #pb_tbl .gt_column_spanner_outer:first-child { padding-left: 0; }
 #pb_tbl .gt_column_spanner_outer:last-child { padding-right: 0; }
 #pb_tbl .gt_column_spanner { border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; vertical-align: bottom; padding-top: 5px; padding-bottom: 5px; overflow-x: hidden; display: inline-block; width: 100%; }
 #pb_tbl .gt_spanner_row { border-bottom-style: hidden; }
 #pb_tbl .gt_group_heading { padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; text-transform: inherit; border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; vertical-align: middle; text-align: left; }
 #pb_tbl .gt_empty_group_heading { padding: 0.5px; color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; vertical-align: middle; }
 #pb_tbl .gt_from_md> :first-child { margin-top: 0; }
 #pb_tbl .gt_from_md> :last-child { margin-bottom: 0; }
 #pb_tbl .gt_row { padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; margin: 10px; border-top-style: solid; border-top-width: 1px; border-top-color: #D3D3D3; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; vertical-align: middle; overflow-x: hidden; }
 #pb_tbl .gt_stub { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; text-transform: inherit; border-right-style: solid; border-right-width: 2px; border-right-color: #D3D3D3; padding-left: 5px; padding-right: 5px; }
 #pb_tbl .gt_stub_row_group { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; text-transform: inherit; border-right-style: solid; border-right-width: 2px; border-right-color: #D3D3D3; padding-left: 5px; padding-right: 5px; vertical-align: top; }
 #pb_tbl .gt_row_group_first td { border-top-width: 2px; }
 #pb_tbl .gt_row_group_first th { border-top-width: 2px; }
 #pb_tbl .gt_striped { color: #333333; background-color: #F4F4F4; }
 #pb_tbl .gt_table_body { border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; }
 #pb_tbl .gt_summary_row { color: #333333; background-color: #FFFFFF; text-transform: inherit; padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; }
 #pb_tbl .gt_first_summary_row { border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; }
 #pb_tbl .gt_last_summary_row_top { border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; }
 #pb_tbl .gt_grand_summary_row { color: #333333; background-color: #FFFFFF; text-transform: inherit; padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; }
 #pb_tbl .gt_first_grand_summary_row_bottom { border-top-style: double; border-top-width: 6px; border-top-color: #D3D3D3; }
 #pb_tbl .gt_last_grand_summary_row_top { border-bottom-style: double; border-bottom-width: 6px; border-bottom-color: #D3D3D3; }
 #pb_tbl .gt_sourcenotes { color: #333333; background-color: #FFFFFF; border-bottom-style: none; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; }
 #pb_tbl .gt_sourcenote { font-size: 90%; padding-top: 4px; padding-bottom: 4px; padding-left: 5px; padding-right: 5px; text-align: left; }
 #pb_tbl .gt_left { text-align: left; }
 #pb_tbl .gt_center { text-align: center; }
 #pb_tbl .gt_right { text-align: right; font-variant-numeric: tabular-nums; }
 #pb_tbl .gt_font_normal { font-weight: normal; }
 #pb_tbl .gt_font_bold { font-weight: bold; }
 #pb_tbl .gt_font_italic { font-style: italic; }
 #pb_tbl .gt_super { font-size: 65%; }
 #pb_tbl .gt_footnotes { color: font-color(#FFFFFF); background-color: #FFFFFF; border-bottom-style: none; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; }
 #pb_tbl .gt_footnote { margin: 0px; font-size: 90%; padding-top: 4px; padding-bottom: 4px; padding-left: 5px; padding-right: 5px; }
 #pb_tbl .gt_sourcenotes { color: #333333; background-color: #FFFFFF; border-bottom-style: none; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; }
 #pb_tbl .gt_sourcenote { font-size: 90%; padding-top: 4px; padding-bottom: 4px; padding-left: 5px; padding-right: 5px; text-align: left; }
 #pb_tbl .gt_footnote_marks { font-size: 75%; vertical-align: 0.4em; position: initial; }
 #pb_tbl .gt_asterisk { font-size: 100%; vertical-align: 0; }
 
</style>
<table style="table-layout: fixed;; width: 0px" class="gt_table" data-quarto-disable-processing="true" data-quarto-bootstrap="false">
<colgroup>
  <col style="width:4px;">
  <col style="width:35px;">
  <col style="width:190px;">
  <col style="width:120px;">
  <col style="width:120px;">
  <col style="width:50px;">
  <col style="width:50px;">
  <col style="width:60px;">
  <col style="width:60px;">
  <col style="width:60px;">
  <col style="width:30px;">
  <col style="width:30px;">
  <col style="width:30px;">
  <col style="width:65px;">
</colgroup>

<thead>

  <tr class="gt_heading">
    <td colspan="14" class="gt_heading gt_title gt_font_normal" style="color: #444444;font-size: 28px;text-align: left;font-weight: bold; text-align: left;">Pointblank Validation</td>
  </tr>
  <tr class="gt_heading">
    <td colspan="14" class="gt_heading gt_subtitle gt_font_normal gt_bottom_border" style="text-align: left;"><div><span style="text-decoration-style: solid; text-decoration-color: #ADD8E6; text-decoration-line: underline; text-underline-position: under; color: #333333; font-variant-numeric: tabular-nums; padding-left: 4px; margin-right: 5px; padding-right: 2px;">Schema check</span><div style="padding-top: 10px; padding-bottom: 5px;"><span style="background-color: #000000; color: #FFFFFF; padding: 0.5em 0.5em; position: inherit; text-transform: uppercase; margin: 5px 0px 5px 0px; border: solid 1px #000000; font-weight: bold; padding: 2px 15px 2px 15px; font-size: 10px;">DuckDB</span><span style="background-color: none; color: #222222; padding: 0.5em 0.5em; position: inherit; margin: 5px 10px 5px -4px; border: solid 1px #000000; font-weight: bold; padding: 2px 15px 2px 15px; font-size: 10px;">small_table</span></div></div></td>
  </tr>
<tr class="gt_col_headings">
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-status_color"></th>
  <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-i"></th>
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-type_upd">STEP</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-columns_upd">COLUMNS</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-values_upd">VALUES</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-tbl">TBL</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-eval">EVAL</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-test_units">UNITS</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-pass">PASS</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-fail">FAIL</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-w_upd">W</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-e_upd">E</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-c_upd">C</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_center" rowspan="1" colspan="1" style="color: #666666;font-weight: bold;" scope="col" id="pb_tbl-extract_upd">EXT</th>
</tr>
</thead>
<tbody class="gt_table_body">
  <tr>
    <td style="height: 40px; background-color: #4CA64C66; color: transparent;font-size: 0px;" class="gt_row gt_left">#4CA64C66</td>
    <td style="height: 40px; color: #666666;font-size: 13px;font-weight: bold;" class="gt_row gt_right">1</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_left">
        <div style="margin: 0; padding: 0; display: inline-block; height: 30px; vertical-align: middle; width: 16%;">
            <!--?xml version="1.0" encoding="UTF-8"?--><!--?xml version="1.0" encoding="UTF-8"?-->
<svg width="30px" height="30px" viewbox="0 0 67 67" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink">
    <title>col_schema_match</title>
    <g id="Icons" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="col_schema_match" transform="translate(0.000000, 0.310345)">
            <path d="M56.712234,1.01466935 C59.1975153,1.01466935 61.4475153,2.02202867 63.076195,3.65070832 C64.7048747,5.27938798 65.712234,7.52938798 65.712234,10.0146694 L65.712234,10.0146694 L65.712234,65.0146694 L10.712234,65.0146694 C8.22695259,65.0146694 5.97695259,64.00731 4.34827294,62.3786304 C2.71959328,60.7499507 1.71223397,58.4999507 1.71223397,56.0146694 L1.71223397,56.0146694 L1.71223397,10.0146694 C1.71223397,7.52938798 2.71959328,5.27938798 4.34827294,3.65070832 C5.97695259,2.02202867 8.22695259,1.01466935 10.712234,1.01466935 L10.712234,1.01466935 Z" id="rectangle" stroke="#000000" stroke-width="2" fill="#FFFFFF"></path>
            <path d="M53.712234,39.7885268 L54.212234,56.2885268 L42.212234,56.7885268 L42.212234,39.7885268 L53.712234,39.7885268 Z M39.712234,39.7885268 L39.712234,56.7885268 L27.712234,56.7885268 L27.712234,39.7885268 L39.712234,39.7885268 Z M25.212234,39.7885268 L25.212234,56.7885268 L13.712234,56.7885268 L13.212234,40.2885268 L25.212234,39.7885268 Z" id="columns_schema" stroke="#000000" fill-rule="nonzero"></path>
            <g id="vertical_equal" transform="translate(30.000000, 29.000000)" stroke="#000000" stroke-linecap="square">
                <line x1="2.21223397" y1="0.514669353" x2="2.21223397" y2="7.58573716" id="Line"></line>
                <line x1="5.21223397" y1="0.514669353" x2="5.21223397" y2="7.58573716" id="Line-Copy"></line>
            </g>
            <path d="M41.712234,9.01466935 L41.712234,27.0146694 L53.712234,27.0146694 C54.262234,27.0146694 54.712234,26.5646694 54.712234,26.0146694 L54.712234,10.0146694 C54.712234,9.46466935 54.262234,9.01466935 53.712234,9.01466935 L41.712234,9.01466935 Z M27.212234,9.01466935 C27.212234,9.01466935 27.212234,15.0146694 27.212234,27.0146694 L40.212234,27.0146694 L40.212234,9.01466935 C31.5455673,9.01466935 27.212234,9.01466935 27.212234,9.01466935 Z M13.712234,9.01466935 C13.162234,9.01466935 12.712234,9.46466935 12.712234,10.0146694 L12.712234,26.0146694 C12.712234,26.5646694 13.162234,27.0146694 13.712234,27.0146694 L25.712234,27.0146694 L25.712234,9.01466935 L13.712234,9.01466935 Z" id="columns_real" fill="#000000" fill-rule="nonzero"></path>
        </g>
    </g>
</svg>
        </div>
        <div style="font-family: 'IBM Plex Mono', monospace, courier; color: black; font-size: 10px; display: inline-block; vertical-align: middle;">
            <div>col_schema_match()</div>
        </div>
        
        </td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">—</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">SCHEMA</td>
    <td style="height: 40px; background-color: #FCFCFC; border-left: 1px solid #D3D3D3;" class="gt_row gt_center"><svg width="25px" height="25px" viewbox="0 0 25 25" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" style="vertical-align: middle;">
    <g id="unchanged" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
        <g id="unchanged" transform="translate(0.500000, 0.570147)">
            <rect id="Rectangle" x="0.125132506" y="0" width="23.749735" height="23.7894737"></rect>
            <path d="M5.80375046,8.18194736 C3.77191832,8.18194736 2.11875046,9.83495328 2.11875046,11.8669474 C2.11875046,13.8989414 3.77191832,15.5519474 5.80375046,15.5519474 C7.8355826,15.5519474 9.48875046,13.8989414 9.48875046,11.8669474 C9.48875046,9.83495328 7.83552863,8.18194736 5.80375046,8.18194736 Z M5.80375046,14.814915 C4.17821997,14.814915 2.85578285,13.4924778 2.85578285,11.8669474 C2.85578285,10.2414169 4.17821997,8.91897975 5.80375046,8.91897975 C7.42928095,8.91897975 8.75171807,10.2414169 8.75171807,11.8669474 C8.75171807,13.4924778 7.42928095,14.814915 5.80375046,14.814915 Z" id="Shape" fill="#000000" fill-rule="nonzero"></path>
            <path d="M13.9638189,8.699335 C13.9364621,8.70430925 13.9091059,8.71176968 13.8842359,8.71923074 C13.7822704,8.73663967 13.6877654,8.77643115 13.6056956,8.83860518 L10.2433156,11.3852598 C10.0766886,11.5046343 9.97720993,11.6986181 9.97720993,11.9025491 C9.97720993,12.1064807 10.0766886,12.3004639 10.2433156,12.4198383 L13.6056956,14.966493 C13.891697,15.1803725 14.2970729,15.1231721 14.5109517,14.8371707 C14.7248313,14.5511692 14.6676309,14.145794 14.3816294,13.9319145 L12.5313257,12.5392127 L21.8812495,12.5392127 L21.8812495,11.2658854 L12.5313257,11.2658854 L14.3816294,9.87318364 C14.6377872,9.71650453 14.7497006,9.40066014 14.6477351,9.11714553 C14.5482564,8.83363156 14.262255,8.65954352 13.9638189,8.699335 Z" id="arrow" fill="#000000" transform="translate(15.929230, 11.894737) rotate(-180.000000) translate(-15.929230, -11.894737) "></path>
        </g>
    </g>
</svg></td>
    <td style="height: 40px; background-color: #FCFCFC; border-right: 1px solid #D3D3D3;" class="gt_row gt_center"><span style="color:#4CA64C;">✓</span></td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px;" class="gt_row gt_right">1</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5;" class="gt_row gt_right">0<br>0.00</td>
    <td style="height: 40px; color: black;font-family: IBM Plex Mono;font-size: 11px; border-left: 1px dashed #E5E5E5;" class="gt_row gt_right">1<br>1.00</td>
    <td style="height: 40px; background-color: #FCFCFC; border-left: 1px solid #D3D3D3;" class="gt_row gt_center">—</td>
    <td style="height: 40px; background-color: #FCFCFC;" class="gt_row gt_center">—</td>
    <td style="height: 40px; background-color: #FCFCFC; border-right: 1px solid #D3D3D3;" class="gt_row gt_center">—</td>
    <td style="height: 40px;" class="gt_row gt_center">—</td>
  </tr>
</tbody>
<tfoot><tr class="gt_sourcenotes"><td class="gt_sourcenote" colspan="14" style="text-align: left;"><span class="gt_from_md"><div style="margin-top: 5px; margin-bottom: 5px;"><span style="background-color: #FFF; color: #444; padding: 0.5em 0.5em; position: inherit; text-transform: uppercase; margin-left: 10px; margin-right: 5px; border: solid 1px #999999; font-variant-numeric: tabular-nums; border-radius: 0; padding: 2px 10px 2px 10px;">2026-07-22 23:16:23 UTC</span><span style="background-color: #FFF; color: #444; padding: 0.5em 0.5em; position: inherit; margin-right: 5px; border: solid 1px #999999; font-variant-numeric: tabular-nums; border-radius: 0; padding: 2px 10px 2px 10px;">&lt; 1 s</span><span style="background-color: #FFF; color: #444; padding: 0.5em 0.5em; position: inherit; text-transform: uppercase; margin: 5px 1px 5px -1px; border: solid 1px #999999; font-variant-numeric: tabular-nums; border-radius: 0; padding: 2px 10px 2px 10px;">2026-07-22 23:16:23 UTC</span></div></span></td></tr><tr class="gt_sourcenotes"><td class="gt_sourcenote" colspan="14" style="text-align: left;"><span class="gt_from_md"><hr style="border: none; border-top-width: 1px; border-top-style: dotted; border-top-color: #B5B5B5; margin-top: -3px; margin-bottom: 3px;">
<strong>Notes</strong>
<p><span style="font-variant: small-caps; font-weight: bold; font-size: smaller; text-transform: uppercase; color: #333333;">Step 1</span> <span style="font-family: &quot;IBM Plex Mono&quot;, monospace; font-size: smaller;">(schema_check)</span> <span style="color:#FF3300;">✗</span> Schema validation <strong>failed</strong>: 1 unmatched column(s), 1 dtype mismatch(es).</p>
<details style="margin-top: 2px; margin-bottom: 8px; font-size: 12px; text-indent: 12px;">
<summary style="cursor: pointer; font-weight: bold; color: #555; margin-bottom: -5px;">Schema Comparison</summary>
<div style="margin-top: 6px; padding-left: 15px; padding-right: 15px;">
<div id="pb_step_tbl" style="padding-left:0px;padding-right:0px;padding-top:10px;padding-bottom:10px;overflow-x:auto;overflow-y:auto;width:auto;height:auto;">
<style>
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono&display=swap');
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Sans&display=swap');
#pb_step_tbl table {
          font-family: 'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Helvetica Neue', 'Fira Sans', 'Droid Sans', Arial, sans-serif;
          -webkit-font-smoothing: antialiased;
          -moz-osx-font-smoothing: grayscale;
        }
<p>#pb_step_tbl thead, tbody, tfoot, tr, td, th { border-style: none; }
tr { background-color: transparent; }
#pb_step_tbl p { margin: 0; padding: 0; }
#pb_step_tbl .gt_table { display: table; border-collapse: collapse; line-height: normal; margin-left: auto; margin-right: auto; color: #333333; font-size: 16px; font-weight: normal; font-style: normal; background-color: #FFFFFF; width: auto; border-top-style: solid; border-top-width: 2px; border-top-color: #A8A8A8; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #A8A8A8; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; }
#pb_step_tbl .gt_caption { padding-top: 4px; padding-bottom: 4px; }
#pb_step_tbl .gt_title { color: #333333; font-size: 125%; font-weight: initial; padding-top: 4px; padding-bottom: 4px; padding-left: 5px; padding-right: 5px; border-bottom-color: #FFFFFF; border-bottom-width: 0; }
#pb_step_tbl .gt_subtitle { color: #333333; font-size: 85%; font-weight: initial; padding-top: 3px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; border-top-color: #FFFFFF; border-top-width: 0; }
#pb_step_tbl .gt_heading { background-color: #FFFFFF; text-align: left; border-bottom-color: #FFFFFF; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; }
#pb_step_tbl .gt_bottom_border { border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; }
#pb_step_tbl .gt_col_headings { border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; }
#pb_step_tbl .gt_col_heading { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: normal; text-transform: inherit; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; vertical-align: bottom; padding-top: 5px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; overflow-x: hidden; }
#pb_step_tbl .gt_column_spanner_outer { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: normal; text-transform: inherit; padding-top: 0; padding-bottom: 0; padding-left: 4px; padding-right: 4px; }
#pb_step_tbl .gt_column_spanner_outer:first-child { padding-left: 0; }
#pb_step_tbl .gt_column_spanner_outer:last-child { padding-right: 0; }
#pb_step_tbl .gt_column_spanner { border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; vertical-align: bottom; padding-top: 5px; padding-bottom: 5px; overflow-x: hidden; display: inline-block; width: 100%; }
#pb_step_tbl .gt_spanner_row { border-bottom-style: hidden; }
#pb_step_tbl .gt_group_heading { padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; text-transform: inherit; border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; vertical-align: middle; text-align: left; }
#pb_step_tbl .gt_empty_group_heading { padding: 0.5px; color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; vertical-align: middle; }
#pb_step_tbl .gt_from_md&gt; :first-child { margin-top: 0; }
#pb_step_tbl .gt_from_md&gt; :last-child { margin-bottom: 0; }
#pb_step_tbl .gt_row { padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; margin: 10px; border-top-style: solid; border-top-width: 1px; border-top-color: #D3D3D3; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; vertical-align: middle; overflow-x: hidden; }
#pb_step_tbl .gt_stub { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; text-transform: inherit; border-right-style: solid; border-right-width: 2px; border-right-color: #D3D3D3; padding-left: 5px; padding-right: 5px; }
#pb_step_tbl .gt_stub_row_group { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; text-transform: inherit; border-right-style: solid; border-right-width: 2px; border-right-color: #D3D3D3; padding-left: 5px; padding-right: 5px; vertical-align: top; }
#pb_step_tbl .gt_row_group_first td { border-top-width: 2px; }
#pb_step_tbl .gt_row_group_first th { border-top-width: 2px; }
#pb_step_tbl .gt_striped { color: #333333; background-color: #F4F4F4; }
#pb_step_tbl .gt_table_body { border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; }
#pb_step_tbl .gt_summary_row { color: #333333; background-color: #FFFFFF; text-transform: inherit; padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; }
#pb_step_tbl .gt_first_summary_row { border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; }
#pb_step_tbl .gt_last_summary_row_top { border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; }
#pb_step_tbl .gt_grand_summary_row { color: #333333; background-color: #FFFFFF; text-transform: inherit; padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; }
#pb_step_tbl .gt_first_grand_summary_row_bottom { border-top-style: double; border-top-width: 6px; border-top-color: #D3D3D3; }
#pb_step_tbl .gt_last_grand_summary_row_top { border-bottom-style: double; border-bottom-width: 6px; border-bottom-color: #D3D3D3; }
#pb_step_tbl .gt_sourcenotes { color: #333333; background-color: #FFFFFF; border-bottom-style: none; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; }
#pb_step_tbl .gt_sourcenote { font-size: 12px; padding-top: 4px; padding-bottom: 4px; padding-left: 5px; padding-right: 5px; text-align: left; }
#pb_step_tbl .gt_left { text-align: left; }
#pb_step_tbl .gt_center { text-align: center; }
#pb_step_tbl .gt_right { text-align: right; font-variant-numeric: tabular-nums; }
#pb_step_tbl .gt_font_normal { font-weight: normal; }
#pb_step_tbl .gt_font_bold { font-weight: bold; }
#pb_step_tbl .gt_font_italic { font-style: italic; }
#pb_step_tbl .gt_super { font-size: 65%; }
#pb_step_tbl .gt_footnotes { color: font-color(#FFFFFF); background-color: #FFFFFF; border-bottom-style: none; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; }
#pb_step_tbl .gt_footnote { margin: 0px; font-size: 90%; padding-top: 4px; padding-bottom: 4px; padding-left: 5px; padding-right: 5px; }
#pb_step_tbl .gt_sourcenotes { color: #333333; background-color: #FFFFFF; border-bottom-style: none; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; }
#pb_step_tbl .gt_sourcenote { font-size: 12px; padding-top: 4px; padding-bottom: 4px; padding-left: 5px; padding-right: 5px; text-align: left; }
#pb_step_tbl .gt_footnote_marks { font-size: 75%; vertical-align: 0.4em; position: initial; }
#pb_step_tbl .gt_asterisk { font-size: 100%; vertical-align: 0; }</p>
</style>
<table style="table-layout: fixed;; width: 0px" class="gt_table" data-quarto-disable-processing="true" data-quarto-bootstrap="false">
<colgroup>
  <col style="width:40px;">
  <col style="width:190px;">
  <col style="width:190px;">
  <col style="width:40px;">
  <col style="width:190px;">
  <col style="width:30px;">
  <col style="width:190px;">
  <col style="width:30px;">
</colgroup>
<thead>
<tr class="gt_col_headings gt_spanner_row">
  <th class="gt_center gt_columns_top_border gt_column_spanner_outer" rowspan="1" colspan="3" scope="colgroup" id="pb_step_tbl-TARGET">
    <span class="gt_column_spanner">TARGET</span>
  </th>
  <th class="gt_center gt_columns_top_border gt_column_spanner_outer" rowspan="1" colspan="5" scope="colgroup" id="pb_step_tbl-EXPECTED">
    <span class="gt_column_spanner">EXPECTED</span>
  </th>
</tr>
<tr class="gt_col_headings">
  <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" scope="col" id="pb_step_tbl-index_target"></th>
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="pb_step_tbl-col_name_target">COLUMN</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="pb_step_tbl-dtype_target">DATA TYPE</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" scope="col" id="pb_step_tbl-index_exp"></th>
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="pb_step_tbl-col_name_exp">COLUMN</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="pb_step_tbl-col_name_exp_correct"></th>
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="pb_step_tbl-dtype_exp">DATA TYPE</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="pb_step_tbl-dtype_exp_correct"></th>
</tr>
</thead>
<tbody class="gt_table_body">
  <tr>
    <td style="font-size: 13px;" class="gt_row gt_right">1</td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">date_time</td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">timestamp(6)</td>
    <td style="font-size: 13px; border-left: 3px double #E5E5E5;" class="gt_row gt_right">1</td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">date_time</td>
    <td class="gt_row gt_left"><span style="color: #4CA64C;">✓</span></td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">timestamp(6)</td>
    <td class="gt_row gt_left"><span style="color: #4CA64C;">✓</span></td>
  </tr>
  <tr>
    <td style="font-size: 13px;" class="gt_row gt_right">2</td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">date</td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">date</td>
    <td style="font-size: 13px; border-left: 3px double #E5E5E5;" class="gt_row gt_right">2</td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">dates</td>
    <td class="gt_row gt_left"><span style="color: #CF142B;">✗</span></td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">date</td>
    <td class="gt_row gt_left">—</td>
  </tr>
  <tr>
    <td style="font-size: 13px;" class="gt_row gt_right">3</td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">a</td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">int64</td>
    <td style="font-size: 13px; border-left: 3px double #E5E5E5;" class="gt_row gt_right">3</td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">a</td>
    <td class="gt_row gt_left"><span style="color: #4CA64C;">✓</span></td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">int64</td>
    <td class="gt_row gt_left"><span style="color: #4CA64C;">✓</span></td>
  </tr>
  <tr>
    <td style="font-size: 13px;" class="gt_row gt_right">4</td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">b</td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">string</td>
    <td style="font-size: 13px; border-left: 3px double #E5E5E5;" class="gt_row gt_right">4</td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">b</td>
    <td class="gt_row gt_left"><span style="color: #4CA64C;">✓</span></td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">—</td>
    <td class="gt_row gt_left"></td>
  </tr>
  <tr>
    <td style="font-size: 13px;" class="gt_row gt_right">5</td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">c</td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">int64</td>
    <td style="font-size: 13px; border-left: 3px double #E5E5E5;" class="gt_row gt_right">5</td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">c</td>
    <td class="gt_row gt_left"><span style="color: #4CA64C;">✓</span></td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">—</td>
    <td class="gt_row gt_left"></td>
  </tr>
  <tr>
    <td style="font-size: 13px;" class="gt_row gt_right">6</td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">d</td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">float64</td>
    <td style="font-size: 13px; border-left: 3px double #E5E5E5;" class="gt_row gt_right">6</td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">d</td>
    <td class="gt_row gt_left"><span style="color: #4CA64C;">✓</span></td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">float64</td>
    <td class="gt_row gt_left"><span style="color: #4CA64C;">✓</span></td>
  </tr>
  <tr>
    <td style="font-size: 13px;" class="gt_row gt_right">7</td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">e</td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">boolean</td>
    <td style="font-size: 13px; border-left: 3px double #E5E5E5;" class="gt_row gt_right">7</td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">e</td>
    <td class="gt_row gt_left"><span style="color: #4CA64C;">✓</span></td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">bool | <span style="text-decoration: underline; text-decoration-color: #4CA64C; text-underline-offset: 3px;">boolean</span></td>
    <td class="gt_row gt_left"><span style="color: #4CA64C;">✓</span></td>
  </tr>
  <tr>
    <td style="font-size: 13px;" class="gt_row gt_right">8</td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">f</td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">string</td>
    <td style="font-size: 13px; border-left: 3px double #E5E5E5;" class="gt_row gt_right">8</td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">f</td>
    <td class="gt_row gt_left"><span style="color: #4CA64C;">✓</span></td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">str</td>
    <td class="gt_row gt_left"><span style="color: #CF142B;">✗</span></td>
  </tr>
</tbody>
<tfoot><tr class="gt_sourcenotes"><td class="gt_sourcenote" colspan="8"><span class="gt_from_md"><div style="padding-bottom: 2px;">Supplied Column Schema:</div><div style="border-style: solid; border-width: thin; border-color: lightblue; padding-left: 2px; padding-right: 2px; padding-bottom: 3px;"><code style="color: #303030; font-family: monospace; font-size: 8px;">[('date_time', 'timestamp(6)'), ('dates', 'date'), ('a', 'int64'), ('b',), ('c',), ('d', 'float64'), ('e', ['bool', 'boolean']), ('f', 'str')]</code></div></span></td></tr><tr class="gt_sourcenotes"><td class="gt_sourcenote" colspan="8"><span class="gt_from_md">
<div style="padding-bottom: 2px;">Schema Match Settings</div>
<div style="padding-bottom: 4px;"><div style="display: flex; font-size: 13.7px; padding-top: 2px;"><div style="border-style: solid; border-width: 1px; border-color: #87CEFA; border-radius: 5px; background-color: #F0F8FF; font-size: x-small; padding-left: 4px; padding-right: 4px; margin-left: 5px; margin-right: 5px;  margin-top: 2px; ">COMPLETE</div><div style="border-style: solid; border-width: 1px; border-color: #87CEFA; border-radius: 5px; background-color: #F0F8FF; font-size: x-small; padding-left: 4px; padding-right: 4px; margin-left: 5px; margin-right: 5px;  margin-top: 2px; ">IN ORDER</div><div style="border-style: solid; border-width: 1px; border-color: #A9A9A9; border-radius: 5px; background-color: #F5F5F5; font-size: x-small; padding-left: 4px; padding-right: 4px; margin-left: 5px; margin-right: 5px;  margin-top: 2px; ">COLUMN ≠ column</div><div style="border-style: solid; border-width: 1px; border-color: #A9A9A9; border-radius: 5px; background-color: #F5F5F5; font-size: x-small; padding-left: 4px; padding-right: 4px; margin-left: 5px; margin-right: 5px;  margin-top: 2px; ">DTYPE ≠ dtype</div><div style="border-style: solid; border-width: 1px; border-color: #A9A9A9; border-radius: 5px; background-color: #F5F5F5; font-size: x-small; padding-left: 4px; padding-right: 4px; margin-left: 5px; margin-right: 5px;  margin-top: 2px; ">float ≠ float64</div></div></div>
</span></td></tr></tfoot>
</table>
</div>
</div>
</details>
</span></td></tr></tfoot>
</table>

</div>
</div>
</div>
<p>This step fails, but the validation report table doesn’t tell us how (or where). Using <a href="`Validate.get_step_report`"><code>get_step_report()</code></a> will show us what the underlying issues are:</p>
<div id="edba68b1" class="cell" data-execution_count="5">
<div class="sourceCode cell-code" id="cb6" style="background: #f1f3f5;"><pre class="sourceCode python"><code class="sourceCode python"><span id="cb6-1">validation_3.get_step_report(i<span class="op" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">=</span><span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>)</span></code></pre></div>
<div class="cell-output cell-output-display" data-execution_count="5">
<div id="pb_step_tbl" style="padding-left:0px;padding-right:0px;padding-top:10px;padding-bottom:10px;overflow-x:auto;overflow-y:auto;width:auto;height:auto;">
<style>
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono&display=swap');
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Sans&display=swap');
#pb_step_tbl table {
          font-family: 'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Helvetica Neue', 'Fira Sans', 'Droid Sans', Arial, sans-serif;
          -webkit-font-smoothing: antialiased;
          -moz-osx-font-smoothing: grayscale;
        }

#pb_step_tbl thead, tbody, tfoot, tr, td, th { border-style: none; }
 tr { background-color: transparent; }
#pb_step_tbl p { margin: 0; padding: 0; }
 #pb_step_tbl .gt_table { display: table; border-collapse: collapse; line-height: normal; margin-left: auto; margin-right: auto; color: #333333; font-size: 16px; font-weight: normal; font-style: normal; background-color: #FFFFFF; width: auto; border-top-style: solid; border-top-width: 2px; border-top-color: #A8A8A8; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #A8A8A8; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; }
 #pb_step_tbl .gt_caption { padding-top: 4px; padding-bottom: 4px; }
 #pb_step_tbl .gt_title { color: #333333; font-size: 125%; font-weight: initial; padding-top: 4px; padding-bottom: 4px; padding-left: 5px; padding-right: 5px; border-bottom-color: #FFFFFF; border-bottom-width: 0; }
 #pb_step_tbl .gt_subtitle { color: #333333; font-size: 85%; font-weight: initial; padding-top: 3px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; border-top-color: #FFFFFF; border-top-width: 0; }
 #pb_step_tbl .gt_heading { background-color: #FFFFFF; text-align: left; border-bottom-color: #FFFFFF; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; }
 #pb_step_tbl .gt_bottom_border { border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; }
 #pb_step_tbl .gt_col_headings { border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; }
 #pb_step_tbl .gt_col_heading { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: normal; text-transform: inherit; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; vertical-align: bottom; padding-top: 5px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; overflow-x: hidden; }
 #pb_step_tbl .gt_column_spanner_outer { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: normal; text-transform: inherit; padding-top: 0; padding-bottom: 0; padding-left: 4px; padding-right: 4px; }
 #pb_step_tbl .gt_column_spanner_outer:first-child { padding-left: 0; }
 #pb_step_tbl .gt_column_spanner_outer:last-child { padding-right: 0; }
 #pb_step_tbl .gt_column_spanner { border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; vertical-align: bottom; padding-top: 5px; padding-bottom: 5px; overflow-x: hidden; display: inline-block; width: 100%; }
 #pb_step_tbl .gt_spanner_row { border-bottom-style: hidden; }
 #pb_step_tbl .gt_group_heading { padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; text-transform: inherit; border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; vertical-align: middle; text-align: left; }
 #pb_step_tbl .gt_empty_group_heading { padding: 0.5px; color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; vertical-align: middle; }
 #pb_step_tbl .gt_from_md> :first-child { margin-top: 0; }
 #pb_step_tbl .gt_from_md> :last-child { margin-bottom: 0; }
 #pb_step_tbl .gt_row { padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; margin: 10px; border-top-style: solid; border-top-width: 1px; border-top-color: #D3D3D3; border-left-style: none; border-left-width: 1px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 1px; border-right-color: #D3D3D3; vertical-align: middle; overflow-x: hidden; }
 #pb_step_tbl .gt_stub { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; text-transform: inherit; border-right-style: solid; border-right-width: 2px; border-right-color: #D3D3D3; padding-left: 5px; padding-right: 5px; }
 #pb_step_tbl .gt_stub_row_group { color: #333333; background-color: #FFFFFF; font-size: 100%; font-weight: initial; text-transform: inherit; border-right-style: solid; border-right-width: 2px; border-right-color: #D3D3D3; padding-left: 5px; padding-right: 5px; vertical-align: top; }
 #pb_step_tbl .gt_row_group_first td { border-top-width: 2px; }
 #pb_step_tbl .gt_row_group_first th { border-top-width: 2px; }
 #pb_step_tbl .gt_striped { color: #333333; background-color: #F4F4F4; }
 #pb_step_tbl .gt_table_body { border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; }
 #pb_step_tbl .gt_summary_row { color: #333333; background-color: #FFFFFF; text-transform: inherit; padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; }
 #pb_step_tbl .gt_first_summary_row { border-top-style: solid; border-top-width: 2px; border-top-color: #D3D3D3; }
 #pb_step_tbl .gt_last_summary_row_top { border-bottom-style: solid; border-bottom-width: 2px; border-bottom-color: #D3D3D3; }
 #pb_step_tbl .gt_grand_summary_row { color: #333333; background-color: #FFFFFF; text-transform: inherit; padding-top: 8px; padding-bottom: 8px; padding-left: 5px; padding-right: 5px; }
 #pb_step_tbl .gt_first_grand_summary_row_bottom { border-top-style: double; border-top-width: 6px; border-top-color: #D3D3D3; }
 #pb_step_tbl .gt_last_grand_summary_row_top { border-bottom-style: double; border-bottom-width: 6px; border-bottom-color: #D3D3D3; }
 #pb_step_tbl .gt_sourcenotes { color: #333333; background-color: #FFFFFF; border-bottom-style: none; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; }
 #pb_step_tbl .gt_sourcenote { font-size: 12px; padding-top: 4px; padding-bottom: 4px; padding-left: 5px; padding-right: 5px; text-align: left; }
 #pb_step_tbl .gt_left { text-align: left; }
 #pb_step_tbl .gt_center { text-align: center; }
 #pb_step_tbl .gt_right { text-align: right; font-variant-numeric: tabular-nums; }
 #pb_step_tbl .gt_font_normal { font-weight: normal; }
 #pb_step_tbl .gt_font_bold { font-weight: bold; }
 #pb_step_tbl .gt_font_italic { font-style: italic; }
 #pb_step_tbl .gt_super { font-size: 65%; }
 #pb_step_tbl .gt_footnotes { color: font-color(#FFFFFF); background-color: #FFFFFF; border-bottom-style: none; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; }
 #pb_step_tbl .gt_footnote { margin: 0px; font-size: 90%; padding-top: 4px; padding-bottom: 4px; padding-left: 5px; padding-right: 5px; }
 #pb_step_tbl .gt_sourcenotes { color: #333333; background-color: #FFFFFF; border-bottom-style: none; border-bottom-width: 2px; border-bottom-color: #D3D3D3; border-left-style: none; border-left-width: 2px; border-left-color: #D3D3D3; border-right-style: none; border-right-width: 2px; border-right-color: #D3D3D3; }
 #pb_step_tbl .gt_sourcenote { font-size: 12px; padding-top: 4px; padding-bottom: 4px; padding-left: 5px; padding-right: 5px; text-align: left; }
 #pb_step_tbl .gt_footnote_marks { font-size: 75%; vertical-align: 0.4em; position: initial; }
 #pb_step_tbl .gt_asterisk { font-size: 100%; vertical-align: 0; }
 
</style>
<table style="table-layout: fixed;; width: 0px" class="gt_table" data-quarto-disable-processing="true" data-quarto-bootstrap="false">
<colgroup>
  <col style="width:40px;">
  <col style="width:190px;">
  <col style="width:190px;">
  <col style="width:40px;">
  <col style="width:190px;">
  <col style="width:30px;">
  <col style="width:190px;">
  <col style="width:30px;">
</colgroup>

<thead>

  <tr class="gt_heading">
    <td colspan="8" class="gt_heading gt_title gt_font_normal">Report for Validation Step 1 <span style="color: #CF142B;">✗</span><div style="display: flex; font-size: 13.7px; padding-top: 7px;"><div style="margin-right: 5px;">COLUMN SCHEMA MATCH</div><div style="border-style: solid; border-width: 1px; border-color: #87CEFA; border-radius: 5px; background-color: #F0F8FF; font-size: x-small; padding-left: 4px; padding-right: 4px; margin-left: 5px; margin-right: 5px;  margin-top: 2px; ">COMPLETE</div><div style="border-style: solid; border-width: 1px; border-color: #87CEFA; border-radius: 5px; background-color: #F0F8FF; font-size: x-small; padding-left: 4px; padding-right: 4px; margin-left: 5px; margin-right: 5px;  margin-top: 2px; ">IN ORDER</div><div style="border-style: solid; border-width: 1px; border-color: #A9A9A9; border-radius: 5px; background-color: #F5F5F5; font-size: x-small; padding-left: 4px; padding-right: 4px; margin-left: 5px; margin-right: 5px;  margin-top: 2px; ">COLUMN ≠ column</div><div style="border-style: solid; border-width: 1px; border-color: #A9A9A9; border-radius: 5px; background-color: #F5F5F5; font-size: x-small; padding-left: 4px; padding-right: 4px; margin-left: 5px; margin-right: 5px;  margin-top: 2px; ">DTYPE ≠ dtype</div><div style="border-style: solid; border-width: 1px; border-color: #A9A9A9; border-radius: 5px; background-color: #F5F5F5; font-size: x-small; padding-left: 4px; padding-right: 4px; margin-left: 5px; margin-right: 5px;  margin-top: 2px; ">float ≠ float64</div></div></td>
  </tr>
<tr class="gt_col_headings gt_spanner_row">
  <th class="gt_center gt_columns_top_border gt_column_spanner_outer" rowspan="1" colspan="3" scope="colgroup" id="pb_step_tbl-TARGET">
    <span class="gt_column_spanner">TARGET</span>
  </th>
  <th class="gt_center gt_columns_top_border gt_column_spanner_outer" rowspan="1" colspan="5" scope="colgroup" id="pb_step_tbl-EXPECTED">
    <span class="gt_column_spanner">EXPECTED</span>
  </th>
</tr>
<tr class="gt_col_headings">
  <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" scope="col" id="pb_step_tbl-index_target"></th>
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="pb_step_tbl-col_name_target">COLUMN</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="pb_step_tbl-dtype_target">DATA TYPE</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" scope="col" id="pb_step_tbl-index_exp"></th>
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="pb_step_tbl-col_name_exp">COLUMN</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="pb_step_tbl-col_name_exp_correct"></th>
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="pb_step_tbl-dtype_exp">DATA TYPE</th>
  <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="pb_step_tbl-dtype_exp_correct"></th>
</tr>
</thead>
<tbody class="gt_table_body">
  <tr>
    <td style="font-size: 13px;" class="gt_row gt_right">1</td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">date_time</td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">timestamp(6)</td>
    <td style="font-size: 13px; border-left: 3px double #E5E5E5;" class="gt_row gt_right">1</td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">date_time</td>
    <td class="gt_row gt_left"><span style="color: #4CA64C;">✓</span></td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">timestamp(6)</td>
    <td class="gt_row gt_left"><span style="color: #4CA64C;">✓</span></td>
  </tr>
  <tr>
    <td style="font-size: 13px;" class="gt_row gt_right">2</td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">date</td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">date</td>
    <td style="font-size: 13px; border-left: 3px double #E5E5E5;" class="gt_row gt_right">2</td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">dates</td>
    <td class="gt_row gt_left"><span style="color: #CF142B;">✗</span></td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">date</td>
    <td class="gt_row gt_left">—</td>
  </tr>
  <tr>
    <td style="font-size: 13px;" class="gt_row gt_right">3</td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">a</td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">int64</td>
    <td style="font-size: 13px; border-left: 3px double #E5E5E5;" class="gt_row gt_right">3</td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">a</td>
    <td class="gt_row gt_left"><span style="color: #4CA64C;">✓</span></td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">int64</td>
    <td class="gt_row gt_left"><span style="color: #4CA64C;">✓</span></td>
  </tr>
  <tr>
    <td style="font-size: 13px;" class="gt_row gt_right">4</td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">b</td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">string</td>
    <td style="font-size: 13px; border-left: 3px double #E5E5E5;" class="gt_row gt_right">4</td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">b</td>
    <td class="gt_row gt_left"><span style="color: #4CA64C;">✓</span></td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">—</td>
    <td class="gt_row gt_left"></td>
  </tr>
  <tr>
    <td style="font-size: 13px;" class="gt_row gt_right">5</td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">c</td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">int64</td>
    <td style="font-size: 13px; border-left: 3px double #E5E5E5;" class="gt_row gt_right">5</td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">c</td>
    <td class="gt_row gt_left"><span style="color: #4CA64C;">✓</span></td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">—</td>
    <td class="gt_row gt_left"></td>
  </tr>
  <tr>
    <td style="font-size: 13px;" class="gt_row gt_right">6</td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">d</td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">float64</td>
    <td style="font-size: 13px; border-left: 3px double #E5E5E5;" class="gt_row gt_right">6</td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">d</td>
    <td class="gt_row gt_left"><span style="color: #4CA64C;">✓</span></td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">float64</td>
    <td class="gt_row gt_left"><span style="color: #4CA64C;">✓</span></td>
  </tr>
  <tr>
    <td style="font-size: 13px;" class="gt_row gt_right">7</td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">e</td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">boolean</td>
    <td style="font-size: 13px; border-left: 3px double #E5E5E5;" class="gt_row gt_right">7</td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">e</td>
    <td class="gt_row gt_left"><span style="color: #4CA64C;">✓</span></td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">bool | <span style="text-decoration: underline; text-decoration-color: #4CA64C; text-underline-offset: 3px;">boolean</span></td>
    <td class="gt_row gt_left"><span style="color: #4CA64C;">✓</span></td>
  </tr>
  <tr>
    <td style="font-size: 13px;" class="gt_row gt_right">8</td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">f</td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">string</td>
    <td style="font-size: 13px; border-left: 3px double #E5E5E5;" class="gt_row gt_right">8</td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">f</td>
    <td class="gt_row gt_left"><span style="color: #4CA64C;">✓</span></td>
    <td style="color: black;font-family: IBM Plex Mono;font-size: 13px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;" class="gt_row gt_left">str</td>
    <td class="gt_row gt_left"><span style="color: #CF142B;">✗</span></td>
  </tr>
</tbody>
<tfoot><tr class="gt_sourcenotes"><td class="gt_sourcenote" colspan="8"><span class="gt_from_md"><div style="padding-bottom: 2px;">Supplied Column Schema:</div><div style="border-style: solid; border-width: thin; border-color: lightblue; padding-left: 2px; padding-right: 2px; padding-bottom: 3px;"><code style="color: #303030; font-family: monospace; font-size: 8px;">[('date_time', 'timestamp(6)'), ('dates', 'date'), ('a', 'int64'), ('b',), ('c',), ('d', 'float64'), ('e', ['bool', 'boolean']), ('f', 'str')]</code></div></span></td></tr></tfoot>
</table>

</div>
</div>
</div>
<p>The step report here shows the target table’s schema on the left side and the expectation of the schema on the right side. There appears to be two problems with our supplied schema:</p>
<ol type="1">
<li>the second column is actually <code>date</code> instead of <code>dates</code></li>
<li>the dtype of the <code>f</code> column is <code>"string"</code> and not <code>"str"</code></li>
</ol>
<p>The convenience of this step report means we only have to look at one display of information, rather than having to collect up the individual pieces and make careful comparisons.</p>
</section>
<section id="much-more-in-store" class="level1">
<h1>Much More in Store</h1>
<p>Pointblank tries really hard to make it easy for you to test your data. All sorts of input tables are supported since we integrate with the brilliant <a href="https://narwhals-dev.github.io/narwhals/">Narwhals</a> and <a href="https://ibis-project.org">Ibis</a> libraries. And even through the project has only started four months ago, we already have an extensive catalog of well-tested validation methods.</p>
<p>We care a great deal about documentation so much recent effort has been placed on getting the <a href="../../user-guide/index.html"><strong>User Guide</strong></a> written. We hope it provides for gentle introduction to the major features of the library. If you want some quick examples to get your imagination going, check out our <a href="../../examples/index.html">gallery of examples</a>.</p>
<p>We really care about what <strong>you</strong> want in a validation package, so talk to us :) We just started a <a href="https://discord.com/invite/YH7CybCNCQ">Discord</a> so feel free to hop on and ask us anything. Alternatively, we always like to get <a href="https://github.com/posit-dev/pointblank/issues">issues</a> so don’t be shy in letting us know how we could improve!</p>


</section>

 ]]></description>
  <guid>https://posit-dev.github.io/pointblank/blog/intro-pointblank/</guid>
  <pubDate>Fri, 04 Apr 2025 00:00:00 GMT</pubDate>
</item>
</channel>
</rss>
