<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>58043</bug_id>
          
          <creation_ts>2011-04-07 07:30:07 -0700</creation_ts>
          <short_desc>Unify the way we generate HTML for an image in the Clipboard</short_desc>
          <delta_ts>2011-08-10 08:27:38 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>ap</cc>
    
    <cc>darin</cc>
    
    <cc>dcheng</cc>
    
    <cc>dglazkov</cc>
    
    <cc>enrica</cc>
    
    <cc>rniwa</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>381324</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-04-07 07:30:07 -0700</bug_when>
    <thetext>Currently, when adding an image to the clipboard, we have the following behaviors:
-GTK serialize the full image element with createMarkup()
-Chromium has a custom method imageToMarkup() to serialize the img element and all its attribute
-The Windows port has a custom method imageToMarkup() creating an img element

That means the behavior change when passing an image around. I think it would be simpler to use createMarkup() everywhere.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381326</commentid>
    <comment_count>1</comment_count>
      <attachid>88633</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-04-07 07:33:50 -0700</bug_when>
    <thetext>Created attachment 88633
Patch

I have not tested this, it is just an idea to reduce maintainance for the Windows and Chromium ports.
Feel free to reject if you prefer having custom methods per port.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381446</commentid>
    <comment_count>2</comment_count>
      <attachid>88633</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-04-07 10:09:36 -0700</bug_when>
    <thetext>Comment on attachment 88633
Patch

Good idea to remove unneeded code.

Besides fixes to quoting, the behavior change here is that createMarkup will include all attributes of the image element, and the existing functions include only the image and use only a src attribute.

So the clipboard will now have things like a class and ID for the image, any explicit style attributes, width and height attributes, and the like.

What’s your argument for it being OK? We probably have to do better than “I hope it’s OK”.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381447</commentid>
    <comment_count>3</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-04-07 10:10:11 -0700</bug_when>
    <thetext>Also, does this code path get used for things that are not &lt;img&gt; elements?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381496</commentid>
    <comment_count>4</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-04-07 11:09:15 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; So the clipboard will now have things like a class and ID for the image, any explicit style attributes, width and height attributes, and the like.
&gt; 
&gt; What’s your argument for it being OK? We probably have to do better than “I hope it’s OK”.

I choose that implementation simply because that is also what Firefox and IE do. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381521</commentid>
    <comment_count>5</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-04-07 11:33:22 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Also, does this code path get used for things that are not &lt;img&gt; elements?

As far as I can see, this is only used if the RenderObject::isImage() returns true.

Which, after some digging, can actually be used for HTMLPlugInImageElement and WMLImageElement and input[type=image].

I just noticed dragging input[type=image] fails with WebKit because of the conversion input-&gt;img.

I&apos;ll r- my patch. That should be tested.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381522</commentid>
    <comment_count>6</comment_count>
      <attachid>88633</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-04-07 11:33:50 -0700</bug_when>
    <thetext>Comment on attachment 88633
Patch

Needs test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443901</commentid>
    <comment_count>7</comment_count>
      <attachid>102352</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-07-29 05:37:42 -0700</bug_when>
    <thetext>Created attachment 102352
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443902</commentid>
    <comment_count>8</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-07-29 05:42:19 -0700</bug_when>
    <thetext>Since last time, the code of the Windows port has actually been changed to be like Chromium: http://trac.webkit.org/changeset/85064

I think it is not correct, and I think two of the attached tests will fail on the Windows on Chromium ports (the object and input[image] would fail on those ports because the original element will be transformed in &lt;img&gt; by imagetoMarkup()).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443908</commentid>
    <comment_count>9</comment_count>
      <attachid>102352</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-29 06:06:22 -0700</bug_when>
    <thetext>Comment on attachment 102352
Patch

Attachment 102352 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/9269416

New failing tests:
fast/events/drag-and-drop-image-contenteditable.html
fast/events/drag-and-drop-inputimage-contenteditable.html
fast/events/drag-and-drop-objectimage-contenteditable.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443922</commentid>
    <comment_count>10</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-07-29 06:31:22 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; New failing tests:
&gt; fast/events/drag-and-drop-image-contenteditable.html
&gt; fast/events/drag-and-drop-inputimage-contenteditable.html
&gt; fast/events/drag-and-drop-objectimage-contenteditable.html

So that does indeed fail on Chromium. :)
The expected results were generated on the Mac port.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443978</commentid>
    <comment_count>11</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-07-29 10:19:17 -0700</bug_when>
    <thetext>+tony, +dcheng since they&apos;re clipboard experts in Chromium side.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>443984</commentid>
    <comment_count>12</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-07-29 10:30:21 -0700</bug_when>
    <thetext>Switching from imageToMarkup to createMarkup sounds good to me.

It&apos;s not clear to me how/why the new tests fail on chromium, but maybe if you combined the tests and code change into a single patch, the cr-linux ews bot would pass?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>444029</commentid>
    <comment_count>13</comment_count>
      <attachid>102352</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-07-29 11:44:05 -0700</bug_when>
    <thetext>Comment on attachment 102352
Patch

(In reply to comment #12)
&gt; Switching from imageToMarkup to createMarkup sounds good to me.
&gt; 
&gt; It&apos;s not clear to me how/why the new tests fail on chromium, but maybe if you combined the tests and code change into a single patch, the cr-linux ews bot would pass?

The problem on chromium is that you need a src attribute and everything is converted to &lt;img&gt;.

I will make an update with a speculative patch :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>444718</commentid>
    <comment_count>14</comment_count>
      <attachid>102523</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-08-01 09:31:34 -0700</bug_when>
    <thetext>Created attachment 102523
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>444719</commentid>
    <comment_count>15</comment_count>
      <attachid>102523</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-08-01 09:32:46 -0700</bug_when>
    <thetext>Comment on attachment 102523
Patch

Oops, did not mean to put it in review queue, I just need the bots to have a look since I cannot check those platforms... :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>444721</commentid>
    <comment_count>16</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-08-01 09:34:27 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (From update of attachment 102523 [details])
&gt; Oops, did not mean to put it in review queue, I just need the bots to have a look since I cannot check those platforms... :)

You can use this page to run patches through the ews bots:
http://queues.webkit.org/submit-to-ews</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>444735</commentid>
    <comment_count>17</comment_count>
      <attachid>102523</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-01 09:57:03 -0700</bug_when>
    <thetext>Comment on attachment 102523
Patch

Attachment 102523 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/9287402

New failing tests:
fast/events/drag-and-drop-image-contenteditable.html
fast/events/drag-and-drop-inputimage-contenteditable.html
editing/pasteboard/drag-image-to-contenteditable-in-iframe.html
fast/events/drag-and-drop-objectimage-contenteditable.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>445194</commentid>
    <comment_count>18</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-08-02 05:09:57 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; (From update of attachment 102523 [details])
&gt; Attachment 102523 [details] did not pass chromium-ews (chromium-xvfb):
&gt; Output: http://queues.webkit.org/results/9287402
&gt; 
&gt; New failing tests:
&gt; fast/events/drag-and-drop-image-contenteditable.html
&gt; fast/events/drag-and-drop-inputimage-contenteditable.html
&gt; editing/pasteboard/drag-image-to-contenteditable-in-iframe.html
&gt; fast/events/drag-and-drop-objectimage-contenteditable.html

I was a bit surprised by these results so I ended up compiling the chrome port (on Mac) :)

On my machine, I actually get what I was expecting from the code. Without the patch the following two tests fails:
  fast/events/drag-and-drop-inputimage-contenteditable.html -&gt; unexpected text diff mismatch
  fast/events/drag-and-drop-objectimage-contenteditable.html -&gt; unexpected text diff mismatch

With the patch, the 3 tests run correctly on my machine.
Anyone from Chrome could help me figure out what is wrong here? Is it possible to have the full output from your bot to see what results it got?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>445355</commentid>
    <comment_count>19</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-08-02 10:45:31 -0700</bug_when>
    <thetext>The bot runs on Linux so it might be that there is a Linux-specific quirk.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>445372</commentid>
    <comment_count>20</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-08-02 11:25:59 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; Anyone from Chrome could help me figure out what is wrong here? Is it possible to have the full output from your bot to see what results it got?

I tried running this on my Chromium Linux build and the three new tests timed out.  This was because the source y coordinate was 605, which is just outside the bounds of the window (the window is 800x600).  If I set the height of #target to 200px, it works fine for me.  I&apos;m not sure why the bots are getting a text diff.

For mac, don&apos;t you need an eventSender.leapForward after the mouseDown to trigger the drag?

editing/pasteboard/drag-image-to-contenteditable-in-iframe.html is failing because the src of the dropped img is &quot;broken_image&quot; (not sure why).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>445377</commentid>
    <comment_count>21</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-08-02 11:37:48 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; I tried running this on my Chromium Linux build and the three new tests timed out.  This was because the source y coordinate was 605, which is just outside the bounds of the window (the window is 800x600).  If I set the height of #target to 200px, it works fine for me.  I&apos;m not sure why the bots are getting a text diff.

Thanks a lot for testing that! I will update the test accordingly.

&gt; For mac, don&apos;t you need an eventSender.leapForward after the mouseDown to trigger the drag?

That seems to work as it is now. I can add leapForward if that makes the test more robust.


&gt; editing/pasteboard/drag-image-to-contenteditable-in-iframe.html is failing because the src of the dropped img is &quot;broken_image&quot; (not sure why).

Hum :(
I&apos;ll try to get a Linux build to test that.

Thanks for the help.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>445964</commentid>
    <comment_count>22</comment_count>
      <attachid>102799</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-08-03 11:29:54 -0700</bug_when>
    <thetext>Created attachment 102799
Patch

I haven&apos;t had the time to work on this today so I just update the tests to see if the bot like that better :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448296</commentid>
    <comment_count>23</comment_count>
      <attachid>103300</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-08-08 15:13:38 -0700</bug_when>
    <thetext>Created attachment 103300
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448305</commentid>
    <comment_count>24</comment_count>
      <attachid>103300</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-08-08 15:18:00 -0700</bug_when>
    <thetext>Comment on attachment 103300
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=103300&amp;action=review

&gt; Source/WebCore/editing/MarkupAccumulator.cpp:377
&gt; -        if (shouldResolveURLs() &amp;&amp; !element-&gt;document()-&gt;url().isLocalFile())
&gt; +        if (shouldResolveURLs() || (shouldResolveNonLocalURLs() &amp;&amp; !element-&gt;document()-&gt;url().isLocalFile()))

Instead of adding checks like this, can shouldResolveURL take url() and internally check this condition?

&gt; Source/WebCore/editing/markup.h:44
&gt; +    enum EAbsoluteURLs { DoNotResolveURLs, AbsoluteNonLocalURLs, AbsoluteURLs };

I don&apos;t think these enum values are easy to understand when it appears on call sites.  Can we rename them to ResolveAllURLs and ResolveNonLocalURLs?  I don&apos;t think &quot;absolute&quot; adds any useful information here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448310</commentid>
    <comment_count>25</comment_count>
      <attachid>103300</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-08-08 15:21:56 -0700</bug_when>
    <thetext>Comment on attachment 103300
Patch

Clearing the review flags. I&apos;ll update the patch at work tomorrow :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448810</commentid>
    <comment_count>26</comment_count>
      <attachid>103398</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-08-09 14:28:43 -0700</bug_when>
    <thetext>Created attachment 103398
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448812</commentid>
    <comment_count>27</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-09 14:30:47 -0700</bug_when>
    <thetext>Attachment 103398 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/fast...&quot; exit_code: 1

Source/WebCore/editing/MarkupAccumulator.h:69:  The parameter name &quot;range&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 22 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448827</commentid>
    <comment_count>28</comment_count>
      <attachid>103398</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-08-09 14:55:59 -0700</bug_when>
    <thetext>Comment on attachment 103398
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=103398&amp;action=review

The patch looks good overall but I&apos;d like to see tests moved to LayoutTests/editing/pasteboard because drag &amp; drop really is an editing feature.

&gt; LayoutTests/ChangeLog:10
&gt; +        Add a new folder drag-and-drop for fast tests only focused on drag and drop.
&gt; +
&gt; +        Add 3 tests for dragging an image-like element to an editable area.

Please move these tests to LayoutTests/editing/pasteboard.

&gt; LayoutTests/platform/qt/Skipped:275
&gt; +fast/drag-and-drop

Really?  These tests fail on Qt?

&gt; Source/WebCore/editing/MarkupAccumulator.cpp:129
&gt; +    default:
&gt; +        break;
&gt; +    }
&gt; +    return urlString;

Please get rid of default and explicitly list all cases.  And please put ASSERT_NOT_REACHED; after the switch statement.  This way, if we ever add new resolve* in the future and forget to change this function, the compiler will catch it.

&gt;&gt; Source/WebCore/editing/MarkupAccumulator.h:69
&gt;&gt; +    MarkupAccumulator(Vector&lt;Node*&gt;* nodes, EAbsoluteURLs resolveUrlsMethod, const Range* range = 0);
&gt; 
&gt; The parameter name &quot;range&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]

Style bot is right.  Please get rid of nodes and range.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448855</commentid>
    <comment_count>29</comment_count>
      <attachid>103408</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-08-09 15:34:44 -0700</bug_when>
    <thetext>Created attachment 103408
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448860</commentid>
    <comment_count>30</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-08-09 15:39:08 -0700</bug_when>
    <thetext>(In reply to comment #28)
&gt; (From update of attachment 103398 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=103398&amp;action=review
&gt; 
&gt; The patch looks good overall but I&apos;d like to see tests moved to LayoutTests/editing/pasteboard because drag &amp; drop really is an editing feature.

These 3 tests are far from ideal for testing this particular bug. The editing could be done differently when the drag originate from WebKit and then this change is not tested anymore.

I made the directory because I have other tests for the same problem, but they are blocked because of 2 others bugs.

I moved the tests to editing/pasteboard for now. I can move them later if I can improve them (or make new ones :-))

&gt; &gt; LayoutTests/platform/qt/Skipped:275
&gt; &gt; +fast/drag-and-drop
&gt; 
&gt; Really?  These tests fail on Qt?

Qt does not support testing drag and drop. Originally this was working for Qt and I was fixing the other ports :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448863</commentid>
    <comment_count>31</comment_count>
      <attachid>103408</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-08-09 15:43:05 -0700</bug_when>
    <thetext>Comment on attachment 103408
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=103408&amp;action=review

Yay! More code sharing between the ports.

&gt; LayoutTests/editing/pasteboard/drag-and-drop-image-contenteditable.html:13
&gt; +

Nit: why do we have these blank lines after &lt;/head&gt;?

&gt; LayoutTests/editing/pasteboard/drag-and-drop-image-contenteditable.html:22
&gt; +jsTestIsAsync = true;

Nit: missing var.

&gt; LayoutTests/editing/pasteboard/drag-and-drop-image-contenteditable.html:36
&gt; +function runTest() {

Nit: maybe a blank line before function runTest()?

&gt; LayoutTests/editing/pasteboard/drag-and-drop-inputimage-contenteditable.html:13
&gt; +

Nit: space.

&gt; LayoutTests/editing/pasteboard/drag-and-drop-inputimage-contenteditable.html:22
&gt; +jsTestIsAsync = true;

Nit: missing var.

&gt; LayoutTests/editing/pasteboard/drag-and-drop-inputimage-contenteditable.html:37
&gt; +function runTest() {

Nit: blank line here.

&gt; LayoutTests/editing/pasteboard/drag-and-drop-objectimage-contenteditable.html:13
&gt; +

Nit: ditto.

&gt; LayoutTests/editing/pasteboard/drag-and-drop-objectimage-contenteditable.html:22
&gt; +jsTestIsAsync = true;

Nit: ditto.

&gt; LayoutTests/editing/pasteboard/drag-and-drop-objectimage-contenteditable.html:37
&gt; +function runTest() {

Nit: ditto.

&gt; Source/WebCore/editing/MarkupAccumulator.cpp:126
&gt; +

Missing break.

&gt; Source/WebCore/editing/MarkupAccumulator.cpp:391
&gt; +        appendQuotedURLAttributeValue(out, resolveURLIfNeeded(element, attribute.value()));

Maybe we can merge appendQuotedURLAttributeValue and resolveURLIfNeeded in a follow up patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>449131</commentid>
    <comment_count>32</comment_count>
      <attachid>103485</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-08-10 07:23:26 -0700</bug_when>
    <thetext>Created attachment 103485
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>449163</commentid>
    <comment_count>33</comment_count>
      <attachid>103485</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-10 08:27:31 -0700</bug_when>
    <thetext>Comment on attachment 103485
Patch for landing

Clearing flags on attachment: 103485

Committed r92769: &lt;http://trac.webkit.org/changeset/92769&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>449164</commentid>
    <comment_count>34</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-10 08:27:38 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88633</attachid>
            <date>2011-04-07 07:33:50 -0700</date>
            <delta_ts>2011-07-29 05:37:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>58043.diff</filename>
            <type>text/plain</type>
            <size>4276</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA2OWQwMzU1Li4wYWViODYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAg
QEAKKzIwMTEtMDQtMDcgIEJlbmphbWluIFBvdWxhaW4gIDxiZW5qYW1pbi5wb3VsYWluQG5va2lh
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBV
bmlmeSB0aGUgd2F5IHdlIGdlbmVyYXRlIEhUTUwgZm9yIGFuIGltYWdlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01ODA0MworCisgICAgICAgIFVuaWZ5
IHRoZSB3YXkgdXNlZCB0byBnZW5lcmF0ZSB0aGUgSFRNTCByZWxhdGVkIHRvIGFuIGltYWdlCisg
ICAgICAgIGluIHRoZSBjbGlwYm9hcmQuCisKKyAgICAgICAgVGhpcyBzaG91bGQgbm90IGNoYW5n
ZSB0aGUgZXhpc3RpbmcgYmVoYXZpb3IgYW5kIHNob3VsZCBiZSBjb3ZlcmVkIGJ5IHRoZSBleGlz
dGluZyB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9t
aXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNsaXBib2FyZENocm9taXVtOjpkZWNsYXJlQW5k
V3JpdGVEcmFnSW1hZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9DbGlwYm9hcmRXaW4uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q2xpcGJvYXJkV2luOjpkZWNsYXJlQW5kV3JpdGVEcmFnSW1h
Z2UpOgorCiAyMDExLTA0LTA3ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY2hyb21pdW0vQ2xpcGJvYXJkQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY2hyb21pdW0vQ2xpcGJvYXJkQ2hyb21pdW0uY3BwCmluZGV4IDY3NTYzMTMu
LmY1NTRiNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0Ns
aXBib2FyZENocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1
bS9DbGlwYm9hcmRDaHJvbWl1bS5jcHAKQEAgLTE5NSwzMyArMTk1LDYgQEAgRHJhZ0ltYWdlUmVm
IENsaXBib2FyZENocm9taXVtOjpjcmVhdGVEcmFnSW1hZ2UoSW50UG9pbnQmIGxvYykgY29uc3QK
ICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1zdGF0aWMgU3RyaW5nIGltYWdlVG9NYXJrdXAoY29u
c3QgU3RyaW5nJiB1cmwsIEVsZW1lbnQqIGVsZW1lbnQpCi17Ci0gICAgU3RyaW5nQnVpbGRlciBt
YXJrdXA7Ci0gICAgbWFya3VwLmFwcGVuZCgiPGltZyBzcmM9XCIiKTsKLSAgICBtYXJrdXAuYXBw
ZW5kKHVybCk7Ci0gICAgbWFya3VwLmFwcGVuZCgnIicpOwotICAgIC8vIENvcHkgb3ZlciBhdHRy
aWJ1dGVzLiAgSWYgd2UgYXJlIGRyYWdnaW5nIGFuIGltYWdlLCB3ZSBleHBlY3QgdGhpbmdzIGxp
a2UKLSAgICAvLyB0aGUgaWQgdG8gYmUgY29waWVkIGFzIHdlbGwuCi0gICAgTmFtZWROb2RlTWFw
KiBhdHRycyA9IGVsZW1lbnQtPmF0dHJpYnV0ZXMoKTsKLSAgICB1bnNpZ25lZCBsZW5ndGggPSBh
dHRycy0+bGVuZ3RoKCk7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytp
KSB7Ci0gICAgICAgIEF0dHJpYnV0ZSogYXR0ciA9IGF0dHJzLT5hdHRyaWJ1dGVJdGVtKGkpOwot
ICAgICAgICBpZiAoYXR0ci0+bG9jYWxOYW1lKCkgPT0gInNyYyIpCi0gICAgICAgICAgICBjb250
aW51ZTsKLSAgICAgICAgbWFya3VwLmFwcGVuZCgnICcpOwotICAgICAgICBtYXJrdXAuYXBwZW5k
KGF0dHItPmxvY2FsTmFtZSgpKTsKLSAgICAgICAgbWFya3VwLmFwcGVuZCgiPVwiIik7Ci0gICAg
ICAgIFN0cmluZyBlc2NhcGVkQXR0ciA9IGF0dHItPnZhbHVlKCk7Ci0gICAgICAgIGVzY2FwZWRB
dHRyLnJlcGxhY2UoIlwiIiwgIiZxdW90OyIpOwotICAgICAgICBtYXJrdXAuYXBwZW5kKGVzY2Fw
ZWRBdHRyKTsKLSAgICAgICAgbWFya3VwLmFwcGVuZCgnIicpOwotICAgIH0KLQotICAgIG1hcmt1
cC5hcHBlbmQoIi8+Iik7Ci0gICAgcmV0dXJuIG1hcmt1cC50b1N0cmluZygpOwotfQotCiBzdGF0
aWMgQ2FjaGVkSW1hZ2UqIGdldENhY2hlZEltYWdlKEVsZW1lbnQqIGVsZW1lbnQpCiB7CiAgICAg
Ly8gQXR0ZW1wdCB0byBwdWxsIENhY2hlZEltYWdlIGZyb20gZWxlbWVudApAQCAtMjgxLDEyICsy
NTQsOCBAQCB2b2lkIENsaXBib2FyZENocm9taXVtOjpkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2Uo
RWxlbWVudCogZWxlbWVudCwgY29uc3QgS1VSTCYgdQogICAgIGlmIChpbWFnZVVSTC5pc0VtcHR5
KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFN0cmluZyBmdWxsVVJMID0gZnJhbWUtPmRvY3Vt
ZW50KCktPmNvbXBsZXRlVVJMKHN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRNTFNwYWNlcyhpbWFn
ZVVSTCkpOwotICAgIGlmIChmdWxsVVJMLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuOwotCiAg
ICAgLy8gUHV0IGltZyB0YWcgb24gdGhlIGNsaXBib2FyZCByZWZlcmVuY2luZyB0aGUgaW1hZ2UK
LSAgICBtX2RhdGFPYmplY3QtPnNldERhdGEobWltZVR5cGVUZXh0SFRNTCwgaW1hZ2VUb01hcmt1
cChmdWxsVVJMLCBlbGVtZW50KSk7CisgICAgbV9kYXRhT2JqZWN0LT5zZXREYXRhKG1pbWVUeXBl
VGV4dEhUTUwsIGNyZWF0ZU1hcmt1cChlbGVtZW50LCBJbmNsdWRlTm9kZSwgMCwgQWJzb2x1dGVV
UkxzKSk7CiB9CiAKIHZvaWQgQ2xpcGJvYXJkQ2hyb21pdW06OndyaXRlVVJMKGNvbnN0IEtVUkwm
IHVybCwgY29uc3QgU3RyaW5nJiB0aXRsZSwgRnJhbWUqKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS93aW4vQ2xpcGJvYXJkV2luLmNwcAppbmRleCAwYjVhM2QzLi5mMzUxN2JiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkV2luLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkV2luLmNwcApAQCAtNjMxLDE0ICs2
MzEsNiBAQCBEcmFnSW1hZ2VSZWYgQ2xpcGJvYXJkV2luOjpjcmVhdGVEcmFnSW1hZ2UoSW50UG9p
bnQmIGxvYykgY29uc3QKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1zdGF0aWMgU3RyaW5nIGlt
YWdlVG9NYXJrdXAoY29uc3QgU3RyaW5nJiB1cmwpCi17Ci0gICAgU3RyaW5nIG1hcmt1cCgiPGlt
ZyBzcmM9XCIiKTsKLSAgICBtYXJrdXAuYXBwZW5kKHVybCk7Ci0gICAgbWFya3VwLmFwcGVuZCgi
XCIvPiIpOwotICAgIHJldHVybiBtYXJrdXA7Ci19Ci0KIHN0YXRpYyBDYWNoZWRJbWFnZSogZ2V0
Q2FjaGVkSW1hZ2UoRWxlbWVudCogZWxlbWVudCkKIHsKICAgICAvLyBBdHRlbXB0IHRvIHB1bGwg
Q2FjaGVkSW1hZ2UgZnJvbSBlbGVtZW50CkBAIC02OTgsMTUgKzY5MCwxMiBAQCB2b2lkIENsaXBi
b2FyZFdpbjo6ZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKEVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0
IEtVUkwmIHVybCwgYwogICAgIGlmIChpbWFnZVVSTC5pc0VtcHR5KCkpIAogICAgICAgICByZXR1
cm47CiAKLSAgICBTdHJpbmcgZnVsbFVSTCA9IGZyYW1lLT5kb2N1bWVudCgpLT5jb21wbGV0ZVVS
TChzdHJpcExlYWRpbmdBbmRUcmFpbGluZ0hUTUxTcGFjZXMoaW1hZ2VVUkwpKS5zdHJpbmcoKTsK
LSAgICBpZiAoZnVsbFVSTC5pc0VtcHR5KCkpIAotICAgICAgICByZXR1cm47CiAgICAgU1RHTUVE
SVVNIG1lZGl1bSA9IHswfTsKICAgICBtZWRpdW0udHltZWQgPSBUWU1FRF9IR0xPQkFMOwogCiAg
ICAgLy8gUHV0IGltZyB0YWcgb24gdGhlIGNsaXBib2FyZCByZWZlcmVuY2luZyB0aGUgaW1hZ2UK
ICAgICBWZWN0b3I8Y2hhcj4gZGF0YTsKLSAgICBtYXJrdXBUb0NGSFRNTChpbWFnZVRvTWFya3Vw
KGZ1bGxVUkwpLCAiIiwgZGF0YSk7CisgICAgbWFya3VwVG9DRkhUTUwoY3JlYXRlTWFya3VwKGVs
ZW1lbnQsIEluY2x1ZGVOb2RlLCAwLCBBYnNvbHV0ZVVSTHMpLCAiIiwgZGF0YSk7CiAgICAgbWVk
aXVtLmhHbG9iYWwgPSBjcmVhdGVHbG9iYWxEYXRhKGRhdGEpOwogICAgIGlmIChtZWRpdW0uaEds
b2JhbCAmJiBGQUlMRUQobV93cml0YWJsZURhdGFPYmplY3QtPlNldERhdGEoaHRtbEZvcm1hdCgp
LCAmbWVkaXVtLCBUUlVFKSkpCiAgICAgICAgIDo6R2xvYmFsRnJlZShtZWRpdW0uaEdsb2JhbCk7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102352</attachid>
            <date>2011-07-29 05:37:42 -0700</date>
            <delta_ts>2011-08-01 09:31:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-58043-20110729143738.patch</filename>
            <type>text/plain</type>
            <size>12115</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTE5ODIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4ZWEyZjhmYzc2N2M5MDYxOWIwYmFm
MjNkMDcxODdjMjIwMWYyN2Y1Li5iMDMyZmE5MzExZGM0NzQ0Y2RmMWQyNTJjOGIyNmJhYzkxYWRi
MzE2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTEtMDctMjkgIEJlbmphbWluIFBvdWxhaW4g
IDxiZW5qYW1pbkB3ZWJraXQub3JnPgorCisgICAgICAgIFVuaWZ5IHRoZSB3YXkgd2UgZ2VuZXJh
dGUgSFRNTCBmb3IgYW4gaW1hZ2UgaW4gdGhlIENsaXBib2FyZAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTgwNDMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGVzdHMgZm9yIGRyYWcgYW5kIGRyb3Ag
b2YgaW1hZ2UgYW5kIGltYWdlLWxpa2UgZWxlbWVudHMgb250byBhIGNvbnRlbnRlZGl0YWJsZSBy
ZWdpb24uCisKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9kcmFnLWFuZC1kcm9wLWltYWdlLWNvbnRl
bnRlZGl0YWJsZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL2Ry
YWctYW5kLWRyb3AtaW1hZ2UtY29udGVudGVkaXRhYmxlLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZXZlbnRzL2RyYWctYW5kLWRyb3AtaW5wdXRpbWFnZS1jb250ZW50ZWRpdGFibGUtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9kcmFnLWFuZC1kcm9wLWlu
cHV0aW1hZ2UtY29udGVudGVkaXRhYmxlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZl
bnRzL2RyYWctYW5kLWRyb3Atb2JqZWN0aW1hZ2UtY29udGVudGVkaXRhYmxlLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvZHJhZy1hbmQtZHJvcC1vYmplY3RpbWFn
ZS1jb250ZW50ZWRpdGFibGUuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vcXQvU2tp
cHBlZDogUXQgZG9lcyBub3QgaGF2ZSBzdXBwb3J0IGZvciB0ZXN0aW5nIERyYWcgYW5kIERyb3Au
CisKIDIwMTEtMDctMjkgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAog
ICAgICAgICBbUXRdIFVucmV2aWV3ZWQgZ2FyZGVuaW5nLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvZHJhZy1hbmQtZHJvcC1pbWFnZS1jb250ZW50ZWRpdGFibGUtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZHJhZy1hbmQtZHJvcC1pbWFnZS1jb250
ZW50ZWRpdGFibGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZmMDg2ZWRjY2I4ZDhiMTUwZjk0
MTY0M2QwYWFkNDMwMmZiZWE0M2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy9kcmFnLWFuZC1kcm9wLWltYWdlLWNvbnRlbnRlZGl0YWJsZS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwxNyBAQAorVGhpcyB0ZXN0IHZlcmlmeSBkcmFnZ2luZyBhbiBpbWFnZSBpbiB0
aGUgcGFnZSBrZWVwcyBpdHMgYXR0cmlidXRlcy4gVG8gdGVzdCBtYW51YWxseSwgZHJhZyB0aGUg
aW1hZ2UgYW5kIGRyb3AgaXQgaW4gdGhlIHJlY3Qgd2l0aCBhIGJsdWUgYm9yZGVyLgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworCisKK1BBU1MgdGFyZ2V0LmdldEVsZW1lbnRzQnlU
YWdOYW1lKCJpbWciKS5sZW5ndGggaXMgMQorUEFTUyB0YXJnZXQuZ2V0RWxlbWVudHNCeVRhZ05h
bWUoImltZyIpWzBdLmF0dHJpYnV0ZXMubGVuZ3RoIGlzIDUKK1BBU1MgdGFyZ2V0LmdldEVsZW1l
bnRzQnlUYWdOYW1lKCJpbWciKVswXS5pZCBpcyAic291cmNlIgorUEFTUyB0YXJnZXQuZ2V0RWxl
bWVudHNCeVRhZ05hbWUoImltZyIpWzBdLmFsdCBpcyAiYWx0LXRleHQiCitQQVNTIHRhcmdldC5n
ZXRFbGVtZW50c0J5VGFnTmFtZSgiaW1nIilbMF0uYXR0cmlidXRlc1siaXRlbXByb3AiXS52YWx1
ZSBpcyAic29tZWRhdGEiCitQQVNTIHRhcmdldC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW1nIilb
MF0uYXR0cmlidXRlc1siYXJiaXRyYXJ5Il0udmFsdWUgaXMgImdyZWVuIgorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL2RyYWctYW5kLWRyb3AtaW1hZ2UtY29udGVudGVkaXRhYmxlLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9kcmFnLWFuZC1kcm9wLWltYWdlLWNvbnRlbnRl
ZGl0YWJsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE2NmY3ZGE3ZDc4ZGQzY2Q0NDlmMzhiMjc1NDlmMmJk
YjhlYjRmMjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9kcmFn
LWFuZC1kcm9wLWltYWdlLWNvbnRlbnRlZGl0YWJsZS5odG1sCkBAIC0wLDAgKzEsNTkgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorI3RhcmdldCB7CisgICAgaGVp
Z2h0OiA0MDBweDsKKyAgICB3aWR0aDogNDAwcHg7CisgICAgYm9yZGVyOiA1cHggc29saWQgYmx1
ZTsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+CisKKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxw
IGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBjb250ZW50ZWRpdGFibGU9dHJ1ZSBpZD0idGFy
Z2V0Ij48L2Rpdj4KKzxkaXY+PGltZyBpZD0ic291cmNlIiBzcmM9InJlc291cmNlcy9vbmxvYWQt
aW1hZ2UucG5nIiBhbHQ9ImFsdC10ZXh0IiBpdGVtcHJvcD0ic29tZWRhdGEiIGFyYml0cmFyeT0i
Z3JlZW4iPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQ+CitkZXNj
cmlwdGlvbignVGhpcyB0ZXN0IHZlcmlmeSBkcmFnZ2luZyBhbiBpbWFnZSBpbiB0aGUgcGFnZSBr
ZWVwcyBpdHMgYXR0cmlidXRlcy4gVG8gdGVzdCBtYW51YWxseSwgZHJhZyB0aGUgaW1hZ2UgYW5k
IGRyb3AgaXQgaW4gdGhlIHJlY3Qgd2l0aCBhIGJsdWUgYm9yZGVyLicpOworanNUZXN0SXNBc3lu
YyA9IHRydWU7Cit2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcp
OworCitmdW5jdGlvbiBjb250ZW50SW5zZXJ0ZWQoKSB7CisgICAgc2hvdWxkQmUoJ3RhcmdldC5n
ZXRFbGVtZW50c0J5VGFnTmFtZSgiaW1nIikubGVuZ3RoJywgJzEnKTsKKyAgICBzaG91bGRCZSgn
dGFyZ2V0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbWciKVswXS5hdHRyaWJ1dGVzLmxlbmd0aCcs
ICc1Jyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0YXJnZXQuZ2V0RWxlbWVudHNCeVRh
Z05hbWUoImltZyIpWzBdLmlkJywgJ3NvdXJjZScpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZygndGFyZ2V0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbWciKVswXS5hbHQnLCAnYWx0LXRleHQn
KTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3RhcmdldC5nZXRFbGVtZW50c0J5VGFnTmFt
ZSgiaW1nIilbMF0uYXR0cmlidXRlc1siaXRlbXByb3AiXS52YWx1ZScsICdzb21lZGF0YScpOwor
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygndGFyZ2V0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJp
bWciKVswXS5hdHRyaWJ1dGVzWyJhcmJpdHJhcnkiXS52YWx1ZScsICdncmVlbicpOworCisgICAg
c3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KK2Z1bmN0
aW9uIHJ1blRlc3QoKSB7CisgICAgdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTU5vZGVJbnNl
cnRlZCcsIGNvbnRlbnRJbnNlcnRlZCwgZmFsc2UpOworICAgIGlmICghd2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQorICAgICAgICByZXR1cm47CisKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci53YWl0VW50aWxEb25lKCk7CisKKyAgICBlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNv
dXJjZSIpOworICAgIHggPSBlLm9mZnNldExlZnQgKyBlLm9mZnNldFdpZHRoIC8gMjsKKyAgICB5
ID0gZS5vZmZzZXRUb3AgKyBlLm9mZnNldEhlaWdodCAvIDI7CisKKyAgICBldmVudFNlbmRlci5t
b3VzZU1vdmVUbyh4LCB5KTsKKyAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICBlID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpOworICAgIHggPSBlLm9mZnNldExlZnQg
KyBlLm9mZnNldFdpZHRoIC8gMjsKKyAgICB5ID0gZS5vZmZzZXRUb3AgKyBlLm9mZnNldEhlaWdo
dCAvIDI7CisKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5KTsKKyAgICBldmVudFNl
bmRlci5tb3VzZVVwKCk7Cit9Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2RyYWctYW5kLWRyb3AtaW5wdXRpbWFnZS1jb250
ZW50ZWRpdGFibGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZHJhZy1h
bmQtZHJvcC1pbnB1dGltYWdlLWNvbnRlbnRlZGl0YWJsZS1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZWQxODZkNWZkNjJiMzFjNThhZDA2MDI2ZTcwODhjYzczMzIwYjg0NQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2RyYWctYW5kLWRyb3AtaW5wdXRpbWFnZS1j
b250ZW50ZWRpdGFibGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTYgQEAKK1RoaXMgdGVzdCB2
ZXJpZnkgZHJhZ2dpbmcgYW4gaW1hZ2UgaW4gdGhlIHBhZ2Uga2VlcHMgaXRzIGF0dHJpYnV0ZXMu
IFRvIHRlc3QgbWFudWFsbHksIGRyYWcgdGhlIGltYWdlIGFuZCBkcm9wIGl0IGluIHRoZSByZWN0
IHdpdGggYSBibHVlIGJvcmRlci4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKKwor
CitQQVNTIHRhcmdldC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKS5sZW5ndGggaXMgMQor
UEFTUyB0YXJnZXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlucHV0IilbMF0uYXR0cmlidXRlcy5s
ZW5ndGggaXMgNgorUEFTUyB0YXJnZXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlucHV0IilbMF0u
aWQgaXMgInNvdXJjZSIKK1BBU1MgdGFyZ2V0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIp
WzBdLmF0dHJpYnV0ZXNbIml0ZW1wcm9wIl0udmFsdWUgaXMgInNvbWVkYXRhIgorUEFTUyB0YXJn
ZXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlucHV0IilbMF0uYXR0cmlidXRlc1siYXJiaXRyYXJ5
Il0udmFsdWUgaXMgImdyZWVuIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2RyYWct
YW5kLWRyb3AtaW5wdXRpbWFnZS1jb250ZW50ZWRpdGFibGUuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL2RyYWctYW5kLWRyb3AtaW5wdXRpbWFnZS1jb250ZW50ZWRpdGFibGUuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4zODE0MzBhNmIzZTA4OTlhNzdmMmRiYWU5YzE1ZTk3MjMyMjViZGU3Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZHJhZy1hbmQtZHJvcC1pbnB1
dGltYWdlLWNvbnRlbnRlZGl0YWJsZS5odG1sCkBAIC0wLDAgKzEsNTggQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorI3RhcmdldCB7CisgICAgaGVpZ2h0OiA0MDBw
eDsKKyAgICB3aWR0aDogNDAwcHg7CisgICAgYm9yZGVyOiA1cHggc29saWQgYmx1ZTsKK30KKzwv
c3R5bGU+Cis8L2hlYWQ+CisKKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwIGlkPSJkZXNj
cmlwdGlvbiI+PC9wPgorPGRpdiBjb250ZW50ZWRpdGFibGU9dHJ1ZSBpZD0idGFyZ2V0Ij48L2Rp
dj4KKzxkaXY+PGlucHV0IHR5cGU9ImltYWdlIiBpZD0ic291cmNlIiBzcmM9InJlc291cmNlcy9v
bmxvYWQtaW1hZ2UucG5nIiBpdGVtcHJvcD0ic29tZWRhdGEiIGFyYml0cmFyeT0iZ3JlZW4iIGRy
YWdnYWJsZT10cnVlPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQ+
CitkZXNjcmlwdGlvbignVGhpcyB0ZXN0IHZlcmlmeSBkcmFnZ2luZyBhbiBpbWFnZSBpbiB0aGUg
cGFnZSBrZWVwcyBpdHMgYXR0cmlidXRlcy4gVG8gdGVzdCBtYW51YWxseSwgZHJhZyB0aGUgaW1h
Z2UgYW5kIGRyb3AgaXQgaW4gdGhlIHJlY3Qgd2l0aCBhIGJsdWUgYm9yZGVyLicpOworanNUZXN0
SXNBc3luYyA9IHRydWU7Cit2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rh
cmdldCcpOworCitmdW5jdGlvbiBjb250ZW50SW5zZXJ0ZWQoKSB7CisgICAgc2hvdWxkQmUoJ3Rh
cmdldC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKS5sZW5ndGgnLCAnMScpOworICAgIHNo
b3VsZEJlKCd0YXJnZXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlucHV0IilbMF0uYXR0cmlidXRl
cy5sZW5ndGgnLCAnNicpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygndGFyZ2V0LmdldEVs
ZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIpWzBdLmlkJywgJ3NvdXJjZScpOworICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygndGFyZ2V0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIpWzBdLmF0
dHJpYnV0ZXNbIml0ZW1wcm9wIl0udmFsdWUnLCAnc29tZWRhdGEnKTsKKyAgICBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoJ3RhcmdldC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKVswXS5hdHRy
aWJ1dGVzWyJhcmJpdHJhcnkiXS52YWx1ZScsICdncmVlbicpOworCisgICAgc3VjY2Vzc2Z1bGx5
UGFyc2VkID0gdHJ1ZTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KK2Z1bmN0aW9uIHJ1blRlc3Qo
KSB7CisgICAgdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTU5vZGVJbnNlcnRlZCcsIGNvbnRl
bnRJbnNlcnRlZCwgZmFsc2UpOworICAgIGlmICghd2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQorICAgICAgICByZXR1cm47CisKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxE
b25lKCk7CisKKyAgICBlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNvdXJjZSIpOworICAg
IHggPSBlLm9mZnNldExlZnQgKyBlLm9mZnNldFdpZHRoIC8gMjsKKyAgICB5ID0gZS5vZmZzZXRU
b3AgKyBlLm9mZnNldEhlaWdodCAvIDI7CisKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4
LCB5KTsKKyAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICBlID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInRhcmdldCIpOworICAgIHggPSBlLm9mZnNldExlZnQgKyBlLm9mZnNldFdp
ZHRoIC8gMjsKKyAgICB5ID0gZS5vZmZzZXRUb3AgKyBlLm9mZnNldEhlaWdodCAvIDI7CisKKyAg
ICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5KTsKKyAgICBldmVudFNlbmRlci5tb3VzZVVw
KCk7Cit9Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL2RyYWctYW5kLWRyb3Atb2JqZWN0aW1hZ2UtY29udGVudGVkaXRhYmxl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2RyYWctYW5kLWRyb3Atb2Jq
ZWN0aW1hZ2UtY29udGVudGVkaXRhYmxlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ODExNjNk
NGE0OGNlYjJmNDgzZTdhMjIzODVkZjNiYjE2ZjU4MmMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvZHJhZy1hbmQtZHJvcC1vYmplY3RpbWFnZS1jb250ZW50ZWRp
dGFibGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTYgQEAKK1RoaXMgdGVzdCB2ZXJpZnkgZHJh
Z2dpbmcgYW4gaW1hZ2UgaW4gdGhlIHBhZ2Uga2VlcHMgaXRzIGF0dHJpYnV0ZXMuIFRvIHRlc3Qg
bWFudWFsbHksIGRyYWcgdGhlIGltYWdlIGFuZCBkcm9wIGl0IGluIHRoZSByZWN0IHdpdGggYSBi
bHVlIGJvcmRlci4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKKworCitQQVNTIHRh
cmdldC5nZXRFbGVtZW50c0J5VGFnTmFtZSgib2JqZWN0IikubGVuZ3RoIGlzIDEKK1BBU1MgdGFy
Z2V0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJvYmplY3QiKVswXS5hdHRyaWJ1dGVzLmxlbmd0aCBp
cyA2CitQQVNTIHRhcmdldC5nZXRFbGVtZW50c0J5VGFnTmFtZSgib2JqZWN0IilbMF0uaWQgaXMg
InNvdXJjZSIKK1BBU1MgdGFyZ2V0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJvYmplY3QiKVswXS5h
dHRyaWJ1dGVzWyJpdGVtcHJvcCJdLnZhbHVlIGlzICJzb21lZGF0YSIKK1BBU1MgdGFyZ2V0Lmdl
dEVsZW1lbnRzQnlUYWdOYW1lKCJvYmplY3QiKVswXS5hdHRyaWJ1dGVzWyJhcmJpdHJhcnkiXS52
YWx1ZSBpcyAiZ3JlZW4iCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZHJhZy1hbmQt
ZHJvcC1vYmplY3RpbWFnZS1jb250ZW50ZWRpdGFibGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL2RyYWctYW5kLWRyb3Atb2JqZWN0aW1hZ2UtY29udGVudGVkaXRhYmxlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZjZmYTViY2Y2MzE5NjYwMjg5YjhlNmMyMzEzMDI5ODg5NTg3YzMwMgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2RyYWctYW5kLWRyb3Atb2JqZWN0
aW1hZ2UtY29udGVudGVkaXRhYmxlLmh0bWwKQEAgLTAsMCArMSw1OCBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisjdGFyZ2V0IHsKKyAgICBoZWlnaHQ6IDQwMHB4
OworICAgIHdpZHRoOiA0MDBweDsKKyAgICBib3JkZXI6IDVweCBzb2xpZCBibHVlOworfQorPC9z
dHlsZT4KKzwvaGVhZD4KKworPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHAgaWQ9ImRlc2Ny
aXB0aW9uIj48L3A+Cis8ZGl2IGNvbnRlbnRlZGl0YWJsZT10cnVlIGlkPSJ0YXJnZXQiPjwvZGl2
PgorPGRpdj48b2JqZWN0IGlkPSJzb3VyY2UiIGRhdGE9InJlc291cmNlcy9vbmxvYWQtaW1hZ2Uu
cG5nIiB0eXBlPSJpbWFnZS9wbmciIGl0ZW1wcm9wPSJzb21lZGF0YSIgYXJiaXRyYXJ5PSJncmVl
biIgZHJhZ2dhYmxlPXRydWU+PC9vYmplY3Q+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rp
dj4KKworPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUaGlzIHRlc3QgdmVyaWZ5IGRyYWdnaW5nIGFu
IGltYWdlIGluIHRoZSBwYWdlIGtlZXBzIGl0cyBhdHRyaWJ1dGVzLiBUbyB0ZXN0IG1hbnVhbGx5
LCBkcmFnIHRoZSBpbWFnZSBhbmQgZHJvcCBpdCBpbiB0aGUgcmVjdCB3aXRoIGEgYmx1ZSBib3Jk
ZXIuJyk7Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK3ZhciB0YXJnZXQgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgndGFyZ2V0Jyk7CisKK2Z1bmN0aW9uIGNvbnRlbnRJbnNlcnRlZCgpIHsKKyAg
ICBzaG91bGRCZSgndGFyZ2V0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJvYmplY3QiKS5sZW5ndGgn
LCAnMScpOworICAgIHNob3VsZEJlKCd0YXJnZXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIm9iamVj
dCIpWzBdLmF0dHJpYnV0ZXMubGVuZ3RoJywgJzYnKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoJ3RhcmdldC5nZXRFbGVtZW50c0J5VGFnTmFtZSgib2JqZWN0IilbMF0uaWQnLCAnc291cmNl
Jyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0YXJnZXQuZ2V0RWxlbWVudHNCeVRhZ05h
bWUoIm9iamVjdCIpWzBdLmF0dHJpYnV0ZXNbIml0ZW1wcm9wIl0udmFsdWUnLCAnc29tZWRhdGEn
KTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3RhcmdldC5nZXRFbGVtZW50c0J5VGFnTmFt
ZSgib2JqZWN0IilbMF0uYXR0cmlidXRlc1siYXJiaXRyYXJ5Il0udmFsdWUnLCAnZ3JlZW4nKTsK
KworICAgIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9
CitmdW5jdGlvbiBydW5UZXN0KCkgeworICAgIHRhcmdldC5hZGRFdmVudExpc3RlbmVyKCdET01O
b2RlSW5zZXJ0ZWQnLCBjb250ZW50SW5zZXJ0ZWQsIGZhbHNlKTsKKyAgICBpZiAoIXdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgZSA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJzb3VyY2UiKTsKKyAgICB4ID0gZS5vZmZzZXRMZWZ0ICsgZS5vZmZzZXRXaWR0aCAvIDI7
CisgICAgeSA9IGUub2Zmc2V0VG9wICsgZS5vZmZzZXRIZWlnaHQgLyAyOworCisgICAgZXZlbnRT
ZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7Cisg
ICAgZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKTsKKyAgICB4ID0gZS5vZmZz
ZXRMZWZ0ICsgZS5vZmZzZXRXaWR0aCAvIDI7CisgICAgeSA9IGUub2Zmc2V0VG9wICsgZS5vZmZz
ZXRIZWlnaHQgLyAyOworCisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7CisgICAg
ZXZlbnRTZW5kZXIubW91c2VVcCgpOworfQorPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vcXQvU2tpcHBlZAppbmRleCAwMTQyMDE3MmFiNTNlNDVlZWJkM2I2ZTEzNmU4YTlk
ODE3YzBlMTNlLi4wNjgyODY1NTUyOTg3ODY2MmY0Yzg5ZTQ2MzYwZTE3M2UwNTc2NWFjIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3F0L1NraXBwZWQKQEAgLTI2OCw2ICsyNjgsOSBAQCBmYXN0L2V2ZW50cy9kcmFn
LXBhcmVudC1ub2RlLmh0bWwKIGZhc3QvZXZlbnRzL2RyYWctYW5kLWRyb3AuaHRtbAogZmFzdC9l
dmVudHMvZHJhZy1hbmQtZHJvcC1kYXRhVHJhbnNmZXItdHlwZXMtbm9jcmFzaC5odG1sCiBmYXN0
L2V2ZW50cy9kcmFnLWFuZC1kcm9wLWZpcmUtZHJhZy1kcmFnb3Zlci5odG1sCitmYXN0L2V2ZW50
cy9kcmFnLWFuZC1kcm9wLWltYWdlLWNvbnRlbnRlZGl0YWJsZS5odG1sCitmYXN0L2V2ZW50cy9k
cmFnLWFuZC1kcm9wLWlucHV0aW1hZ2UtY29udGVudGVkaXRhYmxlLmh0bWwKK2Zhc3QvZXZlbnRz
L2RyYWctYW5kLWRyb3Atb2JqZWN0aW1hZ2UtY29udGVudGVkaXRhYmxlLmh0bWwKIGZhc3QvZXZl
bnRzL29uZHJvcC10ZXh0LWh0bWwuaHRtbAogZmFzdC9ldmVudHMvZHJvcHpvbmUtMDAxLmh0bWwK
IGZhc3QvZXZlbnRzL2Ryb3B6b25lLTAwMi5odG1sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102523</attachid>
            <date>2011-08-01 09:31:34 -0700</date>
            <delta_ts>2011-08-03 11:29:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-58043-20110801183131.patch</filename>
            <type>text/plain</type>
            <size>19207</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTE5ODIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4ZWEyZjhmYzc2N2M5MDYxOWIwYmFm
MjNkMDcxODdjMjIwMWYyN2Y1Li5iMDMyZmE5MzExZGM0NzQ0Y2RmMWQyNTJjOGIyNmJhYzkxYWRi
MzE2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTEtMDctMjkgIEJlbmphbWluIFBvdWxhaW4g
IDxiZW5qYW1pbkB3ZWJraXQub3JnPgorCisgICAgICAgIFVuaWZ5IHRoZSB3YXkgd2UgZ2VuZXJh
dGUgSFRNTCBmb3IgYW4gaW1hZ2UgaW4gdGhlIENsaXBib2FyZAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTgwNDMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGVzdHMgZm9yIGRyYWcgYW5kIGRyb3Ag
b2YgaW1hZ2UgYW5kIGltYWdlLWxpa2UgZWxlbWVudHMgb250byBhIGNvbnRlbnRlZGl0YWJsZSBy
ZWdpb24uCisKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9kcmFnLWFuZC1kcm9wLWltYWdlLWNvbnRl
bnRlZGl0YWJsZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL2Ry
YWctYW5kLWRyb3AtaW1hZ2UtY29udGVudGVkaXRhYmxlLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZXZlbnRzL2RyYWctYW5kLWRyb3AtaW5wdXRpbWFnZS1jb250ZW50ZWRpdGFibGUtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9kcmFnLWFuZC1kcm9wLWlu
cHV0aW1hZ2UtY29udGVudGVkaXRhYmxlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZl
bnRzL2RyYWctYW5kLWRyb3Atb2JqZWN0aW1hZ2UtY29udGVudGVkaXRhYmxlLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvZHJhZy1hbmQtZHJvcC1vYmplY3RpbWFn
ZS1jb250ZW50ZWRpdGFibGUuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vcXQvU2tp
cHBlZDogUXQgZG9lcyBub3QgaGF2ZSBzdXBwb3J0IGZvciB0ZXN0aW5nIERyYWcgYW5kIERyb3Au
CisKIDIwMTEtMDctMjkgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAog
ICAgICAgICBbUXRdIFVucmV2aWV3ZWQgZ2FyZGVuaW5nLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvZHJhZy1hbmQtZHJvcC1pbWFnZS1jb250ZW50ZWRpdGFibGUtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZHJhZy1hbmQtZHJvcC1pbWFnZS1jb250
ZW50ZWRpdGFibGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZmMDg2ZWRjY2I4ZDhiMTUwZjk0
MTY0M2QwYWFkNDMwMmZiZWE0M2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy9kcmFnLWFuZC1kcm9wLWltYWdlLWNvbnRlbnRlZGl0YWJsZS1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwxNyBAQAorVGhpcyB0ZXN0IHZlcmlmeSBkcmFnZ2luZyBhbiBpbWFnZSBpbiB0
aGUgcGFnZSBrZWVwcyBpdHMgYXR0cmlidXRlcy4gVG8gdGVzdCBtYW51YWxseSwgZHJhZyB0aGUg
aW1hZ2UgYW5kIGRyb3AgaXQgaW4gdGhlIHJlY3Qgd2l0aCBhIGJsdWUgYm9yZGVyLgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworCisKK1BBU1MgdGFyZ2V0LmdldEVsZW1lbnRzQnlU
YWdOYW1lKCJpbWciKS5sZW5ndGggaXMgMQorUEFTUyB0YXJnZXQuZ2V0RWxlbWVudHNCeVRhZ05h
bWUoImltZyIpWzBdLmF0dHJpYnV0ZXMubGVuZ3RoIGlzIDUKK1BBU1MgdGFyZ2V0LmdldEVsZW1l
bnRzQnlUYWdOYW1lKCJpbWciKVswXS5pZCBpcyAic291cmNlIgorUEFTUyB0YXJnZXQuZ2V0RWxl
bWVudHNCeVRhZ05hbWUoImltZyIpWzBdLmFsdCBpcyAiYWx0LXRleHQiCitQQVNTIHRhcmdldC5n
ZXRFbGVtZW50c0J5VGFnTmFtZSgiaW1nIilbMF0uYXR0cmlidXRlc1siaXRlbXByb3AiXS52YWx1
ZSBpcyAic29tZWRhdGEiCitQQVNTIHRhcmdldC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW1nIilb
MF0uYXR0cmlidXRlc1siYXJiaXRyYXJ5Il0udmFsdWUgaXMgImdyZWVuIgorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL2RyYWctYW5kLWRyb3AtaW1hZ2UtY29udGVudGVkaXRhYmxlLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9kcmFnLWFuZC1kcm9wLWltYWdlLWNvbnRlbnRl
ZGl0YWJsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE2NmY3ZGE3ZDc4ZGQzY2Q0NDlmMzhiMjc1NDlmMmJk
YjhlYjRmMjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9kcmFn
LWFuZC1kcm9wLWltYWdlLWNvbnRlbnRlZGl0YWJsZS5odG1sCkBAIC0wLDAgKzEsNTkgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorI3RhcmdldCB7CisgICAgaGVp
Z2h0OiA0MDBweDsKKyAgICB3aWR0aDogNDAwcHg7CisgICAgYm9yZGVyOiA1cHggc29saWQgYmx1
ZTsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+CisKKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxw
IGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBjb250ZW50ZWRpdGFibGU9dHJ1ZSBpZD0idGFy
Z2V0Ij48L2Rpdj4KKzxkaXY+PGltZyBpZD0ic291cmNlIiBzcmM9InJlc291cmNlcy9vbmxvYWQt
aW1hZ2UucG5nIiBhbHQ9ImFsdC10ZXh0IiBpdGVtcHJvcD0ic29tZWRhdGEiIGFyYml0cmFyeT0i
Z3JlZW4iPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQ+CitkZXNj
cmlwdGlvbignVGhpcyB0ZXN0IHZlcmlmeSBkcmFnZ2luZyBhbiBpbWFnZSBpbiB0aGUgcGFnZSBr
ZWVwcyBpdHMgYXR0cmlidXRlcy4gVG8gdGVzdCBtYW51YWxseSwgZHJhZyB0aGUgaW1hZ2UgYW5k
IGRyb3AgaXQgaW4gdGhlIHJlY3Qgd2l0aCBhIGJsdWUgYm9yZGVyLicpOworanNUZXN0SXNBc3lu
YyA9IHRydWU7Cit2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcp
OworCitmdW5jdGlvbiBjb250ZW50SW5zZXJ0ZWQoKSB7CisgICAgc2hvdWxkQmUoJ3RhcmdldC5n
ZXRFbGVtZW50c0J5VGFnTmFtZSgiaW1nIikubGVuZ3RoJywgJzEnKTsKKyAgICBzaG91bGRCZSgn
dGFyZ2V0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbWciKVswXS5hdHRyaWJ1dGVzLmxlbmd0aCcs
ICc1Jyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0YXJnZXQuZ2V0RWxlbWVudHNCeVRh
Z05hbWUoImltZyIpWzBdLmlkJywgJ3NvdXJjZScpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZygndGFyZ2V0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbWciKVswXS5hbHQnLCAnYWx0LXRleHQn
KTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3RhcmdldC5nZXRFbGVtZW50c0J5VGFnTmFt
ZSgiaW1nIilbMF0uYXR0cmlidXRlc1siaXRlbXByb3AiXS52YWx1ZScsICdzb21lZGF0YScpOwor
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygndGFyZ2V0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJp
bWciKVswXS5hdHRyaWJ1dGVzWyJhcmJpdHJhcnkiXS52YWx1ZScsICdncmVlbicpOworCisgICAg
c3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KK2Z1bmN0
aW9uIHJ1blRlc3QoKSB7CisgICAgdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTU5vZGVJbnNl
cnRlZCcsIGNvbnRlbnRJbnNlcnRlZCwgZmFsc2UpOworICAgIGlmICghd2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQorICAgICAgICByZXR1cm47CisKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci53YWl0VW50aWxEb25lKCk7CisKKyAgICBlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNv
dXJjZSIpOworICAgIHggPSBlLm9mZnNldExlZnQgKyBlLm9mZnNldFdpZHRoIC8gMjsKKyAgICB5
ID0gZS5vZmZzZXRUb3AgKyBlLm9mZnNldEhlaWdodCAvIDI7CisKKyAgICBldmVudFNlbmRlci5t
b3VzZU1vdmVUbyh4LCB5KTsKKyAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICBlID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpOworICAgIHggPSBlLm9mZnNldExlZnQg
KyBlLm9mZnNldFdpZHRoIC8gMjsKKyAgICB5ID0gZS5vZmZzZXRUb3AgKyBlLm9mZnNldEhlaWdo
dCAvIDI7CisKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5KTsKKyAgICBldmVudFNl
bmRlci5tb3VzZVVwKCk7Cit9Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2RyYWctYW5kLWRyb3AtaW5wdXRpbWFnZS1jb250
ZW50ZWRpdGFibGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZHJhZy1h
bmQtZHJvcC1pbnB1dGltYWdlLWNvbnRlbnRlZGl0YWJsZS1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZWQxODZkNWZkNjJiMzFjNThhZDA2MDI2ZTcwODhjYzczMzIwYjg0NQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2RyYWctYW5kLWRyb3AtaW5wdXRpbWFnZS1j
b250ZW50ZWRpdGFibGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTYgQEAKK1RoaXMgdGVzdCB2
ZXJpZnkgZHJhZ2dpbmcgYW4gaW1hZ2UgaW4gdGhlIHBhZ2Uga2VlcHMgaXRzIGF0dHJpYnV0ZXMu
IFRvIHRlc3QgbWFudWFsbHksIGRyYWcgdGhlIGltYWdlIGFuZCBkcm9wIGl0IGluIHRoZSByZWN0
IHdpdGggYSBibHVlIGJvcmRlci4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKKwor
CitQQVNTIHRhcmdldC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKS5sZW5ndGggaXMgMQor
UEFTUyB0YXJnZXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlucHV0IilbMF0uYXR0cmlidXRlcy5s
ZW5ndGggaXMgNgorUEFTUyB0YXJnZXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlucHV0IilbMF0u
aWQgaXMgInNvdXJjZSIKK1BBU1MgdGFyZ2V0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIp
WzBdLmF0dHJpYnV0ZXNbIml0ZW1wcm9wIl0udmFsdWUgaXMgInNvbWVkYXRhIgorUEFTUyB0YXJn
ZXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlucHV0IilbMF0uYXR0cmlidXRlc1siYXJiaXRyYXJ5
Il0udmFsdWUgaXMgImdyZWVuIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2RyYWct
YW5kLWRyb3AtaW5wdXRpbWFnZS1jb250ZW50ZWRpdGFibGUuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL2RyYWctYW5kLWRyb3AtaW5wdXRpbWFnZS1jb250ZW50ZWRpdGFibGUuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4zODE0MzBhNmIzZTA4OTlhNzdmMmRiYWU5YzE1ZTk3MjMyMjViZGU3Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZHJhZy1hbmQtZHJvcC1pbnB1
dGltYWdlLWNvbnRlbnRlZGl0YWJsZS5odG1sCkBAIC0wLDAgKzEsNTggQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorI3RhcmdldCB7CisgICAgaGVpZ2h0OiA0MDBw
eDsKKyAgICB3aWR0aDogNDAwcHg7CisgICAgYm9yZGVyOiA1cHggc29saWQgYmx1ZTsKK30KKzwv
c3R5bGU+Cis8L2hlYWQ+CisKKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwIGlkPSJkZXNj
cmlwdGlvbiI+PC9wPgorPGRpdiBjb250ZW50ZWRpdGFibGU9dHJ1ZSBpZD0idGFyZ2V0Ij48L2Rp
dj4KKzxkaXY+PGlucHV0IHR5cGU9ImltYWdlIiBpZD0ic291cmNlIiBzcmM9InJlc291cmNlcy9v
bmxvYWQtaW1hZ2UucG5nIiBpdGVtcHJvcD0ic29tZWRhdGEiIGFyYml0cmFyeT0iZ3JlZW4iIGRy
YWdnYWJsZT10cnVlPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQ+
CitkZXNjcmlwdGlvbignVGhpcyB0ZXN0IHZlcmlmeSBkcmFnZ2luZyBhbiBpbWFnZSBpbiB0aGUg
cGFnZSBrZWVwcyBpdHMgYXR0cmlidXRlcy4gVG8gdGVzdCBtYW51YWxseSwgZHJhZyB0aGUgaW1h
Z2UgYW5kIGRyb3AgaXQgaW4gdGhlIHJlY3Qgd2l0aCBhIGJsdWUgYm9yZGVyLicpOworanNUZXN0
SXNBc3luYyA9IHRydWU7Cit2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rh
cmdldCcpOworCitmdW5jdGlvbiBjb250ZW50SW5zZXJ0ZWQoKSB7CisgICAgc2hvdWxkQmUoJ3Rh
cmdldC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKS5sZW5ndGgnLCAnMScpOworICAgIHNo
b3VsZEJlKCd0YXJnZXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlucHV0IilbMF0uYXR0cmlidXRl
cy5sZW5ndGgnLCAnNicpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygndGFyZ2V0LmdldEVs
ZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIpWzBdLmlkJywgJ3NvdXJjZScpOworICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygndGFyZ2V0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIpWzBdLmF0
dHJpYnV0ZXNbIml0ZW1wcm9wIl0udmFsdWUnLCAnc29tZWRhdGEnKTsKKyAgICBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoJ3RhcmdldC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKVswXS5hdHRy
aWJ1dGVzWyJhcmJpdHJhcnkiXS52YWx1ZScsICdncmVlbicpOworCisgICAgc3VjY2Vzc2Z1bGx5
UGFyc2VkID0gdHJ1ZTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KK2Z1bmN0aW9uIHJ1blRlc3Qo
KSB7CisgICAgdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTU5vZGVJbnNlcnRlZCcsIGNvbnRl
bnRJbnNlcnRlZCwgZmFsc2UpOworICAgIGlmICghd2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQorICAgICAgICByZXR1cm47CisKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxE
b25lKCk7CisKKyAgICBlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNvdXJjZSIpOworICAg
IHggPSBlLm9mZnNldExlZnQgKyBlLm9mZnNldFdpZHRoIC8gMjsKKyAgICB5ID0gZS5vZmZzZXRU
b3AgKyBlLm9mZnNldEhlaWdodCAvIDI7CisKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4
LCB5KTsKKyAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICBlID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInRhcmdldCIpOworICAgIHggPSBlLm9mZnNldExlZnQgKyBlLm9mZnNldFdp
ZHRoIC8gMjsKKyAgICB5ID0gZS5vZmZzZXRUb3AgKyBlLm9mZnNldEhlaWdodCAvIDI7CisKKyAg
ICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5KTsKKyAgICBldmVudFNlbmRlci5tb3VzZVVw
KCk7Cit9Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL2RyYWctYW5kLWRyb3Atb2JqZWN0aW1hZ2UtY29udGVudGVkaXRhYmxl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2RyYWctYW5kLWRyb3Atb2Jq
ZWN0aW1hZ2UtY29udGVudGVkaXRhYmxlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ODExNjNk
NGE0OGNlYjJmNDgzZTdhMjIzODVkZjNiYjE2ZjU4MmMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvZHJhZy1hbmQtZHJvcC1vYmplY3RpbWFnZS1jb250ZW50ZWRp
dGFibGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTYgQEAKK1RoaXMgdGVzdCB2ZXJpZnkgZHJh
Z2dpbmcgYW4gaW1hZ2UgaW4gdGhlIHBhZ2Uga2VlcHMgaXRzIGF0dHJpYnV0ZXMuIFRvIHRlc3Qg
bWFudWFsbHksIGRyYWcgdGhlIGltYWdlIGFuZCBkcm9wIGl0IGluIHRoZSByZWN0IHdpdGggYSBi
bHVlIGJvcmRlci4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKKworCitQQVNTIHRh
cmdldC5nZXRFbGVtZW50c0J5VGFnTmFtZSgib2JqZWN0IikubGVuZ3RoIGlzIDEKK1BBU1MgdGFy
Z2V0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJvYmplY3QiKVswXS5hdHRyaWJ1dGVzLmxlbmd0aCBp
cyA2CitQQVNTIHRhcmdldC5nZXRFbGVtZW50c0J5VGFnTmFtZSgib2JqZWN0IilbMF0uaWQgaXMg
InNvdXJjZSIKK1BBU1MgdGFyZ2V0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJvYmplY3QiKVswXS5h
dHRyaWJ1dGVzWyJpdGVtcHJvcCJdLnZhbHVlIGlzICJzb21lZGF0YSIKK1BBU1MgdGFyZ2V0Lmdl
dEVsZW1lbnRzQnlUYWdOYW1lKCJvYmplY3QiKVswXS5hdHRyaWJ1dGVzWyJhcmJpdHJhcnkiXS52
YWx1ZSBpcyAiZ3JlZW4iCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZHJhZy1hbmQt
ZHJvcC1vYmplY3RpbWFnZS1jb250ZW50ZWRpdGFibGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL2RyYWctYW5kLWRyb3Atb2JqZWN0aW1hZ2UtY29udGVudGVkaXRhYmxlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZjZmYTViY2Y2MzE5NjYwMjg5YjhlNmMyMzEzMDI5ODg5NTg3YzMwMgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2RyYWctYW5kLWRyb3Atb2JqZWN0
aW1hZ2UtY29udGVudGVkaXRhYmxlLmh0bWwKQEAgLTAsMCArMSw1OCBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisjdGFyZ2V0IHsKKyAgICBoZWlnaHQ6IDQwMHB4
OworICAgIHdpZHRoOiA0MDBweDsKKyAgICBib3JkZXI6IDVweCBzb2xpZCBibHVlOworfQorPC9z
dHlsZT4KKzwvaGVhZD4KKworPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHAgaWQ9ImRlc2Ny
aXB0aW9uIj48L3A+Cis8ZGl2IGNvbnRlbnRlZGl0YWJsZT10cnVlIGlkPSJ0YXJnZXQiPjwvZGl2
PgorPGRpdj48b2JqZWN0IGlkPSJzb3VyY2UiIGRhdGE9InJlc291cmNlcy9vbmxvYWQtaW1hZ2Uu
cG5nIiB0eXBlPSJpbWFnZS9wbmciIGl0ZW1wcm9wPSJzb21lZGF0YSIgYXJiaXRyYXJ5PSJncmVl
biIgZHJhZ2dhYmxlPXRydWU+PC9vYmplY3Q+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rp
dj4KKworPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUaGlzIHRlc3QgdmVyaWZ5IGRyYWdnaW5nIGFu
IGltYWdlIGluIHRoZSBwYWdlIGtlZXBzIGl0cyBhdHRyaWJ1dGVzLiBUbyB0ZXN0IG1hbnVhbGx5
LCBkcmFnIHRoZSBpbWFnZSBhbmQgZHJvcCBpdCBpbiB0aGUgcmVjdCB3aXRoIGEgYmx1ZSBib3Jk
ZXIuJyk7Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK3ZhciB0YXJnZXQgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgndGFyZ2V0Jyk7CisKK2Z1bmN0aW9uIGNvbnRlbnRJbnNlcnRlZCgpIHsKKyAg
ICBzaG91bGRCZSgndGFyZ2V0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJvYmplY3QiKS5sZW5ndGgn
LCAnMScpOworICAgIHNob3VsZEJlKCd0YXJnZXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIm9iamVj
dCIpWzBdLmF0dHJpYnV0ZXMubGVuZ3RoJywgJzYnKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoJ3RhcmdldC5nZXRFbGVtZW50c0J5VGFnTmFtZSgib2JqZWN0IilbMF0uaWQnLCAnc291cmNl
Jyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0YXJnZXQuZ2V0RWxlbWVudHNCeVRhZ05h
bWUoIm9iamVjdCIpWzBdLmF0dHJpYnV0ZXNbIml0ZW1wcm9wIl0udmFsdWUnLCAnc29tZWRhdGEn
KTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3RhcmdldC5nZXRFbGVtZW50c0J5VGFnTmFt
ZSgib2JqZWN0IilbMF0uYXR0cmlidXRlc1siYXJiaXRyYXJ5Il0udmFsdWUnLCAnZ3JlZW4nKTsK
KworICAgIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9
CitmdW5jdGlvbiBydW5UZXN0KCkgeworICAgIHRhcmdldC5hZGRFdmVudExpc3RlbmVyKCdET01O
b2RlSW5zZXJ0ZWQnLCBjb250ZW50SW5zZXJ0ZWQsIGZhbHNlKTsKKyAgICBpZiAoIXdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgZSA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJzb3VyY2UiKTsKKyAgICB4ID0gZS5vZmZzZXRMZWZ0ICsgZS5vZmZzZXRXaWR0aCAvIDI7
CisgICAgeSA9IGUub2Zmc2V0VG9wICsgZS5vZmZzZXRIZWlnaHQgLyAyOworCisgICAgZXZlbnRT
ZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7Cisg
ICAgZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKTsKKyAgICB4ID0gZS5vZmZz
ZXRMZWZ0ICsgZS5vZmZzZXRXaWR0aCAvIDI7CisgICAgeSA9IGUub2Zmc2V0VG9wICsgZS5vZmZz
ZXRIZWlnaHQgLyAyOworCisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7CisgICAg
ZXZlbnRTZW5kZXIubW91c2VVcCgpOworfQorPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vcXQvU2tpcHBlZAppbmRleCAwMTQyMDE3MmFiNTNlNDVlZWJkM2I2ZTEzNmU4YTlk
ODE3YzBlMTNlLi4wNjgyODY1NTUyOTg3ODY2MmY0Yzg5ZTQ2MzYwZTE3M2UwNTc2NWFjIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3F0L1NraXBwZWQKQEAgLTI2OCw2ICsyNjgsOSBAQCBmYXN0L2V2ZW50cy9kcmFn
LXBhcmVudC1ub2RlLmh0bWwKIGZhc3QvZXZlbnRzL2RyYWctYW5kLWRyb3AuaHRtbAogZmFzdC9l
dmVudHMvZHJhZy1hbmQtZHJvcC1kYXRhVHJhbnNmZXItdHlwZXMtbm9jcmFzaC5odG1sCiBmYXN0
L2V2ZW50cy9kcmFnLWFuZC1kcm9wLWZpcmUtZHJhZy1kcmFnb3Zlci5odG1sCitmYXN0L2V2ZW50
cy9kcmFnLWFuZC1kcm9wLWltYWdlLWNvbnRlbnRlZGl0YWJsZS5odG1sCitmYXN0L2V2ZW50cy9k
cmFnLWFuZC1kcm9wLWlucHV0aW1hZ2UtY29udGVudGVkaXRhYmxlLmh0bWwKK2Zhc3QvZXZlbnRz
L2RyYWctYW5kLWRyb3Atb2JqZWN0aW1hZ2UtY29udGVudGVkaXRhYmxlLmh0bWwKIGZhc3QvZXZl
bnRzL29uZHJvcC10ZXh0LWh0bWwuaHRtbAogZmFzdC9ldmVudHMvZHJvcHpvbmUtMDAxLmh0bWwK
IGZhc3QvZXZlbnRzL2Ryb3B6b25lLTAwMi5odG1sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjE0OGQ1M2M2YjI4
YjIzYjljNWYzODUwMTNkNzY3YjRiYjZkNDc2OC4uOGJlZDgzNjQzYzY1ZWI2YzJlY2Y4MTA3Y2M5
OGVkZmE5NTk2M2Q2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDExLTA4LTAxICBC
ZW5qYW1pbiBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBVbmlmeSB0
aGUgd2F5IHdlIGdlbmVyYXRlIEhUTUwgZm9yIGFuIGltYWdlIGluIHRoZSBDbGlwYm9hcmQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU4MDQzCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIGNyZWF0ZU1h
cmt1cCgpIGZvciBnZW5lcmF0aW5nIHRoZSBIVE1MIG9mIGltYWdlIHBhc3NlZCB0byB0aGUgcGFz
dGVib2FyZC4KKworICAgICAgICBUZXN0czogZmFzdC9ldmVudHMvZHJhZy1hbmQtZHJvcC1pbWFn
ZS1jb250ZW50ZWRpdGFibGUuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9ldmVudHMvZHJhZy1h
bmQtZHJvcC1pbnB1dGltYWdlLWNvbnRlbnRlZGl0YWJsZS5odG1sCisgICAgICAgICAgICAgICBm
YXN0L2V2ZW50cy9kcmFnLWFuZC1kcm9wLW9iamVjdGltYWdlLWNvbnRlbnRlZGl0YWJsZS5odG1s
CisKKyAgICAgICAgKiBlZGl0aW5nL21hcmt1cC5jcHA6CisgICAgICAgICogZWRpdGluZy9tYXJr
dXAuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9hcmRDaHJvbWl1bS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9hcmRDaHJvbWl1bTo6ZGVjbGFyZUFuZFdyaXRlRHJh
Z0ltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEd0ay5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjp3cml0ZUltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9xdC9DbGlwYm9hcmRRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9hcmRRdDo6ZGVj
bGFyZUFuZFdyaXRlRHJhZ0ltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vQ2xpcGJvYXJk
V2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNsaXBib2FyZFdpbjo6ZGVjbGFyZUFuZFdyaXRl
RHJhZ0ltYWdlKToKKwogMjAxMS0wNy0yOSAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgTWFrZSB0aGUgRXhjZXB0aW9uQ29kZSBhcmd1bWVudCBvZiBFbGVtZW50
OjpzZXRTaGFkb3dQc2V1ZG9JZCgpIEFTU0VSVF9OT19FWENFUFRJT04gYnkgZGVmYXVsdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9tYXJrdXAuY3BwCmluZGV4IDcwZjVhODFiN2JkZTFhOTg4ZTg4ZTQ4ODYwMjk0
YWI5ZTlkNWI3MDIuLjVlZTdmY2MyZTMxMjk0NTdjYzQ1OTA0MTk4MTcwNGE4NmNiYzNmNzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAKQEAgLTg1NCwyOCArODU0LDQgQEAgU3RyaW5nIHVy
bFRvTWFya3VwKGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB0aXRsZSkKICAgICByZXR1
cm4gU3RyaW5nOjphZG9wdChtYXJrdXApOwogfQogCi1TdHJpbmcgaW1hZ2VUb01hcmt1cChjb25z
dCBLVVJMJiB1cmwsIEVsZW1lbnQqIGVsZW1lbnQpCi17Ci0gICAgVmVjdG9yPFVDaGFyPiBtYXJr
dXA7Ci0gICAgYXBwZW5kKG1hcmt1cCwgIjxpbWcgc3JjPVwiIik7Ci0gICAgYXBwZW5kKG1hcmt1
cCwgdXJsLnN0cmluZygpKTsKLSAgICBhcHBlbmQobWFya3VwLCAiXCIiKTsKLQotICAgIE5hbWVk
Tm9kZU1hcCogYXR0cnMgPSBlbGVtZW50LT5hdHRyaWJ1dGVzKCk7Ci0gICAgdW5zaWduZWQgbGVu
Z3RoID0gYXR0cnMtPmxlbmd0aCgpOwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5n
dGg7ICsraSkgewotICAgICAgICBBdHRyaWJ1dGUqIGF0dHIgPSBhdHRycy0+YXR0cmlidXRlSXRl
bShpKTsKLSAgICAgICAgaWYgKGF0dHItPmxvY2FsTmFtZSgpID09ICJzcmMiKQotICAgICAgICAg
ICAgY29udGludWU7Ci0gICAgICAgIGFwcGVuZChtYXJrdXAsICIgIik7Ci0gICAgICAgIGFwcGVu
ZChtYXJrdXAsIGF0dHItPmxvY2FsTmFtZSgpKTsKLSAgICAgICAgYXBwZW5kKG1hcmt1cCwgIj1c
IiIpOwotICAgICAgICBhcHBlbmRDaGFyYWN0ZXJzUmVwbGFjaW5nRW50aXRpZXMobWFya3VwLCBh
dHRyLT52YWx1ZSgpLmNoYXJhY3RlcnMoKSwgYXR0ci0+dmFsdWUoKS5sZW5ndGgoKSwgRW50aXR5
TWFza0luQXR0cmlidXRlVmFsdWUpOwotICAgICAgICBhcHBlbmQobWFya3VwLCAiXCIiKTsKLSAg
ICB9Ci0KLSAgICBhcHBlbmQobWFya3VwLCAiLz4iKTsKLSAgICByZXR1cm4gU3RyaW5nOjphZG9w
dChtYXJrdXApOwotfQotCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21h
cmt1cC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuaAppbmRleCBmOGNkOGNkOTIy
MTUxMjViNDkxMmZjNDQ4ZWQ5MDBkNzU5NzdkMjA0Li5mYjVkYTMxMDY5MTQ5YjhhMWY0OTA4YWM3
Mjg1YTk3YjMwMTIyODZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1
cC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmgKQEAgLTU3LDcgKzU3LDYg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIFN0cmluZyBjcmVhdGVGdWxsTWFya3VwKGNvbnN0
IFJhbmdlKik7CiAKICAgICBTdHJpbmcgdXJsVG9NYXJrdXAoY29uc3QgS1VSTCYsIGNvbnN0IFN0
cmluZyYgdGl0bGUpOwotICAgIFN0cmluZyBpbWFnZVRvTWFya3VwKGNvbnN0IEtVUkwmLCBFbGVt
ZW50Kik7CiB9CiAKICNlbmRpZiAvLyBtYXJrdXBfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY2hyb21pdW0vQ2xpcGJvYXJkQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY2hyb21pdW0vQ2xpcGJvYXJkQ2hyb21pdW0uY3BwCmluZGV4IGU4NjhlNmIw
YzJlMTc1YTlkMTQ0MWQ3ZmVlOTY1YzkzOTM4OTk2ZmIuLjdkYTY1N2MwYmFjYjkzNjMyYWJlOWZi
ODFhYzAwZDUzZWQxZDVlNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2No
cm9taXVtL0NsaXBib2FyZENocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jaHJvbWl1bS9DbGlwYm9hcmRDaHJvbWl1bS5jcHAKQEAgLTI2NSwxNiArMjY1LDggQEAgdm9p
ZCBDbGlwYm9hcmRDaHJvbWl1bTo6ZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKEVsZW1lbnQqIGVs
ZW1lbnQsIGNvbnN0IEtVUkwmIHUKICAgICAvLyBXcml0ZSB0aGUgYnl0ZXMgaW4gdGhlIGltYWdl
IHRvIHRoZSBmaWxlIGZvcm1hdC4KICAgICB3cml0ZUltYWdlVG9EYXRhT2JqZWN0KG1fZGF0YU9i
amVjdC5nZXQoKSwgZWxlbWVudCwgdXJsKTsKIAotICAgIEF0b21pY1N0cmluZyBpbWFnZVVSTCA9
IGVsZW1lbnQtPmdldEF0dHJpYnV0ZShzcmNBdHRyKTsKLSAgICBpZiAoaW1hZ2VVUkwuaXNFbXB0
eSgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBLVVJMIGZ1bGxVUkwgPSBmcmFtZS0+ZG9jdW1l
bnQoKS0+Y29tcGxldGVVUkwoc3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdIVE1MU3BhY2VzKGltYWdl
VVJMKSk7Ci0gICAgaWYgKGZ1bGxVUkwuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm47Ci0KICAg
ICAvLyBQdXQgaW1nIHRhZyBvbiB0aGUgY2xpcGJvYXJkIHJlZmVyZW5jaW5nIHRoZSBpbWFnZQot
ICAgIG1fZGF0YU9iamVjdC0+c2V0RGF0YShtaW1lVHlwZVRleHRIVE1MLCBpbWFnZVRvTWFya3Vw
KGZ1bGxVUkwsIGVsZW1lbnQpKTsKKyAgICBtX2RhdGFPYmplY3QtPnNldERhdGEobWltZVR5cGVU
ZXh0SFRNTCwgY3JlYXRlTWFya3VwKGVsZW1lbnQsIEluY2x1ZGVOb2RlLCAwLCBBYnNvbHV0ZVVS
THMpKTsKIH0KIAogdm9pZCBDbGlwYm9hcmRDaHJvbWl1bTo6d3JpdGVVUkwoY29uc3QgS1VSTCYg
dXJsLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBGcmFtZSopCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ndGsvUGFzdGVib2FyZEd0ay5jcHAKaW5kZXggZTA0OGI5MWExOGEzMzE3ZmM2NWE4ZGMz
ZjFhMzcxNmRjMTRlYmVlMy4uYmU3ZmYzNDNlZmRiYzJhZDZjMzU4YmZiMzhmZTUyYzdlNjVjMzcy
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRHdGsu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkR3RrLmNwcApA
QCAtMTIyLDExICsxMjIsNyBAQCB2b2lkIFBhc3RlYm9hcmQ6OndyaXRlSW1hZ2UoTm9kZSogbm9k
ZSwgY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYgdGl0bGUpCiAgICAgaWYgKCF1cmwuaXNFbXB0
eSgpKSB7CiAgICAgICAgIGRhdGFPYmplY3QtPnNldFVSTCh1cmwsIHRpdGxlKTsKIAotICAgICAg
ICAvLyBUaGlzIGltYWdlIG1heSBiZSBhbiBTVkcsIGVtYmVkLCBvciBvYmplY3QgdGFnLCBzbyBk
byBub3Qgd3JpdGUgdGhlIGltYWdlCi0gICAgICAgIC8vIHRhZyBtYXJrdXAgaW4gdGhvc2UgY2Fz
ZXMuIEV2ZW50dWFsbHkgd2UgbWF5IHdhbnQgdG8gc3VwcG9ydCBwYXNzaW5nIG1hcmt1cAotICAg
ICAgICAvLyBmb3IgdGhlc2UgdGFnIHR5cGVzLgotICAgICAgICBpZiAobm9kZS0+aGFzVGFnTmFt
ZShIVE1MTmFtZXM6OmltZ1RhZykpCi0gICAgICAgICAgICBkYXRhT2JqZWN0LT5zZXRNYXJrdXAo
aW1hZ2VUb01hcmt1cCh1cmwsIHN0YXRpY19jYXN0PEVsZW1lbnQqPihub2RlKSkpOworICAgICAg
ICBkYXRhT2JqZWN0LT5zZXRNYXJrdXAoY3JlYXRlTWFya3VwKHN0YXRpY19jYXN0PEVsZW1lbnQq
Pihub2RlKSwgSW5jbHVkZU5vZGUsIDAsIEFic29sdXRlVVJMcykpOwogICAgIH0KIAogICAgIEdS
ZWZQdHI8R2RrUGl4YnVmPiBwaXhidWYgPSBhZG9wdEdSZWYoaW1hZ2UtPmdldEdka1BpeGJ1Zigp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0NsaXBib2FyZFF0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0NsaXBib2FyZFF0LmNwcAppbmRleCBlNDNj
NjcwYzE1OGI5MTJiOGE4ZWYyZmNkZjcyZWYxMTFkYmQ1OTM3Li4xNGFjM2Y5NTI0NDg0Y2EyNjRi
ZDM3NmZkOTM3OTU4MDNkNmQ0ZTBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9xdC9DbGlwYm9hcmRRdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvQ2xp
cGJvYXJkUXQuY3BwCkBAIC0yODgsMjAgKzI4OCwxMiBAQCB2b2lkIENsaXBib2FyZFF0OjpkZWNs
YXJlQW5kV3JpdGVEcmFnSW1hZ2UoRWxlbWVudCogZWxlbWVudCwgY29uc3QgS1VSTCYgdXJsLCBj
bwogICAgIGlmIChwaXhtYXApCiAgICAgICAgIG1fd3JpdGFibGVEYXRhLT5zZXRJbWFnZURhdGEo
KnBpeG1hcCk7CiAKLSAgICBBdG9taWNTdHJpbmcgaW1hZ2VVUkwgPSBlbGVtZW50LT5nZXRBdHRy
aWJ1dGUoSFRNTE5hbWVzOjpzcmNBdHRyKTsKLSAgICBpZiAoaW1hZ2VVUkwuaXNFbXB0eSgpKQot
ICAgICAgICByZXR1cm47Ci0KLSAgICBLVVJMIGZ1bGxVUkwgPSBmcmFtZS0+ZG9jdW1lbnQoKS0+
Y29tcGxldGVVUkwoc3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdIVE1MU3BhY2VzKGltYWdlVVJMKSk7
Ci0gICAgaWYgKGZ1bGxVUkwuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm47Ci0KICAgICBRTGlz
dDxRVXJsPiB1cmxzOwogICAgIHVybHMuYXBwZW5kKHVybCk7CiAKICAgICBtX3dyaXRhYmxlRGF0
YS0+c2V0VGV4dCh0aXRsZSk7CiAgICAgbV93cml0YWJsZURhdGEtPnNldFVybHModXJscyk7Ci0g
ICAgbV93cml0YWJsZURhdGEtPnNldEh0bWwoaW1hZ2VUb01hcmt1cChmdWxsVVJMLCBlbGVtZW50
KSk7CisgICAgbV93cml0YWJsZURhdGEtPnNldEh0bWwoY3JlYXRlTWFya3VwKGVsZW1lbnQsIElu
Y2x1ZGVOb2RlLCAwLCBBYnNvbHV0ZVVSTHMpKTsKICNpZm5kZWYgUVRfTk9fQ0xJUEJPQVJECiAg
ICAgaWYgKGlzRm9yQ29weUFuZFBhc3RlKCkpCiAgICAgICAgIFFBcHBsaWNhdGlvbjo6Y2xpcGJv
YXJkKCktPnNldE1pbWVEYXRhKG1fd3JpdGFibGVEYXRhKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vd2luL0NsaXBib2FyZFdpbi5jcHAKaW5kZXggOTBjNTU1YjMxOTVlMjI1ZmQwZjc5NTc2
MjRiNmU3Mzg5MDc5NmU3Yy4uNmViOGZmNDg1M2MxNGY0MjZlOWRlNzFlYzBkM2E5MzVkNDRkYzk2
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFdpbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFdpbi5jcHAKQEAg
LTY4Myw3ICs2ODMsNyBAQCB2b2lkIENsaXBib2FyZFdpbjo6ZGVjbGFyZUFuZFdyaXRlRHJhZ0lt
YWdlKEVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0IEtVUkwmIHVybCwgYwogCiAgICAgLy8gUHV0IGlt
ZyB0YWcgb24gdGhlIGNsaXBib2FyZCByZWZlcmVuY2luZyB0aGUgaW1hZ2UKICAgICBWZWN0b3I8
Y2hhcj4gZGF0YTsKLSAgICBtYXJrdXBUb0NGSFRNTChpbWFnZVRvTWFya3VwKGZ1bGxVUkwsIGVs
ZW1lbnQpLCAiIiwgZGF0YSk7CisgICAgbWFya3VwVG9DRkhUTUwoY3JlYXRlTWFya3VwKGVsZW1l
bnQsIEluY2x1ZGVOb2RlLCAwLCBBYnNvbHV0ZVVSTHMpLCAiIiwgZGF0YSk7CiAgICAgbWVkaXVt
LmhHbG9iYWwgPSBjcmVhdGVHbG9iYWxEYXRhKGRhdGEpOwogICAgIGlmIChtZWRpdW0uaEdsb2Jh
bCAmJiBGQUlMRUQobV93cml0YWJsZURhdGFPYmplY3QtPlNldERhdGEoaHRtbEZvcm1hdCgpLCAm
bWVkaXVtLCBUUlVFKSkpCiAgICAgICAgIDo6R2xvYmFsRnJlZShtZWRpdW0uaEdsb2JhbCk7Cg==
</data>
<flag name="commit-queue"
          id="97801"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102799</attachid>
            <date>2011-08-03 11:29:54 -0700</date>
            <delta_ts>2011-08-08 15:13:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>58043.patch</filename>
            <type>text/plain</type>
            <size>10837</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxMjhjZGE4Li43NzU5NmE1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTEtMDgt
MDMgIEJlbmphbWluIFBvdWxhaW4gIDxiZW5qYW1pbkB3ZWJraXQub3JnPgorCisgICAgICAgIFVu
aWZ5IHRoZSB3YXkgd2UgZ2VuZXJhdGUgSFRNTCBmb3IgYW4gaW1hZ2UgaW4gdGhlIENsaXBib2Fy
ZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTgwNDMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGVz
dHMgZm9yIGRyYWcgYW5kIGRyb3Agb2YgaW1hZ2UgYW5kIGltYWdlLWxpa2UgZWxlbWVudHMgb250
byBhIGNvbnRlbnRlZGl0YWJsZSByZWdpb24uCisKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9kcmFn
LWFuZC1kcm9wLWltYWdlLWNvbnRlbnRlZGl0YWJsZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvZXZlbnRzL2RyYWctYW5kLWRyb3AtaW1hZ2UtY29udGVudGVkaXRhYmxlLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL2RyYWctYW5kLWRyb3AtaW5wdXRpbWFn
ZS1jb250ZW50ZWRpdGFibGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2
ZW50cy9kcmFnLWFuZC1kcm9wLWlucHV0aW1hZ2UtY29udGVudGVkaXRhYmxlLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvZXZlbnRzL2RyYWctYW5kLWRyb3Atb2JqZWN0aW1hZ2UtY29udGVu
dGVkaXRhYmxlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvZHJh
Zy1hbmQtZHJvcC1vYmplY3RpbWFnZS1jb250ZW50ZWRpdGFibGUuaHRtbDogQWRkZWQuCisgICAg
ICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDogUXQgZG9lcyBub3QgaGF2ZSBzdXBwb3J0IGZvciB0
ZXN0aW5nIERyYWcgYW5kIERyb3AuCisKIDIwMTEtMDgtMDMgIEFuZGVycyBDYXJsc3NvbiAgPGFu
ZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYSBNYWMgTGlvbiBza2lwcGVkIGxpc3Qu
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9kcmFnLWFuZC1kcm9wLWltYWdl
LWNvbnRlbnRlZGl0YWJsZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZHJhZy1hbmQt
ZHJvcC1pbWFnZS1jb250ZW50ZWRpdGFibGUuaHRtbAppbmRleCAxNjZmN2RhLi5hMmY1ODkyIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9kcmFnLWFuZC1kcm9wLWltYWdlLWNv
bnRlbnRlZGl0YWJsZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2RyYWctYW5k
LWRyb3AtaW1hZ2UtY29udGVudGVkaXRhYmxlLmh0bWwKQEAgLTQsOCArNCw4IEBACiA8c2NyaXB0
IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDxzdHlsZT4K
ICN0YXJnZXQgewotICAgIGhlaWdodDogNDAwcHg7Ci0gICAgd2lkdGg6IDQwMHB4OworICAgIGhl
aWdodDogMjAwcHg7CisgICAgd2lkdGg6IDIyMHB4OwogICAgIGJvcmRlcjogNXB4IHNvbGlkIGJs
dWU7CiB9CiA8L3N0eWxlPgpAQCAtNDYsNiArNDYsNyBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewog
CiAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7CiAgICAgZXZlbnRTZW5kZXIubW91
c2VEb3duKCk7CisgICAgZXZlbnRTZW5kZXIubGVhcEZvcndhcmQoMTAwKTsKICAgICBlID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpOwogICAgIHggPSBlLm9mZnNldExlZnQgKyBl
Lm9mZnNldFdpZHRoIC8gMjsKICAgICB5ID0gZS5vZmZzZXRUb3AgKyBlLm9mZnNldEhlaWdodCAv
IDI7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9kcmFnLWFuZC1kcm9wLWlu
cHV0aW1hZ2UtY29udGVudGVkaXRhYmxlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9k
cmFnLWFuZC1kcm9wLWlucHV0aW1hZ2UtY29udGVudGVkaXRhYmxlLmh0bWwKaW5kZXggMzgxNDMw
YS4uYTMwNzk2MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZHJhZy1hbmQt
ZHJvcC1pbnB1dGltYWdlLWNvbnRlbnRlZGl0YWJsZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL2RyYWctYW5kLWRyb3AtaW5wdXRpbWFnZS1jb250ZW50ZWRpdGFibGUuaHRtbApA
QCAtNCw4ICs0LDggQEAKIDxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgogPHN0eWxlPgogI3RhcmdldCB7Ci0gICAgaGVpZ2h0OiA0MDBweDsKLSAg
ICB3aWR0aDogNDAwcHg7CisgICAgaGVpZ2h0OiAyMDBweDsKKyAgICB3aWR0aDogMjIwcHg7CiAg
ICAgYm9yZGVyOiA1cHggc29saWQgYmx1ZTsKIH0KIDwvc3R5bGU+CkBAIC00NSw2ICs0NSw3IEBA
IGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAKICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5
KTsKICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICBldmVudFNlbmRlci5sZWFwRm9y
d2FyZCgxMDApOwogICAgIGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0Iik7CiAg
ICAgeCA9IGUub2Zmc2V0TGVmdCArIGUub2Zmc2V0V2lkdGggLyAyOwogICAgIHkgPSBlLm9mZnNl
dFRvcCArIGUub2Zmc2V0SGVpZ2h0IC8gMjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL2RyYWctYW5kLWRyb3Atb2JqZWN0aW1hZ2UtY29udGVudGVkaXRhYmxlLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9kcmFnLWFuZC1kcm9wLW9iamVjdGltYWdlLWNvbnRlbnRl
ZGl0YWJsZS5odG1sCmluZGV4IGY2ZmE1YmMuLjhhY2ZiZTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL2RyYWctYW5kLWRyb3Atb2JqZWN0aW1hZ2UtY29udGVudGVkaXRhYmxl
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZHJhZy1hbmQtZHJvcC1vYmplY3Rp
bWFnZS1jb250ZW50ZWRpdGFibGUuaHRtbApAQCAtNCw4ICs0LDggQEAKIDxzY3JpcHQgc3JjPSIu
Li9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgogPHN0eWxlPgogI3Rhcmdl
dCB7Ci0gICAgaGVpZ2h0OiA0MDBweDsKLSAgICB3aWR0aDogNDAwcHg7CisgICAgaGVpZ2h0OiAy
MDBweDsKKyAgICB3aWR0aDogMjIwcHg7CiAgICAgYm9yZGVyOiA1cHggc29saWQgYmx1ZTsKIH0K
IDwvc3R5bGU+CkBAIC00NSw2ICs0NSw3IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAKICAgICBl
dmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5KTsKICAgICBldmVudFNlbmRlci5tb3VzZURvd24o
KTsKKyAgICBldmVudFNlbmRlci5sZWFwRm9yd2FyZCgxMDApOwogICAgIGUgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgidGFyZ2V0Iik7CiAgICAgeCA9IGUub2Zmc2V0TGVmdCArIGUub2Zmc2V0
V2lkdGggLyAyOwogICAgIHkgPSBlLm9mZnNldFRvcCArIGUub2Zmc2V0SGVpZ2h0IC8gMjsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9xdC9Ta2lwcGVkCmluZGV4IDk1NDU0N2MuLjM5OGFhM2UgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
cXQvU2tpcHBlZApAQCAtMjc2LDYgKzI3Niw5IEBAIGZhc3QvZXZlbnRzL2RyYWctcGFyZW50LW5v
ZGUuaHRtbAogZmFzdC9ldmVudHMvZHJhZy1hbmQtZHJvcC5odG1sCiBmYXN0L2V2ZW50cy9kcmFn
LWFuZC1kcm9wLWRhdGFUcmFuc2Zlci10eXBlcy1ub2NyYXNoLmh0bWwKIGZhc3QvZXZlbnRzL2Ry
YWctYW5kLWRyb3AtZmlyZS1kcmFnLWRyYWdvdmVyLmh0bWwKK2Zhc3QvZXZlbnRzL2RyYWctYW5k
LWRyb3AtaW1hZ2UtY29udGVudGVkaXRhYmxlLmh0bWwKK2Zhc3QvZXZlbnRzL2RyYWctYW5kLWRy
b3AtaW5wdXRpbWFnZS1jb250ZW50ZWRpdGFibGUuaHRtbAorZmFzdC9ldmVudHMvZHJhZy1hbmQt
ZHJvcC1vYmplY3RpbWFnZS1jb250ZW50ZWRpdGFibGUuaHRtbAogZmFzdC9ldmVudHMvb25kcm9w
LXRleHQtaHRtbC5odG1sCiBmYXN0L2V2ZW50cy9kcm9wem9uZS0wMDEuaHRtbAogZmFzdC9ldmVu
dHMvZHJvcHpvbmUtMDAyLmh0bWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1NTU2ZjliLi44ODg3MTQyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTEtMDgtMDMgIEJlbmphbWluIFBvdWxhaW4gIDxi
ZW5qYW1pbkB3ZWJraXQub3JnPgorCisgICAgICAgIFVuaWZ5IHRoZSB3YXkgd2UgZ2VuZXJhdGUg
SFRNTCBmb3IgYW4gaW1hZ2UgaW4gdGhlIENsaXBib2FyZAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTgwNDMKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgY3JlYXRlTWFya3VwKCkgZm9yIGdlbmVyYXRp
bmcgdGhlIEhUTUwgb2YgaW1hZ2UgcGFzc2VkIHRvIHRoZSBwYXN0ZWJvYXJkLgorCisgICAgICAg
IFRlc3RzOiBmYXN0L2V2ZW50cy9kcmFnLWFuZC1kcm9wLWltYWdlLWNvbnRlbnRlZGl0YWJsZS5o
dG1sCisgICAgICAgICAgICAgICBmYXN0L2V2ZW50cy9kcmFnLWFuZC1kcm9wLWlucHV0aW1hZ2Ut
Y29udGVudGVkaXRhYmxlLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZXZlbnRzL2RyYWctYW5k
LWRyb3Atb2JqZWN0aW1hZ2UtY29udGVudGVkaXRhYmxlLmh0bWwKKworICAgICAgICAqIGVkaXRp
bmcvbWFya3VwLmNwcDoKKyAgICAgICAgKiBlZGl0aW5nL21hcmt1cC5oOgorICAgICAgICAqIHBs
YXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNsaXBib2FyZENocm9taXVtOjpkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UpOgorICAgICAgICAq
IHBsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkR3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhc3Rl
Ym9hcmQ6OndyaXRlSW1hZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL3F0L0NsaXBib2FyZFF0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNsaXBib2FyZFF0OjpkZWNsYXJlQW5kV3JpdGVEcmFnSW1h
Z2UpOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9DbGlwYm9hcmRXaW4uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q2xpcGJvYXJkV2luOjpkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UpOgorCiAyMDEx
LTA4LTAzICBMdWtlIE1hY3BoZXJzb24gICA8bWFjcGhlcnNvbkBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgVXNlIGFwcHJvcHJpYXRlIG1hY3JvIGZvciBDU1NQcm9wZXJ0eUltYWdlUmVuZGVyaW5n
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCmluZGV4IDcwZjVhODEuLjVlZTdmY2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL21hcmt1cC5jcHAKQEAgLTg1NCwyOCArODU0LDQgQEAgU3RyaW5nIHVybFRv
TWFya3VwKGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB0aXRsZSkKICAgICByZXR1cm4g
U3RyaW5nOjphZG9wdChtYXJrdXApOwogfQogCi1TdHJpbmcgaW1hZ2VUb01hcmt1cChjb25zdCBL
VVJMJiB1cmwsIEVsZW1lbnQqIGVsZW1lbnQpCi17Ci0gICAgVmVjdG9yPFVDaGFyPiBtYXJrdXA7
Ci0gICAgYXBwZW5kKG1hcmt1cCwgIjxpbWcgc3JjPVwiIik7Ci0gICAgYXBwZW5kKG1hcmt1cCwg
dXJsLnN0cmluZygpKTsKLSAgICBhcHBlbmQobWFya3VwLCAiXCIiKTsKLQotICAgIE5hbWVkTm9k
ZU1hcCogYXR0cnMgPSBlbGVtZW50LT5hdHRyaWJ1dGVzKCk7Ci0gICAgdW5zaWduZWQgbGVuZ3Ro
ID0gYXR0cnMtPmxlbmd0aCgpOwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7
ICsraSkgewotICAgICAgICBBdHRyaWJ1dGUqIGF0dHIgPSBhdHRycy0+YXR0cmlidXRlSXRlbShp
KTsKLSAgICAgICAgaWYgKGF0dHItPmxvY2FsTmFtZSgpID09ICJzcmMiKQotICAgICAgICAgICAg
Y29udGludWU7Ci0gICAgICAgIGFwcGVuZChtYXJrdXAsICIgIik7Ci0gICAgICAgIGFwcGVuZCht
YXJrdXAsIGF0dHItPmxvY2FsTmFtZSgpKTsKLSAgICAgICAgYXBwZW5kKG1hcmt1cCwgIj1cIiIp
OwotICAgICAgICBhcHBlbmRDaGFyYWN0ZXJzUmVwbGFjaW5nRW50aXRpZXMobWFya3VwLCBhdHRy
LT52YWx1ZSgpLmNoYXJhY3RlcnMoKSwgYXR0ci0+dmFsdWUoKS5sZW5ndGgoKSwgRW50aXR5TWFz
a0luQXR0cmlidXRlVmFsdWUpOwotICAgICAgICBhcHBlbmQobWFya3VwLCAiXCIiKTsKLSAgICB9
Ci0KLSAgICBhcHBlbmQobWFya3VwLCAiLz4iKTsKLSAgICByZXR1cm4gU3RyaW5nOjphZG9wdCht
YXJrdXApOwotfQotCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1
cC5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuaAppbmRleCBmOGNkOGNkLi5mYjVk
YTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmgKQEAgLTU3LDcgKzU3LDYgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgIFN0cmluZyBjcmVhdGVGdWxsTWFya3VwKGNvbnN0IFJhbmdlKik7CiAK
ICAgICBTdHJpbmcgdXJsVG9NYXJrdXAoY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYgdGl0bGUp
OwotICAgIFN0cmluZyBpbWFnZVRvTWFya3VwKGNvbnN0IEtVUkwmLCBFbGVtZW50Kik7CiB9CiAK
ICNlbmRpZiAvLyBtYXJrdXBfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y2hyb21pdW0vQ2xpcGJvYXJkQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y2hyb21pdW0vQ2xpcGJvYXJkQ2hyb21pdW0uY3BwCmluZGV4IGU4NjhlNmIuLjdkYTY1N2MgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9t
aXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9hcmRD
aHJvbWl1bS5jcHAKQEAgLTI2NSwxNiArMjY1LDggQEAgdm9pZCBDbGlwYm9hcmRDaHJvbWl1bTo6
ZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKEVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0IEtVUkwmIHUK
ICAgICAvLyBXcml0ZSB0aGUgYnl0ZXMgaW4gdGhlIGltYWdlIHRvIHRoZSBmaWxlIGZvcm1hdC4K
ICAgICB3cml0ZUltYWdlVG9EYXRhT2JqZWN0KG1fZGF0YU9iamVjdC5nZXQoKSwgZWxlbWVudCwg
dXJsKTsKIAotICAgIEF0b21pY1N0cmluZyBpbWFnZVVSTCA9IGVsZW1lbnQtPmdldEF0dHJpYnV0
ZShzcmNBdHRyKTsKLSAgICBpZiAoaW1hZ2VVUkwuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm47
Ci0KLSAgICBLVVJMIGZ1bGxVUkwgPSBmcmFtZS0+ZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoc3Ry
aXBMZWFkaW5nQW5kVHJhaWxpbmdIVE1MU3BhY2VzKGltYWdlVVJMKSk7Ci0gICAgaWYgKGZ1bGxV
UkwuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm47Ci0KICAgICAvLyBQdXQgaW1nIHRhZyBvbiB0
aGUgY2xpcGJvYXJkIHJlZmVyZW5jaW5nIHRoZSBpbWFnZQotICAgIG1fZGF0YU9iamVjdC0+c2V0
RGF0YShtaW1lVHlwZVRleHRIVE1MLCBpbWFnZVRvTWFya3VwKGZ1bGxVUkwsIGVsZW1lbnQpKTsK
KyAgICBtX2RhdGFPYmplY3QtPnNldERhdGEobWltZVR5cGVUZXh0SFRNTCwgY3JlYXRlTWFya3Vw
KGVsZW1lbnQsIEluY2x1ZGVOb2RlLCAwLCBBYnNvbHV0ZVVSTHMpKTsKIH0KIAogdm9pZCBDbGlw
Ym9hcmRDaHJvbWl1bTo6d3JpdGVVUkwoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHRp
dGxlLCBGcmFtZSopCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFz
dGVib2FyZEd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEd0
ay5jcHAKaW5kZXggZTA0OGI5MS4uYmU3ZmYzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9QYXN0ZWJvYXJkR3RrLmNwcApAQCAtMTIyLDExICsxMjIsNyBAQCB2b2lkIFBhc3Rl
Ym9hcmQ6OndyaXRlSW1hZ2UoTm9kZSogbm9kZSwgY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYg
dGl0bGUpCiAgICAgaWYgKCF1cmwuaXNFbXB0eSgpKSB7CiAgICAgICAgIGRhdGFPYmplY3QtPnNl
dFVSTCh1cmwsIHRpdGxlKTsKIAotICAgICAgICAvLyBUaGlzIGltYWdlIG1heSBiZSBhbiBTVkcs
IGVtYmVkLCBvciBvYmplY3QgdGFnLCBzbyBkbyBub3Qgd3JpdGUgdGhlIGltYWdlCi0gICAgICAg
IC8vIHRhZyBtYXJrdXAgaW4gdGhvc2UgY2FzZXMuIEV2ZW50dWFsbHkgd2UgbWF5IHdhbnQgdG8g
c3VwcG9ydCBwYXNzaW5nIG1hcmt1cAotICAgICAgICAvLyBmb3IgdGhlc2UgdGFnIHR5cGVzLgot
ICAgICAgICBpZiAobm9kZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OmltZ1RhZykpCi0gICAgICAg
ICAgICBkYXRhT2JqZWN0LT5zZXRNYXJrdXAoaW1hZ2VUb01hcmt1cCh1cmwsIHN0YXRpY19jYXN0
PEVsZW1lbnQqPihub2RlKSkpOworICAgICAgICBkYXRhT2JqZWN0LT5zZXRNYXJrdXAoY3JlYXRl
TWFya3VwKHN0YXRpY19jYXN0PEVsZW1lbnQqPihub2RlKSwgSW5jbHVkZU5vZGUsIDAsIEFic29s
dXRlVVJMcykpOwogICAgIH0KIAogICAgIEdSZWZQdHI8R2RrUGl4YnVmPiBwaXhidWYgPSBhZG9w
dEdSZWYoaW1hZ2UtPmdldEdka1BpeGJ1ZigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3F0L0NsaXBib2FyZFF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0
L0NsaXBib2FyZFF0LmNwcAppbmRleCBlNDNjNjcwLi4xNGFjM2Y5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9DbGlwYm9hcmRRdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vcXQvQ2xpcGJvYXJkUXQuY3BwCkBAIC0yODgsMjAgKzI4OCwxMiBAQCB2b2lk
IENsaXBib2FyZFF0OjpkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UoRWxlbWVudCogZWxlbWVudCwg
Y29uc3QgS1VSTCYgdXJsLCBjbwogICAgIGlmIChwaXhtYXApCiAgICAgICAgIG1fd3JpdGFibGVE
YXRhLT5zZXRJbWFnZURhdGEoKnBpeG1hcCk7CiAKLSAgICBBdG9taWNTdHJpbmcgaW1hZ2VVUkwg
PSBlbGVtZW50LT5nZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpzcmNBdHRyKTsKLSAgICBpZiAoaW1h
Z2VVUkwuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBLVVJMIGZ1bGxVUkwgPSBm
cmFtZS0+ZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoc3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdIVE1M
U3BhY2VzKGltYWdlVVJMKSk7Ci0gICAgaWYgKGZ1bGxVUkwuaXNFbXB0eSgpKQotICAgICAgICBy
ZXR1cm47Ci0KICAgICBRTGlzdDxRVXJsPiB1cmxzOwogICAgIHVybHMuYXBwZW5kKHVybCk7CiAK
ICAgICBtX3dyaXRhYmxlRGF0YS0+c2V0VGV4dCh0aXRsZSk7CiAgICAgbV93cml0YWJsZURhdGEt
PnNldFVybHModXJscyk7Ci0gICAgbV93cml0YWJsZURhdGEtPnNldEh0bWwoaW1hZ2VUb01hcmt1
cChmdWxsVVJMLCBlbGVtZW50KSk7CisgICAgbV93cml0YWJsZURhdGEtPnNldEh0bWwoY3JlYXRl
TWFya3VwKGVsZW1lbnQsIEluY2x1ZGVOb2RlLCAwLCBBYnNvbHV0ZVVSTHMpKTsKICNpZm5kZWYg
UVRfTk9fQ0xJUEJPQVJECiAgICAgaWYgKGlzRm9yQ29weUFuZFBhc3RlKCkpCiAgICAgICAgIFFB
cHBsaWNhdGlvbjo6Y2xpcGJvYXJkKCktPnNldE1pbWVEYXRhKG1fd3JpdGFibGVEYXRhKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRXaW4uY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFdpbi5jcHAKaW5kZXggOTBjNTU1
Yi4uNmViOGZmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBi
b2FyZFdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFdp
bi5jcHAKQEAgLTY4Myw3ICs2ODMsNyBAQCB2b2lkIENsaXBib2FyZFdpbjo6ZGVjbGFyZUFuZFdy
aXRlRHJhZ0ltYWdlKEVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0IEtVUkwmIHVybCwgYwogCiAgICAg
Ly8gUHV0IGltZyB0YWcgb24gdGhlIGNsaXBib2FyZCByZWZlcmVuY2luZyB0aGUgaW1hZ2UKICAg
ICBWZWN0b3I8Y2hhcj4gZGF0YTsKLSAgICBtYXJrdXBUb0NGSFRNTChpbWFnZVRvTWFya3VwKGZ1
bGxVUkwsIGVsZW1lbnQpLCAiIiwgZGF0YSk7CisgICAgbWFya3VwVG9DRkhUTUwoY3JlYXRlTWFy
a3VwKGVsZW1lbnQsIEluY2x1ZGVOb2RlLCAwLCBBYnNvbHV0ZVVSTHMpLCAiIiwgZGF0YSk7CiAg
ICAgbWVkaXVtLmhHbG9iYWwgPSBjcmVhdGVHbG9iYWxEYXRhKGRhdGEpOwogICAgIGlmIChtZWRp
dW0uaEdsb2JhbCAmJiBGQUlMRUQobV93cml0YWJsZURhdGFPYmplY3QtPlNldERhdGEoaHRtbEZv
cm1hdCgpLCAmbWVkaXVtLCBUUlVFKSkpCiAgICAgICAgIDo6R2xvYmFsRnJlZShtZWRpdW0uaEds
b2JhbCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103300</attachid>
            <date>2011-08-08 15:13:38 -0700</date>
            <delta_ts>2011-08-09 14:28:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-58043-20110809001335.patch</filename>
            <type>text/plain</type>
            <size>78221</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTI1OTQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkY2Y1NTYxNjJkNTBlM2JiMzhiOTQw
ZmY1MzYwMmRmYmU2MjFmNTRlLi5mNGU3MDUyMWI3NzZkZmFlZTY0MjNiOWE5ZTIzZDZlY2YzYmNj
MDQ3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDgtMDggIEJlbmphbWluIFBvdWxhaW4g
IDxiZW5qYW1pbkB3ZWJraXQub3JnPgorCisgICAgICAgIFVuaWZ5IHRoZSB3YXkgd2UgZ2VuZXJh
dGUgSFRNTCBmb3IgYW4gaW1hZ2UgaW4gdGhlIENsaXBib2FyZAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTgwNDMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgZm9sZGVyIGRyYWctYW5kLWRy
b3AgZm9yIGZhc3QgdGVzdHMgb25seSBmb2N1c2VkIG9uIGRyYWcgYW5kIGRyb3AuCisKKyAgICAg
ICAgKiBmYXN0L2RyYWctYW5kLWRyb3AvZHJhZy1hbmQtZHJvcC1pbWFnZS1jb250ZW50ZWRpdGFi
bGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RyYWctYW5kLWRyb3AvZHJh
Zy1hbmQtZHJvcC1pbWFnZS1jb250ZW50ZWRpdGFibGUuaHRtbDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9kcmFnLWFuZC1kcm9wL2RyYWctYW5kLWRyb3AtaW5wdXRpbWFnZS1jb250ZW50ZWRpdGFi
bGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RyYWctYW5kLWRyb3AvZHJh
Zy1hbmQtZHJvcC1pbnB1dGltYWdlLWNvbnRlbnRlZGl0YWJsZS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2RyYWctYW5kLWRyb3AvZHJhZy1hbmQtZHJvcC1vYmplY3RpbWFnZS1jb250ZW50
ZWRpdGFibGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RyYWctYW5kLWRy
b3AvZHJhZy1hbmQtZHJvcC1vYmplY3RpbWFnZS1jb250ZW50ZWRpdGFibGUuaHRtbDogQWRkZWQu
CisgICAgICAgICogZmFzdC9kcmFnLWFuZC1kcm9wL3Jlc291cmNlcy9vbmxvYWQtaW1hZ2UucG5n
OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9Ta2lwcGVkOgorCiAyMDExLTA4LTA4ICBB
bmRyYXMgQmVjc2kgIDxhYmVjc2lAd2Via2l0Lm9yZz4KIAogICAgICAgICBbUXRdIGZhc3QvZm9y
bXMvaW5wdXQtbnVtYmVyLXNpemUuaHRtbCBhZGRlZCBpbiByOTI1ODkgZmFpbHMKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZHJhZy1hbmQtZHJvcC9kcmFnLWFuZC1kcm9wLWltYWdlLWNv
bnRlbnRlZGl0YWJsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RyYWctYW5kLWRy
b3AvZHJhZy1hbmQtZHJvcC1pbWFnZS1jb250ZW50ZWRpdGFibGUtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjZmMDg2ZWRjY2I4ZDhiMTUwZjk0MTY0M2QwYWFkNDMwMmZiZWE0M2MKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RyYWctYW5kLWRyb3AvZHJhZy1hbmQtZHJvcC1p
bWFnZS1jb250ZW50ZWRpdGFibGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAKK1RoaXMg
dGVzdCB2ZXJpZnkgZHJhZ2dpbmcgYW4gaW1hZ2UgaW4gdGhlIHBhZ2Uga2VlcHMgaXRzIGF0dHJp
YnV0ZXMuIFRvIHRlc3QgbWFudWFsbHksIGRyYWcgdGhlIGltYWdlIGFuZCBkcm9wIGl0IGluIHRo
ZSByZWN0IHdpdGggYSBibHVlIGJvcmRlci4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKKworCitQQVNTIHRhcmdldC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW1nIikubGVuZ3RoIGlz
IDEKK1BBU1MgdGFyZ2V0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbWciKVswXS5hdHRyaWJ1dGVz
Lmxlbmd0aCBpcyA1CitQQVNTIHRhcmdldC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW1nIilbMF0u
aWQgaXMgInNvdXJjZSIKK1BBU1MgdGFyZ2V0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbWciKVsw
XS5hbHQgaXMgImFsdC10ZXh0IgorUEFTUyB0YXJnZXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlt
ZyIpWzBdLmF0dHJpYnV0ZXNbIml0ZW1wcm9wIl0udmFsdWUgaXMgInNvbWVkYXRhIgorUEFTUyB0
YXJnZXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImltZyIpWzBdLmF0dHJpYnV0ZXNbImFyYml0cmFy
eSJdLnZhbHVlIGlzICJncmVlbiIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RyYWctYW5kLWRy
b3AvZHJhZy1hbmQtZHJvcC1pbWFnZS1jb250ZW50ZWRpdGFibGUuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvZHJhZy1hbmQtZHJvcC9kcmFnLWFuZC1kcm9wLWltYWdlLWNvbnRlbnRlZGl0YWJsZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmEyZjU4OTI1MzU4OTE4MjllOWQ1NmM3YTA1ZTQxMjk5OGQxYjI0NGYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RyYWctYW5kLWRyb3AvZHJhZy1h
bmQtZHJvcC1pbWFnZS1jb250ZW50ZWRpdGFibGUuaHRtbApAQCAtMCwwICsxLDYwIEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KKyN0YXJnZXQgeworICAgIGhlaWdo
dDogMjAwcHg7CisgICAgd2lkdGg6IDIyMHB4OworICAgIGJvcmRlcjogNXB4IHNvbGlkIGJsdWU7
Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorCis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cCBp
ZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgY29udGVudGVkaXRhYmxlPXRydWUgaWQ9InRhcmdl
dCI+PC9kaXY+Cis8ZGl2PjxpbWcgaWQ9InNvdXJjZSIgc3JjPSJyZXNvdXJjZXMvb25sb2FkLWlt
YWdlLnBuZyIgYWx0PSJhbHQtdGV4dCIgaXRlbXByb3A9InNvbWVkYXRhIiBhcmJpdHJhcnk9Imdy
ZWVuIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0PgorZGVzY3Jp
cHRpb24oJ1RoaXMgdGVzdCB2ZXJpZnkgZHJhZ2dpbmcgYW4gaW1hZ2UgaW4gdGhlIHBhZ2Uga2Vl
cHMgaXRzIGF0dHJpYnV0ZXMuIFRvIHRlc3QgbWFudWFsbHksIGRyYWcgdGhlIGltYWdlIGFuZCBk
cm9wIGl0IGluIHRoZSByZWN0IHdpdGggYSBibHVlIGJvcmRlci4nKTsKK2pzVGVzdElzQXN5bmMg
PSB0cnVlOwordmFyIHRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKTsK
KworZnVuY3Rpb24gY29udGVudEluc2VydGVkKCkgeworICAgIHNob3VsZEJlKCd0YXJnZXQuZ2V0
RWxlbWVudHNCeVRhZ05hbWUoImltZyIpLmxlbmd0aCcsICcxJyk7CisgICAgc2hvdWxkQmUoJ3Rh
cmdldC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW1nIilbMF0uYXR0cmlidXRlcy5sZW5ndGgnLCAn
NScpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygndGFyZ2V0LmdldEVsZW1lbnRzQnlUYWdO
YW1lKCJpbWciKVswXS5pZCcsICdzb3VyY2UnKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmco
J3RhcmdldC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW1nIilbMF0uYWx0JywgJ2FsdC10ZXh0Jyk7
CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0YXJnZXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUo
ImltZyIpWzBdLmF0dHJpYnV0ZXNbIml0ZW1wcm9wIl0udmFsdWUnLCAnc29tZWRhdGEnKTsKKyAg
ICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3RhcmdldC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW1n
IilbMF0uYXR0cmlidXRlc1siYXJiaXRyYXJ5Il0udmFsdWUnLCAnZ3JlZW4nKTsKKworICAgIHN1
Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CitmdW5jdGlv
biBydW5UZXN0KCkgeworICAgIHRhcmdldC5hZGRFdmVudExpc3RlbmVyKCdET01Ob2RlSW5zZXJ0
ZWQnLCBjb250ZW50SW5zZXJ0ZWQsIGZhbHNlKTsKKyAgICBpZiAoIXdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
d2FpdFVudGlsRG9uZSgpOworCisgICAgZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzb3Vy
Y2UiKTsKKyAgICB4ID0gZS5vZmZzZXRMZWZ0ICsgZS5vZmZzZXRXaWR0aCAvIDI7CisgICAgeSA9
IGUub2Zmc2V0VG9wICsgZS5vZmZzZXRIZWlnaHQgLyAyOworCisgICAgZXZlbnRTZW5kZXIubW91
c2VNb3ZlVG8oeCwgeSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgZXZlbnRT
ZW5kZXIubGVhcEZvcndhcmQoMTAwKTsKKyAgICBlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InRhcmdldCIpOworICAgIHggPSBlLm9mZnNldExlZnQgKyBlLm9mZnNldFdpZHRoIC8gMjsKKyAg
ICB5ID0gZS5vZmZzZXRUb3AgKyBlLm9mZnNldEhlaWdodCAvIDI7CisKKyAgICBldmVudFNlbmRl
ci5tb3VzZU1vdmVUbyh4LCB5KTsKKyAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Cit9Cis8L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZHJh
Zy1hbmQtZHJvcC9kcmFnLWFuZC1kcm9wLWlucHV0aW1hZ2UtY29udGVudGVkaXRhYmxlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZHJhZy1hbmQtZHJvcC9kcmFnLWFuZC1kcm9wLWlu
cHV0aW1hZ2UtY29udGVudGVkaXRhYmxlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNzJhZTUz
ZTM3ZWE5OGM5Yzk4MWQ5NDg1ODkzOWZmMmFkOWM5MTkzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9kcmFnLWFuZC1kcm9wL2RyYWctYW5kLWRyb3AtaW5wdXRpbWFnZS1jb250
ZW50ZWRpdGFibGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTggQEAKK1RoaXMgdGVzdCB2ZXJp
ZnkgZHJhZ2dpbmcgYW4gaW1hZ2UgaW4gdGhlIHBhZ2Uga2VlcHMgaXRzIGF0dHJpYnV0ZXMuIFRv
IHRlc3QgbWFudWFsbHksIGRyYWcgdGhlIGltYWdlIGFuZCBkcm9wIGl0IGluIHRoZSByZWN0IHdp
dGggYSBibHVlIGJvcmRlci4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKKworCitQ
QVNTIHRhcmdldC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKS5sZW5ndGggaXMgMQorUEFT
UyB0YXJnZXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlucHV0IilbMF0uYXR0cmlidXRlcy5sZW5n
dGggaXMgNgorUEFTUyB0YXJnZXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlucHV0IilbMF0uaWQg
aXMgInNvdXJjZSIKK1BBU1MgdGFyZ2V0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIpWzBd
LnR5cGUgaXMgImltYWdlIgorUEFTUyB0YXJnZXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlucHV0
IilbMF0uZHJhZ2dhYmxlIGlzIHRydWUKK1BBU1MgdGFyZ2V0LmdldEVsZW1lbnRzQnlUYWdOYW1l
KCJpbnB1dCIpWzBdLmF0dHJpYnV0ZXNbIml0ZW1wcm9wIl0udmFsdWUgaXMgInNvbWVkYXRhIgor
UEFTUyB0YXJnZXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlucHV0IilbMF0uYXR0cmlidXRlc1si
YXJiaXRyYXJ5Il0udmFsdWUgaXMgImdyZWVuIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZHJh
Zy1hbmQtZHJvcC9kcmFnLWFuZC1kcm9wLWlucHV0aW1hZ2UtY29udGVudGVkaXRhYmxlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RyYWctYW5kLWRyb3AvZHJhZy1hbmQtZHJvcC1pbnB1dGltYWdl
LWNvbnRlbnRlZGl0YWJsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJiN2NhMzZjYmMzOGNhOWYyZDc0YjFk
YTIxMWUyNjc0OGEwMzBmNmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Ry
YWctYW5kLWRyb3AvZHJhZy1hbmQtZHJvcC1pbnB1dGltYWdlLWNvbnRlbnRlZGl0YWJsZS5odG1s
CkBAIC0wLDAgKzEsNjEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3Jp
cHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHN0eWxl
PgorI3RhcmdldCB7CisgICAgaGVpZ2h0OiAyMDBweDsKKyAgICB3aWR0aDogMjIwcHg7CisgICAg
Ym9yZGVyOiA1cHggc29saWQgYmx1ZTsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+CisKKzxib2R5IG9u
bG9hZD0icnVuVGVzdCgpIj4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBjb250ZW50
ZWRpdGFibGU9dHJ1ZSBpZD0idGFyZ2V0Ij48L2Rpdj4KKzxkaXY+PGlucHV0IHR5cGU9ImltYWdl
IiBpZD0ic291cmNlIiBzcmM9InJlc291cmNlcy9vbmxvYWQtaW1hZ2UucG5nIiBpdGVtcHJvcD0i
c29tZWRhdGEiIGFyYml0cmFyeT0iZ3JlZW4iIGRyYWdnYWJsZT10cnVlPjwvZGl2PgorPGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGhpcyB0ZXN0IHZl
cmlmeSBkcmFnZ2luZyBhbiBpbWFnZSBpbiB0aGUgcGFnZSBrZWVwcyBpdHMgYXR0cmlidXRlcy4g
VG8gdGVzdCBtYW51YWxseSwgZHJhZyB0aGUgaW1hZ2UgYW5kIGRyb3AgaXQgaW4gdGhlIHJlY3Qg
d2l0aCBhIGJsdWUgYm9yZGVyLicpOworanNUZXN0SXNBc3luYyA9IHRydWU7Cit2YXIgdGFyZ2V0
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpOworCitmdW5jdGlvbiBjb250ZW50
SW5zZXJ0ZWQoKSB7CisgICAgc2hvdWxkQmUoJ3RhcmdldC5nZXRFbGVtZW50c0J5VGFnTmFtZSgi
aW5wdXQiKS5sZW5ndGgnLCAnMScpOworICAgIHNob3VsZEJlKCd0YXJnZXQuZ2V0RWxlbWVudHNC
eVRhZ05hbWUoImlucHV0IilbMF0uYXR0cmlidXRlcy5sZW5ndGgnLCAnNicpOworICAgIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygndGFyZ2V0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIpWzBd
LmlkJywgJ3NvdXJjZScpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygndGFyZ2V0LmdldEVs
ZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIpWzBdLnR5cGUnLCAnaW1hZ2UnKTsKKyAgICBzaG91bGRC
ZVRydWUoJ3RhcmdldC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKVswXS5kcmFnZ2FibGUn
KTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3RhcmdldC5nZXRFbGVtZW50c0J5VGFnTmFt
ZSgiaW5wdXQiKVswXS5hdHRyaWJ1dGVzWyJpdGVtcHJvcCJdLnZhbHVlJywgJ3NvbWVkYXRhJyk7
CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0YXJnZXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUo
ImlucHV0IilbMF0uYXR0cmlidXRlc1siYXJiaXRyYXJ5Il0udmFsdWUnLCAnZ3JlZW4nKTsKKwor
ICAgIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9Citm
dW5jdGlvbiBydW5UZXN0KCkgeworICAgIHRhcmdldC5hZGRFdmVudExpc3RlbmVyKCdET01Ob2Rl
SW5zZXJ0ZWQnLCBjb250ZW50SW5zZXJ0ZWQsIGZhbHNlKTsKKyAgICBpZiAoIXdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJzb3VyY2UiKTsKKyAgICB4ID0gZS5vZmZzZXRMZWZ0ICsgZS5vZmZzZXRXaWR0aCAvIDI7Cisg
ICAgeSA9IGUub2Zmc2V0VG9wICsgZS5vZmZzZXRIZWlnaHQgLyAyOworCisgICAgZXZlbnRTZW5k
ZXIubW91c2VNb3ZlVG8oeCwgeSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAg
ZXZlbnRTZW5kZXIubGVhcEZvcndhcmQoMTAwKTsKKyAgICBlID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInRhcmdldCIpOworICAgIHggPSBlLm9mZnNldExlZnQgKyBlLm9mZnNldFdpZHRoIC8g
MjsKKyAgICB5ID0gZS5vZmZzZXRUb3AgKyBlLm9mZnNldEhlaWdodCAvIDI7CisKKyAgICBldmVu
dFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5KTsKKyAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Cit9
Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZHJhZy1hbmQtZHJvcC9kcmFnLWFuZC1kcm9wLW9iamVjdGltYWdlLWNvbnRlbnRlZGl0YWJs
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RyYWctYW5kLWRyb3AvZHJhZy1hbmQt
ZHJvcC1vYmplY3RpbWFnZS1jb250ZW50ZWRpdGFibGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmZkZTM2YTA4MGJiYTdlNWJhMGIyZTAzZTQwNmJhODU0YjNlNGY5YTEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2RyYWctYW5kLWRyb3AvZHJhZy1hbmQtZHJvcC1vYmplY3Rp
bWFnZS1jb250ZW50ZWRpdGFibGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTggQEAKK1RoaXMg
dGVzdCB2ZXJpZnkgZHJhZ2dpbmcgYW4gaW1hZ2UgaW4gdGhlIHBhZ2Uga2VlcHMgaXRzIGF0dHJp
YnV0ZXMuIFRvIHRlc3QgbWFudWFsbHksIGRyYWcgdGhlIGltYWdlIGFuZCBkcm9wIGl0IGluIHRo
ZSByZWN0IHdpdGggYSBibHVlIGJvcmRlci4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKKworCitQQVNTIHRhcmdldC5nZXRFbGVtZW50c0J5VGFnTmFtZSgib2JqZWN0IikubGVuZ3Ro
IGlzIDEKK1BBU1MgdGFyZ2V0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJvYmplY3QiKVswXS5hdHRy
aWJ1dGVzLmxlbmd0aCBpcyA2CitQQVNTIHRhcmdldC5nZXRFbGVtZW50c0J5VGFnTmFtZSgib2Jq
ZWN0IilbMF0uaWQgaXMgInNvdXJjZSIKK1BBU1MgdGFyZ2V0LmdldEVsZW1lbnRzQnlUYWdOYW1l
KCJvYmplY3QiKVswXS50eXBlIGlzICJpbWFnZS9wbmciCitQQVNTIHRhcmdldC5nZXRFbGVtZW50
c0J5VGFnTmFtZSgib2JqZWN0IilbMF0uZHJhZ2dhYmxlIGlzIHRydWUKK1BBU1MgdGFyZ2V0Lmdl
dEVsZW1lbnRzQnlUYWdOYW1lKCJvYmplY3QiKVswXS5hdHRyaWJ1dGVzWyJpdGVtcHJvcCJdLnZh
bHVlIGlzICJzb21lZGF0YSIKK1BBU1MgdGFyZ2V0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJvYmpl
Y3QiKVswXS5hdHRyaWJ1dGVzWyJhcmJpdHJhcnkiXS52YWx1ZSBpcyAiZ3JlZW4iCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9kcmFnLWFuZC1kcm9wL2RyYWctYW5kLWRyb3Atb2JqZWN0aW1hZ2Ut
Y29udGVudGVkaXRhYmxlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RyYWctYW5kLWRyb3AvZHJh
Zy1hbmQtZHJvcC1vYmplY3RpbWFnZS1jb250ZW50ZWRpdGFibGUuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
Y2RkNzg0NjhmNmJmYzI0MDFmYTU1ZThiNTRhYWZlMGUxMzhhOTEyCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9kcmFnLWFuZC1kcm9wL2RyYWctYW5kLWRyb3Atb2JqZWN0aW1h
Z2UtY29udGVudGVkaXRhYmxlLmh0bWwKQEAgLTAsMCArMSw2MSBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisjdGFyZ2V0IHsKKyAgICBoZWlnaHQ6IDIwMHB4Owor
ICAgIHdpZHRoOiAyMjBweDsKKyAgICBib3JkZXI6IDVweCBzb2xpZCBibHVlOworfQorPC9zdHls
ZT4KKzwvaGVhZD4KKworPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHAgaWQ9ImRlc2NyaXB0
aW9uIj48L3A+Cis8ZGl2IGNvbnRlbnRlZGl0YWJsZT10cnVlIGlkPSJ0YXJnZXQiPjwvZGl2Pgor
PGRpdj48b2JqZWN0IGlkPSJzb3VyY2UiIGRhdGE9InJlc291cmNlcy9vbmxvYWQtaW1hZ2UucG5n
IiB0eXBlPSJpbWFnZS9wbmciIGl0ZW1wcm9wPSJzb21lZGF0YSIgYXJiaXRyYXJ5PSJncmVlbiIg
ZHJhZ2dhYmxlPXRydWU+PC9vYmplY3Q+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4K
KworPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUaGlzIHRlc3QgdmVyaWZ5IGRyYWdnaW5nIGFuIGlt
YWdlIGluIHRoZSBwYWdlIGtlZXBzIGl0cyBhdHRyaWJ1dGVzLiBUbyB0ZXN0IG1hbnVhbGx5LCBk
cmFnIHRoZSBpbWFnZSBhbmQgZHJvcCBpdCBpbiB0aGUgcmVjdCB3aXRoIGEgYmx1ZSBib3JkZXIu
Jyk7Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK3ZhciB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgndGFyZ2V0Jyk7CisKK2Z1bmN0aW9uIGNvbnRlbnRJbnNlcnRlZCgpIHsKKyAgICBz
aG91bGRCZSgndGFyZ2V0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJvYmplY3QiKS5sZW5ndGgnLCAn
MScpOworICAgIHNob3VsZEJlKCd0YXJnZXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIm9iamVjdCIp
WzBdLmF0dHJpYnV0ZXMubGVuZ3RoJywgJzYnKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmco
J3RhcmdldC5nZXRFbGVtZW50c0J5VGFnTmFtZSgib2JqZWN0IilbMF0uaWQnLCAnc291cmNlJyk7
CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0YXJnZXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUo
Im9iamVjdCIpWzBdLnR5cGUnLCAnaW1hZ2UvcG5nJyk7CisgICAgc2hvdWxkQmVUcnVlKCd0YXJn
ZXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIm9iamVjdCIpWzBdLmRyYWdnYWJsZScpOworICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygndGFyZ2V0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJvYmplY3Qi
KVswXS5hdHRyaWJ1dGVzWyJpdGVtcHJvcCJdLnZhbHVlJywgJ3NvbWVkYXRhJyk7CisgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCd0YXJnZXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIm9iamVjdCIp
WzBdLmF0dHJpYnV0ZXNbImFyYml0cmFyeSJdLnZhbHVlJywgJ2dyZWVuJyk7CisKKyAgICBzdWNj
ZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworICAgIGZpbmlzaEpTVGVzdCgpOworfQorZnVuY3Rpb24g
cnVuVGVzdCgpIHsKKyAgICB0YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcignRE9NTm9kZUluc2VydGVk
JywgY29udGVudEluc2VydGVkLCBmYWxzZSk7CisgICAgaWYgKCF3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCisgICAgICAgIHJldHVybjsKKworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndh
aXRVbnRpbERvbmUoKTsKKworICAgIGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic291cmNl
Iik7CisgICAgeCA9IGUub2Zmc2V0TGVmdCArIGUub2Zmc2V0V2lkdGggLyAyOworICAgIHkgPSBl
Lm9mZnNldFRvcCArIGUub2Zmc2V0SGVpZ2h0IC8gMjsKKworICAgIGV2ZW50U2VuZGVyLm1vdXNl
TW92ZVRvKHgsIHkpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgIGV2ZW50U2Vu
ZGVyLmxlYXBGb3J3YXJkKDEwMCk7CisgICAgZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0
YXJnZXQiKTsKKyAgICB4ID0gZS5vZmZzZXRMZWZ0ICsgZS5vZmZzZXRXaWR0aCAvIDI7CisgICAg
eSA9IGUub2Zmc2V0VG9wICsgZS5vZmZzZXRIZWlnaHQgLyAyOworCisgICAgZXZlbnRTZW5kZXIu
bW91c2VNb3ZlVG8oeCwgeSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworfQorPC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RyYWct
YW5kLWRyb3AvcmVzb3VyY2VzL29ubG9hZC1pbWFnZS5wbmcgYi9MYXlvdXRUZXN0cy9mYXN0L2Ry
YWctYW5kLWRyb3AvcmVzb3VyY2VzL29ubG9hZC1pbWFnZS5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzllNDU5
ODk0Yzk1NTZkMDczOTg0NTY4MjAxMDNmNDY3ZWQ3NjE5YQpHSVQgYmluYXJ5IHBhdGNoCmxpdGVy
YWwgMzY1NDEKemNtVilRSyh4UCFQKTxoOzNLfExrMDAwZTFOSkxUcTAwN3FqMDA2RUMxXkBzNnJC
SWw+MDAwMDRYRipMdDAwN3E1CnopSzZHNDAwMDBQYlZYUW5RKlVOO2NWVGo2MDZ9RExWcjN2blpE
RDYrUWV8T2VkMnp7UUpPQldXUGYwe1VSQ3dDIwp6ZUZ2Q2FTOSRoKHJ9d2hHX29BfEBSJlRaPiVk
K0goPkJhbms2ZCghdzNGTHVMTExkb0F6QGYhcDkxSm50SGEwZjQKeiFNISl4bEJgfTwrU1RyQWQh
T0VDPyl8Xi0rJmk8Z09fQ2VmezJvMXtuVm9YeW1oK3pYe3B5aXdFMzEmYkRUOyNwCnpuPFBuaUJY
N0tZb2xifGhaX3t1MipDRzN5QU5lMk9XTGNLeElHMmlFcis/RipQdWgzJlNaMGoxPzBDcSh6bT1+
YQp6LXdrZ008K3NMN1FiKEhAYWVCUjhKWGQ0fEdGP1R6VUkyPG10Tml3dmRoXmA9elgjV3V2cHMq
WC16djZDPD9yMkkKenhAT0JWQEFDM09iNzMtLU51Q2B8ajZDJD5fP3xuVF5CcDlkTD5nPUJHI20q
YU5tKT4zR0JWQmozZ0ptWER3JFUzCno/fktLMmxEdXcqSVVJPmdJLVFpRSYhcmgpYldGLXk8XjFP
PnI/PGlOX1UrWk1qe2IoZnN7Tz5IfEZpcEpheXBVTwp6ZkIwPG9PUShXU3JgMkZzKGMteDFpeXo8
b1NEKEZwVkMzMmoxeiVNWj1UaShNTFdoemBYT0shfldDbTRucTA0NXMKem5aMGhleT5QP1lnPkBj
fXFwaH5PV0ZjKlFed1hjZTwqU2xUWl90RGsxMSQ2UVMkYFdgfDMzaUJeMSMwPnhUJm43CnpYNG0m
Xyt5QkV+S1JOYlBHQDxKIURIa1Vha19iNXR5WSp6dGNSdHpqITdxTk8/aWFUX0Z6fnRrWEFBRXEr
c1dKMQp6U1lDWTV2Y3shR3FvTVZwPCY5MCVsfD5DRWxkO2E+dS1GWkhnVjJIRGE0Z1ckU2FKS3dq
e1l1LSR0YXtEdkVOJlkKenoxe31iK3FWbjR2OD5CVng+ITZle3JnOTF7PVQlbD83RHlheyk+UDJf
YCU0RmlYc3NMV1AydSt2NzN4V3YmKDZCCnpJdndgUi0zSk9EQUNEeDwtP3pRJDJiVmd4ZVJBIVpy
S0w4anghaF9zNXpadGVsV0MtaCRydiY1U2Jgb0M7YGJ+VAp6bGU/djw7LVZBbmVGS2BebUN+NSZa
RShFfXVEM0xaYTwpPFNQOWhGK01uTioybHA/Vy07PipecXtLJkhoZFZsciYKeiQjalI7PDcldn5F
T3hCOXNITSpCd0FVP09TV3tPflIhflJhc1dsak1Cb1phKWB5WWooXnNPfFJSek94VmgodXlACnpx
Q2BAQzh6OV9he2hIUUl6cSMqKSQyMzYydnlQOXFaKlBPXnRxM0dgJnE7enc2dGF5bjhISD5rZyhQ
MDQhMFdRTwp6MyQwI35hPmI0MTZ9eDF+VHJycmFTQE9nMHkhKUdWSDZfKWhDRWdPWiVWc2JiXmhs
PUNOV193ZSNTYCFjQV8jP30KelAtSGkzbT9YSXVoMjNUV3YoXmxxRElRZH15aExvNE1wSiMrQCZk
Mlo2TkBGMkJzY2sqPmZWLXlaLWVWQyFBMlpjCnokfWxDZDx8MDYpUTw7cE96KUBEPmFTPSFnOHRj
blMkdEdIMEc4dE56RVVJbSh0MH1KNk5tNF8xY2FPXiQtaChaaAp6N2pDTClzKWZzODE9JnBXe1dP
d142YWlDKUZBJHtIWkUoQStCPmo/Kk9iU2VqNHY5bihSOyFVdnRlP0o8aWpxZjYKeiNFX3tKOFhI
Tyo4dE9gJDRqdChwKlh2RCZFY29BK2hIciFHa0xHS2JWSXlWUE5afWoxeXZmY0hZfipufU92T2M+
Cno7JCRqV3Z+K1FPPEZkQjtDWGReYFZEJnshRWJrZ15SI1RQNVZsKih6cT9uQmVJUHBYUkNiSno8
STBIdnwwQX1NTgp6ITlvJmJgYi04TGB5V1EzREZRaGUhb0VAWmFhVFJgZ3JsWkhHZS1ScU9tWVM/
R296RnIlJTF7UF9OZ0xFMVZYY0EKeikkKWU2MUJiZnkoTXZ8VUdhfVAoNUFWMFpeQGFvSjlCamxo
eVB+bT9PcDswfEQ9bHl1UDVNSFElVSpvUnJscEg0CnpSJTNIKGI3Z0NETHEkRH1AZGpjU3g3Qjd3
YWUrJVg3PSt1TDckXzJydEFuMEVEYnI/MkQjQzByOyZpWUkzKEhnSgp6WmE8RXQ3cCs3aHAyWD53
cEZvKXsyM3pxYHYxNHVDVlo0MGMwRzJNUWYhPFZ4cHV2SEhqT3ZxNkdafmNHaG40cGQKejtVNm9P
KjAwZyZyQy1zWDJAUEJsUGFKUGMhPyhmcGRWP3QrTlYte1VMPXc7S3dpfTN6aXMpcmUrb0hPTE1Y
bDhmCnpKUlZvO2llKExyOT1FTzBZJktPbz59Rz9XSiN7U09OVjQlUTZpVVBJND98QiNCZXUhYERv
P2tHeUd9Uzg2bkhCZAp6KEtUYHNpeUV5TUlRfFRiTipwRUQ1S1EpSm18Y35+I0M/RlgweWc3fHhi
d2xJc0hfY1I8PnM5dkFOMnlYd0NobDAKelchZ04hTD8tRVU+TGRNUWlNZ1A7VnF0QW5hWWYoWU1B
VCQ3PXJ0eU9KS3BzK3hMeitkUVkzYVJAYVNlJUEmSkpSCnpMRnYtYzAqQmRURU9mZ2FNY1hmNChN
cnMtcHQtVEtyTTA9TEp7U3gmVEZmU0lOd0hWUkdQWXE5Vk9gMD4/aCVUTgp6VVNOPEJDPCFuK0cz
WkdtIWVaNz4xQytgcGl0eWxaaExZS0FBZG5jS2woZ2RJJkgqZn5BYUk1d2M8SlJYWStOKSgKenZN
LWM3a2NRZjdsb053bFUzJGQmcE44VWVBWm9CZEdNSmN9KURQKHgkRXFvJT01MHQmMj1wPnx6Zmtk
a2k9fEtYCnpfWnl4KSlmWVM2LVJKQSprMTJ5QkRkU01ucVM4fTREKVFne3NFayV1UmheJUtsNk1t
U2JuSGFLVEw/Xlp2NjBCRgp6T0M/aComb1h3MFJhYUo4U1YtNSR5S0hINSkjOFFxM3RVZD9sOWtJ
Xz5XVF9uTyhnZks+XjYmdVo2RWZzdXwkaFMKelY/eDQzPX18e21WR3hQeSVASk8zcyE+WVZRQ1lA
ZFApUHpua15xPyk9K2tAJD5pQSVBKnt4PnJlVk1qalNYUDA0Cno7KnQybzBJRUNeVCh5Xj1XWl5a
aTdQWWA9RWtHdDJNckApKCNnTiY5PXkqRjRmaipgdnV8SXNRKistIVlOZVVfJQp6K0lBe1IrZlVO
PkJodXdOaW11RzBWIUpZX2NzUUwxMz9AUUQ/WmN6TjZIZyFWP1NFP1Q7TChAK0ZydEFoUDF9KysK
empRdjNlYjM7dzdBYSRMWlZYVVgwN3RTSnNMNyZaeSU+MWM8T25RQEwjWV5YQXFjblQjYzx6PTxO
KHZseXlTMzBrCnpfaWRNfllIflU0aT5zP2pUOSZwbyl8MEpNWj9sPzxFeThpODJuSiNSRiZKYzcm
UGgzYlpQRkpZQFRCMU5JMGUmNAp6OGNzNXFHe3pAYDAoQVcyQ1ppc2xBaj8ydWEyNklnVmJHKm03
RjRgIyFJPGZeMEI8fj1MTVJmKShCTFElekZyaHIKemZAb2EwNGgzfT0hKFB9M2k/XlFHRD96e3Iz
NGt6UTM/fHlIKWchaTtqdDItXmRaP0Q2b1Z6fGNAbXRLVzFnPjtrCnpmUS1OO3d2JiRnayV+P3I5
aCpjbEdLeCRoZk9IfWZPREJSb0Aka3M7cndAIWd7T2Q9RHBXV1lgN15GPWx3Wlk3RAp6KUVrPWd0
MnZIem5teCNSK0R4RF8mXl9zTCs0TWV0Q2BSZ25GXypebDZ0MUAlJGcpfVNadzdHWHZ5bWhLQWxO
OSkKemdJfjdXWlRpeFoweHh+VUx1XiNEdzVAcG8kLTJlTW0kdVpFbWxaVntqcnRtNUJRckNGJW1i
UWE1XnFEMVJZd0NmCnpoayVsXmppdyRNNEI8ISZLN1NCU2hYcm56OWNveGZmektDMEZjZHtibkY2
RU9OZzVzYEJqSSkxJFIzZ2ZoIXt8OAp6bW9aNCQhSTM1YWBlfmJTe304SX1sZHc3cFZLT15XK1Yo
ISFpV1ZScDlmaShoaHIhfjMtZUBITnkqPmdXM3NobisKejB1PzxiZiZ7UDtxI3xSODJtNnR2ZG56
N0UlYkNSNF9+aEI9ZkFqcDx7cmBMNCExTG8jMWR4fjZAcGBpdjBaWFI9CnppeDFTb19qbypNRz98
UjF6eHdFdkA0RTh4YihqNjxyd3t6ay1TPDg3c0dMI0s3Sz0mRithTExAMkN6Ml54Y0hfRQp6Zyg0
YUx0K0tLcnRJY0xEQ1BwZ1dkaHdjaXVnQTVkczthYmtObX47JFFON2hfRUBkYGlwczw2MTJYO1Ap
NnYpJVMKenFoMW51UEdJcSFmeHJ3RTNgSW9IKjZwJnZXO01+YVF3UmhqZmBSMCR5XzVHe2dJK0h7
Q05rQUVIc3MmUHEtQmhhCnpqS1U9a3FTUnYqdTZVIVo1TjNCWj84T1Y9dD1zWWt5fnIjem5iQy1+
MiskTTZYeVp0UDFfPDskaTJIZzdYbzB3cgp6anZzI2NNQmhDKC1yYVo0O2pUcGc+a1RwdVNPJCUp
dFRiYGpMWlBUYFg8SXxmPWw9ZFpwV0wqNSQoNkdERTIkQCsKeklzQShvekkoQGljWGFmaEZgSkRi
c2hIT0dNfTh8dyNhOUZfYDMrSkd7UUhGazlfd0hKYEZwUmlTdUphcUVubT1GCnpVUnU7WlkqYV5W
V1lJQWo1ZXA7fGk1IVRPb0lIfUowWT1HfEdpaVcyN2hgMnorPWBOY05MTTF9O1ZjUXhrWUdtfQp6
QUZwNX1WazJkU3ZtJHFXI3BZQntAJUtsRE1eS3tnTX1kcHZyUFQkQ3J3LVBfV3xEcGxGZ3djJFdK
TVBTMihxRXIKeik/JTUrQVBfY0hEaz56U2RRbnN2dHV0NjQ+NWI1bmpNTmhnbnJ5YHxkdW9VWVpT
dyp4NzRyJCUkVXNZbWhZXzNYCno2dDxtXmtMZ3I8PWg+azx6eFNLJituK3QyPzgkPWMpeWhRO1I4
bSN+R08hWktsIWZlNStkSHE+eGNpZUl5WEk0Ngp6V3Jmd3pTVkRZXj0yKHVgQXJPZTN6NGFGbGVm
eWBzZGlhaCZBUkgjeTR7Y3g0Wnh0NE1XeX5jWlp3N3o7aD5LX1gKej5aKT8qZ1RNZHJHY0syN1N1
N2VBZ1BPZiNMWFBEbW5MSGFQeCMjaiFFTkJNayZJSyY+ZHVrcGE9a1NVNjZmc2VaCnpmR3AlOTBn
ZEd5cnAxfTJLJkYwSSN3YXNZeChfOEQ2VW8wSzBWdE0hMCN2VGJjP1d3SU5UST0oI2JBJjV5MlFY
fAp6NVhxP3NKKklPYDN7Xkh0IXYwZTRNZ28+dUpsRSs+dzcrVDlDWnEyUHNaR0RoWS13Pi0hJlNY
Kio2JGBsIV5xSFkKekM4SnxWaDZWK1FCY3NQdkZ3NjNwUXs3YGZ6djE/P3pkRHIxV1VxdzlHKz9v
OVdudXxQVSRzU3wzMWZZMlkzLSp6CnplJH5nWHpHRDQqKGtWNVZ1RXJCSSVZWXRAZElRV0JHWSVa
O2M8amNUQEJZVClQYVN4UFdWbTg3ODhWb2psJnQobwp6ZlF1akhKY0lpNnk2ST8/cSpDZUJ4NC0k
dG8zNlFmYHpJcGRoJm82eG8wK0Q4WGtLOURHbnNyJlV9Yl5BPj9JMyUKenIhcEQ4OX1HcWppTj5h
IUEzMyZDR2AwYyl7dChqc0Y0VEg1dS1MdEA2fUdAdShuZ08+MWdkSWM3VzE2UG9EN2QzCnpKYlp7
NDwxe2hKZ3NfTD9SOU0oYSFaQVVRe0M2ckRCUXtte2kqTkN5NDZecnlPPSEyV2I0M3E+KiMqN1g0
V3JjeQp6cXJGcn1QYDJUaS01NipMUitmZCNhQEstSWN1MUMtVH4qV2VnJjhiT2pGdXBLRWFwMnlg
KnVWRjg0ZjxXZkJkXiYKenkwIU95YGUtRH05T25YQXAzfW1wLUVETXp0dDZrI0pHTCZyPFIzciV1
RnFDaTYqb2o8TmZBPHpGZGJPZ04xN2dCCnpBJUc9UW5iNGowSmF6TGV4Qmwqank/dypPcS1HP3Qo
TmxSMjU5TG4rVHpuVEV4N1lEX15mY3txKjdyeUw/NDlyVQp6PVAmKXU/VEw2aUMkOzhocF95YFVy
ayE9K3o/I3w/VGBqVmBjd2dBVCFIeC04UiVYU292VFFaaitsMjxfNWJVLUIKeiFCQ0V9PHpuI2lV
MmsmQzM4PkooSn40UU9HJFkkYmM9WDU/TilkYUVge0VlKHI0V3V+OzE4I2ZCdH1vQSkmMXFyCnpL
cXtsZyZhJjVvVW8pXnxydVNgVDlYOzI8TDRmbChebnlWUGlfNjcrQCYxX1hDQm0hNyh2UmdQdiFK
dEw2JCtYIQp6JnEtQVZSdzZWY19LQlN5aytHQUFqMnVRZEZyR31MPHArTG5TSS1UMT9GaypxZEtZ
SGBFSDh5RD5qfHsqdTBASGgKek49d35rcFp1JWNmQVArJUgtM29yLTtAKyNqVnpkUz1MREZKbkF0
fE11Oz1YWHZIJHQ7ZUsqe0ZANio0aD88ZExyCnplcDVSPFVLUDBie2Z3TT5KOzd5MnIhJlQ/czxP
dTQtdTFtbCQlcms+WGxYeEM8YXJvTXAyTjxYNHh+QjNJUzE9Twp6SXwpJCZINXU4Nmk4PzdjRlhM
ajAtU2AjMUY5PzBgR3xIVDVTZT5PYk5IMm47YlF2c1M1RXN1bnpVY1RWIUJVQ2YKejA1S0c/TH1Y
bUJmXlR2SHlgdV5BazBsVV5YOVNSI25KZ3c5JDxtQzdrczA7c0lYN3NySClnRlFOaHphMnIhaVNa
Cno0UXdtTzErRHF9ezJKZlFNaFMmM0JPMXlydW91P0RVYitOVVBweHA+JDBwQVJLcnhGSUV4Wm95
bmhqIyZOY2hqSAp6VWQ2MGI5NjVeNy1zM2RMbUEoVX5nV3ZlNG80UmljMFVZXkdYS2tAT3dsWmlr
JmBRX1ROfn5rcndxXjE5JjswR3gKenBKezJUVHBBO2BrYD5HV3J1aEoteS1zKE4qK2xaIUFWMHQ3
PSYhJWBnUyk9eygqNkBDRUViYndHOHBMMHo0O3MtCnp1TEBqUWZibEg8SSlPYDFuPT4xWTJGb29z
fEkwN2R0WkxnOHFrJXBoNyNBVzMmJTwhfTtMM2hxbVBLJGw2cDBHUAp6TzZOZVdPIUUkQS1UREs0
e2I7YXNsVSVXamYkQShAcTFzbFN4Pip1MUpiVn5ZbipDRjtOeEA5ZnYzODZQdyZRZVAKejZhKFcp
IUFeVz8xJnt+YFI8bUEhc0lrSXx4LXR1ajNjTjZ9Nk5DV0UodktZJVktZyNsdThmZDs+fXBxO2tM
KSNLCnpxQG5ReWBVdEVPIUVfRklQTWFRZmkoVVlkUypAblQwKGFSJCpoPzBSRmhKSlVHQzlnbnl5
JV9xKUwkYUQlZGEhagp6Rl5sbTg1Z09jJnskWVJHV3xyPiM+UUI0Pjw9SkRBNHkobklheWd1ZS1E
YjtvdkQ7KHVxfHhjSDdKbUZBbXd4eXwKekA3ZXFqcXRXT3tCLTdKP2I3MjZ9TENSK2BOZV8kRmo3
VF4+XnZnUlF4JCNGb3gmUDsqVn0zdlY3SkhuTlp6aE13CnpzfEh2MGJGVC0zPV9DPVRIdzZNPS1J
dT1idX1ePkVXQUZSZGE1JF9FQEw1aWJTMVNpKytocSl4WGYhVGRAYlAjZQp6Jm0lYjd6VCRZPmM7
ODlYSjBAVXA2djApc016RUR0Kmo4MXVuMkhCMCRDfFA7ZV4xd0d3RCgzYT5RNCVHVmwkNTgKelY8
bGRiME1vTEMpb0BqPUF1dl5sMG5mK0h3aH1XOGdHYkg4Tk5DPGRNUk9QJCNMTy17aEJ+QTA3UDRi
UU9ubVc0CnowcHxYbTZZQjUhKVNPN0soK0lhKzF6V01saH5rb1I1Z3NyKCVZPDg9OFAtQ35SPVZ1
TmZ7fVMyViFtI3EhYjZBPQp6cWxGMXpDcikrMj5vNlItXlUyfVF8S2lFdXZrdG8+TCpVWnVidmde
I1JrbkJ7V244dFFlI0lDNXtAVHdoU3pOUTAKemdYcFRmKjNEdWpER3grKmdIRVM7NXZUdkhIeUJ7
RVQ1O3NxblAtMSslUk0oZHtPRiElSU5RVyo3T31DVTJDelJXCnokWCprO3ZZJm1lOXorcjMoJj55
R1ArWXliWlN9M1V7TSpBY2wxeVR8PVZkTVYwX2BrJCtWQCNAMjc/ZzxMZ0JwcQp6bSopZikqJGhh
Rzk2YEJkbEI4Nz0kKX1DUFRGWm5qVzNhZSQkSERPPF9XQ2coKnNjbG1LOEk1JGtEPE1mMlh7KT8K
ek0qTEdPK3R3e3xWZXdMdWxqVzwzbF5ofXFMai16PmYleUFrKGpsUGF5bkBWRkpne2hnbjhFVGhI
NldaWkRGSHJxCnotRGtoY0FUP01FMW8oSj17QVp1Uih9eDJYbz1nZmh0MCopSHU8YHk+bUtPX1cz
fT1OMTg5M2FKJTd6c3Z6dndTVAp6VDJfSzJCRmpWdVQ2Rjk8eDtsPXRtdjgqY2FPXistPE16TkVH
fCtYS3Z8PURoQEJIV294NGhAMEFHLUp4Y0FMZFoKeksrfU1ldCh2fC1mSnc3SURgbV5tQF89VHdt
fSFEWF5ucik+LTFePGAtVHdXcXAyMSN2T348KlVmOSUqOzdGPkZkCnolWFE4U2l1dTVtcFNtPSZu
ZDYxdHZqQWctTkRQdl5WJUxeU29lbz0+b0dySlErVEdjPGxZLWY3Z1p4PDNZJihrcwp6JnkkPmFL
fml2UD4kOEV5bz5BWH5BTGlnOGx2cEJnbU13Pjs/cWNCeHVvVypMcmtIWkN2dChpJE1vemB4P3xC
TkgKemArdEtjX0lCZUcwbX5Pa0JTQ2dqT15GJXJ6TyheYmNWQ2FYdyhXRyMyRS07IzM1SD5Cb2Uy
MDU4fGV1UXM+SX41CnpLJF9rZ1FsRj15I0VLYHlYRU4talBzYz1qTj43cWVDdGl6K1NlbjcmaDJD
ZnBuSHRIXmtnJSYqTWx1dCV0PU5EaQp6amMpT0syUmcjU2QxNH5EbWB1Y3dCSmspazBURFd8Skgy
RlE5WXhvbmAoWldGY2d2UyszfjNPQD9YKCQ/MiM/dikKejhSZTJxaT47T2lVaDx6X3ZhcWA0LUBv
KihGVGVaUkg2Tnped1B0Zk1rP2p5Q1dmTWZEPjZ4T3JrNFYjQm9BJFNhCno+RSYkZEhacDF6eE4q
dGlyWnV+RVpuIUwmTns1ZjE9PDF8I2xwITwyQE1jSnpkZXpKfDZRIT9POHEkc0p1Mj9MdAp6eVd1
fVN7b1F3Nng4dSkrT01ZR18jdyhZRFklQGg7RiREWiE4dGtiI3F+O1YqOENjX142RFd1dWhRcFgz
OE1zY3wKeiotbygpd2RWRmE5ckdoUmEjK05hKmJfSzw+fj1oe1omMWlUYzJLWkF3Vj1qXiVlSmx+
VFZ8V0V5JT5abng3YzBJCnohQ3dLRXIwUnhld3V1SE9GY0M4MWcrcD1kS041JHxWbm9sRzFTYjdY
KUdzdlBeeCtoSk19fnBNUFV8dT1WJmVoVwp6OVkhPVpXPkRAaTtHKlUqJTFhJks+Oz91M2dQMioz
PHN9MUAtUyslQz1OK0NvQCtjbk4/fU4+diE9aFQ3YURLUyMKejIzVEY/OyZidUlQOHt3R1V9YWsh
RCVYNjFTa142QWpHWiZsdjExdE9LOCZ1eFhodl53QTZUXmMrTTQ+aGxGfTRTCnpCJEFZOERAfGpq
eGZ4OEYjYzFjVXpqVSk1OXZtQXA4dEhEck9aJCVCYHxUVGxfMDJzbTl6QVRmNyF7TXpfKHpHMgp6
eT1HWkJiN1FZWDhuVHh1OUY3e1V8S0xeY2AwNzc+e082cEpBdUlDeWoqV2I4LXo/QUtednw7RUpR
OXQ5Pl5kYVYKej1+PSo+NzhfR0lDYGBiTDlmWkBJNTtEK1B2Nj57QGEjKzAkUXd8R35QaW5HazJ4
R19aI1FyQGAybmlVQyVMcW8oCnpCKWY+SXUyX3FMcmt3JiU/QXFwPSR6Q0xhemFzQ0M3fDF1PWZo
VWdIdkc9R088OS1rUmBHJnRtUSokfUtfdVlyIwp6Yn4oX3gkYilwczNXd2JjY1klZHxRJX5RXmtl
ISVCUWpUTH1BY0R6PjAxZjtJNCEkJm8hR1E/Xk10fi1UNDRQfXgKenhPN3old005e341IS1+TVdP
aHdQIyZVNWwtdjUyaSs+N1VxMjhBUH53YzBBPUJDezhOaExlNXxvZj9QN1ZaaDJ1CnpKfEd3ez4o
WGNEOXFtMVdxZ0BmS1NrKHErJXtzVzw0bytFODBkXzcyI2F2IyZJYz1AXjxlXlVjVGJsTl8pbll7
fgp6b305U2omUFRyZzxEY0FuWXlaSD14TlVsREVOaFJ3Yi0/dm4qXnw5WiR6PEFDUmF3JD4mIyVB
cjIraDJ1bk4wZkoKenRhVDJETX03dGQrZ0NuK1hoIV5POSQqY1IheVA+Y3c8I3Q5dUNENDBnMFpY
eE99VSo3XnU5bT8qaHc/ezg0VD9HCno5dip3S2h2WipNSTRjcTwxc35afWlQQn0paT98VXhIJn5f
X3RYdV8/JmJpX3JJJUxEc2B5SDRKUmJ1VnRXPmkjRwp6KCFDcztGSjZlIUc4Z3V8KDVWS0ViV25y
SGlVZ0FkTlJVYVVtJms3OTBJV19zMSQxK2BiY2xwQztEO3glfEReJFIKem9mPCVJWiREZ35BUW57
MHhOTjxHMV9CUVVuJm9zLTBFZEJZQHplOzEjelQpaGhCSmRQdFhiZF5LeDNQUjhIQHBWCnpxSDdX
KFdJSkFRKit2dyRUcVJ4OzNgV3YpdTsmPCNfZThMSyNTIz1XdVpQUU5wOTB0JTM/QGw0OFNQeTVt
K21+QAp6b2VmT0FoPmg5TSlpdHBIZHBIMDNoSXtYU0A9PnlfKC16QWdFO2phPlpMVCowVjJNT0J4
XztlfjRifDE5T2BLXy0KenBMVjM9PEA5QT1TN3MmWVBTNWBmMkUlIzQhYVRySWF8OT5JIyZRSC1o
VDlrPCNAWTtMPHRoU0puPXRtWHdfeDlrCnpGZ2MxNUFsdkhMVzhjSWhGQVdoSkRtM3R0QigzYll7
PT9WOVViPEErVVl5Y29hYVJmSG1rYlN+Xks/NllfTW42eAp6LWQ2KX17WUpEZCpAQTF7ZUZARl9p
X3k/cjNYez0qKE5SQU5pdFQ3V0s4UlF9MG5XUSlDIXlZYEMpdlhfWGduJDsKelhwSj47Kk1rKDFj
I2pYcFlQRilpejY+a1pHLUsxJlIrOFBOPTsrZXBTSEJKOCV0UjlVIzVnTC1JMlh8XjF+MTNvCnoq
bWk1WFhlKExATSkzUFIhKEB9RFFTOHghRHxUNEk3SkRyc3p3Pz1XWEhhZnY3b2lCOW1WUlpAWEpE
Mj5JN1ZSaAp6U1RvUmJyVSlITnclQjIrR3h3QmpIRHlDaCo7WjJeJCtOWmN6TihkNz1kbCR1X0x9
fWFVc19RQDxhSmYteE9EeHMKeml4eEpQcEtSfiQ3I2JlKTZONEdGRHZVcGZKYmNyRGk7aHw2NH0+
JFZFdyRCYVJ4UkV0JUljTjVsNGo1RSNLPHhoCnpaRXAlI0dtMDdXMUh7MlYxcDB+bmE3c1JTWXVD
ZUZ5Jmc3VkVQS2hLb1A4QTxJdn49Rk1oXmNCJnAhQjU5NnFCdQp6MXg1b1llQytCZnRsYSpXV1Em
fDJ3bU0zbnN1cl84SX1iKkJKODt1KU8qbEJUNzwkYCE/N0RVPEY1YjJadHFWJF8KekMjbEIhODwt
P1g4UmRkVVBRNk1YOSFxT0lYbXJBOSNDZHA3YlJ3eChDdnB3N1lvVDJld21ES01NTn48JVMyQkJA
CnpUeTcpRSU4SWRtZUpocihzNnIlWSFya304QFpgUUlHViVaI1lka1BuLTZEZXs5cndYZXdoWEo2
SD4yWkpKNj04PQp6TXhqI3pETjxuezdDMlB6PGJ5QWN6Pl8rUHFOPTV1LUtkQWZrY0w4UmNLQ1FO
eWU/dTZQbnBKRW09M1QhJEhaST8KejRyJHVvYDlQRzs7b09qQmVVRzFWZGxXSldeZXJ2KkUzVXJz
O0B4Sm1JZXpTVFhHYlUkTnR0KmlgdlcqVS1Zbm59Cnp6Nn56bU97RyhyLTgobkVwTj9CVUVpaWxt
dGQjPitoPUNRRnZzQChxYmdKZTBYKy0pRHo/dkZEYW1eQXFNSTM5WAp6Ny0tcWxCfkR2bnhBZnJ0
b0FLQn5fbGpVR1hHP0dqKCNKb3pnSUkxZ3s5VFU8eU19fHg+fFNTKC1TPlBQLUBCXmAKenI4UyRk
XlF1a1F5bWN3TzF4flNfQ2JMMy0wNzV+byFPRG4lQkhIRH5Rb156QG5lfTlJUmlVeEQ0ODJ7V3c5
UytWCnoySl4lI150PllGNGs/d0NYUEpgUklpOClsPjdARkMraFpxdHRgM2NASEFwNylJTXlBPFFf
c2F2UldOe31WbFFWdgp6aCYpOTBTaGxVKTFaVjBMP3Q1VnoxeGBLT0hicHBHM2hiT0EwekFCTDV7
Xl9taVlwcExWbHAkSk8mMkVpT3lFcGMKenp2I0U8QER8ZkhidlkxOEdkek9SIThGQk0oc19WJEE/
JWU4WGlmdy1uQHNMNG5eI31IY0l+cElxb2IzKENyQDxeCnphUX1ZMndtYn5wcGYrQEdDVTZOZWdR
UV97X3MpJSVJLVJ6JXNkKDNndktBTFYjemd9ZVMpU2pXcEtvVWtwRShNOQp6eWJ+Mnc0UkJTaEMx
NVNkV3MtQ0RJMi1PUG58aCE3UGR4UzFRJGhreDFYSUZrQHhrbD1PdkkrYmdEO2JPWX1WcFIKenkq
UFpWQU9HXnhPNHtCUVR6dUlqKnVIWkcqI1kqdkRyak5eeUc1YH5DPlkxO2J4bH5sc3ZmSVdIYDNv
eF97TWBHCnpWfDtZamtLJHElaFdhT2o/VWZ7ZVN1N0BQX3FFV3M3RExONmd2I0FCM18haFJtcXxp
aUA7QlVHOCY8QmJnR25oeQp6VXIhcU1KUSY0RCUhanJ7OF9YN355MWpIMVdsYkI9UnZ5OUtQeGl0
X0tnckJ4QWJZTFFMREd9e2UmbDV6XnBRP2YKeiozXyMyQkw7SUJmKjZAaEFUJjd3OWY4czFfTlZ9
eDEoS084YlJLeSlnWlhCPD5aZ05Ibmd2e08/cjB7ZnNWcjtVCnp3UUl8QDw+ZSlnUT5WSnlONT58
XjI3fCNrcXclV3Byd0FeZDByaEA9RDdKVn0hX3A7LW5edlkkJHFRc0hSU3c0RQp6YVpMSnlBX2p1
X0skVH1fXj52P3RFcW9MZSNaS1dGYmQ7P1MwT01FX2Qofm5iT0Nzc2h8SDZPYShXaFAlPyk1UX0K
emZsS05nKiFfO3tNVmVER0dBdUczYy1EX2lvV3xZSHJTWT9lN0djZml0PVA2PjlhPExfQXtOc1ll
M0s8KW91SldaCno4ZT0wTlZqWnBwXkpEMzw4ajxOPFJhKnFSIS05ZEhhZ21FeFFSemowLT11aVhR
aW8tdExDWUBgYkJ7TFN4RGtTXgp6LU5uRVhmNTxia3ooXyl4KW9fRVN6PlVTcj5yaGxfI3tURHtj
elNPRilnPT1zRjA/e29QaG0xbHdwQU5ldzdCdjYKenIlI0dodX5JaWdOPi1zUUVqSWNuMG5EbE5x
TjFpcjFpU2dWSTFGS1E0TWJvZ2k0OXZCTyhJcyt7KnYtK3NBKnVECnpERyNMPz8xbDVOKkJvJilY
KWQ7dU0yWmB8Vz9yKjs+NHhwd0hmKkRiKzt7VGluWFkmfHNjNWs9PHhpRWxfJm4obgp6JCZ7fE5x
YC1SZHJzZGEoSztmKldLeSRIe1lRJkNEMWhpJXskYG90T0JMXyFEIyRvWHZndio+cFZlSnw/JVU4
bGwKelFxYmZtNnx5Y2t1JFFFdTJMbXR0SD1jTzxDOXhTIXcleXB+IXNnNGJOM2ReP3hMe1VxejM+
YyVNXkVGY0tQa3BVCnpkSlckRDtWb0ZVeWozTEFhekxFQl5RSlR0UVcwYUcxS0pzY0xKOUdsWjdS
RlgyJWomQyFYaFdVZyR8VGU3b2hYPgp6RDlLMVcySylVMmxxISljIXAwS01Xd2wybHZ+NFFjeUxR
TjJ0SHl2N19Ke1R2LWo3czU2N1Q1PXEqY3xXMW0qKHQKemNFPDQ3M3JXUH1WSnZSMjUqeWg/WT5l
eHxtTV5UcDZFN1NTPWVFUzdodFhEbzU9VUcoYkRsV3BMeT0oK0NGTTBACnpRWmgmPlNvSTApS1FT
cDFvUT57RW1gdFd6eDJwNUEoMW96cU94RFc+QDA0Vm0rSUhSfW9kO2dqIXNCdDM/QVdwQwp6Pkpg
ZnUpJUVvYW8kMmNDOHs8fnNkajBGP0BPWlB5TGc5WjZfKFEzOFR6JkMlYm56VygyfHVQTSl5QEQ2
bSlsU0gKentEPiEjZEYoZDc2Qzw1WUE9WkJvYSU+YmVqZihgWiphT0NIY2ZMKF9KfWhqaztYXjtl
YkkoMDFkSSRFN0IoU1IwCnppTTg5X0ZUOTBaVDRIdXEyJCVIWDw2WmRiJnppYHtVcT0jZjlTenVH
cSpDZ0IoQHpQVE5SV3NJMkh5UClVMF5qKwp6b0wlYioqKiRLJkBjZH55aEJSdHczdShxVFc4dlpv
T2NMUE96Vm5lPlJKMS1HUl8+Um1jRH5BR19HaiVkSE8hfHsKelNRZ0EjSytBJnAqYmI0aypDNihA
aD91Km90ezkkQDFSbENDZnpnTl8lYkY0fW1+MHtsWk0ydFFkMFI3ey1FJkF9Cnp4cy1UfVZpR0Yw
I31TSFUkT2lNRnJOez8mVlVAN0kldXJMeTR4SmM0QXgjZGghY3hKPz1hekBCbEQqRkhuZHU7dgp6
cmo2OzArUEdFTSppaFRIZC12OFdKI0xxRF55dWtSSzNeYlZHOHY4OT1hZkdnPTkrVEpyKCl+WXdy
IX1YRX03d3kKeiYkcHRjMDIycz9jJTc7bEBeNWF8Vm9COEJjPj5BdDZLSmsyNUhnVjY9aWEpRCNy
eHkhX2xtcnskPHl+Xi19NFY2CnpQSj9nRXBGKFQzNFZ5MGUwME88dzNMQXs7cSZRPD98SXJEMj4t
R2xoZGU+JkcrcWVvJm1qeXxaan5xPUFSbkUqRgp6blFSd2M4cX1oSjRhZFlYdzlpVEw5XmN1NCNm
P1RnSjRWcGdKQmZ5LTV8TD85VElSO2thRGRwJHJgYl99aU5LWjcKeno+KSozdFoyVXtwWSFmO1RJ
cF5eSmVKfXYhI1BHUXNXaWFsczZac0YkQ0hsQFY+a2pkbXlmfmpibno7RCFjKTRhCnp4ZWB6OUlS
Y1h8NEtFJDEpbWFSJEM1bXk5JTE8NWtWXndXTClRQmxjOGZKWUdmZTBPPVp5WUIyb1pJYzFsN307
Iwp6ODFuLX54Jlk3TkpaeUgoJnVEKXVzPjZkNnA+eEJBUm9nZGlUKHZxRmowflNfQDlkPz9MMSpB
KkRYK2x9ZCgoansKej1hTyUoc2F8dUAhbVZ0RyZnc2F8U1MlS2MhelZuMG5LPmxtNDJPcno4NW09
Yk0tUlliUSYzWDdPbSQjWHRgWGlhCnpXLVFMVTJuYCo/QGpaOG9AKG5IekYmbE5ie09TKU5Me2dE
VUspN0U7WV9iRDtqYChvSCZsfDk2KD8pRkN3MmJUKwp6MStnJHdnNmhmUkFiX2x+Tj4tdlZ4UjZt
aD0+YEgod0l3I21FMTRMZm4yZWc/S18zRlgyLTs1IXB8WWpgNHpqPCgKenAlXjtvWjwpWnI/c2pm
OG5nd1A0Silhcm44UXxrUHg3UmlwXzJUPHtYRXh5d2ZVN2B7U1R1dWxRaXRrPVVieClqCno9O3tm
ZXlfWG5rcCR4TjA1XlY9S2IhdEphMTVmVTBobk1Vd2hyPlpZYjtFNm5xaGxiM0JiPT5LdVpOQiND
Q2Z2RAp6UFI3d1FLfiVWOVNQSDZYdk19WFZaSVJDN3czeTlhZDkwVFFJdGVyWG1nYmcqZEdePiQ7
M35yNWt3JHJXTiR1c0EKelV2Zj1ETHY2dXtsYnhxV00jY2hraipNRTVNZGhgRVlnKjYxS0xXVF5t
cHR0az5IRXk/byRLRHUmJEZvckdrYSlvCnpjY3pLU3B6czljJEhMfmJ3UnE8Q29qcGlXWlVpbGpI
Q2slWjNJUTs3UEhAOChjNFlNSXt7X3lEI0QlKElhSn1jPAp6Kk5PTGRLVE04dCFCe1YhMjt0cz9P
PDJCcTRLezZBRGg1Ny1xQD4mZHw3MWRDRFZBTTQ9K20tcklBcFQrayt6T1AKekc/Sm9Za1gwS2pu
IXdWUHdlWFYrajdMKWxNLW4pQll5ZDd8aHwmQGxVZiRPJnpHb3dfdT8/M21gRFJLI1ZhTGYrCnpf
RXpASiZYYWdOTCpUS3taem9+NG5xZWRQOEhzU0xrQztwc0xGSipacXBZPFcxN29lJl5KRzZwIXo1
NFplNlpRYgp6MXx4fmNKd2g2YWw2ZDVXRT53RjdhOW9DQ0heMysqdjlDUU91MD5PWU8mbFBEaSRR
OylhfEFfJlpVUytNYUw3cGMKekFoO20qbiNWQFZyOWZmMlc4KW0pb0JLUUpCZzx0dk9+eiRRN3B9
UXRfeDdFbnBoNzIzb2JJRnZKWXpIKFUkTWhPCnoxKCVlcXsqWSk7cj9+bTFMV21YNz9BKz90ZT5p
YUVUPUtoaXVEe2dmJnxMQn0qaG1DbFNxP194XkVmKUR2bGI3eQp6elYwcVcxYGVVSSs9N0JDVnkm
e0phTXheN15aZEZWNjlNSiVsZk9aR3dAPEpZJiZENlBjOVl0KEp2SiVvb2o1U3UKemQkdTI2eHdW
MHFXZmlWYCQwQ0dAO1RYOGQxbGVub2lEQHp7bGZDQitgc3wmLTdhfj8tQGJRSk1aeiNjajB1aVRD
CnpFbkhraHpjWSNCTStPREVeYEdAYTtRfm12bD5qP3ErdUVIam5fJEhCRUpqbCREITxNeXskTDxa
RU5kNkZZNkIhVQp6IXkoI25MbHtAeHtaV2omK35fWDwyeF9hbU5EITB0NHM+SFVZYHtlPTk2S3xL
KDFXOS00ZHVFTSp4TWROV2cqI0UKemp4clFsISh0K047LURYODkrSGBFcXdzM2RYflpDQmhSOSgk
ZjBle15qJWZrI2REJn1QKy1vamJDIU5QbEZVe344CnpPN3M1Q2wmNFhCIyRBJV80cUwmRk9FMTFe
XzM5Tlp5P3VqU1hVX0REJn5eLVl2OWFAbSVrNlpFcUQ2Xi0jYUApewp6K2MmaXE3WigrY2paS2Ip
IXg1Ul47ZyNCP0tNPUNBRV92PzIrUDFLTSpeOypVbH5XIS08aypPZDlKOHJTKTY9OWQKek9GSHJg
OSFueFZARz10N0FldEpnaDE7RDIjcTE1NklRZChXV2YyNjxLOEYrUzlrN2A2PW8qUylfdTR8P0xG
NnttCno3SSY+XjxUQjhFM2c1aTE2QHtoQ0xAcj1GRGh0TTkhcC0pKlVeOWBPNnptMWVkaWNhXkpp
dWstMjBjcnA0QjJOZgp6dlZYV3xWcEJgMCp2MF9hU2okJmJpXnwoUmw4Rk8tZWh9Vi03bS1+V3RT
cGxtP3lhR0QzMzxDfFN6Qj5zWmJfSmIKelg5cjd3Nz9Md1JmYEo0cXdsVGM+dyFncF8kOzlWMmUy
LT9md0Q/PzhuLSQ+ekBZM0BINHU+NUp0QVpsIWk4REd9CnopJDArWV5FbztoS19NfEF5WFlQSUZi
MmpHQjcwPil3TUM+KUBvJXNhSmJZPnJ3WiFWcSFnNEtwTHo8QipJRzE8dAp6OThRWmwqLTRzMThx
U1dWJkhVWUkrdEEoPD1aVkgkWkMlWlJ0RlBLfEVuJmpnZXlhMS1gMW9YdVZgQ1p+bHlpZzIKejwp
WDFIKDhhbFooejBjWFQ1cX1LaEZgQip3UVJsRD55bXhHS3lZWXlFUmYtODQ7PEI9KV8/a3EkPmdR
JGt4WnNeCnpDQjxJcm1XfDc8bFNOfmtzcXpwODZ2d2o/aVMmJjBzSllgPmU0Ky09cDIyOShRQmVq
YFNpTX1abWFCNURzSzwobwp6OXdWdlBocUlebWlvcmJATn43M3EhbEhIVzUkfCF1RnwhLXo7ZUd3
S1FhRmtpViV2XlpmfEMpRmtYJDshM2NfaUAKem1CekJsNjR9XlBHTHo+SCpCbCstbTx4VF9YZl9D
RWdudkFPIS14N1hIV1Uhd1pFaF8/JVl0JmVfKENAZ1hnIUxHCno5aXBBfmwtIWZHLTtfMWFtcFlq
KyhDNHpwQCk9QXBEMW5nfiVrQWpJZHc9PSYyb3VQRWQoOThZaH1GfTNOZmVnUQp6Z2NMRXJwbSQr
cGtaaHtjVktfV34pUihLcG4+dzhsI2JzNEVkaHtzU1VueTd9MStaRGotY2t9YykqVFVVYHBSTzkK
el8pVil4QyVsVFdOQn1sKDEpUmlRTExPP1JENj9jO29ANnxpJDhVYVZjcG00N0dgcDlfJStLVTlK
VGhyK2x3KTFECno/eEtzZ1pgLW1sOUVweVJSNkktTFE8K2dXcnB5VTByWSl2Q2BtcFdUdX5RQEU2
e1NfenlrcUFfKlJOYXQtWWElKgp6eT1xQllPRGg/YD18Q1hsOHlvalVYdDQ5PV58fjMyLWR9ZkBk
PzFwIz95QWsjKE07ITw+UEBNTDVgQzcwaWxVc3UKem5LU2lUbCUhKiVlP0w8MzItI1pJQX5APSpU
ckRuPXVsb3JSKjl4M3sxYHsta25+QWpzI3VDX1pgUEN3UnI0I0xACnpCQHklYSojbEFSSWxjZ2s3
Y1U/aWZ9NE0pNVFgZkdjeWUtWWg3YDtXe0hafU02Q2kxXyZfS1kwb285MFAwSjNEYAp6Mn0yPnF0
OFhkOHFENz9gOFZZRz9MfjNrRyQtNlZLZ2B8e0s1TkRTZyVFckV3e01ncUZfVHFpMkY0Jkx2e09Z
UisKeihGWDNpP28mdl9UTSRlN1EwT2cyQiV+a3xDYmRZcSZUaUt1QkBMamYmeE1zTTJ0KT5UdjIl
OENsc2NqfmNCLUV5CnpCUlUzcURaQ2J2PlNXakxDSHNwanA0bEdiP289a0RnaFF0VFhzOUlpRHlx
ejV1YkpMRlgmJVNNMXhtd2RHSC01WAp6eUM2WDNJWUwrdUZeZCV4Y3FAMUErOyhrUytybztJQ3Ak
VUAyWnR2KThGJldhRDA2e31ySnRFKkxUNSl1U0p4I00KenVpSHdwcT0wbUQ7Z1pHOFljQWNze2B5
X0pIZWI0K3daNE1KVDVNdntLazQmQDY3PDdOZGo/NjhiZ3doT21gUCpuCnopLTJYc0BAalB9MmJT
NDhtPig+akVlV1JfODljS09ebUpqUT5saGo8dHRoVCs1JW89K0BnQ0BWMGRhcT8kTzlaMAp6OFcl
SGYmcXkyXzdRNHVCWnlefnQwZlg1fGNHZjhOOXFHWUNobnJEWHcrT0FvRHNoX1dsTC1TY2lWTHhE
UXBCUCUKelYhI1YkVT4tfEF1ISo4QWlZSUlfOHFFM2BmblVDdVI7dms0bWxaQ3VzfT9NKDVhbFFB
Jl5VZiNjcDVrcTRZPlQ2Cnp3Y30pMmJaKlZQbVQheChkPSZQVVdfUUpEdSY7Sk1ofjBQR2dkbn41
Xnp4MTliOXxVNHA/PklmOSUzdiRIYnR2YAp6bEhlKVVWe0Y4TntWKTB2KklCVDxCX1NIPnVte21y
TTFVTVFBZXlLO29pNVMzME9ebmp4UV89QHMzIUt9Z2M5engKejc+Y0htakR9ekB0UU5NSFVheS0m
PUhaO0ZPbWxlK3JeYHVjOXphVXgyanNpfj4xPUMzYWM9ZGt0PEI0P3hufGRICnppXlV2MmRoQkZw
RmMzX2NPZU88bkVRN0AwZig5PHAlI21naytzTWVjT2FuVn4+R3E4fklOK00/JWtIcFMlYTwpXwp6
eHA/UGc4JFBnWT56YnsjSER6dj1qZWRXNEc4bEBhZ3xTMiZEb3F2Z3loZkxOQi03ZWxVQTZrNilA
QG1yeXhMZU0KenRTUThxa2BVNz9pPWxlUntBWFYjK2FpRXYlfCZvamEzO25JOHR9d156MFZMa2pi
TjwqbDxLamdLXzNYR3YxSHY8CnpOUm11NitLUCRve0cjZDA0WSQ/NlhsPXlpT1JDNztXOH47WCZK
bGF0KUhjajlsMD91M2BwbHJRN1NQUmVtOFhPXgp6ayR5QSN3KzBnN3RlXnAxK2dPQ3NRWVhBIzgl
fn1hS2A0P2AwaFJTUVlUd1VmMUlEcm5EckRgZGowKkJoYzBYOXUKel5QXmVEeUw+bGMmRXhrWU5Q
aSE8SXE9ZXdaejJ9eEIkNEpPJj5OPmJqKyg0WnItOzNyQ0lrdElYOXBzMWRnNXAtCnpQMzc3V0lO
YiY0SUAxb1hUQGk2RXJ5KzxhTytNX0pGTER7LWFULUxARjs4QjVqIW1NeiRfLWM2X1IwI0NZMkxo
Wgp6Ki0mI2tGNklXe091Szk1X29XJVZKMX5iRm9uYUk1d0lWRS0leDNvYFRRXjw0VlorKkdncU5O
WkMpI2BZNllRUlYKeilATlZ1YiRoYkxXdj40bWVaWVNGYDAzRmxPQk9VV0hgVWFwbDFhXlckJCsw
e0c4dG9HZnZhfSlNR0cmI19OdDVECnp2diYzM3dkTGk3Q2NpSl9wUFVUKHhsKSFsc3ByYklTelF4
ZXV9ZmF3d1I0VGdsNHNXUDJaRVVIO0pfVElRSG1CWQp6UnhyQHBrS3dLKENAKE9ncU4penw7emg4
UEVKQXFiME9HemdoPlJRcTVpbEchSi1VYkVTaWhuSE12R1VwXjVXR1MKemQ4THMxcDkkbVhnTjww
YXNHZWpKQyU1VmEwTjU+RlUwK1B7Jj4mS294UldlPD47emtCQVc7WFpEaHJkRUxxcGFFCnplTTtE
OD5TSWJfKn5pV2JOcjFEbHhmbTdZWlorMFBoalhmOU9pUkF5JnI3MFhFZi1DKUptazdrUmVDfT1Q
VUprTgp6aFBwbFZIO3dLWHs7ZDEhWGdHTm9WZnRLcTlDJktpY016TnlxelJWbkFsT3RlKFJiNEY2
Z1lYaW9FMjExUFZ6YzMKek90UUhjWWNJMEhxS2s/MSVxMkZLIzJKaUQxVn08VUxgd2pQKnl9OEA3
WUU+TE9VKGpVKyNIODxHcCZYc1l7aiooCnoqe29CcGBUNHdpXlJVeHc9OSFzbUlGSFBtbGJ2Uzck
bVJtdjRFN1RmVmxzdXdzPis3bFNNMHBEeH5BSU4qP0gjMwp6I0tkSG45VFBjbDw/WHoxZ1J9aldO
VGlHZDE0QVIxVXctajZxZnV7fi1yOEMxcUxmbkUjOHkqTnZTN295d3MlfjQKeiNmRUVGdCEhUCZX
a3NQLSlJVD1uNTN2b3hCVVMmKD5AI3JgVHNjOThWeytHeUhKM1ZfKjBRSzUqTkBCenRodX58Cnp5
cFI2QXFabDM8TFIrbUpwMFpaYTloV24+ZWNleWRZfjcyPSRxQk52YlJ5b0FBWWUydS02cklxLXMo
WCo+TypqPgp6MmZzYmdmWU9wYGwtSENYQV5JNHFSan5EcSNibD9YZ2phQkkmPTJtPEN0X1BVYHp4
Y2wjJTE5PiVzTHk9bm9MVjgKeio/M2dlbGM/UFpHfGpaX3ZJPl90dUEoQTRfVjRjKF9FPCl4NjlP
dTJsZjk4Vl4waHB9T3dPS0NyckNJbXd1MTVyCnpkfThsRXFpQT5sRzVYeVRCPm5kNnt1dWc0Knkm
JihhQyExPExwZHZmI0FffSRObWUpOGVzKi05d1Z8Z28weW9Mdwp6PTg3T21KQTtebipqcVQ8ZGpi
eE5xXnw1RGB2aU5uX3IqfV5DRUxxcGZReklkZHQjcUVHPWlGezYxV1NCZ31ZdF8Kem0rbDsxIXda
cGwobVhQNnpJZk0jSjJtRkNefGJHY2V3U29VdHpOVHdeTHlYLSZNVkhJP1IoPEw7YldzNTdTazdh
CnpKZVZWb2lydyN+LXJvTTgqVy00cVRmMk4mR01TdkM+X2RIPygkPU9UIWAwSytQX2czRHR0O1Fa
YHxgRUI3Y0ghPAp6SHxUVjZtVz5tV3AlXmJAcispP1puTkdPbSE/REUrPnoxYEdzJFYlZUk7alNY
PVZoIXN1eUxjQWFYJSl5NH5sR28KejFAJEVhRVVxa0dOTmphUHY9SXdVXmF9NXdpPV5GfCE2PXE0
dFI+YmU1T3JBIXVYVUE8O1RJMj91PlZqRVImQV8rCnp3fUBxX1N1bCpsWjRxNT95U3BhUCpYdDhH
ZFA8SF9sdzJ1QGxKe0pmJjY4QnJRdkt7JjZTNX1oKUZnSmJlcj8wWAp6ZGFffEc7JHJmPTZwZn5F
dyNTI0Y2RGdiU3EmWUxQej4+NVdVYEVhY21sWlZCY2owND97VHI7JmgtZjVuaH4hO1EKemVKbDNx
dy1DeThGZDIjajh8VU99SFlsQUBLXnUrODIhK2lecXpxemQrcmlOfDlkN2BRd1gqT09APGhZVjN9
YnAyCnpBXiN7YnhmMkdINzNvQStiUU8qeldZbV9CZTYkPDU/OyghJkx7VlIxaFAkK1psejxffVVo
QHo5Ykk4N0ZPZzE7bQp6JXFqRWNsOCRwYGNTdihANkheN04yMGgzMDRDJnc4YFAtbFd7Jng+TzVE
dGZ2Kzs9SSpUeXdhP0laOXpWKzF9WnwKemRHbzNAI2w+RTRDWV8jUHZuakt4ZkVpPmQoa1dKcHZB
QXRmP1M+dU9SKCRCdlo3YTRsSCYmRkEtNC00bUBsT09wCnpGLTlzbzhfI0s8c1ZAMW51QyYtPVMt
WDB7YnZ8RUVUPzxRQDJVdk9iN0pxSn16WHlGPz9WezZjY30xMDRvXkVtPwp6KVcxaXBEbCNAMTYr
UEJQe3x1NVpFejduTzgtIXNiUztJWnUhOz5TcEAlQ0RqUjhfJVVTVilwb2tDSVh3PjFfKnwKek53
eWBwMSt+cUJrK0hEcWMyfVMrU1J2Jk5SNEhlN0tgVT8rYVc3ZU8hdG5MVXM1WEBGMnhfMyl1JnpQ
bTBBQFgrCnpXI3Z2aGAlSmdeWSVXNnsob2B2bndyeUVGKlg4ek1lZH5UKXxHPEFrdWErb2RVb2VH
JCFHeTthe3V6YGc0R01oJAp6Wk9FK0lnajBhZSlgNFkjbWVUM09jQzdAQyVKTCFmNTUoYXRYaDNz
JEslYE56e2lVfmY7MiVDQT5jWTVERFV5QiEKenFaeUl5UWQ0RkAwZXpQJXBWTyVYaDl8O3M2PDVM
S2F0UEteaDBWRGY0RCoyUGY/YCthViFMekxaUyNmenJUfWZSCnpTYGtrcU0hKWcoQEJZbyN6SU1a
biFDKXc5SGsqYGJ2VCgqbzcyaFQ7WFBsVnVyJFdKU2AwfH5iRkNtI0YmOG0lPgp6NGBgeFliYygl
dUkreDJAd1J9bmFfRmIyKXtKXkBeRXR7JDxpfG0xNUJ0VlNqaSRvSlZzJnR4dEhaeSlFVEs+PnkK
eig+cEkrXzBCe2hZMHIxYkx6JnkmUW5jb3U2Rm87VElYKT8zVGkpXyFJTE97Z01UUVhRK2s9VVQy
fmtQeGFNO2owCno5S25KKjR7Uzc4MVohb0lBYHtfKEp1JiM/R1d1PmdROHs7bkZfMk44TW1VXjZB
USUoTygkTyloTi1yb20rZVV5JQp6dEdDTG9aS2kxUEZKPmshJSV1V1BRNDFUQE5rY20oZGNKbUQ0
ZWdyfCpfSUNgbDJlMCZWRyMkKnYwKC18eUticyoKelFubEcrdEF1TjdANWREbi09VyRGXiF7RH5S
KjJAdXJgRXE4MGU+O3NRNypDcCtfPztTSWhSU0ZiOzc2c08pMlU9Cnppe3Fkbjswc3lOKXkzZm4z
Mlc5QWtPWjdpcjZEKUppUyYhK0h7OFU+Tkhhaz04YmpZJFFte05YekFAVmlRMGtLTAp6X2BXZ0pS
VHNsa1QqaDlzVCtmYTltfWY0emMpP0RNeHVvTktjSDIzRihiTTxRO2RHK0FgfFNSfHtfRF5EKWpm
Q0wKel9xZiQrKFVCYkZnKF5oVWFiRClpMD9jR0dub29FM2o0b1EjU2w3fjBTQz1iYm9FSyE2Yjlx
IzthITRqKXVCPDMlCnpUKGhkXyVCd0hHPXZ9SzxIbT5xfD5eaCQ+Pj5uTnRfKz5GamtxdU4hZDBG
eiZtQ0txbzdrQ3x3PmV8TSRpeXZuOwp6NGptbnh6O01xfG4wMEZaS3U1X1VuNFElSzQoPTFuX2kj
NihWdmoqfFhCcnJkcHN7VT5OUHA1OTlpb0c3SXYmRHoKemlNNWl0UVk+aC1rdSp8Zz9yZD4lRVNg
cVg5fXx4ZFNyY2xLdF8mNDAqYD5XP2paTVVSaWo+RHtEcjw9I3V5RFNwCnoxJitkQXFYRTJPTG9J
PkpscDkyQjNsKT4/d2RjOUI4aTRaaTNBM0leTmlkK2ZEMX1kRWV1JE8ocFVhSiV7UT10Rgp6bCFE
SVhZakhaWGo2bWdwRVAwX3JLMGA/JjY5aDdIem1XfSRpO2h6UzVaK0EmZE5oPjg9dldGYVp4RjIm
RFYyU1UKelIqfUtNWk4ycC1tcEhmYWgra3lRUHRiaSlvdD9udDdVZXZoSnd2RH12QkYpXzBIZXVC
YD1nczUyPE1WejdjQkdVCnppalBVPjN8UDxRaiklJHd1LW9sOz96dEU1X35oU3k/KkFTPmJuS01G
VlRhYlVLOUBtJEVedWtyUm5uKUREY3paXwp6elR3QHdIZzdZVjRDYX42NGFgfjRJUUx5RiRlamBr
NWpnOXJpeHpLTS19PGhkK21+RmliV3ptO2xUbmB1Z2txRTkKejZYOGZranJ8ek5qeHopVDttbUBU
PmROTSglQl5DbFJ6KjJ5SnxQYz9Ac1IteG9Neyg1Kntlem1VQEtscz58O1coCnp8ME44TU9vJFcz
I356SkBMfSNVdnh8TT1tXyFfZ1ZhTjwtNTVBM1olU3lkc09QQlVBZj5NRHtOVkFMKXtOeypHWAp6
Z0kmP3c7PD4laj5ASzNqKzx3Y05qOGd9LWx2QUBaZG0yUzJWK217NSoxK1lvPUdjVnkqSV9yfSpi
JWE4TFVIWGwKenYpYFFwTV5TQVVwQmVyUnNgQCV8UXs+QTh0WnxhQ0ZfIztVZDlRXm8/SDBmPz5D
N1Q4SUBlOHNobkokZDsxIUt3Cnp2anhxTilrJVlNblFXRkF5azB0byR8UVpaN3xZdjtySiNtS09w
WVElQ3B5SWQpRVF8MWxSZzlAWCQoKU1QKnp8Pgp6Tmw2KER3Z09UUiF6OVppdW9xUGVYPXU8SiZm
eShBVW9pUHglITdIMEMrQ2xTPkU+bEZsZ1o0SkxHdEZDZkFaRE8KemZCcyo7TWhlSnB3XjxvYip+
SzhIZzI/bExZbm5Wez1mPVJtYUx7SjhtXk4tJEE8Rk8xJHleczg4fk9WVDZwazVLCnpPb3FhUkUj
PDRYWkNVdUMlUHZ7OFY/bEZpMS1HITZeaEc5b2UkdElINDlyKjtaKFJEbWpMWlFoQ0FWYHJaQVF8
Rwp6ckVfJG1CIWRVPiM2VWF4ZEl3MzBuOHt3TGcwLWtzV1Z7Q2tfS1RIOXhadXk/YUE5RUJrRDhp
QlE0cHYlbnZzcUwKek1ZRU8lVVE4cEhFYXNAWjF7JlFvPTg8I3BFSUNqOT44OG80ezF7Z3p6WjhV
SFJHNHkrWEVnVkRNbGhxZ2pySHJRCno7ZEgxclNJKkgmJiZ3O15xVipaP09DVDUqd3AmX092K2kz
S2peZVhOe3U4ZD9xfjxQYGFGbGY1UCtWPVlAJGorXwp6QW5HZkVmbWxuU3lOSWkkUmMxPHdWNiZE
YG9DT3FAIXo1Ql9wRl5eZmtfNkJVOHstQkU7Zk1waExuZzlLam83JVUKejIkc3lTQFdPSVFQRmps
JWFzWGJoQjtnQjBGJjBSUV9TcjJoT2A8bDtXJEAjUGVNNnxPdHdLUkBpQ0FZXng9P1Q0CnoxdStA
VUU5PWZKR2lRVSNabnFJelB4TzUwT2FKbEx4N19seCtjK3Y+R01RMnV1eDJnQmNkbGpSdnVOYUxH
RTdGQQp6PV9mekdfdWZtbHVpZXRwUXF2TlQjYjM4ezQ5PTVfTUFmQjczayZRa3VEZiFAaW1QQG1g
RHs8YCojMmk7PSh6WDMKemhtSmhlKD51flJJTzAyMlFSWkhlJjcoX2FRWClUKG12fkxZNkMjOzZO
KmFHK0dLQSN0U3krZ1hjdlRPc0ZYRkt1Cnpfak9gaXc0MFZpaG9XcHIycm1ASjElWm1ycV91d3o7
Ri1PM3NBd3tnQGc1Y0ZNfCNQRnpRT1FSd1JyeDtuJk0xTgp6bWc7aF49VD9SUkdgM1FVXnBzNUFM
fVh4Rk13aUZEa3w+blNVJCNsbzNKcSg+SHZIJmN0UC1DTF9+U1R3V0pLNzIKemh9QDYmSzUmeiFr
fHA2YVleUVZEQTZMWlJobkhgYCphK0o8MVBIfG1EWG1SVigkcVlmK2RxbEdBQ0o/eSV9aV5LCnoj
RXJubz9uTlleN21mez0ofT5+RzZiXyFxO0loUlFwKGxBazI9MEl0NUIzVHZZX1BjSzhqUWtXSEhn
TU9pbGoxewp6anFHMXA9Xn1rU0Y0RGZ0Q0l4IVRIX3VDUkppaFRhQzltWk4lZjkwJEktZE55enlJ
PC05ekp+SDFoRms9VUwtS0oKeiVIXnpeO1hLPnNGWXlLPCM5byVrTiZuYypLZkxwMi1+Nng3ezBy
d3l5JUZuPmI0KTAkMD9rcmFSantlPzFNND11Cno/O1JfQWB3bihMWCsjN0ExOTdDMWlDb3FRN2Zi
UjUmbD0qKTNfZ0RWbVFhaT9zNz9lZkJAQEBJcjRYSSQ3VyR0KAp6Z3hxKjA4U3soU2lfdTt2ZGgm
NXNUKXdyUjtkQ1o1bDBnVENkUUVDVFNASGB8aCklYSFCdGJEd2FqNXdIVG8paykKeipgI1NecVVA
KWRuIVZWeHVedGFVKWA4KUgoQTRFaU9SQXdtQVlSXjlqKDVNU08leVprK3V4NmFNfjJZZjgkYGV0
CnpDeUFBVGk1SkIpa2kwNmpXOHREPXRYZn0mK0c5N3NAfCF5WjtCYDlIMkpIO1ZJMV5QYmtpViFI
MlYhZlhReTghWAp6cTZjRU91fXYwR1N3YXdPOHdtQH5wfH5FfXo4aV5eV2w0P0VFbSZIRlc1LThP
UnZkdU03KTUoVzdAT0trVk16fVgKeiFeT3BOTklIV31FUEV0Kzl5JHEjYzBKaSRYfGJ4TnVDUnNG
aWM3VDRqcz9lJnBsZk5QJHhpPUROQnUwRSU/Q3RmCnpzeSlgTUtjIWpVb3xiJHxqQjJyMWFNeTFo
eGNOVzdlJmc0TmhzUCM4OSZWM143XmJAUzsrMjk2KzgwdzxfOUFVKgp6ZSgyJW5wNUpsbCtRK1dr
ejImazx3dWtaP2JXM3M+ZFA/K3xePUA5KmNwYkNUdm9IMGNxc0oldU5VKVMoJCY/P1QKelgzdzJv
aj0+Kl9xTyNCb28wLT1TSFgjfEY1RSVybHwwfDB+WmI/UTIhYnhJRW0lN1NgLVhoajAxe3ZmPmRm
WUh1CnpjfH04PSRWJG5FPHBmQFlveEBJdXNoTThsajJDN3IxJGtGYlYrNWxyJHJRNUJQTT99WU98
MXU/fEEmandLTiFIdgp6Mk02KXVPTVFaUWMtIXhKWEIjJUh1Zl9mWTE5PGRfWlZWMkUjT3MrRD1P
VWB4akJ7OXRXTG9kcEJ0fUNNU2w7bSEKelNXZG0xOHg/JUVgc3dwMEJXVkB6YmREYWNkTUJpRDMh
TnVFUitHd1g4aiFOPW56YVgkeWNUcD9RUTI4eFBecys5CnpHaSteeDJNeF9kKnMtZV9mQV5WKEZn
VzVzQjtwcGBzdURVa3RrUkd1TjZgUk1LJmAoVUohRV44aEBTWW9xPjxmYgp6NURXYVYocUwoQkIl
M1JmaCtzakQ2JiQtUF82NlpfSk1tX19hcGlPLXFYZlNCdHNqMm55WmA7O3BBcGN+Ujt6XyQKenxF
WmJ3KXZFIVFrfHooTmJQOyVFY0h7U055OFJieCpSLXYySjhjRVJ7KDdUb0NSUDA8RTxBaFgqcSZO
PFFJJHhOCno5VDxzXyNGMjc/QXA2S1JrUCVWRDV7Z0s8VlgqS185fWYpKSk9SlZLY2lQUisoYChV
cTF7RG8wTGNadlFPRlNqKQp6aEt7fWgpWWkqeklAODEkUnNwMiErMGFBSSYzOVF4MWc5QTNOckds
e2EheDlXe2dLc3RLNENYV0R1WEAjTD5IUEgKemltYEEoNXl+JWIhT2x5WWFpKGloZTZPbSlmamZT
RTQxNHpYc1kkPiZDI2NyWk4lOzJFSUdWUklqeFF2P2tGdCYtCnp0Kk1ifVhOPUo/OVNvIyRgPj1R
VVBERit7TlgraFR4NWxLfE9SRmJ8c1AzfnQqbm54I20xXnR1Q1FPV2xRQyNMQQp6bzUrS0BkSm1R
P0Q7SllrYzNybG0zcmNZQ196KzMjSTk0b2Nncn5GOygkSHlTU01COGZfPyRZJW9rP3dXMlcrT1cK
elNQIWchQiFtaUxISmI5IVQzM28rSiRlUyEwWUF5ZmF6Z1NPRWRsNCt7QGxPOF9TTHxeJGNjYWIr
S3IkNntxTFc2CnptaChzSF8+KmBBaT03KVRWMkA7TmdJVXxsKHRmKDleWEk/I3tULWtGeUFPVU0j
cUV1aHtPJG5DP0VSa303ezxKZAp6cUcoTSs9NCpoO0dwKjY2JEh2dV9jPks4QGw3RlB7RWs+eHNy
TzdZYGlYMGIlbGFvY2NWST9WbHZEUG9JbSZGeXYKemRhP3NKWkgzSnFnUk1rIW5YOGdBOXRtUC1z
Mi1CdFBQVWd4I0JYJDN1cj8jOWYjUGdKaTxEKDkyN3AwelhzRytJCnpPbkxGPlpadF9eemZERz9r
WnJmIWM/MkpOLSpVN3g3bD19Zil8TWl7VWNiRUtENHVfelNDeihiSDgpVykoMChQagp6OWE7dGs/
ZWBZMTNFPHgrZSp9OXhxVyZEenRkS0JRMCpAdE8oOGtJe01KLU1SRWBxXkc+fHg9NF5jRXlGJnRN
e3YKejVfeW9TNkdvemBtX1doWnM0fVlhPCk4bSFOM049WHJJODMzV0hNcXUmdnlJS0shN1cpYllT
Wng8dFF5SDYhVU09Cno9eng7Kyk4fj5Ud2FkeEk/TiRldyokSVBUTF9GdFFMIVE5cyFvY0xKS3A9
RklqeTBVP0hTJmltJChfRyVqR2dTTwp6N2hYSll8Q2ojaG5fcH5pS2h4dU0rTSRfOHVWQGhtIXYr
M2tjQVg+RW5JUWB5PzNjR2FAY1NMeCpJY3FfUVRAVkwKekgxQF8rYjxKQElFYz5oJDEyKE94IzFx
Zj1Bc1hYJCNSZFR8KWpkdTtxYTtNbkslMUVjcl9QS0YkKjNyNGRvRm4+CnpEYDNEXyl1eHZ1YCRR
JUl1VmNrRjdxUUZlYyQkPS1QSmwyO0hrZU0pWWFyNlJNfWtRLW5XKW9qRWYhPCEjRlcqKwp6VllN
M0p1JHpRYSFiR3oqR2d1JUhodEMlaTl6TmRaUGtyWTFfQF4mISNpfHUkVnEzcXd7VX5sRCkpS1gy
b1JiKm0KekFUMTRTNlYzNXY2PH5CMmMtT216QHMre2JWTjluNHUoSGBJSmYrXj04eCEwbjA+NVQ2
WnQ3aXkqalBWMl83YWp9CnpSK14yWXFKK2ljRl5nPF8yMFk4JldSZSRNUGgmQ141cEtlc0YyNFgx
X3UxJmBeeEBjJUcxUVNIeSFENU5GKlh0dwp6MUw0cDlkPklfe0oxQFExazdkakJDQEx9MDMye092
UHR1KWlMemBDKEtreUxLVFpKcy1NYkwqUGxTcSo/RyZ3Nl8KemJYMVUlQVlleSlZT1JgcktQdEdt
N3IpdFROJm8xX2NZT1E1elYpTVRsUlkxQ3gkTDUwQEE+U2oqODs5LV4zWSg9CnpUWVNGWSppQVJ6
ZEZ5dyteX2hSP2RhZ05GYTg7KEgtSGhIaFF8P2hrKHYwaSo4RWE8bTlHPTt8WlZOV0FGMkBydQp6
Mzx5QjYxMz1OZGhEdDF2VGlzcD1JaHNqMTgjfHM8TURkPFBjMGVXPzd0YSsqSnE3RylXPUYtQDtT
QEAlPEZHazcKekR9dG5AKXEkU3dPZkhYWFRJWE5RcXIqKSlaNE44a1VMKHZGZ1ZAS2h1XjQqJGVE
S3B1OXBIWk9uWTR6NHNSWSQ4Cnp7TGBjT2BLfDluZV9zSCUtKnQ+K2xyb2orS19sNDJ0cGtNM3NX
U0diS0hRRnY5bEwrM1ltcyo1YDJVfndMfl5xcgp6enZzSDx7biQwS2tickpTV280XnN1Zi1MZFhk
ZV5EIXRxOVNza199YWxEfGZKcSk4fVZFTHlJZT9GLWBHZHJzayYKem4tQXZCezxwdWswfUdaRSEp
UF8ybzUwNnhjRldDJjVRfkx6bzFxKSkpX1UtTktJbnBsTG1fbSY2fClObGxhdHF4Cno2KVVDSyZG
VjM4JHs0U3gkeFZUSD4wNGZUR25vaXVEbW1iZmI3UUFQSTEoSERgVkJ3Jih2TlN3XlM3TDdWWD5H
fgp6bnRoZVF0TFhrQGNtPCFHPUc/SF5FU0FUZy0yMmk0ND9YfFRKRmVieFd0ZGxrJXdna3ZLJClN
WnZWJGQ4a2p6NlgKelBmSlI8V255SE03VEt9a3FFYkF3Y2JLJClNKVliKDVsOWx6MWhKTSpSMjU0
R0Q7ZXBON0AxVUVATk5NdnFnWUU9CnpYWXkjcXktcUJYTl5ydStMP0k/ZG9kYCRHcVJoZihsUWpe
anorISFEPFpKfUpQUTs8Q0hsdHZ3QWtGZVVYWiNvcwp6TWlDNHBNSHpqclIhUUplVFV9QW88JkxH
TSMhWkkyNWpURkhxKjA3eVlJMTVfMEN0aDV3MCpPPmZOIzl4U3pMMVQKekJAdHhLJHxwKDRMMU1r
TChPa0pHMUU7ZzE4T15TQip0KmJ6d3pnIz0qTkAtVD42b2NuQD1gST8qT1hrRngrRCgxCnpKYzdQ
fmg/dHk7aXRUaiMyMylxWTBWNSsoYHJDcWBMOStuPW5zdWVQYDZsezRvbERNfEMrO0psbTxlMTQh
TXJBVgp6byUxOzVXSShoODtFOWdHJXc+UEUkdTdaV3tJbCN1JXB+SkU9Z0pAQiN4MXdjb2F4Kjl4
aTVWNHZ3UWEpSWJnRnsKenJTck1qVXZGXmJ5WE0pczV2SUhHMm1mPXxaUl4pOFVnen5YaW56Vy1X
Z30mfTxMbz9BWnplT1RNJEcmVWpfbHtTCnp4VXJfdmgxSldfYzxKRG54XnpyQkVsTkx9UE16d3U9
N3VXaUNgclBNKnJiaFlHX0ZeUSNaeiFPeStWJVk0M2R+Ugp6NFA9d30hdyQkZ0woVHlhaT5jbTFN
ZThwd0pZTjx3PjJrQl5xU1Z2diF7aHspIWpLSV5gKXdkfnFfXm5qPSQ2SDwKekgoaFN4KDl5bk15
MHNEUXJ6V3Vmeno5aTRKKkY0c3NOWE5DJil9d29fbl9yaTQ/OE5TbTlWcDN4dS12aDJ2O18xCnoh
U3R4ZmlyQDlFIV5YWCUqIVh1VnhUcjY4KHdSTH44X0pNbFVJeTBXV0RMSylze19CZV5FQWVYMCVI
NCUrWF9XRgp6JG9PfnlfdXRuazhrazFIWTFsbmhlRSFRREYrM2JZUUpJc05kNmV3ZHZeYWpmc2hX
PDEmSyltPXUwVU8jbEVCNjYKeiNyQ2ZWcnFsSHM5VVZlN3VeWmM3NG13eDcrKjJxVmdUcmFsLTBg
b3IxbkAjO0BUb15tSTxWWDljPkwrVHp4P3U3CnpadjUpbXZqWmJgeUdAeTRVKlFoe3U2KllQfDlJ
RiQ3SUheTlpgVihNQHhaUz5ge0BzVE4pJDI5MGc1VTFuWCVISwp6bEspKHAhPk4ofklifXx1RkB2
PmBhVUNOJlg1VyE5IUFQKzx2NiEzbDIySGZYQiZgdz0oSTc8PmlSdnNgRGAqSkUKejI1JT08OGxv
ZFIkdV5BWVNfe2NiNlp8MHUlejcwVk1xKCRNJWA4c0FATXN2bTZCQV5kJEVPMmBuSnA9YXBnMzNB
Cno+V3U4LVM2JWQrS19YPnpTXnFaT147byYwOTR7WHA2cmZfNm02MTZ1T3Nme3hrdEZwPF8ramd2
RiF1TjFuKmtsagp6V1chM0B7Y0IzcCQ+KmBiMWpkdCFWQz9LZE9aVTJWQXUoVl5jVFdOWmcrJjVQ
YEYkcjxrRG9lYnkxSyktX3I0QjEKel5wR2ZgUld0UnVtcGM4b192S09pI3w+Tlg7fiReRUJhZlVG
d3IqTE9PKSQqWXpWP3pSZmlXMTJ1KUNhZT9qYHNYCnpsZSZHMDg8d1ZFV1hGPXBoNkZjQm1EbS1w
NlBKd0QhJGRHQ3ZOKlV3NEh2MH5pUzs+Rmk5ZUpxPFROYzJxfVJ1OQp6e0sycE9fNF99Iz9aQCRX
QkpPYjUocz9yUUhBaXNgdWlgcyRvXnZCaXkzfTtYb3NUfWFXQmNrJG1NJj5yOGpyPGgKeipqQ0Qx
cjZoQmwkMnE+RTBjYSpUU3UhYmt6K30oaCh1SVgyJUBXeEE7KCV4cyV+e3h6TkZLRzR1XnRnTU1R
bChqCnpCditXRk0wdmJxNXppJT4kd2trMHFLMER+JjR8PE5EO2Q8KlhBQ05yaSYhY2NNXl9nQ1lB
bGpWJUFIfndXIWtMQgp6djFsJWEpTWRuXnRwYnFLNklxNT9yZlFlVU82QHE9SVlJSkNmPGE1YiVe
dGd2PG09fT95JjlTRElLRFA9Nz8qekYKellQMzM/SUNiaDJ6VnlQcSpwKWJvdihmYWwqeEkzKjw+
KSg1QW1uVH4+WWEqeCQqTHopKGhgT0Q/aTt+ZmNYIzJ+Cnp2MnBEKj5vbldaMEpGIUFCdXlGKktZ
U01ie2I4fGZ6ZHdQI3o2ZWZyYGNQaShNMHVHNW1ETkB7Q2o9clpOJE54Zgp6PjZDPG9ZPSVTMjtT
PW8kXnlhQnRJPDB6Xz9QVSY9V2EyXkxYeU9jLU5TcX5tPmVVal5Jb19EQHM2RSoxN0wxSGUKemNL
IVI7ZkFyYj1lKXNnRkw9cWcrTkB+RCotSWpEVXlnSjxIb0VzNkVxMFJuNCptdlZpY2l3dV9jbUx0
KnF+VDMkCnp6cyR6ZmBKNVdjYmh+UjcwX1J8fHlmXyQtcEE5Ul4oY2UzT3AmciUjVnFHc3dDTll6
OFl8UGBKKi1CXjViLVkjZAp6PlR9VzlNTiNiPW99b3AlWEhvfjswJkh3N2lrQEJ7I3ohTSRLT3t0
ZW1IK1hva1J+Jk1rUituOzZseWslcX1Gb2gKenZMOGhGel5jWm0jOHNuIzx0YTJ7JEZfUm1xVk1l
dXM0R1M0SDJYKWg/S1crJCNGZXtSQHNwcUkhQUpoYFpfdzEjCnpCbkl2Myl2SXdBOFE9Ukt7OWli
ZnExKil0STZRZGY+fmk1KndBcmhuYjdiQTtZSG5nOHAycCkoX1RobT9kVHtuawp6TmNAZzJGUVgo
b1MtRChSYVZgVXE2a2dhbmw4Zm17MjEkZWwxX3EqWmtLbSVVPCFFZGlyZ1AtUT15KCN6cG9+eisK
emdGLTdPSVAwe2NQbEZibFF6ZSpJQ25fZW9jejg3RGV2Z3BTTkQjbjstSVokd2RMRSM+U350N2ho
R1FxWDl7cT5VCnplZGBOSGs5RDQ2SEBoVWdheVI9TTErSDFLRlBxaERkRkh1O2B8cjg7PT82YVd6
OCUrd0wqWkVmbmxBZnI0JCRPIwp6PD88M0k2PW05SUJ4eCFtSlVjNyQrdD0oYGl1Ui1KQjdVU1oq
dUAzVCg1eHNEUWlaMmNmP2wqOWZiYk1AVWs7dFkKekFaQXAoIzRYTjk4b0VxbSEyOGhNSiVOXiVO
fU0/cnJyQTYpP1pUMn1oamM3SzBGQUBxYSk+P31OXlYlPkducW1YCnpoKSVSY0wyYSFZKkluNili
P1lod3YrfV81MXJ4LWFpZUxjWTt3UmNHRVVAN1ZwSSQ0I1FCWTdJbWYjVTlCJH5QUAp6Yk9afClF
ST9PIzZYWmlmPlZQRnNLMm1UTTM/YlYwMHh1MDkoTTRJdihfa290YHljTWNKQDw0JFhJNGFfdiV3
fF8KemNfdH1TYEg+MXVtNkJQdEdZaVk/dT10WkFlNHk1PE5xTT1Gdk05RzA4STU5Vyt6WDNFcVd5
S0MmfC10ej9TPnB6CnorWFFnQjZ0Q0lFVSlMRm9ZQklDaGFYQDZyQng5NUdgP0E7e19WIzloX0J4
cVV2dEhuQTl5KSlAWnwtXmcyakJTQwp6JiVRQXtHVTBRKD9makY4KkdtU3pVZkAjbFZfJFRFTGZv
K2FNP2JtJF9LVVp5U1lLNCZFTEgyaXJmakkkKG9TPjEKeiYmNXZLMEc7SkVvYU5ZPGw4KS04Nncj
JmpGYUZ7Uj8weEpKTkpifH5FfC1gfElyfV43WGk9YWgpXmNYS1Q4QVlHCnpkeTVBZ2JVeVNDakYy
ND1yVkRTeFhzLW9kez5takpmcyFQWHtPQ0E2aTRaK00pamxxeUI0M2gtS1M8a2lofkRkcAp6bWNh
cTdGOWgyK29aLUhHVFAza2hnP2IheyU2e3hzRD1lXkxkP0hNVEs+T35KTD5BdXtLRUQ9am1zeDtv
KnxLSG0Kej9DY2JXJHstc1U3IVpKU1dhOTheNlV4NUVicnxvazNBQGVWQ3tnPmc+czFOKDw2ai1j
LVVHdWhJVkYpSkRTV1hVCnpkUD9iT2E/dDkpX0B0UUJCd2h9aGJCMllKKndzO0I1eyNFRXR6aWNU
JEwtaTVsSiFoLUNvSnxaYHM5b2plTmg9eAp6b0xlbzRTa1k/VDZkPjFBQnBEaEt0SHA1aCZ+UGoq
OyUmO2phJkVAc0RgWWNIVzFgOy17TVVEV3s+N1hBPWRSb0kKejIzP3Y2O1dmRzAtJC0hSGJaJGg9
Q1pufnhkK19aNHtgN2Foe0s5OWl8TWN8QzRkb3A2KWw2eGEmdFE0NkdFci1VCno4MzVIMVB4RnxM
eT88NGUxeFJuJWY9dHBQZzI7O0FBfSVWK0ZGeykzTGhJR3A2dWdNSDk/NTdCMjBHMU05Y0R5Zgp6
N0t5ODJVa3RzO0F3MmVJQytgMWt5OWhHM0UrfEFyZyR1dVg9ITA7M0VJNF4kNEI+REpVLXtCZzIm
VysmOFBLeFcKenVmNGh2bj5KTzZZPSYmd2tTWk18YVlefkgleGxIU2E5QilKZFlnPV5GS2ZpZ0NC
PnErbHN7V3FTfUt5MUFBSW1aCnpHV3J3bmNzeXZSYWw/UD9mVmNwQHFFYTAwWldSbipjVTIyO0BY
aFZBaTFRZ0NtTjRwIytFa15VVzQpMFpick1eZQp6diYkVDVpTmwwQ3krSU1WbXxRfWBTc0BIfHZ4
VSNCMkYjcktxN3pgJDhQZjFMUHIqcD95UTQjb3JBM24+VlY5M3AKenI/K1Q8V0VFVlo8I3g4ckNL
KGF1Sn1DQjJvaiZKbyEjLTBjb3t6ZF95Vi1tRE12aV5xJVJsJnM3aFhLRmhYZWFzCno4cTwwMHQ4
KzJ3Zz4taX15aGQ+NVhLc1k4UjxycXpKMEUqKyRNI2lRUjxDU2I3M0ghTldpSHZMT3FZR0x5b05L
TAp6VitQbz0xI01iaG9SQ3ZlSHZMR29Hd1NPckYpJjJDckwmMVVlQC07KzZvcGY0WiY/TGYkdXl2
bnAkUClsZyF0UUoKenZMS3AtYU9kK3YxdzchTWU0PEFUNjVpP010MTlyPHBJOG1NIT1UTzNHSmYj
PWVkejhGMzIkT2V0cnhxbXMzKWVYCnpCbTJkdVcle2V4X01Bd2l3WCg+MEB0TyNEYCg3UnFFTFlg
cTtgO1kzNUUzdygkMHYkOXk8VihlemdgNDckSCZMPAp6JE9IRjU/PTM/KkZvR3dISkwlOTNGeCVM
NVpwbmVEdkNmU2M5U0EhaWJYdVhJU3w/NHZaJlYrM25xQTBBI3IqcXsKelFQd2d+V1JZdmdsYTQ2
dWlTZlE+V2BxZkpUMG1kST13dmZvZ3V0NGI4bChiVVZvaGEzSS0hYlZnTl49OWg7eH4zCnojbSN9
Xk1BUyFRWCtTSX4zeTwlTWAlan5+clZgYXZDOH5tJEg/NDM2Knp5LV8kYX1gZVkkTjtYZyVeK0J7
bT1qTQp6ISFNdWVJTk4oNlgtckQ0V3g2c281ellhb3xIc35VZkp0Jnk9YmoyKDlWVyt9dShMVm1V
OE99NEFxank5MCElaVIKenY5UkdlSj4mVE5jPWlXUVYycUlnZmV7aTIxT2BNIzJtfWFMRGB8NU12
JThhWCZZZVNiU0prYGMtZG9reEp3MCh9CnpXX3h6S19wN2dHWFMlRGF0TG5lIW9kMkJqcFA1YChS
PEMqV201PiY+S35eNERJMS1iO0BUREpxPEg7fW0/RzYmZQp6eC09ZiZPd0liaTxaMkNPcVdKNlds
XiRUKmh2XmNFezUrV19uKmw2QUV0bmcrMjEzKzViViQ0KjV5ejtLNjsmNlUKeilIO1pJaF8qQFNU
eGZJQytFKGNDNzgzVk0xaXpycnVlZiQmMzlNWE0yPTlJR0hXS2ZZKC1TdX43SnsjU14mKSl4Cnor
bjRFVSl+cVJwazk9ZT0/N09Mb3g9dSg9VX17MzVCbjdgfExBVWoxdX5tOF8qKjk4QWt5dyh5e21Y
cTtFUVNFWAp6KlA+NDNfbnYoPV4jVkk8SzszeUt5eGdVT3g2P15KJnJSSW5hJEM0enpgazgmKEFZ
LWU4YiMtY2E8a2FqV0RaJFgKektlWk47MHJwTkB0SFg9eWNMKlg9I3gpJG9RWUEhTlRhOEgxS2to
THYtdk5yS0A7UGI1SE5AWT8hWmh4cSpGK1I3CnoqKkFrJC0rUmU9PClPTyNuQyROIzlFVHIyY0xa
TDBfaW9zXlY7JFlFcnQ3bHx1K3JpeVdJWXs8YHQmbzt8SlA/Zgp6fEp+MlVWcnFFMEdBMnV0I0wj
RDlBKHpIMnZ8QkdMX3ZMbWd1SHo+IVUtLSQtNCptVDEtdUoqZTE2YTl7bEJkZVYKejcoeGFNMmch
dT02ZnVfaCU7RmYrZFZ5dVpGamlQeXR3SF4wZyo2Y2I+Mnw2U05OIXArNzZNcipxTSlKXk4oazdU
CnphdkFqWm0lX3deJnBQSV9CeGQ9X1NLZGcwaTh1VyhVVEF+SUs2P3MrO1JHe2k8bndGbTNnRyEp
dzhGcX01YzJiIQp6Uj1nIX0kITEhSXMzJSlGPSM1SyQqdUFSfj90RCFaWX07QV90NSYre1hQOHpF
dD1GPnpTbXdNamJDZ240NzJ2PmAKejhhay1sU3BlV0VTd1glczB9PH1Gd3o+ZHpaIWQrUEFMc15B
dXMzWHF3Z3licmBeOVE5Wk5NQF96NmNtcGUzWlVSCnohMn1oaTdNTlptYDwpLWteNzxlVyREQ2sz
NmNyVVA5ZWo9RkFGemM3YnlHMGppaWcxO09qd1F4U2B9KXxxRnh4OQp6UCtgWn5MSX13VXBxVDck
NHhFT2ItVndPLV9GWWc/VDEyYiNRQH1GPTRleFJ9YWphQ3xlPzBiYHxNJkg4elZNdSkKeiRPZWhJ
R1I5WT90RkdHYDZCbHhya0d3JHBOdyVlYzVPQnpuPExQSTlAJV84Kys7d31eaWpvPT82Tktya0FN
aE5PCnopa35DYXk7M2F9dEk1OyhkdzMkMFRQYmBOWGUkUDlPZiszWXNAWSt7anZZMHlkUUJ9dnl+
Q2hKe1VBRHZYbVU5Zwp6NEhLKFkjQzAoUW50PE5DdHI5fHhEbVo+SjNLTEB5Oz99VkpHJkJzO1Fs
TTg0XzBsLXotUzYyPEVAQiotVGZBYFkKeit6PWMmK0N4OUhyTmhmOGRoX2J6cyY2citrYDtwcnsz
ZDxsYTJWZTNgYTBPWHYmQG5XRmtBYzRWI1Q+ZUs1IVJoCnpXRXxrJnN9VHFVIV8rI3VeUXZqajZm
MHc1KWc8QGRTeHhsP0FIMkk3SSh2TjMrOE4ta2wzfmxpXlNWVWR1YT1hTwp6KVU4RX5QTTEtK20h
YTRrNitIaD8yJjE3d0B7TEV4TyV3eDx5QWt+M1lvUTFtQnIoNSpPZCRhZnA0UzhjKiNyU3MKekxg
QGR3OztARTEhQUZIX0JyYT0+LXgqYHBELUU1e0tRS2xDd3IkJmJPTHU9dDU8QFVHTW0pcH4/bWhP
Z2szYWRoCnpyX1ZPbHlGRCZMV1RHKCUoKyN4OHo2TENBKHQwTD1uel5gIyk+b0JDTF85UCs1bUQ4
Nl4jMGYwYlhQKTR5MF5sbAp6bXVGYXNHVWZpI1hEcD9ebjdjaWI9SSEhTitxWldFb0heU0Q3NU1+
SyZOQXU+M1VWRkAmSng8Vm14eG9EWllXPVMKekdyWj1tUDRMaHw+KTxWS1NxKW5AUmx3bVJ6MnBX
RTsxbUNKMVd1Z25yKGc7TVJRVVp6dyEkTUgqYWpiWmJTSzwtCnpNLTd9aklZNHQ8dj5MO2ZFb1V3
SWtuOTszbDA3K3QheSRPfGs8RFBMUistejZmQWt8dFV7RFFzSzRgcUhRLV94aQp6TjJye0VCKzhJ
cXh7ODErNF9HeDVpPSp6aXIzJnNOJEFiR25tdjc3WkF+PDwqbG5vaEFfOCV2U2lJbX4+aElNJGoK
eld+bmpDezsrMEgrdiZGKU0rdjdmO3YhVzV4OEFmQ3dyKEpRaXdARGB2Qk9nZFFHWStwRmB9TUVQ
ajRTfDRAViZxCnpCaj5vdEt7a2NQVDBjMjUzT20tOUxQOVF+P0woTGtMKUhfbVNaaUFeX3lifDZV
UXRmc0NwVXxpODRQWE83OXZ3KQp6XjA/dS1VbVNWbnxOTyVmQThsO3o/I1JuPz4kZHRwYXZGNio8
MyE3SnBofnd+UV5qME0zOWQ7ckFoQk1xIy17RnAKekotYXQ8VERQYChDRFY3R1YmTz54Uj8xWCVP
OWF4R0pPd0AtZDcwRSN4I2h6UHV4PE4jWGxyVnIhang/MnkrTWE5CnpBa2M4JkxfJj4jT2t4KyZU
P3JSMTQ4dnpXZGxZezQ+bUl0I3Y5VH42WjtFbmZBOXsyTHtRY2tFMDtRIWNkSzE1TAp6czBhVDIt
JXI3P0glIzBrSD9OPktsRiNPaSVpfUpxKH4+O0AqJmw2I25pe3RpQVMxd2t7YH5WYXBKam9LK3p7
dDMKejBofkpIQmNYXiExdnVTPkhEcn1YQl9mZzVNJmtMb1g9Z2RTO2hxfDM+R1YtYFRlTVd6UGBZ
Yk5GYFQ8UiN3bTQhCnpFOEhmWlFeeGFoaVhHaVcpRm5qdVl7ODdYRVhpclphPWlAXiVUWip3PVoq
cWNTdXplckIxbVBgV00/ciV5akBoQQp6Qm8tV2loTCE7czk5SnB6aj44JFM5NFoqbTtLMTFsKnQz
T3pPRFlESjs7XzJQPT5rUFFZaFlqbStCJGteTGNnTkMKejZ3SllOMktSOFZCUzkzeigzaWpaezNr
eUMkIX5sKjlFayktWG82KS1EKFZMIXNPVUNKT15Tc0NtJU08JE4tNjltCnpDbio/LSNeZikzPHRO
fFZ5TC1iUGEmeDw9WCpYdDx2enFLNGladG9TIW5ZKGxYI0VhTTdtQHYpa3RNdi1SQTV3YQp6TDE3
LTtjSGlzYSFrSzJFb3NZekFhcTEkdTsyTk9ic1ljdXZBPjBwTl8pSFchYG9sMHg7d1M4NGhKKnJA
SDZGUEMKent4JEh4e1ZTbnsjNTVSQjM9VzBodnRQSVg3d2JvUGIlVD4wazE1VD9UdnkmYVgjcV4p
SCF1KXVSfFBsVVJCcDlmCno7UFpqc3t1WD9HenZUdkVpXmxQQDBLRWYjZGJNT25KfiYrflNkdGp1
Q28pPzZ3WVMkMHQ1cGZGOTNMUnQ1ZEZtNAp6X0V5NFA1X18kISVaRVJDV0RgOGB0cmw5eFhTI2s/
d0xndTZiYmhgQz9sTGx4ZyYwVSkoWmFkfHMwK3l9TzJDTGcKenpTcztkdytuQFpLcW5Sb1Y9YSg5
dl4jOzBlWnBHQlhiP2hKbEBacno0Mll+RG1PeERlO2BCTUwkK1E5X1E8KXJzCnoyYkdxZWBgSk8q
d1FDZEhjSDE3fXteaWtGNDBTZ0toYlApVHtuKWVyX2t8WnZ5eVM4XmFQfjA2NS1UfG8mQmBBVQp6
Izd0Z1JgdSFgfCpmQz48KkR0eHtOXnVXfl4te1hKMkU4VDQxXkt0I3ZVUjdiQ05qSHZraHdgTmIh
S2pRNU5wJH4KemdVSiZ0T2xocDdMS0Nhdkshc2Y9YVVsa1lQbWdeXjVeLU5OSEFkLWpKclNZSmxi
NCRsI0IjKTt4WSFINmZDSDspCnpWVkQ1dmxtRVAqIzE8P2BgbU9JWXorO2J9aHUqIyotOTJnX21Y
eD9AMXBfOzUjeXA3dlUtPXpPWWxHSjFsQUVpdAp6I3N6PSZoZyljQ2hlPXwqZURFTHZeZX5IaiRp
ZXlwOG9ZZDVobW8tbS1HfH5WMXQrbnJ6LWUmJm9iQjYrO2pJTWwKekpHVF9VdVVfZFZLcGRpTzZ+
MUkoQzwxMilAR214d1F4ZjYhbzZDcD1uKmg3UzlkbHN+OCVKblp0ZkNlLXNJX0FzCnpYSykhaWZp
NyRVdzs8dFkyfkAzRTNIUk1vM1B6fWR1R2VWJmFZVTBFOGx+UHFYcnV1ZXhgSV53JCRgVzRUb1A/
WQp6I1RpfmJCTjE0PWFzfk5iZ3x1aFFCM30kVTluUSQ4aj9PLTRaU0E1LTtldnZeI1BMJiZGTVJh
eHpXNWdoVXA7P0QKemFiVXIpOXdRITcwKkJRbjV9SEImWnpOfCY7e3ZKKWR9QX1FYnpMTlg2Wmwz
QFgmXkYxalNoRHRRN3JNUjFeIXM8CnpleSh7R182azlWTHNwKUM9N3NPU19VPThtKlZSPzdRRGQ+
YGI1QG9HTn43QjtuSVkxZkhgJVk0V0MqRHJQTUprTAp6bTYkWlpRZXRBV2k0Q1ktU3dYO35MZXUk
cmE2fCZNTTJoSkslNT0yb3g+YFNSVlZuPy11SzsmSjFSe1lyNEtTS28KeiN3ZU5iI1YwUHBATXoz
YihtKVlAQ0BYVjtzQSUqITQzbHlQX1d6WHAzSGlURlQpOVd6d31JU0RLO3RSfCFec21UCnpoem00
ZTcyMlk1dHZrUCojN3NkTDl3UllHeW99dCk0ayNpbjYmQyFpVWc/MiNZeDFGdkphX2VtO0lYR0pr
LXdZTAp6Kjs7WmJDZzIkemtISyNhXi07aGVAeGR6ZHh5QisxTm9aT2khNTBLPkw4IX45R1M8KmFm
c24xZFhhdDtjZ2FELXcKekFfKSUmYW56Mk5zOXB3QGleSGlXQiRrYk9oYlNFJWp8RXw5SlBKUElR
bHBHcnArbHE8OGFNJV5WPC14aEJgJTFQCnp4R2olTUNzPG1LYz1xVFpfNV89X0xWb0EqcGsjdnN5
ODY2T3dROGQoeHIpXmZmOF9ufEJOan1NTGBmJSR3Pzc8LQp6aip7fiFwdjd4eD5HYW11SH5BY2hY
ekVCOUw5JWJOTFJkPl5uamVAQnRINkw2NTBMQW9san5ePTRVUG5RZEl6RzQKejt0PEk7Rk11cjt4
Sit0M004TUA3OTJ5Jlo+Z2tfPD50RnhyNUM0JWVlUEIkXlM9czg+PzBeemIyODt1MTYyUVE4Cno1
ZT5eRldVc2YkWCR3Z2E2MlRtWk1eNWpTRXBefXs/I0FlTmZRcVNMT28laStNRXRPQlJXLWJEbjhY
ZUY1LW1lPQp6bEE5a31FRHBUZjEyNm9saHFzS2R1YlNzXmxHaUJBTyl9ai1FKTI+RShiUXhsKiZj
ZUo3Rk8ycUpSNy0qJnooSUIKelVFU1Q1VmVUaSE+KHFINFl+RzszPmJmR2g+I20ocFEmaisxeWAy
T2YwfHtCNDtuPkwkQENIekhsVHJTSDEhaShDCnolcDZ2TiNaaEw9WFY5OFRsWVNAZXJOcTVpWnRX
OD5qU3FWO2NucitXPWF8Mm85KW54emZkWncySGxFaDMqYWgpJAp6bCQ7VlFqOD4+NWNQdFdNSiRL
T253T0Z3QHRJb2l5QUVtTWE4Wj5vPjttK05xPG82RGBaeWI/P3Y2MFRmbCVKbXUKeld0RWpzVTBu
cT1EXzZwYnN1ZlVMUj5vXkJiPGRzRXdlTWd8cWlGTTFjLUh9TVBHJEVDYCMoViFvIVoxTjFGPiFp
CnpLZFRXSigzLV9tSDZDKXZ2Y3I/LW1Jd05XTFM1YmNnT1BCZ3NreW9SI0w7N0NwRjRLK3Y+IWtG
VDd0X0NGdGMqUQp6XzFySEdBQUluRVRrcE4rdUhBUnlvVUtWWUQtZT52TnpZPiRMVGFxVlY9QXk+
RmYofjxhMDA+TFJ4RUFna3N3JSUKejdeKjwremtMQFJjPERTdUhJYkYmVkIjfmJMVUQtKilzLTN5
Y30yMlhqek4ocDApZn4lSURkSHZpcCFXdyNgTnFZCnolUE57Sns3Sys1YnROIVpvTUQ+TWIqdUI/
cDQtZDhsO3YpMlpsPCteQ2l2UkE0ZFJ4QEQyM25McjRyWGtmSjB+Nwp6PX1xJXs/XzJ8JCkpJWxG
VWVsfkoyR2FHaEFoQUdYYEJ5dzVsP1g2TjBaOHpzTlNVOCsoV0xlNXtkV0FCcEctUjEKekhIc29S
Vm9Ee0F5JnlScEMrQFVmMG9DTyRTaTcybEQlSnhVUENBa0VzamclfmpaIUs7NSpVTWxGX2wpcmko
STlPCnpQVmZ1P2oxIU5iREJsSFIjNm1gK2FSUXRvQ0BDJDArUyhjZHJkbFd+RlFmbD1JMjdLLSFp
dGZaOTZIOU1CdTF1MAp6blB8eHt1KFgxWnRSZkxhZCppQlh6dnMjQ0phYD15ZyQ9eUdPRV5DNjlY
TlU3e049Jkhrc35qXmVFalVfPS05PmoKemBvO21gVyt2dFd0aT1TRSFOSHwrYXc5fWVnIzZfdnBa
bihDLTVZbTFvcEold2woNk5qWV80TClKWFNpSCEydTxoCnpBaEtKanNYJTVyXlNwYHlGWUBiTncr
Q0spc1NfZHdQTzt+RD9TV0Mpdkk7Yzw5aVp4WTswO3hRQihlcTE8S1o9Uwp6XmVNcHIxYm51eXA+
eDMrWT0wTHg2Q2haODRZRmJIZXo9eD9IPjlDRUl5I2BTcH1gNmA4YD1RY0o1PnEqI2dQdysKenRE
SnV5alVNbHIzJlhIeG1EOEdNTUoqVmZFMWVhLU11V14lYzZ4WFY0OX1VO1RNaEdJSXhrQlhtQDJT
Zj5BI3NWCnpzWD5ufDhvfisrZWhJbSFLP25ZRUFkMGwmbz47Ym9MfGtadncoelVPSV5pKUpxTUlE
WTFlM31wVU8rVDMxbWt8egp6QGBMZHV0M0pVKmMhSzYyUThlX2Z7cmgzcHR9UmVlU3dSLUlCSER6
PkVIc05mKFpaWTdOd0NYVkwjb0VSVXx0N1gKenRlcntaNlR4Smp6d3ZRalV2cU8/VFhSJFVGI0BK
RCFeNU0qUWchcWI+eG8qJDJ8VSo+bXZkZ0UjJHRpWDRscWBeCno7Y199cHBLWk1TPjw8cTdAUEda
JCErKmR1SHwhLSVOZ3g0ZHJLU2clLTQjcHtqJW5RPCRyYWEoZDJEVlg5ZjMtWQp6QE9BZ0JmdUh7
fU1xSFQ/NiRfMXB5cyY9Vkl5aWRTMH4oRHtWbXd8RSFCVyNUWEtvMlBsWWgxaTFGJj5KQnpFajMK
elF9eEZDRH5USGt2PUZ6eXphUSVCPnpWVVVjNSU3Y0Fuc3MteF9nU04zPit4I0xTcmA1dlRKYXEj
U2dhK2dgbCNgCnpYYE4ofCVicm9UNW5aY3J2VGhNSUQ8czkjP2Ete2dFckJtQyR1MXojVmh9Wmda
TEIzVTF5NG1ZYnBUcDIkRTE1OQp6JnExdU1WPGx8ZFNXTU5OOUhOdDBKYzt+T0E/SSg1X0l7fVpU
KW8yKTJxSUhSdFA/OGlNdX5lYFEmUzcmd2Q+JEwKemY0Q0YmQDR1Tj9KNmckVDRGT2N1eEpDTzVI
cUNheTRre2JTbDdyfUEob19gT0h4ZU1HbF4tMSlBODJaNz51N0U1CnpJYGlyKSRManxNTV9PQTVu
OXdhRz9AJVJLI0VLNClXNWNpfHAhSUE2UzQhOGkpOUcrTl5YKl4lXnhreystTXd5WQp6XzQqaGtI
KntXXjBja2Faa25HdD8waG89bm44XzhpZWlwMnNnfHMjb0dwMmFgZVZnRk5LT1V2N0FxTFY7Un1q
eyYKelJHX0l0Mlp2SzdIP2ZaZCo1JXhId15kbkxpQ055YjMxJW0qVkNrXnEhbSlqR0E/KF4oTlpt
blgxVFVPRlBsKkk8CnpIMCY3XlZCRShGV25HPk0wJTlrbHl7Kk9AVVA/dndjayMrTitfUyUmQ3k2
Q0tua2hsPTBVQWkpKndxa2d7ZnwyKAp6YUZDblg7Yk4/eUQxZmNPUjhPdSFDTWtyKSFYajhpT25J
cGNWX3MmbFU1WkJCRnF5Y1EkaDB9WkFLZUJVUnxiajgKejh+e0JeJllQPSVvRmZscTJlR1dvKDRy
OWI0TU9qajJJVlgyO08wOXZ6YGxMRVZBc0FxUnlCdzxrVWdIQFJXP2MyCnpGMWIoJTdDVU82PTly
Unl2YSFScypmPHBAazRYaVhAY0JwMXAxc3VGLXJqeG87SzhIeXl9Ymo/WkxNN2MxV1p4Iwp6LWg/
RUhJc3ViO3BQRjAzUillVXx3fjJCdyFJZz5KYTE5UVE0fVNUbj1mM2Z1cFplb31DTVF1fjxpPlI1
Z15efiMKejctPk9RVUpKaVRpKUU/UStHOFBXRGxNPFo3WXJNciYtVVZTRGUmTU1aLSQ+ZWNaOWwz
Kmp+U0xxWjxaPiQzWVhFCno1US1JKEwobzdIajdiJiNOanNRaTIyRk1pVXNZNWZ6PU4rWHFaWjVX
XlRGOU9YWHhLcityclM8bjtAJkpsS3ttewp6Zmtpb2NpeUJYcmFLcnpmSTVQciF3Jmo3X0VtN0J1
ZUdiI1BIPCl9V3h2QzV2VEV3N0pObD1kdSlvaWlYM1Y0TnIKeldTZzk4U2NDMHdzKTt9a3EwfVFs
YWdoTHAjUnwwZE0yUWlPZ0lsVkhzSkBsfSRWdjk7Z2RJQ3BRUll5P21SYUk5CnpWaCUzaUAyOSR0
ZDQ+Nn5ZVGNYUmI/QElgZUZnJDRma21FelU3MSkmMTZHQyFCT3VzQGtfIyFXOXxNeUA3YUJaawp6
IUMtajI7WXdRJWFxWjM+SUJAaio7TldsdmBNSE5JWVVDYWlSOVRrTEdUQkd8QnkzPlAoIWdYfk8l
dnJ9Z0Ric2oKeklncHA8UWVPUCskeVopXj1ydTNCQHhqfmYzeH1paHJsYWd9TXUwKEBpKWRJYnB9
PyZ8QF57SWt2QX1fM24zMjJuCnp4QWIlenVaJHAxPHo8QyVAOVM9WS1ASkg9bVA4ZDVzWmQ7ODFL
bVJjMXMxbUpxUjVTNF8oMyh3SXNGZTcjY3J4Xwp6UyZTJV5LJDc2MGB6cjhPMmNJdHByJSM9dGd1
JGh6N19rWkA0dzJvJjE8V0pYdjdFbjhWPU55ZUV0aG87Y25ud0gKekZhaTVeN099UHpOPyZWOUpC
O3BNKyVgVCgxfWEoWTFsOXk7cnRvJDFlNDBuayZyXmFiTndNKilEZ20zdkJ+eGxZCnpwaTFRVG4/
VGxERFRKJDZZPUk0e01UbUwoej8xSkd2NjJmYHRrOXVvUXl0bU1Ebjhkcz1QcTZiMEtzSDhaX0B3
TQp6MEI2cEojIWRyTndaZH19MiE8eUpuN1RWVWRNX000YTtDbnN2JHVee3NoJl9NOUtwVVZPZSYq
Z0I1e14jdnIzc1AKemxPMGYzbHt7V2JhSFd3T2ZgaG0mIWx5cC1LY0RhSjhFVl9NWlM4SEYqNE01
c0VPWndPei1NLTtENlh0ITBHTj9OCnpXLXYpPCEpQz9PKitFbHAtUWNvPXdxVlNkb2NHMkY5XyFY
cyEhNVYlZlRNQGIme2NUJUNJJExPb3dVJWBEUnUoIQp6JGpLRnxWSyp7V1ljaiNEQ3ZPLThLSlVs
Y3pwbihVRGlwRyEySTFtYDNsTlRJYUdAYXoqeUBHX3RfbiYkKDx2PDIKej5hSk40bitZVjRgOHVz
OTluZj1eeXMmTVBoYkNtMVRjPEhsJHRMWUR2Vkd5b1BGcHw3b2ctPHE2V0s3V3FPQ0g5Cnp6MjJN
e1lyeDdYMUBiKj81SnR+SGwqVmd4eH19Y0VAO2NiTUw1OTA7UUROcj5ZfDdrYUNCM2wlMmo2Mkt0
dDZ4awp6bEE4bzlUV3BvJF9WTCU3Z0VtQ294c0lgMEFRJWxAc3ozUzUhLXIwdlg+NGs1PlMqdWoz
NUZ2UEVZZHxWNWdfUyMKemQ3Z0wlRmxuflJfeXFea3EjfXJRdDV6PW96VVl9bzNKYllSNCtfR0A8
Qy1USGl6XjxGdnRaNVlzPTYoa1M4dSVJCnpIUVY9WC1kTVlSRSYwRlY1TXtkWlZMQCR6UHVUX3xi
ITRsLSZ5aEs8SEdPUVhqbVN0amhqIUs2M2A+RjJEWl83SAp6SXU5NG0pYFBSNDdMTH03RmdXZ21T
aUZvX0lGYCN2b3l7Zk1zIUJ3d3VkS1hPZiVtK1g3MTNWNGJPe0U+cUh3WDEKenhLUyNyNHxMe05B
WV8+WmwrQVZ3KFJOJXk+T0A2TE0/e0J2TiErITVtNTEqODwmIT5XP35iR3YqOXlzZnBrfDt1CnpQ
b1N6JGxOdWZjLUQtU3toSVBPT2hUPWsqUi0paXteIXZpRnUxPHpNVGJ5dzcmTjhUMztqfTwjNHV9
dms0NVVqMwp6T0dYemsxSzxRfG5VYU9NRzFZKCZTJiR9dERvcHFqPFFqPDMtIz5LZl5QbTNMNCtS
NExGZVp4O095cz4mZm9Vbz8KelpfWiR2dEgjR3RTZyFQQE80XiE0ZUJUKF4rfmsxTz05WFM+Vl5l
cC1rQUN7PHVQViFuaVpeVmlVQkNhOUVuQnk1CnpVQT1lZj1EUEp8clRMWDJ1Y2YwXzRVP1lNcGEo
SFlSQG19Y01oZEJzMX1YdjRzYFBEI2k4KE5HXlN9UTduX3kmUQp6MHtYaTlOYkkhPTIyYSZkSGpk
XlhiPUk/I29TQURJKEBLZDRpTVdwJXl6JDtyTjtxSTF0NzkrJU8pWEpzP0dSWTUKemY9YTRIJVpe
WDg1aEErZjNlcjU0SFB8NkpYJDhUNldsVkx8R0Z7YX1WUGN4RkBXN1ZpRi0rTTZabUM0eHJmPDV8
CnplMG5vdUpxMCVPMFg1P2JUcEZ5ZSE2SU42P0E9eGI2PWxfUWYzIS0xRV9SOE9kQnMtMzdHUGUk
cUN8X0JKWj1QJgp6RkIlNzVBT1JCcmphWWdEXyZDJTVhNDFkXllyM0psTEojRVNkcXh1Um1AZGgo
SFVwVF8kRFNfUEx0ZXRxR0ZKXjEKelFwWFl6X1piVTtQfXZXWktyaitJZDglPlhfPSQhU3E5bEhv
U2g0RGo+I0h+M2RIZVB+bj5XPCVCdE5mcXlJcFNWCnooNTJGMGRNMCktU3lobD8lPjxiMjFzRUFo
Qmd5TmNGJTkxUHA4TWdlUHlHYkUhRXhCTyZJdTxrNWkxfT8kWm1hKgp6KDV2YTNXV2t0UmxAQTEx
X3VmJVMwJk19PlRIRH1xY015OG9AI2UoWkk7P0gxQm5Dc0U3NDlaaiprflk9OGUheCgKekdMREFM
QXxANURibnlDaDcjZk1maWdHNztqYDczU2QxXzZ0KyhXWjJQcDZIVmRAPjc8dWtmfFNjPm8oJUo3
RHtVCnpMZkU7ZjIrRTJiWSRlbmZFZ3J7YU1ac3EyVkRkOypBO1p7SWB8JDEqX0t5Uktidkw4eTMz
TGRBcElGVGFwR0s/ewp6YDVsc242aWhCfnhFJGFxYUxAdT9CcldwdDMhJGE/JUo5VjQqcyR6eXhG
RUc8fEMpbTdUN25ER1BKKmV3NSM9cjsKeiY3TW49PSNWNnUzYTQ5Rl9mVmp7VzEjSnFGUD1WN1JH
NjIpczsrJDFFak1yN19xSzswX0BtTjcoVjZjLUheUSokCnooc1Z0bzxqSXlhSHRiMC15VlA2ZXg/
QEBrX3JYV3MyNDgmcVN5KSpmaFRoVCRqMSQqSDY8M2heU21uZEY2UUlSJAp6QjhxSWVoI1N9Qkt+
MUYkOVVZeDt5MlRHOyF5KkE9NUVOR3RpTHJfcWtrQmZiQzZyYnpXbTU1cTUrczZZMj9nRT0Kem5K
aHJZVzQlb0ZUfHtvU1hlZFQqTGVhV210PU4pVmNudzVLKFBMaF92PFQ7N0RYQEVVNSRxc2Fmayk7
UWBLO3MhCnpWPHhOcEIrVmphMXtGKlZGdT97VXsoRFJ5Mlo9VEUxcnkqNj1tYzFwJW9uTkJ1dUsq
bjFYSTRecHNvNHtDUkNjagp6ZFB2bWYkTEdCS2VCIT1GZTk+NGBGSG4/TkhpNzl7Z1Vqd0IrUk9W
KnklY2trSXA3P01MZXVwV1h2OEg2VSViPlkKeipmJGpIVGVJIXtfcSFDcz1+Q2lRU3x+dGVpMnd6
OEkwSEdeWmVySFBPIyZMRSgoKDQzKlFCQiNhI01XeCF8I08wCnpBTzlaZyo7KSVuRjFqRVYmP3dP
JD53Uz1qJHBsIUhUKStqcFZQJnt3WEZsfXdfUU5zYXhgbGpCaCgkKWc9YEpOLQp6Q1pBVyFpPy12
RTdgVjltQ3Q5KGIjPFZyS20/cmg1SEJMVHxGWGtQS0wzZ3RjSG0hNihlO2V5R183cG14cShUOVEK
elRlNDFjVTZsO21IK28+LSZTS2NQeHROWiFITUs8V2JnMXp9bDY+SFJQTXpuUlZSJn4yN2NnbT1T
aVgkcSlJPGlSCnp1KXpVXjAtIStTQ2o4emdzRHJaN21Tdko8KzYwUENvK2crPykxQmwlQ0RzYWAy
Vjs+YTxtVlM/IW5HZGdtMVc/dgp6Z0RrVVhBIylpZTRtOFFNWXspZGFUbjtoTT9VS3ZPTmAyJTtE
LUIxWiZAJlE7JlZle005VTU3UTRKYT1IO0AqZjkKelkkIyFFWVF2e2EoI1JtUW9kVWpPJiRQP3Fo
Q2dgcFZmZ0NQemwyPklzXkxAdmo+I0ZMMSpUQ2I9NT1ZVGNKNl5ZCnpOPz5xczZrYSghTEBaeDFT
IUlYRmBeKUsyMCl4QTVoSFlqdE9YaTllKnY7OHI8fW9KNiN1fVV8UHJ6VlRnaV9gIQp6RCY1M0FS
Tj8qYXN7bnQxI2VIcFVMQWRLUiNjPUUxYUBiOGBDVWl9eU1jM0hwR1Jxe1MpRCV0ejZ3QzshcTsq
VFAKek95bj5rVkZWRzBveWFpLUJMY05kU2p+PEEhYUJqP2Q+SUB2dnJIbGRsKkUzUExgIWwmNUdI
PlhLR2JMZz90MVAwCnp6U3plOzBaKUdNdi1HdjdpZ2hpPTRgbX5gclVQNUxSV21Ke01DVDwpcUZ6
e0I5SDJmcDRqendWP0hidSlhUnxnegp6ODAoRkwoMz0zYXFDcyYxUF4oczRBa2JDWTlGb1ZfdTFW
LWghI1k/c1pXU3ZrO0I2MXowWTc+RTZzKVVxTFZLP1EKem5wREFOUTMpei1nMWwjYzM1PDxSemA8
al47Sn0le3AjZk80eCl1VXFrcShEMmo2fHdUdnQ3ND4zdXJROEF7cE5wCnpYNn1sXlZRZUBgMGsm
Z1hLNVNmezJoR0hLP2J9clh6eCQzbCp0KVRSXkByKUtAc2YxXzcmY3AreHRUNV9wekpZWgp6aWxx
V1JhNiNib3lnPWU0dmBoeEtPaTNgSW0ybyV+Q18+OWI5MXVGM0xnSnR6JEI3RVp6XlFnWTVZb1R8
UShPek8KemZFRXt6ZjhmIU5Lej9CJWVDTyo9IWEjcDdjc3pNbzJRV0VIRSRVUU9FeH1wQCM4R2xH
JEZQcW87ZiU5SnhDQiNYCnohZ2hWRW5udUN7dEVQdjFEKWYhVSE2OWhgVHBFPDJSVnh4SCpqITRv
RjtDTVchJCYzYDdfKTVPdV5HbjN7aCVGZwp6Qk0ye3NtTSllZ21iRmU7emtWfVd2NGUycmJVIyRB
dGMyME5BeX5idGhUdW1nUnVySWJGaXNVfjZQbnFRMD0oWU8KenVKPlZeeDJ6fWxwQ3ExIXolfiNh
SG0hMlBFcWlMPG9vYHpPUlRYKHVoe2tMUHZ8PihzTis4MmA1aG0qQE9hbXhMCnooRkRQVENMOXc7
dE9WYz5BeCh+OGw0eXpvMlJTJU15aX1DT2ZRNFcoVHxLbClYclU7V1hnNzF9WEhHZ00rcUUjIwp6
PGo9SzRWJEFSTiFDVChgWm4qdWZkKkw3Y2BjTDhGeHprV2tTT25TUkNUMShSclU0dHVxaU1STENf
eE4lRig7eSUKejU/T3ExdVNWUFU7fHkjRkctQX5kWGtsWDJ5IXxTKXFFJk5oPFIpTk50KSE1K2tS
RlR5N0A9VGxHXjlWITZ9JEp8Cnp7VitEXzE2fVp1PEgoMlpvLVFhVHNpaVUzKEtDYkskfTUxO288
Uzt0R3dSaS1keHtFMzY9ZmB1PEBJWm5BeG93TAp6NDY3bk49Xzt+az85YllgI3N6en5tJS1qMDZ8
ajkla3RHTWZ6QCZqQz9JJW5KcGZyI1BYQGReWisoTG9OcFA0c3kKekd7eWtzNEg4Z0FMe0sjPnle
PDtFZk5tYkBidWN6aHJiPHFmaEBkMmQjTiNoOUlSTWFodE84NnZfRXtQcSlWK2dICnpGYVNrRyNx
Zz1tS0xJY05eb1F7RUNtdkAteip6I1k8cE00JWk1Q2lucHNLMUdGWGpaKHxISFpQaE5WITgpKHBp
Zgp6YndnbntBWmlWMjI/e3NfblpfKyE2eTMrNTNXTVd1YXdCTXY9VGYxeGg9OERrU2hhaSFKWnts
eXVjVG4odz9qPFQKejs5Yyl8Nk8yRmNFVituYnZjRD1BND5fUUAtQjE0U2ZUKnQlQj0taHRhV0g0
b0h4d2hfI2lYb0VKYD5BPDYxPT5MCnpYfGBMWFBGUWx9Nmt6aygwdW4yZyEhNWZpVmRMNkRUQipU
QzlfZ0hYMDJfVGpQMEJ0c1R8Q0tCKjxaK0ZDYWBxdQp6cWFALSo7dm88Z2hgVDNKalNDN1VTKXJE
eGZQelpxVUB9PWY0a1RWcEEmOTlHM25fck4+T1NYM0BzVzJBb0JMN0sKekNeQCR0X312ZUY3fHh0
SDNkYXQ9NDI0QXtTcGwlNnM/Zk4pZ1FTQjA1cWRIMnhhJUpIKTQlKjFUKEtTfW1nJiNaCnp2Kitu
QCM3RyFXdEh2fUY9O1RSTCshTWl1WlkwKmY7ZEZhXiMhMil9UyUqU20pZXZhcUJAJFZnQzFPUUg/
aU1qfQp6MWJjIVdgfFFfWEJJSmg3QXNJVVFhVlU1ZkImNC0wQ2MpSTUmWlA+OF92ZHMybTQ0UTJg
Z3sydjhNYlVGZzF5QCsKejtXYWxeTHRTO2dXcXRKJndPTTFiOWlPUWxXfTA2biFOaFcxU2R8ZVdt
TUlYeV8oX0IpNHIkT0d3NjYta3ItSEdRCnpnOEs0fnEtQ1B5Z0poS19yQjxnV3ViWXR1WmhKcE1D
VTYtVSVGQCFUOElvTmEkPH1URUM0eEs+M2MpWCp8MW11SQp6I21ER3B5SWslQ2psPEA7dWREfGJv
K1J2Q3VCfX1PQU5iJmg7SH5kPzdwPkRIO1A/ZGopNWtNazA1aGdCYyhSbjIKek07VEA9JW1rWmVm
c0YhOVZ8OSV2VmozZWM4Kjk9X2ZYOFZOdDBxRWFzWjZhPG8/RW9+aHlMWkN6NjdkSjJtPSFpCno9
byltOG1FSilJPUx6d0NGeXdOcFJMYlIwTDI+NTZ3aGc1dVd+d0hac1MwWVZAK2Bvb0ZBbWU4WGZg
X0tzc0ZkPgp6SWJ6UWphWjRqQTBUWGZhZj5CaHpCQylIRVIpe2ZyM2BgNzI0JEx6bHBoVFc7NT53
ZzFeIUFUKmlGYWVsd1pYYG8KeiRHMHhxbDtGYWxWT1k+T29jPDw+OTU7P1Bgc29qemgzfGFoRTcw
RyF1dGRqbzF1cHpEMGx5I2k/N0pFTTx2JCpTCnooJFhAaj1mQHZ0d0h9fCNObEFJOytUYmp7Vmxm
UWY8T3YkamFBSEpfUS1EUWQ+fVVNRmhxIUtxMXVfU2tMX2l2Ygp6JndifDBBU2xIVTZVdzJmVFkl
eHdGaTZIMjZxVkolX0FNMX5gQFIqaFpgVnAjUUohekE1R0M3NGpJPDEhay0zZ14KekUqRi0/T3Yk
fmxEaFF5b0k5akZ7ZzJ9Km1IMz1raV5KRnRfbDMyV2lqR29BP1EpPCY8c3g9aFMxWHhyMTxyVy1W
CnpaRGhOZFl+SEU5ZV9sUmBkcTsqQyhRKkNeNmNqOEIoUSNkWGl8UWpwcXg5end8TElAQTh7WWdk
UnNPLSY2eC10dQp6JG9CTnF7S3hicyQqX1Rwe2o5UyZRZyZpUUdhMU1QclRmez5ZfihCNlhnSDNo
Rnk4QEB6eVNSMGRydmBMSz8hV3cKendpanh1RGA0WT44bUs3cWFLTGh6Pkl+cDlqNztUTjhIJFJo
OWNOPSZDVDJIS0EwIWUzJUgkIVNBfVk1YDYxUGtXCnpXQWhaVjNQUDRDbjI+fUolJFB8P3QrR2Yz
KTZ8RXc3fm8zVjx5b0BiMGojb1RzdFhLPyVTOUlBQVNGN1VlRWMhYAp6eXs8TU53KFA7aHRkJFM7
LUZ6R1QkdyZWaEhnRE5STDRfX2ArUz5DYnZpKkU2cC04M3xPZFlFa21YeCY0ZnU/YioKelcmKTdq
YmErRD1COGRVOWZsK34yZ3QpQm5GZT1mTEk4NmhXcUVpVnFPbEZIaChuPkwwPmxzJCpEY25MTUg2
TGQkCnphN1VnYTU7YlZkZ2FreFg2KTZGTWd+N30hQGxFQ2cjSDZeMT1oWn5Qbyg7M3IxX35NQ0JW
IXRIV21xN0wxcTBWWAp6dmZVM2VIOEZCRyhMPnpDcFBgJWgldX4/YSotb3c2ZTYzaXZSPmpaeTtQ
SEZrfEtPVl9YO0VITE4jZD4wUk0tZzIKejkjdTJQQ3JMMyU4YCFZQjYrdEc7KVA8eUEoQGJ8VkRk
dndCUHZqJFZQPWgwM3hRWFF6WTIxYmNpM203S05HRiFVCnpmUDZSQkJNUCl+IXNRZmIoJH4hRFEx
Wm5QWSZXTVooSkxtcShVNVFxTXVGRGxWUyphTGdxOGAlcUBxSFJDeShXdQp6PnxueHBOZks+VTVN
b2xGTEolZzt4PzIybj5gYjNCPD07YXZvOTx3Tj1FRVQxXlRDX25Ab3U+Rl9CLU02fE5KREoKekph
I3htPmg2WU0zLUpzNHljMk44LVNAKE9LSz13bUJONkl+IVBGLUtyeCFGe1AyejAyUm5QOT83LXFB
am9AfjNmCnpUT1EwZXB+U00mPD19WldsfEVCfkIraXJDKWBud3M1K0xKJUlTQnk9UH5aX007OU0/
fENibEloSi09cDlBbUo3YQp6M3BEMngqQ1lsZWhteTJUQ1ppe2JtWVhNWD5tLU90QVBLeEJOM2Qm
XnFANWZpZ0Q8elJtTWlUJSZ6Pj4tN1RGJHwKej4lRTFHal5jRXxNP2RvV2FReUpnUCpnbTN4XztT
TkU9SUZRc2hqZlBMdk12WXspQGtZMm11elpJeHpqMGtNWWVwCnpTSjJGNVpNQ3l1aEc+R3pKVDhl
ZGtSclhvKFdscGxFMnVhWHVxMmFkaioyST82RDtRej1QP31TdClnVExqPEc1ZQp6MWUrfURHfmIy
UXt3Uj9oM15TVE1vXmE0OW1vI1NiJFdZKWdzfn5MRTxFRTx6SHA/V35UMGcrZj5LVzc4aUh2ak0K
ejd1dVo3Wj1iPlcrKyVERUYyTFZee0ZDdEN8TWg3JmRndmZpaGV9X2A3VnNmb1ZgTVIhZVB0Y0l8
QiotR0VwTEEoCnoxY0whYWZ6UTBFVkN5WGtwSTU7bSpPVkVWVmh8ZigxdWhhd1oqYnlyNSZMMTBC
WmlIWSlPai00ak51WlRGa3V4WAp6K19JNk1WKzQkYDBGJER8ZUpYQWxAKk9QaWdrVGJGRjtoeE9R
Q2I7TSU1ZiVKbE5hKnghOEl1Nzg9bWhRKFc1OVMKekVybjExKk1Hd2d6V29qT3tEMXJfWHlue0U3
cGRefm50PTx5T3dqTCNVMz5QeUtZeUNoP0MySSs3R3Zmdzh7PV9UCnopdU9uRHZ3WDlfciNWdlhD
IyhgTk9QRyohOzR6ej5DfUdxO2l7Q1dlT21IVmJoaG15az56I0taKTMkZmhEdjY/JQp6WXFHfm9s
bCFYe19gNUVtQHRWaU9lPkdrYkVAcG44N3ZBemE/fTUkUmM5SjtrLXs4WDhRO1NsVXhYQEVoWDcj
e2YKejQwdSFoQHReK3tlQntxUjNWQ18/IzVEezkleHhhNno8dXdrI1FARlJVU0xwcTglS3NGc2N8
Nz9Hamx+fE1UMSF+CnpndXN6eXYqPWE5Uy0kakhRSm1tKHh+UGtaQHEmWjlmWWZxe1g2fWhzTSoj
MmE2QCtWRV85TSpqe3s/djlmYXZwQQp6eUF1cE0mfHx2Z0hGdl87JE8hYXd3KH4pUzs9KS1qakJs
M20jTioxYmQqNGtZdyl6e2B2fUclJCo8KSZLSzk+UkMKejxYdjNRJTxpcXp3WlcjbFkzNjdndDhp
QnxPc2RlQGs4SjMrPWA0XzFTUE4tbW1GI042JWhWaUFpdWF+PkglQXhoCnpiRnVLWnhWVko2aVFv
VkIqV25BcU9+aSQzcTE7Nkk/dEFaQmtgc3UqZVNTZCFKbitVaCE8dSNMaTVwbEJrd31RMQp6U1hf
PGdZK1ZGXzcoWHFuWXg8JnJXKVZZODNtcWFhcS05I0EkcXsqfT8zd2BmMFg4WFFNMyhxIWF7PXND
OTxxTlMKekZORW5QS0t3aUhnKVE1NlFHaGpGeGtMZVcpITxzWWUlO2M9UyFtRENvYDYjKTQkcD1T
JTxSV1hPbSlmU19QXyZnCnpjKntnI1E0eCgqbUpCcTs5OEszT1okIWFIbX1FT1J1R05DWCpQaGA4
em9nZys1UkptX3kqSS1MOXtuKFU+QFdYPgp6aEF2M21VKEpiLTh5aGFjYShaQlZmJmp4LWdOPldG
MkM8U09tSWtpSGhfI0h4QjFZelE/K2E7cUFMKHdEdW1vTVgKemI0JnMrM31DVlRaUERUd0A1RElW
dml+bDRAXyY4PVUtJTNvSWBSdCY9Ti1xJip6QzV2eih3O3EwKihuSiFUZ0FeCnpoQGhFMGJkMUhs
Rl8hP0sqPWZFZTltNjxHUzV2cUU0PW1XO3ltYmVCPlReJVBGTWokMWAwQUhGTV90R0hFTGg4YAp6
U3Uma34hWk82RVRyeSs5MFdyOzZqcjhuJl9XNCFXN0BFIUZzRGhseFRHUiY/ezktfUNkdz1na3V5
ZkIlQFlDO3EKejJPXlIxb0dxQX4rTFZ7JnM3aWkyPnxFNHtfM3t9UiU1cys0SDhlI3VtcGRBK050
TVJqOT1ecU4zKy07VCokdUlFCnpgJWMqTFo9WnFyQm8kPD1oRkM1U0p+cT1GWm01JUU1Nng8SChw
OV5MKk5MZkVnayFxdUR2aH12Nk19MD1aJio0Kgp6RTtjYDdEUUJiSitZSWc/KD1ycmpJWk09LTIz
dCMxNmFgQnJfP20/fHNVPzEzck5PZHN3TTFCNjQrfihUQ148WFoKelRQSExvTCVWPU47bH1pdlZR
IVFFdjtAQCYlUFN+ZWAxM0hub1gqMj8wKyhHZFJGb3ZpSVdqV1RJVyN6TWFDUy1QCnpgR2R4b3s/
QnMpdm1qKDQwRUh8QnElYjkra3B0SWExQzV3MkYmMiUpVXdQP1FwTnF3IVVPSH4pOGlNOVYyZ2g4
Rwp6WCtEUWMwNUBWMm5hY1dZSWV8K15IJGVgRTteXnQ+WGdoWko8dEooRCNackp+RiVUIyRuT244
STBuNWNlYkN6ckkKelR0am90N2FjKUZARmtyKWJOclZiMVlAJElFQ0M9Ni18OytYRVdqR2N3KkN6
Tm1PNzsmcSlTdiFUSUk2PTlTaU9RCnpGUlBlS29eI1Jjd0ZRPTcwfmVqTUVDXnl1KThnVG1mQlY5
ZD98azB9SEBWJDtXeXR+REZiZilmVkhgaSpTYmtMKwp6JWl8YlJLNFd3X2ZsSVVvSXhtQ0cxe1Zg
dG4xRzFMdkxpTSFHU3FWWCRTY25YeW1ONlRPSm1xKURCbUR7bGB3PCMKelRMdUFSVXxDciVRQ3dE
QHA9ckhMYUE4NmJHeG16MklGKllSUFhCdUtuKU5xdCp1M0BiYyZmKFghaEU8Zl8zc3hZCnpVNmB4
Vk5QaTZGK2BgNFlfKH1Da29yNFFraG1lMyU1RFleKV56d15PU0ZFVnNRY3pHKHNtLSFsLW5pPTQ8
dGJRPQp6OD5DOE9pSC0/WiVqan50U0NeR3IkWG4mQDYxRGNaJHwyJCZNI3NpUlQ4fHhpPjEodzBG
cjdKXlZ3KUdrYWpsNUAKejwmJT9JPSpSZjcxNlI3JSEqYlp0U1ZPeWU3JEVNVStIbT44T08wM1Jl
flVVNDhCNXNiMzdYa31HKl9qdVh5K2xnCnorYHpUbVZ5O1opI3FKKTQzSFRKVU55aVNxXm97RDsr
SEhrfUNBQkQ5d3M+eWdfMzVjKU0rbEh8WlQhcDVheEhVVQp6ck1yaHt5K1Y+S040KHpndUF7SE1e
ZmdeSzVeUXFnVDswT0NKP1FXVFU3UGh5bFhkUm1IOGBkQFN+bmskeUs+LUsKekxWJV5haGdkbHNh
NSQ3JGJLflYjOG4wYVZeK0ktQUZCK3wldEowWTE1bjY1cmV6fTd5bFk2TGdfYkAxa1YpKkZjCnpt
ITI2TzkmRGU5NmBlNjdXQF5TfmFTYEhtVVpwWHkrLV4kd0lzdWxEMkN4YCk0PCQobl88ZW9INGoq
ez5wfGAmNAp6PEskSjJOJlJjYSFyd345Njc2a2Y5Z0w7O01vU1loaWpvdmAkY2BNaXUzYExUbHx9
TFIlaShtbzlCbk8pTT1xV18KentqK15IQEJiWmowZ31yRyVvZDs3U0s+NHxOeFQjUXkqZERrcTZg
eWJCZzF7WVR+eEZhbVB2IX1eI1pPOz94RCF6CnpGTlpBMl42MytZemYtJCUpejAkRHMhZGNnYVRj
Si1pYnQrVzEyQVVwPn1WYlAoUmFUQWlxaT9wTWZYTCUmVlhmPgp6TWhURWlGM1pIRlAoczFMO0Vg
N2tKb1Y8Y3p4VXJyRnJ2Jl8tZTVNYnZzN3x+dE49JGcwYH1eVCR2YD4xZlhuNHgKelJeU3JoYGcr
KmlMKFMkTTJGWFE8YiQ3TyV4X0l2N2s4IVJRVHdWRmJCclpjWTM2RT5SVHgxMSN2YmRNayhEamsq
CnpgU3YlYVRSMnR4aDM9dDN5aEhpKUB4JE0oczs9OG5VOSltV0pRMUlDclJFQ3tJeSlJeFJGdkJg
NDlJUjMhe3VjIwp6QGpkYWw4VX0wN3hnbHRwbWk0RHB5cEZHPjRyJVA2RDJreklFSFpOQiZ+S2tv
PEZTYTRMRCooaVdAXzIkMGJFPF8KekhtYGwpUjdoMllFMEBrc2tsNUx9WEF4ajIhe01gVnlJI1JI
ckYpM1U8XkpCVGJMVVBVe35xZWombGZiNDZVY0tNCnozNDVhbSloc31qMkpyfUAoTVV3YzBpT0lO
ZzI2cTdZfkpNU2M7UVRVNGBiWDc0aVpxdz1UMEJ7VmVRSip5SzN2IQp6PmBUTnw+I2BiSVdQKWE3
P1VzVjV4Vyt5JHQxbVNDI0RYUjBRME9FaDRCQTJyO0s7PlhTTTQ2QXZXS0dSQVUtQDYKel9rUWlv
Wi0zdD1ocl5NNyllS2FZJlA4M0NpNj9YWFZzcllRMCRQRUhWTm0mM2lGK2IrNCtMQ1U5bk9sXklr
MWNqCnpAbUd8KWh0WXhscDhDQCM0KiQ9ejZXd1BTWnlBZXZWQH4mMVZGfXp6O1ZTPD1qfmkxSVg/
X2JPJXJ6fUJnMDNNNAp6U0JAPnJRaD1Hc1d0am9ZO2l4fTxeMH5USVl4a3tNdjtOa15FT3FtenQ8
YWNyI3grLV5WSUJubmlnQGdGczZgfGEKejh0TCF0dUo3JlhlNmhMbEB9WGNiNVJxamAoRG1oYHpr
Vlp0JWtDYjYmM1p8S0FVWlRIRSoqWEtIJjBjcHNOU3FOCnpUfUFwbHtDSSV7LUhWc3AldG5wKWcq
WWJTdlAjJXRFKXpme0d6aj02MkQmPWl1QW1lcCswT1pWNllaKVJeST9hJQp6RVh4PmtYKn5Iekti
aWNfJGJsPDZ0ZTIzJUp3I34kV3BzNDc+Q31scyYpanYtPjtMeThjKzdJNFdifHdIZkA3fTcKenZ7
OzlYRihBNihTUjtzQCFvPFdGIUJPal93JHtlZWVMWT54ZSh5dmRVSz5mNFYmcFlabSY8S3dSUHR4
dHpPTmooCnp2SX02RT9mJHs8Pz9DMD0lalp4M2R9WnpHSj9sMVh4alA8TFhTSzZ5aWxaI0ZXPmJ3
NUxKKGxmazNnKGNFRWR4Uwp6MmxgdEhxQXM7R1R8UEI1SU01T0JkeHdiXjVodExGRF45MW1AV3BK
O2N0SH5VK0VMNDhmOzAhTj47c3VlJnJ8bDAKekRvMnMkPDN8cER5YHJqU281enpeZXppMzNvTjRz
eT8xNFpzZCs0SWtYc29aSnRHVG5JXiZHS0s3ZTxCIytlNHc/CnoxY3xaWWt8LXNkUEZMSXBCNkV2
RnZIQDFKY14lWXA1bnlIZz42QzlrVjQzJjFUeys0aiQrQn5OZTVDYyVAbUlmbwp6Jis4dWdZbUJk
RmpmUWotLUpsTzdCcVlmfVVGMnttPG0+MmJZM151aUtHV0xWYUIqVU10UzFyPGAhSUdBQj8+NEwK
ekxAfENIT2ZaPzdvKDN2PXJoWndoUSNZI1IwIVUzUk9RdzYrYzxLQyR3WnVLI3Z+QX1EQHQ4V3pQ
SztVb1ppYVkxCnojZnsxZT5vJTh6O0RpS09tX1hNTzVEV3hISjNIR095NHFWJHgzQE4zb3xxVyNS
bj1JUyNJP2xiNkI5MUNJfmAxXwp6NE5UZTtVYGo4NCQrM21ZJXNyJkZodiomKHE5QzAtX1IyUmBS
TSttekZEUl9LKT5ReW1RS2daQWtpYWItUGtfKG8Kej9keG9CeHpmX3FhSDZOSHF1S0JHNHY9I2Vs
X2hHUzt4NS1ESyplVk9sJTU3Nlc0VV9PQChtMkVPenZTJmw0UWxfCno4fUIlQV54JWBQZCtAQ3ZW
PGs3VTlJQVlzUiV4TEF6OWg7Wk4rUkc0P1YtVmUqM09RJCVXY2gjcn43KWxUTTN8cwp6JHVZLT4x
eHR8ZzdibGkjQ1AzK0ZuPXUyUm1Td25scWd5ViFkdVlsZldBJW9rdCk9MFd4PmY2TCtPbG9XbzJG
dDkKej9OXipodExibnAzakVUT3p6ZFV0NSYtKyZASHJOVnNEdTR8dD9nfmk3dXM1eSZpRDhDd3hK
NzFWeXB5Wl8hT3NVCnp7V0FlZG81dG12WmZSUWZ7TGhVSHVCcUleRm0oP0ZROWdDeig2PzRwKlg9
QVVEcEBzP3U7fHM5cXdKe0NLbnNObwp6OX4heDZCcG1LJloqQT1BWWBAcmU8PGdtbkB6TCYzRENr
OG41JGx3MnhsJE91c1F7JTw1a3A7OUFqKk1qY0o4NmQKeiRxa3QrTkE7WElgcUVlTGQmQXJRNWRw
XylNYHRwR3Umaz1uRmAwYGNNK1VMRiFCRHs0LVBQSUgtcjlWc3QtMHkpCnoqd3sjU0VFKX14emJE
QStGbileTHRXeWs5c3EofVc/dylaeSM3e1lKVUE9b35AQk5ZJE1SQWJEYCV1bExiSTxTRQp6Ykwl
QHx2RGw8T0VIamliV0Bfb21sM05QaEpYKnNpSjBQQSZmWnlqRz9DJEpuWUhldmUoYm40Qj08YG5X
bGVqNyoKeilBJmc7OE5SNn5eVnUrYipHMnI0MUp9YTNoY1lLUDxhNEt3ZXomUy0pJFgjZ2l1SCpe
QjcyVF9tVml4Vl9+SX09CnpLR3NjdVI4SzZfeGxYY3IxT29tK1AxOW1EMlNxS0VPSEZoNjYxTHx8
YEtPcn16OGtWbkl8cmBSbzU1Yms3QiRfJgp6YTRedCs7PmImMWRIdEstYDdoKX5iPFVUMFRUMF8p
bUs+cW03bUchO2ZxfWwzajwoaC1PJTBiJTRmT1lRQWozeloKekVId2tlcl40aWZ1SDhaemEyKyN6
SWRDbHZ6PkA1dDsjN0xOK0Q9YCRjOytYJlpgJUp9UmdJPGVRQjk+Nnp0bzxmCnpBWWN5XlcpMXwx
TD9kYyVjVU16O1RnJTFmPTd6SV8xTnxOMFV+bjg2S0ZtTXlsQjFhYkg0YENtITtsaj5hNGxeNwp6
SEF4IWEhcjVjcnVkMSF2USZDeTlCQHNfZGRncHZ2UE9pMn1nRWJYOEtzUiY8ZytoViR3JnRlUj1C
NmBFamFNIz0KemtCIzwqIXl6dkBiYDRvUnIpeUZUcFdXVGRGPz4wMkV5KkxKRyhhUjA5eSkmTHoh
UHRIJWV5fkMrJTAhSGR4JVliCnppKyRlLXd2cj52c3xFZjN2NXhsRUU1dCZiWD0hZXtKVFg0ajg7
ZUZtdmNyKTtFOUd7MylGfVheckNCSGdhdHZQJQp6VC1VJW9yMGspP3AodW0+LVJKN2hwWnZqMXg4
QylMbk90NlFXd28/aFN3eDE5NSl2e2IpSHdMTy1vRG4+clltaSYKeiY4T1BpK00yeE1XQm15JUli
c1o3K3tXPFBiNUtgUGErQ3ZCNHFTYG85JE0wRDVeKWRmJiE3NVgmQzFvZ1M1KCpTCnp3eGpfVDct
NVh6bFIza3UhcURKZzgqJXhyRyZNRyE+Z25vaUt8O2JYNDlmNSFETTY1Ki1tKT1Xe0ZFYWthXlQ4
Sgp6X2ZTI1E9LTcjKTJjTFRJUDREe21xO2l4b0wpMHtMbD9LTE5uMTh9dnM3TkZkOX58Zio7Wnd1
Oyl8U1RleSopaWAKemZxOypmOUxlXlFxZkNJQnVILTAzTmFWbmtiPyVgIzc4WUFtbCVhdiVpfW1N
RWVDTCteX2sxYGJrdWwzQyNxNUU/Cno3bjdKUyt9WVhRKVl7eTlxMlk0PCswb0lGbz1gQTJqPiVs
S1BRMWNBbGdwPlVeYjg7NUVLJnwhJWYmcW1BYldWRgp6e19KenJ3WDY1bSlVQ05paV5YUVhZYm9I
Ky1ENiQ0MitCfD48bkxfMWE7M0drYER8MDttNVhEZUJmU0o8ZXU3fCkKekNVakdLcHIpZUNqWDdH
VisjPzZCdGFBPyZVPjZvdVJxXj1ZMTVaNWtAY1RCJnZRamkle0tQMThuZXsrPHkrYSl4CnpaSD5n
YEo0dmltZ1YjSUp1Zn00P0BNK2xrWmUjY3wwVikkXjR2PUhgYV5TaVMrKFV+IU1FWT1JWV4zNCoq
PClZNwp6Yl5wQnxXdTtNdWpnVmpycEJoKU88Znh+bXNpRDVEd2RGaWc9N0U1SkQzUEVnTXshI1hV
d1Z+ITA7VnNEJUBHbmcKemE5dWE8cTFsI2Zqd1FtV005XzVrKz5maGtSYDBIP3l5OyNDP1NUP2Vs
dG1qSDckQW5KQCQhYGBtcm5OZV5tTmp1CnpMaEBkTU4rY3l6VVVIPHVeZCgwfDRwMkY4LTYkWmxF
QkFeNUAjQ35hSmFQS2khT3Z+cHZ8JnxHSm1rTjh4JkNaKAp6Vzg7UFh6VFdPWUFtRjdjTV5aK1dx
Zz1fK2JeSCg+ZEV9QVlTKHdCNTs/RUxhbjREeURrdUFeQWIlIVN9emFsfF4Kej1KV1g/I0RaYmJ1
WXVUdSUjdllxRExLamskUDlrNTw2RzBSVjdOcmlheEYjdE1IPy1OMXloMi0wM0M0ZEBwd2YzCnpg
JFVGcXN0V1RRQSN1SUFnQCUjNGUpOXlHbWlCWDgjUXFOQUQpTXRgS3gqJlBCbnhHfWo+fEd6ZlVe
QlJfc0dSdQp6SHh7c25ZYSghRCpueUxQJHM/SHpuNHQkc1VgV2FWRGhJQ0khdnFCbVVMenAweUtA
PzMqNHNecXA5cUxCNHg/MGsKejRwMkY4PHNNVThGYnVBIzZ8PWQ1REd2ZjlnRmt9X3NAJnRvYz5J
Mz4xXn45Vzlwc0hTQ0NDNSgwMDJvdlBESExrCkZWMWZjYSVPQyYlCgpsaXRlcmFsIDAKSGNtVj9k
MDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAppbmRleCBhZWY0NTY2NzhlZTg0YWY3OGE5ZGFk
MzA3ZDIwNzM2ZjExMzNmZGJmLi5mMTZlNTJiM2I3YjdmNTA1OTFjZWQzYjEzMTRhOGI4ZGRhZDY0
YWI0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKQEAgLTI3Miw2ICsyNzIsNyBAQCBmYXN0L2V2
ZW50cy9kcmFnLWltYWdlLWZpbGVuYW1lLmh0bWwKIAogIyAtLS0tLS0tIG1pc3NpbmcgZHJhZy1h
bmQtZHJvcCBzdXBwb3J0CiAjIFNlZSBidWcgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTMxMzMyCitmYXN0L2RyYWctYW5kLWRyb3AKIGZhc3QvZXZlbnRzL2RyYWctcGFy
ZW50LW5vZGUuaHRtbAogZmFzdC9ldmVudHMvZHJhZy1hbmQtZHJvcC5odG1sCiBmYXN0L2V2ZW50
cy9kcmFnLWFuZC1kcm9wLWRhdGFUcmFuc2Zlci10eXBlcy1ub2NyYXNoLmh0bWwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCAwMDZkZGYxZTE3MTQ1OGY4MGRhZWZmN2Y0ZTM3NDliNzE5NGEzOGIzLi5iY2U0NTA0NzM4
ODY4MjIzYTQwNGU0ZWEwYTE4Y2FmZjcyZDdkZjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNjEg
QEAKIDIwMTEtMDgtMDggIEJlbmphbWluIFBvdWxhaW4gIDxiZW5qYW1pbkB3ZWJraXQub3JnPgog
CisgICAgICAgIFVuaWZ5IHRoZSB3YXkgd2UgZ2VuZXJhdGUgSFRNTCBmb3IgYW4gaW1hZ2UgaW4g
dGhlIENsaXBib2FyZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NTgwNDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBVbmlmeSB0aGUgd2F5IHdlIGdlbmVyYXRlIHRoZSBtYXJrdXAgd2hlbiBkcmFnZ2luZyBh
bmQgaW1hZ2UgZnJvbSB0aGUgcGFnZS4KKworICAgICAgICBQcmV2aW91c2x5LCB0aGUgY29kZSB3
YXMgdXNpbmcgdGhlIGltYWdlVG9NYXJrdXAoKSBzcGVjaWFsIGZ1bmN0aW9uIHRoYXQgd2FzCisg
ICAgICAgIHNwcmVhZCBmcm9tIHRoZSBDaHJvbWl1bSBwb3J0LgorICAgICAgICBUaGF0IGZ1bmN0
aW9uIGlnbm9yZXMgbG90cyBvZiBzcGVjaWFsIGNhc2VzIHNvIHRoaXMgcGF0Y2ggcmVwbGFjZSBp
dCBieSB0aGUKKyAgICAgICAgbW9yZSBnZW5lcmljIE1hcmt1cEFjY3VtdWxhdG9yICh3aGljaCBp
cyBhbHNvIHVzZWQgYnkgdGhlIG90aGVyIHBhc3RlYm9hcmQKKyAgICAgICAgYWN0aW9ucykuCisK
KworICAgICAgICBUaGUgTWFya3VwQWNjdW11bGF0b3Igd2FzIG1vZGlmaWVkIGJlY2F1c2UgZm9s
bG93aW5nIHI2MTE3OCwgdGhlIGxvY2FsIGZpbGVwYXRoCisgICAgICAgIGFyZSB0cmVhdGVkIGRp
ZmZlcmVudGx5ICh0aGUgbmV3IGVudW0gQWJzb2x1dGVOb25Mb2NhbFVSTHMgbWFrZSB0aGlzIGJl
aGF2aW9yCisgICAgICAgIGV4cGxpY2l0KS4KKworICAgICAgICBUZXN0czogZmFzdC9kcmFnLWFu
ZC1kcm9wL2RyYWctYW5kLWRyb3AtaW1hZ2UtY29udGVudGVkaXRhYmxlLmh0bWwKKyAgICAgICAg
ICAgICAgIGZhc3QvZHJhZy1hbmQtZHJvcC9kcmFnLWFuZC1kcm9wLWlucHV0aW1hZ2UtY29udGVu
dGVkaXRhYmxlLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZHJhZy1hbmQtZHJvcC9kcmFnLWFu
ZC1kcm9wLW9iamVjdGltYWdlLWNvbnRlbnRlZGl0YWJsZS5odG1sCisKKyAgICAgICAgKiBlZGl0
aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1hcmt1cEFjY3Vt
dWxhdG9yOjpNYXJrdXBBY2N1bXVsYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpNYXJrdXBBY2N1
bXVsYXRvcjo6YXBwZW5kQXR0cmlidXRlKToKKyAgICAgICAgKiBlZGl0aW5nL01hcmt1cEFjY3Vt
dWxhdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpNYXJrdXBBY2N1bXVsYXRvcjo6c2hvdWxkUmVz
b2x2ZVVSTHMpOgorICAgICAgICAoV2ViQ29yZTo6TWFya3VwQWNjdW11bGF0b3I6OnNob3VsZFJl
c29sdmVOb25Mb2NhbFVSTHMpOgorICAgICAgICAqIGVkaXRpbmcvbWFya3VwLmNwcDoKKyAgICAg
ICAgKiBlZGl0aW5nL21hcmt1cC5oOgorICAgICAgICAqIHBhZ2UvUGFnZVNlcmlhbGl6ZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yOjpTZXJpYWxp
emVyTWFya3VwQWNjdW11bGF0b3IpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL0NsaXBi
b2FyZENocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNsaXBib2FyZENocm9taXVtOjpk
ZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q2xpcGJvYXJkQ2hy
b21pdW06OndyaXRlUmFuZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1Bhc3RlYm9h
cmRDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjp3cml0ZVNlbGVj
dGlvbik6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL0NsaXBib2FyZEd0ay5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDbGlwYm9hcmRHdGs6OndyaXRlUmFuZ2UpOgorICAgICAgICAqIHBsYXRmb3Jt
L2d0ay9EYXRhT2JqZWN0R3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFPYmplY3RHdGs6
Om1hcmt1cCk6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRHdGsuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6d3JpdGVTZWxlY3Rpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6UGFzdGVib2FyZDo6d3JpdGVJbWFnZSk6CisgICAgICAgICogcGxhdGZvcm0vaGFpa3Uv
UGFzdGVib2FyZEhhaWt1LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OndyaXRl
U2VsZWN0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9DbGlwYm9hcmRRdC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDbGlwYm9hcmRRdDo6ZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNsaXBib2FyZFF0Ojp3cml0ZVJhbmdlKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9xdC9QYXN0ZWJvYXJkUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6
d3JpdGVTZWxlY3Rpb24pOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9DbGlwYm9hcmRXaW4uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q2xpcGJvYXJkV2luOjpkZWNsYXJlQW5kV3JpdGVEcmFnSW1h
Z2UpOgorCisyMDExLTA4LTA4ICBCZW5qYW1pbiBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9y
Zz4KKwogICAgICAgICBCdWlsZCBmaXggYWZ0ZXIgcjkyNTg5LCBkZWZhdWx0U2l6ZSBpcyBub3Qg
dXNlZC4KICAgICAgICAgCiAgICAgICAgIFJldmlld2VkIGJ5IEFuZHJlYXMgS2xpbmcuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwCmluZGV4IGJhYTc5OWI1
ZGRkNGEwOGJjYTkyNzIyNTg3ZWEzMDA0MzEzMmUwMTQuLmQ5OGMwMzEyN2QxYzM1YTNkODNlMTQx
ZjYyMjU4MDA5NjI5NzQ4ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFy
a3VwQWNjdW11bGF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNj
dW11bGF0b3IuY3BwCkBAIC03Niw3ICs3Niw3IEBAIHZvaWQgYXBwZW5kQ2hhcmFjdGVyc1JlcGxh
Y2luZ0VudGl0aWVzKFZlY3RvcjxVQ2hhcj4mIG91dCwgY29uc3QgVUNoYXIqIGNvbnRlbnQsCiBN
YXJrdXBBY2N1bXVsYXRvcjo6TWFya3VwQWNjdW11bGF0b3IoVmVjdG9yPE5vZGUqPiogbm9kZXMs
IEVBYnNvbHV0ZVVSTHMgc2hvdWxkUmVzb2x2ZVVSTHMsIGNvbnN0IFJhbmdlKiByYW5nZSkKICAg
ICA6IG1fbm9kZXMobm9kZXMpCiAgICAgLCBtX3JhbmdlKHJhbmdlKQotICAgICwgbV9zaG91bGRS
ZXNvbHZlVVJMcyhzaG91bGRSZXNvbHZlVVJMcykKKyAgICAsIG1fcmVzb2x2ZVVSTHNNZXRob2Qo
c2hvdWxkUmVzb2x2ZVVSTHMpCiB7CiB9CiAKQEAgLTM3NCw3ICszNzQsNyBAQCB2b2lkIE1hcmt1
cEFjY3VtdWxhdG9yOjphcHBlbmRBdHRyaWJ1dGUoVmVjdG9yPFVDaGFyPiYgb3V0LCBFbGVtZW50
KiBlbGVtZW50LCBjbwogICAgIGlmIChlbGVtZW50LT5pc1VSTEF0dHJpYnV0ZShjb25zdF9jYXN0
PEF0dHJpYnV0ZSo+KCZhdHRyaWJ1dGUpKSkgewogICAgICAgICAvLyBXZSBkb24ndCB3YW50IHRv
IGNvbXBsZXRlIGZpbGU6Ly8vIFVSTHMgYmVjYXVzZSBpdCBtYXkgY29udGFpbiBzZW5zaXRpdmUg
aW5mb3JtYXRpb24KICAgICAgICAgLy8gYWJvdXQgdGhlIHVzZXIncyBzeXN0ZW0uCi0gICAgICAg
IGlmIChzaG91bGRSZXNvbHZlVVJMcygpICYmICFlbGVtZW50LT5kb2N1bWVudCgpLT51cmwoKS5p
c0xvY2FsRmlsZSgpKQorICAgICAgICBpZiAoc2hvdWxkUmVzb2x2ZVVSTHMoKSB8fCAoc2hvdWxk
UmVzb2x2ZU5vbkxvY2FsVVJMcygpICYmICFlbGVtZW50LT5kb2N1bWVudCgpLT51cmwoKS5pc0xv
Y2FsRmlsZSgpKSkKICAgICAgICAgICAgIGFwcGVuZFF1b3RlZFVSTEF0dHJpYnV0ZVZhbHVlKG91
dCwgZWxlbWVudC0+ZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoYXR0cmlidXRlLnZhbHVlKCkpLnN0
cmluZygpKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgYXBwZW5kUXVvdGVkVVJMQXR0cmli
dXRlVmFsdWUob3V0LCBhdHRyaWJ1dGUudmFsdWUoKSk7IApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9NYXJrdXBBY2N1bXVsYXRvci5oCmluZGV4IDRmNjgxM2U2MDc0N2ZmMDJmZDExNDA3YjI4ZjQ2
OWY1OWJmY2Y4NDUuLjdmNzE5NWJhZTU1NTNmYmNkNjc3ZTA0ZGFkZGQ4OTMwY2E1NjM3M2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmgKQEAgLTEwMCw3ICsx
MDAsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBlbGVtZW50Q2Fubm90SGF2ZUVuZFRhZyhjb25z
dCBOb2RlKiBub2RlKTsKICAgICB2b2lkIGFwcGVuZEVuZE1hcmt1cChWZWN0b3I8VUNoYXI+JiBy
ZXN1bHQsIGNvbnN0IE5vZGUqKTsKIAotICAgIGJvb2wgc2hvdWxkUmVzb2x2ZVVSTHMoKSB7IHJl
dHVybiBtX3Nob3VsZFJlc29sdmVVUkxzID09IEFic29sdXRlVVJMczsgfQorICAgIGJvb2wgc2hv
dWxkUmVzb2x2ZVVSTHMoKSB7IHJldHVybiBtX3Jlc29sdmVVUkxzTWV0aG9kID09IEFic29sdXRl
VVJMczsgfQorICAgIGJvb2wgc2hvdWxkUmVzb2x2ZU5vbkxvY2FsVVJMcygpIHsgcmV0dXJuIG1f
cmVzb2x2ZVVSTHNNZXRob2QgPT0gQWJzb2x1dGVOb25Mb2NhbFVSTHM7IH0KIAogICAgIFZlY3Rv
cjxOb2RlKj4qIGNvbnN0IG1fbm9kZXM7CiAgICAgY29uc3QgUmFuZ2UqIGNvbnN0IG1fcmFuZ2U7
CkBAIC0xMDksNyArMTEwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNlcmlhbGl6ZU5vZGVzV2l0
aE5hbWVzcGFjZXMoTm9kZSosIE5vZGUqIG5vZGVUb1NraXAsIEVDaGlsZHJlbk9ubHksIGNvbnN0
IE5hbWVzcGFjZXMqKTsKIAogICAgIFZlY3RvcjxTdHJpbmc+IG1fc3VjY2VlZGluZ01hcmt1cDsK
LSAgICBjb25zdCBib29sIG1fc2hvdWxkUmVzb2x2ZVVSTHM7CisgICAgY29uc3QgRUFic29sdXRl
VVJMcyBtX3Jlc29sdmVVUkxzTWV0aG9kOwogfTsKIAogLy8gRklYTUU6IFRoaXMgbWV0aG9kIHNo
b3VsZCBiZSBpbnRlZ3JhdGVkIHdpdGggTWFya3VwQWNjdW11bGF0b3IuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L21hcmt1cC5jcHAKaW5kZXggNzBmNWE4MWI3YmRlMWE5ODhlODhlNDg4NjAyOTRhYjllOWQ1Yjcw
Mi4uNWVlN2ZjYzJlMzEyOTQ1N2NjNDU5MDQxOTgxNzA0YTg2Y2JjM2Y3NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvbWFya3VwLmNwcApAQCAtODU0LDI4ICs4NTQsNCBAQCBTdHJpbmcgdXJsVG9NYXJrdXAo
Y29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHRpdGxlKQogICAgIHJldHVybiBTdHJpbmc6
OmFkb3B0KG1hcmt1cCk7CiB9CiAKLVN0cmluZyBpbWFnZVRvTWFya3VwKGNvbnN0IEtVUkwmIHVy
bCwgRWxlbWVudCogZWxlbWVudCkKLXsKLSAgICBWZWN0b3I8VUNoYXI+IG1hcmt1cDsKLSAgICBh
cHBlbmQobWFya3VwLCAiPGltZyBzcmM9XCIiKTsKLSAgICBhcHBlbmQobWFya3VwLCB1cmwuc3Ry
aW5nKCkpOwotICAgIGFwcGVuZChtYXJrdXAsICJcIiIpOwotCi0gICAgTmFtZWROb2RlTWFwKiBh
dHRycyA9IGVsZW1lbnQtPmF0dHJpYnV0ZXMoKTsKLSAgICB1bnNpZ25lZCBsZW5ndGggPSBhdHRy
cy0+bGVuZ3RoKCk7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7
Ci0gICAgICAgIEF0dHJpYnV0ZSogYXR0ciA9IGF0dHJzLT5hdHRyaWJ1dGVJdGVtKGkpOwotICAg
ICAgICBpZiAoYXR0ci0+bG9jYWxOYW1lKCkgPT0gInNyYyIpCi0gICAgICAgICAgICBjb250aW51
ZTsKLSAgICAgICAgYXBwZW5kKG1hcmt1cCwgIiAiKTsKLSAgICAgICAgYXBwZW5kKG1hcmt1cCwg
YXR0ci0+bG9jYWxOYW1lKCkpOwotICAgICAgICBhcHBlbmQobWFya3VwLCAiPVwiIik7Ci0gICAg
ICAgIGFwcGVuZENoYXJhY3RlcnNSZXBsYWNpbmdFbnRpdGllcyhtYXJrdXAsIGF0dHItPnZhbHVl
KCkuY2hhcmFjdGVycygpLCBhdHRyLT52YWx1ZSgpLmxlbmd0aCgpLCBFbnRpdHlNYXNrSW5BdHRy
aWJ1dGVWYWx1ZSk7Ci0gICAgICAgIGFwcGVuZChtYXJrdXAsICJcIiIpOwotICAgIH0KLQotICAg
IGFwcGVuZChtYXJrdXAsICIvPiIpOwotICAgIHJldHVybiBTdHJpbmc6OmFkb3B0KG1hcmt1cCk7
Ci19Ci0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmggYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5oCmluZGV4IGY4Y2Q4Y2Q5MjIxNTEyNWI0OTEy
ZmM0NDhlZDkwMGQ3NTk3N2QyMDQuLjFlZjMyN2IxMjQ1NGE5M2Y0YjNlMjAwMzVkZWI4Y2Q5ZmU4
ZTE3ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuaApAQCAtNDEsNyArNDEsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgUmFuZ2U7CiAKICAgICBlbnVtIEVDaGlsZHJlbk9ubHkg
eyBJbmNsdWRlTm9kZSwgQ2hpbGRyZW5Pbmx5IH07Ci0gICAgZW51bSBFQWJzb2x1dGVVUkxzIHsg
RG9Ob3RSZXNvbHZlVVJMcywgQWJzb2x1dGVVUkxzIH07CisgICAgZW51bSBFQWJzb2x1dGVVUkxz
IHsgRG9Ob3RSZXNvbHZlVVJMcywgQWJzb2x1dGVOb25Mb2NhbFVSTHMsIEFic29sdXRlVVJMcyB9
OwogCiAgICAgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBjcmVhdGVGcmFnbWVudEZyb21U
ZXh0KFJhbmdlKiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIHRleHQpOwogICAgIFBhc3NSZWZQdHI8
RG9jdW1lbnRGcmFnbWVudD4gY3JlYXRlRnJhZ21lbnRGcm9tTWFya3VwKERvY3VtZW50KiwgY29u
c3QgU3RyaW5nJiBtYXJrdXAsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgRnJhZ21lbnRTY3JpcHRp
bmdQZXJtaXNzaW9uID0gRnJhZ21lbnRTY3JpcHRpbmdBbGxvd2VkKTsKQEAgLTU3LDcgKzU3LDYg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIFN0cmluZyBjcmVhdGVGdWxsTWFya3VwKGNvbnN0
IFJhbmdlKik7CiAKICAgICBTdHJpbmcgdXJsVG9NYXJrdXAoY29uc3QgS1VSTCYsIGNvbnN0IFN0
cmluZyYgdGl0bGUpOwotICAgIFN0cmluZyBpbWFnZVRvTWFya3VwKGNvbnN0IEtVUkwmLCBFbGVt
ZW50Kik7CiB9CiAKICNlbmRpZiAvLyBtYXJrdXBfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlU2VyaWFsaXplci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJp
YWxpemVyLmNwcAppbmRleCBlMTczODc5MThhODUxODY2YTlkYjllYWI0Y2E0MWNjMWQ0MzZlMDk3
Li40YWQzYjNmZjI1ZWM1ZGEwNmM5MzJlOTIzMWQ5MDdlYzJmNTgyNGU0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmNwcApAQCAtMTA3LDcgKzEwNyw3IEBAIHByaXZhdGU6CiB9
OwogCiBTZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3I6OlNlcmlhbGl6ZXJNYXJrdXBBY2N1bXVs
YXRvcihQYWdlU2VyaWFsaXplciogc2VyaWFsaXplciwgRG9jdW1lbnQqIGRvY3VtZW50LCBWZWN0
b3I8Tm9kZSo+KiBub2RlcykKLSAgICA6IE1hcmt1cEFjY3VtdWxhdG9yKG5vZGVzLCBBYnNvbHV0
ZVVSTHMpCisgICAgOiBNYXJrdXBBY2N1bXVsYXRvcihub2RlcywgQWJzb2x1dGVOb25Mb2NhbFVS
THMpCiAgICAgLCBtX3NlcmlhbGl6ZXIoc2VyaWFsaXplcikKICAgICAsIG1fZG9jdW1lbnQoZG9j
dW1lbnQpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9D
bGlwYm9hcmRDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9D
bGlwYm9hcmRDaHJvbWl1bS5jcHAKaW5kZXggZTg2OGU2YjBjMmUxNzVhOWQxNDQxZDdmZWU5NjVj
OTM5Mzg5OTZmYi4uOTM3OTM5N2RiYmY0NzBhZTEwNGY3M2IwNzE4MTgxMWM4NzNjYzk0NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2xpcGJvYXJkQ2hyb21p
dW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENo
cm9taXVtLmNwcApAQCAtMjY1LDE2ICsyNjUsOCBAQCB2b2lkIENsaXBib2FyZENocm9taXVtOjpk
ZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UoRWxlbWVudCogZWxlbWVudCwgY29uc3QgS1VSTCYgdQog
ICAgIC8vIFdyaXRlIHRoZSBieXRlcyBpbiB0aGUgaW1hZ2UgdG8gdGhlIGZpbGUgZm9ybWF0Lgog
ICAgIHdyaXRlSW1hZ2VUb0RhdGFPYmplY3QobV9kYXRhT2JqZWN0LmdldCgpLCBlbGVtZW50LCB1
cmwpOwogCi0gICAgQXRvbWljU3RyaW5nIGltYWdlVVJMID0gZWxlbWVudC0+Z2V0QXR0cmlidXRl
KHNyY0F0dHIpOwotICAgIGlmIChpbWFnZVVSTC5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsK
LQotICAgIEtVUkwgZnVsbFVSTCA9IGZyYW1lLT5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTChzdHJp
cExlYWRpbmdBbmRUcmFpbGluZ0hUTUxTcGFjZXMoaW1hZ2VVUkwpKTsKLSAgICBpZiAoZnVsbFVS
TC5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsKLQogICAgIC8vIFB1dCBpbWcgdGFnIG9uIHRo
ZSBjbGlwYm9hcmQgcmVmZXJlbmNpbmcgdGhlIGltYWdlCi0gICAgbV9kYXRhT2JqZWN0LT5zZXRE
YXRhKG1pbWVUeXBlVGV4dEhUTUwsIGltYWdlVG9NYXJrdXAoZnVsbFVSTCwgZWxlbWVudCkpOwor
ICAgIG1fZGF0YU9iamVjdC0+c2V0RGF0YShtaW1lVHlwZVRleHRIVE1MLCBjcmVhdGVNYXJrdXAo
ZWxlbWVudCwgSW5jbHVkZU5vZGUsIDAsIEFic29sdXRlVVJMcykpOwogfQogCiB2b2lkIENsaXBi
b2FyZENocm9taXVtOjp3cml0ZVVSTChjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdGl0
bGUsIEZyYW1lKikKQEAgLTI5OSw3ICsyOTEsNyBAQCB2b2lkIENsaXBib2FyZENocm9taXVtOjp3
cml0ZVJhbmdlKFJhbmdlKiBzZWxlY3RlZFJhbmdlLCBGcmFtZSogZnJhbWUpCiAgICAgaWYgKCFt
X2RhdGFPYmplY3QpCiAgICAgICAgICByZXR1cm47CiAKLSAgICBtX2RhdGFPYmplY3QtPnNldERh
dGEobWltZVR5cGVUZXh0SFRNTCwgY3JlYXRlTWFya3VwKHNlbGVjdGVkUmFuZ2UsIDAsIEFubm90
YXRlRm9ySW50ZXJjaGFuZ2UsIGZhbHNlLCBBYnNvbHV0ZVVSTHMpKTsKKyAgICBtX2RhdGFPYmpl
Y3QtPnNldERhdGEobWltZVR5cGVUZXh0SFRNTCwgY3JlYXRlTWFya3VwKHNlbGVjdGVkUmFuZ2Us
IDAsIEFubm90YXRlRm9ySW50ZXJjaGFuZ2UsIGZhbHNlLCBBYnNvbHV0ZU5vbkxvY2FsVVJMcykp
OwogICAgIG1fZGF0YU9iamVjdC0+c2V0SHRtbEJhc2VVcmwoZnJhbWUtPmRvY3VtZW50KCktPnVy
bCgpKTsKIAogICAgIFN0cmluZyBzdHIgPSBmcmFtZS0+ZWRpdG9yKCktPnNlbGVjdGVkVGV4dCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUGFzdGVib2Fy
ZENocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1Bhc3RlYm9h
cmRDaHJvbWl1bS5jcHAKaW5kZXggYTkwYTU2NzhjMTQ4NjA4YWZhODFhYmI3NWZlMDJiNDA1ZGQy
ZTIxOC4uMzYwZWY4YTFhNWE3OWQwNjIxYWEyOTdiZDk3MWQwNDAzZGFhZTkzYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUGFzdGVib2FyZENocm9taXVtLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QYXN0ZWJvYXJkQ2hyb21p
dW0uY3BwCkBAIC04Miw3ICs4Miw3IEBAIHZvaWQgUGFzdGVib2FyZDo6c2V0U2VsZWN0aW9uTW9k
ZShib29sIHNlbGVjdGlvbk1vZGUpCiAKIHZvaWQgUGFzdGVib2FyZDo6d3JpdGVTZWxlY3Rpb24o
UmFuZ2UqIHNlbGVjdGVkUmFuZ2UsIGJvb2wgY2FuU21hcnRDb3B5T3JEZWxldGUsIEZyYW1lKiBm
cmFtZSkKIHsKLSAgICBTdHJpbmcgaHRtbCA9IGNyZWF0ZU1hcmt1cChzZWxlY3RlZFJhbmdlLCAw
LCBBbm5vdGF0ZUZvckludGVyY2hhbmdlLCBmYWxzZSwgQWJzb2x1dGVVUkxzKTsKKyAgICBTdHJp
bmcgaHRtbCA9IGNyZWF0ZU1hcmt1cChzZWxlY3RlZFJhbmdlLCAwLCBBbm5vdGF0ZUZvckludGVy
Y2hhbmdlLCBmYWxzZSwgQWJzb2x1dGVOb25Mb2NhbFVSTHMpOwogICAgIEV4Y2VwdGlvbkNvZGUg
ZWMgPSAwOwogICAgIEtVUkwgdXJsID0gc2VsZWN0ZWRSYW5nZS0+c3RhcnRDb250YWluZXIoZWMp
LT5kb2N1bWVudCgpLT51cmwoKTsKICAgICBTdHJpbmcgcGxhaW5UZXh0ID0gZnJhbWUtPmVkaXRv
cigpLT5zZWxlY3RlZFRleHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2d0ay9DbGlwYm9hcmRHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0NsaXBi
b2FyZEd0ay5jcHAKaW5kZXggMWJmOTc4ZGRkZmYzZmQ5YzNjODQ0Y2Q4OWJlZmVjZDZiMDlmYmUx
Ni4uM2IxMDlmOWZlNDA2Y2YzYWE5NDNmZmUxM2VkNjg0MDdkZTA4ZTUyZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0NsaXBib2FyZEd0ay5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0NsaXBib2FyZEd0ay5jcHAKQEAgLTMwOCw3ICszMDgsNyBA
QCB2b2lkIENsaXBib2FyZEd0azo6d3JpdGVSYW5nZShSYW5nZSogcmFuZ2UsIEZyYW1lKiBmcmFt
ZSkKICAgICBBU1NFUlQocmFuZ2UpOwogCiAgICAgbV9kYXRhT2JqZWN0LT5zZXRUZXh0KGZyYW1l
LT5lZGl0b3IoKS0+c2VsZWN0ZWRUZXh0KCkpOwotICAgIG1fZGF0YU9iamVjdC0+c2V0TWFya3Vw
KGNyZWF0ZU1hcmt1cChyYW5nZSwgMCwgQW5ub3RhdGVGb3JJbnRlcmNoYW5nZSwgZmFsc2UsIEFi
c29sdXRlVVJMcykpOworICAgIG1fZGF0YU9iamVjdC0+c2V0TWFya3VwKGNyZWF0ZU1hcmt1cChy
YW5nZSwgMCwgQW5ub3RhdGVGb3JJbnRlcmNoYW5nZSwgZmFsc2UsIEFic29sdXRlTm9uTG9jYWxV
UkxzKSk7CiAKICAgICBpZiAobV9jbGlwYm9hcmQpCiAgICAgICAgIFBhc3RlYm9hcmRIZWxwZXI6
OmRlZmF1bHRQYXN0ZWJvYXJkSGVscGVyKCktPndyaXRlQ2xpcGJvYXJkQ29udGVudHMobV9jbGlw
Ym9hcmQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0RhdGFPYmpl
Y3RHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0RhdGFPYmplY3RHdGsuY3Bw
CmluZGV4IDA1YTJkYTkwMDU3ZTEwNzI2MDQwMGY0NjE0MTkwYTZiNjI5ZGE3YjUuLjM4MzRhZGFk
NTU0MzU5OWE1OTBkN2Q4ZmZjNDQ2N2NhMGJkYTEwZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2d0ay9EYXRhT2JqZWN0R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ndGsvRGF0YU9iamVjdEd0ay5jcHAKQEAgLTQyLDcgKzQyLDcgQEAgU3RyaW5nIERh
dGFPYmplY3RHdGs6OnRleHQoKQogU3RyaW5nIERhdGFPYmplY3RHdGs6Om1hcmt1cCgpCiB7CiAg
ICAgaWYgKG1fcmFuZ2UpCi0gICAgICAgIHJldHVybiBjcmVhdGVNYXJrdXAobV9yYW5nZS5nZXQo
KSwgMCwgQW5ub3RhdGVGb3JJbnRlcmNoYW5nZSwgZmFsc2UsIEFic29sdXRlVVJMcyk7CisgICAg
ICAgIHJldHVybiBjcmVhdGVNYXJrdXAobV9yYW5nZS5nZXQoKSwgMCwgQW5ub3RhdGVGb3JJbnRl
cmNoYW5nZSwgZmFsc2UsIEFic29sdXRlTm9uTG9jYWxVUkxzKTsKICAgICByZXR1cm4gbV9tYXJr
dXA7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJv
YXJkR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkR3RrLmNw
cAppbmRleCBlMDQ4YjkxYTE4YTMzMTdmYzY1YThkYzNmMWEzNzE2ZGMxNGViZWUzLi5kMzRiNDc2
MDdjNWIyZjViZmIwZjAwMzE0MzdlNWYxOTBlZjVhODBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRHdGsuY3BwCkBAIC02MCw3ICs2MCw3IEBAIHZvaWQgUGFz
dGVib2FyZDo6d3JpdGVTZWxlY3Rpb24oUmFuZ2UqIHNlbGVjdGVkUmFuZ2UsIGJvb2wgY2FuU21h
cnRDb3B5T3JEZWxldGUsCiAgICAgR3RrQ2xpcGJvYXJkKiBjbGlwYm9hcmQgPSBoZWxwZXItPmdl
dENsaXBib2FyZChmcmFtZSk7CiAgICAgRGF0YU9iamVjdEd0ayogZGF0YU9iamVjdCA9IERhdGFP
YmplY3RHdGs6OmZvckNsaXBib2FyZChjbGlwYm9hcmQpOwogICAgIGRhdGFPYmplY3QtPnNldFRl
eHQoZnJhbWUtPmVkaXRvcigpLT5zZWxlY3RlZFRleHQoKSk7Ci0gICAgZGF0YU9iamVjdC0+c2V0
TWFya3VwKGNyZWF0ZU1hcmt1cChzZWxlY3RlZFJhbmdlLCAwLCBBbm5vdGF0ZUZvckludGVyY2hh
bmdlLCBmYWxzZSwgQWJzb2x1dGVVUkxzKSk7CisgICAgZGF0YU9iamVjdC0+c2V0TWFya3VwKGNy
ZWF0ZU1hcmt1cChzZWxlY3RlZFJhbmdlLCAwLCBBbm5vdGF0ZUZvckludGVyY2hhbmdlLCBmYWxz
ZSwgQWJzb2x1dGVOb25Mb2NhbFVSTHMpKTsKICAgICBoZWxwZXItPndyaXRlQ2xpcGJvYXJkQ29u
dGVudHMoY2xpcGJvYXJkLCBjYW5TbWFydENvcHlPckRlbGV0ZSA/IFBhc3RlYm9hcmRIZWxwZXI6
OkluY2x1ZGVTbWFydFBhc3RlIDogUGFzdGVib2FyZEhlbHBlcjo6RG9Ob3RJbmNsdWRlU21hcnRQ
YXN0ZSk7CiB9CiAKQEAgLTEyMiwxMSArMTIyLDcgQEAgdm9pZCBQYXN0ZWJvYXJkOjp3cml0ZUlt
YWdlKE5vZGUqIG5vZGUsIGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmIHRpdGxlKQogICAgIGlm
ICghdXJsLmlzRW1wdHkoKSkgewogICAgICAgICBkYXRhT2JqZWN0LT5zZXRVUkwodXJsLCB0aXRs
ZSk7CiAKLSAgICAgICAgLy8gVGhpcyBpbWFnZSBtYXkgYmUgYW4gU1ZHLCBlbWJlZCwgb3Igb2Jq
ZWN0IHRhZywgc28gZG8gbm90IHdyaXRlIHRoZSBpbWFnZQotICAgICAgICAvLyB0YWcgbWFya3Vw
IGluIHRob3NlIGNhc2VzLiBFdmVudHVhbGx5IHdlIG1heSB3YW50IHRvIHN1cHBvcnQgcGFzc2lu
ZyBtYXJrdXAKLSAgICAgICAgLy8gZm9yIHRoZXNlIHRhZyB0eXBlcy4KLSAgICAgICAgaWYgKG5v
ZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjppbWdUYWcpKQotICAgICAgICAgICAgZGF0YU9iamVj
dC0+c2V0TWFya3VwKGltYWdlVG9NYXJrdXAodXJsLCBzdGF0aWNfY2FzdDxFbGVtZW50Kj4obm9k
ZSkpKTsKKyAgICAgICAgZGF0YU9iamVjdC0+c2V0TWFya3VwKGNyZWF0ZU1hcmt1cChzdGF0aWNf
Y2FzdDxFbGVtZW50Kj4obm9kZSksIEluY2x1ZGVOb2RlLCAwLCBBYnNvbHV0ZVVSTHMpKTsKICAg
ICB9CiAKICAgICBHUmVmUHRyPEdka1BpeGJ1Zj4gcGl4YnVmID0gYWRvcHRHUmVmKGltYWdlLT5n
ZXRHZGtQaXhidWYoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9oYWlr
dS9QYXN0ZWJvYXJkSGFpa3UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaGFpa3UvUGFz
dGVib2FyZEhhaWt1LmNwcAppbmRleCBkN2E3ZTA4OTRlNmQyMGI3OTZhZTBkMGQ1ZGM5YWM1MTY4
OWRkODI3Li4xNDZjZDA2YzA5MWVhNGMxZDFmZTU4Mjk3ZTcxNmQ1ZjllMjUzZjhkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9QYXN0ZWJvYXJkSGFpa3UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2hhaWt1L1Bhc3RlYm9hcmRIYWlrdS5jcHAKQEAg
LTEwMiw3ICsxMDIsNyBAQCB2b2lkIFBhc3RlYm9hcmQ6OndyaXRlU2VsZWN0aW9uKFJhbmdlKiBz
ZWxlY3RlZFJhbmdlLCBib29sIGNhblNtYXJ0Q29weU9yRGVsZXRlLAogCiAgICAgZGF0YS0+QWRk
RGF0YSgidGV4dC9wbGFpbiIsIEJfTUlNRV9UWVBFLCBzdHJpbmcuU3RyaW5nKCksIHN0cmluZy5M
ZW5ndGgoKSk7CiAKLSAgICBCU3RyaW5nIG1hcmt1cFN0cmluZyhjcmVhdGVNYXJrdXAoc2VsZWN0
ZWRSYW5nZSwgMCwgQW5ub3RhdGVGb3JJbnRlcmNoYW5nZSwgZmFsc2UsIEFic29sdXRlVVJMcykp
OworICAgIEJTdHJpbmcgbWFya3VwU3RyaW5nKGNyZWF0ZU1hcmt1cChzZWxlY3RlZFJhbmdlLCAw
LCBBbm5vdGF0ZUZvckludGVyY2hhbmdlLCBmYWxzZSwgQWJzb2x1dGVOb25Mb2NhbFVSTHMpKTsK
ICAgICBkYXRhLT5BZGREYXRhKCJ0ZXh0L2h0bWwiLCBCX01JTUVfVFlQRSwgbWFya3VwU3RyaW5n
LlN0cmluZygpLCBtYXJrdXBTdHJpbmcuTGVuZ3RoKCkpOwogCiAgICAgYmVfY2xpcGJvYXJkLT5D
b21taXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0NsaXBib2Fy
ZFF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0NsaXBib2FyZFF0LmNwcAppbmRl
eCBlNDNjNjcwYzE1OGI5MTJiOGE4ZWYyZmNkZjcyZWYxMTFkYmQ1OTM3Li4xOTMyNjA1NDdkNWE1
OGZmMTllNGEwNWEzNWM3ZmI4ZDBlYjRkZGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9xdC9DbGlwYm9hcmRRdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
cXQvQ2xpcGJvYXJkUXQuY3BwCkBAIC0yODgsMjAgKzI4OCwxMiBAQCB2b2lkIENsaXBib2FyZFF0
OjpkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UoRWxlbWVudCogZWxlbWVudCwgY29uc3QgS1VSTCYg
dXJsLCBjbwogICAgIGlmIChwaXhtYXApCiAgICAgICAgIG1fd3JpdGFibGVEYXRhLT5zZXRJbWFn
ZURhdGEoKnBpeG1hcCk7CiAKLSAgICBBdG9taWNTdHJpbmcgaW1hZ2VVUkwgPSBlbGVtZW50LT5n
ZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpzcmNBdHRyKTsKLSAgICBpZiAoaW1hZ2VVUkwuaXNFbXB0
eSgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBLVVJMIGZ1bGxVUkwgPSBmcmFtZS0+ZG9jdW1l
bnQoKS0+Y29tcGxldGVVUkwoc3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdIVE1MU3BhY2VzKGltYWdl
VVJMKSk7Ci0gICAgaWYgKGZ1bGxVUkwuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm47Ci0KICAg
ICBRTGlzdDxRVXJsPiB1cmxzOwogICAgIHVybHMuYXBwZW5kKHVybCk7CiAKICAgICBtX3dyaXRh
YmxlRGF0YS0+c2V0VGV4dCh0aXRsZSk7CiAgICAgbV93cml0YWJsZURhdGEtPnNldFVybHModXJs
cyk7Ci0gICAgbV93cml0YWJsZURhdGEtPnNldEh0bWwoaW1hZ2VUb01hcmt1cChmdWxsVVJMLCBl
bGVtZW50KSk7CisgICAgbV93cml0YWJsZURhdGEtPnNldEh0bWwoY3JlYXRlTWFya3VwKGVsZW1l
bnQsIEluY2x1ZGVOb2RlLCAwLCBBYnNvbHV0ZVVSTHMpKTsKICNpZm5kZWYgUVRfTk9fQ0xJUEJP
QVJECiAgICAgaWYgKGlzRm9yQ29weUFuZFBhc3RlKCkpCiAgICAgICAgIFFBcHBsaWNhdGlvbjo6
Y2xpcGJvYXJkKCktPnNldE1pbWVEYXRhKG1fd3JpdGFibGVEYXRhKTsKQEAgLTMzNCw3ICszMjYs
NyBAQCB2b2lkIENsaXBib2FyZFF0Ojp3cml0ZVJhbmdlKFJhbmdlKiByYW5nZSwgRnJhbWUqIGZy
YW1lKQogICAgIFFTdHJpbmcgdGV4dCA9IGZyYW1lLT5lZGl0b3IoKS0+c2VsZWN0ZWRUZXh0KCk7
CiAgICAgdGV4dC5yZXBsYWNlKFFDaGFyKDB4YTApLCBRTGF0aW4xQ2hhcignICcpKTsKICAgICBt
X3dyaXRhYmxlRGF0YS0+c2V0VGV4dCh0ZXh0KTsKLSAgICBtX3dyaXRhYmxlRGF0YS0+c2V0SHRt
bChjcmVhdGVNYXJrdXAocmFuZ2UsIDAsIEFubm90YXRlRm9ySW50ZXJjaGFuZ2UsIGZhbHNlLCBB
YnNvbHV0ZVVSTHMpKTsKKyAgICBtX3dyaXRhYmxlRGF0YS0+c2V0SHRtbChjcmVhdGVNYXJrdXAo
cmFuZ2UsIDAsIEFubm90YXRlRm9ySW50ZXJjaGFuZ2UsIGZhbHNlLCBBYnNvbHV0ZU5vbkxvY2Fs
VVJMcykpOwogI2lmbmRlZiBRVF9OT19DTElQQk9BUkQKICAgICBpZiAoaXNGb3JDb3B5QW5kUGFz
dGUoKSkKICAgICAgICAgUUFwcGxpY2F0aW9uOjpjbGlwYm9hcmQoKS0+c2V0TWltZURhdGEobV93
cml0YWJsZURhdGEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUGFz
dGVib2FyZFF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1Bhc3RlYm9hcmRRdC5j
cHAKaW5kZXggMmYyYjFiZmQzZDFkNDc0ZmRhZTY1Mzk3NThiMjRmYzBiZjIxNTZkOS4uMTkzMzll
YjU4ZjhmMTYwYWI5Y2M0ZTliNjJjYTFhNGRlMTFjZmViNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vcXQvUGFzdGVib2FyZFF0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9xdC9QYXN0ZWJvYXJkUXQuY3BwCkBAIC02NCw3ICs2NCw3IEBAIHZvaWQgUGFzdGVi
b2FyZDo6d3JpdGVTZWxlY3Rpb24oUmFuZ2UqIHNlbGVjdGVkUmFuZ2UsIGJvb2wgY2FuU21hcnRD
b3B5T3JEZWxldGUsCiAgICAgdGV4dC5yZXBsYWNlKFFDaGFyKDB4YTApLCBRTGF0aW4xQ2hhcign
ICcpKTsKICAgICBtZC0+c2V0VGV4dCh0ZXh0KTsKIAotICAgIFFTdHJpbmcgbWFya3VwID0gY3Jl
YXRlTWFya3VwKHNlbGVjdGVkUmFuZ2UsIDAsIEFubm90YXRlRm9ySW50ZXJjaGFuZ2UsIGZhbHNl
LCBBYnNvbHV0ZVVSTHMpOworICAgIFFTdHJpbmcgbWFya3VwID0gY3JlYXRlTWFya3VwKHNlbGVj
dGVkUmFuZ2UsIDAsIEFubm90YXRlRm9ySW50ZXJjaGFuZ2UsIGZhbHNlLCBBYnNvbHV0ZU5vbkxv
Y2FsVVJMcyk7CiAjaWZkZWYgUV9PU19NQUMKICAgICBtYXJrdXAucHJlcGVuZChRTGF0aW4xU3Ry
aW5nKCI8aHRtbD48aGVhZD48bWV0YSBodHRwLWVxdWl2PVwiQ29udGVudC1UeXBlXCIgY29udGVu
dD1cInRleHQvaHRtbDsgY2hhcnNldD11dGYtOFwiIC8+PC9oZWFkPjxib2R5PiIpKTsKICAgICBt
YXJrdXAuYXBwZW5kKFFMYXRpbjFTdHJpbmcoIjwvYm9keT48L2h0bWw+IikpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFdpbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkV2luLmNwcAppbmRleCA5MGM1NTViMzE5NWUy
MjVmZDBmNzk1NzYyNGI2ZTczODkwNzk2ZTdjLi5mYjQ4YzQzZWFiMDhhZjUxNzhiMTliNjM3YTRi
NzZjYWMzYWM1NDI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xp
cGJvYXJkV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJk
V2luLmNwcApAQCAtNjgzLDcgKzY4Myw3IEBAIHZvaWQgQ2xpcGJvYXJkV2luOjpkZWNsYXJlQW5k
V3JpdGVEcmFnSW1hZ2UoRWxlbWVudCogZWxlbWVudCwgY29uc3QgS1VSTCYgdXJsLCBjCiAKICAg
ICAvLyBQdXQgaW1nIHRhZyBvbiB0aGUgY2xpcGJvYXJkIHJlZmVyZW5jaW5nIHRoZSBpbWFnZQog
ICAgIFZlY3RvcjxjaGFyPiBkYXRhOwotICAgIG1hcmt1cFRvQ0ZIVE1MKGltYWdlVG9NYXJrdXAo
ZnVsbFVSTCwgZWxlbWVudCksICIiLCBkYXRhKTsKKyAgICBtYXJrdXBUb0NGSFRNTChjcmVhdGVN
YXJrdXAoZWxlbWVudCwgSW5jbHVkZU5vZGUsIDAsIEFic29sdXRlTm9uTG9jYWxVUkxzKSwgIiIs
IGRhdGEpOwogICAgIG1lZGl1bS5oR2xvYmFsID0gY3JlYXRlR2xvYmFsRGF0YShkYXRhKTsKICAg
ICBpZiAobWVkaXVtLmhHbG9iYWwgJiYgRkFJTEVEKG1fd3JpdGFibGVEYXRhT2JqZWN0LT5TZXRE
YXRhKGh0bWxGb3JtYXQoKSwgJm1lZGl1bSwgVFJVRSkpKQogICAgICAgICA6Okdsb2JhbEZyZWUo
bWVkaXVtLmhHbG9iYWwpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103398</attachid>
            <date>2011-08-09 14:28:43 -0700</date>
            <delta_ts>2011-08-09 15:34:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-58043-20110809232840.patch</filename>
            <type>text/plain</type>
            <size>80307</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTI2NzQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmOTRmYzQxZDFlMmM0Mjk0M2IxNGEw
NDY4NTc3NWZlOGNmMzhhYTA3Li43ODQzOGMwYmNkOGI2OGIwMzM4MmRhM2ViZGU1NGE3MGU0OTcy
MjNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTEtMDgtMDkgIEJlbmphbWluIFBvdWxhaW4g
IDxpa2lwb3VAZ21haWwuY29tPgorCisgICAgICAgIFVuaWZ5IHRoZSB3YXkgd2UgZ2VuZXJhdGUg
SFRNTCBmb3IgYW4gaW1hZ2UgaW4gdGhlIENsaXBib2FyZAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTgwNDMKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgZm9sZGVyIGRyYWctYW5kLWRyb3Ag
Zm9yIGZhc3QgdGVzdHMgb25seSBmb2N1c2VkIG9uIGRyYWcgYW5kIGRyb3AuCisKKyAgICAgICAg
QWRkIDMgdGVzdHMgZm9yIGRyYWdnaW5nIGFuIGltYWdlLWxpa2UgZWxlbWVudCB0byBhbiBlZGl0
YWJsZSBhcmVhLgorCisgICAgICAgICogZmFzdC9kcmFnLWFuZC1kcm9wL2RyYWctYW5kLWRyb3At
aW1hZ2UtY29udGVudGVkaXRhYmxlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFz
dC9kcmFnLWFuZC1kcm9wL2RyYWctYW5kLWRyb3AtaW1hZ2UtY29udGVudGVkaXRhYmxlLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvZHJhZy1hbmQtZHJvcC9kcmFnLWFuZC1kcm9wLWlucHV0
aW1hZ2UtY29udGVudGVkaXRhYmxlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFz
dC9kcmFnLWFuZC1kcm9wL2RyYWctYW5kLWRyb3AtaW5wdXRpbWFnZS1jb250ZW50ZWRpdGFibGUu
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kcmFnLWFuZC1kcm9wL2RyYWctYW5kLWRyb3At
b2JqZWN0aW1hZ2UtY29udGVudGVkaXRhYmxlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9kcmFnLWFuZC1kcm9wL2RyYWctYW5kLWRyb3Atb2JqZWN0aW1hZ2UtY29udGVudGVk
aXRhYmxlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZHJhZy1hbmQtZHJvcC9yZXNvdXJj
ZXMvb25sb2FkLWltYWdlLnBuZzogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBl
ZDoKKwogMjAxMS0wOC0wOSAgQW5kcmVpIFBvcGVzY3UgIDxhbmRyZWlwQGdvb2dsZS5jb20+CiAK
ICAgICAgICAgW0Nocm9taXVtXSBVcGRhdGUgdGVzdCBleHBlY3RhdGlvbnMgZm9yIGZhc3Qvd3Jp
dGluZy1tb2RlL2phcGFuZXNlLXJsLXRleHQtd2l0aC1icm9rZW4tZm9udC5odG1sCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RyYWctYW5kLWRyb3AvZHJhZy1hbmQtZHJvcC1pbWFnZS1j
b250ZW50ZWRpdGFibGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kcmFnLWFuZC1k
cm9wL2RyYWctYW5kLWRyb3AtaW1hZ2UtY29udGVudGVkaXRhYmxlLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi42ZjA4NmVkY2NiOGQ4YjE1MGY5NDE2NDNkMGFhZDQzMDJmYmVhNDNjCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kcmFnLWFuZC1kcm9wL2RyYWctYW5kLWRyb3At
aW1hZ2UtY29udGVudGVkaXRhYmxlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE3IEBACitUaGlz
IHRlc3QgdmVyaWZ5IGRyYWdnaW5nIGFuIGltYWdlIGluIHRoZSBwYWdlIGtlZXBzIGl0cyBhdHRy
aWJ1dGVzLiBUbyB0ZXN0IG1hbnVhbGx5LCBkcmFnIHRoZSBpbWFnZSBhbmQgZHJvcCBpdCBpbiB0
aGUgcmVjdCB3aXRoIGEgYmx1ZSBib3JkZXIuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCisKKworUEFTUyB0YXJnZXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImltZyIpLmxlbmd0aCBp
cyAxCitQQVNTIHRhcmdldC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW1nIilbMF0uYXR0cmlidXRl
cy5sZW5ndGggaXMgNQorUEFTUyB0YXJnZXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImltZyIpWzBd
LmlkIGlzICJzb3VyY2UiCitQQVNTIHRhcmdldC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW1nIilb
MF0uYWx0IGlzICJhbHQtdGV4dCIKK1BBU1MgdGFyZ2V0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJp
bWciKVswXS5hdHRyaWJ1dGVzWyJpdGVtcHJvcCJdLnZhbHVlIGlzICJzb21lZGF0YSIKK1BBU1Mg
dGFyZ2V0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbWciKVswXS5hdHRyaWJ1dGVzWyJhcmJpdHJh
cnkiXS52YWx1ZSBpcyAiZ3JlZW4iCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kcmFnLWFuZC1k
cm9wL2RyYWctYW5kLWRyb3AtaW1hZ2UtY29udGVudGVkaXRhYmxlLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2RyYWctYW5kLWRyb3AvZHJhZy1hbmQtZHJvcC1pbWFnZS1jb250ZW50ZWRpdGFibGUu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5hMmY1ODkyNTM1ODkxODI5ZTlkNTZjN2EwNWU0MTI5OThkMWIyNDRm
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kcmFnLWFuZC1kcm9wL2RyYWct
YW5kLWRyb3AtaW1hZ2UtY29udGVudGVkaXRhYmxlLmh0bWwKQEAgLTAsMCArMSw2MCBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisjdGFyZ2V0IHsKKyAgICBoZWln
aHQ6IDIwMHB4OworICAgIHdpZHRoOiAyMjBweDsKKyAgICBib3JkZXI6IDVweCBzb2xpZCBibHVl
OworfQorPC9zdHlsZT4KKzwvaGVhZD4KKworPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHAg
aWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGNvbnRlbnRlZGl0YWJsZT10cnVlIGlkPSJ0YXJn
ZXQiPjwvZGl2PgorPGRpdj48aW1nIGlkPSJzb3VyY2UiIHNyYz0icmVzb3VyY2VzL29ubG9hZC1p
bWFnZS5wbmciIGFsdD0iYWx0LXRleHQiIGl0ZW1wcm9wPSJzb21lZGF0YSIgYXJiaXRyYXJ5PSJn
cmVlbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4KK2Rlc2Ny
aXB0aW9uKCdUaGlzIHRlc3QgdmVyaWZ5IGRyYWdnaW5nIGFuIGltYWdlIGluIHRoZSBwYWdlIGtl
ZXBzIGl0cyBhdHRyaWJ1dGVzLiBUbyB0ZXN0IG1hbnVhbGx5LCBkcmFnIHRoZSBpbWFnZSBhbmQg
ZHJvcCBpdCBpbiB0aGUgcmVjdCB3aXRoIGEgYmx1ZSBib3JkZXIuJyk7Citqc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKK3ZhciB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0Jyk7
CisKK2Z1bmN0aW9uIGNvbnRlbnRJbnNlcnRlZCgpIHsKKyAgICBzaG91bGRCZSgndGFyZ2V0Lmdl
dEVsZW1lbnRzQnlUYWdOYW1lKCJpbWciKS5sZW5ndGgnLCAnMScpOworICAgIHNob3VsZEJlKCd0
YXJnZXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImltZyIpWzBdLmF0dHJpYnV0ZXMubGVuZ3RoJywg
JzUnKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3RhcmdldC5nZXRFbGVtZW50c0J5VGFn
TmFtZSgiaW1nIilbMF0uaWQnLCAnc291cmNlJyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCd0YXJnZXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImltZyIpWzBdLmFsdCcsICdhbHQtdGV4dCcp
OworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygndGFyZ2V0LmdldEVsZW1lbnRzQnlUYWdOYW1l
KCJpbWciKVswXS5hdHRyaWJ1dGVzWyJpdGVtcHJvcCJdLnZhbHVlJywgJ3NvbWVkYXRhJyk7Cisg
ICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0YXJnZXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlt
ZyIpWzBdLmF0dHJpYnV0ZXNbImFyYml0cmFyeSJdLnZhbHVlJywgJ2dyZWVuJyk7CisKKyAgICBz
dWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworICAgIGZpbmlzaEpTVGVzdCgpOworfQorZnVuY3Rp
b24gcnVuVGVzdCgpIHsKKyAgICB0YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcignRE9NTm9kZUluc2Vy
dGVkJywgY29udGVudEluc2VydGVkLCBmYWxzZSk7CisgICAgaWYgKCF3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCisgICAgICAgIHJldHVybjsKKworICAgIGxheW91dFRlc3RDb250cm9sbGVy
LndhaXRVbnRpbERvbmUoKTsKKworICAgIGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic291
cmNlIik7CisgICAgeCA9IGUub2Zmc2V0TGVmdCArIGUub2Zmc2V0V2lkdGggLyAyOworICAgIHkg
PSBlLm9mZnNldFRvcCArIGUub2Zmc2V0SGVpZ2h0IC8gMjsKKworICAgIGV2ZW50U2VuZGVyLm1v
dXNlTW92ZVRvKHgsIHkpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgIGV2ZW50
U2VuZGVyLmxlYXBGb3J3YXJkKDEwMCk7CisgICAgZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJ0YXJnZXQiKTsKKyAgICB4ID0gZS5vZmZzZXRMZWZ0ICsgZS5vZmZzZXRXaWR0aCAvIDI7Cisg
ICAgeSA9IGUub2Zmc2V0VG9wICsgZS5vZmZzZXRIZWlnaHQgLyAyOworCisgICAgZXZlbnRTZW5k
ZXIubW91c2VNb3ZlVG8oeCwgeSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworfQorPC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Ry
YWctYW5kLWRyb3AvZHJhZy1hbmQtZHJvcC1pbnB1dGltYWdlLWNvbnRlbnRlZGl0YWJsZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RyYWctYW5kLWRyb3AvZHJhZy1hbmQtZHJvcC1p
bnB1dGltYWdlLWNvbnRlbnRlZGl0YWJsZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjcyYWU1
M2UzN2VhOThjOWM5ODFkOTQ4NTg5MzlmZjJhZDljOTE5MwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZHJhZy1hbmQtZHJvcC9kcmFnLWFuZC1kcm9wLWlucHV0aW1hZ2UtY29u
dGVudGVkaXRhYmxlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE4IEBACitUaGlzIHRlc3QgdmVy
aWZ5IGRyYWdnaW5nIGFuIGltYWdlIGluIHRoZSBwYWdlIGtlZXBzIGl0cyBhdHRyaWJ1dGVzLiBU
byB0ZXN0IG1hbnVhbGx5LCBkcmFnIHRoZSBpbWFnZSBhbmQgZHJvcCBpdCBpbiB0aGUgcmVjdCB3
aXRoIGEgYmx1ZSBib3JkZXIuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCisKKwor
UEFTUyB0YXJnZXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlucHV0IikubGVuZ3RoIGlzIDEKK1BB
U1MgdGFyZ2V0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIpWzBdLmF0dHJpYnV0ZXMubGVu
Z3RoIGlzIDYKK1BBU1MgdGFyZ2V0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIpWzBdLmlk
IGlzICJzb3VyY2UiCitQQVNTIHRhcmdldC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKVsw
XS50eXBlIGlzICJpbWFnZSIKK1BBU1MgdGFyZ2V0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbnB1
dCIpWzBdLmRyYWdnYWJsZSBpcyB0cnVlCitQQVNTIHRhcmdldC5nZXRFbGVtZW50c0J5VGFnTmFt
ZSgiaW5wdXQiKVswXS5hdHRyaWJ1dGVzWyJpdGVtcHJvcCJdLnZhbHVlIGlzICJzb21lZGF0YSIK
K1BBU1MgdGFyZ2V0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIpWzBdLmF0dHJpYnV0ZXNb
ImFyYml0cmFyeSJdLnZhbHVlIGlzICJncmVlbiIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Ry
YWctYW5kLWRyb3AvZHJhZy1hbmQtZHJvcC1pbnB1dGltYWdlLWNvbnRlbnRlZGl0YWJsZS5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9kcmFnLWFuZC1kcm9wL2RyYWctYW5kLWRyb3AtaW5wdXRpbWFn
ZS1jb250ZW50ZWRpdGFibGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYjdjYTM2Y2JjMzhjYTlmMmQ3NGIx
ZGEyMTFlMjY3NDhhMDMwZjZiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9k
cmFnLWFuZC1kcm9wL2RyYWctYW5kLWRyb3AtaW5wdXRpbWFnZS1jb250ZW50ZWRpdGFibGUuaHRt
bApAQCAtMCwwICsxLDYxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzdHls
ZT4KKyN0YXJnZXQgeworICAgIGhlaWdodDogMjAwcHg7CisgICAgd2lkdGg6IDIyMHB4OworICAg
IGJvcmRlcjogNXB4IHNvbGlkIGJsdWU7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorCis8Ym9keSBv
bmxvYWQ9InJ1blRlc3QoKSI+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgY29udGVu
dGVkaXRhYmxlPXRydWUgaWQ9InRhcmdldCI+PC9kaXY+Cis8ZGl2PjxpbnB1dCB0eXBlPSJpbWFn
ZSIgaWQ9InNvdXJjZSIgc3JjPSJyZXNvdXJjZXMvb25sb2FkLWltYWdlLnBuZyIgaXRlbXByb3A9
InNvbWVkYXRhIiBhcmJpdHJhcnk9ImdyZWVuIiBkcmFnZ2FibGU9dHJ1ZT48L2Rpdj4KKzxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1RoaXMgdGVzdCB2
ZXJpZnkgZHJhZ2dpbmcgYW4gaW1hZ2UgaW4gdGhlIHBhZ2Uga2VlcHMgaXRzIGF0dHJpYnV0ZXMu
IFRvIHRlc3QgbWFudWFsbHksIGRyYWcgdGhlIGltYWdlIGFuZCBkcm9wIGl0IGluIHRoZSByZWN0
IHdpdGggYSBibHVlIGJvcmRlci4nKTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOwordmFyIHRhcmdl
dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKTsKKworZnVuY3Rpb24gY29udGVu
dEluc2VydGVkKCkgeworICAgIHNob3VsZEJlKCd0YXJnZXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUo
ImlucHV0IikubGVuZ3RoJywgJzEnKTsKKyAgICBzaG91bGRCZSgndGFyZ2V0LmdldEVsZW1lbnRz
QnlUYWdOYW1lKCJpbnB1dCIpWzBdLmF0dHJpYnV0ZXMubGVuZ3RoJywgJzYnKTsKKyAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoJ3RhcmdldC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKVsw
XS5pZCcsICdzb3VyY2UnKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3RhcmdldC5nZXRF
bGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKVswXS50eXBlJywgJ2ltYWdlJyk7CisgICAgc2hvdWxk
QmVUcnVlKCd0YXJnZXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlucHV0IilbMF0uZHJhZ2dhYmxl
Jyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0YXJnZXQuZ2V0RWxlbWVudHNCeVRhZ05h
bWUoImlucHV0IilbMF0uYXR0cmlidXRlc1siaXRlbXByb3AiXS52YWx1ZScsICdzb21lZGF0YScp
OworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygndGFyZ2V0LmdldEVsZW1lbnRzQnlUYWdOYW1l
KCJpbnB1dCIpWzBdLmF0dHJpYnV0ZXNbImFyYml0cmFyeSJdLnZhbHVlJywgJ2dyZWVuJyk7CisK
KyAgICBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworICAgIGZpbmlzaEpTVGVzdCgpOworfQor
ZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICB0YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcignRE9NTm9k
ZUluc2VydGVkJywgY29udGVudEluc2VydGVkLCBmYWxzZSk7CisgICAgaWYgKCF3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIHJldHVybjsKKworICAgIGxheW91dFRlc3RDb250
cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKworICAgIGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgic291cmNlIik7CisgICAgeCA9IGUub2Zmc2V0TGVmdCArIGUub2Zmc2V0V2lkdGggLyAyOwor
ICAgIHkgPSBlLm9mZnNldFRvcCArIGUub2Zmc2V0SGVpZ2h0IC8gMjsKKworICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlTW92ZVRvKHgsIHkpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAg
IGV2ZW50U2VuZGVyLmxlYXBGb3J3YXJkKDEwMCk7CisgICAgZSA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJ0YXJnZXQiKTsKKyAgICB4ID0gZS5vZmZzZXRMZWZ0ICsgZS5vZmZzZXRXaWR0aCAv
IDI7CisgICAgeSA9IGUub2Zmc2V0VG9wICsgZS5vZmZzZXRIZWlnaHQgLyAyOworCisgICAgZXZl
bnRTZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOwor
fQorPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2RyYWctYW5kLWRyb3AvZHJhZy1hbmQtZHJvcC1vYmplY3RpbWFnZS1jb250ZW50ZWRpdGFi
bGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kcmFnLWFuZC1kcm9wL2RyYWctYW5k
LWRyb3Atb2JqZWN0aW1hZ2UtY29udGVudGVkaXRhYmxlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5mZGUzNmEwODBiYmE3ZTViYTBiMmUwM2U0MDZiYTg1NGIzZTRmOWExCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kcmFnLWFuZC1kcm9wL2RyYWctYW5kLWRyb3Atb2JqZWN0
aW1hZ2UtY29udGVudGVkaXRhYmxlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE4IEBACitUaGlz
IHRlc3QgdmVyaWZ5IGRyYWdnaW5nIGFuIGltYWdlIGluIHRoZSBwYWdlIGtlZXBzIGl0cyBhdHRy
aWJ1dGVzLiBUbyB0ZXN0IG1hbnVhbGx5LCBkcmFnIHRoZSBpbWFnZSBhbmQgZHJvcCBpdCBpbiB0
aGUgcmVjdCB3aXRoIGEgYmx1ZSBib3JkZXIuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCisKKworUEFTUyB0YXJnZXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIm9iamVjdCIpLmxlbmd0
aCBpcyAxCitQQVNTIHRhcmdldC5nZXRFbGVtZW50c0J5VGFnTmFtZSgib2JqZWN0IilbMF0uYXR0
cmlidXRlcy5sZW5ndGggaXMgNgorUEFTUyB0YXJnZXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIm9i
amVjdCIpWzBdLmlkIGlzICJzb3VyY2UiCitQQVNTIHRhcmdldC5nZXRFbGVtZW50c0J5VGFnTmFt
ZSgib2JqZWN0IilbMF0udHlwZSBpcyAiaW1hZ2UvcG5nIgorUEFTUyB0YXJnZXQuZ2V0RWxlbWVu
dHNCeVRhZ05hbWUoIm9iamVjdCIpWzBdLmRyYWdnYWJsZSBpcyB0cnVlCitQQVNTIHRhcmdldC5n
ZXRFbGVtZW50c0J5VGFnTmFtZSgib2JqZWN0IilbMF0uYXR0cmlidXRlc1siaXRlbXByb3AiXS52
YWx1ZSBpcyAic29tZWRhdGEiCitQQVNTIHRhcmdldC5nZXRFbGVtZW50c0J5VGFnTmFtZSgib2Jq
ZWN0IilbMF0uYXR0cmlidXRlc1siYXJiaXRyYXJ5Il0udmFsdWUgaXMgImdyZWVuIgorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZHJhZy1hbmQtZHJvcC9kcmFnLWFuZC1kcm9wLW9iamVjdGltYWdl
LWNvbnRlbnRlZGl0YWJsZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kcmFnLWFuZC1kcm9wL2Ry
YWctYW5kLWRyb3Atb2JqZWN0aW1hZ2UtY29udGVudGVkaXRhYmxlLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MWNkZDc4NDY4ZjZiZmMyNDAxZmE1NWU4YjU0YWFmZTBlMTM4YTkxMgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZHJhZy1hbmQtZHJvcC9kcmFnLWFuZC1kcm9wLW9iamVjdGlt
YWdlLWNvbnRlbnRlZGl0YWJsZS5odG1sCkBAIC0wLDAgKzEsNjEgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorI3RhcmdldCB7CisgICAgaGVpZ2h0OiAyMDBweDsK
KyAgICB3aWR0aDogMjIwcHg7CisgICAgYm9yZGVyOiA1cHggc29saWQgYmx1ZTsKK30KKzwvc3R5
bGU+Cis8L2hlYWQ+CisKKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwIGlkPSJkZXNjcmlw
dGlvbiI+PC9wPgorPGRpdiBjb250ZW50ZWRpdGFibGU9dHJ1ZSBpZD0idGFyZ2V0Ij48L2Rpdj4K
KzxkaXY+PG9iamVjdCBpZD0ic291cmNlIiBkYXRhPSJyZXNvdXJjZXMvb25sb2FkLWltYWdlLnBu
ZyIgdHlwZT0iaW1hZ2UvcG5nIiBpdGVtcHJvcD0ic29tZWRhdGEiIGFyYml0cmFyeT0iZ3JlZW4i
IGRyYWdnYWJsZT10cnVlPjwvb2JqZWN0PjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
CisKKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGhpcyB0ZXN0IHZlcmlmeSBkcmFnZ2luZyBhbiBp
bWFnZSBpbiB0aGUgcGFnZSBrZWVwcyBpdHMgYXR0cmlidXRlcy4gVG8gdGVzdCBtYW51YWxseSwg
ZHJhZyB0aGUgaW1hZ2UgYW5kIGRyb3AgaXQgaW4gdGhlIHJlY3Qgd2l0aCBhIGJsdWUgYm9yZGVy
LicpOworanNUZXN0SXNBc3luYyA9IHRydWU7Cit2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ3RhcmdldCcpOworCitmdW5jdGlvbiBjb250ZW50SW5zZXJ0ZWQoKSB7CisgICAg
c2hvdWxkQmUoJ3RhcmdldC5nZXRFbGVtZW50c0J5VGFnTmFtZSgib2JqZWN0IikubGVuZ3RoJywg
JzEnKTsKKyAgICBzaG91bGRCZSgndGFyZ2V0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJvYmplY3Qi
KVswXS5hdHRyaWJ1dGVzLmxlbmd0aCcsICc2Jyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCd0YXJnZXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIm9iamVjdCIpWzBdLmlkJywgJ3NvdXJjZScp
OworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygndGFyZ2V0LmdldEVsZW1lbnRzQnlUYWdOYW1l
KCJvYmplY3QiKVswXS50eXBlJywgJ2ltYWdlL3BuZycpOworICAgIHNob3VsZEJlVHJ1ZSgndGFy
Z2V0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJvYmplY3QiKVswXS5kcmFnZ2FibGUnKTsKKyAgICBz
aG91bGRCZUVxdWFsVG9TdHJpbmcoJ3RhcmdldC5nZXRFbGVtZW50c0J5VGFnTmFtZSgib2JqZWN0
IilbMF0uYXR0cmlidXRlc1siaXRlbXByb3AiXS52YWx1ZScsICdzb21lZGF0YScpOworICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygndGFyZ2V0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJvYmplY3Qi
KVswXS5hdHRyaWJ1dGVzWyJhcmJpdHJhcnkiXS52YWx1ZScsICdncmVlbicpOworCisgICAgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KK2Z1bmN0aW9u
IHJ1blRlc3QoKSB7CisgICAgdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTU5vZGVJbnNlcnRl
ZCcsIGNvbnRlbnRJbnNlcnRlZCwgZmFsc2UpOworICAgIGlmICghd2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQorICAgICAgICByZXR1cm47CisKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53
YWl0VW50aWxEb25lKCk7CisKKyAgICBlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNvdXJj
ZSIpOworICAgIHggPSBlLm9mZnNldExlZnQgKyBlLm9mZnNldFdpZHRoIC8gMjsKKyAgICB5ID0g
ZS5vZmZzZXRUb3AgKyBlLm9mZnNldEhlaWdodCAvIDI7CisKKyAgICBldmVudFNlbmRlci5tb3Vz
ZU1vdmVUbyh4LCB5KTsKKyAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICBldmVudFNl
bmRlci5sZWFwRm9yd2FyZCgxMDApOworICAgIGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
dGFyZ2V0Iik7CisgICAgeCA9IGUub2Zmc2V0TGVmdCArIGUub2Zmc2V0V2lkdGggLyAyOworICAg
IHkgPSBlLm9mZnNldFRvcCArIGUub2Zmc2V0SGVpZ2h0IC8gMjsKKworICAgIGV2ZW50U2VuZGVy
Lm1vdXNlTW92ZVRvKHgsIHkpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKK30KKzwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kcmFn
LWFuZC1kcm9wL3Jlc291cmNlcy9vbmxvYWQtaW1hZ2UucG5nIGIvTGF5b3V0VGVzdHMvZmFzdC9k
cmFnLWFuZC1kcm9wL3Jlc291cmNlcy9vbmxvYWQtaW1hZ2UucG5nCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc5ZTQ1
OTg5NGM5NTU2ZDA3Mzk4NDU2ODIwMTAzZjQ2N2VkNzYxOWEKR0lUIGJpbmFyeSBwYXRjaApsaXRl
cmFsIDM2NTQxCnpjbVYpUUsoeFAhUCk8aDszS3xMazAwMGUxTkpMVHEwMDdxajAwNkVDMV5AczZy
QklsPjAwMDA0WEYqTHQwMDdxNQp6KUs2RzQwMDAwUGJWWFFuUSpVTjtjVlRqNjA2fURMVnIzdm5a
REQ2K1FlfE9lZDJ6e1FKT0JXV1BmMHtVUkN3QyMKemVGdkNhUzkkaChyfXdoR19vQXxAUiZUWj4l
ZCtIKD5CYW5rNmQoIXczRkx1TExMZG9BekBmIXA5MUpudEhhMGY0CnohTSEpeGxCYH08K1NUckFk
IU9FQz8pfF4tKyZpPGdPX0NlZnsybzF7blZvWHltaCt6WHtweWl3RTMxJmJEVDsjcAp6bjxQbmlC
WDdLWW9sYnxoWl97dTIqQ0czeUFOZTJPV0xjS3hJRzJpRXIrP0YqUHVoMyZTWjBqMT8wQ3Eoem09
fmEKei13a2dNPCtzTDdRYihIQGFlQlI4SlhkNHxHRj9UelVJMjxtdE5pd3ZkaF5gPXpYI1d1dnBz
KlgtenY2Qzw/cjJJCnp4QE9CVkBBQzNPYjczLS1OdUNgfGo2QyQ+Xz98blReQnA5ZEw+Zz1CRyNt
KmFObSk+M0dCVkJqM2dKbVhEdyRVMwp6P35LSzJsRHV3KklVST5nSS1RaUUmIXJoKWJXRi15PF4x
Tz5yPzxpTl9VK1pNantiKGZze08+SHxGaXBKYXlwVU8KemZCMDxvT1EoV1NyYDJGcyhjLXgxaXl6
PG9TRChGcFZDMzJqMXolTVo9VGkoTUxXaHpgWE9LIX5XQ200bnEwNDVzCnpuWjBoZXk+UD9ZZz5A
Y31xcGh+T1dGYypRXndYY2U8KlNsVFpfdERrMTEkNlFTJGBXYHwzM2lCXjEjMD54VCZuNwp6WDRt
Jl8reUJFfktSTmJQR0A8SiFESGtVYWtfYjV0eVkqenRjUnR6aiE3cU5PP2lhVF9Gen50a1hBQUVx
K3NXSjEKelNZQ1k1dmN7IUdxb01WcDwmOTAlbHw+Q0VsZDthPnUtRlpIZ1YySERhNGdXJFNhSkt3
antZdS0kdGF7RHZFTiZZCnp6MXt9YitxVm40djg+QlZ4PiE2ZXtyZzkxez1UJWw/N0R5YXspPlAy
X2AlNEZpWHNzTFdQMnUrdjczeFd2Jig2Qgp6SXZ3YFItM0pPREFDRHg8LT96USQyYlZneGVSQSFa
cktMOGp4IWhfczV6WnRlbFdDLWgkcnYmNVNiYG9DO2BiflQKemxlP3Y8Oy1WQW5lRktgXm1DfjUm
WkUoRX11RDNMWmE8KTxTUDloRitNbk4qMmxwP1ctOz4qXnF7SyZIaGRWbHImCnokI2pSOzw3JXZ+
RU94QjlzSE0qQndBVT9PU1d7T35SIX5SYXNXbGpNQm9aYSlgeVlqKF5zT3xSUnpPeFZoKHV5QAp6
cUNgQEM4ejlfYXtoSFFJenEjKikkMjM2MnZ5UDlxWipQT150cTNHYCZxO3p3NnRheW44SEg+a2co
UDA0ITBXUU8KejMkMCN+YT5iNDE2fXgxflRycnJhU0BPZzB5ISlHVkg2XyloQ0VnT1olVnNiYl5o
bD1DTldfd2UjU2AhY0FfIz99CnpQLUhpM20/WEl1aDIzVFd2KF5scURJUWR9eWhMbzRNcEojK0Am
ZDJaNk5ARjJCc2NrKj5mVi15Wi1lVkMhQTJaYwp6JH1sQ2Q8fDA2KVE8O3BPeilARD5hUz0hZzh0
Y25TJHRHSDBHOHROekVVSW0odDB9SjZObTRfMWNhT14kLWgoWmgKejdqQ0wpcylmczgxPSZwV3tX
T3deNmFpQylGQSR7SFpFKEErQj5qPypPYlNlajR2OW4oUjshVXZ0ZT9KPGlqcWY2CnojRV97SjhY
SE8qOHRPYCQ0anQocCpYdkQmRWNvQStoSHIhR2tMR0tiVkl5VlBOWn1qMXl2ZmNIWX4qbn1Pdk9j
Pgp6OyQkald2fitRTzxGZEI7Q1hkXmBWRCZ7IUVia2deUiNUUDVWbCooenE/bkJlSVBwWFJDYkp6
PEkwSHZ8MEF9TU4KeiE5byZiYGItOExgeVdRM0RGUWhlIW9FQFphYVRSYGdybFpIR2UtUnFPbVlT
P0dvekZyJSUxe1BfTmdMRTFWWGNBCnopJCllNjFCYmZ5KE12fFVHYX1QKDVBVjBaXkBhb0o5Qmps
aHlQfm0/T3A7MHxEPWx5dVA1TUhRJVUqb1JybHBINAp6UiUzSChiN2dDRExxJER9QGRqY1N4N0I3
d2FlKyVYNz0rdUw3JF8ycnRBbjBFRGJyPzJEI0MwcjsmaVlJMyhIZ0oKelphPEV0N3ArN2hwMlg+
d3BGbyl7MjN6cWB2MTR1Q1ZaNDBjMEcyTVFmITxWeHB1dkhIak92cTZHWn5jR2huNHBkCno7VTZv
TyowMGcmckMtc1gyQFBCbFBhSlBjIT8oZnBkVj90K05WLXtVTD13O0t3aX0zemlzKXJlK29IT0xN
WGw4Zgp6SlJWbztpZShMcjk9RU8wWSZLT28+fUc/V0oje1NPTlY0JVE2aVVQSTQ/fEIjQmV1IWBE
bz9rR3lHfVM4Nm5IQmQKeihLVGBzaXlFeU1JUXxUYk4qcEVENUtRKUptfGN+fiNDP0ZYMHlnN3x4
YndsSXNIX2NSPD5zOXZBTjJ5WHdDaGwwCnpXIWdOIUw/LUVVPkxkTVFpTWdQO1ZxdEFuYVlmKFlN
QVQkNz1ydHlPSktwcyt4THorZFFZM2FSQGFTZSVBJkpKUgp6TEZ2LWMwKkJkVEVPZmdhTWNYZjQo
TXJzLXB0LVRLck0wPUxKe1N4JlRGZlNJTndIVlJHUFlxOVZPYDA+P2glVE4KelVTTjxCQzwhbitH
M1pHbSFlWjc+MUMrYHBpdHlsWmhMWUtBQWRuY0tsKGdkSSZIKmZ+QWFJNXdjPEpSWFkrTikoCnp2
TS1jN2tjUWY3bG9Od2xVMyRkJnBOOFVlQVpvQmRHTUpjfSlEUCh4JEVxbyU9NTB0JjI9cD58emZr
ZGtpPXxLWAp6X1p5eCkpZllTNi1SSkEqazEyeUJEZFNNbnFTOH00RClRZ3tzRWsldVJoXiVLbDZN
bVNibkhhS1RMP15adjYwQkYKek9DP2gqJm9YdzBSYWFKOFNWLTUkeUtISDUpIzhRcTN0VWQ/bDlr
SV8+V1Rfbk8oZ2ZLPl42JnVaNkVmc3V8JGhTCnpWP3g0Mz19fHttVkd4UHklQEpPM3MhPllWUUNZ
QGRQKVB6bmtecT8pPStrQCQ+aUElQSp7eD5yZVZNampTWFAwNAp6Oyp0Mm8wSUVDXlQoeV49V1pe
Wmk3UFlgPUVrR3QyTXJAKSgjZ04mOT15KkY0ZmoqYHZ1fElzUSorLSFZTmVVXyUKeitJQXtSK2ZV
Tj5CaHV3TmltdUcwViFKWV9jc1FMMTM/QFFEP1pjek42SGchVj9TRT9UO0woQCtGcnRBaFAxfSsr
CnpqUXYzZWIzO3c3QWEkTFpWWFVYMDd0U0pzTDcmWnklPjFjPE9uUUBMI1leWEFxY25UI2M8ej08
Tih2bHl5UzMwawp6X2lkTX5ZSH5VNGk+cz9qVDkmcG8pfDBKTVo/bD88RXk4aTgybkojUkYmSmM3
JlBoM2JaUEZKWUBUQjFOSTBlJjQKejhjczVxR3t6QGAwKEFXMkNaaXNsQWo/MnVhMjZJZ1ZiRypt
N0Y0YCMhSTxmXjBCPH49TE1SZikoQkxRJXpGcmhyCnpmQG9hMDRoM309IShQfTNpP15RR0Q/enty
MzRrelEzP3x5SClnIWk7anQyLV5kWj9ENm9WenxjQG10S1cxZz47awp6ZlEtTjt3diYkZ2slfj9y
OWgqY2xHS3gkaGZPSH1mT0RCUm9AJGtzO3J3QCFne09kPURwV1dZYDdeRj1sd1pZN0QKeilFaz1n
dDJ2SHpubXgjUitEeERfJl5fc0wrNE1ldENgUmduRl8qXmw2dDFAJSRnKX1TWnc3R1h2eW1oS0Fs
TjkpCnpnSX43V1pUaXhaMHh4flVMdV4jRHc1QHBvJC0yZU1tJHVaRW1sWlZ7anJ0bTVCUXJDRiVt
YlFhNV5xRDFSWXdDZgp6aGslbF5qaXckTTRCPCEmSzdTQlNoWHJuejljb3hmZnpLQzBGY2R7Ym5G
NkVPTmc1c2BCakkpMSRSM2dmaCF7fDgKem1vWjQkIUkzNWFgZX5iU3t9OEl9bGR3N3BWS09eVytW
KCEhaVdWUnA5ZmkoaGhyIX4zLWVASE55Kj5nVzNzaG4rCnowdT88YmYme1A7cSN8UjgybTZ0dmRu
ejdFJWJDUjRffmhCPWZBanA8e3JgTDQhMUxvIzFkeH42QHBgaXYwWlhSPQp6aXgxU29fam8qTUc/
fFIxenh3RXZANEU4eGIoajY8cnd7emstUzw4N3NHTCNLN0s9JkYrYUxMQDJDejJeeGNIX0UKemco
NGFMdCtLS3J0SWNMRENQcGdXZGh3Y2l1Z0E1ZHM7YWJrTm1+OyRRTjdoX0VAZGBpcHM8NjEyWDtQ
KTZ2KSVTCnpxaDFudVBHSXEhZnhyd0UzYElvSCo2cCZ2VztNfmFRd1JoamZgUjAkeV81R3tnSStI
e0NOa0FFSHNzJlBxLUJoYQp6aktVPWtxU1J2KnU2VSFaNU4zQlo/OE9WPXQ9c1lreX5yI3puYkMt
fjIrJE02WHladFAxXzw7JGkySGc3WG8wd3IKemp2cyNjTUJoQygtcmFaNDtqVHBnPmtUcHVTTyQl
KXRUYmBqTFpQVGBYPEl8Zj1sPWRacFdMKjUkKDZHREUyJEArCnpJc0Eob3pJKEBpY1hhZmhGYEpE
YnNoSE9HTX04fHcjYTlGX2AzK0pHe1FIRms5X3dISmBGcFJpU3VKYXFFbm09Rgp6VVJ1O1pZKmFe
VldZSUFqNWVwO3xpNSFUT29JSH1KMFk9R3xHaWlXMjdoYDJ6Kz1gTmNOTE0xfTtWY1F4a1lHbX0K
ekFGcDV9VmsyZFN2bSRxVyNwWUJ7QCVLbERNXkt7Z019ZHB2clBUJENydy1QX1d8RHBsRmd3YyRX
Sk1QUzIocUVyCnopPyU1K0FQX2NIRGs+elNkUW5zdnR1dDY0PjViNW5qTU5oZ25yeWB8ZHVvVVla
U3cqeDc0ciQlJFVzWW1oWV8zWAp6NnQ8bV5rTGdyPD1oPms8enhTSyYrbit0Mj84JD1jKXloUTtS
OG0jfkdPIVpLbCFmZTUrZEhxPnhjaWVJeVhJNDYKeldyZnd6U1ZEWV49Mih1YEFyT2UzejRhRmxl
Znlgc2RpYWgmQVJII3k0e2N4NFp4dDRNV3l+Y1padzd6O2g+S19YCno+Wik/KmdUTWRyR2NLMjdT
dTdlQWdQT2YjTFhQRG1uTEhhUHgjI2ohRU5CTWsmSUsmPmR1a3BhPWtTVTY2ZnNlWgp6ZkdwJTkw
Z2RHeXJwMX0ySyZGMEkjd2FzWXgoXzhENlVvMEswVnRNITAjdlRiYz9Xd0lOVEk9KCNiQSY1eTJR
WHwKejVYcT9zSipJT2Aze15IdCF2MGU0TWdvPnVKbEUrPnc3K1Q5Q1pxMlBzWkdEaFktdz4tISZT
WCoqNiRgbCFecUhZCnpDOEp8Vmg2VitRQmNzUHZGdzYzcFF7N2BmenYxPz96ZERyMVdVcXc5Rys/
bzlXbnV8UFUkc1N8MzFmWTJZMy0qegp6ZSR+Z1h6R0Q0KihrVjVWdUVyQkklWVl0QGRJUVdCR1kl
WjtjPGpjVEBCWVQpUGFTeFBXVm04Nzg4Vm9qbCZ0KG8KemZRdWpISmNJaTZ5Nkk/P3EqQ2VCeDQt
JHRvMzZRZmB6SXBkaCZvNnhvMCtEOFhrSzlER25zciZVfWJeQT4/STMlCnpyIXBEODl9R3FqaU4+
YSFBMzMmQ0dgMGMpe3QoanNGNFRINXUtTHRANn1HQHUobmdPPjFnZEljN1cxNlBvRDdkMwp6SmJa
ezQ8MXtoSmdzX0w/UjlNKGEhWkFVUXtDNnJEQlF7bXtpKk5DeTQ2XnJ5Tz0hMldiNDNxPiojKjdY
NFdyY3kKenFyRnJ9UGAyVGktNTYqTFIrZmQjYUBLLUljdTFDLVR+KldlZyY4Yk9qRnVwS0VhcDJ5
YCp1VkY4NGY8V2ZCZF4mCnp5MCFPeWBlLUR9OU9uWEFwM31tcC1FRE16dHQ2ayNKR0wmcjxSM3Il
dUZxQ2k2Km9qPE5mQTx6RmRiT2dOMTdnQgp6QSVHPVFuYjRqMEphekxleEJsKmp5P3cqT3EtRz90
KE5sUjI1OUxuK1R6blRFeDdZRF9eZmN7cSo3cnlMPzQ5clUKej1QJil1P1RMNmlDJDs4aHBfeWBV
cmshPSt6PyN8P1RgalZgY3dnQVQhSHgtOFIlWFNvdlRRWmorbDI8XzViVS1CCnohQkNFfTx6biNp
VTJrJkMzOD5KKEp+NFFPRyRZJGJjPVg1P04pZGFFYHtFZShyNFd1fjsxOCNmQnR9b0EpJjFxcgp6
S3F7bGcmYSY1b1VvKV58cnVTYFQ5WDsyPEw0ZmwoXm55VlBpXzY3K0AmMV9YQ0JtITcodlJnUHYh
SnRMNiQrWCEKeiZxLUFWUnc2VmNfS0JTeWsrR0FBajJ1UWRGckd9TDxwK0xuU0ktVDE/RmsqcWRL
WUhgRUg4eUQ+anx7KnUwQEhoCnpOPXd+a3BadSVjZkFQKyVILTNvci07QCsjalZ6ZFM9TERGSm5B
dHxNdTs9WFh2SCR0O2VLKntGQDYqNGg/PGRMcgp6ZXA1UjxVS1AwYntmd00+Sjs3eTJyISZUP3M8
T3U0LXUxbWwkJXJrPlhsWHhDPGFyb01wMk48WDR4fkIzSVMxPU8Kekl8KSQmSDV1ODZpOD83Y0ZY
TGowLVNgIzFGOT8wYEd8SFQ1U2U+T2JOSDJuO2JRdnNTNUVzdW56VWNUViFCVUNmCnowNUtHP0x9
WG1CZl5Udkh5YHVeQWswbFVeWDlTUiNuSmd3OSQ8bUM3a3MwO3NJWDdzckgpZ0ZRTmh6YTJyIWlT
Wgp6NFF3bU8xK0RxfXsySmZRTWhTJjNCTzF5cnVvdT9EVWIrTlVQcHhwPiQwcEFSS3J4RklFeFpv
eW5oaiMmTmNoakgKelVkNjBiOTY1XjctczNkTG1BKFV+Z1d2ZTRvNFJpYzBVWV5HWEtrQE93bFpp
ayZgUV9UTn5+a3J3cV4xOSY7MEd4CnpwSnsyVFRwQTtga2A+R1dydWhKLXktcyhOKitsWiFBVjB0
Nz0mISVgZ1MpPXsoKjZAQ0VFYmJ3RzhwTDB6NDtzLQp6dUxAalFmYmxIPEkpT2Axbj0+MVkyRm9v
c3xJMDdkdFpMZzhxayVwaDcjQVczJiU8IX07TDNocW1QSyRsNnAwR1AKek82TmVXTyFFJEEtVERL
NHtiO2FzbFUlV2pmJEEoQHExc2xTeD4qdTFKYlZ+WW4qQ0Y7TnhAOWZ2Mzg2UHcmUWVQCno2YShX
KSFBXlc/MSZ7fmBSPG1BIXNJa0l8eC10dWozY042fTZOQ1dFKHZLWSVZLWcjbHU4ZmQ7Pn1wcTtr
TCkjSwp6cUBuUXlgVXRFTyFFX0ZJUE1hUWZpKFVZZFMqQG5UMChhUiQqaD8wUkZoSkpVR0M5Z255
eSVfcSlMJGFEJWRhIWoKekZebG04NWdPYyZ7JFlSR1d8cj4jPlFCND48PUpEQTR5KG5JYXlndWUt
RGI7b3ZEOyh1cXx4Y0g3Sm1GQW13eHl8CnpAN2VxanF0V097Qi03Sj9iNzI2fUxDUitgTmVfJEZq
N1RePl52Z1JReCQjRm94JlA7KlZ9M3ZWN0pIbk5aemhNdwp6c3xIdjBiRlQtMz1fQz1USHc2TT0t
SXU9YnV9Xj5FV0FGUmRhNSRfRUBMNWliUzFTaSsraHEpeFhmIVRkQGJQI2UKeiZtJWI3elQkWT5j
Ozg5WEowQFVwNnYwKXNNekVEdCpqODF1bjJIQjAkQ3xQO2VeMXdHd0QoM2E+UTQlR1ZsJDU4CnpW
PGxkYjBNb0xDKW9Aaj1BdXZebDBuZitId2h9VzhnR2JIOE5OQzxkTVJPUCQjTE8te2hCfkEwN1A0
YlFPbm1XNAp6MHB8WG02WUI1ISlTTzdLKCtJYSsxeldNbGh+a29SNWdzciglWTw4PThQLUN+Uj1W
dU5me31TMlYhbSNxIWI2QT0KenFsRjF6Q3IpKzI+bzZSLV5VMn1RfEtpRXV2a3RvPkwqVVp1YnZn
XiNSa25Ce1duOHRRZSNJQzV7QFR3aFN6TlEwCnpnWHBUZiozRHVqREd4KypnSEVTOzV2VHZISHlC
e0VUNTtzcW5QLTErJVJNKGR7T0YhJUlOUVcqN099Q1UyQ3pSVwp6JFgqazt2WSZtZTl6K3IzKCY+
eUdQK1l5YlpTfTNVe00qQWNsMXlUfD1WZE1WMF9gayQrVkAjQDI3P2c8TGdCcHEKem0qKWYpKiRo
YUc5NmBCZGxCODc9JCl9Q1BURlpualczYWUkJEhETzxfV0NnKCpzY2xtSzhJNSRrRDxNZjJYeyk/
CnpNKkxHTyt0d3t8VmV3THVsalc8M2xeaH1xTGotej5mJXlBayhqbFBheW5AVkZKZ3toZ244RVRo
SDZXWlpERkhycQp6LURraGNBVD9NRTFvKEo9e0FadVIofXgyWG89Z2ZodDAqKUh1PGB5Pm1LT19X
M309TjE4OTNhSiU3enN2enZ3U1QKelQyX0syQkZqVnVUNkY5PHg7bD10bXY4KmNhT14rLTxNek5F
R3wrWEt2fD1EaEBCSFdveDRoQDBBRy1KeGNBTGRaCnpLK31NZXQodnwtZkp3N0lEYG1ebUBfPVR3
bX0hRFhebnIpPi0xXjxgLVR3V3FwMjEjdk9+PCpVZjklKjs3Rj5GZAp6JVhROFNpdXU1bXBTbT0m
bmQ2MXR2akFnLU5EUHZeViVMXlNvZW89Pm9HckpRK1RHYzxsWS1mN2daeDwzWSYoa3MKeiZ5JD5h
S35pdlA+JDhFeW8+QVh+QUxpZzhsdnBCZ21Ndz47P3FjQnh1b1cqTHJrSFpDdnQoaSRNb3pgeD98
Qk5ICnpgK3RLY19JQmVHMG1+T2tCU0Nnak9eRiVyek8oXmJjVkNhWHcoV0cjMkUtOyMzNUg+Qm9l
MjA1OHxldVFzPkl+NQp6SyRfa2dRbEY9eSNFS2B5WEVOLWpQc2M9ak4+N3FlQ3RpeitTZW43Jmgy
Q2Zwbkh0SF5rZyUmKk1sdXQldD1ORGkKempjKU9LMlJnI1NkMTR+RG1gdWN3QkprKWswVERXfEpI
MkZROVl4b25gKFpXRmNndlMrM34zT0A/WCgkPzIjP3YpCno4UmUycWk+O09pVWg8el92YXFgNC1A
byooRlRlWlJINk56XndQdGZNaz9qeUNXZk1mRD42eE9yazRWI0JvQSRTYQp6PkUmJGRIWnAxenhO
KnRpclp1fkVabiFMJk57NWYxPTwxfCNscCE8MkBNY0p6ZGV6Snw2USE/TzhxJHNKdTI/THQKenlX
dX1Te29RdzZ4OHUpK09NWUdfI3coWURZJUBoO0YkRFohOHRrYiNxfjtWKjhDY19eNkRXdXVoUXBY
MzhNc2N8CnoqLW8oKXdkVkZhOXJHaFJhIytOYSpiX0s8Pn49aHtaJjFpVGMyS1pBd1Y9al4lZUps
flRWfFdFeSU+Wm54N2MwSQp6IUN3S0VyMFJ4ZXd1dUhPRmNDODFnK3A9ZEtONSR8Vm5vbEcxU2I3
WClHc3ZQXngraEpNfX5wTVBVfHU9ViZlaFcKejlZIT1aVz5EQGk7RypVKiUxYSZLPjs/dTNnUDIq
MzxzfTFALVMrJUM9TitDb0ArY25OP31OPnYhPWhUN2FES1MjCnoyM1RGPzsmYnVJUDh7d0dVfWFr
IUQlWDYxU2teNkFqR1ombHYxMXRPSzgmdXhYaHZed0E2VF5jK000PmhsRn00Uwp6QiRBWThEQHxq
anhmeDhGI2MxY1V6alUpNTl2bUFwOHRIRHJPWiQlQmB8VFRsXzAyc205ekFUZjche016Xyh6RzIK
enk9R1pCYjdRWVg4blR4dTlGN3tVfEtMXmNgMDc3PntPNnBKQXVJQ3lqKldiOC16P0FLXnZ8O0VK
UTl0OT5eZGFWCno9fj0qPjc4X0dJQ2BgYkw5ZlpASTU7RCtQdjY+e0BhIyswJFF3fEd+UGluR2sy
eEdfWiNRckBgMm5pVUMlTHFvKAp6QilmPkl1Ml9xTHJrdyYlP0FxcD0kekNMYXphc0NDN3wxdT1m
aFVnSHZHPUdPPDkta1JgRyZ0bVEqJH1LX3VZciMKemJ+KF94JGIpcHMzV3diY2NZJWR8USV+UV5r
ZSElQlFqVEx9QWNEej4wMWY7STQhJCZvIUdRP15NdH4tVDQ0UH14Cnp4Tzd6JXdNOXt+NSEtfk1X
T2h3UCMmVTVsLXY1MmkrPjdVcTI4QVB+d2MwQT1CQ3s4TmhMZTV8b2Y/UDdWWmgydQp6SnxHd3s+
KFhjRDlxbTFXcWdAZktTayhxKyV7c1c8NG8rRTgwZF83MiNhdiMmSWM9QF48ZV5VY1RibE5fKW5Z
e34Kem99OVNqJlBUcmc8RGNBbll5Wkg9eE5VbERFTmhSd2ItP3ZuKl58OVokejxBQ1JhdyQ+JiMl
QXIyK2gydW5OMGZKCnp0YVQyRE19N3RkK2dDbitYaCFeTzkkKmNSIXlQPmN3PCN0OXVDRDQwZzBa
WHhPfVUqN151OW0/Kmh3P3s4NFQ/Rwp6OXYqd0todloqTUk0Y3E8MXN+Wn1pUEJ9KWk/fFV4SCZ+
X190WHVfPyZiaV9ySSVMRHNgeUg0SlJidVZ0Vz5pI0cKeighQ3M7Rko2ZSFHOGd1fCg1VktFYldu
ckhpVWdBZE5SVWFVbSZrNzkwSVdfczEkMStgYmNscEM7RDt4JXxEXiRSCnpvZjwlSVokRGd+QVFu
ezB4Tk48RzFfQlFVbiZvcy0wRWRCWUB6ZTsxI3pUKWhoQkpkUHRYYmReS3gzUFI4SEBwVgp6cUg3
VyhXSUpBUSordnckVHFSeDszYFd2KXU7JjwjX2U4TEsjUyM9V3VaUFFOcDkwdCUzP0BsNDhTUHk1
bSttfkAKem9lZk9BaD5oOU0paXRwSGRwSDAzaEl7WFNAPT55XygtekFnRTtqYT5aTFQqMFYyTU9C
eF87ZX40YnwxOU9gS18tCnpwTFYzPTxAOUE9UzdzJllQUzVgZjJFJSM0IWFUcklhfDk+SSMmUUgt
aFQ5azwjQFk7TDx0aFNKbj10bVh3X3g5awp6RmdjMTVBbHZITFc4Y0loRkFXaEpEbTN0dEIoM2JZ
ez0/VjlVYjxBK1VZeWNvYWFSZkhta2JTfl5LPzZZX01uNngKei1kNil9e1lKRGQqQEExe2VGQEZf
aV95P3IzWHs9KihOUkFOaXRUN1dLOFJRfTBuV1EpQyF5WWBDKXZYX1hnbiQ7CnpYcEo+OypNaygx
YyNqWHBZUEYpaXo2PmtaRy1LMSZSKzhQTj07K2VwU0hCSjgldFI5VSM1Z0wtSTJYfF4xfjEzbwp6
Km1pNVhYZShMQE0pM1BSIShAfURRUzh4IUR8VDRJN0pEcnN6dz89V1hIYWZ2N29pQjltVlJaQFhK
RDI+STdWUmgKelNUb1JiclUpSE53JUIyK0d4d0JqSER5Q2gqO1oyXiQrTlpjek4oZDc9ZGwkdV9M
fX1hVXNfUUA8YUpmLXhPRHhzCnppeHhKUHBLUn4kNyNiZSk2TjRHRkR2VXBmSmJjckRpO2h8NjR9
PiRWRXckQmFSeFJFdCVJY041bDRqNUUjSzx4aAp6WkVwJSNHbTA3VzFIezJWMXAwfm5hN3NSU1l1
Q2VGeSZnN1ZFUEtoS29QOEE8SXZ+PUZNaF5jQiZwIUI1OTZxQnUKejF4NW9ZZUMrQmZ0bGEqV1dR
Jnwyd21NM25zdXJfOEl9YipCSjg7dSlPKmxCVDc8JGAhPzdEVTxGNWIyWnRxViRfCnpDI2xCITg8
LT9YOFJkZFVQUTZNWDkhcU9JWG1yQTkjQ2RwN2JSd3goQ3ZwdzdZb1QyZXdtREtNTU5+PCVTMkJC
QAp6VHk3KUUlOElkbWVKaHIoczZyJVkhcmt9OEBaYFFJR1YlWiNZZGtQbi02RGV7OXJ3WGV3aFhK
Nkg+MlpKSjY9OD0Kek14aiN6RE48bns3QzJQejxieUFjej5fK1BxTj01dS1LZEFma2NMOFJjS0NR
TnllP3U2UG5wSkVtPTNUISRIWkk/Cno0ciR1b2A5UEc7O29PakJlVUcxVmRsV0pXXmVydipFM1Vy
cztAeEptSWV6U1RYR2JVJE50dCppYHZXKlUtWW5ufQp6ejZ+em1Pe0coci04KG5FcE4/QlVFaWls
bXRkIz4raD1DUUZ2c0AocWJnSmUwWCstKUR6P3ZGRGFtXkFxTUkzOVgKejctLXFsQn5Edm54QWZy
dG9BS0J+X2xqVUdYRz9HaigjSm96Z0lJMWd7OVRVPHlNfXx4PnxTUygtUz5QUC1AQl5gCnpyOFMk
ZF5RdWtReW1jd08xeH5TX0NiTDMtMDc1fm8hT0RuJUJISER+UW9eekBuZX05SVJpVXhENDgye1d3
OVMrVgp6MkpeJSNedD5ZRjRrP3dDWFBKYFJJaTgpbD43QEZDK2hacXR0YDNjQEhBcDcpSU15QTxR
X3NhdlJXTnt9VmxRVnYKemgmKTkwU2hsVSkxWlYwTD90NVZ6MXhgS09IYnBwRzNoYk9BMHpBQkw1
e15fbWlZcHBMVmxwJEpPJjJFaU95RXBjCnp6diNFPEBEfGZIYnZZMThHZHpPUiE4RkJNKHNfViRB
PyVlOFhpZnctbkBzTDRuXiN9SGNJfnBJcW9iMyhDckA8Xgp6YVF9WTJ3bWJ+cHBmK0BHQ1U2TmVn
UVFfe19zKSUlSS1SeiVzZCgzZ3ZLQUxWI3pnfWVTKVNqV3BLb1VrcEUoTTkKenlifjJ3NFJCU2hD
MTVTZFdzLUNESTItT1BufGghN1BkeFMxUSRoa3gxWElGa0B4a2w9T3ZJK2JnRDtiT1l9VnBSCnp5
KlBaVkFPR154TzR7QlFUenVJaip1SFpHKiNZKnZEcmpOXnlHNWB+Qz5ZMTtieGx+bHN2ZklXSGAz
b3hfe01gRwp6Vnw7WWprSyRxJWhXYU9qP1Vme2VTdTdAUF9xRVdzN0RMTjZndiNBQjNfIWhSbXF8
aWlAO0JVRzgmPEJiZ0duaHkKelVyIXFNSlEmNEQlIWpyezhfWDd+eTFqSDFXbGJCPVJ2eTlLUHhp
dF9LZ3JCeEFiWUxRTERHfXtlJmw1el5wUT9mCnoqM18jMkJMO0lCZio2QGhBVCY3dzlmOHMxX05W
fXgxKEtPOGJSS3kpZ1pYQjw+WmdOSG5ndntPP3Iwe2ZzVnI7VQp6d1FJfEA8PmUpZ1E+Vkp5TjU+
fF4yN3wja3F3JVdwcndBXmQwcmhAPUQ3SlZ9IV9wOy1uXnZZJCRxUXNIUlN3NEUKemFaTEp5QV9q
dV9LJFR9X14+dj90RXFvTGUjWktXRmJkOz9TME9NRV9kKH5uYk9Dc3NofEg2T2EoV2hQJT8pNVF9
CnpmbEtOZyohXzt7TVZlREdHQXVHM2MtRF9pb1d8WUhyU1k/ZTdHY2ZpdD1QNj45YTxMX0F7TnNZ
ZTNLPClvdUpXWgp6OGU9ME5WalpwcF5KRDM8OGo8TjxSYSpxUiEtOWRIYWdtRXhRUnpqMC09dWlY
UWlvLXRMQ1lAYGJCe0xTeERrU14Kei1ObkVYZjU8Ymt6KF8peClvX0VTej5VU3I+cmhsXyN7VER7
Y3pTT0YpZz09c0YwP3tvUGhtMWx3cEFOZXc3QnY2CnpyJSNHaHV+SWlnTj4tc1FFakljbjBuRGxO
cU4xaXIxaVNnVkkxRktRNE1ib2dpNDl2Qk8oSXMreyp2LStzQSp1RAp6REcjTD8/MWw1TipCbyYp
WClkO3VNMlpgfFc/cio7PjR4cHdIZipEYis7e1RpblhZJnxzYzVrPTx4aUVsXyZuKG4KeiQme3xO
cWAtUmRyc2RhKEs7ZipXS3kkSHtZUSZDRDFoaSV7JGBvdE9CTF8hRCMkb1h2Z3YqPnBWZUp8PyVV
OGxsCnpRcWJmbTZ8eWNrdSRRRXUyTG10dEg9Y088Qzl4UyF3JXlwfiFzZzRiTjNkXj94THtVcXoz
PmMlTV5FRmNLUGtwVQp6ZEpXJEQ7Vm9GVXlqM0xBYXpMRUJeUUpUdFFXMGFHMUtKc2NMSjlHbFo3
UkZYMiVqJkMhWGhXVWckfFRlN29oWD4KekQ5SzFXMkspVTJscSEpYyFwMEtNV3dsMmx2fjRRY3lM
UU4ydEh5djdfSntUdi1qN3M1NjdUNT1xKmN8VzFtKih0CnpjRTw0NzNyV1B9Vkp2UjI1KnloP1k+
ZXh8bU1eVHA2RTdTUz1lRVM3aHRYRG81PVVHKGJEbFdwTHk9KCtDRk0wQAp6UVpoJj5Tb0kwKUtR
U3Axb1E+e0VtYHRXengycDVBKDFvenFPeERXPkAwNFZtK0lIUn1vZDtnaiFzQnQzP0FXcEMKej5K
YGZ1KSVFb2FvJDJjQzh7PH5zZGowRj9AT1pQeUxnOVo2XyhRMzhUeiZDJWJuelcoMnx1UE0peUBE
Nm0pbFNICnp7RD4hI2RGKGQ3NkM8NVlBPVpCb2ElPmJlamYoYFoqYU9DSGNmTChfSn1oams7WF47
ZWJJKDAxZEkkRTdCKFNSMAp6aU04OV9GVDkwWlQ0SHVxMiQlSFg8NlpkYiZ6aWB7VXE9I2Y5U3p1
R3EqQ2dCKEB6UFROUldzSTJIeVApVTBeaisKem9MJWIqKiokSyZAY2R+eWhCUnR3M3UocVRXOHZa
b09jTFBPelZuZT5SSjEtR1JfPlJtY0R+QUdfR2olZEhPIXx7CnpTUWdBI0srQSZwKmJiNGsqQzYo
QGg/dSpvdHs5JEAxUmxDQ2Z6Z05fJWJGNH1tfjB7bFpNMnRRZDBSN3stRSZBfQp6eHMtVH1WaUdG
MCN9U0hVJE9pTUZyTns/JlZVQDdJJXVyTHk0eEpjNEF4I2RoIWN4Sj89YXpAQmxEKkZIbmR1O3YK
enJqNjswK1BHRU0qaWhUSGQtdjhXSiNMcUReeXVrUkszXmJWRzh2ODk9YWZHZz05K1RKcigpfll3
ciF9WEV9N3d5CnomJHB0YzAyMnM/YyU3O2xAXjVhfFZvQjhCYz4+QXQ2S0prMjVIZ1Y2PWlhKUQj
cnh5IV9sbXJ7JDx5fl4tfTRWNgp6UEo/Z0VwRihUMzRWeTBlMDBPPHczTEF7O3EmUTw/fElyRDI+
LUdsaGRlPiZHK3FlbyZtanl8Wmp+cT1BUm5FKkYKem5RUndjOHF9aEo0YWRZWHc5aVRMOV5jdTQj
Zj9UZ0o0VnBnSkJmeS01fEw/OVRJUjtrYURkcCRyYGJffWlOS1o3Cnp6PikqM3RaMlV7cFkhZjtU
SXBeXkplSn12ISNQR1FzV2lhbHM2WnNGJENIbEBWPmtqZG15Zn5qYm56O0QhYyk0YQp6eGVgejlJ
UmNYfDRLRSQxKW1hUiRDNW15OSUxPDVrVl53V0wpUUJsYzhmSllHZmUwTz1aeVlCMm9aSWMxbDd9
OyMKejgxbi1+eCZZN05KWnlIKCZ1RCl1cz42ZDZwPnhCQVJvZ2RpVCh2cUZqMH5TX0A5ZD8/TDEq
QSpEWCtsfWQoKGp7Cno9YU8lKHNhfHVAIW1WdEcmZ3NhfFNTJUtjIXpWbjBuSz5sbTQyT3J6ODVt
PWJNLVJZYlEmM1g3T20kI1h0YFhpYQp6Vy1RTFUybmAqP0BqWjhvQChuSHpGJmxOYntPUylOTHtn
RFVLKTdFO1lfYkQ7amAob0gmbHw5Nig/KUZDdzJiVCsKejErZyR3ZzZoZlJBYl9sfk4+LXZWeFI2
bWg9PmBIKHdJdyNtRTE0TGZuMmVnP0tfM0ZYMi07NSFwfFlqYDR6ajwoCnpwJV47b1o8KVpyP3Nq
ZjhuZ3dQNEopYXJuOFF8a1B4N1JpcF8yVDx7WEV4eXdmVTdge1NUdXVsUWl0az1VYngpagp6PTt7
ZmV5X1hua3AkeE4wNV5WPUtiIXRKYTE1ZlUwaG5NVXdocj5aWWI7RTZucWhsYjNCYj0+S3VaTkIj
Q0NmdkQKelBSN3dRS34lVjlTUEg2WHZNfVhWWklSQzd3M3k5YWQ5MFRRSXRlclhtZ2JnKmRHXj4k
OzN+cjVrdyRyV04kdXNBCnpVdmY9REx2NnV7bGJ4cVdNI2Noa2oqTUU1TWRoYEVZZyo2MUtMV1Re
bXB0dGs+SEV5P28kS0R1JiRGb3JHa2Epbwp6Y2N6S1NwenM5YyRITH5id1JxPENvanBpV1pVaWxq
SENrJVozSVE7N1BIQDgoYzRZTUl7e195RCNEJShJYUp9YzwKeipOT0xkS1RNOHQhQntWITI7dHM/
TzwyQnE0S3s2QURoNTctcUA+JmR8NzFkQ0RWQU00PSttLXJJQXBUK2srek9QCnpHP0pvWWtYMEtq
biF3VlB3ZVhWK2o3TClsTS1uKUJZeWQ3fGh8JkBsVWYkTyZ6R293X3U/PzNtYERSSyNWYUxmKwp6
X0V6QEomWGFnTkwqVEt7WnpvfjRucWVkUDhIc1NMa0M7cHNMRkoqWnFwWTxXMTdvZSZeSkc2cCF6
NTRaZTZaUWIKejF8eH5jSndoNmFsNmQ1V0U+d0Y3YTlvQ0NIXjMrKnY5Q1FPdTA+T1lPJmxQRGkk
UTspYXxBXyZaVVMrTWFMN3BjCnpBaDttKm4jVkBWcjlmZjJXOCltKW9CS1FKQmc8dHZPfnokUTdw
fVF0X3g3RW5waDcyM29iSUZ2Sll6SChVJE1oTwp6MSglZXF7KlkpO3I/fm0xTFdtWDc/QSs/dGU+
aWFFVD1LaGl1RHtnZiZ8TEJ9KmhtQ2xTcT9feF5FZilEdmxiN3kKenpWMHFXMWBlVUkrPTdCQ1Z5
JntKYU14XjdeWmRGVjY5TUolbGZPWkd3QDxKWSYmRDZQYzlZdChKdkolb29qNVN1CnpkJHUyNnh3
VjBxV2ZpVmAkMENHQDtUWDhkMWxlbm9pREB6e2xmQ0IrYHN8Ji03YX4/LUBiUUpNWnojY2owdWlU
Qwp6RW5Ia2h6Y1kjQk0rT0RFXmBHQGE7UX5tdmw+aj9xK3VFSGpuXyRIQkVKamwkRCE8TXl7JEw8
WkVOZDZGWTZCIVUKeiF5KCNuTGx7QHh7WldqJit+X1g8MnhfYW1ORCEwdDRzPkhVWWB7ZT05Nkt8
SygxVzktNGR1RU0qeE1kTldnKiNFCnpqeHJRbCEodCtOOy1EWDg5K0hgRXF3czNkWH5aQ0JoUjko
JGYwZXteaiVmayNkRCZ9UCstb2piQyFOUGxGVXt+OAp6TzdzNUNsJjRYQiMkQSVfNHFMJkZPRTEx
Xl8zOU5aeT91alNYVV9ERCZ+Xi1ZdjlhQG0lazZaRXFENl4tI2FAKXsKeitjJmlxN1ooK2NqWkti
KSF4NVJeO2cjQj9LTT1DQUVfdj8yK1AxS00qXjsqVWx+VyEtPGsqT2Q5SjhyUyk2PTlkCnpPRkhy
YDkhbnhWQEc9dDdBZXRKZ2gxO0QyI3ExNTZJUWQoV1dmMjY8SzhGK1M5azdgNj1vKlMpX3U0fD9M
RjZ7bQp6N0kmPl48VEI4RTNnNWkxNkB7aENMQHI9RkRodE05IXAtKSpVXjlgTzZ6bTFlZGljYV5K
aXVrLTIwY3JwNEIyTmYKenZWWFd8VnBCYDAqdjBfYVNqJCZiaV58KFJsOEZPLWVofVYtN20tfld0
U3BsbT95YUdEMzM8Q3xTekI+c1piX0piCnpYOXI3dzc/THdSZmBKNHF3bFRjPnchZ3BfJDs5VjJl
Mi0/ZndEPz84bi0kPnpAWTNASDR1PjVKdEFabCFpOERHfQp6KSQwK1leRW87aEtfTXxBeVhZUElG
YjJqR0I3MD4pd01DPilAbyVzYUpiWT5yd1ohVnEhZzRLcEx6PEIqSUcxPHQKejk4UVpsKi00czE4
cVNXViZIVVlJK3RBKDw9WlZIJFpDJVpSdEZQS3xFbiZqZ2V5YTEtYDFvWHVWYENafmx5aWcyCno8
KVgxSCg4YWxaKHowY1hUNXF9S2hGYEIqd1FSbEQ+eW14R0t5WVl5RVJmLTg0OzxCPSlfP2txJD5n
USRreFpzXgp6Q0I8SXJtV3w3PGxTTn5rc3F6cDg2dndqP2lTJiYwc0pZYD5lNCstPXAyMjkoUUJl
amBTaU19Wm1hQjVEc0s8KG8Kejl3VnZQaHFJXm1pb3JiQE5+NzNxIWxISFc1JHwhdUZ8IS16O2VH
d0tRYUZraVYldl5aZnxDKUZrWCQ7ITNjX2lACnptQnpCbDY0fV5QR0x6PkgqQmwrLW08eFRfWGZf
Q0VnbnZBTyEteDdYSFdVIXdaRWhfPyVZdCZlXyhDQGdYZyFMRwp6OWlwQX5sLSFmRy07XzFhbXBZ
aisoQzR6cEApPUFwRDFuZ34la0FqSWR3PT0mMm91UEVkKDk4WWh9Rn0zTmZlZ1EKemdjTEVycG0k
K3BrWmh7Y1ZLX1d+KVIoS3BuPnc4bCNiczRFZGh7c1NVbnk3fTErWkRqLWNrfWMpKlRVVWBwUk85
CnpfKVYpeEMlbFRXTkJ9bCgxKVJpUUxMTz9SRDY/YztvQDZ8aSQ4VWFWY3BtNDdHYHA5XyUrS1U5
SlRocitsdykxRAp6P3hLc2daYC1tbDlFcHlSUjZJLUxRPCtnV3JweVUwclkpdkNgbXBXVHV+UUBF
NntTX3p5a3FBXypSTmF0LVlhJSoKenk9cUJZT0RoP2A9fENYbDh5b2pVWHQ0OT1efH4zMi1kfWZA
ZD8xcCM/eUFrIyhNOyE8PlBATUw1YEM3MGlsVXN1CnpuS1NpVGwlISolZT9MPDMyLSNaSUF+QD0q
VHJEbj11bG9yUio5eDN7MWB7LWtufkFqcyN1Q19aYFBDd1JyNCNMQAp6QkB5JWEqI2xBUklsY2dr
N2NVP2lmfTRNKTVRYGZHY3llLVloN2A7V3tIWn1NNkNpMV8mX0tZMG9vOTBQMEozRGAKejJ9Mj5x
dDhYZDhxRDc/YDhWWUc/TH4za0ckLTZWS2dgfHtLNU5EU2clRXJFd3tNZ3FGX1RxaTJGNCZMdntP
WVIrCnooRlgzaT9vJnZfVE0kZTdRME9nMkIlfmt8Q2JkWXEmVGlLdUJATGpmJnhNc00ydCk+VHYy
JThDbHNjan5jQi1FeQp6QlJVM3FEWkNidj5TV2pMQ0hzcGpwNGxHYj9vPWtEZ2hRdFRYczlJaUR5
cXo1dWJKTEZYJiVTTTF4bXdkR0gtNVgKenlDNlgzSVlMK3VGXmQleGNxQDFBKzsoa1Mrcm87SUNw
JFVAMlp0dik4RiZXYUQwNnt9ckp0RSpMVDUpdVNKeCNNCnp1aUh3cHE9MG1EO2daRzhZY0Fjc3tg
eV9KSGViNCt3WjRNSlQ1TXZ7S2s0JkA2Nzw3TmRqPzY4Ymd3aE9tYFAqbgp6KS0yWHNAQGpQfTJi
UzQ4bT4oPmpFZVdSXzg5Y0tPXm1KalE+bGhqPHR0aFQrNSVvPStAZ0NAVjBkYXE/JE85WjAKejhX
JUhmJnF5Ml83UTR1Qlp5Xn50MGZYNXxjR2Y4TjlxR1lDaG5yRFh3K09Bb0RzaF9XbEwtU2NpVkx4
RFFwQlAlCnpWISNWJFU+LXxBdSEqOEFpWUlJXzhxRTNgZm5VQ3VSO3ZrNG1sWkN1c30/TSg1YWxR
QSZeVWYjY3A1a3E0WT5UNgp6d2N9KTJiWipWUG1UIXgoZD0mUFVXX1FKRHUmO0pNaH4wUEdnZG5+
NV56eDE5Yjl8VTRwPz5JZjklM3YkSGJ0dmAKemxIZSlVVntGOE57VikwdipJQlQ8Ql9TSD51bXtt
ck0xVU1RQWV5SztvaTVTMzBPXm5qeFFfPUBzMyFLfWdjOXp4Cno3PmNIbWpEfXpAdFFOTUhVYXkt
Jj1IWjtGT21sZStyXmB1Yzl6YVV4MmpzaX4+MT1DM2FjPWRrdDxCND94bnxkSAp6aV5VdjJkaEJG
cEZjM19jT2VPPG5FUTdAMGYoOTxwJSNtZ2src01lY09hblZ+PkdxOH5JTitNPyVrSHBTJWE8KV8K
enhwP1BnOCRQZ1k+emJ7I0hEenY9amVkVzRHOGxAYWd8UzImRG9xdmd5aGZMTkItN2VsVUE2azYp
QEBtcnl4TGVNCnp0U1E4cWtgVTc/aT1sZVJ7QVhWIythaUV2JXwmb2phMztuSTh0fXdeejBWTGtq
Yk48Kmw8S2pnS18zWEd2MUh2PAp6TlJtdTYrS1Akb3tHI2QwNFkkPzZYbD15aU9SQzc7Vzh+O1gm
SmxhdClIY2o5bDA/dTNgcGxyUTdTUFJlbThYT14KemskeUEjdyswZzd0ZV5wMStnT0NzUVlYQSM4
JX59YUtgND9gMGhSU1FZVHdVZjFJRHJuRHJEYGRqMCpCaGMwWDl1CnpeUF5lRHlMPmxjJkV4a1lO
UGkhPElxPWV3WnoyfXhCJDRKTyY+Tj5iaisoNFpyLTszckNJa3RJWDlwczFkZzVwLQp6UDM3N1dJ
TmImNElAMW9YVEBpNkVyeSs8YU8rTV9KRkxEey1hVC1MQEY7OEI1aiFtTXokXy1jNl9SMCNDWTJM
aFoKeiotJiNrRjZJV3tPdUs5NV9vVyVWSjF+YkZvbmFJNXdJVkUtJXgzb2BUUV48NFZaKypHZ3FO
TlpDKSNgWTZZUVJWCnopQE5WdWIkaGJMV3Y+NG1lWllTRmAwM0ZsT0JPVVdIYFVhcGwxYV5XJCQr
MHtHOHRvR2Z2YX0pTUdHJiNfTnQ1RAp6dnYmMzN3ZExpN0NjaUpfcFBVVCh4bCkhbHNwcmJJU3pR
eGV1fWZhd3dSNFRnbDRzV1AyWkVVSDtKX1RJUUhtQlkKelJ4ckBwa0t3SyhDQChPZ3FOKXp8O3po
OFBFSkFxYjBPR3pnaD5SUXE1aWxHIUotVWJFU2lobkhNdkdVcF41V0dTCnpkOExzMXA5JG1YZ048
MGFzR2VqSkMlNVZhME41PkZVMCtQeyY+JktveFJXZTw+O3prQkFXO1haRGhyZEVMcXBhRQp6ZU07
RDg+U0liXyp+aVdiTnIxRGx4Zm03WVpaKzBQaGpYZjlPaVJBeSZyNzBYRWYtQylKbWs3a1JlQ309
UFVKa04KemhQcGxWSDt3S1h7O2QxIVhnR05vVmZ0S3E5QyZLaWNNek55cXpSVm5BbE90ZShSYjRG
NmdZWGlvRTIxMVBWemMzCnpPdFFIY1ljSTBIcUtrPzElcTJGSyMySmlEMVZ9PFVMYHdqUCp5fThA
N1lFPkxPVShqVSsjSDg8R3AmWHNZe2oqKAp6KntvQnBgVDR3aV5SVXh3PTkhc21JRkhQbWxidlM3
JG1SbXY0RTdUZlZsc3V3cz4rN2xTTTBwRHh+QUlOKj9IIzMKeiNLZEhuOVRQY2w8P1h6MWdSfWpX
TlRpR2QxNEFSMVV3LWo2cWZ1e34tcjhDMXFMZm5FIzh5Kk52UzdveXdzJX40CnojZkVFRnQhIVAm
V2tzUC0pSVQ9bjUzdm94QlVTJig+QCNyYFRzYzk4VnsrR3lISjNWXyowUUs1Kk5AQnp0aHV+fAp6
eXBSNkFxWmwzPExSK21KcDBaWmE5aFduPmVjZXlkWX43Mj0kcUJOdmJSeW9BQVllMnUtNnJJcS1z
KFgqPk8qaj4KejJmc2JnZllPcGBsLUhDWEFeSTRxUmp+RHEjYmw/WGdqYUJJJj0ybTxDdF9QVWB6
eGNsIyUxOT4lc0x5PW5vTFY4CnoqPzNnZWxjP1BaR3xqWl92ST5fdHVBKEE0X1Y0YyhfRTwpeDY5
T3UybGY5OFZeMGhwfU93T0tDcnJDSW13dTE1cgp6ZH04bEVxaUE+bEc1WHlUQj5uZDZ7dXVnNCp5
JiYoYUMhMTxMcGR2ZiNBX30kTm1lKThlcyotOXdWfGdvMHlvTHcKej04N09tSkE7Xm4qanFUPGRq
YnhOcV58NURgdmlObl9yKn1eQ0VMcXBmUXpJZGR0I3FFRz1pRns2MVdTQmd9WXRfCnptK2w7MSF3
WnBsKG1YUDZ6SWZNI0oybUZDXnxiR2Nld1NvVXR6TlR3Xkx5WC0mTVZIST9SKDxMO2JXczU3U2s3
YQp6SmVWVm9pcncjfi1yb004KlctNHFUZjJOJkdNU3ZDPl9kSD8oJD1PVCFgMEsrUF9nM0R0dDtR
WmB8YEVCN2NIITwKekh8VFY2bVc+bVdwJV5iQHIrKT9abk5HT20hP0RFKz56MWBHcyRWJWVJO2pT
WD1WaCFzdXlMY0FhWCUpeTR+bEdvCnoxQCRFYUVVcWtHTk5qYVB2PUl3VV5hfTV3aT1eRnwhNj1x
NHRSPmJlNU9yQSF1WFVBPDtUSTI/dT5WakVSJkFfKwp6d31AcV9TdWwqbFo0cTU/eVNwYVAqWHQ4
R2RQPEhfbHcydUBsSntKZiY2OEJyUXZLeyY2UzV9aClGZ0piZXI/MFgKemRhX3xHOyRyZj02cGZ+
RXcjUyNGNkRnYlNxJllMUHo+PjVXVWBFYWNtbFpWQmNqMDQ/e1RyOyZoLWY1bmh+ITtRCnplSmwz
cXctQ3k4RmQyI2o4fFVPfUhZbEFAS151KzgyIStpXnF6cXpkK3JpTnw5ZDdgUXdYKk9PQDxoWVYz
fWJwMgp6QV4je2J4ZjJHSDczb0ErYlFPKnpXWW1fQmU2JDw1PzsoISZMe1ZSMWhQJCtabHo8X31V
aEB6OWJJODdGT2cxO20KeiVxakVjbDgkcGBjU3YoQDZIXjdOMjBoMzA0QyZ3OGBQLWxXeyZ4Pk81
RHRmdis7PUkqVHl3YT9JWjl6VisxfVp8CnpkR28zQCNsPkU0Q1lfI1B2bmpLeGZFaT5kKGtXSnB2
QUF0Zj9TPnVPUigkQnZaN2E0bEgmJkZBLTQtNG1AbE9PcAp6Ri05c284XyNLPHNWQDFudUMmLT1T
LVgwe2J2fEVFVD88UUAyVXZPYjdKcUp9elh5Rj8/Vns2Y2N9MTA0b15FbT8KeilXMWlwRGwjQDE2
K1BCUHt8dTVaRXo3bk84LSFzYlM7SVp1ITs+U3BAJUNEalI4XyVVU1YpcG9rQ0lYdz4xXyp8CnpO
d3lgcDErfnFCaytIRHFjMn1TK1NSdiZOUjRIZTdLYFU/K2FXN2VPIXRuTFVzNVhARjJ4XzMpdSZ6
UG0wQUBYKwp6VyN2dmhgJUpnXlklVzZ7KG9gdm53cnlFRipYOHpNZWR+VCl8RzxBa3VhK29kVW9l
RyQhR3k7YXt1emBnNEdNaCQKelpPRStJZ2owYWUpYDRZI21lVDNPY0M3QEMlSkwhZjU1KGF0WGgz
cyRLJWBOentpVX5mOzIlQ0E+Y1k1RERVeUIhCnpxWnlJeVFkNEZAMGV6UCVwVk8lWGg5fDtzNjw1
TEthdFBLXmgwVkRmNEQqMlBmP2ArYVYhTHpMWlMjZnpyVH1mUgp6U2Bra3FNISlnKEBCWW8jeklN
Wm4hQyl3OUhrKmBidlQoKm83MmhUO1hQbFZ1ciRXSlNgMHx+YkZDbSNGJjhtJT4KejRgYHhZYmMo
JXVJK3gyQHdSfW5hX0ZiMil7Sl5AXkV0eyQ8aXxtMTVCdFZTamkkb0pWcyZ0eHRIWnkpRVRLPj55
CnooPnBJK18wQntoWTByMWJMeiZ5JlFuY291NkZvO1RJWCk/M1RpKV8hSUxPe2dNVFFYUStrPVVU
Mn5rUHhhTTtqMAp6OUtuSio0e1M3ODFaIW9JQWB7XyhKdSYjP0dXdT5nUTh7O25GXzJOOE1tVV42
QVElKE8oJE8paE4tcm9tK2VVeSUKenRHQ0xvWktpMVBGSj5rISUldVdQUTQxVEBOa2NtKGRjSm1E
NGVncnwqX0lDYGwyZTAmVkcjJCp2MCgtfHlLYnMqCnpRbmxHK3RBdU43QDVkRG4tPVckRl4he0R+
UioyQHVyYEVxODBlPjtzUTcqQ3ArXz87U0loUlNGYjs3NnNPKTJVPQp6aXtxZG47MHN5Til5M2Zu
MzJXOUFrT1o3aXI2RClKaVMmIStIezhVPk5IYWs9OGJqWSRRbXtOWHpBQFZpUTBrS0wKel9gV2dK
UlRzbGtUKmg5c1QrZmE5bX1mNHpjKT9ETXh1b05LY0gyM0YoYk08UTtkRytBYHxTUnx7X0ReRClq
ZkNMCnpfcWYkKyhVQmJGZyheaFVhYkQpaTA/Y0dHbm9vRTNqNG9RI1NsN34wU0M9YmJvRUshNmI5
cSM7YSE0ail1QjwzJQp6VChoZF8lQndIRz12fUs8SG0+cXw+XmgkPj4+bk50Xys+RmprcXVOIWQw
RnombUNLcW83a0N8dz5lfE0kaXl2bjsKejRqbW54ejtNcXxuMDBGWkt1NV9VbjRRJUs0KD0xbl9p
IzYoVnZqKnxYQnJyZHBze1U+TlBwNTk5aW9HN0l2JkR6CnppTTVpdFFZPmgta3UqfGc/cmQ+JUVT
YHFYOX18eGRTcmNsS3RfJjQwKmA+Vz9qWk1VUmlqPkR7RHI8PSN1eURTcAp6MSYrZEFxWEUyT0xv
ST5KbHA5MkIzbCk+P3dkYzlCOGk0WmkzQTNJXk5pZCtmRDF9ZEVldSRPKHBVYUole1E9dEYKemwh
RElYWWpIWlhqNm1ncEVQMF9ySzBgPyY2OWg3SHptV30kaTtoelM1WitBJmROaD44PXZXRmFaeEYy
JkRWMlNVCnpSKn1LTVpOMnAtbXBIZmFoK2t5UVB0Ymkpb3Q/bnQ3VWV2aEp3dkR9dkJGKV8wSGV1
QmA9Z3M1MjxNVno3Y0JHVQp6aWpQVT4zfFA8UWopJSR3dS1vbDs/enRFNV9+aFN5PypBUz5ibktN
RlZUYWJVSzlAbSRFXnVrclJubilERGN6Wl8KenpUd0B3SGc3WVY0Q2F+NjRhYH40SVFMeUYkZWpg
azVqZzlyaXh6S00tfTxoZCttfkZpYld6bTtsVG5gdWdrcUU5Cno2WDhma2pyfHpOanh6KVQ7bW1A
VD5kTk0oJUJeQ2xSeioyeUp8UGM/QHNSLXhvTXsoNSp7ZXptVUBLbHM+fDtXKAp6fDBOOE1PbyRX
MyN+ekpATH0jVXZ4fE09bV8hX2dWYU48LTU1QTNaJVN5ZHNPUEJVQWY+TUR7TlZBTCl7TnsqR1gK
emdJJj93Ozw+JWo+QEszais8d2NOajhnfS1sdkFAWmRtMlMyVittezUqMStZbz1HY1Z5Kklfcn0q
YiVhOExVSFhsCnp2KWBRcE1eU0FVcEJlclJzYEAlfFF7PkE4dFp8YUNGXyM7VWQ5UV5vP0gwZj8+
QzdUOElAZThzaG5KJGQ7MSFLdwp6dmp4cU4payVZTW5RV0ZBeWswdG8kfFFaWjd8WXY7ckojbUtP
cFlRJUNweUlkKUVRfDFsUmc5QFgkKClNUCp6fD4Kek5sNihEd2dPVFIhejlaaXVvcVBlWD11PEom
ZnkoQVVvaVB4JSE3SDBDK0NsUz5FPmxGbGdaNEpMR3RGQ2ZBWkRPCnpmQnMqO01oZUpwd148b2Iq
fks4SGcyP2xMWW5uVns9Zj1SbWFMe0o4bV5OLSRBPEZPMSR5XnM4OH5PVlQ2cGs1Swp6T29xYVJF
Izw0WFpDVXVDJVB2ezhWP2xGaTEtRyE2XmhHOW9lJHRJSDQ5cio7WihSRG1qTFpRaENBVmByWkFR
fEcKenJFXyRtQiFkVT4jNlVheGRJdzMwbjh7d0xnMC1rc1dWe0NrX0tUSDl4WnV5P2FBOUVCa0Q4
aUJRNHB2JW52c3FMCnpNWUVPJVVROHBIRWFzQFoxeyZRbz04PCNwRUlDajk+ODhvNHsxe2d6elo4
VUhSRzR5K1hFZ1ZETWxocWdqckhyUQp6O2RIMXJTSSpIJiYmdztecVYqWj9PQ1Q1KndwJl9Pditp
M0tqXmVYTnt1OGQ/cX48UGBhRmxmNVArVj1ZQCRqK18KekFuR2ZFZm1sblN5TklpJFJjMTx3VjYm
RGBvQ09xQCF6NUJfcEZeXmZrXzZCVTh7LUJFO2ZNcGhMbmc5S2pvNyVVCnoyJHN5U0BXT0lRUEZq
bCVhc1hiaEI7Z0IwRiYwUlFfU3IyaE9gPGw7VyRAI1BlTTZ8T3R3S1JAaUNBWV54PT9UNAp6MXUr
QFVFOT1mSkdpUVUjWm5xSXpQeE81ME9hSmxMeDdfbHgrYyt2PkdNUTJ1dXgyZ0JjZGxqUnZ1TmFM
R0U3RkEKej1fZnpHX3VmbWx1aWV0cFFxdk5UI2IzOHs0OT01X01BZkI3M2smUWt1RGYhQGltUEBt
YER7PGAqIzJpOz0oelgzCnpobUpoZSg+dX5SSU8wMjJRUlpIZSY3KF9hUVgpVChtdn5MWTZDIzs2
TiphRytHS0EjdFN5K2dYY3ZUT3NGWEZLdQp6X2pPYGl3NDBWaWhvV3ByMnJtQEoxJVptcnFfdXd6
O0YtTzNzQXd7Z0BnNWNGTXwjUEZ6UU9RUndScng7biZNMU4Kem1nO2hePVQ/UlJHYDNRVV5wczVB
TH1YeEZNd2lGRGt8Pm5TVSQjbG8zSnEoPkh2SCZjdFAtQ0xfflNUd1dKSzcyCnpofUA2Jks1Jnoh
a3xwNmFZXlFWREE2TFpSaG5IYGAqYStKPDFQSHxtRFhtUlYoJHFZZitkcWxHQUNKP3klfWleSwp6
I0Vybm8/bk5ZXjdtZns9KH0+fkc2Yl8hcTtJaFJRcChsQWsyPTBJdDVCM1R2WV9QY0s4alFrV0hI
Z01PaWxqMXsKempxRzFwPV59a1NGNERmdENJeCFUSF91Q1JKaWhUYUM5bVpOJWY5MCRJLWROeXp5
STwtOXpKfkgxaEZrPVVMLUtKCnolSF56XjtYSz5zRll5SzwjOW8la04mbmMqS2ZMcDItfjZ4N3sw
cnd5eSVGbj5iNCkwJDA/a3JhUmp7ZT8xTTQ9dQp6PztSX0Fgd24oTFgrIzdBMTk3QzFpQ29xUTdm
YlI1Jmw9KikzX2dEVm1RYWk/czc/ZWZCQEBASXI0WEkkN1ckdCgKemd4cSowOFN7KFNpX3U7dmRo
JjVzVCl3clI7ZENaNWwwZ1RDZFFFQ1RTQEhgfGgpJWEhQnRiRHdhajV3SFRvKWspCnoqYCNTXnFV
QClkbiFWVnh1XnRhVSlgOClIKEE0RWlPUkF3bUFZUl45aig1TVNPJXlaayt1eDZhTX4yWWY4JGBl
dAp6Q3lBQVRpNUpCKWtpMDZqVzh0RD10WGZ9JitHOTdzQHwheVo7QmA5SDJKSDtWSTFeUGJraVYh
SDJWIWZYUXk4IVgKenE2Y0VPdX12MEdTd2F3Tzh3bUB+cHx+RX16OGleXldsND9FRW0mSEZXNS04
T1J2ZHVNNyk1KFc3QE9La1ZNen1YCnohXk9wTk5JSFd9RVBFdCs5eSRxI2MwSmkkWHxieE51Q1Jz
RmljN1Q0anM/ZSZwbGZOUCR4aT1ETkJ1MEUlP0N0Zgp6c3kpYE1LYyFqVW98YiR8akIycjFhTXkx
aHhjTlc3ZSZnNE5oc1AjODkmVjNeN15iQFM7KzI5Nis4MHc8XzlBVSoKemUoMiVucDVKbGwrUStX
a3oyJms8d3VrWj9iVzNzPmRQPyt8Xj1AOSpjcGJDVHZvSDBjcXNKJXVOVSlTKCQmPz9UCnpYM3cy
b2o9PipfcU8jQm9vMC09U0hYI3xGNUUlcmx8MHwwflpiP1EyIWJ4SUVtJTdTYC1YaGowMXt2Zj5k
ZllIdQp6Y3x9OD0kViRuRTxwZkBZb3hASXVzaE04bGoyQzdyMSRrRmJWKzVsciRyUTVCUE0/fVlP
fDF1P3xBJmp3S04hSHYKejJNNil1T01RWlFjLSF4SlhCIyVIdWZfZlkxOTxkX1pWVjJFI09zK0Q9
T1VgeGpCezl0V0xvZHBCdH1DTVNsO20hCnpTV2RtMTh4PyVFYHN3cDBCV1ZAemJkRGFjZE1CaUQz
IU51RVIrR3dYOGohTj1uemFYJHljVHA/UVEyOHhQXnMrOQp6R2krXngyTXhfZCpzLWVfZkFeVihG
Z1c1c0I7cHBgc3VEVWt0a1JHdU42YFJNSyZgKFVKIUVeOGhAU1lvcT48ZmIKejVEV2FWKHFMKEJC
JTNSZmgrc2pENiYkLVBfNjZaX0pNbV9fYXBpTy1xWGZTQnRzajJueVpgOztwQXBjflI7el8kCnp8
RVpidyl2RSFRa3x6KE5iUDslRWNIe1NOeThSYngqUi12Mko4Y0VSeyg3VG9DUlAwPEU8QWhYKnEm
TjxRSSR4Tgp6OVQ8c18jRjI3P0FwNktSa1AlVkQ1e2dLPFZYKktfOX1mKSkpPUpWS2NpUFIrKGAo
VXExe0RvMExjWnZRT0ZTaikKemhLe31oKVlpKnpJQDgxJFJzcDIhKzBhQUkmMzlReDFnOUEzTnJH
bHthIXg5V3tnS3N0SzRDWFdEdVhAI0w+SFBICnppbWBBKDV5fiViIU9seVlhaShpaGU2T20pZmpm
U0U0MTR6WHNZJD4mQyNjclpOJTsyRUlHVlJJanhRdj9rRnQmLQp6dCpNYn1YTj1KPzlTbyMkYD49
UVVQREYre05YK2hUeDVsS3xPUkZifHNQM350Km5ueCNtMV50dUNRT1dsUUMjTEEKem81K0tAZEpt
UT9EO0pZa2MzcmxtM3JjWUNfeiszI0k5NG9jZ3J+RjsoJEh5U1NNQjhmXz8kWSVvaz93VzJXK09X
CnpTUCFnIUIhbWlMSEpiOSFUMzNvK0okZVMhMFlBeWZhemdTT0VkbDQre0BsTzhfU0x8XiRjY2Fi
K0tyJDZ7cUxXNgp6bWgoc0hfPipgQWk9NylUVjJAO05nSVV8bCh0Zig5XlhJPyN7VC1rRnlBT1VN
I3FFdWh7TyRuQz9FUmt9N3s8SmQKenFHKE0rPTQqaDtHcCo2NiRIdnVfYz5LOEBsN0ZQe0VrPnhz
ck83WWBpWDBiJWxhb2NjVkk/Vmx2RFBvSW0mRnl2CnpkYT9zSlpIM0pxZ1JNayFuWDhnQTl0bVAt
czItQnRQUFVneCNCWCQzdXI/IzlmI1BnSmk8RCg5MjdwMHpYc0crSQp6T25MRj5aWnRfXnpmREc/
a1pyZiFjPzJKTi0qVTd4N2w9fWYpfE1pe1VjYkVLRDR1X3pTQ3ooYkg4KVcpKDAoUGoKejlhO3Rr
P2VgWTEzRTx4K2UqfTl4cVcmRHp0ZEtCUTAqQHRPKDhrSXtNSi1NUkVgcV5HPnx4PTReY0V5RiZ0
TXt2Cno1X3lvUzZHb3pgbV9XaFpzNH1ZYTwpOG0hTjNOPVhySTgzM1dITXF1JnZ5SUtLITdXKWJZ
U1p4PHRReUg2IVVNPQp6PXp4OyspOH4+VHdhZHhJP04kZXcqJElQVExfRnRRTCFROXMhb2NMSktw
PUZJankwVT9IUyZpbSQoX0clakdnU08KejdoWEpZfENqI2huX3B+aUtoeHVNK00kXzh1VkBobSF2
KzNrY0FYPkVuSVFgeT8zY0dhQGNTTHgqSWNxX1FUQFZMCnpIMUBfK2I8SkBJRWM+aCQxMihPeCMx
cWY9QXNYWCQjUmRUfClqZHU7cWE7TW5LJTFFY3JfUEtGJCozcjRkb0ZuPgp6RGAzRF8pdXh2dWAk
USVJdVZja0Y3cVFGZWMkJD0tUEpsMjtIa2VNKVlhcjZSTX1rUS1uVylvakVmITwhI0ZXKisKelZZ
TTNKdSR6UWEhYkd6KkdndSVIaHRDJWk5ek5kWlBrclkxX0BeJiEjaXx1JFZxM3F3e1V+bEQpKUtY
Mm9SYiptCnpBVDE0UzZWMzV2Njx+QjJjLU9tekBzK3tiVk45bjR1KEhgSUpmK149OHghMG4wPjVU
Nlp0N2l5KmpQVjJfN2FqfQp6UiteMllxSitpY0ZeZzxfMjBZOCZXUmUkTVBoJkNeNXBLZXNGMjRY
MV91MSZgXnhAYyVHMVFTSHkhRDVORipYdHcKejFMNHA5ZD5JX3tKMUBRMWs3ZGpCQ0BMfTAzMntP
dlB0dSlpTHpgQyhLa3lMS1RaSnMtTWJMKlBsU3EqP0cmdzZfCnpiWDFVJUFZZXkpWU9SYHJLUHRH
bTdyKXRUTiZvMV9jWU9RNXpWKU1UbFJZMUN4JEw1MEBBPlNqKjg7OS1eM1koPQp6VFlTRlkqaUFS
emRGeXcrXl9oUj9kYWdORmE4OyhILUhoSGhRfD9oayh2MGkqOEVhPG05Rz07fFpWTldBRjJAcnUK
ejM8eUI2MTM9TmRoRHQxdlRpc3A9SWhzajE4I3xzPE1EZDxQYzBlVz83dGErKkpxN0cpVz1GLUA7
U0BAJTxGR2s3CnpEfXRuQClxJFN3T2ZIWFhUSVhOUXFyKikpWjROOGtVTCh2RmdWQEtodV40KiRl
REtwdTlwSFpPblk0ejRzUlkkOAp6e0xgY09gS3w5bmVfc0glLSp0Pitscm9qK0tfbDQydHBrTTNz
V1NHYktIUUZ2OWxMKzNZbXMqNWAyVX53TH5ecXIKenp2c0g8e24kMEtrYnJKU1dvNF5zdWYtTGRY
ZGVeRCF0cTlTc2tffWFsRHxmSnEpOH1WRUx5SWU/Ri1gR2Ryc2smCnpuLUF2Qns8cHVrMH1HWkUh
KVBfMm81MDZ4Y0ZXQyY1UX5Mem8xcSkpKV9VLU5LSW5wbExtX20mNnwpTmxsYXRxeAp6NilVQ0sm
RlYzOCR7NFN4JHhWVEg+MDRmVEdub2l1RG1tYmZiN1FBUEkxKEhEYFZCdyYodk5Td15TN0w3Vlg+
R34Kem50aGVRdExYa0BjbTwhRz1HP0heRVNBVGctMjJpNDQ/WHxUSkZlYnhXdGRsayV3Z2t2SyQp
TVp2ViRkOGtqejZYCnpQZkpSPFdueUhNN1RLfWtxRWJBd2NiSyQpTSlZYig1bDlsejFoSk0qUjI1
NEdEO2VwTjdAMVVFQE5OTXZxZ1lFPQp6WFl5I3F5LXFCWE5ecnUrTD9JP2RvZGAkR3FSaGYobFFq
Xmp6KyEhRDxaSn1KUFE7PENIbHR2d0FrRmVVWFojb3MKek1pQzRwTUh6anJSIVFKZVRVfUFvPCZM
R00jIVpJMjVqVEZIcSowN3lZSTE1XzBDdGg1dzAqTz5mTiM5eFN6TDFUCnpCQHR4SyR8cCg0TDFN
a0woT2tKRzFFO2cxOE9eU0IqdCpiend6ZyM9Kk5ALVQ+Nm9jbkA9YEk/Kk9Ya0Z4K0QoMQp6SmM3
UH5oP3R5O2l0VGojMjMpcVkwVjUrKGByQ3FgTDkrbj1uc3VlUGA2bHs0b2xETXxDKztKbG08ZTE0
IU1yQVYKem8lMTs1V0koaDg7RTlnRyV3PlBFJHU3Wld7SWwjdSVwfkpFPWdKQEIjeDF3Y29heCo5
eGk1VjR2d1FhKUliZ0Z7CnpyU3JNalV2Rl5ieVhNKXM1dklIRzJtZj18WlJeKThVZ3p+WGluelct
V2d9Jn08TG8/QVp6ZU9UTSRHJlVqX2x7Uwp6eFVyX3ZoMUpXX2M8SkRueF56ckJFbE5MfVBNend1
PTd1V2lDYHJQTSpyYmhZR19GXlEjWnohT3krViVZNDNkflIKejRQPXd9IXckJGdMKFR5YWk+Y20x
TWU4cHdKWU48dz4ya0JecVNWdnYhe2h7KSFqS0leYCl3ZH5xX15uaj0kNkg8CnpIKGhTeCg5eW5N
eTBzRFFyeld1Znp6OWk0SipGNHNzTlhOQyYpfXdvX25fcmk0PzhOU205VnAzeHUtdmgydjtfMQp6
IVN0eGZpckA5RSFeWFglKiFYdVZ4VHI2OCh3Ukx+OF9KTWxVSXkwV1dETEspc3tfQmVeRUFlWDAl
SDQlK1hfV0YKeiRvT355X3V0bms4a2sxSFkxbG5oZUUhUURGKzNiWVFKSXNOZDZld2R2XmFqZnNo
VzwxJkspbT11MFVPI2xFQjY2CnojckNmVnJxbEhzOVVWZTd1XlpjNzRtd3g3KyoycVZnVHJhbC0w
YG9yMW5AIztAVG9ebUk8Vlg5Yz5MK1R6eD91Nwp6WnY1KW12alpiYHlHQHk0VSpRaHt1NipZUHw5
SUYkN0lIXk5aYFYoTUB4WlM+YHtAc1ROKSQyOTBnNVUxblglSEsKemxLKShwIT5OKH5JYn18dUZA
dj5gYVVDTiZYNVchOSFBUCs8djYhM2wyMkhmWEImYHc9KEk3PD5pUnZzYERgKkpFCnoyNSU9PDhs
b2RSJHVeQVlTX3tjYjZafDB1JXo3MFZNcSgkTSVgOHNBQE1zdm02QkFeZCRFTzJgbkpwPWFwZzMz
QQp6Pld1OC1TNiVkK0tfWD56U15xWk9eO28mMDk0e1hwNnJmXzZtNjE2dU9zZnt4a3RGcDxfK2pn
dkYhdU4xbiprbGoKeldXITNAe2NCM3AkPipgYjFqZHQhVkM/S2RPWlUyVkF1KFZeY1RXTlpnKyY1
UGBGJHI8a0RvZWJ5MUspLV9yNEIxCnpecEdmYFJXdFJ1bXBjOG9fdktPaSN8Pk5YO34kXkVCYWZV
RndyKkxPTykkKll6Vj96UmZpVzEydSlDYWU/amBzWAp6bGUmRzA4PHdWRVdYRj1waDZGY0JtRG0t
cDZQSndEISRkR0N2TipVdzRIdjB+aVM7PkZpOWVKcTxUTmMycX1SdTkKentLMnBPXzRffSM/WkAk
V0JKT2I1KHM/clFIQWlzYHVpYHMkb152Qml5M307WG9zVH1hV0JjayRtTSY+cjhqcjxoCnoqakNE
MXI2aEJsJDJxPkUwY2EqVFN1IWJreit9KGgodUlYMiVAV3hBOygleHMlfnt4ek5GS0c0dV50Z01N
UWwoagp6QnYrV0ZNMHZicTV6aSU+JHdrazBxSzBEfiY0fDxORDtkPCpYQUNOcmkmIWNjTV5fZ0NZ
QWxqViVBSH53VyFrTEIKenYxbCVhKU1kbl50cGJxSzZJcTU/cmZRZVVPNkBxPUlZSUpDZjxhNWIl
XnRndjxtPX0/eSY5U0RJS0RQPTc/KnpGCnpZUDMzP0lDYmgyelZ5UHEqcClib3YoZmFsKnhJMyo8
PikoNUFtblR+PllhKngkKkx6KShoYE9EP2k7fmZjWCMyfgp6djJwRCo+b25XWjBKRiFBQnV5RipL
WVNNYntiOHxmemR3UCN6NmVmcmBjUGkoTTB1RzVtRE5Ae0NqPXJaTiROeGYKej42QzxvWT0lUzI7
Uz1vJF55YUJ0STwwel8/UFUmPVdhMl5MWHlPYy1OU3F+bT5lVWpeSW9fREBzNkUqMTdMMUhlCnpj
SyFSO2ZBcmI9ZSlzZ0ZMPXFnK05AfkQqLUlqRFV5Z0o8SG9FczZFcTBSbjQqbXZWaWNpd3VfY21M
dCpxflQzJAp6enMkemZgSjVXY2JoflI3MF9SfHx5Zl8kLXBBOVJeKGNlM09wJnIlI1ZxR3N3Q05Z
ejhZfFBgSiotQl41Yi1ZI2QKej5UfVc5TU4jYj1vfW9wJVhIb347MCZIdzdpa0BCeyN6IU0kS097
dGVtSCtYb2tSfiZNa1Irbjs2bHlrJXF9Rm9oCnp2TDhoRnpeY1ptIzhzbiM8dGEyeyRGX1JtcVZN
ZXVzNEdTNEgyWCloP0tXKyQjRmV7UkBzcHFJIUFKaGBaX3cxIwp6Qm5JdjMpdkl3QThRPVJLezlp
YmZxMSopdEk2UWRmPn5pNSp3QXJobmI3YkE7WUhuZzhwMnApKF9UaG0/ZFR7bmsKek5jQGcyRlFY
KG9TLUQoUmFWYFVxNmtnYW5sOGZtezIxJGVsMV9xKlprS20lVTwhRWRpcmdQLVE9eSgjenBvfnor
CnpnRi03T0lQMHtjUGxGYmxRemUqSUNuX2VvY3o4N0RldmdwU05EI247LUlaJHdkTEUjPlN+dDdo
aEdRcVg5e3E+VQp6ZWRgTkhrOUQ0NkhAaFVnYXlSPU0xK0gxS0ZQcWhEZEZIdTtgfHI4Oz0/NmFX
ejglK3dMKlpFZm5sQWZyNCQkTyMKejw/PDNJNj1tOUlCeHghbUpVYzckK3Q9KGBpdVItSkI3VVNa
KnVAM1QoNXhzRFFpWjJjZj9sKjlmYmJNQFVrO3RZCnpBWkFwKCM0WE45OG9FcW0hMjhoTUolTl4l
Tn1NP3JyckE2KT9aVDJ9aGpjN0swRkFAcWEpPj99Tl5WJT5HbnFtWAp6aCklUmNMMmEhWSpJbjYp
Yj9ZaHd2K31fNTFyeC1haWVMY1k7d1JjR0VVQDdWcEkkNCNRQlk3SW1mI1U5QiR+UFAKemJPWnwp
RUk/TyM2WFppZj5WUEZzSzJtVE0zP2JWMDB4dTA5KE00SXYoX2tvdGB5Y01jSkA8NCRYSTRhX3Yl
d3xfCnpjX3R9U2BIPjF1bTZCUHRHWWlZP3U9dFpBZTR5NTxOcU09RnZNOUcwOEk1OVcrelgzRXFX
eUtDJnwtdHo/Uz5wegp6K1hRZ0I2dENJRVUpTEZvWUJJQ2hhWEA2ckJ4OTVHYD9BO3tfViM5aF9C
eHFVdnRIbkE5eSkpQFp8LV5nMmpCU0MKeiYlUUF7R1UwUSg/ZmpGOCpHbVN6VWZAI2xWXyRURUxm
bythTT9ibSRfS1VaeVNZSzQmRUxIMmlyZmpJJChvUz4xCnomJjV2SzBHO0pFb2FOWTxsOCktODZ3
IyZqRmFGe1I/MHhKSk5KYnx+RXwtYHxJcn1eN1hpPWFoKV5jWEtUOEFZRwp6ZHk1QWdiVXlTQ2pG
MjQ9clZEU3hYcy1vZHs+bWpKZnMhUFh7T0NBNmk0WitNKWpscXlCNDNoLUtTPGtpaH5EZHAKem1j
YXE3RjloMitvWi1IR1RQM2toZz9iIXslNnt4c0Q9ZV5MZD9ITVRLPk9+Skw+QXV7S0VEPWptc3g7
byp8S0htCno/Q2NiVyR7LXNVNyFaSlNXYTk4XjZVeDVFYnJ8b2szQUBlVkN7Zz5nPnMxTig8Nmot
Yy1VR3VoSVZGKUpEU1dYVQp6ZFA/Yk9hP3Q5KV9AdFFCQndofWhiQjJZSip3cztCNXsjRUV0emlj
VCRMLWk1bEohaC1Db0p8WmBzOW9qZU5oPXgKem9MZW80U2tZP1Q2ZD4xQUJwRGhLdEhwNWgmflBq
KjslJjtqYSZFQHNEYFljSFcxYDste01VRFd7PjdYQT1kUm9JCnoyMz92NjtXZkcwLSQtIUhiWiRo
PUNabn54ZCtfWjR7YDdhaHtLOTlpfE1jfEM0ZG9wNilsNnhhJnRRNDZHRXItVQp6ODM1SDFQeEZ8
THk/PDRlMXhSbiVmPXRwUGcyOztBQX0lVitGRnspM0xoSUdwNnVnTUg5PzU3QjIwRzFNOWNEeWYK
ejdLeTgyVWt0cztBdzJlSUMrYDFreTloRzNFK3xBcmckdXVYPSEwOzNFSTReJDRCPkRKVS17Qmcy
JlcrJjhQS3hXCnp1ZjRodm4+Sk82WT0mJndrU1pNfGFZXn5IJXhsSFNhOUIpSmRZZz1eRktmaWdD
Qj5xK2xze1dxU31LeTFBQUltWgp6R1dyd25jc3l2UmFsP1A/ZlZjcEBxRWEwMFpXUm4qY1UyMjtA
WGhWQWkxUWdDbU40cCMrRWteVVc0KTBaYnJNXmUKenYmJFQ1aU5sMEN5K0lNVm18UX1gU3NASHx2
eFUjQjJGI3JLcTd6YCQ4UGYxTFByKnA/eVE0I29yQTNuPlZWOTNwCnpyPytUPFdFRVZaPCN4OHJD
SyhhdUp9Q0Iyb2omSm8hIy0wY297emRfeVYtbURNdmlecSVSbCZzN2hYS0ZoWGVhcwp6OHE8MDB0
OCsyd2c+LWl9eWhkPjVYS3NZOFI8cnF6SjBFKiskTSNpUVI8Q1NiNzNIIU5XaUh2TE9xWUdMeW9O
S0wKelYrUG89MSNNYmhvUkN2ZUh2TEdvR3dTT3JGKSYyQ3JMJjFVZUAtOys2b3BmNFomP0xmJHV5
dm5wJFApbGchdFFKCnp2TEtwLWFPZCt2MXc3IU1lNDxBVDY1aT9NdDE5cjxwSThtTSE9VE8zR0pm
Iz1lZHo4RjMyJE9ldHJ4cW1zMyllWAp6Qm0yZHVXJXtleF9NQXdpd1goPjBAdE8jRGAoN1JxRUxZ
YHE7YDtZMzVFM3coJDB2JDl5PFYoZXpnYDQ3JEgmTDwKeiRPSEY1Pz0zPypGb0d3SEpMJTkzRngl
TDVacG5lRHZDZlNjOVNBIWliWHVYSVN8PzR2WiZWKzNucUEwQSNyKnF7CnpRUHdnfldSWXZnbGE0
NnVpU2ZRPldgcWZKVDBtZEk9d3Zmb2d1dDRiOGwoYlVWb2hhM0ktIWJWZ05ePTloO3h+Mwp6I20j
fV5NQVMhUVgrU0l+M3k8JU1gJWp+fnJWYGF2Qzh+bSRIPzQzNip6eS1fJGF9YGVZJE47WGclXitC
e209ak0KeiEhTXVlSU5OKDZYLXJENFd4NnNvNXpZYW98SHN+VWZKdCZ5PWJqMig5VlcrfXUoTFZt
VThPfTRBcWp5OTAhJWlSCnp2OVJHZUo+JlROYz1pV1FWMnFJZ2Zle2kyMU9gTSMybX1hTERgfDVN
diU4YVgmWWVTYlNKa2BjLWRva3hKdzAofQp6V194ektfcDdnR1hTJURhdExuZSFvZDJCanBQNWAo
UjxDKldtNT4mPkt+XjRESTEtYjtAVERKcTxIO31tP0c2JmUKengtPWYmT3dJYmk8WjJDT3FXSjZX
bF4kVCpodl5jRXs1K1dfbipsNkFFdG5nKzIxMys1YlYkNCo1eXo7SzY7JjZVCnopSDtaSWhfKkBT
VHhmSUMrRShjQzc4M1ZNMWl6cnJ1ZWYkJjM5TVhNMj05SUdIV0tmWSgtU3V+N0p7I1NeJikpeAp6
K240RVUpfnFScGs5PWU9PzdPTG94PXUoPVV9ezM1Qm43YHxMQVVqMXV+bThfKio5OEFreXcoeXtt
WHE7RVFTRVgKeipQPjQzX252KD1eI1ZJPEs7M3lLeXhnVU94Nj9eSiZyUkluYSRDNHp6YGs4JihB
WS1lOGIjLWNhPGthaldEWiRYCnpLZVpOOzBycE5AdEhYPXljTCpYPSN4KSRvUVlBIU5UYThIMUtr
aEx2LXZOcktAO1BiNUhOQFk/IVpoeHEqRitSNwp6KipBayQtK1JlPTwpT08jbkMkTiM5RVRyMmNM
WkwwX2lvc15WOyRZRXJ0N2x8dStyaXlXSVl7PGB0Jm87fEpQP2YKenxKfjJVVnJxRTBHQTJ1dCNM
I0Q5QSh6SDJ2fEJHTF92TG1ndUh6PiFVLS0kLTQqbVQxLXVKKmUxNmE5e2xCZGVWCno3KHhhTTJn
IXU9NmZ1X2glO0ZmK2RWeXVaRmppUHl0d0heMGcqNmNiPjJ8NlNOTiFwKzc2TXIqcU0pSl5OKGs3
VAp6YXZBalptJV93XiZwUElfQnhkPV9TS2RnMGk4dVcoVVRBfklLNj9zKztSR3tpPG53Rm0zZ0ch
KXc4RnF9NWMyYiEKelI9ZyF9JCExIUlzMyUpRj0jNUskKnVBUn4/dEQhWll9O0FfdDUmK3tYUDh6
RXQ9Rj56U213TWpiQ2duNDcydj5gCno4YWstbFNwZVdFU3dYJXMwfTx9Rnd6PmR6WiFkK1BBTHNe
QXVzM1hxd2d5YnJgXjlROVpOTUBfejZjbXBlM1pVUgp6ITJ9aGk3TU5abWA8KS1rXjc8ZVckRENr
MzZjclVQOWVqPUZBRnpjN2J5RzBqaWlnMTtPandReFNgfSl8cUZ4eDkKelArYFp+TEl9d1VwcVQ3
JDR4RU9iLVZ3Ty1fRllnP1QxMmIjUUB9Rj00ZXhSfWFqYUN8ZT8wYmB8TSZIOHpWTXUpCnokT2Vo
SUdSOVk/dEZHR2A2Qmx4cmtHdyRwTnclZWM1T0J6bjxMUEk5QCVfOCsrO3d9Xmlqbz0/Nk5LcmtB
TWhOTwp6KWt+Q2F5OzNhfXRJNTsoZHczJDBUUGJgTlhlJFA5T2YrM1lzQFkre2p2WTB5ZFFCfXZ5
fkNoSntVQUR2WG1VOWcKejRISyhZI0MwKFFudDxOQ3RyOXx4RG1aPkozS0xAeTs/fVZKRyZCcztR
bE04NF8wbC16LVM2MjxFQEIqLVRmQWBZCnorej1jJitDeDlIck5oZjhkaF9ienMmNnIra2A7cHJ7
M2Q8bGEyVmUzYGEwT1h2JkBuV0ZrQWM0ViNUPmVLNSFSaAp6V0V8ayZzfVRxVSFfKyN1XlF2amo2
ZjB3NSlnPEBkU3h4bD9BSDJJN0kodk4zKzhOLWtsM35saV5TVlVkdWE9YU8KeilVOEV+UE0xLStt
IWE0azYrSGg/MiYxN3dAe0xFeE8ld3g8eUFrfjNZb1ExbUJyKDUqT2QkYWZwNFM4YyojclNzCnpM
YEBkdzs7QEUxIUFGSF9CcmE9Pi14KmBwRC1FNXtLUUtsQ3dyJCZiT0x1PXQ1PEBVR01tKXB+P21o
T2drM2FkaAp6cl9WT2x5RkQmTFdURyglKCsjeDh6NkxDQSh0MEw9bnpeYCMpPm9CQ0xfOVArNW1E
ODZeIzBmMGJYUCk0eTBebGwKem11RmFzR1VmaSNYRHA/Xm43Y2liPUkhIU4rcVpXRW9IXlNENzVN
fksmTkF1PjNVVkZAJkp4PFZteHhvRFpZVz1TCnpHclo9bVA0TGh8Pik8VktTcSluQFJsd21SejJw
V0U7MW1DSjFXdWducihnO01SUVVaenchJE1IKmFqYlpiU0s8LQp6TS03fWpJWTR0PHY+TDtmRW9V
d0lrbjk7M2wwNyt0IXkkT3xrPERQTFIrLXo2ZkFrfHRVe0RRc0s0YHFIUS1feGkKek4ycntFQis4
SXF4ezgxKzRfR3g1aT0qemlyMyZzTiRBYkdubXY3N1pBfjw8Kmxub2hBXzgldlNpSW1+PmhJTSRq
CnpXfm5qQ3s7KzBIK3YmRilNK3Y3Zjt2IVc1eDhBZkN3cihKUWl3QERgdkJPZ2RRR1krcEZgfU1F
UGo0U3w0QFYmcQp6Qmo+b3RLe2tjUFQwYzI1M09tLTlMUDlRfj9MKExrTClIX21TWmlBXl95Ynw2
VVF0ZnNDcFV8aTg0UFhPNzl2dykKel4wP3UtVW1TVm58Tk8lZkE4bDt6PyNSbj8+JGR0cGF2RjYq
PDMhN0pwaH53flFeajBNMzlkO3JBaEJNcSMte0ZwCnpKLWF0PFREUGAoQ0RWN0dWJk8+eFI/MVgl
TzlheEdKT3dALWQ3MEUjeCNoelB1eDxOI1hsclZyIWp4PzJ5K01hOQp6QWtjOCZMXyY+I09reCsm
VD9yUjE0OHZ6V2RsWXs0Pm1JdCN2OVR+Nlo7RW5mQTl7Mkx7UWNrRTA7USFjZEsxNUwKenMwYVQy
LSVyNz9IJSMwa0g/Tj5LbEYjT2klaX1KcSh+PjtAKiZsNiNuaXt0aUFTMXdre2B+VmFwSmpvSyt6
e3QzCnowaH5KSEJjWF4hMXZ1Uz5IRHJ9WEJfZmc1TSZrTG9YPWdkUztocXwzPkdWLWBUZU1XelBg
WWJORmBUPFIjd200IQp6RThIZlpRXnhhaGlYR2lXKUZuanVZezg3WEVYaXJaYT1pQF4lVFoqdz1a
KnFjU3V6ZXJCMW1QYFdNP3IleWpAaEEKekJvLVdpaEwhO3M5OUpwemo+OCRTOTRaKm07SzExbCp0
M096T0RZREo7O18yUD0+a1BRWWhZam0rQiRrXkxjZ05DCno2d0pZTjJLUjhWQlM5M3ooM2lqWnsz
a3lDJCF+bCo5RWspLVhvNiktRChWTCFzT1VDSk9eU3NDbSVNPCROLTY5bQp6Q24qPy0jXmYpMzx0
TnxWeUwtYlBhJng8PVgqWHQ8dnpxSzRpWnRvUyFuWShsWCNFYU03bUB2KWt0TXYtUkE1d2EKekwx
Ny07Y0hpc2Eha0syRW9zWXpBYXExJHU7Mk5PYnNZY3V2QT4wcE5fKUhXIWBvbDB4O3dTODRoSipy
QEg2RlBDCnp7eCRIeHtWU257IzU1UkIzPVcwaHZ0UElYN3dib1BiJVQ+MGsxNVQ/VHZ5JmFYI3Fe
KUghdSl1UnxQbFVSQnA5Zgp6O1BaanN7dVg/R3p2VHZFaV5sUEAwS0VmI2RiTU9uSn4mK35TZHRq
dUNvKT82d1lTJDB0NXBmRjkzTFJ0NWRGbTQKel9FeTRQNV9fJCElWkVSQ1dEYDhgdHJsOXhYUyNr
P3dMZ3U2YmJoYEM/bExseGcmMFUpKFphZHxzMCt5fU8yQ0xnCnp6U3M7ZHcrbkBaS3FuUm9WPWEo
OXZeIzswZVpwR0JYYj9oSmxAWnJ6NDJZfkRtT3hEZTtgQk1MJCtROV9RPClycwp6MmJHcWVgYEpP
KndRQ2RIY0gxN317XmlrRjQwU2dLaGJQKVR7billcl9rfFp2eXlTOF5hUH4wNjUtVHxvJkJgQVUK
eiM3dGdSYHUhYHwqZkM+PCpEdHh7Tl51V35eLXtYSjJFOFQ0MV5LdCN2VVI3YkNOakh2a2h3YE5i
IUtqUTVOcCR+CnpnVUomdE9saHA3TEtDYXZLIXNmPWFVbGtZUG1nXl41Xi1OTkhBZC1qSnJTWUps
YjQkbCNCIyk7eFkhSDZmQ0g7KQp6VlZENXZsbUVQKiMxPD9gYG1PSVl6KztifWh1KiMqLTkyZ19t
WHg/QDFwXzs1I3lwN3ZVLT16T1lsR0oxbEFFaXQKeiNzej0maGcpY0NoZT18KmVERUx2XmV+SGok
aWV5cDhvWWQ1aG1vLW0tR3x+VjF0K25yei1lJiZvYkI2KztqSU1sCnpKR1RfVXVVX2RWS3BkaU82
fjFJKEM8MTIpQEdteHdReGY2IW82Q3A9bipoN1M5ZGxzfjglSm5adGZDZS1zSV9Bcwp6WEspIWlm
aTckVXc7PHRZMn5AM0UzSFJNbzNQen1kdUdlViZhWVUwRThsflBxWHJ1dWV4YEledyQkYFc0VG9Q
P1kKeiNUaX5iQk4xND1hc35OYmd8dWhRQjN9JFU5blEkOGo/Ty00WlNBNS07ZXZ2XiNQTCYmRk1S
YXh6VzVnaFVwOz9ECnphYlVyKTl3USE3MCpCUW41fUhCJlp6TnwmO3t2SilkfUF9RWJ6TE5YNlps
M0BYJl5GMWpTaER0UTdyTVIxXiFzPAp6ZXkoe0dfNms5VkxzcClDPTdzT1NfVT04bSpWUj83UURk
PmBiNUBvR05+N0I7bklZMWZIYCVZNFdDKkRyUE1Ka0wKem02JFpaUWV0QVdpNENZLVN3WDt+TGV1
JHJhNnwmTU0yaEpLJTU9Mm94PmBTUlZWbj8tdUs7JkoxUntZcjRLU0tvCnojd2VOYiNWMFBwQE16
M2IobSlZQENAWFY7c0ElKiE0M2x5UF9XelhwM0hpVEZUKTlXend9SVNESzt0UnwhXnNtVAp6aHpt
NGU3MjJZNXR2a1AqIzdzZEw5d1JZR3lvfXQpNGsjaW42JkMhaVVnPzIjWXgxRnZKYV9lbTtJWEdK
ay13WUwKeio7O1piQ2cyJHprSEsjYV4tO2hlQHhkemR4eUIrMU5vWk9pITUwSz5MOCF+OUdTPCph
ZnNuMWRYYXQ7Y2dhRC13CnpBXyklJmFuejJOczlwd0BpXkhpV0Ika2JPaGJTRSVqfEV8OUpQSlBJ
UWxwR3JwK2xxPDhhTSVeVjwteGhCYCUxUAp6eEdqJU1DczxtS2M9cVRaXzVfPV9MVm9BKnBrI3Zz
eTg2Nk93UThkKHhyKV5mZjhfbnxCTmp9TUxgZiUkdz83PC0Kemoqe34hcHY3eHg+R2FtdUh+QWNo
WHpFQjlMOSViTkxSZD5ebmplQEJ0SDZMNjUwTEFvbGp+Xj00VVBuUWRJekc0Cno7dDxJO0ZNdXI7
eEordDNNOE1ANzkyeSZaPmdrXzw+dEZ4cjVDNCVlZVBCJF5TPXM4Pj8wXnpiMjg7dTE2MlFROAp6
NWU+XkZXVXNmJFgkd2dhNjJUbVpNXjVqU0VwXn17PyNBZU5mUXFTTE9vJWkrTUV0T0JSVy1iRG44
WGVGNS1tZT0KemxBOWt9RURwVGYxMjZvbGhxc0tkdWJTc15sR2lCQU8pfWotRSkyPkUoYlF4bCom
Y2VKN0ZPMnFKUjctKiZ6KElCCnpVRVNUNVZlVGkhPihxSDRZfkc7Mz5iZkdoPiNtKHBRJmorMXlg
Mk9mMHx7QjQ7bj5MJEBDSHpIbFRyU0gxIWkoQwp6JXA2dk4jWmhMPVhWOThUbFlTQGVyTnE1aVp0
Vzg+alNxVjtjbnIrVz1hfDJvOSlueHpmZFp3MkhsRWgzKmFoKSQKemwkO1ZRajg+PjVjUHRXTUok
S09ud09Gd0B0SW9peUFFbU1hOFo+bz47bStOcTxvNkRgWnliPz92NjBUZmwlSm11CnpXdEVqc1Uw
bnE9RF82cGJzdWZVTFI+b15CYjxkc0V3ZU1nfHFpRk0xYy1IfU1QRyRFQ2AjKFYhbyFaMU4xRj4h
aQp6S2RUV0ooMy1fbUg2Qyl2dmNyPy1tSXdOV0xTNWJjZ09QQmdza3lvUiNMOzdDcEY0Syt2PiFr
RlQ3dF9DRnRjKlEKel8xckhHQUFJbkVUa3BOK3VIQVJ5b1VLVllELWU+dk56WT4kTFRhcVZWPUF5
PkZmKH48YTAwPkxSeEVBZ2tzdyUlCno3Xio8K3prTEBSYzxEU3VISWJGJlZCI35iTFVELSopcy0z
eWN9MjJYanpOKHAwKWZ+JUlEZEh2aXAhV3cjYE5xWQp6JVBOe0p7N0srNWJ0TiFab01EPk1iKnVC
P3A0LWQ4bDt2KTJabDwrXkNpdlJBNGRSeEBEMjNuTHI0clhrZkowfjcKej19cSV7P18yfCQpKSVs
RlVlbH5KMkdhR2hBaEFHWGBCeXc1bD9YNk4wWjh6c05TVTgrKFdMZTV7ZFdBQnBHLVIxCnpISHNv
UlZvRHtBeSZ5UnBDK0BVZjBvQ08kU2k3MmxEJUp4VVBDQWtFc2pnJX5qWiFLOzUqVU1sRl9sKXJp
KEk5Twp6UFZmdT9qMSFOYkRCbEhSIzZtYCthUlF0b0NAQyQwK1MoY2RyZGxXfkZRZmw9STI3Sy0h
aXRmWjk2SDlNQnUxdTAKem5QfHh7dShYMVp0UmZMYWQqaUJYenZzI0NKYWA9eWckPXlHT0VeQzY5
WE5VN3tOPSZIa3N+al5lRWpVXz0tOT5qCnpgbzttYFcrdnRXdGk9U0UhTkh8K2F3OX1lZyM2X3Zw
Wm4oQy01WW0xb3BKJXdsKDZOallfNEwpSlhTaUghMnU8aAp6QWhLSmpzWCU1cl5TcGB5RllAYk53
K0NLKXNTX2R3UE87fkQ/U1dDKXZJO2M8OWlaeFk7MDt4UUIoZXExPEtaPVMKel5lTXByMWJudXlw
PngzK1k9MEx4NkNoWjg0WUZiSGV6PXg/SD45Q0VJeSNgU3B9YDZgOGA9UWNKNT5xKiNnUHcrCnp0
REp1eWpVTWxyMyZYSHhtRDhHTU1KKlZmRTFlYS1NdVdeJWM2eFhWNDl9VTtUTWhHSUl4a0JYbUAy
U2Y+QSNzVgp6c1g+bnw4b34rK2VoSW0hSz9uWUVBZDBsJm8+O2JvTHxrWnZ3KHpVT0leaSlKcU1J
RFkxZTN9cFVPK1QzMW1rfHoKekBgTGR1dDNKVSpjIUs2MlE4ZV9me3JoM3B0fVJlZVN3Ui1JQkhE
ej5FSHNOZihaWlk3TndDWFZMI29FUlV8dDdYCnp0ZXJ7WjZUeEpqend2UWpVdnFPP1RYUiRVRiNA
SkQhXjVNKlFnIXFiPnhvKiQyfFUqPm12ZGdFIyR0aVg0bHFgXgp6O2NffXBwS1pNUz48PHE3QFBH
WiQhKypkdUh8IS0lTmd4NGRyS1NnJS00I3B7aiVuUTwkcmFhKGQyRFZYOWYzLVkKekBPQWdCZnVI
e31NcUhUPzYkXzFweXMmPVZJeWlkUzB+KER7Vm13fEUhQlcjVFhLbzJQbFloMWkxRiY+SkJ6RWoz
CnpRfXhGQ0R+VEhrdj1Genl6YVElQj56VlVVYzUlN2NBbnNzLXhfZ1NOMz4reCNMU3JgNXZUSmFx
I1NnYStnYGwjYAp6WGBOKHwlYnJvVDVuWmNydlRoTUlEPHM5Iz9hLXtnRXJCbUMkdTF6I1ZofVpn
WkxCM1UxeTRtWWJwVHAyJEUxNTkKeiZxMXVNVjxsfGRTV01OTjlITnQwSmM7fk9BP0koNV9Je31a
VClvMikycUlIUnRQPzhpTXV+ZWBRJlM3JndkPiRMCnpmNENGJkA0dU4/SjZnJFQ0Rk9jdXhKQ081
SHFDYXk0a3tiU2w3cn1BKG9fYE9IeGVNR2xeLTEpQTgyWjc+dTdFNQp6SWBpcikkTGp8TU1fT0E1
bjl3YUc/QCVSSyNFSzQpVzVjaXxwIUlBNlM0IThpKTlHK05eWCpeJV54a3srLU13eVkKel80Kmhr
SCp7V14wY2thWmtuR3Q/MGhvPW5uOF84aWVpcDJzZ3xzI29HcDJhYGVWZ0ZOS09VdjdBcUxWO1J9
ansmCnpSR19JdDJadks3SD9mWmQqNSV4SHdeZG5MaUNOeWIzMSVtKlZDa15xIW0pakdBPyheKE5a
bW5YMVRVT0ZQbCpJPAp6SDAmN15WQkUoRlduRz5NMCU5a2x5eypPQFVQP3Z3Y2sjK04rX1MlJkN5
NkNLbmtobD0wVUFpKSp3cWtne2Z8MigKemFGQ25YO2JOP3lEMWZjT1I4T3UhQ01rcikhWGo4aU9u
SXBjVl9zJmxVNVpCQkZxeWNRJGgwfVpBS2VCVVJ8Ymo4Cno4fntCXiZZUD0lb0ZmbHEyZUdXbyg0
cjliNE1PamoySVZYMjtPMDl2emBsTEVWQXNBcVJ5Qnc8a1VnSEBSVz9jMgp6RjFiKCU3Q1VPNj05
clJ5dmEhUnMqZjxwQGs0WGlYQGNCcDFwMXN1Ri1yanhvO0s4SHl5fWJqP1pMTTdjMVdaeCMKei1o
P0VISXN1YjtwUEYwM1IpZVV8d34yQnchSWc+SmExOVFRNH1TVG49ZjNmdXBaZW99Q01RdX48aT5S
NWdeXn4jCno3LT5PUVVKSmlUaSlFP1ErRzhQV0RsTTxaN1lyTXImLVVWU0RlJk1NWi0kPmVjWjls
MypqflNMcVo8Wj4kM1lYRQp6NVEtSShMKG83SGo3YiYjTmpzUWkyMkZNaVVzWTVmej1OK1hxWlo1
V15URjlPWFh4S3IrcnJTPG47QCZKbEt7bXsKemZraW9jaXlCWHJhS3J6Zkk1UHIhdyZqN19FbTdC
dWVHYiNQSDwpfVd4dkM1dlRFdzdKTmw9ZHUpb2lpWDNWNE5yCnpXU2c5OFNjQzB3cyk7fWtxMH1R
bGFnaExwI1J8MGRNMlFpT2dJbFZIc0pAbH0kVnY5O2dkSUNwUVJZeT9tUmFJOQp6VmglM2lAMjkk
dGQ0PjZ+WVRjWFJiP0BJYGVGZyQ0ZmttRXpVNzEpJjE2R0MhQk91c0BrXyMhVzl8TXlAN2FCWmsK
eiFDLWoyO1l3USVhcVozPklCQGoqO05XbHZgTUhOSVlVQ2FpUjlUa0xHVEJHfEJ5Mz5QKCFnWH5P
JXZyfWdEYnNqCnpJZ3BwPFFlT1ArJHlaKV49cnUzQkB4an5mM3h9aWhybGFnfU11MChAaSlkSWJw
fT8mfEBee0lrdkF9XzNuMzIybgp6eEFiJXp1WiRwMTx6PEMlQDlTPVktQEpIPW1QOGQ1c1pkOzgx
S21SYzFzMW1KcVI1UzRfKDMod0lzRmU3I2NyeF8KelMmUyVeSyQ3NjBgenI4TzJjSXRwciUjPXRn
dSRoejdfa1pANHcybyYxPFdKWHY3RW44Vj1OeWVFdGhvO2NubndICnpGYWk1XjdPfVB6Tj8mVjlK
QjtwTSslYFQoMX1hKFkxbDl5O3J0byQxZTQwbmsmcl5hYk53TSopRGdtM3ZCfnhsWQp6cGkxUVRu
P1RsRERUSiQ2WT1JNHtNVG1MKHo/MUpHdjYyZmB0azl1b1F5dG1NRG44ZHM9UHE2YjBLc0g4Wl9A
d00KejBCNnBKIyFkck53WmR9fTIhPHlKbjdUVlVkTV9NNGE7Q25zdiR1XntzaCZfTTlLcFVWT2Um
KmdCNXteI3ZyM3NQCnpsTzBmM2x7e1diYUhXd09mYGhtJiFseXAtS2NEYUo4RVZfTVpTOEhGKjRN
NXNFT1p3T3otTS07RDZYdCEwR04/Tgp6Vy12KTwhKUM/TyorRWxwLVFjbz13cVZTZG9jRzJGOV8h
WHMhITVWJWZUTUBiJntjVCVDSSRMT293VSVgRFJ1KCEKeiRqS0Z8Vksqe1dZY2ojREN2Ty04S0pV
bGN6cG4oVURpcEchMkkxbWAzbE5USWFHQGF6KnlAR190X24mJCg8djwyCno+YUpONG4rWVY0YDh1
czk5bmY9XnlzJk1QaGJDbTFUYzxIbCR0TFlEdlZHeW9QRnB8N29nLTxxNldLN1dxT0NIOQp6ejIy
TXtZcng3WDFAYio/NUp0fkhsKlZneHh9fWNFQDtjYk1MNTkwO1FETnI+WXw3a2FDQjNsJTJqNjJL
dHQ2eGsKemxBOG85VFdwbyRfVkwlN2dFbUNveHNJYDBBUSVsQHN6M1M1IS1yMHZYPjRrNT5TKnVq
MzVGdlBFWWR8VjVnX1MjCnpkN2dMJUZsbn5SX3lxXmtxI31yUXQ1ej1velVZfW8zSmJZUjQrX0dA
PEMtVEhpel48RnZ0WjVZcz02KGtTOHUlSQp6SFFWPVgtZE1ZUkUmMEZWNU17ZFpWTEAkelB1VF98
YiE0bC0meWhLPEhHT1FYam1TdGpoaiFLNjNgPkYyRFpfN0gKekl1OTRtKWBQUjQ3TEx9N0ZnV2dt
U2lGb19JRmAjdm95e2ZNcyFCd3d1ZEtYT2YlbStYNzEzVjRiT3tFPnFId1gxCnp4S1MjcjR8THtO
QVlfPlpsK0FWdyhSTiV5Pk9ANkxNP3tCdk4hKyE1bTUxKjg8JiE+Vz9+Ykd2Kjl5c2Zwa3w7dQp6
UG9TeiRsTnVmYy1ELVN7aElQT09oVD1rKlItKWl7XiF2aUZ1MTx6TVRieXc3Jk44VDM7an08IzR1
fXZrNDVVajMKek9HWHprMUs8UXxuVWFPTUcxWSgmUyYkfXREb3BxajxRajwzLSM+S2ZeUG0zTDQr
UjRMRmVaeDtPeXM+JmZvVW8/CnpaX1okdnRII0d0U2chUEBPNF4hNGVCVCheK35rMU89OVhTPlZe
ZXAta0FDezx1UFYhbmlaXlZpVUJDYTlFbkJ5NQp6VUE9ZWY9RFBKfHJUTFgydWNmMF80VT9ZTXBh
KEhZUkBtfWNNaGRCczF9WHY0c2BQRCNpOChOR15TfVE3bl95JlEKejB7WGk5TmJJIT0yMmEmZEhq
ZF5YYj1JPyNvU0FESShAS2Q0aU1XcCV5eiQ7ck47cUkxdDc5KyVPKVhKcz9HUlk1CnpmPWE0SCVa
Xlg4NWhBK2YzZXI1NEhQfDZKWCQ4VDZXbFZMfEdGe2F9VlBjeEZAVzdWaUYtK002Wm1DNHhyZjw1
fAp6ZTBub3VKcTAlTzBYNT9iVHBGeWUhNklONj9BPXhiNj1sX1FmMyEtMUVfUjhPZEJzLTM3R1Bl
JHFDfF9CSlo9UCYKekZCJTc1QU9SQnJqYVlnRF8mQyU1YTQxZF5ZcjNKbExKI0VTZHF4dVJtQGRo
KEhVcFRfJERTX1BMdGV0cUdGSl4xCnpRcFhZel9aYlU7UH12V1pLcmorSWQ4JT5YXz0kIVNxOWxI
b1NoNERqPiNIfjNkSGVQfm4+VzwlQnROZnF5SXBTVgp6KDUyRjBkTTApLVN5aGw/JT48YjIxc0VB
aEJneU5jRiU5MVBwOE1nZVB5R2JFIUV4Qk8mSXU8azVpMX0/JFptYSoKeig1dmEzV1drdFJsQEEx
MV91ZiVTMCZNfT5USER9cWNNeThvQCNlKFpJOz9IMUJuQ3NFNzQ5Wmoqa35ZPThlIXgoCnpHTERB
TEF8QDVEYm55Q2g3I2ZNZmlnRzc7amA3M1NkMV82dCsoV1oyUHA2SFZkQD43PHVrZnxTYz5vKCVK
N0R7VQp6TGZFO2YyK0UyYlkkZW5mRWdye2FNWnNxMlZEZDsqQTtae0lgfCQxKl9LeVJLYnZMOHkz
M0xkQXBJRlRhcEdLP3sKemA1bHNuNmloQn54RSRhcWFMQHU/QnJXcHQzISRhPyVKOVY0KnMkenl4
RkVHPHxDKW03VDduREdQSipldzUjPXI7CnomN01uPT0jVjZ1M2E0OUZfZlZqe1cxI0pxRlA9VjdS
RzYyKXM7KyQxRWpNcjdfcUs7MF9AbU43KFY2Yy1IXlEqJAp6KHNWdG88akl5YUh0YjAteVZQNmV4
P0BAa19yWFdzMjQ4JnFTeSkqZmhUaFQkajEkKkg2PDNoXlNtbmRGNlFJUiQKekI4cUllaCNTfUJL
fjFGJDlVWXg7eTJURzsheSpBPTVFTkd0aUxyX3Fra0JmYkM2cmJ6V201NXE1K3M2WTI/Z0U9Cnpu
SmhyWVc0JW9GVHx7b1NYZWRUKkxlYVdtdD1OKVZjbnc1SyhQTGhfdjxUOzdEWEBFVTUkcXNhZmsp
O1FgSztzIQp6Vjx4TnBCK1ZqYTF7RipWRnU/e1V7KERSeTJaPVRFMXJ5KjY9bWMxcCVvbk5CdXVL
Km4xWEk0XnBzbzR7Q1JDY2oKemRQdm1mJExHQktlQiE9RmU5PjRgRkhuP05IaTc5e2dVandCK1JP
Vip5JWNra0lwNz9NTGV1cFdYdjhINlUlYj5ZCnoqZiRqSFRlSSF7X3EhQ3M9fkNpUVN8fnRlaTJ3
ejhJMEhHXlplckhQTyMmTEUoKCg0MypRQkIjYSNNV3ghfCNPMAp6QU85WmcqOyklbkYxakVWJj93
TyQ+d1M9aiRwbCFIVCkranBWUCZ7d1hGbH13X1FOc2F4YGxqQmgoJClnPWBKTi0KekNaQVchaT8t
dkU3YFY5bUN0OShiIzxWckttP3JoNUhCTFR8RlhrUEtMM2d0Y0htITYoZTtleUdfN3BteHEoVDlR
CnpUZTQxY1U2bDttSCtvPi0mU0tjUHh0TlohSE1LPFdiZzF6fWw2PkhSUE16blJWUiZ+MjdjZ209
U2lYJHEpSTxpUgp6dSl6VV4wLSErU0NqOHpnc0RyWjdtU3ZKPCs2MFBDbytnKz8pMUJsJUNEc2Fg
MlY7PmE8bVZTPyFuR2RnbTFXP3YKemdEa1VYQSMpaWU0bThRTVl7KWRhVG47aE0/VUt2T05gMiU7
RC1CMVomQCZROyZWZXtNOVU1N1E0SmE9SDtAKmY5CnpZJCMhRVlRdnthKCNSbVFvZFVqTyYkUD9x
aENnYHBWZmdDUHpsMj5Jc15MQHZqPiNGTDEqVENiPTU9WVRjSjZeWQp6Tj8+cXM2a2EoIUxAWngx
UyFJWEZgXilLMjApeEE1aEhZanRPWGk5ZSp2OzhyPH1vSjYjdX1VfFByelZUZ2lfYCEKekQmNTNB
Uk4/KmFze250MSNlSHBVTEFkS1IjYz1FMWFAYjhgQ1VpfXlNYzNIcEdScXtTKUQldHo2d0M7IXE7
KlRQCnpPeW4+a1ZGVkcwb3lhaS1CTGNOZFNqfjxBIWFCaj9kPklAdnZySGxkbCpFM1BMYCFsJjVH
SD5YS0diTGc/dDFQMAp6elN6ZTswWilHTXYtR3Y3aWdoaT00YG1+YHJVUDVMUldtSntNQ1Q8KXFG
entCOUgyZnA0anp3Vj9IYnUpYVJ8Z3oKejgwKEZMKDM9M2FxQ3MmMVBeKHM0QWtiQ1k5Rm9WX3Ux
Vi1oISNZP3NaV1N2aztCNjF6MFk3PkU2cylVcUxWSz9RCnpucERBTlEzKXotZzFsI2MzNTw8Unpg
PGpeO0p9JXtwI2ZPNHgpdVVxa3EoRDJqNnx3VHZ0NzQ+M3VyUThBe3BOcAp6WDZ9bF5WUWVAYDBr
JmdYSzVTZnsyaEdISz9ifXJYengkM2wqdClUUl5AcilLQHNmMV83JmNwK3h0VDVfcHpKWVoKemls
cVdSYTYjYm95Zz1lNHZgaHhLT2kzYEltMm8lfkNfPjliOTF1RjNMZ0p0eiRCN0Vael5RZ1k1WW9U
fFEoT3pPCnpmRUV7emY4ZiFOS3o/QiVlQ08qPSFhI3A3Y3N6TW8yUVdFSEUkVVFPRXh9cEAjOEds
RyRGUHFvO2YlOUp4Q0IjWAp6IWdoVkVubnVDe3RFUHYxRClmIVUhNjloYFRwRTwyUlZ4eEgqaiE0
b0Y7Q01XISQmM2A3Xyk1T3VeR24ze2glRmcKekJNMntzbU0pZWdtYkZlO3prVn1XdjRlMnJiVSMk
QXRjMjBOQXl+YnRoVHVtZ1J1ckliRmlzVX42UG5xUTA9KFlPCnp1Sj5WXngyen1scENxMSF6JX4j
YUhtITJQRXFpTDxvb2B6T1JUWCh1aHtrTFB2fD4oc04rODJgNWhtKkBPYW14TAp6KEZEUFRDTDl3
O3RPVmM+QXgofjhsNHl6bzJSUyVNeWl9Q09mUTRXKFR8S2wpWHJVO1dYZzcxfVhIR2dNK3FFIyMK
ejxqPUs0ViRBUk4hQ1QoYFpuKnVmZCpMN2NgY0w4Rnh6a1drU09uU1JDVDEoUnJVNHR1cWlNUkxD
X3hOJUYoO3klCno1P09xMXVTVlBVO3x5I0ZHLUF+ZFhrbFgyeSF8UylxRSZOaDxSKU5OdCkhNStr
UkZUeTdAPVRsR145ViE2fSRKfAp6e1YrRF8xNn1adTxIKDJaby1RYVRzaWlVMyhLQ2JLJH01MTtv
PFM7dEd3UmktZHh7RTM2PWZgdTxASVpuQXhvd0wKejQ2N25OPV87fms/OWJZYCNzenp+bSUtajA2
fGo5JWt0R01mekAmakM/SSVuSnBmciNQWEBkXlorKExvTnBQNHN5CnpHe3lrczRIOGdBTHtLIz55
Xjw7RWZObWJAYnVjemhyYjxxZmhAZDJkI04jaDlJUk1haHRPODZ2X0V7UHEpVitnSAp6RmFTa0cj
cWc9bUtMSWNOXm9Re0VDbXZALXoqeiNZPHBNNCVpNUNpbnBzSzFHRlhqWih8SEhaUGhOViE4KShw
aWYKemJ3Z257QVppVjIyP3tzX25aXyshNnkzKzUzV01XdWF3Qk12PVRmMXhoPThEa1NoYWkhSlp7
bHl1Y1RuKHc/ajxUCno7OWMpfDZPMkZjRVYrbmJ2Y0Q9QTQ+X1FALUIxNFNmVCp0JUI9LWh0YVdI
NG9IeHdoXyNpWG9FSmA+QTw2MT0+TAp6WHxgTFhQRlFsfTZremsoMHVuMmchITVmaVZkTDZEVEIq
VEM5X2dIWDAyX1RqUDBCdHNUfENLQio8WitGQ2FgcXUKenFhQC0qO3ZvPGdoYFQzSmpTQzdVUyly
RHhmUHpacVVAfT1mNGtUVnBBJjk5RzNuX3JOPk9TWDNAc1cyQW9CTDdLCnpDXkAkdF99dmVGN3x4
dEgzZGF0PTQyNEF7U3BsJTZzP2ZOKWdRU0IwNXFkSDJ4YSVKSCk0JSoxVChLU31tZyYjWgp6dior
bkAjN0chV3RIdn1GPTtUUkwrIU1pdVpZMCpmO2RGYV4jITIpfVMlKlNtKWV2YXFCQCRWZ0MxT1FI
P2lNan0KejFiYyFXYHxRX1hCSUpoN0FzSVVRYVZVNWZCJjQtMENjKUk1JlpQPjhfdmRzMm00NFEy
YGd7MnY4TWJVRmcxeUArCno7V2FsXkx0UztnV3F0SiZ3T00xYjlpT1FsV30wNm4hTmhXMVNkfGVX
bU1JWHlfKF9CKTRyJE9HdzY2LWtyLUhHUQp6ZzhLNH5xLUNQeWdKaEtfckI8Z1d1Yll0dVpoSnBN
Q1U2LVUlRkAhVDhJb05hJDx9VEVDNHhLPjNjKVgqfDFtdUkKeiNtREdweUlrJUNqbDxAO3VkRHxi
bytSdkN1Qn19T0FOYiZoO0h+ZD83cD5ESDtQP2RqKTVrTWswNWhnQmMoUm4yCnpNO1RAPSVta1pl
ZnNGITlWfDkldlZqM2VjOCo5PV9mWDhWTnQwcUVhc1o2YTxvP0Vvfmh5TFpDejY3ZEoybT0haQp6
PW8pbThtRUopST1MendDRnl3TnBSTGJSMEwyPjU2d2hnNXVXfndIWnNTMFlWQCtgb29GQW1lOFhm
YF9Lc3NGZD4KeklielFqYVo0akEwVFhmYWY+Qmh6QkMpSEVSKXtmcjNgYDcyNCRMemxwaFRXOzU+
d2cxXiFBVCppRmFlbHdaWGBvCnokRzB4cWw7RmFsVk9ZPk9vYzw8Pjk1Oz9QYHNvanpoM3xhaEU3
MEchdXRkam8xdXB6RDBseSNpPzdKRU08diQqUwp6KCRYQGo9ZkB2dHdIfXwjTmxBSTsrVGJqe1Zs
ZlFmPE92JGphQUhKX1EtRFFkPn1VTUZocSFLcTF1X1NrTF9pdmIKeiZ3YnwwQVNsSFU2VXcyZlRZ
JXh3Rmk2SDI2cVZKJV9BTTF+YEBSKmhaYFZwI1FKIXpBNUdDNzRqSTwxIWstM2deCnpFKkYtP092
JH5sRGhReW9JOWpGe2cyfSptSDM9a2leSkZ0X2wzMldpakdvQT9RKTwmPHN4PWhTMVh4cjE8clct
Vgp6WkRoTmRZfkhFOWVfbFJgZHE7KkMoUSpDXjZjajhCKFEjZFhpfFFqcHF4OXp3fExJQEE4e1ln
ZFJzTy0mNngtdHUKeiRvQk5xe0t4YnMkKl9UcHtqOVMmUWcmaVFHYTFNUHJUZns+WX4oQjZYZ0gz
aEZ5OEBAenlTUjBkcnZgTEs/IVd3Cnp3aWp4dURgNFk+OG1LN3FhS0xoej5JfnA5ajc7VE44SCRS
aDljTj0mQ1QySEtBMCFlMyVIJCFTQX1ZNWA2MVBrVwp6V0FoWlYzUFA0Q24yPn1KJSRQfD90K0dm
Myk2fEV3N35vM1Y8eW9AYjBqI29Uc3RYSz8lUzlJQUFTRjdVZUVjIWAKenl7PE1OdyhQO2h0ZCRT
Oy1GekdUJHcmVmhIZ0ROUkw0X19gK1M+Q2J2aSpFNnAtODN8T2RZRWttWHgmNGZ1P2IqCnpXJik3
amJhK0Q9QjhkVTlmbCt+Mmd0KUJuRmU9ZkxJODZoV3FFaVZxT2xGSGgobj5MMD5scyQqRGNuTE1I
NkxkJAp6YTdVZ2E1O2JWZGdha3hYNik2Rk1nfjd9IUBsRUNnI0g2XjE9aFp+UG8oOzNyMV9+TUNC
ViF0SFdtcTdMMXEwVlgKenZmVTNlSDhGQkcoTD56Q3BQYCVoJXV+P2EqLW93NmU2M2l2Uj5qWnk7
UEhGa3xLT1ZfWDtFSExOI2Q+MFJNLWcyCno5I3UyUENyTDMlOGAhWUI2K3RHOylQPHlBKEBifFZE
ZHZ3QlB2aiRWUD1oMDN4UVhRelkyMWJjaTNtN0tOR0YhVQp6ZlA2UkJCTVApfiFzUWZiKCR+IURR
MVpuUFkmV01aKEpMbXEoVTVRcU11RkRsVlMqYUxncThgJXFAcUhSQ3koV3UKej58bnhwTmZLPlU1
TW9sRkxKJWc7eD8yMm4+YGIzQjw9O2F2bzk8d049RUVUMV5UQ19uQG91PkZfQi1NNnxOSkRKCnpK
YSN4bT5oNllNMy1KczR5YzJOOC1TQChPS0s9d21CTjZJfiFQRi1LcnghRntQMnowMlJuUDk/Ny1x
QWpvQH4zZgp6VE9RMGVwflNNJjw9fVpXbHxFQn5CK2lyQylgbndzNStMSiVJU0J5PVB+Wl9NOzlN
P3xDYmxJaEotPXA5QW1KN2EKejNwRDJ4KkNZbGVobXkyVENaaXtibVlYTVg+bS1PdEFQS3hCTjNk
Jl5xQDVmaWdEPHpSbU1pVCUmej4+LTdURiR8Cno+JUUxR2peY0V8TT9kb1dhUXlKZ1AqZ20zeF87
U05FPUlGUXNoamZQTHZNdll7KUBrWTJtdXpaSXh6ajBrTVllcAp6U0oyRjVaTUN5dWhHPkd6SlQ4
ZWRrUnJYbyhXbHBsRTJ1YVh1cTJhZGoqMkk/NkQ7UXo9UD99U3QpZ1RMajxHNWUKejFlK31ER35i
MlF7d1I/aDNeU1RNb15hNDltbyNTYiRXWSlnc35+TEU8RUU8ekhwP1d+VDBnK2Y+S1c3OGlIdmpN
Cno3dXVaN1o9Yj5XKyslREVGMkxWXntGQ3RDfE1oNyZkZ3ZmaWhlfV9gN1ZzZm9WYE1SIWVQdGNJ
fEIqLUdFcExBKAp6MWNMIWFmelEwRVZDeVhrcEk1O20qT1ZFVlZofGYoMXVoYXdaKmJ5cjUmTDEw
QlppSFkpT2otNGpOdVpURmt1eFgKeitfSTZNVis0JGAwRiREfGVKWEFsQCpPUGlna1RiRkY7aHhP
UUNiO00lNWYlSmxOYSp4IThJdTc4PW1oUShXNTlTCnpFcm4xMSpNR3dneldvak97RDFyX1h5bntF
N3BkXn5udD08eU93akwjVTM+UHlLWXlDaD9DMkkrN0d2Znc4ez1fVAp6KXVPbkR2d1g5X3IjVnZY
QyMoYE5PUEcqITs0eno+Q31HcTtpe0NXZU9tSFZiaGhteWs+eiNLWikzJGZoRHY2PyUKellxR35v
bGwhWHtfYDVFbUB0VmlPZT5Ha2JFQHBuODd2QXphP301JFJjOUo7ay17OFg4UTtTbFV4WEBFaFg3
I3tmCno0MHUhaEB0Xit7ZUJ7cVIzVkNfPyM1RHs5JXh4YTZ6PHV3ayNRQEZSVVNMcHE4JUtzRnNj
fDc/R2psfnxNVDEhfgp6Z3Vzenl2Kj1hOVMtJGpIUUptbSh4flBrWkBxJlo5ZllmcXtYNn1oc00q
IzJhNkArVkVfOU0qant7P3Y5ZmF2cEEKenlBdXBNJnx8dmdIRnZfOyRPIWF3dyh+KVM7PSktampC
bDNtI04qMWJkKjRrWXcpentgdn1HJSQqPCkmS0s5PlJDCno8WHYzUSU8aXF6d1pXI2xZMzY3Z3Q4
aUJ8T3NkZUBrOEozKz1gNF8xU1BOLW1tRiNONiVoVmlBaXVhfj5IJUF4aAp6YkZ1S1p4VlZKNmlR
b1ZCKlduQXFPfmkkM3ExOzZJP3RBWkJrYHN1KmVTU2QhSm4rVWghPHUjTGk1cGxCa3d9UTEKelNY
XzxnWStWRl83KFhxbll4PCZyVylWWTgzbXFhYXEtOSNBJHF7Kn0/M3dgZjBYOFhRTTMocSFhez1z
Qzk8cU5TCnpGTkVuUEtLd2lIZylRNTZRR2hqRnhrTGVXKSE8c1llJTtjPVMhbURDb2A2Iyk0JHA9
UyU8UldYT20pZlNfUF8mZwp6Yyp7ZyNRNHgoKm1KQnE7OThLM09aJCFhSG19RU9SdUdOQ1gqUGhg
OHpvZ2crNVJKbV95KkktTDl7bihVPkBXWD4KemhBdjNtVShKYi04eWhhY2EoWkJWZiZqeC1nTj5X
RjJDPFNPbUlraUhoXyNIeEIxWXpRPythO3FBTCh3RHVtb01YCnpiNCZzKzN9Q1ZUWlBEVHdANURJ
VnZpfmw0QF8mOD1VLSUzb0lgUnQmPU4tcSYqekM1dnoodztxMCoobkohVGdBXgp6aEBoRTBiZDFI
bEZfIT9LKj1mRWU5bTY8R1M1dnFFND1tVzt5bWJlQj5UXiVQRk1qJDFgMEFIRk1fdEdIRUxoOGAK
elN1Jmt+IVpPNkVUcnkrOTBXcjs2anI4biZfVzQhVzdARSFGc0RobHhUR1ImP3s5LX1DZHc9Z2t1
eWZCJUBZQztxCnoyT15SMW9HcUF+K0xWeyZzN2lpMj58RTR7XzN7fVIlNXMrNEg4ZSN1bXBkQStO
dE1Sajk9XnFOMystO1QqJHVJRQp6YCVjKkxaPVpxckJvJDw9aEZDNVNKfnE9RlptNSVFNTZ4PEgo
cDleTCpOTGZFZ2shcXVEdmh9djZNfTA9WiYqNCoKekU7Y2A3RFFCYkorWUlnPyg9cnJqSVpNPS0y
M3QjMTZhYEJyXz9tP3xzVT8xM3JOT2Rzd00xQjY0K34oVENePFhaCnpUUEhMb0wlVj1OO2x9aXZW
USFRRXY7QEAmJVBTfmVgMTNIbm9YKjI/MCsoR2RSRm92aUlXaldUSVcjek1hQ1MtUAp6YEdkeG97
P0JzKXZtaig0MEVIfEJxJWI5K2twdElhMUM1dzJGJjIlKVV3UD9RcE5xdyFVT0h+KThpTTlWMmdo
OEcKelgrRFFjMDVAVjJuYWNXWUllfCteSCRlYEU7Xl50PlhnaFpKPHRKKEQjWnJKfkYlVCMkbk9u
OEkwbjVjZWJDenJJCnpUdGpvdDdhYylGQEZrciliTnJWYjFZQCRJRUNDPTYtfDsrWEVXakdjdypD
ek5tTzc7JnEpU3YhVElJNj05U2lPUQp6RlJQZUtvXiNSY3dGUT03MH5lak1FQ155dSk4Z1RtZkJW
OWQ/fGswfUhAViQ7V3l0fkRGYmYpZlZIYGkqU2JrTCsKeiVpfGJSSzRXd19mbElVb0l4bUNHMXtW
YHRuMUcxTHZMaU0hR1NxVlgkU2NuWHltTjZUT0ptcSlEQm1Ee2xgdzwjCnpUTHVBUlV8Q3IlUUN3
REBwPXJITGFBODZiR3htejJJRipZUlBYQnVLbilOcXQqdTNAYmMmZihYIWhFPGZfM3N4WQp6VTZg
eFZOUGk2RitgYDRZXyh9Q2tvcjRRa2htZTMlNURZXileendeT1NGRVZzUWN6RyhzbS0hbC1uaT00
PHRiUT0Kejg+QzhPaUgtP1olamp+dFNDXkdyJFhuJkA2MURjWiR8MiQmTSNzaVJUOHx4aT4xKHcw
RnI3Sl5WdylHa2FqbDVACno8JiU/ST0qUmY3MTZSNyUhKmJadFNWT3llNyRFTVUrSG0+OE9PMDNS
ZX5VVTQ4QjVzYjM3WGt9RypfanVYeStsZwp6K2B6VG1WeTtaKSNxSik0M0hUSlVOeWlTcV5ve0Q7
K0hIa31DQUJEOXdzPnlnXzM1YylNK2xIfFpUIXA1YXhIVVUKenJNcmh7eStWPktONCh6Z3VBe0hN
XmZnXks1XlFxZ1Q7ME9DSj9RV1RVN1BoeWxYZFJtSDhgZEBTfm5rJHlLPi1LCnpMViVeYWhnZGxz
YTUkNyRiS35WIzhuMGFWXitJLUFGQit8JXRKMFkxNW42NXJlen03eWxZNkxnX2JAMWtWKSpGYwp6
bSEyNk85JkRlOTZgZTY3V0BeU35hU2BIbVVacFh5Ky1eJHdJc3VsRDJDeGApNDwkKG5fPGVvSDRq
Kns+cHxgJjQKejxLJEoyTiZSY2Ehcnd+OTY3NmtmOWdMOztNb1NZaGlqb3ZgJGNgTWl1M2BMVGx8
fUxSJWkobW85Qm5PKU09cVdfCnp7aiteSEBCYlpqMGd9ckclb2Q7N1NLPjR8TnhUI1F5KmREa3E2
YHliQmcxe1lUfnhGYW1QdiF9XiNaTzs/eEQhegp6Rk5aQTJeNjMrWXpmLSQlKXowJERzIWRjZ2FU
Y0otaWJ0K1cxMkFVcD59VmJQKFJhVEFpcWk/cE1mWEwlJlZYZj4Kek1oVEVpRjNaSEZQKHMxTDtF
YDdrSm9WPGN6eFVyckZydiZfLWU1TWJ2czd8fnROPSRnMGB9XlQkdmA+MWZYbjR4CnpSXlNyaGBn
KyppTChTJE0yRlhRPGIkN08leF9JdjdrOCFSUVR3VkZiQnJaY1kzNkU+UlR4MTEjdmJkTWsoRGpr
Kgp6YFN2JWFUUjJ0eGgzPXQzeWhIaSlAeCRNKHM7PThuVTkpbVdKUTFJQ3JSRUN7SXkpSXhSRnZC
YDQ5SVIzIXt1YyMKekBqZGFsOFV9MDd4Z2x0cG1pNERweXBGRz40ciVQNkQya3pJRUhaTkImfktr
bzxGU2E0TEQqKGlXQF8yJDBiRTxfCnpIbWBsKVI3aDJZRTBAa3NrbDVMfVhBeGoyIXtNYFZ5SSNS
SHJGKTNVPF5KQlRiTFVQVXt+cWVqJmxmYjQ2VWNLTQp6MzQ1YW0paHN9ajJKcn1AKE1Vd2MwaU9J
TmcyNnE3WX5KTVNjO1FUVTRgYlg3NGlacXc9VDBCe1ZlUUoqeUszdiEKej5gVE58PiNgYklXUClh
Nz9Vc1Y1eFcreSR0MW1TQyNEWFIwUTBPRWg0QkEycjtLOz5YU000NkF2V0tHUkFVLUA2Cnpfa1Fp
b1otM3Q9aHJeTTcpZUthWSZQODNDaTY/WFhWc3JZUTAkUEVIVk5tJjNpRitiKzQrTENVOW5PbF5J
azFjagp6QG1HfClodFl4bHA4Q0AjNCokPXo2V3dQU1p5QWV2VkB+JjFWRn16ejtWUzw9an5pMUlY
P19iTyVyen1CZzAzTTQKelNCQD5yUWg9R3NXdGpvWTtpeH08XjB+VElZeGt7TXY7TmteRU9xbXp0
PGFjciN4Ky1eVklCbm5pZ0BnRnM2YHxhCno4dEwhdHVKNyZYZTZoTGxAfVhjYjVScWpgKERtaGB6
a1ZadCVrQ2I2JjNafEtBVVpUSEUqKlhLSCYwY3BzTlNxTgp6VH1BcGx7Q0kley1IVnNwJXRucCln
KlliU3ZQIyV0RSl6ZntHemo9NjJEJj1pdUFtZXArME9aVjZZWilSXkk/YSUKekVYeD5rWCp+SHpL
YmljXyRibDw2dGUyMyVKdyN+JFdwczQ3PkN9bHMmKWp2LT47THk4Yys3STRXYnx3SGZAN303Cnp2
ezs5WEYoQTYoU1I7c0AhbzxXRiFCT2pfdyR7ZWVlTFk+eGUoeXZkVUs+ZjRWJnBZWm0mPEt3UlB0
eHR6T05qKAp6dkl9NkU/ZiR7PD8/QzA9JWpaeDNkfVp6R0o/bDFYeGpQPExYU0s2eWlsWiNGVz5i
dzVMSihsZmszZyhjRUVkeFMKejJsYHRIcUFzO0dUfFBCNUlNNU9CZHh3Yl41aHRMRkReOTFtQFdw
SjtjdEh+VStFTDQ4ZjswIU4+O3N1ZSZyfGwwCnpEbzJzJDwzfHBEeWByalNvNXp6XmV6aTMzb040
c3k/MTRac2QrNElrWHNvWkp0R1RuSV4mR0tLN2U8QiMrZTR3Pwp6MWN8WllrfC1zZFBGTElwQjZF
dkZ2SEAxSmNeJVlwNW55SGc+NkM5a1Y0MyYxVHsrNGokK0J+TmU1Q2MlQG1JZm8KeiYrOHVnWW1C
ZEZqZlFqLS1KbE83QnFZZn1VRjJ7bTxtPjJiWTNedWlLR1dMVmFCKlVNdFMxcjxgIUlHQUI/PjRM
CnpMQHxDSE9mWj83bygzdj1yaFp3aFEjWSNSMCFVM1JPUXc2K2M8S0Mkd1p1SyN2fkF9REB0OFd6
UEs7VW9aaWFZMQp6I2Z7MWU+byU4ejtEaUtPbV9YTU81RFd4SEozSEdPeTRxViR4M0BOM298cVcj
Um49SVMjST9sYjZCOTFDSX5gMV8KejROVGU7VWBqODQkKzNtWSVzciZGaHYqJihxOUMwLV9SMlJg
Uk0rbXpGRFJfSyk+UXltUUtnWkFraWFiLVBrXyhvCno/ZHhvQnh6Zl9xYUg2TkhxdUtCRzR2PSNl
bF9oR1M7eDUtREsqZVZPbCU1NzZXNFVfT0AobTJFT3p2UyZsNFFsXwp6OH1CJUFeeCVgUGQrQEN2
VjxrN1U5SUFZc1IleExBejloO1pOK1JHND9WLVZlKjNPUSQlV2NoI3J+NylsVE0zfHMKeiR1WS0+
MXh0fGc3YmxpI0NQMytGbj11MlJtU3dubHFneVYhZHVZbGZXQSVva3QpPTBXeD5mNkwrT2xvV28y
RnQ5Cno/Tl4qaHRMYm5wM2pFVE96emRVdDUmLSsmQEhyTlZzRHU0fHQ/Z35pN3VzNXkmaUQ4Q3d4
SjcxVnlweVpfIU9zVQp6e1dBZWRvNXRtdlpmUlFme0xoVUh1QnFJXkZtKD9GUTlnQ3ooNj80cCpY
PUFVRHBAcz91O3xzOXF3SntDS25zTm8Kejl+IXg2QnBtSyZaKkE9QVlgQHJlPDxnbW5AekwmM0RD
azhuNSRsdzJ4bCRPdXNReyU8NWtwOzlBaipNamNKODZkCnokcWt0K05BO1hJYHFFZUxkJkFyUTVk
cF8pTWB0cEd1Jms9bkZgMGBjTStVTEYhQkR7NC1QUElILXI5VnN0LTB5KQp6Knd7I1NFRSl9eHpi
REErRm4pXkx0V3lrOXNxKH1XP3cpWnkjN3tZSlVBPW9+QEJOWSRNUkFiRGAldWxMYkk8U0UKemJM
JUB8dkRsPE9FSGppYldAX29tbDNOUGhKWCpzaUowUEEmZlp5akc/QyRKbllIZXZlKGJuNEI9PGBu
V2xlajcqCnopQSZnOzhOUjZ+XlZ1K2IqRzJyNDFKfWEzaGNZS1A8YTRLd2V6JlMtKSRYI2dpdUgq
XkI3MlRfbVZpeFZffkl9PQp6S0dzY3VSOEs2X3hsWGNyMU9vbStQMTltRDJTcUtFT0hGaDY2MUx8
fGBLT3J9ejhrVm5JfHJgUm81NWJrN0IkXyYKemE0XnQrOz5iJjFkSHRLLWA3aCl+YjxVVDBUVDBf
KW1LPnFtN21HITtmcX1sM2o8KGgtTyUwYiU0Zk9ZUUFqM3paCnpFSHdrZXJeNGlmdUg4WnphMisj
eklkQ2x2ej5ANXQ7IzdMTitEPWAkYzsrWCZaYCVKfVJnSTxlUUI5PjZ6dG88Zgp6QVljeV5XKTF8
MUw/ZGMlY1VNejtUZyUxZj03eklfMU58TjBVfm44NktGbU15bEIxYWJINGBDbSE7bGo+YTRsXjcK
ekhBeCFhIXI1Y3J1ZDEhdlEmQ3k5QkBzX2RkZ3B2dlBPaTJ9Z0ViWDhLc1ImPGcraFYkdyZ0ZVI9
QjZgRWphTSM9CnprQiM8KiF5enZAYmA0b1JyKXlGVHBXV1RkRj8+MDJFeSpMSkcoYVIwOXkpJkx6
IVB0SCVleX5DKyUwIUhkeCVZYgp6aSskZS13dnI+dnN8RWYzdjV4bEVFNXQmYlg9IWV7SlRYNGo4
O2VGbXZjcik7RTlHezMpRn1YXnJDQkhnYXR2UCUKelQtVSVvcjBrKT9wKHVtPi1SSjdocFp2ajF4
OEMpTG5PdDZRV3dvP2hTd3gxOTUpdntiKUh3TE8tb0RuPnJZbWkmCnomOE9QaStNMnhNV0JteSVJ
YnNaNyt7VzxQYjVLYFBhK0N2QjRxU2BvOSRNMEQ1XilkZiYhNzVYJkMxb2dTNSgqUwp6d3hqX1Q3
LTVYemxSM2t1IXFESmc4KiV4ckcmTUchPmdub2lLfDtiWDQ5ZjUhRE02NSotbSk9V3tGRWFrYV5U
OEoKel9mUyNRPS03IykyY0xUSVA0RHttcTtpeG9MKTB7TGw/S0xObjE4fXZzN05GZDl+fGYqO1p3
dTspfFNUZXkqKWlgCnpmcTsqZjlMZV5RcWZDSUJ1SC0wM05hVm5rYj8lYCM3OFlBbWwlYXYlaX1t
TUVlQ0wrXl9rMWBia3VsM0MjcTVFPwp6N243SlMrfVlYUSlZe3k5cTJZNDwrMG9JRm89YEEyaj4l
bEtQUTFjQWxncD5VXmI4OzVFSyZ8ISVmJnFtQWJXVkYKentfSnpyd1g2NW0pVUNOaWleWFFYWWJv
SCstRDYkNDIrQnw+PG5MXzFhOzNHa2BEfDA7bTVYRGVCZlNKPGV1N3wpCnpDVWpHS3ByKWVDalg3
R1YrIz82QnRhQT8mVT42b3VScV49WTE1WjVrQGNUQiZ2UWppJXtLUDE4bmV7Kzx5K2EpeAp6Wkg+
Z2BKNHZpbWdWI0lKdWZ9ND9ATStsa1plI2N8MFYpJF40dj1IYGFeU2lTKyhVfiFNRVk9SVleMzQq
KjwpWTcKemJecEJ8V3U7TXVqZ1ZqcnBCaClPPGZ4fm1zaUQ1RHdkRmlnPTdFNUpEM1BFZ017ISNY
VXdWfiEwO1ZzRCVAR25nCnphOXVhPHExbCNmandRbVdNOV81ays+ZmhrUmAwSD95eTsjQz9TVD9l
bHRtakg3JEFuSkAkIWBgbXJuTmVebU5qdQp6TGhAZE1OK2N5elVVSDx1XmQoMHw0cDJGOC02JFps
RUJBXjVAI0N+YUphUEtpIU92fnB2fCZ8R0pta044eCZDWigKelc4O1BYelRXT1lBbUY3Y01eWitX
cWc9XytiXkgoPmRFfUFZUyh3QjU7P0VMYW40RHlEa3VBXkFiJSFTfXphbHxeCno9SldYPyNEWmJi
dVl1VHUlI3ZZcURMS2prJFA5azU8NkcwUlY3TnJpYXhGI3RNSD8tTjF5aDItMDNDNGRAcHdmMwp6
YCRVRnFzdFdUUUEjdUlBZ0AlIzRlKTl5R21pQlg4I1FxTkFEKU10YEt4KiZQQm54R31qPnxHemZV
XkJSX3NHUnUKekh4e3NuWWEoIUQqbnlMUCRzP0h6bjR0JHNVYFdhVkRoSUNJIXZxQm1VTHpwMHlL
QD8zKjRzXnFwOXFMQjR4PzBrCno0cDJGODxzTVU4RmJ1QSM2fD1kNURHdmY5Z0ZrfV9zQCZ0b2M+
STM+MV5+OVc5cHNIU0NDQzUoMDAyb3ZQREhMawpGVjFmY2ElT0MmJQoKbGl0ZXJhbCAwCkhjbVY/
ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZCBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKaW5kZXggYjNmOTk5ZjFlN2NjNjc3NTc5ZTQ3
NGI4Zjk4MmExZWYzZmVjOTBhMy4uZWE0NGEyNjk5OThlMzdlNjBjOGEzNWM5NmFjNGU3NzQ4ODdj
ZjdiZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCkBAIC0yNzIsNiArMjcyLDcgQEAgZmFzdC9l
dmVudHMvZHJhZy1pbWFnZS1maWxlbmFtZS5odG1sCiAKICMgLS0tLS0tLSBtaXNzaW5nIGRyYWct
YW5kLWRyb3Agc3VwcG9ydAogIyBTZWUgYnVnIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zMTMzMgorZmFzdC9kcmFnLWFuZC1kcm9wCiBmYXN0L2V2ZW50cy9kcmFnLXBh
cmVudC1ub2RlLmh0bWwKIGZhc3QvZXZlbnRzL2RyYWctYW5kLWRyb3AuaHRtbAogZmFzdC9ldmVu
dHMvZHJhZy1hbmQtZHJvcC1kYXRhVHJhbnNmZXItdHlwZXMtbm9jcmFzaC5odG1sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggYzNiYzliY2QyMDcwOTc5YTczODlmNTA5ZTNhM2U5ZDZmMTk3M2NiMi4uYWZhNWJiZTM4
ZTE2MmE4ZGQ5NjQ5Y2U3MmVhMTE4MmQ4ZjliNGY3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4
IEBACisyMDExLTA4LTA5ICBCZW5qYW1pbiBQb3VsYWluICA8aWtpcG91QGdtYWlsLmNvbT4KKwor
ICAgICAgICBVbmlmeSB0aGUgd2F5IHdlIGdlbmVyYXRlIEhUTUwgZm9yIGFuIGltYWdlIGluIHRo
ZSBDbGlwYm9hcmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTU4MDQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVW5pZnkgdGhlIHdheSB3ZSBnZW5lcmF0ZSB0aGUgbWFya3VwIHdoZW4gZHJhZ2dpbmcgYW5k
IGltYWdlLgorCisgICAgICAgIFByZXZpb3VzbHksIHRoZSBjb2RlIHdhcyB1c2luZyB0aGUgc3Bl
Y2lhbCBmdW5jdGlvbiBpbWFnZVRvTWFya3VwKCkgdGhhdCB3YXMKKyAgICAgICAgc3ByZWFkIGZy
b20gdGhlIENocm9taXVtIHBvcnQuCisgICAgICAgIFRoYXQgZnVuY3Rpb24gaWdub3JlcyBzb21l
IGVkZ2UgY2FzZXMgc28gdGhpcyBwYXRjaCByZXBsYWNlIGl0IGJ5IHRoZQorICAgICAgICBtb3Jl
IGdlbmVyaWMgTWFya3VwQWNjdW11bGF0b3IgKHdoaWNoIGlzIGFsc28gdXNlZCBieSB0aGUgb3Ro
ZXIgcGFzdGVib2FyZAorICAgICAgICBhY3Rpb25zKS4KKworICAgICAgICBUaGUgTWFya3VwQWNj
dW11bGF0b3Igd2FzIG1vZGlmaWVkIGJlY2F1c2UgZm9sbG93aW5nIHI2MTE3OCwgdGhlIGxvY2Fs
IGZpbGVwYXRoCisgICAgICAgIGFyZSB0cmVhdGVkIGRpZmZlcmVudGx5ICh0aGUgZW51bSB3YXMg
Y2hhbmdlZCB0byAgbWFrZSB0aGlzIGJlaGF2aW9yCisgICAgICAgIGV4cGxpY2l0KS4KKworICAg
ICAgICBUZXN0czogZmFzdC9kcmFnLWFuZC1kcm9wL2RyYWctYW5kLWRyb3AtaW1hZ2UtY29udGVu
dGVkaXRhYmxlLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZHJhZy1hbmQtZHJvcC9kcmFnLWFu
ZC1kcm9wLWlucHV0aW1hZ2UtY29udGVudGVkaXRhYmxlLmh0bWwKKyAgICAgICAgICAgICAgIGZh
c3QvZHJhZy1hbmQtZHJvcC9kcmFnLWFuZC1kcm9wLW9iamVjdGltYWdlLWNvbnRlbnRlZGl0YWJs
ZS5odG1sCisKKyAgICAgICAgKiBlZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok1hcmt1cEFjY3VtdWxhdG9yOjpNYXJrdXBBY2N1bXVsYXRvcik6CisgICAg
ICAgIChXZWJDb3JlOjpNYXJrdXBBY2N1bXVsYXRvcjo6cmVzb2x2ZVVSTElmTmVlZGVkKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRBdHRyaWJ1dGUpOgorICAg
ICAgICAqIGVkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuaDoKKyAgICAgICAgKiBlZGl0aW5nL21h
cmt1cC5jcHA6CisgICAgICAgICogZWRpdGluZy9tYXJrdXAuaDoKKyAgICAgICAgKiBwYWdlL1Bh
Z2VTZXJpYWxpemVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcmlhbGl6ZXJNYXJrdXBBY2N1
bXVsYXRvcjo6U2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9jaHJvbWl1bS9DbGlwYm9hcmRDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDbGlw
Ym9hcmRDaHJvbWl1bTo6ZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKToKKyAgICAgICAgKFdlYkNv
cmU6OkNsaXBib2FyZENocm9taXVtOjp3cml0ZVJhbmdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9j
aHJvbWl1bS9QYXN0ZWJvYXJkQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVi
b2FyZDo6d3JpdGVTZWxlY3Rpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9DbGlwYm9hcmRH
dGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2xpcGJvYXJkR3RrOjpkZWNsYXJlQW5kV3JpdGVE
cmFnSW1hZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q2xpcGJvYXJkR3RrOjp3cml0ZVJhbmdlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvRGF0YU9iamVjdEd0ay5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpEYXRhT2JqZWN0R3RrOjptYXJrdXApOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9QYXN0
ZWJvYXJkR3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OndyaXRlU2VsZWN0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OndyaXRlSW1hZ2UpOgorICAgICAg
ICAqIHBsYXRmb3JtL2hhaWt1L1Bhc3RlYm9hcmRIYWlrdS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpQYXN0ZWJvYXJkOjp3cml0ZVNlbGVjdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vcXQvQ2xp
cGJvYXJkUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2xpcGJvYXJkUXQ6OmRlY2xhcmVBbmRX
cml0ZURyYWdJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9hcmRRdDo6d3JpdGVSYW5n
ZSk6CisgICAgICAgICogcGxhdGZvcm0vcXQvUGFzdGVib2FyZFF0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlBhc3RlYm9hcmQ6OndyaXRlU2VsZWN0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS93
aW4vQ2xpcGJvYXJkV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNsaXBib2FyZFdpbjo6ZGVj
bGFyZUFuZFdyaXRlRHJhZ0ltYWdlKToKKwogMjAxMS0wOC0wOSAgVnNldm9sb2QgVmxhc292ICA8
dnNldmlrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBBZGQgIlJlZnJl
c2giIHRvIGNvbnRleHQgbWVudSBvZiByZXNvdXJjZXMgcGFuZWwgY29va2llcyB2aWV3LgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNwcAppbmRleCBiYWE3OTli
NWRkZDRhMDhiY2E5MjcyMjU4N2VhMzAwNDMxMzJlMDE0Li45ZjU5OWU1YTgyMjUyMzE2MjQwNDIz
YzQ2MTFhNmZhOWE3MzA5OGRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01h
cmt1cEFjY3VtdWxhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01hcmt1cEFj
Y3VtdWxhdG9yLmNwcApAQCAtNzMsMTAgKzczLDEwIEBAIHZvaWQgYXBwZW5kQ2hhcmFjdGVyc1Jl
cGxhY2luZ0VudGl0aWVzKFZlY3RvcjxVQ2hhcj4mIG91dCwgY29uc3QgVUNoYXIqIGNvbnRlbnQs
CiAgICAgb3V0LmFwcGVuZChjb250ZW50ICsgcG9zaXRpb25BZnRlckxhc3RFbnRpdHksIGxlbmd0
aCAtIHBvc2l0aW9uQWZ0ZXJMYXN0RW50aXR5KTsKIH0KIAotTWFya3VwQWNjdW11bGF0b3I6Ok1h
cmt1cEFjY3VtdWxhdG9yKFZlY3RvcjxOb2RlKj4qIG5vZGVzLCBFQWJzb2x1dGVVUkxzIHNob3Vs
ZFJlc29sdmVVUkxzLCBjb25zdCBSYW5nZSogcmFuZ2UpCitNYXJrdXBBY2N1bXVsYXRvcjo6TWFy
a3VwQWNjdW11bGF0b3IoVmVjdG9yPE5vZGUqPiogbm9kZXMsIEVBYnNvbHV0ZVVSTHMgcmVzb2x2
ZVVybHNNZXRob2QsIGNvbnN0IFJhbmdlKiByYW5nZSkKICAgICA6IG1fbm9kZXMobm9kZXMpCiAg
ICAgLCBtX3JhbmdlKHJhbmdlKQotICAgICwgbV9zaG91bGRSZXNvbHZlVVJMcyhzaG91bGRSZXNv
bHZlVVJMcykKKyAgICAsIG1fcmVzb2x2ZVVSTHNNZXRob2QocmVzb2x2ZVVybHNNZXRob2QpCiB7
CiB9CiAKQEAgLTExNCw2ICsxMTQsMjEgQEAgdm9pZCBNYXJrdXBBY2N1bXVsYXRvcjo6c2VyaWFs
aXplTm9kZXNXaXRoTmFtZXNwYWNlcyhOb2RlKiBub2RlLCBOb2RlKiBub2RlVG9Ta2kKICAgICAg
ICAgYXBwZW5kRW5kVGFnKG5vZGUpOwogfQogCitTdHJpbmcgTWFya3VwQWNjdW11bGF0b3I6OnJl
c29sdmVVUkxJZk5lZWRlZChjb25zdCBFbGVtZW50KiBlbGVtZW50LCBjb25zdCBTdHJpbmcmIHVy
bFN0cmluZykgY29uc3QKK3sKKyAgICBzd2l0Y2ggKG1fcmVzb2x2ZVVSTHNNZXRob2QpIHsKKyAg
ICBjYXNlIFJlc29sdmVBbGxVUkxzOgorICAgICAgICByZXR1cm4gZWxlbWVudC0+ZG9jdW1lbnQo
KS0+Y29tcGxldGVVUkwodXJsU3RyaW5nKS5zdHJpbmcoKTsKKworICAgIGNhc2UgUmVzb2x2ZU5v
bkxvY2FsVVJMczoKKyAgICAgICAgaWYgKCFlbGVtZW50LT5kb2N1bWVudCgpLT51cmwoKS5pc0xv
Y2FsRmlsZSgpKQorICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQtPmRvY3VtZW50KCktPmNvbXBs
ZXRlVVJMKHVybFN0cmluZykuc3RyaW5nKCk7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7
CisgICAgfQorICAgIHJldHVybiB1cmxTdHJpbmc7Cit9CisKIHZvaWQgTWFya3VwQWNjdW11bGF0
b3I6OmFwcGVuZFN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKIHsKICAgICBtX3N1Y2NlZWRp
bmdNYXJrdXAuYXBwZW5kKHN0cmluZyk7CkBAIC0zNzEsMTQgKzM4Niw5IEBAIHZvaWQgTWFya3Vw
QWNjdW11bGF0b3I6OmFwcGVuZEF0dHJpYnV0ZShWZWN0b3I8VUNoYXI+JiBvdXQsIEVsZW1lbnQq
IGVsZW1lbnQsIGNvCiAKICAgICBvdXQuYXBwZW5kKCc9Jyk7CiAKLSAgICBpZiAoZWxlbWVudC0+
aXNVUkxBdHRyaWJ1dGUoY29uc3RfY2FzdDxBdHRyaWJ1dGUqPigmYXR0cmlidXRlKSkpIHsKLSAg
ICAgICAgLy8gV2UgZG9uJ3Qgd2FudCB0byBjb21wbGV0ZSBmaWxlOi8vLyBVUkxzIGJlY2F1c2Ug
aXQgbWF5IGNvbnRhaW4gc2Vuc2l0aXZlIGluZm9ybWF0aW9uCi0gICAgICAgIC8vIGFib3V0IHRo
ZSB1c2VyJ3Mgc3lzdGVtLgotICAgICAgICBpZiAoc2hvdWxkUmVzb2x2ZVVSTHMoKSAmJiAhZWxl
bWVudC0+ZG9jdW1lbnQoKS0+dXJsKCkuaXNMb2NhbEZpbGUoKSkKLSAgICAgICAgICAgIGFwcGVu
ZFF1b3RlZFVSTEF0dHJpYnV0ZVZhbHVlKG91dCwgZWxlbWVudC0+ZG9jdW1lbnQoKS0+Y29tcGxl
dGVVUkwoYXR0cmlidXRlLnZhbHVlKCkpLnN0cmluZygpKTsKLSAgICAgICAgZWxzZQotICAgICAg
ICAgICAgYXBwZW5kUXVvdGVkVVJMQXR0cmlidXRlVmFsdWUob3V0LCBhdHRyaWJ1dGUudmFsdWUo
KSk7IAotICAgIH0gZWxzZSB7CisgICAgaWYgKGVsZW1lbnQtPmlzVVJMQXR0cmlidXRlKGNvbnN0
X2Nhc3Q8QXR0cmlidXRlKj4oJmF0dHJpYnV0ZSkpKQorICAgICAgICBhcHBlbmRRdW90ZWRVUkxB
dHRyaWJ1dGVWYWx1ZShvdXQsIHJlc29sdmVVUkxJZk5lZWRlZChlbGVtZW50LCBhdHRyaWJ1dGUu
dmFsdWUoKSkpOworICAgIGVsc2UgewogICAgICAgICBvdXQuYXBwZW5kKCdcIicpOwogICAgICAg
ICBhcHBlbmRBdHRyaWJ1dGVWYWx1ZShvdXQsIGF0dHJpYnV0ZS52YWx1ZSgpLCBkb2N1bWVudElz
SFRNTCk7CiAgICAgICAgIG91dC5hcHBlbmQoJ1wiJyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L01hcmt1cEFjY3VtdWxhdG9yLmgKaW5kZXggNGY2ODEzZTYwNzQ3ZmYwMmZkMTE0MDdiMjhmNDY5
ZjU5YmZjZjg0NS4uNGE4MzQ3OTk4ZWIxYTM4ODRhOWM1ZjhkZjA0OTk5ZjFkMzk4ZTY1MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuaApAQCAtNjYsNyArNjYs
NyBAQCBzdHJ1Y3QgRW50aXR5RGVzY3JpcHRpb24gewogLy8gRklYTUU6IE5vbmNvcHlhYmxlPwog
Y2xhc3MgTWFya3VwQWNjdW11bGF0b3IgewogcHVibGljOgotICAgIE1hcmt1cEFjY3VtdWxhdG9y
KFZlY3RvcjxOb2RlKj4qIG5vZGVzLCBFQWJzb2x1dGVVUkxzIHNob3VsZFJlc29sdmVVUkxzLCBj
b25zdCBSYW5nZSogcmFuZ2UgPSAwKTsKKyAgICBNYXJrdXBBY2N1bXVsYXRvcihWZWN0b3I8Tm9k
ZSo+KiBub2RlcywgRUFic29sdXRlVVJMcyByZXNvbHZlVXJsc01ldGhvZCwgY29uc3QgUmFuZ2Uq
IHJhbmdlID0gMCk7CiAgICAgdmlydHVhbCB+TWFya3VwQWNjdW11bGF0b3IoKTsKIAogICAgIFN0
cmluZyBzZXJpYWxpemVOb2RlcyhOb2RlKiBub2RlLCBOb2RlKiBub2RlVG9Ta2lwLCBFQ2hpbGRy
ZW5Pbmx5IGNoaWxkcmVuT25seSk7CkBAIC0xMDAsMTYgKzEwMCwxNSBAQCBwcm90ZWN0ZWQ6CiAg
ICAgYm9vbCBlbGVtZW50Q2Fubm90SGF2ZUVuZFRhZyhjb25zdCBOb2RlKiBub2RlKTsKICAgICB2
b2lkIGFwcGVuZEVuZE1hcmt1cChWZWN0b3I8VUNoYXI+JiByZXN1bHQsIGNvbnN0IE5vZGUqKTsK
IAotICAgIGJvb2wgc2hvdWxkUmVzb2x2ZVVSTHMoKSB7IHJldHVybiBtX3Nob3VsZFJlc29sdmVV
UkxzID09IEFic29sdXRlVVJMczsgfQotCiAgICAgVmVjdG9yPE5vZGUqPiogY29uc3QgbV9ub2Rl
czsKICAgICBjb25zdCBSYW5nZSogY29uc3QgbV9yYW5nZTsKIAogcHJpdmF0ZToKKyAgICBTdHJp
bmcgcmVzb2x2ZVVSTElmTmVlZGVkKGNvbnN0IEVsZW1lbnQqLCBjb25zdCBTdHJpbmcmIHVybFN0
cmluZykgY29uc3Q7CiAgICAgdm9pZCBzZXJpYWxpemVOb2Rlc1dpdGhOYW1lc3BhY2VzKE5vZGUq
LCBOb2RlKiBub2RlVG9Ta2lwLCBFQ2hpbGRyZW5Pbmx5LCBjb25zdCBOYW1lc3BhY2VzKik7CiAK
ICAgICBWZWN0b3I8U3RyaW5nPiBtX3N1Y2NlZWRpbmdNYXJrdXA7Ci0gICAgY29uc3QgYm9vbCBt
X3Nob3VsZFJlc29sdmVVUkxzOworICAgIGNvbnN0IEVBYnNvbHV0ZVVSTHMgbV9yZXNvbHZlVVJM
c01ldGhvZDsKIH07CiAKIC8vIEZJWE1FOiBUaGlzIG1ldGhvZCBzaG91bGQgYmUgaW50ZWdyYXRl
ZCB3aXRoIE1hcmt1cEFjY3VtdWxhdG9yLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9tYXJrdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCmluZGV4
IDcwZjVhODFiN2JkZTFhOTg4ZTg4ZTQ4ODYwMjk0YWI5ZTlkNWI3MDIuLjVlZTdmY2MyZTMxMjk0
NTdjYzQ1OTA0MTk4MTcwNGE4NmNiYzNmNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvbWFya3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAK
QEAgLTg1NCwyOCArODU0LDQgQEAgU3RyaW5nIHVybFRvTWFya3VwKGNvbnN0IEtVUkwmIHVybCwg
Y29uc3QgU3RyaW5nJiB0aXRsZSkKICAgICByZXR1cm4gU3RyaW5nOjphZG9wdChtYXJrdXApOwog
fQogCi1TdHJpbmcgaW1hZ2VUb01hcmt1cChjb25zdCBLVVJMJiB1cmwsIEVsZW1lbnQqIGVsZW1l
bnQpCi17Ci0gICAgVmVjdG9yPFVDaGFyPiBtYXJrdXA7Ci0gICAgYXBwZW5kKG1hcmt1cCwgIjxp
bWcgc3JjPVwiIik7Ci0gICAgYXBwZW5kKG1hcmt1cCwgdXJsLnN0cmluZygpKTsKLSAgICBhcHBl
bmQobWFya3VwLCAiXCIiKTsKLQotICAgIE5hbWVkTm9kZU1hcCogYXR0cnMgPSBlbGVtZW50LT5h
dHRyaWJ1dGVzKCk7Ci0gICAgdW5zaWduZWQgbGVuZ3RoID0gYXR0cnMtPmxlbmd0aCgpOwotICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkgewotICAgICAgICBBdHRyaWJ1
dGUqIGF0dHIgPSBhdHRycy0+YXR0cmlidXRlSXRlbShpKTsKLSAgICAgICAgaWYgKGF0dHItPmxv
Y2FsTmFtZSgpID09ICJzcmMiKQotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIGFwcGVu
ZChtYXJrdXAsICIgIik7Ci0gICAgICAgIGFwcGVuZChtYXJrdXAsIGF0dHItPmxvY2FsTmFtZSgp
KTsKLSAgICAgICAgYXBwZW5kKG1hcmt1cCwgIj1cIiIpOwotICAgICAgICBhcHBlbmRDaGFyYWN0
ZXJzUmVwbGFjaW5nRW50aXRpZXMobWFya3VwLCBhdHRyLT52YWx1ZSgpLmNoYXJhY3RlcnMoKSwg
YXR0ci0+dmFsdWUoKS5sZW5ndGgoKSwgRW50aXR5TWFza0luQXR0cmlidXRlVmFsdWUpOwotICAg
ICAgICBhcHBlbmQobWFya3VwLCAiXCIiKTsKLSAgICB9Ci0KLSAgICBhcHBlbmQobWFya3VwLCAi
Lz4iKTsKLSAgICByZXR1cm4gU3RyaW5nOjphZG9wdChtYXJrdXApOwotfQotCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5oIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9tYXJrdXAuaAppbmRleCBmOGNkOGNkOTIyMTUxMjViNDkxMmZjNDQ4ZWQ5MDBkNzU5Nzdk
MjA0Li4xYmZlOTAwNjRjZGI3MmRiNzcyZGY3NDUwYWE0ZDc5MDI3OWQ1N2YwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvbWFya3VwLmgKQEAgLTQxLDcgKzQxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
IGNsYXNzIFJhbmdlOwogCiAgICAgZW51bSBFQ2hpbGRyZW5Pbmx5IHsgSW5jbHVkZU5vZGUsIENo
aWxkcmVuT25seSB9OwotICAgIGVudW0gRUFic29sdXRlVVJMcyB7IERvTm90UmVzb2x2ZVVSTHMs
IEFic29sdXRlVVJMcyB9OworICAgIGVudW0gRUFic29sdXRlVVJMcyB7IERvTm90UmVzb2x2ZVVS
THMsIFJlc29sdmVBbGxVUkxzLCBSZXNvbHZlTm9uTG9jYWxVUkxzIH07CiAKICAgICBQYXNzUmVm
UHRyPERvY3VtZW50RnJhZ21lbnQ+IGNyZWF0ZUZyYWdtZW50RnJvbVRleHQoUmFuZ2UqIGNvbnRl
eHQsIGNvbnN0IFN0cmluZyYgdGV4dCk7CiAgICAgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50
PiBjcmVhdGVGcmFnbWVudEZyb21NYXJrdXAoRG9jdW1lbnQqLCBjb25zdCBTdHJpbmcmIG1hcmt1
cCwgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24gPSBG
cmFnbWVudFNjcmlwdGluZ0FsbG93ZWQpOwpAQCAtNTcsNyArNTcsNiBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgU3RyaW5nIGNyZWF0ZUZ1bGxNYXJrdXAoY29uc3QgUmFuZ2UqKTsKIAogICAg
IFN0cmluZyB1cmxUb01hcmt1cChjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiB0aXRsZSk7Ci0g
ICAgU3RyaW5nIGltYWdlVG9NYXJrdXAoY29uc3QgS1VSTCYsIEVsZW1lbnQqKTsKIH0KIAogI2Vu
ZGlmIC8vIG1hcmt1cF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJp
YWxpemVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVNlcmlhbGl6ZXIuY3BwCmluZGV4
IGUxNzM4NzkxOGE4NTE4NjZhOWRiOWVhYjRjYTQxY2MxZDQzNmUwOTcuLjRkZjMzYjcwNTJjYWI2
N2JlMzRmZmViNDBlN2IxNWRiMzA5ODE4ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZVNlcmlhbGl6ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVNlcmlh
bGl6ZXIuY3BwCkBAIC0xMDYsOCArMTA2LDkgQEAgcHJpdmF0ZToKICAgICBEb2N1bWVudCogbV9k
b2N1bWVudDsKIH07CiAKKy8vIEZJWE1FOiBzaG91bGQgdGhhdCByZWFsbHkgdXNlIFJlc29sdmVO
b25Mb2NhbFVSTHM/CiBTZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3I6OlNlcmlhbGl6ZXJNYXJr
dXBBY2N1bXVsYXRvcihQYWdlU2VyaWFsaXplciogc2VyaWFsaXplciwgRG9jdW1lbnQqIGRvY3Vt
ZW50LCBWZWN0b3I8Tm9kZSo+KiBub2RlcykKLSAgICA6IE1hcmt1cEFjY3VtdWxhdG9yKG5vZGVz
LCBBYnNvbHV0ZVVSTHMpCisgICAgOiBNYXJrdXBBY2N1bXVsYXRvcihub2RlcywgUmVzb2x2ZU5v
bkxvY2FsVVJMcykKICAgICAsIG1fc2VyaWFsaXplcihzZXJpYWxpemVyKQogICAgICwgbV9kb2N1
bWVudChkb2N1bWVudCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2No
cm9taXVtL0NsaXBib2FyZENocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2No
cm9taXVtL0NsaXBib2FyZENocm9taXVtLmNwcAppbmRleCBlODY4ZTZiMGMyZTE3NWE5ZDE0NDFk
N2ZlZTk2NWM5MzkzODk5NmZiLi5iMGIwMDhjMTVlOTNlNjI4Y2QzYzBhM2U2MGQ1NzEwMzQ1NTlm
NmU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9h
cmRDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2xp
cGJvYXJkQ2hyb21pdW0uY3BwCkBAIC0yNjUsMTYgKzI2NSw4IEBAIHZvaWQgQ2xpcGJvYXJkQ2hy
b21pdW06OmRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZShFbGVtZW50KiBlbGVtZW50LCBjb25zdCBL
VVJMJiB1CiAgICAgLy8gV3JpdGUgdGhlIGJ5dGVzIGluIHRoZSBpbWFnZSB0byB0aGUgZmlsZSBm
b3JtYXQuCiAgICAgd3JpdGVJbWFnZVRvRGF0YU9iamVjdChtX2RhdGFPYmplY3QuZ2V0KCksIGVs
ZW1lbnQsIHVybCk7CiAKLSAgICBBdG9taWNTdHJpbmcgaW1hZ2VVUkwgPSBlbGVtZW50LT5nZXRB
dHRyaWJ1dGUoc3JjQXR0cik7Ci0gICAgaWYgKGltYWdlVVJMLmlzRW1wdHkoKSkKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgS1VSTCBmdWxsVVJMID0gZnJhbWUtPmRvY3VtZW50KCktPmNvbXBsZXRl
VVJMKHN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRNTFNwYWNlcyhpbWFnZVVSTCkpOwotICAgIGlm
IChmdWxsVVJMLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgLy8gUHV0IGltZyB0
YWcgb24gdGhlIGNsaXBib2FyZCByZWZlcmVuY2luZyB0aGUgaW1hZ2UKLSAgICBtX2RhdGFPYmpl
Y3QtPnNldERhdGEobWltZVR5cGVUZXh0SFRNTCwgaW1hZ2VUb01hcmt1cChmdWxsVVJMLCBlbGVt
ZW50KSk7CisgICAgbV9kYXRhT2JqZWN0LT5zZXREYXRhKG1pbWVUeXBlVGV4dEhUTUwsIGNyZWF0
ZU1hcmt1cChlbGVtZW50LCBJbmNsdWRlTm9kZSwgMCwgUmVzb2x2ZUFsbFVSTHMpKTsKIH0KIAog
dm9pZCBDbGlwYm9hcmRDaHJvbWl1bTo6d3JpdGVVUkwoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBT
dHJpbmcmIHRpdGxlLCBGcmFtZSopCkBAIC0yOTksNyArMjkxLDcgQEAgdm9pZCBDbGlwYm9hcmRD
aHJvbWl1bTo6d3JpdGVSYW5nZShSYW5nZSogc2VsZWN0ZWRSYW5nZSwgRnJhbWUqIGZyYW1lKQog
ICAgIGlmICghbV9kYXRhT2JqZWN0KQogICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9kYXRhT2Jq
ZWN0LT5zZXREYXRhKG1pbWVUeXBlVGV4dEhUTUwsIGNyZWF0ZU1hcmt1cChzZWxlY3RlZFJhbmdl
LCAwLCBBbm5vdGF0ZUZvckludGVyY2hhbmdlLCBmYWxzZSwgQWJzb2x1dGVVUkxzKSk7CisgICAg
bV9kYXRhT2JqZWN0LT5zZXREYXRhKG1pbWVUeXBlVGV4dEhUTUwsIGNyZWF0ZU1hcmt1cChzZWxl
Y3RlZFJhbmdlLCAwLCBBbm5vdGF0ZUZvckludGVyY2hhbmdlLCBmYWxzZSwgUmVzb2x2ZU5vbkxv
Y2FsVVJMcykpOwogICAgIG1fZGF0YU9iamVjdC0+c2V0SHRtbEJhc2VVcmwoZnJhbWUtPmRvY3Vt
ZW50KCktPnVybCgpKTsKIAogICAgIFN0cmluZyBzdHIgPSBmcmFtZS0+ZWRpdG9yKCktPnNlbGVj
dGVkVGV4dCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0v
UGFzdGVib2FyZENocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVt
L1Bhc3RlYm9hcmRDaHJvbWl1bS5jcHAKaW5kZXggYTkwYTU2NzhjMTQ4NjA4YWZhODFhYmI3NWZl
MDJiNDA1ZGQyZTIxOC4uZGJmYWEzYjE2YzA4YWU3YzBjMjEwZWFmMjc0NjcyY2QwODFkMmNiOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUGFzdGVib2FyZENo
cm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QYXN0ZWJv
YXJkQ2hyb21pdW0uY3BwCkBAIC04Miw3ICs4Miw3IEBAIHZvaWQgUGFzdGVib2FyZDo6c2V0U2Vs
ZWN0aW9uTW9kZShib29sIHNlbGVjdGlvbk1vZGUpCiAKIHZvaWQgUGFzdGVib2FyZDo6d3JpdGVT
ZWxlY3Rpb24oUmFuZ2UqIHNlbGVjdGVkUmFuZ2UsIGJvb2wgY2FuU21hcnRDb3B5T3JEZWxldGUs
IEZyYW1lKiBmcmFtZSkKIHsKLSAgICBTdHJpbmcgaHRtbCA9IGNyZWF0ZU1hcmt1cChzZWxlY3Rl
ZFJhbmdlLCAwLCBBbm5vdGF0ZUZvckludGVyY2hhbmdlLCBmYWxzZSwgQWJzb2x1dGVVUkxzKTsK
KyAgICBTdHJpbmcgaHRtbCA9IGNyZWF0ZU1hcmt1cChzZWxlY3RlZFJhbmdlLCAwLCBBbm5vdGF0
ZUZvckludGVyY2hhbmdlLCBmYWxzZSwgUmVzb2x2ZU5vbkxvY2FsVVJMcyk7CiAgICAgRXhjZXB0
aW9uQ29kZSBlYyA9IDA7CiAgICAgS1VSTCB1cmwgPSBzZWxlY3RlZFJhbmdlLT5zdGFydENvbnRh
aW5lcihlYyktPmRvY3VtZW50KCktPnVybCgpOwogICAgIFN0cmluZyBwbGFpblRleHQgPSBmcmFt
ZS0+ZWRpdG9yKCktPnNlbGVjdGVkVGV4dCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3RrL0NsaXBib2FyZEd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
dGsvQ2xpcGJvYXJkR3RrLmNwcAppbmRleCAxYmY5NzhkZGRmZjNmZDljM2M4NDRjZDg5YmVmZWNk
NmIwOWZiZTE2Li4wNTM1NjBmOWY0MGU5NTliODJiY2E4OTJjNTQ3OTI2N2NhZWE0NDg4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ2xpcGJvYXJkR3RrLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ2xpcGJvYXJkR3RrLmNwcApAQCAtMjgzLDcg
KzI4Myw3IEBAIHN0YXRpYyBDYWNoZWRJbWFnZSogZ2V0Q2FjaGVkSW1hZ2UoRWxlbWVudCogZWxl
bWVudCkKIHZvaWQgQ2xpcGJvYXJkR3RrOjpkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UoRWxlbWVu
dCogZWxlbWVudCwgY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBGcmFtZSog
ZnJhbWUpCiB7CiAgICAgbV9kYXRhT2JqZWN0LT5zZXRVUkwodXJsLCBsYWJlbCk7Ci0gICAgbV9k
YXRhT2JqZWN0LT5zZXRNYXJrdXAoY3JlYXRlTWFya3VwKGVsZW1lbnQsIEluY2x1ZGVOb2RlLCAw
LCBBYnNvbHV0ZVVSTHMpKTsKKyAgICBtX2RhdGFPYmplY3QtPnNldE1hcmt1cChjcmVhdGVNYXJr
dXAoZWxlbWVudCwgSW5jbHVkZU5vZGUsIDAsIFJlc29sdmVBbGxVUkxzKSk7CiAKICAgICBDYWNo
ZWRJbWFnZSogaW1hZ2UgPSBnZXRDYWNoZWRJbWFnZShlbGVtZW50KTsKICAgICBpZiAoIWltYWdl
IHx8ICFpbWFnZS0+aXNMb2FkZWQoKSkKQEAgLTMwOCw3ICszMDgsNyBAQCB2b2lkIENsaXBib2Fy
ZEd0azo6d3JpdGVSYW5nZShSYW5nZSogcmFuZ2UsIEZyYW1lKiBmcmFtZSkKICAgICBBU1NFUlQo
cmFuZ2UpOwogCiAgICAgbV9kYXRhT2JqZWN0LT5zZXRUZXh0KGZyYW1lLT5lZGl0b3IoKS0+c2Vs
ZWN0ZWRUZXh0KCkpOwotICAgIG1fZGF0YU9iamVjdC0+c2V0TWFya3VwKGNyZWF0ZU1hcmt1cChy
YW5nZSwgMCwgQW5ub3RhdGVGb3JJbnRlcmNoYW5nZSwgZmFsc2UsIEFic29sdXRlVVJMcykpOwor
ICAgIG1fZGF0YU9iamVjdC0+c2V0TWFya3VwKGNyZWF0ZU1hcmt1cChyYW5nZSwgMCwgQW5ub3Rh
dGVGb3JJbnRlcmNoYW5nZSwgZmFsc2UsIFJlc29sdmVOb25Mb2NhbFVSTHMpKTsKIAogICAgIGlm
IChtX2NsaXBib2FyZCkKICAgICAgICAgUGFzdGVib2FyZEhlbHBlcjo6ZGVmYXVsdFBhc3RlYm9h
cmRIZWxwZXIoKS0+d3JpdGVDbGlwYm9hcmRDb250ZW50cyhtX2NsaXBib2FyZCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvRGF0YU9iamVjdEd0ay5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvRGF0YU9iamVjdEd0ay5jcHAKaW5kZXggMDVhMmRhOTAw
NTdlMTA3MjYwNDAwZjQ2MTQxOTBhNmI2MjlkYTdiNS4uYTlmNjRhZmI1ODNlOWI1MjYwYmRhZDJk
MDAzNjY1ZGQxZWM0YTM2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Rr
L0RhdGFPYmplY3RHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9EYXRh
T2JqZWN0R3RrLmNwcApAQCAtNDIsNyArNDIsNyBAQCBTdHJpbmcgRGF0YU9iamVjdEd0azo6dGV4
dCgpCiBTdHJpbmcgRGF0YU9iamVjdEd0azo6bWFya3VwKCkKIHsKICAgICBpZiAobV9yYW5nZSkK
LSAgICAgICAgcmV0dXJuIGNyZWF0ZU1hcmt1cChtX3JhbmdlLmdldCgpLCAwLCBBbm5vdGF0ZUZv
ckludGVyY2hhbmdlLCBmYWxzZSwgQWJzb2x1dGVVUkxzKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0
ZU1hcmt1cChtX3JhbmdlLmdldCgpLCAwLCBBbm5vdGF0ZUZvckludGVyY2hhbmdlLCBmYWxzZSwg
UmVzb2x2ZU5vbkxvY2FsVVJMcyk7CiAgICAgcmV0dXJuIG1fbWFya3VwOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEd0ay5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEd0ay5jcHAKaW5kZXggZTA0OGI5MWEx
OGEzMzE3ZmM2NWE4ZGMzZjFhMzcxNmRjMTRlYmVlMy4uY2E1ODVkNjk1NGY1OTJmOTRmYWZkMzkz
YzExNmYxZWY1ZGM5ZDAxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Rr
L1Bhc3RlYm9hcmRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0
ZWJvYXJkR3RrLmNwcApAQCAtNjAsNyArNjAsNyBAQCB2b2lkIFBhc3RlYm9hcmQ6OndyaXRlU2Vs
ZWN0aW9uKFJhbmdlKiBzZWxlY3RlZFJhbmdlLCBib29sIGNhblNtYXJ0Q29weU9yRGVsZXRlLAog
ICAgIEd0a0NsaXBib2FyZCogY2xpcGJvYXJkID0gaGVscGVyLT5nZXRDbGlwYm9hcmQoZnJhbWUp
OwogICAgIERhdGFPYmplY3RHdGsqIGRhdGFPYmplY3QgPSBEYXRhT2JqZWN0R3RrOjpmb3JDbGlw
Ym9hcmQoY2xpcGJvYXJkKTsKICAgICBkYXRhT2JqZWN0LT5zZXRUZXh0KGZyYW1lLT5lZGl0b3Io
KS0+c2VsZWN0ZWRUZXh0KCkpOwotICAgIGRhdGFPYmplY3QtPnNldE1hcmt1cChjcmVhdGVNYXJr
dXAoc2VsZWN0ZWRSYW5nZSwgMCwgQW5ub3RhdGVGb3JJbnRlcmNoYW5nZSwgZmFsc2UsIEFic29s
dXRlVVJMcykpOworICAgIGRhdGFPYmplY3QtPnNldE1hcmt1cChjcmVhdGVNYXJrdXAoc2VsZWN0
ZWRSYW5nZSwgMCwgQW5ub3RhdGVGb3JJbnRlcmNoYW5nZSwgZmFsc2UsIFJlc29sdmVOb25Mb2Nh
bFVSTHMpKTsKICAgICBoZWxwZXItPndyaXRlQ2xpcGJvYXJkQ29udGVudHMoY2xpcGJvYXJkLCBj
YW5TbWFydENvcHlPckRlbGV0ZSA/IFBhc3RlYm9hcmRIZWxwZXI6OkluY2x1ZGVTbWFydFBhc3Rl
IDogUGFzdGVib2FyZEhlbHBlcjo6RG9Ob3RJbmNsdWRlU21hcnRQYXN0ZSk7CiB9CiAKQEAgLTEy
MiwxMSArMTIyLDcgQEAgdm9pZCBQYXN0ZWJvYXJkOjp3cml0ZUltYWdlKE5vZGUqIG5vZGUsIGNv
bnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmIHRpdGxlKQogICAgIGlmICghdXJsLmlzRW1wdHkoKSkg
ewogICAgICAgICBkYXRhT2JqZWN0LT5zZXRVUkwodXJsLCB0aXRsZSk7CiAKLSAgICAgICAgLy8g
VGhpcyBpbWFnZSBtYXkgYmUgYW4gU1ZHLCBlbWJlZCwgb3Igb2JqZWN0IHRhZywgc28gZG8gbm90
IHdyaXRlIHRoZSBpbWFnZQotICAgICAgICAvLyB0YWcgbWFya3VwIGluIHRob3NlIGNhc2VzLiBF
dmVudHVhbGx5IHdlIG1heSB3YW50IHRvIHN1cHBvcnQgcGFzc2luZyBtYXJrdXAKLSAgICAgICAg
Ly8gZm9yIHRoZXNlIHRhZyB0eXBlcy4KLSAgICAgICAgaWYgKG5vZGUtPmhhc1RhZ05hbWUoSFRN
TE5hbWVzOjppbWdUYWcpKQotICAgICAgICAgICAgZGF0YU9iamVjdC0+c2V0TWFya3VwKGltYWdl
VG9NYXJrdXAodXJsLCBzdGF0aWNfY2FzdDxFbGVtZW50Kj4obm9kZSkpKTsKKyAgICAgICAgZGF0
YU9iamVjdC0+c2V0TWFya3VwKGNyZWF0ZU1hcmt1cChzdGF0aWNfY2FzdDxFbGVtZW50Kj4obm9k
ZSksIEluY2x1ZGVOb2RlLCAwLCBSZXNvbHZlQWxsVVJMcykpOwogICAgIH0KIAogICAgIEdSZWZQ
dHI8R2RrUGl4YnVmPiBwaXhidWYgPSBhZG9wdEdSZWYoaW1hZ2UtPmdldEdka1BpeGJ1ZigpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2hhaWt1L1Bhc3RlYm9hcmRIYWlr
dS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9QYXN0ZWJvYXJkSGFpa3UuY3Bw
CmluZGV4IGQ3YTdlMDg5NGU2ZDIwYjc5NmFlMGQwZDVkYzlhYzUxNjg5ZGQ4MjcuLjM1YTQ2NGVm
MWVjMGQwMGQ0YThmNTk2ODQ0NTJkYzBhNjUyNjJmYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2hhaWt1L1Bhc3RlYm9hcmRIYWlrdS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaGFpa3UvUGFzdGVib2FyZEhhaWt1LmNwcApAQCAtMTAyLDcgKzEwMiw3IEBA
IHZvaWQgUGFzdGVib2FyZDo6d3JpdGVTZWxlY3Rpb24oUmFuZ2UqIHNlbGVjdGVkUmFuZ2UsIGJv
b2wgY2FuU21hcnRDb3B5T3JEZWxldGUsCiAKICAgICBkYXRhLT5BZGREYXRhKCJ0ZXh0L3BsYWlu
IiwgQl9NSU1FX1RZUEUsIHN0cmluZy5TdHJpbmcoKSwgc3RyaW5nLkxlbmd0aCgpKTsKIAotICAg
IEJTdHJpbmcgbWFya3VwU3RyaW5nKGNyZWF0ZU1hcmt1cChzZWxlY3RlZFJhbmdlLCAwLCBBbm5v
dGF0ZUZvckludGVyY2hhbmdlLCBmYWxzZSwgQWJzb2x1dGVVUkxzKSk7CisgICAgQlN0cmluZyBt
YXJrdXBTdHJpbmcoY3JlYXRlTWFya3VwKHNlbGVjdGVkUmFuZ2UsIDAsIEFubm90YXRlRm9ySW50
ZXJjaGFuZ2UsIGZhbHNlLCBSZXNvbHZlTm9uTG9jYWxVUkxzKSk7CiAgICAgZGF0YS0+QWRkRGF0
YSgidGV4dC9odG1sIiwgQl9NSU1FX1RZUEUsIG1hcmt1cFN0cmluZy5TdHJpbmcoKSwgbWFya3Vw
U3RyaW5nLkxlbmd0aCgpKTsKIAogICAgIGJlX2NsaXBib2FyZC0+Q29tbWl0KCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9DbGlwYm9hcmRRdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9xdC9DbGlwYm9hcmRRdC5jcHAKaW5kZXggZTQzYzY3MGMxNThiOTEy
YjhhOGVmMmZjZGY3MmVmMTExZGJkNTkzNy4uZjI1ZDgyMGUxNWMxMjA4NzIwZGY5YmUwYjE3OWEz
ODY0OGRmOTUxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvQ2xpcGJv
YXJkUXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0NsaXBib2FyZFF0LmNw
cApAQCAtMjg4LDIwICsyODgsMTIgQEAgdm9pZCBDbGlwYm9hcmRRdDo6ZGVjbGFyZUFuZFdyaXRl
RHJhZ0ltYWdlKEVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0IEtVUkwmIHVybCwgY28KICAgICBpZiAo
cGl4bWFwKQogICAgICAgICBtX3dyaXRhYmxlRGF0YS0+c2V0SW1hZ2VEYXRhKCpwaXhtYXApOwog
Ci0gICAgQXRvbWljU3RyaW5nIGltYWdlVVJMID0gZWxlbWVudC0+Z2V0QXR0cmlidXRlKEhUTUxO
YW1lczo6c3JjQXR0cik7Ci0gICAgaWYgKGltYWdlVVJMLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0
dXJuOwotCi0gICAgS1VSTCBmdWxsVVJMID0gZnJhbWUtPmRvY3VtZW50KCktPmNvbXBsZXRlVVJM
KHN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRNTFNwYWNlcyhpbWFnZVVSTCkpOwotICAgIGlmIChm
dWxsVVJMLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgUUxpc3Q8UVVybD4gdXJs
czsKICAgICB1cmxzLmFwcGVuZCh1cmwpOwogCiAgICAgbV93cml0YWJsZURhdGEtPnNldFRleHQo
dGl0bGUpOwogICAgIG1fd3JpdGFibGVEYXRhLT5zZXRVcmxzKHVybHMpOwotICAgIG1fd3JpdGFi
bGVEYXRhLT5zZXRIdG1sKGltYWdlVG9NYXJrdXAoZnVsbFVSTCwgZWxlbWVudCkpOworICAgIG1f
d3JpdGFibGVEYXRhLT5zZXRIdG1sKGNyZWF0ZU1hcmt1cChlbGVtZW50LCBJbmNsdWRlTm9kZSwg
MCwgUmVzb2x2ZUFsbFVSTHMpKTsKICNpZm5kZWYgUVRfTk9fQ0xJUEJPQVJECiAgICAgaWYgKGlz
Rm9yQ29weUFuZFBhc3RlKCkpCiAgICAgICAgIFFBcHBsaWNhdGlvbjo6Y2xpcGJvYXJkKCktPnNl
dE1pbWVEYXRhKG1fd3JpdGFibGVEYXRhKTsKQEAgLTMzNCw3ICszMjYsNyBAQCB2b2lkIENsaXBi
b2FyZFF0Ojp3cml0ZVJhbmdlKFJhbmdlKiByYW5nZSwgRnJhbWUqIGZyYW1lKQogICAgIFFTdHJp
bmcgdGV4dCA9IGZyYW1lLT5lZGl0b3IoKS0+c2VsZWN0ZWRUZXh0KCk7CiAgICAgdGV4dC5yZXBs
YWNlKFFDaGFyKDB4YTApLCBRTGF0aW4xQ2hhcignICcpKTsKICAgICBtX3dyaXRhYmxlRGF0YS0+
c2V0VGV4dCh0ZXh0KTsKLSAgICBtX3dyaXRhYmxlRGF0YS0+c2V0SHRtbChjcmVhdGVNYXJrdXAo
cmFuZ2UsIDAsIEFubm90YXRlRm9ySW50ZXJjaGFuZ2UsIGZhbHNlLCBBYnNvbHV0ZVVSTHMpKTsK
KyAgICBtX3dyaXRhYmxlRGF0YS0+c2V0SHRtbChjcmVhdGVNYXJrdXAocmFuZ2UsIDAsIEFubm90
YXRlRm9ySW50ZXJjaGFuZ2UsIGZhbHNlLCBSZXNvbHZlTm9uTG9jYWxVUkxzKSk7CiAjaWZuZGVm
IFFUX05PX0NMSVBCT0FSRAogICAgIGlmIChpc0ZvckNvcHlBbmRQYXN0ZSgpKQogICAgICAgICBR
QXBwbGljYXRpb246OmNsaXBib2FyZCgpLT5zZXRNaW1lRGF0YShtX3dyaXRhYmxlRGF0YSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9QYXN0ZWJvYXJkUXQuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUGFzdGVib2FyZFF0LmNwcAppbmRleCAyZjJiMWJm
ZDNkMWQ0NzRmZGFlNjUzOTc1OGIyNGZjMGJmMjE1NmQ5Li44ODExNmNiNmM0ZDkwZDY0ODAzNTYy
YmY3Yzk5OTAxNjZjZWNiMTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9x
dC9QYXN0ZWJvYXJkUXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1Bhc3Rl
Ym9hcmRRdC5jcHAKQEAgLTY0LDcgKzY0LDcgQEAgdm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVNlbGVj
dGlvbihSYW5nZSogc2VsZWN0ZWRSYW5nZSwgYm9vbCBjYW5TbWFydENvcHlPckRlbGV0ZSwKICAg
ICB0ZXh0LnJlcGxhY2UoUUNoYXIoMHhhMCksIFFMYXRpbjFDaGFyKCcgJykpOwogICAgIG1kLT5z
ZXRUZXh0KHRleHQpOwogCi0gICAgUVN0cmluZyBtYXJrdXAgPSBjcmVhdGVNYXJrdXAoc2VsZWN0
ZWRSYW5nZSwgMCwgQW5ub3RhdGVGb3JJbnRlcmNoYW5nZSwgZmFsc2UsIEFic29sdXRlVVJMcyk7
CisgICAgUVN0cmluZyBtYXJrdXAgPSBjcmVhdGVNYXJrdXAoc2VsZWN0ZWRSYW5nZSwgMCwgQW5u
b3RhdGVGb3JJbnRlcmNoYW5nZSwgZmFsc2UsIFJlc29sdmVOb25Mb2NhbFVSTHMpOwogI2lmZGVm
IFFfT1NfTUFDCiAgICAgbWFya3VwLnByZXBlbmQoUUxhdGluMVN0cmluZygiPGh0bWw+PGhlYWQ+
PG1ldGEgaHR0cC1lcXVpdj1cIkNvbnRlbnQtVHlwZVwiIGNvbnRlbnQ9XCJ0ZXh0L2h0bWw7IGNo
YXJzZXQ9dXRmLThcIiAvPjwvaGVhZD48Ym9keT4iKSk7CiAgICAgbWFya3VwLmFwcGVuZChRTGF0
aW4xU3RyaW5nKCI8L2JvZHk+PC9odG1sPiIpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3dpbi9DbGlwYm9hcmRXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
d2luL0NsaXBib2FyZFdpbi5jcHAKaW5kZXggOTBjNTU1YjMxOTVlMjI1ZmQwZjc5NTc2MjRiNmU3
Mzg5MDc5NmU3Yy4uYmY0MDhkNzkwZjVlYmE2YTM5NGVkMDgzM2NlY2IyNTg4MjE0MDk0YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFdpbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0NsaXBib2FyZFdpbi5jcHAKQEAgLTY4Myw3
ICs2ODMsNyBAQCB2b2lkIENsaXBib2FyZFdpbjo6ZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKEVs
ZW1lbnQqIGVsZW1lbnQsIGNvbnN0IEtVUkwmIHVybCwgYwogCiAgICAgLy8gUHV0IGltZyB0YWcg
b24gdGhlIGNsaXBib2FyZCByZWZlcmVuY2luZyB0aGUgaW1hZ2UKICAgICBWZWN0b3I8Y2hhcj4g
ZGF0YTsKLSAgICBtYXJrdXBUb0NGSFRNTChpbWFnZVRvTWFya3VwKGZ1bGxVUkwsIGVsZW1lbnQp
LCAiIiwgZGF0YSk7CisgICAgbWFya3VwVG9DRkhUTUwoY3JlYXRlTWFya3VwKGVsZW1lbnQsIElu
Y2x1ZGVOb2RlLCAwLCBSZXNvbHZlQWxsVVJMcyksICIiLCBkYXRhKTsKICAgICBtZWRpdW0uaEds
b2JhbCA9IGNyZWF0ZUdsb2JhbERhdGEoZGF0YSk7CiAgICAgaWYgKG1lZGl1bS5oR2xvYmFsICYm
IEZBSUxFRChtX3dyaXRhYmxlRGF0YU9iamVjdC0+U2V0RGF0YShodG1sRm9ybWF0KCksICZtZWRp
dW0sIFRSVUUpKSkKICAgICAgICAgOjpHbG9iYWxGcmVlKG1lZGl1bS5oR2xvYmFsKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103408</attachid>
            <date>2011-08-09 15:34:44 -0700</date>
            <delta_ts>2011-08-10 07:23:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-58043-20110810003442.patch</filename>
            <type>text/plain</type>
            <size>33047</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTI2NzQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmOTRmYzQxZDFlMmM0Mjk0M2IxNGEw
NDY4NTc3NWZlOGNmMzhhYTA3Li5jMjdjZDllOThhNzM1ZTQ2MWYwNWZmZGI5NzZkMjBkYjg3OGVl
M2Y0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTEtMDgtMDkgIEJlbmphbWluIFBvdWxhaW4g
IDxiZW5qYW1pbkB3ZWJraXQub3JnPgorCisgICAgICAgIFVuaWZ5IHRoZSB3YXkgd2UgZ2VuZXJh
dGUgSFRNTCBmb3IgYW4gaW1hZ2UgaW4gdGhlIENsaXBib2FyZAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTgwNDMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgMyB0ZXN0cyBmb3IgZHJhZ2dpbmcgYW4g
aW1hZ2UtbGlrZSBlbGVtZW50IHRvIGFuIGVkaXRhYmxlIGFyZWEuCisKKyAgICAgICAgKiBlZGl0
aW5nL3Bhc3RlYm9hcmQvZHJhZy1hbmQtZHJvcC1pbWFnZS1jb250ZW50ZWRpdGFibGUtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQvZHJhZy1hbmQtZHJv
cC1pbWFnZS1jb250ZW50ZWRpdGFibGUuaHRtbDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9w
YXN0ZWJvYXJkL2RyYWctYW5kLWRyb3AtaW5wdXRpbWFnZS1jb250ZW50ZWRpdGFibGUtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQvZHJhZy1hbmQtZHJv
cC1pbnB1dGltYWdlLWNvbnRlbnRlZGl0YWJsZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBlZGl0
aW5nL3Bhc3RlYm9hcmQvZHJhZy1hbmQtZHJvcC1vYmplY3RpbWFnZS1jb250ZW50ZWRpdGFibGUt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQvZHJhZy1h
bmQtZHJvcC1vYmplY3RpbWFnZS1jb250ZW50ZWRpdGFibGUuaHRtbDogQWRkZWQuCisgICAgICAg
ICogcGxhdGZvcm0vcXQvU2tpcHBlZDogUXQgZG9lcyBub3QgaGF2ZSBzdXBwb3J0IGZvciB0ZXN0
aW5nIGRyYWcgYW5kIGRyb3AuCisKIDIwMTEtMDgtMDkgIEFuZHJlaSBQb3Blc2N1ICA8YW5kcmVp
cEBnb29nbGUuY29tPgogCiAgICAgICAgIFtDaHJvbWl1bV0gVXBkYXRlIHRlc3QgZXhwZWN0YXRp
b25zIGZvciBmYXN0L3dyaXRpbmctbW9kZS9qYXBhbmVzZS1ybC10ZXh0LXdpdGgtYnJva2VuLWZv
bnQuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2RyYWct
YW5kLWRyb3AtaW1hZ2UtY29udGVudGVkaXRhYmxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2VkaXRpbmcvcGFzdGVib2FyZC9kcmFnLWFuZC1kcm9wLWltYWdlLWNvbnRlbnRlZGl0YWJsZS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmYwODZlZGNjYjhkOGIxNTBmOTQxNjQzZDBhYWQ0MzAy
ZmJlYTQzYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2Fy
ZC9kcmFnLWFuZC1kcm9wLWltYWdlLWNvbnRlbnRlZGl0YWJsZS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxNyBAQAorVGhpcyB0ZXN0IHZlcmlmeSBkcmFnZ2luZyBhbiBpbWFnZSBpbiB0aGUgcGFn
ZSBrZWVwcyBpdHMgYXR0cmlidXRlcy4gVG8gdGVzdCBtYW51YWxseSwgZHJhZyB0aGUgaW1hZ2Ug
YW5kIGRyb3AgaXQgaW4gdGhlIHJlY3Qgd2l0aCBhIGJsdWUgYm9yZGVyLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworCisKK1BBU1MgdGFyZ2V0LmdldEVsZW1lbnRzQnlUYWdOYW1l
KCJpbWciKS5sZW5ndGggaXMgMQorUEFTUyB0YXJnZXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlt
ZyIpWzBdLmF0dHJpYnV0ZXMubGVuZ3RoIGlzIDUKK1BBU1MgdGFyZ2V0LmdldEVsZW1lbnRzQnlU
YWdOYW1lKCJpbWciKVswXS5pZCBpcyAic291cmNlIgorUEFTUyB0YXJnZXQuZ2V0RWxlbWVudHNC
eVRhZ05hbWUoImltZyIpWzBdLmFsdCBpcyAiYWx0LXRleHQiCitQQVNTIHRhcmdldC5nZXRFbGVt
ZW50c0J5VGFnTmFtZSgiaW1nIilbMF0uYXR0cmlidXRlc1siaXRlbXByb3AiXS52YWx1ZSBpcyAi
c29tZWRhdGEiCitQQVNTIHRhcmdldC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW1nIilbMF0uYXR0
cmlidXRlc1siYXJiaXRyYXJ5Il0udmFsdWUgaXMgImdyZWVuIgorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2VkaXRpbmcvcGFzdGVib2FyZC9kcmFnLWFuZC1kcm9wLWltYWdlLWNvbnRlbnRlZGl0YWJsZS5o
dG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2RyYWctYW5kLWRyb3AtaW1hZ2Ut
Y29udGVudGVkaXRhYmxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWI5NzRkODI1ZjVlNDIyZmE1NTI2M2E2
NzBmNjcxYjdlNGQwOTI1NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcv
cGFzdGVib2FyZC9kcmFnLWFuZC1kcm9wLWltYWdlLWNvbnRlbnRlZGl0YWJsZS5odG1sCkBAIC0w
LDAgKzEsNjAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c3R5
bGU+CisjdGFyZ2V0IHsKKyAgICBoZWlnaHQ6IDIwMHB4OworICAgIHdpZHRoOiAyMjBweDsKKyAg
ICBib3JkZXI6IDVweCBzb2xpZCBibHVlOworfQorPC9zdHlsZT4KKzwvaGVhZD4KKworPGJvZHkg
b25sb2FkPSJydW5UZXN0KCkiPgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGNvbnRl
bnRlZGl0YWJsZT10cnVlIGlkPSJ0YXJnZXQiPjwvZGl2PgorPGRpdj48aW1nIGlkPSJzb3VyY2Ui
IHNyYz0icmVzb3VyY2VzL2FwcGxlLmdpZiIgYWx0PSJhbHQtdGV4dCIgaXRlbXByb3A9InNvbWVk
YXRhIiBhcmJpdHJhcnk9ImdyZWVuIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pgor
Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1RoaXMgdGVzdCB2ZXJpZnkgZHJhZ2dpbmcgYW4gaW1h
Z2UgaW4gdGhlIHBhZ2Uga2VlcHMgaXRzIGF0dHJpYnV0ZXMuIFRvIHRlc3QgbWFudWFsbHksIGRy
YWcgdGhlIGltYWdlIGFuZCBkcm9wIGl0IGluIHRoZSByZWN0IHdpdGggYSBibHVlIGJvcmRlci4n
KTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOwordmFyIHRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCd0YXJnZXQnKTsKKworZnVuY3Rpb24gY29udGVudEluc2VydGVkKCkgeworICAgIHNo
b3VsZEJlKCd0YXJnZXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImltZyIpLmxlbmd0aCcsICcxJyk7
CisgICAgc2hvdWxkQmUoJ3RhcmdldC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW1nIilbMF0uYXR0
cmlidXRlcy5sZW5ndGgnLCAnNScpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygndGFyZ2V0
LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbWciKVswXS5pZCcsICdzb3VyY2UnKTsKKyAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoJ3RhcmdldC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW1nIilbMF0u
YWx0JywgJ2FsdC10ZXh0Jyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0YXJnZXQuZ2V0
RWxlbWVudHNCeVRhZ05hbWUoImltZyIpWzBdLmF0dHJpYnV0ZXNbIml0ZW1wcm9wIl0udmFsdWUn
LCAnc29tZWRhdGEnKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3RhcmdldC5nZXRFbGVt
ZW50c0J5VGFnTmFtZSgiaW1nIilbMF0uYXR0cmlidXRlc1siYXJiaXRyYXJ5Il0udmFsdWUnLCAn
Z3JlZW4nKTsKKworICAgIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisgICAgZmluaXNoSlNU
ZXN0KCk7Cit9CitmdW5jdGlvbiBydW5UZXN0KCkgeworICAgIHRhcmdldC5hZGRFdmVudExpc3Rl
bmVyKCdET01Ob2RlSW5zZXJ0ZWQnLCBjb250ZW50SW5zZXJ0ZWQsIGZhbHNlKTsKKyAgICBpZiAo
IXdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgZSA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJzb3VyY2UiKTsKKyAgICB4ID0gZS5vZmZzZXRMZWZ0ICsgZS5vZmZzZXRX
aWR0aCAvIDI7CisgICAgeSA9IGUub2Zmc2V0VG9wICsgZS5vZmZzZXRIZWlnaHQgLyAyOworCisg
ICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VE
b3duKCk7CisgICAgZXZlbnRTZW5kZXIubGVhcEZvcndhcmQoMTAwKTsKKyAgICBlID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpOworICAgIHggPSBlLm9mZnNldExlZnQgKyBlLm9m
ZnNldFdpZHRoIC8gMjsKKyAgICB5ID0gZS5vZmZzZXRUb3AgKyBlLm9mZnNldEhlaWdodCAvIDI7
CisKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5KTsKKyAgICBldmVudFNlbmRlci5t
b3VzZVVwKCk7Cit9Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2RyYWctYW5kLWRyb3AtaW5wdXRp
bWFnZS1jb250ZW50ZWRpdGFibGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9w
YXN0ZWJvYXJkL2RyYWctYW5kLWRyb3AtaW5wdXRpbWFnZS1jb250ZW50ZWRpdGFibGUtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmY3MmFlNTNlMzdlYTk4YzljOTgxZDk0ODU4OTM5ZmYyYWQ5Yzkx
OTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvZHJh
Zy1hbmQtZHJvcC1pbnB1dGltYWdlLWNvbnRlbnRlZGl0YWJsZS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxOCBAQAorVGhpcyB0ZXN0IHZlcmlmeSBkcmFnZ2luZyBhbiBpbWFnZSBpbiB0aGUgcGFn
ZSBrZWVwcyBpdHMgYXR0cmlidXRlcy4gVG8gdGVzdCBtYW51YWxseSwgZHJhZyB0aGUgaW1hZ2Ug
YW5kIGRyb3AgaXQgaW4gdGhlIHJlY3Qgd2l0aCBhIGJsdWUgYm9yZGVyLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworCisKK1BBU1MgdGFyZ2V0LmdldEVsZW1lbnRzQnlUYWdOYW1l
KCJpbnB1dCIpLmxlbmd0aCBpcyAxCitQQVNTIHRhcmdldC5nZXRFbGVtZW50c0J5VGFnTmFtZSgi
aW5wdXQiKVswXS5hdHRyaWJ1dGVzLmxlbmd0aCBpcyA2CitQQVNTIHRhcmdldC5nZXRFbGVtZW50
c0J5VGFnTmFtZSgiaW5wdXQiKVswXS5pZCBpcyAic291cmNlIgorUEFTUyB0YXJnZXQuZ2V0RWxl
bWVudHNCeVRhZ05hbWUoImlucHV0IilbMF0udHlwZSBpcyAiaW1hZ2UiCitQQVNTIHRhcmdldC5n
ZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKVswXS5kcmFnZ2FibGUgaXMgdHJ1ZQorUEFTUyB0
YXJnZXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlucHV0IilbMF0uYXR0cmlidXRlc1siaXRlbXBy
b3AiXS52YWx1ZSBpcyAic29tZWRhdGEiCitQQVNTIHRhcmdldC5nZXRFbGVtZW50c0J5VGFnTmFt
ZSgiaW5wdXQiKVswXS5hdHRyaWJ1dGVzWyJhcmJpdHJhcnkiXS52YWx1ZSBpcyAiZ3JlZW4iCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2RyYWctYW5kLWRyb3AtaW5wdXRp
bWFnZS1jb250ZW50ZWRpdGFibGUuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2Fy
ZC9kcmFnLWFuZC1kcm9wLWlucHV0aW1hZ2UtY29udGVudGVkaXRhYmxlLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZDE5MDc1ZWIyYmI1ZTBjYzMzOTE1NDhiNmMwNTQ4ZGNjYzk2YzU0NQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9kcmFnLWFuZC1kcm9wLWlucHV0
aW1hZ2UtY29udGVudGVkaXRhYmxlLmh0bWwKQEAgLTAsMCArMSw2MSBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KKyN0YXJnZXQgeworICAgIGhlaWdo
dDogMjAwcHg7CisgICAgd2lkdGg6IDIyMHB4OworICAgIGJvcmRlcjogNXB4IHNvbGlkIGJsdWU7
Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorCis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cCBp
ZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgY29udGVudGVkaXRhYmxlPXRydWUgaWQ9InRhcmdl
dCI+PC9kaXY+Cis8ZGl2PjxpbnB1dCB0eXBlPSJpbWFnZSIgaWQ9InNvdXJjZSIgc3JjPSJyZXNv
dXJjZXMvYXBwbGUuZ2lmIiBpdGVtcHJvcD0ic29tZWRhdGEiIGFyYml0cmFyeT0iZ3JlZW4iIGRy
YWdnYWJsZT10cnVlPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQ+
CitkZXNjcmlwdGlvbignVGhpcyB0ZXN0IHZlcmlmeSBkcmFnZ2luZyBhbiBpbWFnZSBpbiB0aGUg
cGFnZSBrZWVwcyBpdHMgYXR0cmlidXRlcy4gVG8gdGVzdCBtYW51YWxseSwgZHJhZyB0aGUgaW1h
Z2UgYW5kIGRyb3AgaXQgaW4gdGhlIHJlY3Qgd2l0aCBhIGJsdWUgYm9yZGVyLicpOworanNUZXN0
SXNBc3luYyA9IHRydWU7Cit2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rh
cmdldCcpOworCitmdW5jdGlvbiBjb250ZW50SW5zZXJ0ZWQoKSB7CisgICAgc2hvdWxkQmUoJ3Rh
cmdldC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKS5sZW5ndGgnLCAnMScpOworICAgIHNo
b3VsZEJlKCd0YXJnZXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlucHV0IilbMF0uYXR0cmlidXRl
cy5sZW5ndGgnLCAnNicpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygndGFyZ2V0LmdldEVs
ZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIpWzBdLmlkJywgJ3NvdXJjZScpOworICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygndGFyZ2V0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIpWzBdLnR5
cGUnLCAnaW1hZ2UnKTsKKyAgICBzaG91bGRCZVRydWUoJ3RhcmdldC5nZXRFbGVtZW50c0J5VGFn
TmFtZSgiaW5wdXQiKVswXS5kcmFnZ2FibGUnKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmco
J3RhcmdldC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKVswXS5hdHRyaWJ1dGVzWyJpdGVt
cHJvcCJdLnZhbHVlJywgJ3NvbWVkYXRhJyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0
YXJnZXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlucHV0IilbMF0uYXR0cmlidXRlc1siYXJiaXRy
YXJ5Il0udmFsdWUnLCAnZ3JlZW4nKTsKKworICAgIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7
CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CitmdW5jdGlvbiBydW5UZXN0KCkgeworICAgIHRhcmdl
dC5hZGRFdmVudExpc3RlbmVyKCdET01Ob2RlSW5zZXJ0ZWQnLCBjb250ZW50SW5zZXJ0ZWQsIGZh
bHNlKTsKKyAgICBpZiAoIXdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgcmV0
dXJuOworCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworCisgICAg
ZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzb3VyY2UiKTsKKyAgICB4ID0gZS5vZmZzZXRM
ZWZ0ICsgZS5vZmZzZXRXaWR0aCAvIDI7CisgICAgeSA9IGUub2Zmc2V0VG9wICsgZS5vZmZzZXRI
ZWlnaHQgLyAyOworCisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7CisgICAgZXZl
bnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgZXZlbnRTZW5kZXIubGVhcEZvcndhcmQoMTAwKTsK
KyAgICBlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpOworICAgIHggPSBlLm9m
ZnNldExlZnQgKyBlLm9mZnNldFdpZHRoIC8gMjsKKyAgICB5ID0gZS5vZmZzZXRUb3AgKyBlLm9m
ZnNldEhlaWdodCAvIDI7CisKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5KTsKKyAg
ICBldmVudFNlbmRlci5tb3VzZVVwKCk7Cit9Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2RyYWct
YW5kLWRyb3Atb2JqZWN0aW1hZ2UtY29udGVudGVkaXRhYmxlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9kcmFnLWFuZC1kcm9wLW9iamVjdGltYWdlLWNvbnRl
bnRlZGl0YWJsZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmRlMzZhMDgwYmJhN2U1YmEwYjJl
MDNlNDA2YmE4NTRiM2U0ZjlhMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRp
bmcvcGFzdGVib2FyZC9kcmFnLWFuZC1kcm9wLW9iamVjdGltYWdlLWNvbnRlbnRlZGl0YWJsZS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxOCBAQAorVGhpcyB0ZXN0IHZlcmlmeSBkcmFnZ2luZyBh
biBpbWFnZSBpbiB0aGUgcGFnZSBrZWVwcyBpdHMgYXR0cmlidXRlcy4gVG8gdGVzdCBtYW51YWxs
eSwgZHJhZyB0aGUgaW1hZ2UgYW5kIGRyb3AgaXQgaW4gdGhlIHJlY3Qgd2l0aCBhIGJsdWUgYm9y
ZGVyLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworCisKK1BBU1MgdGFyZ2V0Lmdl
dEVsZW1lbnRzQnlUYWdOYW1lKCJvYmplY3QiKS5sZW5ndGggaXMgMQorUEFTUyB0YXJnZXQuZ2V0
RWxlbWVudHNCeVRhZ05hbWUoIm9iamVjdCIpWzBdLmF0dHJpYnV0ZXMubGVuZ3RoIGlzIDYKK1BB
U1MgdGFyZ2V0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJvYmplY3QiKVswXS5pZCBpcyAic291cmNl
IgorUEFTUyB0YXJnZXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIm9iamVjdCIpWzBdLnR5cGUgaXMg
ImltYWdlL3BuZyIKK1BBU1MgdGFyZ2V0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJvYmplY3QiKVsw
XS5kcmFnZ2FibGUgaXMgdHJ1ZQorUEFTUyB0YXJnZXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIm9i
amVjdCIpWzBdLmF0dHJpYnV0ZXNbIml0ZW1wcm9wIl0udmFsdWUgaXMgInNvbWVkYXRhIgorUEFT
UyB0YXJnZXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIm9iamVjdCIpWzBdLmF0dHJpYnV0ZXNbImFy
Yml0cmFyeSJdLnZhbHVlIGlzICJncmVlbiIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bh
c3RlYm9hcmQvZHJhZy1hbmQtZHJvcC1vYmplY3RpbWFnZS1jb250ZW50ZWRpdGFibGUuaHRtbCBi
L0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9kcmFnLWFuZC1kcm9wLW9iamVjdGltYWdl
LWNvbnRlbnRlZGl0YWJsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA3YTE1MTA0OTUxZTE1MjY4M2VmMjkz
NDgwMjkxNDA5NmFiMzc5MjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5n
L3Bhc3RlYm9hcmQvZHJhZy1hbmQtZHJvcC1vYmplY3RpbWFnZS1jb250ZW50ZWRpdGFibGUuaHRt
bApAQCAtMCwwICsxLDYxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPHN0eWxlPgorI3RhcmdldCB7CisgICAgaGVpZ2h0OiAyMDBweDsKKyAgICB3aWR0aDogMjIw
cHg7CisgICAgYm9yZGVyOiA1cHggc29saWQgYmx1ZTsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+CisK
Kzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRp
diBjb250ZW50ZWRpdGFibGU9dHJ1ZSBpZD0idGFyZ2V0Ij48L2Rpdj4KKzxkaXY+PG9iamVjdCBp
ZD0ic291cmNlIiBkYXRhPSJyZXNvdXJjZXMvYXBwbGUuZ2lmIiB0eXBlPSJpbWFnZS9wbmciIGl0
ZW1wcm9wPSJzb21lZGF0YSIgYXJiaXRyYXJ5PSJncmVlbiIgZHJhZ2dhYmxlPXRydWU+PC9vYmpl
Y3Q+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4KK2Rlc2NyaXB0
aW9uKCdUaGlzIHRlc3QgdmVyaWZ5IGRyYWdnaW5nIGFuIGltYWdlIGluIHRoZSBwYWdlIGtlZXBz
IGl0cyBhdHRyaWJ1dGVzLiBUbyB0ZXN0IG1hbnVhbGx5LCBkcmFnIHRoZSBpbWFnZSBhbmQgZHJv
cCBpdCBpbiB0aGUgcmVjdCB3aXRoIGEgYmx1ZSBib3JkZXIuJyk7Citqc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKK3ZhciB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0Jyk7CisK
K2Z1bmN0aW9uIGNvbnRlbnRJbnNlcnRlZCgpIHsKKyAgICBzaG91bGRCZSgndGFyZ2V0LmdldEVs
ZW1lbnRzQnlUYWdOYW1lKCJvYmplY3QiKS5sZW5ndGgnLCAnMScpOworICAgIHNob3VsZEJlKCd0
YXJnZXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIm9iamVjdCIpWzBdLmF0dHJpYnV0ZXMubGVuZ3Ro
JywgJzYnKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3RhcmdldC5nZXRFbGVtZW50c0J5
VGFnTmFtZSgib2JqZWN0IilbMF0uaWQnLCAnc291cmNlJyk7CisgICAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCd0YXJnZXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIm9iamVjdCIpWzBdLnR5cGUnLCAn
aW1hZ2UvcG5nJyk7CisgICAgc2hvdWxkQmVUcnVlKCd0YXJnZXQuZ2V0RWxlbWVudHNCeVRhZ05h
bWUoIm9iamVjdCIpWzBdLmRyYWdnYWJsZScpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygn
dGFyZ2V0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJvYmplY3QiKVswXS5hdHRyaWJ1dGVzWyJpdGVt
cHJvcCJdLnZhbHVlJywgJ3NvbWVkYXRhJyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0
YXJnZXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIm9iamVjdCIpWzBdLmF0dHJpYnV0ZXNbImFyYml0
cmFyeSJdLnZhbHVlJywgJ2dyZWVuJyk7CisKKyAgICBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVl
OworICAgIGZpbmlzaEpTVGVzdCgpOworfQorZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICB0YXJn
ZXQuYWRkRXZlbnRMaXN0ZW5lcignRE9NTm9kZUluc2VydGVkJywgY29udGVudEluc2VydGVkLCBm
YWxzZSk7CisgICAgaWYgKCF3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIHJl
dHVybjsKKworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKworICAg
IGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic291cmNlIik7CisgICAgeCA9IGUub2Zmc2V0
TGVmdCArIGUub2Zmc2V0V2lkdGggLyAyOworICAgIHkgPSBlLm9mZnNldFRvcCArIGUub2Zmc2V0
SGVpZ2h0IC8gMjsKKworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHgsIHkpOworICAgIGV2
ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgIGV2ZW50U2VuZGVyLmxlYXBGb3J3YXJkKDEwMCk7
CisgICAgZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKTsKKyAgICB4ID0gZS5v
ZmZzZXRMZWZ0ICsgZS5vZmZzZXRXaWR0aCAvIDI7CisgICAgeSA9IGUub2Zmc2V0VG9wICsgZS5v
ZmZzZXRIZWlnaHQgLyAyOworCisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7Cisg
ICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworfQorPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCmluZGV4IGIzZjk5OWYxZTdjYzY3NzU3OWU0
NzRiOGY5ODJhMWVmM2ZlYzkwYTMuLjYxM2Q0NGIyYjEyZjgwOTkyYmU1Zjc3ODVjZTVkMTI4Y2Qz
NGY4N2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZApAQCAtMjU1LDYgKzI1NSw5IEBAIGVkaXRp
bmcvcGFzdGVib2FyZC9zdWJmcmFtZS1kcmFnbmRyb3AtMS5odG1sCiBlZGl0aW5nL3Bhc3RlYm9h
cmQvZ2V0LWRhdGEtdGV4dC1wbGFpbi1kcm9wLmh0bWwKIGVkaXRpbmcvcGFzdGVib2FyZC9kcm9w
LXRleHQtZXZlbnRzLmh0bWwKIGVkaXRpbmcvcGFzdGVib2FyZC9kcm9wLXRleHQtZXZlbnRzLXNp
ZGVlZmZlY3QuaHRtbAorZWRpdGluZy9wYXN0ZWJvYXJkL2RyYWctYW5kLWRyb3AtaW1hZ2UtY29u
dGVudGVkaXRhYmxlLmh0bWwKK2VkaXRpbmcvcGFzdGVib2FyZC9kcmFnLWFuZC1kcm9wLWlucHV0
aW1hZ2UtY29udGVudGVkaXRhYmxlLmh0bWwKK2VkaXRpbmcvcGFzdGVib2FyZC9kcmFnLWFuZC1k
cm9wLW9iamVjdGltYWdlLWNvbnRlbnRlZGl0YWJsZS5odG1sCiAKICMgZGF0YS10cmFuc2Zlci1p
dGVtcyBpcyBub3QgYSBkZWZhdWx0IGJ1aWxkIG9wdGlvbgogIyBTZWUgYnVnIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDA2OApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGMzYmM5YmNk
MjA3MDk3OWE3Mzg5ZjUwOWUzYTNlOWQ2ZjE5NzNjYjIuLjQ0NDBmZmIwNDhkODgwZmE0ZGQ1M2Yy
ODg5YWY4OTRlNmU5YTk2NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1OCBAQAorMjAxMS0wOC0w
OSAgQmVuamFtaW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVW5p
ZnkgdGhlIHdheSB3ZSBnZW5lcmF0ZSBIVE1MIGZvciBhbiBpbWFnZSBpbiB0aGUgQ2xpcGJvYXJk
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01ODA0Mwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVuaWZ5IHRo
ZSB3YXkgd2UgZ2VuZXJhdGUgdGhlIG1hcmt1cCB3aGVuIGRyYWdnaW5nIGFuZCBpbWFnZS4KKwor
ICAgICAgICBQcmV2aW91c2x5LCB0aGUgY29kZSB3YXMgdXNpbmcgdGhlIHNwZWNpYWwgZnVuY3Rp
b24gaW1hZ2VUb01hcmt1cCgpIHRoYXQgd2FzCisgICAgICAgIHNwcmVhZCBmcm9tIHRoZSBDaHJv
bWl1bSBwb3J0LgorICAgICAgICBUaGF0IGZ1bmN0aW9uIGlnbm9yZXMgc29tZSBlZGdlIGNhc2Vz
IHNvIHRoaXMgcGF0Y2ggcmVwbGFjZSBpdCBieSB0aGUKKyAgICAgICAgbW9yZSBnZW5lcmljIE1h
cmt1cEFjY3VtdWxhdG9yICh3aGljaCBpcyBhbHNvIHVzZWQgYnkgdGhlIG90aGVyIHBhc3RlYm9h
cmQKKyAgICAgICAgYWN0aW9ucykuCisKKyAgICAgICAgVGhlIE1hcmt1cEFjY3VtdWxhdG9yIHdh
cyBtb2RpZmllZCBiZWNhdXNlIGZvbGxvd2luZyByNjExNzgsIHRoZSBsb2NhbCBmaWxlcGF0aAor
ICAgICAgICBhcmUgdHJlYXRlZCBkaWZmZXJlbnRseSAodGhlIGVudW0gd2FzIGNoYW5nZWQgdG8g
IG1ha2UgdGhpcyBiZWhhdmlvcgorICAgICAgICBleHBsaWNpdCkuCisKKyAgICAgICAgVGVzdHM6
IGZhc3QvZHJhZy1hbmQtZHJvcC9kcmFnLWFuZC1kcm9wLWltYWdlLWNvbnRlbnRlZGl0YWJsZS5o
dG1sCisgICAgICAgICAgICAgICBmYXN0L2RyYWctYW5kLWRyb3AvZHJhZy1hbmQtZHJvcC1pbnB1
dGltYWdlLWNvbnRlbnRlZGl0YWJsZS5odG1sCisgICAgICAgICAgICAgICBmYXN0L2RyYWctYW5k
LWRyb3AvZHJhZy1hbmQtZHJvcC1vYmplY3RpbWFnZS1jb250ZW50ZWRpdGFibGUuaHRtbAorCisg
ICAgICAgICogZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpNYXJrdXBBY2N1bXVsYXRvcjo6TWFya3VwQWNjdW11bGF0b3IpOgorICAgICAgICAoV2ViQ29y
ZTo6TWFya3VwQWNjdW11bGF0b3I6OnJlc29sdmVVUkxJZk5lZWRlZCk6CisgICAgICAgIChXZWJD
b3JlOjpNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kQXR0cmlidXRlKToKKyAgICAgICAgKiBlZGl0
aW5nL01hcmt1cEFjY3VtdWxhdG9yLmg6CisgICAgICAgICogZWRpdGluZy9tYXJrdXAuY3BwOgor
ICAgICAgICAqIGVkaXRpbmcvbWFya3VwLmg6CisgICAgICAgICogcGFnZS9QYWdlU2VyaWFsaXpl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3I6OlNl
cmlhbGl6ZXJNYXJrdXBBY2N1bXVsYXRvcik6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0v
Q2xpcGJvYXJkQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2xpcGJvYXJkQ2hyb21p
dW06OmRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9h
cmRDaHJvbWl1bTo6d3JpdGVSYW5nZSk6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vUGFz
dGVib2FyZENocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OndyaXRl
U2VsZWN0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvQ2xpcGJvYXJkR3RrLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNsaXBib2FyZEd0azo6ZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKToK
KyAgICAgICAgKFdlYkNvcmU6OkNsaXBib2FyZEd0azo6d3JpdGVSYW5nZSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3RrL0RhdGFPYmplY3RHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YU9i
amVjdEd0azo6bWFya3VwKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvUGFzdGVib2FyZEd0ay5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjp3cml0ZVNlbGVjdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjp3cml0ZUltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9oYWlrdS9QYXN0ZWJvYXJkSGFpa3UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2Fy
ZDo6d3JpdGVTZWxlY3Rpb24pOgorICAgICAgICAqIHBsYXRmb3JtL3F0L0NsaXBib2FyZFF0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNsaXBib2FyZFF0OjpkZWNsYXJlQW5kV3JpdGVEcmFnSW1h
Z2UpOgorICAgICAgICAoV2ViQ29yZTo6Q2xpcGJvYXJkUXQ6OndyaXRlUmFuZ2UpOgorICAgICAg
ICAqIHBsYXRmb3JtL3F0L1Bhc3RlYm9hcmRRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYXN0
ZWJvYXJkOjp3cml0ZVNlbGVjdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vd2luL0NsaXBib2Fy
ZFdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9hcmRXaW46OmRlY2xhcmVBbmRXcml0
ZURyYWdJbWFnZSk6CisKIDIwMTEtMDgtMDkgIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogQWRkICJSZWZyZXNoIiB0byBjb250
ZXh0IG1lbnUgb2YgcmVzb3VyY2VzIHBhbmVsIGNvb2tpZXMgdmlldy4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuY3BwIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5jcHAKaW5kZXggYmFhNzk5YjVkZGQ0YTA4YmNh
OTI3MjI1ODdlYTMwMDQzMTMyZTAxNC4uMDJmNjNmYWEwZTZjZGUzMWY2MTAyY2EwNGZmYzFmMDc2
YTdiNWU1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1bXVs
YXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5j
cHAKQEAgLTczLDEwICs3MywxMCBAQCB2b2lkIGFwcGVuZENoYXJhY3RlcnNSZXBsYWNpbmdFbnRp
dGllcyhWZWN0b3I8VUNoYXI+JiBvdXQsIGNvbnN0IFVDaGFyKiBjb250ZW50LAogICAgIG91dC5h
cHBlbmQoY29udGVudCArIHBvc2l0aW9uQWZ0ZXJMYXN0RW50aXR5LCBsZW5ndGggLSBwb3NpdGlv
bkFmdGVyTGFzdEVudGl0eSk7CiB9CiAKLU1hcmt1cEFjY3VtdWxhdG9yOjpNYXJrdXBBY2N1bXVs
YXRvcihWZWN0b3I8Tm9kZSo+KiBub2RlcywgRUFic29sdXRlVVJMcyBzaG91bGRSZXNvbHZlVVJM
cywgY29uc3QgUmFuZ2UqIHJhbmdlKQorTWFya3VwQWNjdW11bGF0b3I6Ok1hcmt1cEFjY3VtdWxh
dG9yKFZlY3RvcjxOb2RlKj4qIG5vZGVzLCBFQWJzb2x1dGVVUkxzIHJlc29sdmVVcmxzTWV0aG9k
LCBjb25zdCBSYW5nZSogcmFuZ2UpCiAgICAgOiBtX25vZGVzKG5vZGVzKQogICAgICwgbV9yYW5n
ZShyYW5nZSkKLSAgICAsIG1fc2hvdWxkUmVzb2x2ZVVSTHMoc2hvdWxkUmVzb2x2ZVVSTHMpCisg
ICAgLCBtX3Jlc29sdmVVUkxzTWV0aG9kKHJlc29sdmVVcmxzTWV0aG9kKQogewogfQogCkBAIC0x
MTQsNiArMTE0LDIyIEBAIHZvaWQgTWFya3VwQWNjdW11bGF0b3I6OnNlcmlhbGl6ZU5vZGVzV2l0
aE5hbWVzcGFjZXMoTm9kZSogbm9kZSwgTm9kZSogbm9kZVRvU2tpCiAgICAgICAgIGFwcGVuZEVu
ZFRhZyhub2RlKTsKIH0KIAorU3RyaW5nIE1hcmt1cEFjY3VtdWxhdG9yOjpyZXNvbHZlVVJMSWZO
ZWVkZWQoY29uc3QgRWxlbWVudCogZWxlbWVudCwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpIGNv
bnN0Cit7CisgICAgc3dpdGNoIChtX3Jlc29sdmVVUkxzTWV0aG9kKSB7CisgICAgY2FzZSBSZXNv
bHZlQWxsVVJMczoKKyAgICAgICAgcmV0dXJuIGVsZW1lbnQtPmRvY3VtZW50KCktPmNvbXBsZXRl
VVJMKHVybFN0cmluZykuc3RyaW5nKCk7CisKKyAgICBjYXNlIFJlc29sdmVOb25Mb2NhbFVSTHM6
CisgICAgICAgIGlmICghZWxlbWVudC0+ZG9jdW1lbnQoKS0+dXJsKCkuaXNMb2NhbEZpbGUoKSkK
KyAgICAgICAgICAgIHJldHVybiBlbGVtZW50LT5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTCh1cmxT
dHJpbmcpLnN0cmluZygpOworCisgICAgY2FzZSBEb05vdFJlc29sdmVVUkxzOgorICAgICAgICBi
cmVhazsKKyAgICB9CisgICAgcmV0dXJuIHVybFN0cmluZzsKK30KKwogdm9pZCBNYXJrdXBBY2N1
bXVsYXRvcjo6YXBwZW5kU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewogICAgIG1fc3Vj
Y2VlZGluZ01hcmt1cC5hcHBlbmQoc3RyaW5nKTsKQEAgLTM3MSwxNCArMzg3LDkgQEAgdm9pZCBN
YXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kQXR0cmlidXRlKFZlY3RvcjxVQ2hhcj4mIG91dCwgRWxl
bWVudCogZWxlbWVudCwgY28KIAogICAgIG91dC5hcHBlbmQoJz0nKTsKIAotICAgIGlmIChlbGVt
ZW50LT5pc1VSTEF0dHJpYnV0ZShjb25zdF9jYXN0PEF0dHJpYnV0ZSo+KCZhdHRyaWJ1dGUpKSkg
ewotICAgICAgICAvLyBXZSBkb24ndCB3YW50IHRvIGNvbXBsZXRlIGZpbGU6Ly8vIFVSTHMgYmVj
YXVzZSBpdCBtYXkgY29udGFpbiBzZW5zaXRpdmUgaW5mb3JtYXRpb24KLSAgICAgICAgLy8gYWJv
dXQgdGhlIHVzZXIncyBzeXN0ZW0uCi0gICAgICAgIGlmIChzaG91bGRSZXNvbHZlVVJMcygpICYm
ICFlbGVtZW50LT5kb2N1bWVudCgpLT51cmwoKS5pc0xvY2FsRmlsZSgpKQotICAgICAgICAgICAg
YXBwZW5kUXVvdGVkVVJMQXR0cmlidXRlVmFsdWUob3V0LCBlbGVtZW50LT5kb2N1bWVudCgpLT5j
b21wbGV0ZVVSTChhdHRyaWJ1dGUudmFsdWUoKSkuc3RyaW5nKCkpOwotICAgICAgICBlbHNlCi0g
ICAgICAgICAgICBhcHBlbmRRdW90ZWRVUkxBdHRyaWJ1dGVWYWx1ZShvdXQsIGF0dHJpYnV0ZS52
YWx1ZSgpKTsgCi0gICAgfSBlbHNlIHsKKyAgICBpZiAoZWxlbWVudC0+aXNVUkxBdHRyaWJ1dGUo
Y29uc3RfY2FzdDxBdHRyaWJ1dGUqPigmYXR0cmlidXRlKSkpCisgICAgICAgIGFwcGVuZFF1b3Rl
ZFVSTEF0dHJpYnV0ZVZhbHVlKG91dCwgcmVzb2x2ZVVSTElmTmVlZGVkKGVsZW1lbnQsIGF0dHJp
YnV0ZS52YWx1ZSgpKSk7CisgICAgZWxzZSB7CiAgICAgICAgIG91dC5hcHBlbmQoJ1wiJyk7CiAg
ICAgICAgIGFwcGVuZEF0dHJpYnV0ZVZhbHVlKG91dCwgYXR0cmlidXRlLnZhbHVlKCksIGRvY3Vt
ZW50SXNIVE1MKTsKICAgICAgICAgb3V0LmFwcGVuZCgnXCInKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvTWFya3VwQWNjdW11bGF0b3IuaAppbmRleCA0ZjY4MTNlNjA3NDdmZjAyZmQxMTQwN2Iy
OGY0NjlmNTliZmNmODQ1Li4xZGQxYjZkZWQxYjNjNDBmODY0YzY0YzI4N2M2YTcyMmQ1YmY4NTRi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRvci5oCkBAIC02Niw3
ICs2Niw3IEBAIHN0cnVjdCBFbnRpdHlEZXNjcmlwdGlvbiB7CiAvLyBGSVhNRTogTm9uY29weWFi
bGU/CiBjbGFzcyBNYXJrdXBBY2N1bXVsYXRvciB7CiBwdWJsaWM6Ci0gICAgTWFya3VwQWNjdW11
bGF0b3IoVmVjdG9yPE5vZGUqPiogbm9kZXMsIEVBYnNvbHV0ZVVSTHMgc2hvdWxkUmVzb2x2ZVVS
THMsIGNvbnN0IFJhbmdlKiByYW5nZSA9IDApOworICAgIE1hcmt1cEFjY3VtdWxhdG9yKFZlY3Rv
cjxOb2RlKj4qLCBFQWJzb2x1dGVVUkxzIHJlc29sdmVVcmxzTWV0aG9kLCBjb25zdCBSYW5nZSog
PSAwKTsKICAgICB2aXJ0dWFsIH5NYXJrdXBBY2N1bXVsYXRvcigpOwogCiAgICAgU3RyaW5nIHNl
cmlhbGl6ZU5vZGVzKE5vZGUqIG5vZGUsIE5vZGUqIG5vZGVUb1NraXAsIEVDaGlsZHJlbk9ubHkg
Y2hpbGRyZW5Pbmx5KTsKQEAgLTEwMCwxNiArMTAwLDE1IEBAIHByb3RlY3RlZDoKICAgICBib29s
IGVsZW1lbnRDYW5ub3RIYXZlRW5kVGFnKGNvbnN0IE5vZGUqIG5vZGUpOwogICAgIHZvaWQgYXBw
ZW5kRW5kTWFya3VwKFZlY3RvcjxVQ2hhcj4mIHJlc3VsdCwgY29uc3QgTm9kZSopOwogCi0gICAg
Ym9vbCBzaG91bGRSZXNvbHZlVVJMcygpIHsgcmV0dXJuIG1fc2hvdWxkUmVzb2x2ZVVSTHMgPT0g
QWJzb2x1dGVVUkxzOyB9Ci0KICAgICBWZWN0b3I8Tm9kZSo+KiBjb25zdCBtX25vZGVzOwogICAg
IGNvbnN0IFJhbmdlKiBjb25zdCBtX3JhbmdlOwogCiBwcml2YXRlOgorICAgIFN0cmluZyByZXNv
bHZlVVJMSWZOZWVkZWQoY29uc3QgRWxlbWVudCosIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nKSBj
b25zdDsKICAgICB2b2lkIHNlcmlhbGl6ZU5vZGVzV2l0aE5hbWVzcGFjZXMoTm9kZSosIE5vZGUq
IG5vZGVUb1NraXAsIEVDaGlsZHJlbk9ubHksIGNvbnN0IE5hbWVzcGFjZXMqKTsKIAogICAgIFZl
Y3RvcjxTdHJpbmc+IG1fc3VjY2VlZGluZ01hcmt1cDsKLSAgICBjb25zdCBib29sIG1fc2hvdWxk
UmVzb2x2ZVVSTHM7CisgICAgY29uc3QgRUFic29sdXRlVVJMcyBtX3Jlc29sdmVVUkxzTWV0aG9k
OwogfTsKIAogLy8gRklYTUU6IFRoaXMgbWV0aG9kIHNob3VsZCBiZSBpbnRlZ3JhdGVkIHdpdGgg
TWFya3VwQWNjdW11bGF0b3IuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21h
cmt1cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAKaW5kZXggNzBmNWE4
MWI3YmRlMWE5ODhlODhlNDg4NjAyOTRhYjllOWQ1YjcwMi4uNWVlN2ZjYzJlMzEyOTQ1N2NjNDU5
MDQxOTgxNzA0YTg2Y2JjM2Y3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9t
YXJrdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcApAQCAtODU0
LDI4ICs4NTQsNCBAQCBTdHJpbmcgdXJsVG9NYXJrdXAoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBT
dHJpbmcmIHRpdGxlKQogICAgIHJldHVybiBTdHJpbmc6OmFkb3B0KG1hcmt1cCk7CiB9CiAKLVN0
cmluZyBpbWFnZVRvTWFya3VwKGNvbnN0IEtVUkwmIHVybCwgRWxlbWVudCogZWxlbWVudCkKLXsK
LSAgICBWZWN0b3I8VUNoYXI+IG1hcmt1cDsKLSAgICBhcHBlbmQobWFya3VwLCAiPGltZyBzcmM9
XCIiKTsKLSAgICBhcHBlbmQobWFya3VwLCB1cmwuc3RyaW5nKCkpOwotICAgIGFwcGVuZChtYXJr
dXAsICJcIiIpOwotCi0gICAgTmFtZWROb2RlTWFwKiBhdHRycyA9IGVsZW1lbnQtPmF0dHJpYnV0
ZXMoKTsKLSAgICB1bnNpZ25lZCBsZW5ndGggPSBhdHRycy0+bGVuZ3RoKCk7Ci0gICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7Ci0gICAgICAgIEF0dHJpYnV0ZSogYXR0
ciA9IGF0dHJzLT5hdHRyaWJ1dGVJdGVtKGkpOwotICAgICAgICBpZiAoYXR0ci0+bG9jYWxOYW1l
KCkgPT0gInNyYyIpCi0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgYXBwZW5kKG1hcmt1
cCwgIiAiKTsKLSAgICAgICAgYXBwZW5kKG1hcmt1cCwgYXR0ci0+bG9jYWxOYW1lKCkpOwotICAg
ICAgICBhcHBlbmQobWFya3VwLCAiPVwiIik7Ci0gICAgICAgIGFwcGVuZENoYXJhY3RlcnNSZXBs
YWNpbmdFbnRpdGllcyhtYXJrdXAsIGF0dHItPnZhbHVlKCkuY2hhcmFjdGVycygpLCBhdHRyLT52
YWx1ZSgpLmxlbmd0aCgpLCBFbnRpdHlNYXNrSW5BdHRyaWJ1dGVWYWx1ZSk7Ci0gICAgICAgIGFw
cGVuZChtYXJrdXAsICJcIiIpOwotICAgIH0KLQotICAgIGFwcGVuZChtYXJrdXAsICIvPiIpOwot
ICAgIHJldHVybiBTdHJpbmc6OmFkb3B0KG1hcmt1cCk7Ci19Ci0KIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21h
cmt1cC5oCmluZGV4IGY4Y2Q4Y2Q5MjIxNTEyNWI0OTEyZmM0NDhlZDkwMGQ3NTk3N2QyMDQuLjFi
ZmU5MDA2NGNkYjcyZGI3NzJkZjc0NTBhYTRkNzkwMjc5ZDU3ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9t
YXJrdXAuaApAQCAtNDEsNyArNDEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3Mg
UmFuZ2U7CiAKICAgICBlbnVtIEVDaGlsZHJlbk9ubHkgeyBJbmNsdWRlTm9kZSwgQ2hpbGRyZW5P
bmx5IH07Ci0gICAgZW51bSBFQWJzb2x1dGVVUkxzIHsgRG9Ob3RSZXNvbHZlVVJMcywgQWJzb2x1
dGVVUkxzIH07CisgICAgZW51bSBFQWJzb2x1dGVVUkxzIHsgRG9Ob3RSZXNvbHZlVVJMcywgUmVz
b2x2ZUFsbFVSTHMsIFJlc29sdmVOb25Mb2NhbFVSTHMgfTsKIAogICAgIFBhc3NSZWZQdHI8RG9j
dW1lbnRGcmFnbWVudD4gY3JlYXRlRnJhZ21lbnRGcm9tVGV4dChSYW5nZSogY29udGV4dCwgY29u
c3QgU3RyaW5nJiB0ZXh0KTsKICAgICBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGNyZWF0
ZUZyYWdtZW50RnJvbU1hcmt1cChEb2N1bWVudCosIGNvbnN0IFN0cmluZyYgbWFya3VwLCBjb25z
dCBTdHJpbmcmIGJhc2VVUkwsIEZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbiA9IEZyYWdtZW50
U2NyaXB0aW5nQWxsb3dlZCk7CkBAIC01Nyw3ICs1Nyw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICBTdHJpbmcgY3JlYXRlRnVsbE1hcmt1cChjb25zdCBSYW5nZSopOwogCiAgICAgU3RyaW5n
IHVybFRvTWFya3VwKGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmIHRpdGxlKTsKLSAgICBTdHJp
bmcgaW1hZ2VUb01hcmt1cChjb25zdCBLVVJMJiwgRWxlbWVudCopOwogfQogCiAjZW5kaWYgLy8g
bWFya3VwX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVNlcmlhbGl6ZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFsaXplci5jcHAKaW5kZXggZTE3Mzg3
OTE4YTg1MTg2NmE5ZGI5ZWFiNGNhNDFjYzFkNDM2ZTA5Ny4uNGRmMzNiNzA1MmNhYjY3YmUzNGZm
ZWI0MGU3YjE1ZGIzMDk4MTg4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
U2VyaWFsaXplci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFsaXplci5j
cHAKQEAgLTEwNiw4ICsxMDYsOSBAQCBwcml2YXRlOgogICAgIERvY3VtZW50KiBtX2RvY3VtZW50
OwogfTsKIAorLy8gRklYTUU6IHNob3VsZCB0aGF0IHJlYWxseSB1c2UgUmVzb2x2ZU5vbkxvY2Fs
VVJMcz8KIFNlcmlhbGl6ZXJNYXJrdXBBY2N1bXVsYXRvcjo6U2VyaWFsaXplck1hcmt1cEFjY3Vt
dWxhdG9yKFBhZ2VTZXJpYWxpemVyKiBzZXJpYWxpemVyLCBEb2N1bWVudCogZG9jdW1lbnQsIFZl
Y3RvcjxOb2RlKj4qIG5vZGVzKQotICAgIDogTWFya3VwQWNjdW11bGF0b3Iobm9kZXMsIEFic29s
dXRlVVJMcykKKyAgICA6IE1hcmt1cEFjY3VtdWxhdG9yKG5vZGVzLCBSZXNvbHZlTm9uTG9jYWxV
UkxzKQogICAgICwgbV9zZXJpYWxpemVyKHNlcmlhbGl6ZXIpCiAgICAgLCBtX2RvY3VtZW50KGRv
Y3VtZW50KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0v
Q2xpcGJvYXJkQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0v
Q2xpcGJvYXJkQ2hyb21pdW0uY3BwCmluZGV4IGU4NjhlNmIwYzJlMTc1YTlkMTQ0MWQ3ZmVlOTY1
YzkzOTM4OTk2ZmIuLmIwYjAwOGMxNWU5M2U2MjhjZDNjMGEzZTYwZDU3MTAzNDU1OWY2ZTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9t
aXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9hcmRD
aHJvbWl1bS5jcHAKQEAgLTI2NSwxNiArMjY1LDggQEAgdm9pZCBDbGlwYm9hcmRDaHJvbWl1bTo6
ZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKEVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0IEtVUkwmIHUK
ICAgICAvLyBXcml0ZSB0aGUgYnl0ZXMgaW4gdGhlIGltYWdlIHRvIHRoZSBmaWxlIGZvcm1hdC4K
ICAgICB3cml0ZUltYWdlVG9EYXRhT2JqZWN0KG1fZGF0YU9iamVjdC5nZXQoKSwgZWxlbWVudCwg
dXJsKTsKIAotICAgIEF0b21pY1N0cmluZyBpbWFnZVVSTCA9IGVsZW1lbnQtPmdldEF0dHJpYnV0
ZShzcmNBdHRyKTsKLSAgICBpZiAoaW1hZ2VVUkwuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm47
Ci0KLSAgICBLVVJMIGZ1bGxVUkwgPSBmcmFtZS0+ZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoc3Ry
aXBMZWFkaW5nQW5kVHJhaWxpbmdIVE1MU3BhY2VzKGltYWdlVVJMKSk7Ci0gICAgaWYgKGZ1bGxV
UkwuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm47Ci0KICAgICAvLyBQdXQgaW1nIHRhZyBvbiB0
aGUgY2xpcGJvYXJkIHJlZmVyZW5jaW5nIHRoZSBpbWFnZQotICAgIG1fZGF0YU9iamVjdC0+c2V0
RGF0YShtaW1lVHlwZVRleHRIVE1MLCBpbWFnZVRvTWFya3VwKGZ1bGxVUkwsIGVsZW1lbnQpKTsK
KyAgICBtX2RhdGFPYmplY3QtPnNldERhdGEobWltZVR5cGVUZXh0SFRNTCwgY3JlYXRlTWFya3Vw
KGVsZW1lbnQsIEluY2x1ZGVOb2RlLCAwLCBSZXNvbHZlQWxsVVJMcykpOwogfQogCiB2b2lkIENs
aXBib2FyZENocm9taXVtOjp3cml0ZVVSTChjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYg
dGl0bGUsIEZyYW1lKikKQEAgLTI5OSw3ICsyOTEsNyBAQCB2b2lkIENsaXBib2FyZENocm9taXVt
Ojp3cml0ZVJhbmdlKFJhbmdlKiBzZWxlY3RlZFJhbmdlLCBGcmFtZSogZnJhbWUpCiAgICAgaWYg
KCFtX2RhdGFPYmplY3QpCiAgICAgICAgICByZXR1cm47CiAKLSAgICBtX2RhdGFPYmplY3QtPnNl
dERhdGEobWltZVR5cGVUZXh0SFRNTCwgY3JlYXRlTWFya3VwKHNlbGVjdGVkUmFuZ2UsIDAsIEFu
bm90YXRlRm9ySW50ZXJjaGFuZ2UsIGZhbHNlLCBBYnNvbHV0ZVVSTHMpKTsKKyAgICBtX2RhdGFP
YmplY3QtPnNldERhdGEobWltZVR5cGVUZXh0SFRNTCwgY3JlYXRlTWFya3VwKHNlbGVjdGVkUmFu
Z2UsIDAsIEFubm90YXRlRm9ySW50ZXJjaGFuZ2UsIGZhbHNlLCBSZXNvbHZlTm9uTG9jYWxVUkxz
KSk7CiAgICAgbV9kYXRhT2JqZWN0LT5zZXRIdG1sQmFzZVVybChmcmFtZS0+ZG9jdW1lbnQoKS0+
dXJsKCkpOwogCiAgICAgU3RyaW5nIHN0ciA9IGZyYW1lLT5lZGl0b3IoKS0+c2VsZWN0ZWRUZXh0
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QYXN0ZWJv
YXJkQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUGFzdGVi
b2FyZENocm9taXVtLmNwcAppbmRleCBhOTBhNTY3OGMxNDg2MDhhZmE4MWFiYjc1ZmUwMmI0MDVk
ZDJlMjE4Li5kYmZhYTNiMTZjMDhhZTdjMGMyMTBlYWYyNzQ2NzJjZDA4MWQyY2I4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QYXN0ZWJvYXJkQ2hyb21pdW0u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1Bhc3RlYm9hcmRDaHJv
bWl1bS5jcHAKQEAgLTgyLDcgKzgyLDcgQEAgdm9pZCBQYXN0ZWJvYXJkOjpzZXRTZWxlY3Rpb25N
b2RlKGJvb2wgc2VsZWN0aW9uTW9kZSkKIAogdm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVNlbGVjdGlv
bihSYW5nZSogc2VsZWN0ZWRSYW5nZSwgYm9vbCBjYW5TbWFydENvcHlPckRlbGV0ZSwgRnJhbWUq
IGZyYW1lKQogewotICAgIFN0cmluZyBodG1sID0gY3JlYXRlTWFya3VwKHNlbGVjdGVkUmFuZ2Us
IDAsIEFubm90YXRlRm9ySW50ZXJjaGFuZ2UsIGZhbHNlLCBBYnNvbHV0ZVVSTHMpOworICAgIFN0
cmluZyBodG1sID0gY3JlYXRlTWFya3VwKHNlbGVjdGVkUmFuZ2UsIDAsIEFubm90YXRlRm9ySW50
ZXJjaGFuZ2UsIGZhbHNlLCBSZXNvbHZlTm9uTG9jYWxVUkxzKTsKICAgICBFeGNlcHRpb25Db2Rl
IGVjID0gMDsKICAgICBLVVJMIHVybCA9IHNlbGVjdGVkUmFuZ2UtPnN0YXJ0Q29udGFpbmVyKGVj
KS0+ZG9jdW1lbnQoKS0+dXJsKCk7CiAgICAgU3RyaW5nIHBsYWluVGV4dCA9IGZyYW1lLT5lZGl0
b3IoKS0+c2VsZWN0ZWRUZXh0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvQ2xpcGJvYXJkR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9DbGlw
Ym9hcmRHdGsuY3BwCmluZGV4IDFiZjk3OGRkZGZmM2ZkOWMzYzg0NGNkODliZWZlY2Q2YjA5ZmJl
MTYuLjA1MzU2MGY5ZjQwZTk1OWI4MmJjYTg5MmM1NDc5MjY3Y2FlYTQ0ODggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9DbGlwYm9hcmRHdGsuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9DbGlwYm9hcmRHdGsuY3BwCkBAIC0yODMsNyArMjgzLDcg
QEAgc3RhdGljIENhY2hlZEltYWdlKiBnZXRDYWNoZWRJbWFnZShFbGVtZW50KiBlbGVtZW50KQog
dm9pZCBDbGlwYm9hcmRHdGs6OmRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZShFbGVtZW50KiBlbGVt
ZW50LCBjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgbGFiZWwsIEZyYW1lKiBmcmFtZSkK
IHsKICAgICBtX2RhdGFPYmplY3QtPnNldFVSTCh1cmwsIGxhYmVsKTsKLSAgICBtX2RhdGFPYmpl
Y3QtPnNldE1hcmt1cChjcmVhdGVNYXJrdXAoZWxlbWVudCwgSW5jbHVkZU5vZGUsIDAsIEFic29s
dXRlVVJMcykpOworICAgIG1fZGF0YU9iamVjdC0+c2V0TWFya3VwKGNyZWF0ZU1hcmt1cChlbGVt
ZW50LCBJbmNsdWRlTm9kZSwgMCwgUmVzb2x2ZUFsbFVSTHMpKTsKIAogICAgIENhY2hlZEltYWdl
KiBpbWFnZSA9IGdldENhY2hlZEltYWdlKGVsZW1lbnQpOwogICAgIGlmICghaW1hZ2UgfHwgIWlt
YWdlLT5pc0xvYWRlZCgpKQpAQCAtMzA4LDcgKzMwOCw3IEBAIHZvaWQgQ2xpcGJvYXJkR3RrOjp3
cml0ZVJhbmdlKFJhbmdlKiByYW5nZSwgRnJhbWUqIGZyYW1lKQogICAgIEFTU0VSVChyYW5nZSk7
CiAKICAgICBtX2RhdGFPYmplY3QtPnNldFRleHQoZnJhbWUtPmVkaXRvcigpLT5zZWxlY3RlZFRl
eHQoKSk7Ci0gICAgbV9kYXRhT2JqZWN0LT5zZXRNYXJrdXAoY3JlYXRlTWFya3VwKHJhbmdlLCAw
LCBBbm5vdGF0ZUZvckludGVyY2hhbmdlLCBmYWxzZSwgQWJzb2x1dGVVUkxzKSk7CisgICAgbV9k
YXRhT2JqZWN0LT5zZXRNYXJrdXAoY3JlYXRlTWFya3VwKHJhbmdlLCAwLCBBbm5vdGF0ZUZvcklu
dGVyY2hhbmdlLCBmYWxzZSwgUmVzb2x2ZU5vbkxvY2FsVVJMcykpOwogCiAgICAgaWYgKG1fY2xp
cGJvYXJkKQogICAgICAgICBQYXN0ZWJvYXJkSGVscGVyOjpkZWZhdWx0UGFzdGVib2FyZEhlbHBl
cigpLT53cml0ZUNsaXBib2FyZENvbnRlbnRzKG1fY2xpcGJvYXJkKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9EYXRhT2JqZWN0R3RrLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2d0ay9EYXRhT2JqZWN0R3RrLmNwcAppbmRleCAwNWEyZGE5MDA1N2UxMDcy
NjA0MDBmNDYxNDE5MGE2YjYyOWRhN2I1Li5hOWY2NGFmYjU4M2U5YjUyNjBiZGFkMmQwMDM2NjVk
ZDFlYzRhMzZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvRGF0YU9i
amVjdEd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0RhdGFPYmplY3RH
dGsuY3BwCkBAIC00Miw3ICs0Miw3IEBAIFN0cmluZyBEYXRhT2JqZWN0R3RrOjp0ZXh0KCkKIFN0
cmluZyBEYXRhT2JqZWN0R3RrOjptYXJrdXAoKQogewogICAgIGlmIChtX3JhbmdlKQotICAgICAg
ICByZXR1cm4gY3JlYXRlTWFya3VwKG1fcmFuZ2UuZ2V0KCksIDAsIEFubm90YXRlRm9ySW50ZXJj
aGFuZ2UsIGZhbHNlLCBBYnNvbHV0ZVVSTHMpOworICAgICAgICByZXR1cm4gY3JlYXRlTWFya3Vw
KG1fcmFuZ2UuZ2V0KCksIDAsIEFubm90YXRlRm9ySW50ZXJjaGFuZ2UsIGZhbHNlLCBSZXNvbHZl
Tm9uTG9jYWxVUkxzKTsKICAgICByZXR1cm4gbV9tYXJrdXA7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkR3RrLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkR3RrLmNwcAppbmRleCBlMDQ4YjkxYTE4YTMzMTdm
YzY1YThkYzNmMWEzNzE2ZGMxNGViZWUzLi5jYTU4NWQ2OTU0ZjU5MmY5NGZhZmQzOTNjMTE2ZjFl
ZjVkYzlkMDEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGFzdGVi
b2FyZEd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRH
dGsuY3BwCkBAIC02MCw3ICs2MCw3IEBAIHZvaWQgUGFzdGVib2FyZDo6d3JpdGVTZWxlY3Rpb24o
UmFuZ2UqIHNlbGVjdGVkUmFuZ2UsIGJvb2wgY2FuU21hcnRDb3B5T3JEZWxldGUsCiAgICAgR3Rr
Q2xpcGJvYXJkKiBjbGlwYm9hcmQgPSBoZWxwZXItPmdldENsaXBib2FyZChmcmFtZSk7CiAgICAg
RGF0YU9iamVjdEd0ayogZGF0YU9iamVjdCA9IERhdGFPYmplY3RHdGs6OmZvckNsaXBib2FyZChj
bGlwYm9hcmQpOwogICAgIGRhdGFPYmplY3QtPnNldFRleHQoZnJhbWUtPmVkaXRvcigpLT5zZWxl
Y3RlZFRleHQoKSk7Ci0gICAgZGF0YU9iamVjdC0+c2V0TWFya3VwKGNyZWF0ZU1hcmt1cChzZWxl
Y3RlZFJhbmdlLCAwLCBBbm5vdGF0ZUZvckludGVyY2hhbmdlLCBmYWxzZSwgQWJzb2x1dGVVUkxz
KSk7CisgICAgZGF0YU9iamVjdC0+c2V0TWFya3VwKGNyZWF0ZU1hcmt1cChzZWxlY3RlZFJhbmdl
LCAwLCBBbm5vdGF0ZUZvckludGVyY2hhbmdlLCBmYWxzZSwgUmVzb2x2ZU5vbkxvY2FsVVJMcykp
OwogICAgIGhlbHBlci0+d3JpdGVDbGlwYm9hcmRDb250ZW50cyhjbGlwYm9hcmQsIGNhblNtYXJ0
Q29weU9yRGVsZXRlID8gUGFzdGVib2FyZEhlbHBlcjo6SW5jbHVkZVNtYXJ0UGFzdGUgOiBQYXN0
ZWJvYXJkSGVscGVyOjpEb05vdEluY2x1ZGVTbWFydFBhc3RlKTsKIH0KIApAQCAtMTIyLDExICsx
MjIsNyBAQCB2b2lkIFBhc3RlYm9hcmQ6OndyaXRlSW1hZ2UoTm9kZSogbm9kZSwgY29uc3QgS1VS
TCYsIGNvbnN0IFN0cmluZyYgdGl0bGUpCiAgICAgaWYgKCF1cmwuaXNFbXB0eSgpKSB7CiAgICAg
ICAgIGRhdGFPYmplY3QtPnNldFVSTCh1cmwsIHRpdGxlKTsKIAotICAgICAgICAvLyBUaGlzIGlt
YWdlIG1heSBiZSBhbiBTVkcsIGVtYmVkLCBvciBvYmplY3QgdGFnLCBzbyBkbyBub3Qgd3JpdGUg
dGhlIGltYWdlCi0gICAgICAgIC8vIHRhZyBtYXJrdXAgaW4gdGhvc2UgY2FzZXMuIEV2ZW50dWFs
bHkgd2UgbWF5IHdhbnQgdG8gc3VwcG9ydCBwYXNzaW5nIG1hcmt1cAotICAgICAgICAvLyBmb3Ig
dGhlc2UgdGFnIHR5cGVzLgotICAgICAgICBpZiAobm9kZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6
OmltZ1RhZykpCi0gICAgICAgICAgICBkYXRhT2JqZWN0LT5zZXRNYXJrdXAoaW1hZ2VUb01hcmt1
cCh1cmwsIHN0YXRpY19jYXN0PEVsZW1lbnQqPihub2RlKSkpOworICAgICAgICBkYXRhT2JqZWN0
LT5zZXRNYXJrdXAoY3JlYXRlTWFya3VwKHN0YXRpY19jYXN0PEVsZW1lbnQqPihub2RlKSwgSW5j
bHVkZU5vZGUsIDAsIFJlc29sdmVBbGxVUkxzKSk7CiAgICAgfQogCiAgICAgR1JlZlB0cjxHZGtQ
aXhidWY+IHBpeGJ1ZiA9IGFkb3B0R1JlZihpbWFnZS0+Z2V0R2RrUGl4YnVmKCkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaGFpa3UvUGFzdGVib2FyZEhhaWt1LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2hhaWt1L1Bhc3RlYm9hcmRIYWlrdS5jcHAKaW5kZXgg
ZDdhN2UwODk0ZTZkMjBiNzk2YWUwZDBkNWRjOWFjNTE2ODlkZDgyNy4uMzVhNDY0ZWYxZWMwZDAw
ZDRhOGY1OTY4NDQ1MmRjMGE2NTI2MmZjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaGFpa3UvUGFzdGVib2FyZEhhaWt1LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9oYWlrdS9QYXN0ZWJvYXJkSGFpa3UuY3BwCkBAIC0xMDIsNyArMTAyLDcgQEAgdm9pZCBQ
YXN0ZWJvYXJkOjp3cml0ZVNlbGVjdGlvbihSYW5nZSogc2VsZWN0ZWRSYW5nZSwgYm9vbCBjYW5T
bWFydENvcHlPckRlbGV0ZSwKIAogICAgIGRhdGEtPkFkZERhdGEoInRleHQvcGxhaW4iLCBCX01J
TUVfVFlQRSwgc3RyaW5nLlN0cmluZygpLCBzdHJpbmcuTGVuZ3RoKCkpOwogCi0gICAgQlN0cmlu
ZyBtYXJrdXBTdHJpbmcoY3JlYXRlTWFya3VwKHNlbGVjdGVkUmFuZ2UsIDAsIEFubm90YXRlRm9y
SW50ZXJjaGFuZ2UsIGZhbHNlLCBBYnNvbHV0ZVVSTHMpKTsKKyAgICBCU3RyaW5nIG1hcmt1cFN0
cmluZyhjcmVhdGVNYXJrdXAoc2VsZWN0ZWRSYW5nZSwgMCwgQW5ub3RhdGVGb3JJbnRlcmNoYW5n
ZSwgZmFsc2UsIFJlc29sdmVOb25Mb2NhbFVSTHMpKTsKICAgICBkYXRhLT5BZGREYXRhKCJ0ZXh0
L2h0bWwiLCBCX01JTUVfVFlQRSwgbWFya3VwU3RyaW5nLlN0cmluZygpLCBtYXJrdXBTdHJpbmcu
TGVuZ3RoKCkpOwogCiAgICAgYmVfY2xpcGJvYXJkLT5Db21taXQoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0NsaXBib2FyZFF0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3F0L0NsaXBib2FyZFF0LmNwcAppbmRleCBlNDNjNjcwYzE1OGI5MTJiOGE4ZWYy
ZmNkZjcyZWYxMTFkYmQ1OTM3Li5mMjVkODIwZTE1YzEyMDg3MjBkZjliZTBiMTc5YTM4NjQ4ZGY5
NTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9DbGlwYm9hcmRRdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvQ2xpcGJvYXJkUXQuY3BwCkBAIC0y
ODgsMjAgKzI4OCwxMiBAQCB2b2lkIENsaXBib2FyZFF0OjpkZWNsYXJlQW5kV3JpdGVEcmFnSW1h
Z2UoRWxlbWVudCogZWxlbWVudCwgY29uc3QgS1VSTCYgdXJsLCBjbwogICAgIGlmIChwaXhtYXAp
CiAgICAgICAgIG1fd3JpdGFibGVEYXRhLT5zZXRJbWFnZURhdGEoKnBpeG1hcCk7CiAKLSAgICBB
dG9taWNTdHJpbmcgaW1hZ2VVUkwgPSBlbGVtZW50LT5nZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpz
cmNBdHRyKTsKLSAgICBpZiAoaW1hZ2VVUkwuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm47Ci0K
LSAgICBLVVJMIGZ1bGxVUkwgPSBmcmFtZS0+ZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoc3RyaXBM
ZWFkaW5nQW5kVHJhaWxpbmdIVE1MU3BhY2VzKGltYWdlVVJMKSk7Ci0gICAgaWYgKGZ1bGxVUkwu
aXNFbXB0eSgpKQotICAgICAgICByZXR1cm47Ci0KICAgICBRTGlzdDxRVXJsPiB1cmxzOwogICAg
IHVybHMuYXBwZW5kKHVybCk7CiAKICAgICBtX3dyaXRhYmxlRGF0YS0+c2V0VGV4dCh0aXRsZSk7
CiAgICAgbV93cml0YWJsZURhdGEtPnNldFVybHModXJscyk7Ci0gICAgbV93cml0YWJsZURhdGEt
PnNldEh0bWwoaW1hZ2VUb01hcmt1cChmdWxsVVJMLCBlbGVtZW50KSk7CisgICAgbV93cml0YWJs
ZURhdGEtPnNldEh0bWwoY3JlYXRlTWFya3VwKGVsZW1lbnQsIEluY2x1ZGVOb2RlLCAwLCBSZXNv
bHZlQWxsVVJMcykpOwogI2lmbmRlZiBRVF9OT19DTElQQk9BUkQKICAgICBpZiAoaXNGb3JDb3B5
QW5kUGFzdGUoKSkKICAgICAgICAgUUFwcGxpY2F0aW9uOjpjbGlwYm9hcmQoKS0+c2V0TWltZURh
dGEobV93cml0YWJsZURhdGEpOwpAQCAtMzM0LDcgKzMyNiw3IEBAIHZvaWQgQ2xpcGJvYXJkUXQ6
OndyaXRlUmFuZ2UoUmFuZ2UqIHJhbmdlLCBGcmFtZSogZnJhbWUpCiAgICAgUVN0cmluZyB0ZXh0
ID0gZnJhbWUtPmVkaXRvcigpLT5zZWxlY3RlZFRleHQoKTsKICAgICB0ZXh0LnJlcGxhY2UoUUNo
YXIoMHhhMCksIFFMYXRpbjFDaGFyKCcgJykpOwogICAgIG1fd3JpdGFibGVEYXRhLT5zZXRUZXh0
KHRleHQpOwotICAgIG1fd3JpdGFibGVEYXRhLT5zZXRIdG1sKGNyZWF0ZU1hcmt1cChyYW5nZSwg
MCwgQW5ub3RhdGVGb3JJbnRlcmNoYW5nZSwgZmFsc2UsIEFic29sdXRlVVJMcykpOworICAgIG1f
d3JpdGFibGVEYXRhLT5zZXRIdG1sKGNyZWF0ZU1hcmt1cChyYW5nZSwgMCwgQW5ub3RhdGVGb3JJ
bnRlcmNoYW5nZSwgZmFsc2UsIFJlc29sdmVOb25Mb2NhbFVSTHMpKTsKICNpZm5kZWYgUVRfTk9f
Q0xJUEJPQVJECiAgICAgaWYgKGlzRm9yQ29weUFuZFBhc3RlKCkpCiAgICAgICAgIFFBcHBsaWNh
dGlvbjo6Y2xpcGJvYXJkKCktPnNldE1pbWVEYXRhKG1fd3JpdGFibGVEYXRhKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1Bhc3RlYm9hcmRRdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9xdC9QYXN0ZWJvYXJkUXQuY3BwCmluZGV4IDJmMmIxYmZkM2QxZDQ3
NGZkYWU2NTM5NzU4YjI0ZmMwYmYyMTU2ZDkuLjg4MTE2Y2I2YzRkOTBkNjQ4MDM1NjJiZjdjOTk5
MDE2NmNlY2IxODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1Bhc3Rl
Ym9hcmRRdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUGFzdGVib2FyZFF0
LmNwcApAQCAtNjQsNyArNjQsNyBAQCB2b2lkIFBhc3RlYm9hcmQ6OndyaXRlU2VsZWN0aW9uKFJh
bmdlKiBzZWxlY3RlZFJhbmdlLCBib29sIGNhblNtYXJ0Q29weU9yRGVsZXRlLAogICAgIHRleHQu
cmVwbGFjZShRQ2hhcigweGEwKSwgUUxhdGluMUNoYXIoJyAnKSk7CiAgICAgbWQtPnNldFRleHQo
dGV4dCk7CiAKLSAgICBRU3RyaW5nIG1hcmt1cCA9IGNyZWF0ZU1hcmt1cChzZWxlY3RlZFJhbmdl
LCAwLCBBbm5vdGF0ZUZvckludGVyY2hhbmdlLCBmYWxzZSwgQWJzb2x1dGVVUkxzKTsKKyAgICBR
U3RyaW5nIG1hcmt1cCA9IGNyZWF0ZU1hcmt1cChzZWxlY3RlZFJhbmdlLCAwLCBBbm5vdGF0ZUZv
ckludGVyY2hhbmdlLCBmYWxzZSwgUmVzb2x2ZU5vbkxvY2FsVVJMcyk7CiAjaWZkZWYgUV9PU19N
QUMKICAgICBtYXJrdXAucHJlcGVuZChRTGF0aW4xU3RyaW5nKCI8aHRtbD48aGVhZD48bWV0YSBo
dHRwLWVxdWl2PVwiQ29udGVudC1UeXBlXCIgY29udGVudD1cInRleHQvaHRtbDsgY2hhcnNldD11
dGYtOFwiIC8+PC9oZWFkPjxib2R5PiIpKTsKICAgICBtYXJrdXAuYXBwZW5kKFFMYXRpbjFTdHJp
bmcoIjwvYm9keT48L2h0bWw+IikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vd2luL0NsaXBib2FyZFdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xp
cGJvYXJkV2luLmNwcAppbmRleCA5MGM1NTViMzE5NWUyMjVmZDBmNzk1NzYyNGI2ZTczODkwNzk2
ZTdjLi5iZjQwOGQ3OTBmNWViYTZhMzk0ZWQwODMzY2VjYjI1ODgyMTQwOTRhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkV2luLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkV2luLmNwcApAQCAtNjgzLDcgKzY4Myw3
IEBAIHZvaWQgQ2xpcGJvYXJkV2luOjpkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UoRWxlbWVudCog
ZWxlbWVudCwgY29uc3QgS1VSTCYgdXJsLCBjCiAKICAgICAvLyBQdXQgaW1nIHRhZyBvbiB0aGUg
Y2xpcGJvYXJkIHJlZmVyZW5jaW5nIHRoZSBpbWFnZQogICAgIFZlY3RvcjxjaGFyPiBkYXRhOwot
ICAgIG1hcmt1cFRvQ0ZIVE1MKGltYWdlVG9NYXJrdXAoZnVsbFVSTCwgZWxlbWVudCksICIiLCBk
YXRhKTsKKyAgICBtYXJrdXBUb0NGSFRNTChjcmVhdGVNYXJrdXAoZWxlbWVudCwgSW5jbHVkZU5v
ZGUsIDAsIFJlc29sdmVBbGxVUkxzKSwgIiIsIGRhdGEpOwogICAgIG1lZGl1bS5oR2xvYmFsID0g
Y3JlYXRlR2xvYmFsRGF0YShkYXRhKTsKICAgICBpZiAobWVkaXVtLmhHbG9iYWwgJiYgRkFJTEVE
KG1fd3JpdGFibGVEYXRhT2JqZWN0LT5TZXREYXRhKGh0bWxGb3JtYXQoKSwgJm1lZGl1bSwgVFJV
RSkpKQogICAgICAgICA6Okdsb2JhbEZyZWUobWVkaXVtLmhHbG9iYWwpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103485</attachid>
            <date>2011-08-10 07:23:26 -0700</date>
            <delta_ts>2011-08-10 08:27:31 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-58043-20110810162951.patch</filename>
            <type>text/plain</type>
            <size>31511</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkyNzY3KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTggQEAKKzIwMTEtMDgtMTAgIEJlbmphbWlu
IFBvdWxhaW4gIDxiZW5qYW1pbkB3ZWJraXQub3JnPgorCisgICAgICAgIFVuaWZ5IHRoZSB3YXkg
d2UgZ2VuZXJhdGUgSFRNTCBmb3IgYW4gaW1hZ2UgaW4gdGhlIENsaXBib2FyZAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTgwNDMKKworICAgICAgICBS
ZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCisKKyAgICAgICAgVW5pZnkgdGhlIHdheSB3ZSBnZW5l
cmF0ZSB0aGUgbWFya3VwIHdoZW4gZHJhZ2dpbmcgYW5kIGltYWdlLgorCisgICAgICAgIFByZXZp
b3VzbHksIHRoZSBjb2RlIHdhcyB1c2luZyB0aGUgc3BlY2lhbCBmdW5jdGlvbiBpbWFnZVRvTWFy
a3VwKCkgdGhhdCB3YXMKKyAgICAgICAgc3ByZWFkIGZyb20gdGhlIENocm9taXVtIHBvcnQuCisg
ICAgICAgIFRoYXQgZnVuY3Rpb24gaWdub3JlcyBzb21lIGVkZ2UgY2FzZXMgc28gdGhpcyBwYXRj
aCByZXBsYWNlIGl0IGJ5IHRoZQorICAgICAgICBtb3JlIGdlbmVyaWMgTWFya3VwQWNjdW11bGF0
b3IgKHdoaWNoIGlzIGFsc28gdXNlZCBieSB0aGUgb3RoZXIgcGFzdGVib2FyZAorICAgICAgICBh
Y3Rpb25zKS4KKworICAgICAgICBUaGUgTWFya3VwQWNjdW11bGF0b3Igd2FzIG1vZGlmaWVkIGJl
Y2F1c2UgZm9sbG93aW5nIHI2MTE3OCwgdGhlIGxvY2FsIGZpbGVwYXRoCisgICAgICAgIGFyZSB0
cmVhdGVkIGRpZmZlcmVudGx5ICh0aGUgZW51bSB3YXMgY2hhbmdlZCB0byAgbWFrZSB0aGlzIGJl
aGF2aW9yCisgICAgICAgIGV4cGxpY2l0KS4KKworICAgICAgICBUZXN0czogZmFzdC9kcmFnLWFu
ZC1kcm9wL2RyYWctYW5kLWRyb3AtaW1hZ2UtY29udGVudGVkaXRhYmxlLmh0bWwKKyAgICAgICAg
ICAgICAgIGZhc3QvZHJhZy1hbmQtZHJvcC9kcmFnLWFuZC1kcm9wLWlucHV0aW1hZ2UtY29udGVu
dGVkaXRhYmxlLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZHJhZy1hbmQtZHJvcC9kcmFnLWFu
ZC1kcm9wLW9iamVjdGltYWdlLWNvbnRlbnRlZGl0YWJsZS5odG1sCisKKyAgICAgICAgKiBlZGl0
aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1hcmt1cEFjY3Vt
dWxhdG9yOjpNYXJrdXBBY2N1bXVsYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpNYXJrdXBBY2N1
bXVsYXRvcjo6cmVzb2x2ZVVSTElmTmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1hcmt1cEFj
Y3VtdWxhdG9yOjphcHBlbmRBdHRyaWJ1dGUpOgorICAgICAgICAqIGVkaXRpbmcvTWFya3VwQWNj
dW11bGF0b3IuaDoKKyAgICAgICAgKiBlZGl0aW5nL21hcmt1cC5jcHA6CisgICAgICAgICogZWRp
dGluZy9tYXJrdXAuaDoKKyAgICAgICAgKiBwYWdlL1BhZ2VTZXJpYWxpemVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNlcmlhbGl6ZXJNYXJrdXBBY2N1bXVsYXRvcjo6U2VyaWFsaXplck1hcmt1
cEFjY3VtdWxhdG9yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9hcmRDaHJv
bWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9hcmRDaHJvbWl1bTo6ZGVjbGFyZUFu
ZFdyaXRlRHJhZ0ltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNsaXBib2FyZENocm9taXVtOjp3
cml0ZVJhbmdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9QYXN0ZWJvYXJkQ2hyb21p
dW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6d3JpdGVTZWxlY3Rpb24pOgor
ICAgICAgICAqIHBsYXRmb3JtL2d0ay9DbGlwYm9hcmRHdGsuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q2xpcGJvYXJkR3RrOjpkZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2UpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2xpcGJvYXJkR3RrOjp3cml0ZVJhbmdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsv
RGF0YU9iamVjdEd0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRhT2JqZWN0R3RrOjptYXJr
dXApOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkR3RrLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlBhc3RlYm9hcmQ6OndyaXRlU2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OlBhc3RlYm9hcmQ6OndyaXRlSW1hZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL2hhaWt1L1Bhc3Rl
Ym9hcmRIYWlrdS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjp3cml0ZVNlbGVj
dGlvbik6CisgICAgICAgICogcGxhdGZvcm0vcXQvQ2xpcGJvYXJkUXQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q2xpcGJvYXJkUXQ6OmRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZSk6CisgICAgICAg
IChXZWJDb3JlOjpDbGlwYm9hcmRRdDo6d3JpdGVSYW5nZSk6CisgICAgICAgICogcGxhdGZvcm0v
cXQvUGFzdGVib2FyZFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OndyaXRl
U2VsZWN0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vQ2xpcGJvYXJkV2luLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNsaXBib2FyZFdpbjo6ZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlKToK
KwogMjAxMS0wOC0xMCAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGdvb2dsZS5jb20+CiAKICAg
ICAgICAgV2ViIEluc3BlY3RvcjogQ1NTIGVkaXRpbmcgZmlsZSBjb250YWluaW5nIHRhYnMgbGVh
ZHMgdG8gdGhlIHdob2xlIGZpbGUgY2hhbmdlIGluIHJldmlzaW9uIGhpc3RvcnkuCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNwcAkocmV2aXNpb24g
OTI3NjcpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNzMsMTAgKzczLDEwIEBAIHZvaWQgYXBwZW5kQ2hhcmFjdGVyc1Jl
cGxhY2luZ0VudGl0aWVzKFYKICAgICBvdXQuYXBwZW5kKGNvbnRlbnQgKyBwb3NpdGlvbkFmdGVy
TGFzdEVudGl0eSwgbGVuZ3RoIC0gcG9zaXRpb25BZnRlckxhc3RFbnRpdHkpOwogfQogCi1NYXJr
dXBBY2N1bXVsYXRvcjo6TWFya3VwQWNjdW11bGF0b3IoVmVjdG9yPE5vZGUqPiogbm9kZXMsIEVB
YnNvbHV0ZVVSTHMgc2hvdWxkUmVzb2x2ZVVSTHMsIGNvbnN0IFJhbmdlKiByYW5nZSkKK01hcmt1
cEFjY3VtdWxhdG9yOjpNYXJrdXBBY2N1bXVsYXRvcihWZWN0b3I8Tm9kZSo+KiBub2RlcywgRUFi
c29sdXRlVVJMcyByZXNvbHZlVXJsc01ldGhvZCwgY29uc3QgUmFuZ2UqIHJhbmdlKQogICAgIDog
bV9ub2Rlcyhub2RlcykKICAgICAsIG1fcmFuZ2UocmFuZ2UpCi0gICAgLCBtX3Nob3VsZFJlc29s
dmVVUkxzKHNob3VsZFJlc29sdmVVUkxzKQorICAgICwgbV9yZXNvbHZlVVJMc01ldGhvZChyZXNv
bHZlVXJsc01ldGhvZCkKIHsKIH0KIApAQCAtMTE0LDYgKzExNCwyMyBAQCB2b2lkIE1hcmt1cEFj
Y3VtdWxhdG9yOjpzZXJpYWxpemVOb2Rlc1dpCiAgICAgICAgIGFwcGVuZEVuZFRhZyhub2RlKTsK
IH0KIAorU3RyaW5nIE1hcmt1cEFjY3VtdWxhdG9yOjpyZXNvbHZlVVJMSWZOZWVkZWQoY29uc3Qg
RWxlbWVudCogZWxlbWVudCwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpIGNvbnN0Cit7CisgICAg
c3dpdGNoIChtX3Jlc29sdmVVUkxzTWV0aG9kKSB7CisgICAgY2FzZSBSZXNvbHZlQWxsVVJMczoK
KyAgICAgICAgcmV0dXJuIGVsZW1lbnQtPmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKHVybFN0cmlu
Zykuc3RyaW5nKCk7CisKKyAgICBjYXNlIFJlc29sdmVOb25Mb2NhbFVSTHM6CisgICAgICAgIGlm
ICghZWxlbWVudC0+ZG9jdW1lbnQoKS0+dXJsKCkuaXNMb2NhbEZpbGUoKSkKKyAgICAgICAgICAg
IHJldHVybiBlbGVtZW50LT5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTCh1cmxTdHJpbmcpLnN0cmlu
ZygpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgRG9Ob3RSZXNvbHZlVVJMczoKKyAgICAg
ICAgYnJlYWs7CisgICAgfQorICAgIHJldHVybiB1cmxTdHJpbmc7Cit9CisKIHZvaWQgTWFya3Vw
QWNjdW11bGF0b3I6OmFwcGVuZFN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKIHsKICAgICBt
X3N1Y2NlZWRpbmdNYXJrdXAuYXBwZW5kKHN0cmluZyk7CkBAIC0zNzEsMTQgKzM4OCw5IEBAIHZv
aWQgTWFya3VwQWNjdW11bGF0b3I6OmFwcGVuZEF0dHJpYnV0ZSgKIAogICAgIG91dC5hcHBlbmQo
Jz0nKTsKIAotICAgIGlmIChlbGVtZW50LT5pc1VSTEF0dHJpYnV0ZShjb25zdF9jYXN0PEF0dHJp
YnV0ZSo+KCZhdHRyaWJ1dGUpKSkgewotICAgICAgICAvLyBXZSBkb24ndCB3YW50IHRvIGNvbXBs
ZXRlIGZpbGU6Ly8vIFVSTHMgYmVjYXVzZSBpdCBtYXkgY29udGFpbiBzZW5zaXRpdmUgaW5mb3Jt
YXRpb24KLSAgICAgICAgLy8gYWJvdXQgdGhlIHVzZXIncyBzeXN0ZW0uCi0gICAgICAgIGlmIChz
aG91bGRSZXNvbHZlVVJMcygpICYmICFlbGVtZW50LT5kb2N1bWVudCgpLT51cmwoKS5pc0xvY2Fs
RmlsZSgpKQotICAgICAgICAgICAgYXBwZW5kUXVvdGVkVVJMQXR0cmlidXRlVmFsdWUob3V0LCBl
bGVtZW50LT5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTChhdHRyaWJ1dGUudmFsdWUoKSkuc3RyaW5n
KCkpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBhcHBlbmRRdW90ZWRVUkxBdHRyaWJ1dGVW
YWx1ZShvdXQsIGF0dHJpYnV0ZS52YWx1ZSgpKTsgCi0gICAgfSBlbHNlIHsKKyAgICBpZiAoZWxl
bWVudC0+aXNVUkxBdHRyaWJ1dGUoY29uc3RfY2FzdDxBdHRyaWJ1dGUqPigmYXR0cmlidXRlKSkp
CisgICAgICAgIGFwcGVuZFF1b3RlZFVSTEF0dHJpYnV0ZVZhbHVlKG91dCwgcmVzb2x2ZVVSTElm
TmVlZGVkKGVsZW1lbnQsIGF0dHJpYnV0ZS52YWx1ZSgpKSk7CisgICAgZWxzZSB7CiAgICAgICAg
IG91dC5hcHBlbmQoJ1wiJyk7CiAgICAgICAgIGFwcGVuZEF0dHJpYnV0ZVZhbHVlKG91dCwgYXR0
cmlidXRlLnZhbHVlKCksIGRvY3VtZW50SXNIVE1MKTsKICAgICAgICAgb3V0LmFwcGVuZCgnXCIn
KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvTWFya3VwQWNjdW11bGF0b3IuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmgJKHJl
dmlzaW9uIDkyNzY3KQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1bXVsYXRv
ci5oCSh3b3JraW5nIGNvcHkpCkBAIC02Niw3ICs2Niw3IEBAIHN0cnVjdCBFbnRpdHlEZXNjcmlw
dGlvbiB7CiAvLyBGSVhNRTogTm9uY29weWFibGU/CiBjbGFzcyBNYXJrdXBBY2N1bXVsYXRvciB7
CiBwdWJsaWM6Ci0gICAgTWFya3VwQWNjdW11bGF0b3IoVmVjdG9yPE5vZGUqPiogbm9kZXMsIEVB
YnNvbHV0ZVVSTHMgc2hvdWxkUmVzb2x2ZVVSTHMsIGNvbnN0IFJhbmdlKiByYW5nZSA9IDApOwor
ICAgIE1hcmt1cEFjY3VtdWxhdG9yKFZlY3RvcjxOb2RlKj4qLCBFQWJzb2x1dGVVUkxzIHJlc29s
dmVVcmxzTWV0aG9kLCBjb25zdCBSYW5nZSogPSAwKTsKICAgICB2aXJ0dWFsIH5NYXJrdXBBY2N1
bXVsYXRvcigpOwogCiAgICAgU3RyaW5nIHNlcmlhbGl6ZU5vZGVzKE5vZGUqIG5vZGUsIE5vZGUq
IG5vZGVUb1NraXAsIEVDaGlsZHJlbk9ubHkgY2hpbGRyZW5Pbmx5KTsKQEAgLTEwMCwxNiArMTAw
LDE1IEBAIHByb3RlY3RlZDoKICAgICBib29sIGVsZW1lbnRDYW5ub3RIYXZlRW5kVGFnKGNvbnN0
IE5vZGUqIG5vZGUpOwogICAgIHZvaWQgYXBwZW5kRW5kTWFya3VwKFZlY3RvcjxVQ2hhcj4mIHJl
c3VsdCwgY29uc3QgTm9kZSopOwogCi0gICAgYm9vbCBzaG91bGRSZXNvbHZlVVJMcygpIHsgcmV0
dXJuIG1fc2hvdWxkUmVzb2x2ZVVSTHMgPT0gQWJzb2x1dGVVUkxzOyB9Ci0KICAgICBWZWN0b3I8
Tm9kZSo+KiBjb25zdCBtX25vZGVzOwogICAgIGNvbnN0IFJhbmdlKiBjb25zdCBtX3JhbmdlOwog
CiBwcml2YXRlOgorICAgIFN0cmluZyByZXNvbHZlVVJMSWZOZWVkZWQoY29uc3QgRWxlbWVudCos
IGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nKSBjb25zdDsKICAgICB2b2lkIHNlcmlhbGl6ZU5vZGVz
V2l0aE5hbWVzcGFjZXMoTm9kZSosIE5vZGUqIG5vZGVUb1NraXAsIEVDaGlsZHJlbk9ubHksIGNv
bnN0IE5hbWVzcGFjZXMqKTsKIAogICAgIFZlY3RvcjxTdHJpbmc+IG1fc3VjY2VlZGluZ01hcmt1
cDsKLSAgICBjb25zdCBib29sIG1fc2hvdWxkUmVzb2x2ZVVSTHM7CisgICAgY29uc3QgRUFic29s
dXRlVVJMcyBtX3Jlc29sdmVVUkxzTWV0aG9kOwogfTsKIAogLy8gRklYTUU6IFRoaXMgbWV0aG9k
IHNob3VsZCBiZSBpbnRlZ3JhdGVkIHdpdGggTWFya3VwQWNjdW11bGF0b3IuCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvZWRpdGluZy9tYXJrdXAuY3BwCShyZXZpc2lvbiA5Mjc2NykKKysrIFNvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvbWFya3VwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODU0LDI4ICs4NTQsNCBAQCBT
dHJpbmcgdXJsVG9NYXJrdXAoY29uc3QgS1VSTCYgdXJsLCBjb25zCiAgICAgcmV0dXJuIFN0cmlu
Zzo6YWRvcHQobWFya3VwKTsKIH0KIAotU3RyaW5nIGltYWdlVG9NYXJrdXAoY29uc3QgS1VSTCYg
dXJsLCBFbGVtZW50KiBlbGVtZW50KQotewotICAgIFZlY3RvcjxVQ2hhcj4gbWFya3VwOwotICAg
IGFwcGVuZChtYXJrdXAsICI8aW1nIHNyYz1cIiIpOwotICAgIGFwcGVuZChtYXJrdXAsIHVybC5z
dHJpbmcoKSk7Ci0gICAgYXBwZW5kKG1hcmt1cCwgIlwiIik7Ci0KLSAgICBOYW1lZE5vZGVNYXAq
IGF0dHJzID0gZWxlbWVudC0+YXR0cmlidXRlcygpOwotICAgIHVuc2lnbmVkIGxlbmd0aCA9IGF0
dHJzLT5sZW5ndGgoKTsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kp
IHsKLSAgICAgICAgQXR0cmlidXRlKiBhdHRyID0gYXR0cnMtPmF0dHJpYnV0ZUl0ZW0oaSk7Ci0g
ICAgICAgIGlmIChhdHRyLT5sb2NhbE5hbWUoKSA9PSAic3JjIikKLSAgICAgICAgICAgIGNvbnRp
bnVlOwotICAgICAgICBhcHBlbmQobWFya3VwLCAiICIpOwotICAgICAgICBhcHBlbmQobWFya3Vw
LCBhdHRyLT5sb2NhbE5hbWUoKSk7Ci0gICAgICAgIGFwcGVuZChtYXJrdXAsICI9XCIiKTsKLSAg
ICAgICAgYXBwZW5kQ2hhcmFjdGVyc1JlcGxhY2luZ0VudGl0aWVzKG1hcmt1cCwgYXR0ci0+dmFs
dWUoKS5jaGFyYWN0ZXJzKCksIGF0dHItPnZhbHVlKCkubGVuZ3RoKCksIEVudGl0eU1hc2tJbkF0
dHJpYnV0ZVZhbHVlKTsKLSAgICAgICAgYXBwZW5kKG1hcmt1cCwgIlwiIik7Ci0gICAgfQotCi0g
ICAgYXBwZW5kKG1hcmt1cCwgIi8+Iik7Ci0gICAgcmV0dXJuIFN0cmluZzo6YWRvcHQobWFya3Vw
KTsKLX0KLQogfQpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5oCShyZXZpc2lvbiA5Mjc2NykK
KysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmgJKHdvcmtpbmcgY29weSkKQEAgLTQx
LDcgKzQxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIFJhbmdlOwogCiAgICAg
ZW51bSBFQ2hpbGRyZW5Pbmx5IHsgSW5jbHVkZU5vZGUsIENoaWxkcmVuT25seSB9OwotICAgIGVu
dW0gRUFic29sdXRlVVJMcyB7IERvTm90UmVzb2x2ZVVSTHMsIEFic29sdXRlVVJMcyB9OworICAg
IGVudW0gRUFic29sdXRlVVJMcyB7IERvTm90UmVzb2x2ZVVSTHMsIFJlc29sdmVBbGxVUkxzLCBS
ZXNvbHZlTm9uTG9jYWxVUkxzIH07CiAKICAgICBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+
IGNyZWF0ZUZyYWdtZW50RnJvbVRleHQoUmFuZ2UqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgdGV4
dCk7CiAgICAgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBjcmVhdGVGcmFnbWVudEZyb21N
YXJrdXAoRG9jdW1lbnQqLCBjb25zdCBTdHJpbmcmIG1hcmt1cCwgY29uc3QgU3RyaW5nJiBiYXNl
VVJMLCBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24gPSBGcmFnbWVudFNjcmlwdGluZ0FsbG93
ZWQpOwpAQCAtNTcsNyArNTcsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgU3RyaW5nIGNy
ZWF0ZUZ1bGxNYXJrdXAoY29uc3QgUmFuZ2UqKTsKIAogICAgIFN0cmluZyB1cmxUb01hcmt1cChj
b25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiB0aXRsZSk7Ci0gICAgU3RyaW5nIGltYWdlVG9NYXJr
dXAoY29uc3QgS1VSTCYsIEVsZW1lbnQqKTsKIH0KIAogI2VuZGlmIC8vIG1hcmt1cF9oCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmNwcAkocmV2aXNpb24gOTI3NjcpCisr
KyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTA2LDggKzEwNiw5IEBAIHByaXZhdGU6CiAgICAgRG9jdW1lbnQqIG1fZG9jdW1lbnQ7CiB9
OwogCisvLyBGSVhNRTogc2hvdWxkIHRoYXQgcmVhbGx5IHVzZSBSZXNvbHZlTm9uTG9jYWxVUkxz
PwogU2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yOjpTZXJpYWxpemVyTWFya3VwQWNjdW11bGF0
b3IoUGFnZVNlcmlhbGl6ZXIqIHNlcmlhbGl6ZXIsIERvY3VtZW50KiBkb2N1bWVudCwgVmVjdG9y
PE5vZGUqPiogbm9kZXMpCi0gICAgOiBNYXJrdXBBY2N1bXVsYXRvcihub2RlcywgQWJzb2x1dGVV
UkxzKQorICAgIDogTWFya3VwQWNjdW11bGF0b3Iobm9kZXMsIFJlc29sdmVOb25Mb2NhbFVSTHMp
CiAgICAgLCBtX3NlcmlhbGl6ZXIoc2VyaWFsaXplcikKICAgICAsIG1fZG9jdW1lbnQoZG9jdW1l
bnQpCiB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9hcmRD
aHJvbWl1bS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21p
dW0vQ2xpcGJvYXJkQ2hyb21pdW0uY3BwCShyZXZpc2lvbiA5Mjc2NykKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9taXVtLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjY1LDE2ICsyNjUsOCBAQCB2b2lkIENsaXBib2FyZENocm9taXVtOjpkZWNsYXJlQW5k
V3JpdGVECiAgICAgLy8gV3JpdGUgdGhlIGJ5dGVzIGluIHRoZSBpbWFnZSB0byB0aGUgZmlsZSBm
b3JtYXQuCiAgICAgd3JpdGVJbWFnZVRvRGF0YU9iamVjdChtX2RhdGFPYmplY3QuZ2V0KCksIGVs
ZW1lbnQsIHVybCk7CiAKLSAgICBBdG9taWNTdHJpbmcgaW1hZ2VVUkwgPSBlbGVtZW50LT5nZXRB
dHRyaWJ1dGUoc3JjQXR0cik7Ci0gICAgaWYgKGltYWdlVVJMLmlzRW1wdHkoKSkKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgS1VSTCBmdWxsVVJMID0gZnJhbWUtPmRvY3VtZW50KCktPmNvbXBsZXRl
VVJMKHN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRNTFNwYWNlcyhpbWFnZVVSTCkpOwotICAgIGlm
IChmdWxsVVJMLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgLy8gUHV0IGltZyB0
YWcgb24gdGhlIGNsaXBib2FyZCByZWZlcmVuY2luZyB0aGUgaW1hZ2UKLSAgICBtX2RhdGFPYmpl
Y3QtPnNldERhdGEobWltZVR5cGVUZXh0SFRNTCwgaW1hZ2VUb01hcmt1cChmdWxsVVJMLCBlbGVt
ZW50KSk7CisgICAgbV9kYXRhT2JqZWN0LT5zZXREYXRhKG1pbWVUeXBlVGV4dEhUTUwsIGNyZWF0
ZU1hcmt1cChlbGVtZW50LCBJbmNsdWRlTm9kZSwgMCwgUmVzb2x2ZUFsbFVSTHMpKTsKIH0KIAog
dm9pZCBDbGlwYm9hcmRDaHJvbWl1bTo6d3JpdGVVUkwoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBT
dHJpbmcmIHRpdGxlLCBGcmFtZSopCkBAIC0yOTksNyArMjkxLDcgQEAgdm9pZCBDbGlwYm9hcmRD
aHJvbWl1bTo6d3JpdGVSYW5nZShSYW5nZQogICAgIGlmICghbV9kYXRhT2JqZWN0KQogICAgICAg
ICAgcmV0dXJuOwogCi0gICAgbV9kYXRhT2JqZWN0LT5zZXREYXRhKG1pbWVUeXBlVGV4dEhUTUws
IGNyZWF0ZU1hcmt1cChzZWxlY3RlZFJhbmdlLCAwLCBBbm5vdGF0ZUZvckludGVyY2hhbmdlLCBm
YWxzZSwgQWJzb2x1dGVVUkxzKSk7CisgICAgbV9kYXRhT2JqZWN0LT5zZXREYXRhKG1pbWVUeXBl
VGV4dEhUTUwsIGNyZWF0ZU1hcmt1cChzZWxlY3RlZFJhbmdlLCAwLCBBbm5vdGF0ZUZvckludGVy
Y2hhbmdlLCBmYWxzZSwgUmVzb2x2ZU5vbkxvY2FsVVJMcykpOwogICAgIG1fZGF0YU9iamVjdC0+
c2V0SHRtbEJhc2VVcmwoZnJhbWUtPmRvY3VtZW50KCktPnVybCgpKTsKIAogICAgIFN0cmluZyBz
dHIgPSBmcmFtZS0+ZWRpdG9yKCktPnNlbGVjdGVkVGV4dCgpOwpJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY2hyb21pdW0vUGFzdGVib2FyZENocm9taXVtLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QYXN0ZWJvYXJkQ2hyb21pdW0uY3Bw
CShyZXZpc2lvbiA5Mjc2NykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1Bh
c3RlYm9hcmRDaHJvbWl1bS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgyLDcgKzgyLDcgQEAgdm9p
ZCBQYXN0ZWJvYXJkOjpzZXRTZWxlY3Rpb25Nb2RlKGJvb2wgcwogCiB2b2lkIFBhc3RlYm9hcmQ6
OndyaXRlU2VsZWN0aW9uKFJhbmdlKiBzZWxlY3RlZFJhbmdlLCBib29sIGNhblNtYXJ0Q29weU9y
RGVsZXRlLCBGcmFtZSogZnJhbWUpCiB7Ci0gICAgU3RyaW5nIGh0bWwgPSBjcmVhdGVNYXJrdXAo
c2VsZWN0ZWRSYW5nZSwgMCwgQW5ub3RhdGVGb3JJbnRlcmNoYW5nZSwgZmFsc2UsIEFic29sdXRl
VVJMcyk7CisgICAgU3RyaW5nIGh0bWwgPSBjcmVhdGVNYXJrdXAoc2VsZWN0ZWRSYW5nZSwgMCwg
QW5ub3RhdGVGb3JJbnRlcmNoYW5nZSwgZmFsc2UsIFJlc29sdmVOb25Mb2NhbFVSTHMpOwogICAg
IEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIEtVUkwgdXJsID0gc2VsZWN0ZWRSYW5nZS0+c3Rh
cnRDb250YWluZXIoZWMpLT5kb2N1bWVudCgpLT51cmwoKTsKICAgICBTdHJpbmcgcGxhaW5UZXh0
ID0gZnJhbWUtPmVkaXRvcigpLT5zZWxlY3RlZFRleHQoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9DbGlwYm9hcmRHdGsuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2d0ay9DbGlwYm9hcmRHdGsuY3BwCShyZXZpc2lvbiA5Mjc2NykKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9DbGlwYm9hcmRHdGsuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yODMsNyArMjgzLDcgQEAgc3RhdGljIENhY2hlZEltYWdlKiBnZXRDYWNoZWRJbWFnZShF
bGVtZQogdm9pZCBDbGlwYm9hcmRHdGs6OmRlY2xhcmVBbmRXcml0ZURyYWdJbWFnZShFbGVtZW50
KiBlbGVtZW50LCBjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgbGFiZWwsIEZyYW1lKiBm
cmFtZSkKIHsKICAgICBtX2RhdGFPYmplY3QtPnNldFVSTCh1cmwsIGxhYmVsKTsKLSAgICBtX2Rh
dGFPYmplY3QtPnNldE1hcmt1cChjcmVhdGVNYXJrdXAoZWxlbWVudCwgSW5jbHVkZU5vZGUsIDAs
IEFic29sdXRlVVJMcykpOworICAgIG1fZGF0YU9iamVjdC0+c2V0TWFya3VwKGNyZWF0ZU1hcmt1
cChlbGVtZW50LCBJbmNsdWRlTm9kZSwgMCwgUmVzb2x2ZUFsbFVSTHMpKTsKIAogICAgIENhY2hl
ZEltYWdlKiBpbWFnZSA9IGdldENhY2hlZEltYWdlKGVsZW1lbnQpOwogICAgIGlmICghaW1hZ2Ug
fHwgIWltYWdlLT5pc0xvYWRlZCgpKQpAQCAtMzA4LDcgKzMwOCw3IEBAIHZvaWQgQ2xpcGJvYXJk
R3RrOjp3cml0ZVJhbmdlKFJhbmdlKiByYW4KICAgICBBU1NFUlQocmFuZ2UpOwogCiAgICAgbV9k
YXRhT2JqZWN0LT5zZXRUZXh0KGZyYW1lLT5lZGl0b3IoKS0+c2VsZWN0ZWRUZXh0KCkpOwotICAg
IG1fZGF0YU9iamVjdC0+c2V0TWFya3VwKGNyZWF0ZU1hcmt1cChyYW5nZSwgMCwgQW5ub3RhdGVG
b3JJbnRlcmNoYW5nZSwgZmFsc2UsIEFic29sdXRlVVJMcykpOworICAgIG1fZGF0YU9iamVjdC0+
c2V0TWFya3VwKGNyZWF0ZU1hcmt1cChyYW5nZSwgMCwgQW5ub3RhdGVGb3JJbnRlcmNoYW5nZSwg
ZmFsc2UsIFJlc29sdmVOb25Mb2NhbFVSTHMpKTsKIAogICAgIGlmIChtX2NsaXBib2FyZCkKICAg
ICAgICAgUGFzdGVib2FyZEhlbHBlcjo6ZGVmYXVsdFBhc3RlYm9hcmRIZWxwZXIoKS0+d3JpdGVD
bGlwYm9hcmRDb250ZW50cyhtX2NsaXBib2FyZCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ndGsvRGF0YU9iamVjdEd0ay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3RrL0RhdGFPYmplY3RHdGsuY3BwCShyZXZpc2lvbiA5Mjc2NykKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9EYXRhT2JqZWN0R3RrLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNDIsNyArNDIsNyBAQCBTdHJpbmcgRGF0YU9iamVjdEd0azo6dGV4dCgpCiBTdHJpbmcgRGF0
YU9iamVjdEd0azo6bWFya3VwKCkKIHsKICAgICBpZiAobV9yYW5nZSkKLSAgICAgICAgcmV0dXJu
IGNyZWF0ZU1hcmt1cChtX3JhbmdlLmdldCgpLCAwLCBBbm5vdGF0ZUZvckludGVyY2hhbmdlLCBm
YWxzZSwgQWJzb2x1dGVVUkxzKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZU1hcmt1cChtX3Jhbmdl
LmdldCgpLCAwLCBBbm5vdGF0ZUZvckludGVyY2hhbmdlLCBmYWxzZSwgUmVzb2x2ZU5vbkxvY2Fs
VVJMcyk7CiAgICAgcmV0dXJuIG1fbWFya3VwOwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ndGsvUGFzdGVib2FyZEd0ay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3RrL1Bhc3RlYm9hcmRHdGsuY3BwCShyZXZpc2lvbiA5Mjc2NykKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QYXN0ZWJvYXJkR3RrLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNjAsNyArNjAsNyBAQCB2b2lkIFBhc3RlYm9hcmQ6OndyaXRlU2VsZWN0aW9uKFJhbmdl
KiBzCiAgICAgR3RrQ2xpcGJvYXJkKiBjbGlwYm9hcmQgPSBoZWxwZXItPmdldENsaXBib2FyZChm
cmFtZSk7CiAgICAgRGF0YU9iamVjdEd0ayogZGF0YU9iamVjdCA9IERhdGFPYmplY3RHdGs6OmZv
ckNsaXBib2FyZChjbGlwYm9hcmQpOwogICAgIGRhdGFPYmplY3QtPnNldFRleHQoZnJhbWUtPmVk
aXRvcigpLT5zZWxlY3RlZFRleHQoKSk7Ci0gICAgZGF0YU9iamVjdC0+c2V0TWFya3VwKGNyZWF0
ZU1hcmt1cChzZWxlY3RlZFJhbmdlLCAwLCBBbm5vdGF0ZUZvckludGVyY2hhbmdlLCBmYWxzZSwg
QWJzb2x1dGVVUkxzKSk7CisgICAgZGF0YU9iamVjdC0+c2V0TWFya3VwKGNyZWF0ZU1hcmt1cChz
ZWxlY3RlZFJhbmdlLCAwLCBBbm5vdGF0ZUZvckludGVyY2hhbmdlLCBmYWxzZSwgUmVzb2x2ZU5v
bkxvY2FsVVJMcykpOwogICAgIGhlbHBlci0+d3JpdGVDbGlwYm9hcmRDb250ZW50cyhjbGlwYm9h
cmQsIGNhblNtYXJ0Q29weU9yRGVsZXRlID8gUGFzdGVib2FyZEhlbHBlcjo6SW5jbHVkZVNtYXJ0
UGFzdGUgOiBQYXN0ZWJvYXJkSGVscGVyOjpEb05vdEluY2x1ZGVTbWFydFBhc3RlKTsKIH0KIApA
QCAtMTIyLDExICsxMjIsNyBAQCB2b2lkIFBhc3RlYm9hcmQ6OndyaXRlSW1hZ2UoTm9kZSogbm9k
ZSwKICAgICBpZiAoIXVybC5pc0VtcHR5KCkpIHsKICAgICAgICAgZGF0YU9iamVjdC0+c2V0VVJM
KHVybCwgdGl0bGUpOwogCi0gICAgICAgIC8vIFRoaXMgaW1hZ2UgbWF5IGJlIGFuIFNWRywgZW1i
ZWQsIG9yIG9iamVjdCB0YWcsIHNvIGRvIG5vdCB3cml0ZSB0aGUgaW1hZ2UKLSAgICAgICAgLy8g
dGFnIG1hcmt1cCBpbiB0aG9zZSBjYXNlcy4gRXZlbnR1YWxseSB3ZSBtYXkgd2FudCB0byBzdXBw
b3J0IHBhc3NpbmcgbWFya3VwCi0gICAgICAgIC8vIGZvciB0aGVzZSB0YWcgdHlwZXMuCi0gICAg
ICAgIGlmIChub2RlLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6aW1nVGFnKSkKLSAgICAgICAgICAg
IGRhdGFPYmplY3QtPnNldE1hcmt1cChpbWFnZVRvTWFya3VwKHVybCwgc3RhdGljX2Nhc3Q8RWxl
bWVudCo+KG5vZGUpKSk7CisgICAgICAgIGRhdGFPYmplY3QtPnNldE1hcmt1cChjcmVhdGVNYXJr
dXAoc3RhdGljX2Nhc3Q8RWxlbWVudCo+KG5vZGUpLCBJbmNsdWRlTm9kZSwgMCwgUmVzb2x2ZUFs
bFVSTHMpKTsKICAgICB9CiAKICAgICBHUmVmUHRyPEdka1BpeGJ1Zj4gcGl4YnVmID0gYWRvcHRH
UmVmKGltYWdlLT5nZXRHZGtQaXhidWYoKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9oYWlrdS9QYXN0ZWJvYXJkSGFpa3UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2hhaWt1L1Bhc3RlYm9hcmRIYWlrdS5jcHAJKHJldmlzaW9uIDkyNzY3KQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaGFpa3UvUGFzdGVib2FyZEhhaWt1LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTAyLDcgKzEwMiw3IEBAIHZvaWQgUGFzdGVib2FyZDo6d3JpdGVTZWxlY3Rp
b24oUmFuZ2UqIHMKIAogICAgIGRhdGEtPkFkZERhdGEoInRleHQvcGxhaW4iLCBCX01JTUVfVFlQ
RSwgc3RyaW5nLlN0cmluZygpLCBzdHJpbmcuTGVuZ3RoKCkpOwogCi0gICAgQlN0cmluZyBtYXJr
dXBTdHJpbmcoY3JlYXRlTWFya3VwKHNlbGVjdGVkUmFuZ2UsIDAsIEFubm90YXRlRm9ySW50ZXJj
aGFuZ2UsIGZhbHNlLCBBYnNvbHV0ZVVSTHMpKTsKKyAgICBCU3RyaW5nIG1hcmt1cFN0cmluZyhj
cmVhdGVNYXJrdXAoc2VsZWN0ZWRSYW5nZSwgMCwgQW5ub3RhdGVGb3JJbnRlcmNoYW5nZSwgZmFs
c2UsIFJlc29sdmVOb25Mb2NhbFVSTHMpKTsKICAgICBkYXRhLT5BZGREYXRhKCJ0ZXh0L2h0bWwi
LCBCX01JTUVfVFlQRSwgbWFya3VwU3RyaW5nLlN0cmluZygpLCBtYXJrdXBTdHJpbmcuTGVuZ3Ro
KCkpOwogCiAgICAgYmVfY2xpcGJvYXJkLT5Db21taXQoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3F0L0NsaXBib2FyZFF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9xdC9DbGlwYm9hcmRRdC5jcHAJKHJldmlzaW9uIDkyNzY3KQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vcXQvQ2xpcGJvYXJkUXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
ODgsMjAgKzI4OCwxMiBAQCB2b2lkIENsaXBib2FyZFF0OjpkZWNsYXJlQW5kV3JpdGVEcmFnSW1h
CiAgICAgaWYgKHBpeG1hcCkKICAgICAgICAgbV93cml0YWJsZURhdGEtPnNldEltYWdlRGF0YSgq
cGl4bWFwKTsKIAotICAgIEF0b21pY1N0cmluZyBpbWFnZVVSTCA9IGVsZW1lbnQtPmdldEF0dHJp
YnV0ZShIVE1MTmFtZXM6OnNyY0F0dHIpOwotICAgIGlmIChpbWFnZVVSTC5pc0VtcHR5KCkpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIEtVUkwgZnVsbFVSTCA9IGZyYW1lLT5kb2N1bWVudCgpLT5j
b21wbGV0ZVVSTChzdHJpcExlYWRpbmdBbmRUcmFpbGluZ0hUTUxTcGFjZXMoaW1hZ2VVUkwpKTsK
LSAgICBpZiAoZnVsbFVSTC5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsKLQogICAgIFFMaXN0
PFFVcmw+IHVybHM7CiAgICAgdXJscy5hcHBlbmQodXJsKTsKIAogICAgIG1fd3JpdGFibGVEYXRh
LT5zZXRUZXh0KHRpdGxlKTsKICAgICBtX3dyaXRhYmxlRGF0YS0+c2V0VXJscyh1cmxzKTsKLSAg
ICBtX3dyaXRhYmxlRGF0YS0+c2V0SHRtbChpbWFnZVRvTWFya3VwKGZ1bGxVUkwsIGVsZW1lbnQp
KTsKKyAgICBtX3dyaXRhYmxlRGF0YS0+c2V0SHRtbChjcmVhdGVNYXJrdXAoZWxlbWVudCwgSW5j
bHVkZU5vZGUsIDAsIFJlc29sdmVBbGxVUkxzKSk7CiAjaWZuZGVmIFFUX05PX0NMSVBCT0FSRAog
ICAgIGlmIChpc0ZvckNvcHlBbmRQYXN0ZSgpKQogICAgICAgICBRQXBwbGljYXRpb246OmNsaXBi
b2FyZCgpLT5zZXRNaW1lRGF0YShtX3dyaXRhYmxlRGF0YSk7CkBAIC0zMzQsNyArMzI2LDcgQEAg
dm9pZCBDbGlwYm9hcmRRdDo6d3JpdGVSYW5nZShSYW5nZSogcmFuZwogICAgIFFTdHJpbmcgdGV4
dCA9IGZyYW1lLT5lZGl0b3IoKS0+c2VsZWN0ZWRUZXh0KCk7CiAgICAgdGV4dC5yZXBsYWNlKFFD
aGFyKDB4YTApLCBRTGF0aW4xQ2hhcignICcpKTsKICAgICBtX3dyaXRhYmxlRGF0YS0+c2V0VGV4
dCh0ZXh0KTsKLSAgICBtX3dyaXRhYmxlRGF0YS0+c2V0SHRtbChjcmVhdGVNYXJrdXAocmFuZ2Us
IDAsIEFubm90YXRlRm9ySW50ZXJjaGFuZ2UsIGZhbHNlLCBBYnNvbHV0ZVVSTHMpKTsKKyAgICBt
X3dyaXRhYmxlRGF0YS0+c2V0SHRtbChjcmVhdGVNYXJrdXAocmFuZ2UsIDAsIEFubm90YXRlRm9y
SW50ZXJjaGFuZ2UsIGZhbHNlLCBSZXNvbHZlTm9uTG9jYWxVUkxzKSk7CiAjaWZuZGVmIFFUX05P
X0NMSVBCT0FSRAogICAgIGlmIChpc0ZvckNvcHlBbmRQYXN0ZSgpKQogICAgICAgICBRQXBwbGlj
YXRpb246OmNsaXBib2FyZCgpLT5zZXRNaW1lRGF0YShtX3dyaXRhYmxlRGF0YSk7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9QYXN0ZWJvYXJkUXQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1Bhc3RlYm9hcmRRdC5jcHAJKHJldmlzaW9uIDky
NzY3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUGFzdGVib2FyZFF0LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNjQsNyArNjQsNyBAQCB2b2lkIFBhc3RlYm9hcmQ6OndyaXRlU2VsZWN0
aW9uKFJhbmdlKiBzCiAgICAgdGV4dC5yZXBsYWNlKFFDaGFyKDB4YTApLCBRTGF0aW4xQ2hhcign
ICcpKTsKICAgICBtZC0+c2V0VGV4dCh0ZXh0KTsKIAotICAgIFFTdHJpbmcgbWFya3VwID0gY3Jl
YXRlTWFya3VwKHNlbGVjdGVkUmFuZ2UsIDAsIEFubm90YXRlRm9ySW50ZXJjaGFuZ2UsIGZhbHNl
LCBBYnNvbHV0ZVVSTHMpOworICAgIFFTdHJpbmcgbWFya3VwID0gY3JlYXRlTWFya3VwKHNlbGVj
dGVkUmFuZ2UsIDAsIEFubm90YXRlRm9ySW50ZXJjaGFuZ2UsIGZhbHNlLCBSZXNvbHZlTm9uTG9j
YWxVUkxzKTsKICNpZmRlZiBRX09TX01BQwogICAgIG1hcmt1cC5wcmVwZW5kKFFMYXRpbjFTdHJp
bmcoIjxodG1sPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9XCJDb250ZW50LVR5cGVcIiBjb250ZW50
PVwidGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04XCIgLz48L2hlYWQ+PGJvZHk+IikpOwogICAgIG1h
cmt1cC5hcHBlbmQoUUxhdGluMVN0cmluZygiPC9ib2R5PjwvaHRtbD4iKSk7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkV2luLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkV2luLmNwcAkocmV2aXNpb24gOTI3
NjcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ2xpcGJvYXJkV2luLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNjgzLDcgKzY4Myw3IEBAIHZvaWQgQ2xpcGJvYXJkV2luOjpkZWNsYXJl
QW5kV3JpdGVEcmFnSW0KIAogICAgIC8vIFB1dCBpbWcgdGFnIG9uIHRoZSBjbGlwYm9hcmQgcmVm
ZXJlbmNpbmcgdGhlIGltYWdlCiAgICAgVmVjdG9yPGNoYXI+IGRhdGE7Ci0gICAgbWFya3VwVG9D
RkhUTUwoaW1hZ2VUb01hcmt1cChmdWxsVVJMLCBlbGVtZW50KSwgIiIsIGRhdGEpOworICAgIG1h
cmt1cFRvQ0ZIVE1MKGNyZWF0ZU1hcmt1cChlbGVtZW50LCBJbmNsdWRlTm9kZSwgMCwgUmVzb2x2
ZUFsbFVSTHMpLCAiIiwgZGF0YSk7CiAgICAgbWVkaXVtLmhHbG9iYWwgPSBjcmVhdGVHbG9iYWxE
YXRhKGRhdGEpOwogICAgIGlmIChtZWRpdW0uaEdsb2JhbCAmJiBGQUlMRUQobV93cml0YWJsZURh
dGFPYmplY3QtPlNldERhdGEoaHRtbEZvcm1hdCgpLCAmbWVkaXVtLCBUUlVFKSkpCiAgICAgICAg
IDo6R2xvYmFsRnJlZShtZWRpdW0uaEdsb2JhbCk7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA5Mjc2NykK
KysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBA
CisyMDExLTA4LTEwICBCZW5qYW1pbiBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9yZz4KKwor
ICAgICAgICBVbmlmeSB0aGUgd2F5IHdlIGdlbmVyYXRlIEhUTUwgZm9yIGFuIGltYWdlIGluIHRo
ZSBDbGlwYm9hcmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTU4MDQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgorCisgICAgICAg
IEFkZCAzIHRlc3RzIGZvciBkcmFnZ2luZyBhbiBpbWFnZS1saWtlIGVsZW1lbnQgdG8gYW4gZWRp
dGFibGUgYXJlYS4KKworICAgICAgICAqIGVkaXRpbmcvcGFzdGVib2FyZC9kcmFnLWFuZC1kcm9w
LWltYWdlLWNvbnRlbnRlZGl0YWJsZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVk
aXRpbmcvcGFzdGVib2FyZC9kcmFnLWFuZC1kcm9wLWltYWdlLWNvbnRlbnRlZGl0YWJsZS5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQvZHJhZy1hbmQtZHJvcC1pbnB1
dGltYWdlLWNvbnRlbnRlZGl0YWJsZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVk
aXRpbmcvcGFzdGVib2FyZC9kcmFnLWFuZC1kcm9wLWlucHV0aW1hZ2UtY29udGVudGVkaXRhYmxl
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvcGFzdGVib2FyZC9kcmFnLWFuZC1kcm9w
LW9iamVjdGltYWdlLWNvbnRlbnRlZGl0YWJsZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGVkaXRpbmcvcGFzdGVib2FyZC9kcmFnLWFuZC1kcm9wLW9iamVjdGltYWdlLWNvbnRlbnRl
ZGl0YWJsZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9Ta2lwcGVkOiBRdCBk
b2VzIG5vdCBoYXZlIHN1cHBvcnQgZm9yIHRlc3RpbmcgZHJhZyBhbmQgZHJvcC4KKwogMjAxMS0w
OC0xMCAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGdvb2dsZS5jb20+CiAKICAgICAgICAgV2Vi
IEluc3BlY3RvcjogQ1NTIGVkaXRpbmcgZmlsZSBjb250YWluaW5nIHRhYnMgbGVhZHMgdG8gdGhl
IHdob2xlIGZpbGUgY2hhbmdlIGluIHJldmlzaW9uIGhpc3RvcnkuCkluZGV4OiBMYXlvdXRUZXN0
cy9lZGl0aW5nL3Bhc3RlYm9hcmQvZHJhZy1hbmQtZHJvcC1pbWFnZS1jb250ZW50ZWRpdGFibGUt
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2Fy
ZC9kcmFnLWFuZC1kcm9wLWltYWdlLWNvbnRlbnRlZGl0YWJsZS1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvZHJhZy1hbmQtZHJvcC1p
bWFnZS1jb250ZW50ZWRpdGFibGUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDE3IEBACitUaGlzIHRlc3QgdmVyaWZ5IGRyYWdnaW5nIGFuIGltYWdlIGluIHRoZSBwYWdlIGtl
ZXBzIGl0cyBhdHRyaWJ1dGVzLiBUbyB0ZXN0IG1hbnVhbGx5LCBkcmFnIHRoZSBpbWFnZSBhbmQg
ZHJvcCBpdCBpbiB0aGUgcmVjdCB3aXRoIGEgYmx1ZSBib3JkZXIuCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCisKKworUEFTUyB0YXJnZXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlt
ZyIpLmxlbmd0aCBpcyAxCitQQVNTIHRhcmdldC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW1nIilb
MF0uYXR0cmlidXRlcy5sZW5ndGggaXMgNQorUEFTUyB0YXJnZXQuZ2V0RWxlbWVudHNCeVRhZ05h
bWUoImltZyIpWzBdLmlkIGlzICJzb3VyY2UiCitQQVNTIHRhcmdldC5nZXRFbGVtZW50c0J5VGFn
TmFtZSgiaW1nIilbMF0uYWx0IGlzICJhbHQtdGV4dCIKK1BBU1MgdGFyZ2V0LmdldEVsZW1lbnRz
QnlUYWdOYW1lKCJpbWciKVswXS5hdHRyaWJ1dGVzWyJpdGVtcHJvcCJdLnZhbHVlIGlzICJzb21l
ZGF0YSIKK1BBU1MgdGFyZ2V0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbWciKVswXS5hdHRyaWJ1
dGVzWyJhcmJpdHJhcnkiXS52YWx1ZSBpcyAiZ3JlZW4iCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9w
YXN0ZWJvYXJkL2RyYWctYW5kLWRyb3AtaW1hZ2UtY29udGVudGVkaXRhYmxlLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2RyYWctYW5kLWRyb3AtaW1h
Z2UtY29udGVudGVkaXRhYmxlLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9lZGl0
aW5nL3Bhc3RlYm9hcmQvZHJhZy1hbmQtZHJvcC1pbWFnZS1jb250ZW50ZWRpdGFibGUuaHRtbAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSw2MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzxzdHlsZT4KKyN0YXJnZXQgeworICAgIGhlaWdodDogMjAwcHg7CisgICAg
d2lkdGg6IDIyMHB4OworICAgIGJvcmRlcjogNXB4IHNvbGlkIGJsdWU7Cit9Cis8L3N0eWxlPgor
PC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48
L3A+Cis8ZGl2IGNvbnRlbnRlZGl0YWJsZT10cnVlIGlkPSJ0YXJnZXQiPjwvZGl2PgorPGRpdj48
aW1nIGlkPSJzb3VyY2UiIHNyYz0icmVzb3VyY2VzL2FwcGxlLmdpZiIgYWx0PSJhbHQtdGV4dCIg
aXRlbXByb3A9InNvbWVkYXRhIiBhcmJpdHJhcnk9ImdyZWVuIj48L2Rpdj4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorCis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1RoaXMgdGVzdCB2ZXJpZnkg
ZHJhZ2dpbmcgYW4gaW1hZ2UgaW4gdGhlIHBhZ2Uga2VlcHMgaXRzIGF0dHJpYnV0ZXMuIFRvIHRl
c3QgbWFudWFsbHksIGRyYWcgdGhlIGltYWdlIGFuZCBkcm9wIGl0IGluIHRoZSByZWN0IHdpdGgg
YSBibHVlIGJvcmRlci4nKTsKK3ZhciBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK3ZhciB0YXJnZXQg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0Jyk7CisKK2Z1bmN0aW9uIGNvbnRlbnRJ
bnNlcnRlZCgpIHsKKyAgICBzaG91bGRCZSgndGFyZ2V0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJp
bWciKS5sZW5ndGgnLCAnMScpOworICAgIHNob3VsZEJlKCd0YXJnZXQuZ2V0RWxlbWVudHNCeVRh
Z05hbWUoImltZyIpWzBdLmF0dHJpYnV0ZXMubGVuZ3RoJywgJzUnKTsKKyAgICBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoJ3RhcmdldC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW1nIilbMF0uaWQnLCAn
c291cmNlJyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0YXJnZXQuZ2V0RWxlbWVudHNC
eVRhZ05hbWUoImltZyIpWzBdLmFsdCcsICdhbHQtdGV4dCcpOworICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygndGFyZ2V0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbWciKVswXS5hdHRyaWJ1dGVz
WyJpdGVtcHJvcCJdLnZhbHVlJywgJ3NvbWVkYXRhJyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCd0YXJnZXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImltZyIpWzBdLmF0dHJpYnV0ZXNbImFy
Yml0cmFyeSJdLnZhbHVlJywgJ2dyZWVuJyk7CisKKyAgICBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0
cnVlOworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCitmdW5jdGlvbiBydW5UZXN0KCkgeworICAg
IHRhcmdldC5hZGRFdmVudExpc3RlbmVyKCdET01Ob2RlSW5zZXJ0ZWQnLCBjb250ZW50SW5zZXJ0
ZWQsIGZhbHNlKTsKKyAgICBpZiAoIXdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAg
ICAgcmV0dXJuOworCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwor
CisgICAgZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzb3VyY2UiKTsKKyAgICB4ID0gZS5v
ZmZzZXRMZWZ0ICsgZS5vZmZzZXRXaWR0aCAvIDI7CisgICAgeSA9IGUub2Zmc2V0VG9wICsgZS5v
ZmZzZXRIZWlnaHQgLyAyOworCisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7Cisg
ICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgZXZlbnRTZW5kZXIubGVhcEZvcndhcmQo
MTAwKTsKKyAgICBlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpOworICAgIHgg
PSBlLm9mZnNldExlZnQgKyBlLm9mZnNldFdpZHRoIC8gMjsKKyAgICB5ID0gZS5vZmZzZXRUb3Ag
KyBlLm9mZnNldEhlaWdodCAvIDI7CisKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5
KTsKKyAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Cit9Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2RyYWct
YW5kLWRyb3AtaW5wdXRpbWFnZS1jb250ZW50ZWRpdGFibGUtZXhwZWN0ZWQudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9kcmFnLWFuZC1kcm9wLWlucHV0
aW1hZ2UtY29udGVudGVkaXRhYmxlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9kcmFnLWFuZC1kcm9wLWlucHV0aW1hZ2UtY29udGVu
dGVkaXRhYmxlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxOCBAQAorVGhp
cyB0ZXN0IHZlcmlmeSBkcmFnZ2luZyBhbiBpbWFnZSBpbiB0aGUgcGFnZSBrZWVwcyBpdHMgYXR0
cmlidXRlcy4gVG8gdGVzdCBtYW51YWxseSwgZHJhZyB0aGUgaW1hZ2UgYW5kIGRyb3AgaXQgaW4g
dGhlIHJlY3Qgd2l0aCBhIGJsdWUgYm9yZGVyLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworCisKK1BBU1MgdGFyZ2V0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIpLmxlbmd0
aCBpcyAxCitQQVNTIHRhcmdldC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKVswXS5hdHRy
aWJ1dGVzLmxlbmd0aCBpcyA2CitQQVNTIHRhcmdldC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5w
dXQiKVswXS5pZCBpcyAic291cmNlIgorUEFTUyB0YXJnZXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUo
ImlucHV0IilbMF0udHlwZSBpcyAiaW1hZ2UiCitQQVNTIHRhcmdldC5nZXRFbGVtZW50c0J5VGFn
TmFtZSgiaW5wdXQiKVswXS5kcmFnZ2FibGUgaXMgdHJ1ZQorUEFTUyB0YXJnZXQuZ2V0RWxlbWVu
dHNCeVRhZ05hbWUoImlucHV0IilbMF0uYXR0cmlidXRlc1siaXRlbXByb3AiXS52YWx1ZSBpcyAi
c29tZWRhdGEiCitQQVNTIHRhcmdldC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKVswXS5h
dHRyaWJ1dGVzWyJhcmJpdHJhcnkiXS52YWx1ZSBpcyAiZ3JlZW4iCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZWRp
dGluZy9wYXN0ZWJvYXJkL2RyYWctYW5kLWRyb3AtaW5wdXRpbWFnZS1jb250ZW50ZWRpdGFibGUu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvZHJhZy1h
bmQtZHJvcC1pbnB1dGltYWdlLWNvbnRlbnRlZGl0YWJsZS5odG1sCShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2RyYWctYW5kLWRyb3AtaW5wdXRpbWFnZS1j
b250ZW50ZWRpdGFibGUuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2MSBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KKyN0YXJnZXQgeworICAg
IGhlaWdodDogMjAwcHg7CisgICAgd2lkdGg6IDIyMHB4OworICAgIGJvcmRlcjogNXB4IHNvbGlk
IGJsdWU7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgor
PHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGNvbnRlbnRlZGl0YWJsZT10cnVlIGlkPSJ0
YXJnZXQiPjwvZGl2PgorPGRpdj48aW5wdXQgdHlwZT0iaW1hZ2UiIGlkPSJzb3VyY2UiIHNyYz0i
cmVzb3VyY2VzL2FwcGxlLmdpZiIgaXRlbXByb3A9InNvbWVkYXRhIiBhcmJpdHJhcnk9ImdyZWVu
IiBkcmFnZ2FibGU9dHJ1ZT48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2Ny
aXB0PgorZGVzY3JpcHRpb24oJ1RoaXMgdGVzdCB2ZXJpZnkgZHJhZ2dpbmcgYW4gaW1hZ2UgaW4g
dGhlIHBhZ2Uga2VlcHMgaXRzIGF0dHJpYnV0ZXMuIFRvIHRlc3QgbWFudWFsbHksIGRyYWcgdGhl
IGltYWdlIGFuZCBkcm9wIGl0IGluIHRoZSByZWN0IHdpdGggYSBibHVlIGJvcmRlci4nKTsKK3Zh
ciBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK3ZhciB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgndGFyZ2V0Jyk7CisKK2Z1bmN0aW9uIGNvbnRlbnRJbnNlcnRlZCgpIHsKKyAgICBzaG91
bGRCZSgndGFyZ2V0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIpLmxlbmd0aCcsICcxJyk7
CisgICAgc2hvdWxkQmUoJ3RhcmdldC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKVswXS5h
dHRyaWJ1dGVzLmxlbmd0aCcsICc2Jyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0YXJn
ZXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlucHV0IilbMF0uaWQnLCAnc291cmNlJyk7CisgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0YXJnZXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlucHV0
IilbMF0udHlwZScsICdpbWFnZScpOworICAgIHNob3VsZEJlVHJ1ZSgndGFyZ2V0LmdldEVsZW1l
bnRzQnlUYWdOYW1lKCJpbnB1dCIpWzBdLmRyYWdnYWJsZScpOworICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygndGFyZ2V0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIpWzBdLmF0dHJpYnV0
ZXNbIml0ZW1wcm9wIl0udmFsdWUnLCAnc29tZWRhdGEnKTsKKyAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoJ3RhcmdldC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKVswXS5hdHRyaWJ1dGVz
WyJhcmJpdHJhcnkiXS52YWx1ZScsICdncmVlbicpOworCisgICAgc3VjY2Vzc2Z1bGx5UGFyc2Vk
ID0gdHJ1ZTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgpIHsK
KyAgICB0YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcignRE9NTm9kZUluc2VydGVkJywgY29udGVudElu
c2VydGVkLCBmYWxzZSk7CisgICAgaWYgKCF3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisg
ICAgICAgIHJldHVybjsKKworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUo
KTsKKworICAgIGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic291cmNlIik7CisgICAgeCA9
IGUub2Zmc2V0TGVmdCArIGUub2Zmc2V0V2lkdGggLyAyOworICAgIHkgPSBlLm9mZnNldFRvcCAr
IGUub2Zmc2V0SGVpZ2h0IC8gMjsKKworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHgsIHkp
OworICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgIGV2ZW50U2VuZGVyLmxlYXBGb3J3
YXJkKDEwMCk7CisgICAgZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKTsKKyAg
ICB4ID0gZS5vZmZzZXRMZWZ0ICsgZS5vZmZzZXRXaWR0aCAvIDI7CisgICAgeSA9IGUub2Zmc2V0
VG9wICsgZS5vZmZzZXRIZWlnaHQgLyAyOworCisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8o
eCwgeSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworfQorPC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9k
cmFnLWFuZC1kcm9wLW9iamVjdGltYWdlLWNvbnRlbnRlZGl0YWJsZS1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2RyYWctYW5kLWRyb3At
b2JqZWN0aW1hZ2UtY29udGVudGVkaXRhYmxlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9kcmFnLWFuZC1kcm9wLW9iamVjdGltYWdl
LWNvbnRlbnRlZGl0YWJsZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTgg
QEAKK1RoaXMgdGVzdCB2ZXJpZnkgZHJhZ2dpbmcgYW4gaW1hZ2UgaW4gdGhlIHBhZ2Uga2VlcHMg
aXRzIGF0dHJpYnV0ZXMuIFRvIHRlc3QgbWFudWFsbHksIGRyYWcgdGhlIGltYWdlIGFuZCBkcm9w
IGl0IGluIHRoZSByZWN0IHdpdGggYSBibHVlIGJvcmRlci4KKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKKworCitQQVNTIHRhcmdldC5nZXRFbGVtZW50c0J5VGFnTmFtZSgib2JqZWN0
IikubGVuZ3RoIGlzIDEKK1BBU1MgdGFyZ2V0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJvYmplY3Qi
KVswXS5hdHRyaWJ1dGVzLmxlbmd0aCBpcyA2CitQQVNTIHRhcmdldC5nZXRFbGVtZW50c0J5VGFn
TmFtZSgib2JqZWN0IilbMF0uaWQgaXMgInNvdXJjZSIKK1BBU1MgdGFyZ2V0LmdldEVsZW1lbnRz
QnlUYWdOYW1lKCJvYmplY3QiKVswXS50eXBlIGlzICJpbWFnZS9wbmciCitQQVNTIHRhcmdldC5n
ZXRFbGVtZW50c0J5VGFnTmFtZSgib2JqZWN0IilbMF0uZHJhZ2dhYmxlIGlzIHRydWUKK1BBU1Mg
dGFyZ2V0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJvYmplY3QiKVswXS5hdHRyaWJ1dGVzWyJpdGVt
cHJvcCJdLnZhbHVlIGlzICJzb21lZGF0YSIKK1BBU1MgdGFyZ2V0LmdldEVsZW1lbnRzQnlUYWdO
YW1lKCJvYmplY3QiKVswXS5hdHRyaWJ1dGVzWyJhcmJpdHJhcnkiXS52YWx1ZSBpcyAiZ3JlZW4i
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRl
eDogTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2RyYWctYW5kLWRyb3Atb2JqZWN0aW1h
Z2UtY29udGVudGVkaXRhYmxlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGlu
Zy9wYXN0ZWJvYXJkL2RyYWctYW5kLWRyb3Atb2JqZWN0aW1hZ2UtY29udGVudGVkaXRhYmxlLmh0
bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvZHJhZy1h
bmQtZHJvcC1vYmplY3RpbWFnZS1jb250ZW50ZWRpdGFibGUuaHRtbAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSw2MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxz
dHlsZT4KKyN0YXJnZXQgeworICAgIGhlaWdodDogMjAwcHg7CisgICAgd2lkdGg6IDIyMHB4Owor
ICAgIGJvcmRlcjogNXB4IHNvbGlkIGJsdWU7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHkg
b25sb2FkPSJydW5UZXN0KCkiPgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGNvbnRl
bnRlZGl0YWJsZT10cnVlIGlkPSJ0YXJnZXQiPjwvZGl2PgorPGRpdj48b2JqZWN0IGlkPSJzb3Vy
Y2UiIGRhdGE9InJlc291cmNlcy9hcHBsZS5naWYiIHR5cGU9ImltYWdlL3BuZyIgaXRlbXByb3A9
InNvbWVkYXRhIiBhcmJpdHJhcnk9ImdyZWVuIiBkcmFnZ2FibGU9dHJ1ZT48L29iamVjdD48L2Rp
dj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1Ro
aXMgdGVzdCB2ZXJpZnkgZHJhZ2dpbmcgYW4gaW1hZ2UgaW4gdGhlIHBhZ2Uga2VlcHMgaXRzIGF0
dHJpYnV0ZXMuIFRvIHRlc3QgbWFudWFsbHksIGRyYWcgdGhlIGltYWdlIGFuZCBkcm9wIGl0IGlu
IHRoZSByZWN0IHdpdGggYSBibHVlIGJvcmRlci4nKTsKK3ZhciBqc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKK3ZhciB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0Jyk7CisKK2Z1
bmN0aW9uIGNvbnRlbnRJbnNlcnRlZCgpIHsKKyAgICBzaG91bGRCZSgndGFyZ2V0LmdldEVsZW1l
bnRzQnlUYWdOYW1lKCJvYmplY3QiKS5sZW5ndGgnLCAnMScpOworICAgIHNob3VsZEJlKCd0YXJn
ZXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIm9iamVjdCIpWzBdLmF0dHJpYnV0ZXMubGVuZ3RoJywg
JzYnKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3RhcmdldC5nZXRFbGVtZW50c0J5VGFn
TmFtZSgib2JqZWN0IilbMF0uaWQnLCAnc291cmNlJyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCd0YXJnZXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIm9iamVjdCIpWzBdLnR5cGUnLCAnaW1h
Z2UvcG5nJyk7CisgICAgc2hvdWxkQmVUcnVlKCd0YXJnZXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUo
Im9iamVjdCIpWzBdLmRyYWdnYWJsZScpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygndGFy
Z2V0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJvYmplY3QiKVswXS5hdHRyaWJ1dGVzWyJpdGVtcHJv
cCJdLnZhbHVlJywgJ3NvbWVkYXRhJyk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd0YXJn
ZXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIm9iamVjdCIpWzBdLmF0dHJpYnV0ZXNbImFyYml0cmFy
eSJdLnZhbHVlJywgJ2dyZWVuJyk7CisKKyAgICBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwor
ICAgIGZpbmlzaEpTVGVzdCgpOworfQorCitmdW5jdGlvbiBydW5UZXN0KCkgeworICAgIHRhcmdl
dC5hZGRFdmVudExpc3RlbmVyKCdET01Ob2RlSW5zZXJ0ZWQnLCBjb250ZW50SW5zZXJ0ZWQsIGZh
bHNlKTsKKyAgICBpZiAoIXdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgcmV0
dXJuOworCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworCisgICAg
ZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzb3VyY2UiKTsKKyAgICB4ID0gZS5vZmZzZXRM
ZWZ0ICsgZS5vZmZzZXRXaWR0aCAvIDI7CisgICAgeSA9IGUub2Zmc2V0VG9wICsgZS5vZmZzZXRI
ZWlnaHQgLyAyOworCisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7CisgICAgZXZl
bnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgZXZlbnRTZW5kZXIubGVhcEZvcndhcmQoMTAwKTsK
KyAgICBlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpOworICAgIHggPSBlLm9m
ZnNldExlZnQgKyBlLm9mZnNldFdpZHRoIC8gMjsKKyAgICB5ID0gZS5vZmZzZXRUb3AgKyBlLm9m
ZnNldEhlaWdodCAvIDI7CisKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5KTsKKyAg
ICBldmVudFNlbmRlci5tb3VzZVVwKCk7Cit9Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCShyZXZpc2lvbiA5Mjc2NykKKysr
IExheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQJKHdvcmtpbmcgY29weSkKQEAgLTI1NSw2
ICsyNTUsOSBAQCBlZGl0aW5nL3Bhc3RlYm9hcmQvc3ViZnJhbWUtZHJhZ25kcm9wLTEuCiBlZGl0
aW5nL3Bhc3RlYm9hcmQvZ2V0LWRhdGEtdGV4dC1wbGFpbi1kcm9wLmh0bWwKIGVkaXRpbmcvcGFz
dGVib2FyZC9kcm9wLXRleHQtZXZlbnRzLmh0bWwKIGVkaXRpbmcvcGFzdGVib2FyZC9kcm9wLXRl
eHQtZXZlbnRzLXNpZGVlZmZlY3QuaHRtbAorZWRpdGluZy9wYXN0ZWJvYXJkL2RyYWctYW5kLWRy
b3AtaW1hZ2UtY29udGVudGVkaXRhYmxlLmh0bWwKK2VkaXRpbmcvcGFzdGVib2FyZC9kcmFnLWFu
ZC1kcm9wLWlucHV0aW1hZ2UtY29udGVudGVkaXRhYmxlLmh0bWwKK2VkaXRpbmcvcGFzdGVib2Fy
ZC9kcmFnLWFuZC1kcm9wLW9iamVjdGltYWdlLWNvbnRlbnRlZGl0YWJsZS5odG1sCiAKICMgZGF0
YS10cmFuc2Zlci1pdGVtcyBpcyBub3QgYSBkZWZhdWx0IGJ1aWxkIG9wdGlvbgogIyBTZWUgYnVn
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDA2OAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>