<?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>139405</bug_id>
          
          <creation_ts>2014-12-08 10:31:50 -0800</creation_ts>
          <short_desc>An SVG with no intrinsic size does not draw correct slices when used as a border-image for an HTML element</short_desc>
          <delta_ts>2015-08-11 08:56:24 -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>SVG</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>davve</cc>
    
    <cc>dbates</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>hyatt</cc>
    
    <cc>jonlee</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1053423</commentid>
    <comment_count>0</comment_count>
      <attachid>242825</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2014-12-08 10:31:50 -0800</bug_when>
    <thetext>Created attachment 242825
Safari-Rendering

Open the following SVG in WebKit:

&lt;html&gt;
&lt;head&gt;
  &lt;style&gt;
    div {
      height: 100px;
      width: 100px;
    }
    div#intrinsic-size {
      border-image: url(&apos;data:image/svg+xml;utf8,&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; version=&quot;1.1&quot; width=&quot;100&quot; height=&quot;100&quot;&gt;&lt;rect width=&quot;100&quot; height=&quot;100&quot; fill=&quot;lime&quot;/&gt;&lt;/svg&gt;&apos;) 0 fill;
    }
    div#no-intrinsic-size {
      border-image: url(&apos;data:image/svg+xml;utf8,&lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; version=&quot;1.1&quot;&gt;&lt;rect width=&quot;100&quot; height=&quot;100&quot; fill=&quot;lime&quot;/&gt;&lt;/svg&gt;&apos;) 0 fill;
    }
  &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;div id=&quot;intrinsic-size&quot;&gt;&lt;/div&gt;
  &lt;br&gt;
  &lt;div id=&quot;no-intrinsic-size&quot;&gt;&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;

Result: Two lime rectangles are drawn but they do not have the same size. The first one is 100 x 100 pixels but the second one is less than that
Expected: The two rectangles should have the same size even though the the first SVG image has an intrinsic size and the second SVG image does not have.

From the w3c specs for the description of [Image Slicing: the ‘border-image-slice’ property] http://www.w3.org/TR/css3-background/#border-image-area:

&quot;If the image must be sized to determine the slices (for example, for SVG images with no intrinsic size), then it is sized using the default sizing algorithm with no specified size and the border image area as the default object size.&quot;

So it is expected to get the image sized to the size of the object size which is the size of the div object which is 100 X 100.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1053424</commentid>
    <comment_count>1</comment_count>
      <attachid>242826</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2014-12-08 10:32:18 -0800</bug_when>
    <thetext>Created attachment 242826
FireFox-Rendering</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1053425</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-12-08 10:33:00 -0800</bug_when>
    <thetext>&lt;rdar://problem/19177717&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1077310</commentid>
    <comment_count>3</comment_count>
      <attachid>248699</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-03-15 19:44:20 -0700</bug_when>
    <thetext>Created attachment 248699
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1093813</commentid>
    <comment_count>4</comment_count>
      <attachid>248699</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-05-11 11:10:53 -0700</bug_when>
    <thetext>Comment on attachment 248699
Patch

working on getting a clearer fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094251</commentid>
    <comment_count>5</comment_count>
      <attachid>252978</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-05-12 13:35:13 -0700</bug_when>
    <thetext>Created attachment 252978
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094252</commentid>
    <comment_count>6</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-05-12 13:37:37 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Created attachment 252978 [details]
&gt; Patch

With this patch the border-image drawing is compatible with FireFox.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094256</commentid>
    <comment_count>7</comment_count>
      <attachid>252981</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-05-12 13:50:15 -0700</bug_when>
    <thetext>Created attachment 252981
Test case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094300</commentid>
    <comment_count>8</comment_count>
      <attachid>252994</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-05-12 15:52:20 -0700</bug_when>
    <thetext>Created attachment 252994
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094343</commentid>
    <comment_count>9</comment_count>
      <attachid>253002</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-05-12 18:28:12 -0700</bug_when>
    <thetext>Created attachment 253002
Test case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094465</commentid>
    <comment_count>10</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-05-13 09:06:50 -0700</bug_when>
    <thetext>When the image does have an intrinsic size, any choice for the right or the bottom margin of the image is basically wrong. Drawing the border-image slices depends on knowing the boundaries of the image. The SVG specs does not give a way to know its bounding box. In other words, there is no way to know the rightmost/bottommost drawing point in an SVG. So the only valid point to start drawing a slice from an SVG, which does not have an intrinsic size, is its top-left point, i.e. (0,0).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094952</commentid>
    <comment_count>11</comment_count>
      <attachid>252994</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2015-05-14 16:21:23 -0700</bug_when>
    <thetext>Comment on attachment 252994
Patch

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

&gt; Source/WebCore/rendering/RenderBoxModelObject.cpp:924
&gt; +LayoutSize RenderBoxModelObject::calculateImageIntrinsicDimensions(StyleImage* image, const LayoutSize&amp; positioningAreaSize, ScaleByEffectiveZoomOrNot shouldScaleOrNot, bool* hasIntrinsicSize) const

I don&apos;t really like passing a pointer for this out value. But I guess it is less verbose that a reference and a bool flag. Would a imageHasIntrinsicSizeForIntrinsicDimensions() helper replicate too much of the logic from calculateImageIntrinsicDimensions?

&gt; LayoutTests/ChangeLog:14
&gt; +        image with no intrinsic size, all the slices has to be gotten from (0, 0)

Change &quot;has to be gotten&quot; to &quot;have to be extracted&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1096418</commentid>
    <comment_count>12</comment_count>
      <attachid>253483</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-05-20 18:08:53 -0700</bug_when>
    <thetext>Created attachment 253483
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1096434</commentid>
    <comment_count>13</comment_count>
      <attachid>253488</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-05-20 18:38:04 -0700</bug_when>
    <thetext>Created attachment 253488
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1096460</commentid>
    <comment_count>14</comment_count>
      <attachid>253497</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-05-20 19:30:46 -0700</bug_when>
    <thetext>Created attachment 253497
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1096467</commentid>
    <comment_count>15</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-05-20 20:10:20 -0700</bug_when>
    <thetext>The new patch deserves another review:

-- I had to refactor the nine piece image painting code. The previous patch was injecting the fix without changing the logic much. This makes the sequence of calculation not very obvious. The code was doing the same calculation for intrinsic and non-intrinsic cases. And when the pieces are to be drawn, new values were calculated for the non-intrinsic case.

-- I moved the painting code in RenderBoxModelObject::paintNinePieceImage() to a new function named NinePieceImage::paint(). The new code is restructured in a clearer way and from the beginning of this new function, the non-intrinsic case is taken into consideration.

-- I needed something similar to LengthBox or LayoutBoxExtent but in float. Since the implementations of LengthBox and LayoutBoxExtent were very similar and I did not want to a add a third one, I defined a new template class called BoxExtent. Since LengthBox has specific constructors for the Length members, I made LengthBox inherits from BoxExtent&lt;Length&gt; and I added these specific constructor to this new class. I made LayoutBoxExtent be a typedef of BoxExtent&lt;LayoutUnit&gt;. The new class which is named FloatBoxExtent is also a typedef of BoxExtent&lt;float&gt;.

-- As I mentioned in the ChangeLog that this patch is not agreeing with the css3 w3c specs. But I think this solution gives a more predictable rendering for the non-intrinsic-sized image when it is used as border-image.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1096469</commentid>
    <comment_count>16</comment_count>
      <attachid>253500</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-05-20 20:18:52 -0700</bug_when>
    <thetext>Created attachment 253500
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097505</commentid>
    <comment_count>17</comment_count>
      <attachid>253500</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-05-26 15:38:35 -0700</bug_when>
    <thetext>Comment on attachment 253500
Patch

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

&gt; Source/WebCore/platform/LengthBox.h:134
&gt; +    Vector&lt;T, 4&gt; m_sides;

This should probably use std::array instead of Vector.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097575</commentid>
    <comment_count>18</comment_count>
      <attachid>253772</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-05-26 19:31:02 -0700</bug_when>
    <thetext>Created attachment 253772
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097586</commentid>
    <comment_count>19</comment_count>
      <attachid>253772</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-05-26 21:18:21 -0700</bug_when>
    <thetext>Comment on attachment 253772
Patch

Clearing flags on attachment: 253772

Committed r184895: &lt;http://trac.webkit.org/changeset/184895&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1097587</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-05-26 21:18:27 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1105640</commentid>
    <comment_count>21</comment_count>
    <who name="David Vest">davve</who>
    <bug_when>2015-06-30 00:06:08 -0700</bug_when>
    <thetext>https://lists.w3.org/Archives/Public/www-style/2015May/0302.html seems to have run out of steam. I closed the corresponding blink bug http://code.google.com/p/chromium/issues/detail?id=492485 due to lack of consensus on what we should change to and why any alternative would be better.

I propose WebKit either revert this change for now or suggest an alternative specification text that matches what you want to implement/have implemented.

We&apos;re not in a particularly good position right now with regards to interoperability.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1105702</commentid>
    <comment_count>22</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-06-30 10:12:03 -0700</bug_when>
    <thetext>So you’re saying it’s important to change back to match Blink and not Firefox? Will that make interoperability better?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1105741</commentid>
    <comment_count>23</comment_count>
    <who name="David Vest">davve</who>
    <bug_when>2015-06-30 11:53:40 -0700</bug_when>
    <thetext>Changing back would align with blink and the specification. Current WebKit seems to be something new, not identical to Firefox. Even though this example might just be a bug, it&apos;s hard to tell when there is no specified behaviour. See:

https://doomdavve.github.io/gists/svg-in-border-image-4.html

Screenshot:

https://doomdavve.github.io/screenshots/border-image-differences.png</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1105750</commentid>
    <comment_count>24</comment_count>
      <attachid>255839</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-06-30 12:17:42 -0700</bug_when>
    <thetext>Created attachment 255839
Chrome display</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1105751</commentid>
    <comment_count>25</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-06-30 12:20:01 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; Changing back would align with blink and the specification. Current WebKit
&gt; seems to be something new, not identical to Firefox. Even though this
&gt; example might just be a bug, it&apos;s hard to tell when there is no specified
&gt; behaviour. See:
&gt; 
&gt; https://doomdavve.github.io/gists/svg-in-border-image-4.html
&gt; 
&gt; Screenshot:
&gt; 
&gt; https://doomdavve.github.io/screenshots/border-image-differences.png

How did you did get the Chrome display you showed in the picture border-image-differences.png. I downloaded Chrome version 43.0.2357.130 (64-bit) and I got the attached picture &apos;Chrome display&apos;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1105774</commentid>
    <comment_count>26</comment_count>
      <attachid>255844</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-06-30 13:32:02 -0700</bug_when>
    <thetext>Created attachment 255844
border-image-slicing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1105776</commentid>
    <comment_count>27</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-06-30 13:33:00 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; Changing back would align with blink and the specification. Current WebKit
&gt; seems to be something new, not identical to Firefox. Even though this
&gt; example might just be a bug, it&apos;s hard to tell when there is no specified
&gt; behaviour. See:
&gt; 
&gt; https://doomdavve.github.io/gists/svg-in-border-image-4.html
&gt; 
&gt; Screenshot:
&gt; 
&gt; https://doomdavve.github.io/screenshots/border-image-differences.png

I am going to explain the difference between the way Chrome and current Safari are displaying the test case: https://doomdavve.github.io/gists/svg-in-border-image-4.html since it has been confusing:

Chrome (based on the current display of Chrome as in the picture &apos;Chrome Display&apos;):

-- The size of the SVG is the size of the container element. So it is 200x200 for &lt;div class=&quot;test big&quot;&gt;, 100x100 for &lt;div class=&quot;test medium&quot;&gt; and 50x50 for &lt;div class=&quot;test small&quot;&gt;. In this case the source and destination rectangles are the same.

-- Since the slice is 20% and since the border is also 20% (40px for &apos;big&apos; and 20px for &apos;medium&apos; and 10px for &apos;small&apos;), the top-left corner, the left side and the top side and drawn from the image to the border without scaling.

-- Since the SVG drawing is 100x100 &lt;rect x=&quot;0&quot; y=&quot;0&quot; width=&quot;100&quot; height=&quot;100&quot; fill=&quot;green&quot;/&gt;, the border is drawn as if the SVG is drawn at the top-left point of each div element. For example, when drawing the top side for &lt;div class=&quot;test big&quot;&gt;, the source rect (40, 0)-(160, 40) to the destination rect (40, 0)-(160, 40) which draws only a green rectangle (40, 0)-(100, 40) and the rest is not drawn. And when drawing the top-right corner the source rect (160, 0)-(200, 40) to the destination rectangle (160, 0)-(200, 40) which draws nothing.


Safari:

-- It is not necessary to setContainerSizeForRenderer() in this case since the SVG does not have an intrinsic size. So no scaling is done here also.
-- We draw all the pieces from the top-left corner of the SVG. So for example when drawing the top side for &lt;div class=&quot;test big&quot;&gt;, we draw the source rect (0, 0)-(40, 40) to the destination rectangle (0, 0)-(40, 40). When we draw the top side for this dive, we draw the source rect (0, 0)-(120, 40) to the destination rectangle (40, 0)-(160, 40), which leaves (140,0)-(160,40) blank. And when we draw the top-right conner, we draw the source rect (0, 0)-(40, 40) to the destination rectangle (160, 0)-(200, 40).

The main difference between the display of Chrome and current Safari is how slice the SVG image when it does not have an intrinsic size. I attached the image border-image-slicing which shows the difference between Chrome and current Safari when slicing the SVG which has no intrinsic size for the big div.

For this test case, the border and the slice are the same. When the border and the slice are different, it is really hard to even expect what is going to be drawn in the case of Chrome. As an example change the line &quot;border-image-slice: 20% fill;&quot; in the test case to be &quot;border-image-slice: 30% fill;&quot; or &quot;border-image-slice: 10% fill;&quot; and try to find an explanation for the display you get. Having the slices to start from the top-left corner of the SVG in the case of non-intrinsic size makes things much easier to explain and predict.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1105782</commentid>
    <comment_count>28</comment_count>
    <who name="David Vest">davve</who>
    <bug_when>2015-06-30 13:36:51 -0700</bug_when>
    <thetext>(In reply to comment #25)
&gt; (In reply to comment #23)
&gt; &gt; Changing back would align with blink and the specification. Current WebKit
&gt; &gt; seems to be something new, not identical to Firefox. Even though this
&gt; &gt; example might just be a bug, it&apos;s hard to tell when there is no specified
&gt; &gt; behaviour. See:
&gt; &gt; 
&gt; &gt; https://doomdavve.github.io/gists/svg-in-border-image-4.html
&gt; &gt; 
&gt; &gt; Screenshot:
&gt; &gt; 
&gt; &gt; https://doomdavve.github.io/screenshots/border-image-differences.png
&gt; 
&gt; How did you did get the Chrome display you showed in the picture
&gt; border-image-differences.png. I downloaded Chrome version 43.0.2357.130
&gt; (64-bit) and I got the attached picture &apos;Chrome display&apos;.

Yes, I must have changed some parameters since taking that shot. I get the same rendering as you in Chrome, and I incorrectly thought that was what the screenshow was showing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1105787</commentid>
    <comment_count>29</comment_count>
    <who name="David Vest">davve</who>
    <bug_when>2015-06-30 13:44:53 -0700</bug_when>
    <thetext>Thanks for your explanation!

&gt; Safari:
&gt; 
[snip]
&gt; Having the slices to start from the top-left corner
&gt; of the SVG in the case of non-intrinsic size makes things much easier to
&gt; explain and predict.

I&apos;m not sure I agree WebKit nightly behaviour is easier to predict (or useful). An SVG with no intrinsic size may still be able to scale to the viewport and be useful as a border-image:

http://doomdavve.github.io/gists/svg-in-border-image-5.html#no-intrinsic-relative

So there may be cases where such an SVG makes sense to slice. It just depends on how the SVG is written. There are many ways to make a raster bitmap make little sense as a border-image too. On the flip size, when is rendering from top-left (0,0) in each piece more useful?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1105864</commentid>
    <comment_count>30</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-06-30 15:29:15 -0700</bug_when>
    <thetext>(In reply to comment #29)
&gt; Thanks for your explanation!
&gt; 
&gt; &gt; Safari:
&gt; &gt; 
&gt; [snip]
&gt; &gt; Having the slices to start from the top-left corner
&gt; &gt; of the SVG in the case of non-intrinsic size makes things much easier to
&gt; &gt; explain and predict.
&gt; 
&gt; I&apos;m not sure I agree WebKit nightly behaviour is easier to predict (or
&gt; useful). An SVG with no intrinsic size may still be able to scale to the
&gt; viewport and be useful as a border-image:
&gt; 
&gt; http://doomdavve.github.io/gists/svg-in-border-image-5.html#no-intrinsic-
&gt; relative
&gt; 
&gt; So there may be cases where such an SVG makes sense to slice. It just
&gt; depends on how the SVG is written. There are many ways to make a raster
&gt; bitmap make little sense as a border-image too. On the flip size, when is
&gt; rendering from top-left (0,0) in each piece more useful?

I attached the screenshot Safari-Chrome-Comparison which compares your last test case in Chrome and current Safari in the case of no-intrisic size. I am not sure why you consider the Chrome behavior acceptable or predictable. And I am wondering why WebKit has to implement this behavior and why you consider it an interoperability issue that WebKit has to conform to. I find it difficult myself to explain the Chrome display in the screenshot. But I know easily how to explain current Safari display.

I think we are not discussing two implementation here. I think we should discuss why you prefer Chrome&apos;s way to display the image-border in this case. 

Here is what I think about the image-border with no intrinsic size and why I prefer it the way current Safari is doing it.

-- The solution we implement in current Safari is not more useful than what Chrome is doing. As in the attached picture, Chrome is not easily predictable in some cases but Safari implementation is always easy to predict.

-- I understand the SVG was designed to be scalable. So setting an intrinsic size in the SVG is not necessary when it is displayed as an image.

-- But I think when the SVG is used as an image-border, it has to have an intrinsic size to get a predictable display. The main reason for this requirement is we need the size to slice the image from the four sides and scale these slices into the border widths. If no intrinsic size is specified, we can&apos;t guess the desired size correctly all the times since it depends on the drawing in the SVG.

-- I think, the message to the user should be: &quot;if you want to have a predictable border, you have to set an intrinsic size for your image; we are not going to guess what the size should be because we can&apos;t get it correct for all cases&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1105865</commentid>
    <comment_count>31</comment_count>
      <attachid>255866</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-06-30 15:29:34 -0700</bug_when>
    <thetext>Created attachment 255866
Safari-Chrome-Comparison</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1105870</commentid>
    <comment_count>32</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-06-30 15:41:10 -0700</bug_when>
    <thetext>(In reply to comment #29)
&gt; Thanks for your explanation!
&gt; 
&gt; &gt; Safari:
&gt; &gt; 
&gt; [snip]
&gt; &gt; Having the slices to start from the top-left corner
&gt; &gt; of the SVG in the case of non-intrinsic size makes things much easier to
&gt; &gt; explain and predict.
&gt; 
&gt; I&apos;m not sure I agree WebKit nightly behaviour is easier to predict (or
&gt; useful). An SVG with no intrinsic size may still be able to scale to the
&gt; viewport and be useful as a border-image:
&gt; 
&gt; http://doomdavve.github.io/gists/svg-in-border-image-5.html#no-intrinsic-
&gt; relative
&gt; 
&gt; So there may be cases where such an SVG makes sense to slice. It just
&gt; depends on how the SVG is written. There are many ways to make a raster
&gt; bitmap make little sense as a border-image too. On the flip size, when is
&gt; rendering from top-left (0,0) in each piece more useful?

Yes I agree. An SVG with &quot;all&quot; the lengths relative can be displayed as in Chrome display since this SVG will fit nicely in any rectangle. But I think it is really difficult to author such an SVG. How can you express a stoke width in relative units and get the desired results? But if SVG with relative lengths is very common and we agree on that, I think it will be predictable and the implementation in WebKit is very straightforward: check for &quot;all&quot; relative lengths and change an if-statment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1106008</commentid>
    <comment_count>33</comment_count>
    <who name="David Vest">davve</who>
    <bug_when>2015-07-01 00:56:14 -0700</bug_when>
    <thetext>(In reply to comment #30)
&gt; I attached the screenshot Safari-Chrome-Comparison which compares your last
&gt; test case in Chrome and current Safari in the case of no-intrisic size. I am
&gt; not sure why you consider the Chrome behavior acceptable or predictable.

I don&apos;t care much for that particular case (no-intrinsic). I just want implementations to match each other and the spec. I don&apos;t care how broken the rendering looks in that (nonsensical) case.

&gt; And I am wondering why WebKit has to implement this behavior

Because it is in the spec. Otherwise we must change the spec. If there is a plan to change the spec and relevant people agree with it and spec text is written, I&apos;m happy to help change Blink to match.

&gt; and why you consider it an interoperability issue that WebKit has to conform to.

The interoperability issue is that WebKit has now changed to a behavior not matched by any other browser (AFAICT) or the spec. Blink, WebKit and IE (as far as my testing goes) all had the same behavior as the spec. So it feels like we&apos;re moving in the wrong direction.

(Also, I assume you&apos;ve read the thread starting with dino at:

https://lists.w3.org/Archives/Public/www-style/2015May/0302.html
)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107240</commentid>
    <comment_count>34</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-07-06 15:14:09 -0700</bug_when>
    <thetext>(In reply to comment #33)
&gt; (In reply to comment #30)
&gt; &gt; I attached the screenshot Safari-Chrome-Comparison which compares your last
&gt; &gt; test case in Chrome and current Safari in the case of no-intrisic size. I am
&gt; &gt; not sure why you consider the Chrome behavior acceptable or predictable.
&gt; 
&gt; I don&apos;t care much for that particular case (no-intrinsic). I just want
&gt; implementations to match each other and the spec. I don&apos;t care how broken
&gt; the rendering looks in that (nonsensical) case.
&gt; 

Yes the rendering looks broken in that case but this what the specs says to draw it. This particular bug is about fixing the broken rendering for this (nonsensical) case.

&gt; &gt; And I am wondering why WebKit has to implement this behavior
&gt; 
&gt; Because it is in the spec. Otherwise we must change the spec. If there is a
&gt; plan to change the spec and relevant people agree with it and spec text is
&gt; written, I&apos;m happy to help change Blink to match.
&gt; 

Okay I agree with you but I am still new to the WebKit and the w3c communities and I do not know how to move things forward especially with things that do not conform to the specs. If you can help out, this will be great.

&gt; &gt; and why you consider it an interoperability issue that WebKit has to conform to.
&gt; 
&gt; The interoperability issue is that WebKit has now changed to a behavior not
&gt; matched by any other browser (AFAICT) or the spec. Blink, WebKit and IE (as
&gt; far as my testing goes) all had the same behavior as the spec. So it feels
&gt; like we&apos;re moving in the wrong direction.
&gt; 
&gt; (Also, I assume you&apos;ve read the thread starting with dino at:
&gt; 
&gt; https://lists.w3.org/Archives/Public/www-style/2015May/0302.html
&gt; )

Yes I read the thread and maybe it was mistake not to get involved on time. Do you think the thread can be revived? Do you think email is the right way to discuss this subtle issue? Is not it better to do it over the phone so we can get an agreement faster?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116188</commentid>
    <comment_count>35</comment_count>
    <who name="David Vest">davve</who>
    <bug_when>2015-08-10 02:01:14 -0700</bug_when>
    <thetext>(/me back from vacation. Sorry for the silence.)

Brad added

https://lists.w3.org/Archives/Public/www-style/2015Jul/0279.html

while I was gone. Getting him and other interested parties on www-style onboard with your change would be a good first step, I think.

My preference is to handle this through e-mail and on the proper lists using demos and snippets as we&apos;ve done so far. I would be far less useful over phone or video.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1116539</commentid>
    <comment_count>36</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2015-08-11 08:56:24 -0700</bug_when>
    <thetext>The issue will be discussed in the next w3 csswg meeting: https://wiki.csswg.org/planning/paris-2015</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>242825</attachid>
            <date>2014-12-08 10:31:50 -0800</date>
            <delta_ts>2015-05-12 13:48:57 -0700</delta_ts>
            <desc>Safari-Rendering</desc>
            <filename>Safari-Rendering.png</filename>
            <type>image/png</type>
            <size>16123</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">iVBORw0KGgoAAAANSUhEUgAAAfwAAAEiCAYAAAAcZmBMAAAKvGlDQ1BJQ0MgUHJvZmlsZQAASImV
lwdQk9kWx+/3pYeEFghFSuhNegfpNXTpICohCSGUEFJQsaEiruBaEBHBsqJLVXAttEVFRLEtgg37
giwCyrpYUBSV9wGP8N6bt/PmnZk73y9nzvfPOTf3zvwDAGmEweenw7IAZPBEgnA/T1psXDwN9xwQ
gAyQB0bAnMEU8j3CwoLA38bHBwCaed41ndH6+7r/GnIstpAJABSGcBJLyMxA+Cyyupl8gQgAVB6S
11kl4s9wNcIKAqRBhNtmmDPHPTOcNMd/zNZEhnshPAkAnsRgCDgAkNBInpbN5CA6JF2ELXgsLg/h
SIRdmSkMFsLFCC/OyMic4XaEDZP+RYfzb5pJEk0GgyPhuVlmA+/NFfLTGWv+z+3435GRLp7/Dm1k
kVIE/uHIUx/Zs+q0zEAJ85JCQueZy5qtn+UUsX/UPDOFXvHzzGJ4B86zOC3KY54ZgoV3uSJ65DwL
MsMl+myhT4REn00PkvSQHiLhZK4vfZ5zUiJj5jmbGx0yz8K0iMCFGi9JXiAOl/ScLPCVzJghXOiN
yVjoQZQS6b/QW6ykBxbb20eS50VJ6vkiT4kmPz1MUs9O95PkhdkRkndFyAGb51RGQNiCTphkf0Ak
SAFiwAMswAYCkAQyQToQARrwBlwgBHzkEwMgx0PEXi2aGcIrk79GwOWkiGgeyC1i0+g8ptlimpWF
pQ0AM3dy7id/T529axD1xkIuqx0AxwIkyVnIMXQAaHkJAOXjQk7nHXJcdgNwvocpFmTP5WaOLcAA
InLbFYAK0AA6wBCYAitgB5yBO/ABASAUmSQOrABMZJ4MZJJVYB3YBPJBIdgN9oEycAQcA9XgJDgN
mkAbuASugpugB9wHT0A/GAKvwTj4CKYgCMJBZIgCqUCakB5kAllBDpAr5AMFQeFQHJQIcSAeJIbW
QVugQqgIKoOOQjXQL1ALdAm6DvVCj6ABaBR6B32BUTAJVoDVYX3YHHaAPeBAOBJeDnPgLDgHzoN3
wqVwBXwCboQvwTfh+3A//BqeQAGUFIqK0kKZohxQXqhQVDwqGSVAbUAVoEpQFah6VCuqC3UX1Y8a
Q31GY9EUNA1tinZG+6Oj0Ex0FnoDege6DF2NbkR3ou+iB9Dj6O8YMkYNY4JxwtAxsRgOZhUmH1OC
qcScw1zB3McMYT5isVgq1gBrj/XHxmFTsWuxO7CHsA3YdmwvdhA7gcPhVHAmOBdcKI6BE+HycQdw
J3AXcXdwQ7hJvBReE2+F98XH43n4zfgSfC3+Av4Ofhg/RZAl6BGcCKEEFmENYRfhOKGVcJswRJgi
yhENiC7ESGIqcROxlFhPvEJ8SnwvJSWlLeUotVSKK5UrVSp1Suqa1IDUZ5I8yZjkRUogiUk7SVWk
dtIj0nsymaxPdifHk0XkneQa8mXyc/KkNEXaTJouzZLeKF0u3Sh9R/qNDEFGT8ZDZoVMjkyJzBmZ
2zJjsgRZfVkvWYbsBtly2RbZPtkJOYqcpVyoXIbcDrlauetyI/I4eX15H3mWfJ78MfnL8oMUFEWH
4kVhUrZQjlOuUIYUsAoGCnSFVIVChZMK3QrjivKKNorRiqsVyxXPK/ZTUVR9Kp2aTt1FPU19QP2i
pK7kocRW2q5Ur3RH6ZPyImV3ZbZygXKD8n3lLyo0FR+VNJU9Kk0qz1TRqsaqS1VXqR5WvaI6tkhh
kfMi5qKCRacXPVaD1YzVwtXWqh1Tu6U2oa6h7qfOVz+gfll9TIOq4a6RqlGscUFjVJOi6arJ1SzW
vKj5iqZI86Cl00ppnbRxLTUtfy2x1lGtbq0pbQPtKO3N2g3az3SIOg46yTrFOh0647qausG663Tr
dB/rEfQc9FL09ut16X3SN9CP0d+m36Q/YqBsQDfIMagzeGpINnQzzDKsMLxnhDVyMEozOmTUYwwb
2xqnGJcb3zaBTexMuCaHTHoXYxY7LuYtrljcZ0oy9TDNNq0zHTCjmgWZbTZrMntjrmseb77HvMv8
u4WtRbrFcYsnlvKWAZabLVst31kZWzGtyq3uWZOtfa03Wjdbv7UxsWHbHLZ5aEuxDbbdZtth+83O
3k5gV283aq9rn2h/0L7PQcEhzGGHwzVHjKOn40bHNsfPTnZOIqfTTn85mzqnOdc6jywxWMJecnzJ
oIu2C8PlqEu/K8010fUn1343LTeGW4XbC3cdd5Z7pfuwh5FHqscJjzeeFp4Cz3Oen7ycvNZ7tXuj
vP28C7y7feR9onzKfJ77avtyfOt8x/1s/db6tftj/AP99/j30dXpTHoNfTzAPmB9QGcgKTAisCzw
RZBxkCCoNRgODgjeG/w0RC+EF9IUCkLpoXtDn4UZhGWF/boUuzRsafnSl+GW4evCuyIoESsjaiM+
RnpG7op8EmUYJY7qiJaJToiuif4U4x1TFNMfax67PvZmnGocN645HhcfHV8ZP7HMZ9m+ZUMJtgn5
CQ+WGyxfvfz6CtUV6SvOr5RZyVh5JhGTGJNYm/iVEcqoYEwk0ZMOJo0zvZj7ma9Z7qxi1ijbhV3E
Hk52SS5KHuG4cPZyRlPcUkpSxrhe3DLu21T/1COpn9JC06rSptNj0hsy8BmJGS08eV4arzNTI3N1
Zi/fhJ/P789yytqXNS4IFFQKIeFyYbNIATE/t8SG4q3igWzX7PLsyVXRq86sllvNW31rjfGa7WuG
c3xzfl6LXstc27FOa92mdQPrPdYf3QBtSNrQsVFnY97GoVy/3OpNxE1pm37bbLG5aPOHLTFbWvPU
83LzBrf6ba3Ll84X5Pdtc9525Af0D9wfurdbbz+w/XsBq+BGoUVhSeHXHcwdN360/LH0x+mdyTu7
d9ntOrwbu5u3+8Eetz3VRXJFOUWDe4P3NhbTiguKP+xbue96iU3Jkf3E/eL9/aVBpc0HdA/sPvC1
LKXsfrlnecNBtYPbD346xDp057D74foj6kcKj3z5ifvTw6N+Rxsr9CtKjmGPZR97eTz6eNfPDj/X
VKpWFlZ+q+JV9VeHV3fW2NfU1KrV7qqD68R1oycSTvSc9D7ZXG9af7SB2lB4CpwSn3r1S+IvD04H
nu4443Cm/qze2YPnKOcKGqHGNY3jTSlN/c1xzb0tAS0drc6t5341+7WqTaut/Lzi+V0XiBfyLkxf
zLk40c5vH7vEuTTYsbLjyeXYy/c6l3Z2Xwm8cu2q79XLXR5dF6+5XGu77nS95YbDjaabdjcbb9ne
Oveb7W/nuu26G2/b327ucexp7V3Se+GO251Ld73vXr1Hv3fzfsj93gdRDx72JfT1P2Q9HHmU/ujt
4+zHU09yn2KeFjyTfVbyXO15xe9Gvzf02/WfH/AeuPUi4sWTQebg6z+Ef3wdyntJflkyrDlcM2I1
0jbqO9rzatmrodf811Nj+X/K/XnwjeGbs3+5/3VrPHZ86K3g7fS7He9V3ld9sPnQMRE28fxjxsep
TwWTKpPVnx0+d32J+TI8teor7mvpN6Nvrd8Dvz+dzpie5jMEjFkrgEIWnJwMwLsqAMhxiHdAfDVR
es4zzwY05/NnCfwdz/nq2bADoModgKhcAIIQj3IYWXq5c956xjJFugPY2lqy/hnCZGurOS0S4jwx
k9PT79UBwLUC8E0wPT11aHr623Gk2UcAtGfNefWZwCL/YIoMlDUUE25/qMsF/xH/AMgcC6Cn44Z9
AAABnWlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpu
czptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40LjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9
Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRm
OkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczpleGlmPSJodHRwOi8v
bnMuYWRvYmUuY29tL2V4aWYvMS4wLyI+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj41
MDg8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24+
MjkwPC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwv
cmRmOlJERj4KPC94OnhtcG1ldGE+Co58rrsAADJRSURBVHgB7d0JfFTlvf/xbyaDCRAUCIsroIJo
EZG6oGiRat2xaBW0FNTWYqt4rdJ7lf5dWmm9F+11aSvWfWm8V7C3yL9ob6vFWhesWxHZRBEREQyr
QCAJ2e7zO5MzJCHJnEnIcuZ8zoswM+c851nez8z8znnOMlkbN26scpNqTv5r/7G+Zanm1Vye6nl9
5aRah+UIIIAAAgiERSArK6tZVa1v/cbm1V1mr+OVlZVeJSzo1vyz+X4g9h9r1jboPFunvrQ18/Kf
B03np+cRAQQQQACB9ixQN/A2VNeG0tU3v7F5tiwWi8kea/5ZfI3bf/5fWVmZSktLZY/2V1FRkVxW
s5J1A3Pd15a2vnl+Ho0t89M09tjc9RvLm2UIIIAAAgikEqgv6KZap+byxtavb1ndefW9tnnZ2dnq
0KGD95eTk+M92nz7i/tB3QL99u3bFY/H1b1bd+Xl5XlbCTUryHMEEEAAAQQQaL8CNjpfVFSkzV9u
VklJiTp37iwL/F7QX716dZXtzW/dutVb0LtXb5VXlKuyYteQfvttGjVDAAEEEEAAAV/AAnssO6Z4
dlyF6wq9Hfm9997b29OP79ixQ/ZnY/49e/T0hvT9FXlEAAEEEEAAgfAI2CHvivIK789iusX3LVu2
qFOnTooXFhZq27ZtGjBggHaW7QxPq6gpAggggAACCDQoYDG9Y8eO+uijj9SlSxdlbdiwoWrTpk3e
3n15eXmDK7IAAQQQQAABBMIlYOflrd+wXt27d1d8586dKi4ulgV7zn4PV0dSWwQQQAABBBoTsNhu
Md5ifcyCPIG+MS6WIYAAAgggEF4BP84nr8P3b8AT3iZRcwQQQAABBBCoKeAHe3uM2wL28GvypP/c
bnLQOa9z8gYH6eew+xrWJ3a55Pai7d6jn6I1y/LLbOpjS9S1qXVhPQSiINDQ90Z7bXtbf0eEzaup
/ejH+OQevhvYb2pekV7P3rBdu3X1NpoM1YfdEyh2soXlvXnzZi/ot2ZZza1/S9a1uXVjfQQyWaDu
90Z7bWt7+Y4Ii1dz+tGPTV7A9zIi3jfJ0y552JNBvm4lLG8ro2xnmffYWmXVrUe6r1vaJd36kB6B
KAnU/N5or+1uT98RYfBqbj9aG3ft4bsXTOkL2FZqS09WhnVWa5bV3Da1Rl2bW0fWRyCTBfzvjfba
xj3xHfHZZ5/p7rvv1o9+9CP169evWU1t717NaZzFD/uLrVmzRl988UVz8or0unaHwpae/DL8x5Ys
b0+Vsafyacm2kjcCYRKYMWOGvvzyy8BVbu+fwebWzyzuuusu78Zx9957r3foMzBOPQmbW596smw3
syzGW6yP77vvvt6v61j0b+pU5S7qr/zHG6p87z1VfvKxl03s4EMVO/poxU44UVnu9n7pTJU7ClX1
xSuq3PCWKrYs81bN3megYj2OV9a+IxTr1Dud7PRFSaHmbnhF8za9raVFifyOyBuo4d2P02k9Rmjf
3PTyq1V4E9hKd5Z6W6UHHnigJoyfUCu7hl54/ROwrA0bN3jXXO7be98m/QBSc94LyfoHrGsyPU8Q
QKBRgQ8//FArPl6hEaeM0Inue9V+FS3VtEc+y6kKaeryZnxH2HeoBftRo0bp8ccf17hx47zXt9xy
i3L2ymlqjVr08GyTK7UHVuzVq5d69uzZ/CH9qmUfqPyPz6rrJ8vVuVNnF5B7edWr2rxe25+frS+X
LFL8mxcoa+DhgapduXmxKlb8t7qWLXA/5pOrWNfO3nqVJSu0vXCJvtw0X9mHjFOs26BA+b2/dbEe
X/W03tVi5XbupE753b31PixZrfc3f6i3N7+n7/b5to7aO1h+dQtN92THnaU7decv7/RudXj66ae7
UyWDvevtgxs0bW5urnfv5LVfrJVt0KW75bonviSC1rWuZ1NeFxdtVkV2F+W5oyvl7sITd65js6cv
136msi77qWdedWbF6/XZ9k46qEfi/SgVa+1nXyrPbcx26VhPge5mF+WuIvUsaXbdWiwDv41dc1zr
pMTBqjL3rOMeMW203lb2jhz1cPf77ljL024a4mpQc57ZNrOf7WYkdrJW7anC/ZaI3C+LpQ6kifXK
tWP7TuW47xV/jcryMpVXVikrlu3yz1ZW7QLSfmUn7L722mve94V9Lstc/nPnztWCBQs0ZswY70u8
sUz3xGe5sfybs6w53xFvvPGGjjzySJ122mlewP/617+u9evXy+afcsopTa5WW3ktW5bYEW1yxVOs
aFeRWdu8G+/YNfj2It2/yvXrVP7/n9W+a1Yrr2cvZbk3vosu3p89t3m2zNJY2lT5V2z/QhUf/7f2
zV6iLr26KdYxV+6T4/3Zc5tnyyyNpU2V39riL/T4p09rYc5ydXdbN53cBkl2Vtz7s+c2z5ZZGkub
Kr/6lqdwrrXYfoL4l//5S+/DO2nSJB1zzDG1ljf2wsoOOtnPIdoWnf00og3lpLOulVFfO9OdF7Su
zUtXrnn3T9Sxw07WsEse0osPnaoht7/tsizS/YMG6Z63Nzct+/JluvobZ+nP6yzYJaaXbxupswo+
9F+qaP4DOv2MW/XDY4doYkGdD6tb/9ohQzR59opk+t2fNLOOu2fY7Dl+Gxc9eamOdfUf4v0d6x4H
acTEaZq3oihQGZuXvajZb68JlNZPZGWffvcDOtZ5zl5lmxuJadGjV7l5p+rFtbtu+73ooQs15NT7
XS83PM2/f4QG3WPvhXqm4vka+9WvasZHu3KoWPeWfvKtMbr85tnaklWiZ3/wA82sXr7jiyVa8OmW
3TIq27BYf/7LEnm/QFJRrNVL39S789/TBx984PbEl+vTlYUqKQ/+ua1bgN3//OGHH/bugX7ZZZd5
P29qaeynTocNG6YePXrUXWW31+l+blsz/W6VDTDD6mffa9b+b37zm7XWuOCCCzR8+PBalzHXShDg
Rd32293pLBjbnerSWVY3bZDX1p8t9eeXH/eDfQCL3ZJUvfkPdV25XHEX2F2Y8P5V/+ce3LZtljsr
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
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>242826</attachid>
            <date>2014-12-08 10:32:18 -0800</date>
            <delta_ts>2015-05-12 13:49:13 -0700</delta_ts>
            <desc>FireFox-Rendering</desc>
            <filename>FireFox-Rendering.png</filename>
            <type>image/png</type>
            <size>47063</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">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
k9PT79UBwLUC8E0wPT11aHr623Gk2UcAtGfNefWZwCL/YIoMlDUUE25/qMsF/xH/AMgcC6Cn44Z9
AAABnWlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpu
czptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40LjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9
Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRm
OkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczpleGlmPSJodHRwOi8v
bnMuYWRvYmUuY29tL2V4aWYvMS4wLyI+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4z
Mzk8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24+
MzU5PC9leGlmOlBpeGVsWURpbWVuc2lvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgIDwv
cmRmOlJERj4KPC94OnhtcG1ldGE+Ctx4mMkAAEAASURBVHgB7J0HoFTF1cfPK/CoCgpWEBAVgiKK
HUVFiBordiRGo4nEWIJiVCQmoqgQTYzGGiGfGo0dFbErYC8IiCBdioICovTy+vvOb+7+9w3XfRRb
mgfum5lT/ufMmbJ37969m/fZZ59VmVNVVVU4qFdUVFhlZWVoL1q0yAoLC6127dpZnvQp8/LyLD8/
30pLS62srMyaNm0a9ODFmNL94osvAl6tWrXWwkMuwhYs4YmvElz8xpSLF8tVp18cEyZMsObNm1uz
Zs0kCpjCpUSPWKiXl5e7Xom9fdeFNvDpT63HFRfb2GuG2GkP/9MaPt7L/mS9bfDpu2SxqGCPLQfx
KSfw5740wK6Zd4LdddbO9smLV4f6385sZ3NfHGADpjaz+S89bhcPHmZdti7IYBbbM/1OtDu2vMKe
uXC/wBN+aBRPsl+d+Ff7zcN/s3b11s6P/KdztKF86cXxq47vygXP2jEXf2kP//Nn1iDTV2wgfIrE
U3ut+J2JvOyLmfbevALbq0MLm3ZfL7vO8/rgGe1DLrFDZ83Mx+3E37xm1z9yU+jr1+2X4gATjBjn
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
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>248699</attachid>
            <date>2015-03-15 19:44:20 -0700</date>
            <delta_ts>2015-05-12 13:35:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139405-20150315194351.patch</filename>
            <type>text/plain</type>
            <size>13779</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4MTUxNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBACisyMDE1LTAzLTE1ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgQW4gU1ZHIHdp
dGggbm8gaW50cmluc2ljIHNpemUgZ2V0cyBpbmNvcnJlY3Qgc2l6ZSB3aGVuIHJlZmVyZW5jZWQg
ZnJvbSB0aGUgQ1NTIGJvcmRlci1pbWFnZSBwcm9wZXJ0eS4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzOTQwNS4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIFdoZW4gdXNpbmcgYW4gU1ZHIGlt
YWdlLCB3aGljaCBoYXMgbm8gaW50cmluc2ljIHNpemUsIGFzIGFuIGJvcmRlci1pbWFnZQorICAg
ICAgICB3ZSBzaG91bGQgc2V0IHRoZSBjb250YWluZXIgc2l6ZSBvZiB0aGUgcmVuZGVyZXIgdG8g
YmUgdGhlIHNpemUgb2YgdGhlIAorICAgICAgICBjb250YWluZXIgcGFkZGluZyByZWN0YW5nbGUg
ZXhwYW5kZWQgYnkgdGhlIHNpemUgb2YgdGhlIGJvcmRlci1pbWFnZSBzbGljZXMuCisgICAgICAg
IFRoZSBidWcgaGFwcGVucyBiZWNhdXNlIHdlIGFyZSB1c2luZyB0aGUgYm9yZGVyIHNpemUgaW5z
dGVhZCBldmVuIHRob3VnaAorICAgICAgICB0aGUgYm9yZGVyLWltYWdlIHNsaWNlcyBhcmUgc3Ry
ZXRjaGVkIHRvIGZpbGwgaW4gdGhlIGNvbnRhaW5lciBib3JkZXIuIFRoZQorICAgICAgICBnb2Fs
IGluICB0aGlzIGNhc2UgaXMgIHRvIHNldCB0aGUgc2l6ZSBvZiB0aGUgbWlkZGxlIGFyZWEgb2Yg
dGhlIGltYWdlIHRvCisgICAgICAgIGJlIGVxdWFsIHRvIHRoZSBwYWRkaW5nIHNpemUgb2YgdGhl
IGNvbnRhaW5lci4gQnkgZG9pbmcgdGhhdCwgdGhlIG1pZGRsZQorICAgICAgICBhcmVhIG9mIHRo
ZSBpbWFnZSB3aWxsIGJlIGRyYXduIHRoZSBzYW1lIHNpemUgcmVnYXJkbGVzcyBvZiBob3cgbXVj
aCB0aGUKKyAgICAgICAgYm9yZGVyIG9mIHRoZSBjb250YWluZXIgaXMgc2V0IHRvLgorCisgICAg
ICAgIFRlc3Q6IGZhc3QvYm9yZGVycy9ib3JkZXItaW1hZ2UtZmlsbC1uby1pbnRyaW5zaWMtc2l6
ZS5odG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OmNhbGN1bGF0ZUltYWdlSW50cmluc2ljRGltZW5z
aW9ucyk6IFJldHVybgorICAgICAgICB3aGV0aGVyIHRoZSB0aGUgaW1hZ2UgYW4gaW50cmluc2lj
IHNpemUgb3Igbm90LgorICAgICAgICAKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveE1vZGVs
T2JqZWN0OjpwYWludE5pbmVQaWVjZUltYWdlKTogU2V0IHRoZSBpbWFnZSBzaXplIHRvCisgICAg
ICAgIGJlIGVxdWFsIHRvIHRoZSBwYWRkaW5nIHNpemUgZXhwYW5kZWQgYnkgdGhlIGJvcmRlci1p
bWFnZSBzbGljZXMuCisKIDIwMTUtMDMtMTUgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBh
cHBsZS5jb20+CiAKICAgICAgICAgUmVkdWNlIHRoZSBzaWRlLWVmZmVjdHMgb2YgYW5pbWF0aW9u
cyB0dXJuaW5nIG9mZiBvdmVybGFwIHRlc3RpbmcKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcAkocmV2aXNpb24gMTgxNTEzKQor
KysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtOTE4LDggKzkxOCwxMSBAQCBzdGF0aWMgaW5saW5lIExheW91dFNpemUg
cmVzb2x2ZUFnYWluc3RJCiAgICAgcmV0dXJuIExheW91dFNpemUoc2l6ZS53aWR0aCgpLCBzb2x1
dGlvbkhlaWdodCk7CiB9CiAKLUxheW91dFNpemUgUmVuZGVyQm94TW9kZWxPYmplY3Q6OmNhbGN1
bGF0ZUltYWdlSW50cmluc2ljRGltZW5zaW9ucyhTdHlsZUltYWdlKiBpbWFnZSwgY29uc3QgTGF5
b3V0U2l6ZSYgcG9zaXRpb25pbmdBcmVhU2l6ZSwgU2NhbGVCeUVmZmVjdGl2ZVpvb21Pck5vdCBz
aG91bGRTY2FsZU9yTm90KSBjb25zdAorTGF5b3V0U2l6ZSBSZW5kZXJCb3hNb2RlbE9iamVjdDo6
Y2FsY3VsYXRlSW1hZ2VJbnRyaW5zaWNEaW1lbnNpb25zKFN0eWxlSW1hZ2UqIGltYWdlLCBjb25z
dCBMYXlvdXRTaXplJiBwb3NpdGlvbmluZ0FyZWFTaXplLCBTY2FsZUJ5RWZmZWN0aXZlWm9vbU9y
Tm90IHNob3VsZFNjYWxlT3JOb3QsIGJvb2wqIGhhc0ludHJpbnNpY1NpemUpIGNvbnN0CiB7Cisg
ICAgaWYgKGhhc0ludHJpbnNpY1NpemUpCisgICAgICAgICpoYXNJbnRyaW5zaWNTaXplID0gdHJ1
ZTsKKwogICAgIC8vIEEgZ2VuZXJhdGVkIGltYWdlIHdpdGhvdXQgYSBmaXhlZCBzaXplLCB3aWxs
IGFsd2F5cyByZXR1cm4gdGhlIGNvbnRhaW5lciBzaXplIGFzIGludHJpbnNpYyBzaXplLgogICAg
IGlmIChpbWFnZS0+aXNHZW5lcmF0ZWRJbWFnZSgpICYmIGltYWdlLT51c2VzSW1hZ2VDb250YWlu
ZXJTaXplKCkpCiAgICAgICAgIHJldHVybiBMYXlvdXRTaXplKHBvc2l0aW9uaW5nQXJlYVNpemUu
d2lkdGgoKSwgcG9zaXRpb25pbmdBcmVhU2l6ZS5oZWlnaHQoKSk7CkBAIC05NDEsNiArOTQ0LDkg
QEAgTGF5b3V0U2l6ZSBSZW5kZXJCb3hNb2RlbE9iamVjdDo6Y2FsY3VsYQogICAgIGlmICghcmVz
b2x2ZWRTaXplLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHJlc29sdmVkU2l6ZTsKIAorICAg
IGlmIChoYXNJbnRyaW5zaWNTaXplKQorICAgICAgICAqaGFzSW50cmluc2ljU2l6ZSA9IGZhbHNl
OworCiAgICAgLy8gSWYgdGhlIGltYWdlIGhhcyBvbmUgb2YgZWl0aGVyIGFuIGludHJpbnNpYyB3
aWR0aCBvciBhbiBpbnRyaW5zaWMgaGVpZ2h0OgogICAgIC8vICogYW5kIGFuIGludHJpbnNpYyBh
c3BlY3QgcmF0aW8sIHRoZW4gdGhlIG1pc3NpbmcgZGltZW5zaW9uIGlzIGNhbGN1bGF0ZWQgZnJv
bSB0aGUgZ2l2ZW4gZGltZW5zaW9uIGFuZCB0aGUgcmF0aW8uCiAgICAgLy8gKiBhbmQgbm8gaW50
cmluc2ljIGFzcGVjdCByYXRpbywgdGhlbiB0aGUgbWlzc2luZyBkaW1lbnNpb24gaXMgYXNzdW1l
ZCB0byBiZSB0aGUgc2l6ZSBvZiB0aGUgcmVjdGFuZ2xlIHRoYXQKQEAgLTEyNTQsMTkgKzEyNjAs
MTQgQEAgYm9vbCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnROaW5lUGllYwogICAgIHJlY3RX
aXRoT3V0c2V0cy5leHBhbmQoc3R5bGUuaW1hZ2VPdXRzZXRzKG5pbmVQaWVjZUltYWdlKSk7CiAg
ICAgTGF5b3V0UmVjdCBib3JkZXJJbWFnZVJlY3QgPSBMYXlvdXRSZWN0KHNuYXBSZWN0VG9EZXZp
Y2VQaXhlbHMocmVjdFdpdGhPdXRzZXRzLCBkZXZpY2VTY2FsZUZhY3RvcikpOwogCi0gICAgTGF5
b3V0U2l6ZSBpbWFnZVNpemUgPSBjYWxjdWxhdGVJbWFnZUludHJpbnNpY0RpbWVuc2lvbnMoc3R5
bGVJbWFnZSwgYm9yZGVySW1hZ2VSZWN0LnNpemUoKSwgRG9Ob3RTY2FsZUJ5RWZmZWN0aXZlWm9v
bSk7Ci0KLSAgICAvLyBJZiBib3RoIHZhbHVlcyBhcmUg4oCYYXV0b+KAmSB0aGVuIHRoZSBpbnRy
aW5zaWMgd2lkdGggYW5kL29yIGhlaWdodCBvZiB0aGUgaW1hZ2Ugc2hvdWxkIGJlIHVzZWQsIGlm
IGFueS4KLSAgICBzdHlsZUltYWdlLT5zZXRDb250YWluZXJTaXplRm9yUmVuZGVyZXIodGhpcywg
aW1hZ2VTaXplLCBzdHlsZS5lZmZlY3RpdmVab29tKCkpOwotCi0gICAgTGF5b3V0VW5pdCBpbWFn
ZVdpZHRoID0gaW1hZ2VTaXplLndpZHRoKCk7Ci0gICAgTGF5b3V0VW5pdCBpbWFnZUhlaWdodCA9
IGltYWdlU2l6ZS5oZWlnaHQoKTsKKyAgICBib29sIGhhc0ludHJpbnNpY1NpemUgPSB0cnVlOwor
ICAgIExheW91dFNpemUgaW1hZ2VTaXplID0gY2FsY3VsYXRlSW1hZ2VJbnRyaW5zaWNEaW1lbnNp
b25zKHN0eWxlSW1hZ2UsIGJvcmRlckltYWdlUmVjdC5zaXplKCksIERvTm90U2NhbGVCeUVmZmVj
dGl2ZVpvb20sICZoYXNJbnRyaW5zaWNTaXplKTsKIAogICAgIGZsb2F0IGltYWdlU2NhbGVGYWN0
b3IgPSBzdHlsZUltYWdlLT5pbWFnZVNjYWxlRmFjdG9yKCk7Ci0gICAgTGF5b3V0VW5pdCB0b3BT
bGljZSA9IHN0ZDo6bWluPExheW91dFVuaXQ+KGltYWdlSGVpZ2h0LCB2YWx1ZUZvckxlbmd0aChu
aW5lUGllY2VJbWFnZS5pbWFnZVNsaWNlcygpLnRvcCgpLCBpbWFnZUhlaWdodCkpICogaW1hZ2VT
Y2FsZUZhY3RvcjsKLSAgICBMYXlvdXRVbml0IHJpZ2h0U2xpY2UgPSBzdGQ6Om1pbjxMYXlvdXRV
bml0PihpbWFnZVdpZHRoLCB2YWx1ZUZvckxlbmd0aChuaW5lUGllY2VJbWFnZS5pbWFnZVNsaWNl
cygpLnJpZ2h0KCksIGltYWdlV2lkdGgpKSAqIGltYWdlU2NhbGVGYWN0b3I7Ci0gICAgTGF5b3V0
VW5pdCBib3R0b21TbGljZSA9IHN0ZDo6bWluPExheW91dFVuaXQ+KGltYWdlSGVpZ2h0LCB2YWx1
ZUZvckxlbmd0aChuaW5lUGllY2VJbWFnZS5pbWFnZVNsaWNlcygpLmJvdHRvbSgpLCBpbWFnZUhl
aWdodCkpICogaW1hZ2VTY2FsZUZhY3RvcjsKLSAgICBMYXlvdXRVbml0IGxlZnRTbGljZSA9IHN0
ZDo6bWluPExheW91dFVuaXQ+KGltYWdlV2lkdGgsIHZhbHVlRm9yTGVuZ3RoKG5pbmVQaWVjZUlt
YWdlLmltYWdlU2xpY2VzKCkubGVmdCgpLCBpbWFnZVdpZHRoKSkgKiBpbWFnZVNjYWxlRmFjdG9y
OworICAgIExheW91dFVuaXQgdG9wU2xpY2UgPSBzdGQ6Om1pbjxMYXlvdXRVbml0PihpbWFnZVNp
emUuaGVpZ2h0KCksIHZhbHVlRm9yTGVuZ3RoKG5pbmVQaWVjZUltYWdlLmltYWdlU2xpY2VzKCku
dG9wKCksIGltYWdlU2l6ZS5oZWlnaHQoKSkpICogaW1hZ2VTY2FsZUZhY3RvcjsKKyAgICBMYXlv
dXRVbml0IHJpZ2h0U2xpY2UgPSBzdGQ6Om1pbjxMYXlvdXRVbml0PihpbWFnZVNpemUud2lkdGgo
KSwgdmFsdWVGb3JMZW5ndGgobmluZVBpZWNlSW1hZ2UuaW1hZ2VTbGljZXMoKS5yaWdodCgpLCBp
bWFnZVNpemUud2lkdGgoKSkpICogaW1hZ2VTY2FsZUZhY3RvcjsKKyAgICBMYXlvdXRVbml0IGJv
dHRvbVNsaWNlID0gc3RkOjptaW48TGF5b3V0VW5pdD4oaW1hZ2VTaXplLmhlaWdodCgpLCB2YWx1
ZUZvckxlbmd0aChuaW5lUGllY2VJbWFnZS5pbWFnZVNsaWNlcygpLmJvdHRvbSgpLCBpbWFnZVNp
emUuaGVpZ2h0KCkpKSAqIGltYWdlU2NhbGVGYWN0b3I7CisgICAgTGF5b3V0VW5pdCBsZWZ0U2xp
Y2UgPSBzdGQ6Om1pbjxMYXlvdXRVbml0PihpbWFnZVNpemUud2lkdGgoKSwgdmFsdWVGb3JMZW5n
dGgobmluZVBpZWNlSW1hZ2UuaW1hZ2VTbGljZXMoKS5sZWZ0KCksIGltYWdlU2l6ZS53aWR0aCgp
KSkgKiBpbWFnZVNjYWxlRmFjdG9yOwogCiAgICAgRU5pbmVQaWVjZUltYWdlUnVsZSBoUnVsZSA9
IG5pbmVQaWVjZUltYWdlLmhvcml6b250YWxSdWxlKCk7CiAgICAgRU5pbmVQaWVjZUltYWdlUnVs
ZSB2UnVsZSA9IG5pbmVQaWVjZUltYWdlLnZlcnRpY2FsUnVsZSgpOwpAQCAtMTI3Niw2ICsxMjc3
LDE1IEBAIGJvb2wgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50TmluZVBpZWMKICAgICBMYXlv
dXRVbml0IGJvdHRvbVdpZHRoID0gY29tcHV0ZUJvcmRlckltYWdlU2lkZShuaW5lUGllY2VJbWFn
ZS5ib3JkZXJTbGljZXMoKS5ib3R0b20oKSwgc3R5bGUuYm9yZGVyQm90dG9tV2lkdGgoKSwgYm90
dG9tU2xpY2UsIGJvcmRlckltYWdlUmVjdC5oZWlnaHQoKSk7CiAgICAgTGF5b3V0VW5pdCBsZWZ0
V2lkdGggPSBjb21wdXRlQm9yZGVySW1hZ2VTaWRlKG5pbmVQaWVjZUltYWdlLmJvcmRlclNsaWNl
cygpLmxlZnQoKSwgc3R5bGUuYm9yZGVyTGVmdFdpZHRoKCksIGxlZnRTbGljZSwgYm9yZGVySW1h
Z2VSZWN0LndpZHRoKCkpOwogCisgICAgaWYgKCFoYXNJbnRyaW5zaWNTaXplKQorICAgICAgICBp
bWFnZVNpemUgKz0gTGF5b3V0U2l6ZShsZWZ0U2xpY2UgKyByaWdodFNsaWNlLCB0b3BTbGljZSAr
IGJvdHRvbVNsaWNlKSAtIExheW91dFNpemUobGVmdFdpZHRoICsgcmlnaHRXaWR0aCwgdG9wV2lk
dGggKyBib3R0b21XaWR0aCk7CisKKyAgICAvLyBJZiBib3RoIHZhbHVlcyBhcmUg4oCYYXV0b+KA
mSB0aGVuIHRoZSBpbnRyaW5zaWMgd2lkdGggYW5kL29yIGhlaWdodCBvZiB0aGUgaW1hZ2Ugc2hv
dWxkIGJlIHVzZWQsIGlmIGFueS4KKyAgICBzdHlsZUltYWdlLT5zZXRDb250YWluZXJTaXplRm9y
UmVuZGVyZXIodGhpcywgaW1hZ2VTaXplLCBzdHlsZS5lZmZlY3RpdmVab29tKCkpOworCisgICAg
TGF5b3V0VW5pdCBpbWFnZVdpZHRoID0gaW1hZ2VTaXplLndpZHRoKCk7CisgICAgTGF5b3V0VW5p
dCBpbWFnZUhlaWdodCA9IGltYWdlU2l6ZS5oZWlnaHQoKTsKKwogICAgIC8vIFJlZHVjZSB0aGUg
d2lkdGhzIGlmIHRoZXkncmUgdG9vIGxhcmdlLgogICAgIC8vIFRoZSBzcGVjIHNheXM6IEdpdmVu
IEx3aWR0aCBhcyB0aGUgd2lkdGggb2YgdGhlIGJvcmRlciBpbWFnZSBhcmVhLCBMaGVpZ2h0IGFz
IGl0cyBoZWlnaHQsIGFuZCBXc2lkZSBhcyB0aGUgYm9yZGVyIGltYWdlIHdpZHRoCiAgICAgLy8g
b2Zmc2V0IGZvciB0aGUgc2lkZSwgbGV0IGYgPSBtaW4oTHdpZHRoLyhXbGVmdCtXcmlnaHQpLCBM
aGVpZ2h0LyhXdG9wK1dib3R0b20pKS4gSWYgZiA8IDEsIHRoZW4gYWxsIFcgYXJlIHJlZHVjZWQg
YnkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9i
amVjdC5oCShyZXZpc2lvbiAxODE1MTMpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQm94TW9kZWxPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtMjg4LDcgKzI4OCw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIG1vdmVDaGlsZHJlblRvKFJlbmRlckJveE1vZGVsT2JqZWN0KiB0b0Jv
eE1vZGVsT2JqZWN0LCBSZW5kZXJPYmplY3QqIHN0YXJ0Q2hpbGQsIFJlbmRlck9iamVjdCogZW5k
Q2hpbGQsIFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQsIGJvb2wgZnVsbFJlbW92ZUluc2VydCA9
IGZhbHNlKTsKIAogICAgIGVudW0gU2NhbGVCeUVmZmVjdGl2ZVpvb21Pck5vdCB7IFNjYWxlQnlF
ZmZlY3RpdmVab29tLCBEb05vdFNjYWxlQnlFZmZlY3RpdmVab29tIH07Ci0gICAgTGF5b3V0U2l6
ZSBjYWxjdWxhdGVJbWFnZUludHJpbnNpY0RpbWVuc2lvbnMoU3R5bGVJbWFnZSosIGNvbnN0IExh
eW91dFNpemUmIHNjYWxlZFBvc2l0aW9uaW5nQXJlYVNpemUsIFNjYWxlQnlFZmZlY3RpdmVab29t
T3JOb3QpIGNvbnN0OworICAgIExheW91dFNpemUgY2FsY3VsYXRlSW1hZ2VJbnRyaW5zaWNEaW1l
bnNpb25zKFN0eWxlSW1hZ2UqLCBjb25zdCBMYXlvdXRTaXplJiBzY2FsZWRQb3NpdGlvbmluZ0Fy
ZWFTaXplLCBTY2FsZUJ5RWZmZWN0aXZlWm9vbU9yTm90LCBib29sKiA9bnVsbHB0cikgY29uc3Q7
CiAKIHByaXZhdGU6CiAgICAgTGF5b3V0VW5pdCBjb21wdXRlZENTU1BhZGRpbmcoY29uc3QgTGVu
Z3RoJikgY29uc3Q7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxODE1MTUpCisrKyBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOCBAQAorMjAxNS0wMy0xNSAgU2Fp
ZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIEFuIFNW
RyB3aXRoIG5vIGludHJpbnNpYyBzaXplIGdldHMgaW5jb3JyZWN0IHNpemUgd2hlbiByZWZlcmVu
Y2VkIGZyb20gdGhlIENTUyBib3JkZXItaW1hZ2UgcHJvcGVydHkuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk0MDUuCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2JvcmRlcnMvYm9yZGVyLWlt
YWdlLWZpbGwtbm8taW50cmluc2ljLXNpemUtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9ib3JkZXJzL2JvcmRlci1pbWFnZS1maWxsLW5vLWludHJpbnNpYy1zaXplLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvYm9yZGVycy9yZXNvdXJjZXMvc3ZnLXJvdW5kZWQtMTAw
eDEwMC1pbnRyaW5zaWMuc3ZnOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2JvcmRlcnMvcmVzb3Vy
Y2VzL3N2Zy1yb3VuZGVkLTgweDgwLWludHJpbnNpYy5zdmc6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvYm9yZGVycy9yZXNvdXJjZXMvc3ZnLXJvdW5kZWQtbm8taW50cmluc2ljLnN2ZzogQWRkZWQu
CisgICAgICAgIE1ha2Ugc3VyZSB0aGUgbWlkZGxlIGFyZWEgb2YgYSBib3JkZXItaW1hZ2UgaXMg
ZHJhd24gdGhlIHNhbWUgc2l6ZQorICAgICAgICByZWdhcmRsZXNzIG9mIGhvdyBtdWNoIGl0cyBj
b250YWluZXIgYm9yZGVyIGlzIHNldCB0by4KKwogMjAxNS0wMy0xNSAgU2ltb24gRnJhc2VyICA8
c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZWR1Y2UgdGhlIHNpZGUtZWZmZWN0
cyBvZiBhbmltYXRpb25zIHR1cm5pbmcgb2ZmIG92ZXJsYXAgdGVzdGluZwpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9ib3JkZXJzL2JvcmRlci1pbWFnZS1maWxsLW5vLWludHJpbnNpYy1zaXplLWV4
cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ib3JkZXJzL2JvcmRl
ci1pbWFnZS1maWxsLW5vLWludHJpbnNpYy1zaXplLWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2JvcmRlcnMvYm9yZGVyLWltYWdlLWZpbGwtbm8taW50cmlu
c2ljLXNpemUtZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM2IEBACis8
IURPQ1RZUEUgSFRNTD4KKzxoZWFkPgorICA8c3R5bGU+CisgICAgLmJveCB7CisgICAgICBoZWln
aHQ6IDgwcHg7CisgICAgICB3aWR0aDogODBweDsKKyAgICAgIG1hcmdpbjogMTBweDsKKyAgICAg
IGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKKyAg
ICB9CisgICAgLnRoaW4tYm9yZGVyIHsKKyAgICAgIGJvcmRlcjogMTBweCBzb2xpZDsKKyAgICB9
CisgICAgLnRoaWNrLWJvcmRlciB7CisgICAgICBib3JkZXI6IDIwcHggc29saWQ7CisgICAgfQor
ICAgIC50aGlja2VyLWJvcmRlciB7CisgICAgICBib3JkZXI6IDMwcHggc29saWQ7CisgICAgfQor
ICAgIC5ib3JkZXItaW1hZ2UtMTAwLWludHJpbnNpYy16ZXJvLXNsaWNlIHsKKyAgICAgIGJvcmRl
ci1pbWFnZTogdXJsKCdyZXNvdXJjZXMvc3ZnLXJvdW5kZWQtMTAweDEwMC1pbnRyaW5zaWMuc3Zn
JykgMCBmaWxsOworICAgIH0KKyAgICAuYm9yZGVyLWltYWdlLTgwLWludHJpbnNpYy16ZXJvLXNs
aWNlIHsKKyAgICAgIGJvcmRlci1pbWFnZTogdXJsKCdyZXNvdXJjZXMvc3ZnLXJvdW5kZWQtODB4
ODAtaW50cmluc2ljLnN2ZycpIDAgZmlsbDsKKyAgICB9CisgIDwvc3R5bGU+Cis8L2hlYWQ+Cis8
Ym9keT4KKyAgPGRpdiBjbGFzcz0iYm94IHRoaW4tYm9yZGVyIGJvcmRlci1pbWFnZS0xMDAtaW50
cmluc2ljLXplcm8tc2xpY2UiPjwvZGl2PgorICA8ZGl2IGNsYXNzPSJib3ggdGhpY2stYm9yZGVy
IGJvcmRlci1pbWFnZS0xMDAtaW50cmluc2ljLXplcm8tc2xpY2UiPjwvZGl2PgorICA8ZGl2IGNs
YXNzPSJib3ggdGhpY2tlci1ib3JkZXIgYm9yZGVyLWltYWdlLTEwMC1pbnRyaW5zaWMtemVyby1z
bGljZSI+PC9kaXY+ICAKKyAgPGJyPgorICA8ZGl2IGNsYXNzPSJib3ggdGhpbi1ib3JkZXIgYm9y
ZGVyLWltYWdlLTgwLWludHJpbnNpYy16ZXJvLXNsaWNlIj48L2Rpdj4KKyAgPGRpdiBjbGFzcz0i
Ym94IHRoaWNrLWJvcmRlciBib3JkZXItaW1hZ2UtODAtaW50cmluc2ljLXplcm8tc2xpY2UiPjwv
ZGl2PgorICA8ZGl2IGNsYXNzPSJib3ggdGhpY2tlci1ib3JkZXIgYm9yZGVyLWltYWdlLTgwLWlu
dHJpbnNpYy16ZXJvLXNsaWNlIj48L2Rpdj4KKzwvYm9keT4KSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvYm9yZGVycy9ib3JkZXItaW1hZ2UtZmlsbC1uby1pbnRyaW5zaWMtc2l6ZS5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYm9yZGVycy9ib3JkZXItaW1hZ2UtZmlsbC1uby1p
bnRyaW5zaWMtc2l6ZS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9ib3Jk
ZXJzL2JvcmRlci1pbWFnZS1maWxsLW5vLWludHJpbnNpYy1zaXplLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSwzNiBAQAorPCFET0NUWVBFIEhUTUw+Cis8aGVhZD4KKyAgPHN0eWxlPgor
ICAgIC5ib3ggeworICAgICAgaGVpZ2h0OiA4MHB4OworICAgICAgd2lkdGg6IDgwcHg7CisgICAg
ICBtYXJnaW46IDEwcHg7CisgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAgICBiYWNr
Z3JvdW5kLWNvbG9yOiByZWQ7CisgICAgfQorICAgIC50aGluLWJvcmRlciB7CisgICAgICBib3Jk
ZXI6IDEwcHggc29saWQ7CisgICAgfQorICAgIC50aGljay1ib3JkZXIgeworICAgICAgYm9yZGVy
OiAyMHB4IHNvbGlkOworICAgIH0KKyAgICAudGhpY2tlci1ib3JkZXIgeworICAgICAgYm9yZGVy
OiAzMHB4IHNvbGlkOworICAgIH0KKyAgICAuYm9yZGVyLWltYWdlLWludHJpbnNpYy16ZXJvLXNs
aWNlIHsKKyAgICAgIGJvcmRlci1pbWFnZTogdXJsKCdyZXNvdXJjZXMvc3ZnLXJvdW5kZWQtMTAw
eDEwMC1pbnRyaW5zaWMuc3ZnJykgMCBmaWxsOworICAgIH0KKyAgICAuYm9yZGVyLWltYWdlLW5v
LWludHJpbnNpYy16ZXJvLXNsaWNlIHsKKyAgICAgIGJvcmRlci1pbWFnZTogdXJsKCdyZXNvdXJj
ZXMvc3ZnLXJvdW5kZWQtbm8taW50cmluc2ljLnN2ZycpIDAgZmlsbDsKKyAgICB9CisgIDwvc3R5
bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPGRpdiBjbGFzcz0iYm94IHRoaW4tYm9yZGVyIGJvcmRl
ci1pbWFnZS1pbnRyaW5zaWMtemVyby1zbGljZSI+PC9kaXY+CisgIDxkaXYgY2xhc3M9ImJveCB0
aGljay1ib3JkZXIgYm9yZGVyLWltYWdlLWludHJpbnNpYy16ZXJvLXNsaWNlIj48L2Rpdj4KKyAg
PGRpdiBjbGFzcz0iYm94IHRoaWNrZXItYm9yZGVyIGJvcmRlci1pbWFnZS1pbnRyaW5zaWMtemVy
by1zbGljZSI+PC9kaXY+ICAKKyAgPGJyPgorICA8ZGl2IGNsYXNzPSJib3ggdGhpbi1ib3JkZXIg
Ym9yZGVyLWltYWdlLW5vLWludHJpbnNpYy16ZXJvLXNsaWNlIj48L2Rpdj4KKyAgPGRpdiBjbGFz
cz0iYm94IHRoaWNrLWJvcmRlciBib3JkZXItaW1hZ2Utbm8taW50cmluc2ljLXplcm8tc2xpY2Ui
PjwvZGl2PgorICA8ZGl2IGNsYXNzPSJib3ggdGhpY2tlci1ib3JkZXIgYm9yZGVyLWltYWdlLW5v
LWludHJpbnNpYy16ZXJvLXNsaWNlIj48L2Rpdj4KKzwvYm9keT4KSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvYm9yZGVycy9yZXNvdXJjZXMvc3ZnLXJvdW5kZWQtODB4ODAtaW50cmluc2ljLnN2Zwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2JvcmRlcnMvcmVzb3VyY2VzL3N2Zy1yb3Vu
ZGVkLTgweDgwLWludHJpbnNpYy5zdmcJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2JvcmRlcnMvcmVzb3VyY2VzL3N2Zy1yb3VuZGVkLTgweDgwLWludHJpbnNpYy5zdmcJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSw1IEBACis8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8y
MDAwL3N2ZyIgdmVyc2lvbj0iMS4xIiB3aWR0aD0iODAiIGhlaWdodD0iODAiPgorICA8cmVjdCB4
PSIwIiB5PSIwIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgZmlsbD0ibGltZSIgcng9IjEwIiBy
eT0iMTAiLz4KKyAgPHJlY3QgeD0iMTAiIHk9IjEwIiB3aWR0aD0iODAiIGhlaWdodD0iODAiIGZp
bGw9InllbGxvdyIgcng9IjEwIiByeT0iMTAiLz4KKyAgPHJlY3QgeD0iMjUiIHk9IjI1IiB3aWR0
aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9ImdyZWVuIiByeD0iMTAiIHJ5PSIxMCIvPgorPC9zdmc+
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9ib3Jk
ZXJzL3Jlc291cmNlcy9zdmctcm91bmRlZC0xMDB4MTAwLWludHJpbnNpYy5zdmcKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ib3JkZXJzL3Jlc291cmNlcy9zdmctcm91bmRlZC0xMDB4
MTAwLWludHJpbnNpYy5zdmcJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2JvcmRl
cnMvcmVzb3VyY2VzL3N2Zy1yb3VuZGVkLTEwMHgxMDAtaW50cmluc2ljLnN2Zwkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDUgQEAKKzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAv
c3ZnIiB2ZXJzaW9uPSIxLjEiIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIj4KKyAgPHJlY3QgeD0i
MCIgeT0iMCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiIGZpbGw9ImxpbWUiIHJ4PSIxMCIgcnk9
IjEwIi8+CisgIDxyZWN0IHg9IjEwIiB5PSIxMCIgd2lkdGg9IjgwIiBoZWlnaHQ9IjgwIiBmaWxs
PSJ5ZWxsb3ciIHJ4PSIxMCIgcnk9IjEwIi8+CisgIDxyZWN0IHg9IjI1IiB5PSIyNSIgd2lkdGg9
IjUwIiBoZWlnaHQ9IjUwIiBmaWxsPSJncmVlbiIgcng9IjEwIiByeT0iMTAiLz4KKzwvc3ZnPgpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvYm9yZGVy
cy9yZXNvdXJjZXMvc3ZnLXJvdW5kZWQtbm8taW50cmluc2ljLnN2Zwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2JvcmRlcnMvcmVzb3VyY2VzL3N2Zy1yb3VuZGVkLW5vLWludHJpbnNp
Yy5zdmcJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2JvcmRlcnMvcmVzb3VyY2Vz
L3N2Zy1yb3VuZGVkLW5vLWludHJpbnNpYy5zdmcJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1
IEBACis8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4x
Ij4KKyAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiIGZpbGw9Imxp
bWUiIHJ4PSIxMCIgcnk9IjEwIi8+CisgIDxyZWN0IHg9IjEwIiB5PSIxMCIgd2lkdGg9IjgwIiBo
ZWlnaHQ9IjgwIiBmaWxsPSJ5ZWxsb3ciIHJ4PSIxMCIgcnk9IjEwIi8+CisgIDxyZWN0IHg9IjI1
IiB5PSIyNSIgd2lkdGg9IjUwIiBoZWlnaHQ9IjUwIiBmaWxsPSJncmVlbiIgcng9IjEwIiByeT0i
MTAiLz4KKzwvc3ZnPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>252978</attachid>
            <date>2015-05-12 13:35:13 -0700</date>
            <delta_ts>2015-05-12 15:52:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139405-20150512133352.patch</filename>
            <type>text/plain</type>
            <size>21344</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4NDIxNCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDE1LTA1LTEyICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgQW4gU1ZHIHdp
dGggbm8gaW50cmluc2ljIHNpemUgZG9lcyBub3QgZHJhdyBjb3JyZWN0IHNsaWNlcyB3aGVuIHVz
ZWQgYXMgYSBib3JkZXItaW1hZ2UgZm9yIGFuIEhUTUwgZWxlbWVudC4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzOTQwNQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGZhc3QvYm9yZGVycy9ib3Jk
ZXItaW1hZ2UtZmlsbC1uby1pbnRyaW5zaWMtc2l6ZS5odG1sCisKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJC
b3hNb2RlbE9iamVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6
OmNhbGN1bGF0ZUltYWdlSW50cmluc2ljRGltZW5zaW9ucyk6IEFkZCBhCisgICAgICAgIHJldHVy
biB2YWx1ZSB0byBpbmRpY2F0ZSB3aGV0aGVyIHRoZSBpbWFnZSBoYXMgYW4gaW50cmluc2ljIHNp
emUgb3Igbm90LgorICAgICAgICAKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveE1vZGVsT2Jq
ZWN0OjpwYWludE5pbmVQaWVjZUltYWdlKTogRm9yIG5vbiBpbnRyaW5zaWMtc2l6ZQorICAgICAg
ICBpbWFnZXMsIGdldCBhbGwgdGhlIHNsaWNlcyBmcm9tICgwLCAwKSBvZiB0aGUgc291cmNlIGlt
YWdlLiBVc2UgdGhlIHNsaWNlcycKKyAgICAgICAgbGVuZ3RocyB3aGVuIGdldHRpbmcgdGhlIGNv
cm5lcnMgZnJvbSB0aGUgc291cmNlIGltYWdlLiBBbmQgdXNlIHRoZSBkZXN0aW5hdGlvbgorICAg
ICAgICB3aWR0aC9oZWlnaHQgd2hlbiBnZXR0aW5nIHRoZSBjb3JuZXJzIGZyb20gdGhlIHNvdXJj
ZSBpbWFnZS4KKwogMjAxNS0wNS0xMiAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNv
bT4KIAogICAgICAgICBST0xMT1VUIFtXaW5dIFVucmV2aWV3ZWQgYnVpbGQgZml4IGZvciBvbGRl
ciBEaXJlY3RYIGJ1aWxkIGVudmlyb25tZW50cy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcAkocmV2aXNpb24gMTg0MTE2KQor
KysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtOTIxLDggKzkyMSwxMSBAQCBzdGF0aWMgaW5saW5lIExheW91dFNpemUg
cmVzb2x2ZUFnYWluc3RJCiAgICAgcmV0dXJuIExheW91dFNpemUoc2l6ZS53aWR0aCgpLCBzb2x1
dGlvbkhlaWdodCk7CiB9CiAKLUxheW91dFNpemUgUmVuZGVyQm94TW9kZWxPYmplY3Q6OmNhbGN1
bGF0ZUltYWdlSW50cmluc2ljRGltZW5zaW9ucyhTdHlsZUltYWdlKiBpbWFnZSwgY29uc3QgTGF5
b3V0U2l6ZSYgcG9zaXRpb25pbmdBcmVhU2l6ZSwgU2NhbGVCeUVmZmVjdGl2ZVpvb21Pck5vdCBz
aG91bGRTY2FsZU9yTm90KSBjb25zdAorTGF5b3V0U2l6ZSBSZW5kZXJCb3hNb2RlbE9iamVjdDo6
Y2FsY3VsYXRlSW1hZ2VJbnRyaW5zaWNEaW1lbnNpb25zKFN0eWxlSW1hZ2UqIGltYWdlLCBjb25z
dCBMYXlvdXRTaXplJiBwb3NpdGlvbmluZ0FyZWFTaXplLCBTY2FsZUJ5RWZmZWN0aXZlWm9vbU9y
Tm90IHNob3VsZFNjYWxlT3JOb3QsIGJvb2wqIGhhc0ludHJpbnNpY1NpemUpIGNvbnN0CiB7Cisg
ICAgaWYgKGhhc0ludHJpbnNpY1NpemUpCisgICAgICAgICpoYXNJbnRyaW5zaWNTaXplID0gdHJ1
ZTsKKwogICAgIC8vIEEgZ2VuZXJhdGVkIGltYWdlIHdpdGhvdXQgYSBmaXhlZCBzaXplLCB3aWxs
IGFsd2F5cyByZXR1cm4gdGhlIGNvbnRhaW5lciBzaXplIGFzIGludHJpbnNpYyBzaXplLgogICAg
IGlmIChpbWFnZS0+aXNHZW5lcmF0ZWRJbWFnZSgpICYmIGltYWdlLT51c2VzSW1hZ2VDb250YWlu
ZXJTaXplKCkpCiAgICAgICAgIHJldHVybiBMYXlvdXRTaXplKHBvc2l0aW9uaW5nQXJlYVNpemUu
d2lkdGgoKSwgcG9zaXRpb25pbmdBcmVhU2l6ZS5oZWlnaHQoKSk7CkBAIC05NDQsNiArOTQ3LDkg
QEAgTGF5b3V0U2l6ZSBSZW5kZXJCb3hNb2RlbE9iamVjdDo6Y2FsY3VsYQogICAgIGlmICghcmVz
b2x2ZWRTaXplLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHJlc29sdmVkU2l6ZTsKIAorICAg
IGlmIChoYXNJbnRyaW5zaWNTaXplKQorICAgICAgICAqaGFzSW50cmluc2ljU2l6ZSA9IGZhbHNl
OworCiAgICAgLy8gSWYgdGhlIGltYWdlIGhhcyBvbmUgb2YgZWl0aGVyIGFuIGludHJpbnNpYyB3
aWR0aCBvciBhbiBpbnRyaW5zaWMgaGVpZ2h0OgogICAgIC8vICogYW5kIGFuIGludHJpbnNpYyBh
c3BlY3QgcmF0aW8sIHRoZW4gdGhlIG1pc3NpbmcgZGltZW5zaW9uIGlzIGNhbGN1bGF0ZWQgZnJv
bSB0aGUgZ2l2ZW4gZGltZW5zaW9uIGFuZCB0aGUgcmF0aW8uCiAgICAgLy8gKiBhbmQgbm8gaW50
cmluc2ljIGFzcGVjdCByYXRpbywgdGhlbiB0aGUgbWlzc2luZyBkaW1lbnNpb24gaXMgYXNzdW1l
ZCB0byBiZSB0aGUgc2l6ZSBvZiB0aGUgcmVjdGFuZ2xlIHRoYXQKQEAgLTEyNjIsNyArMTI2OCw4
IEBAIGJvb2wgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50TmluZVBpZWMKICAgICByZWN0V2l0
aE91dHNldHMuZXhwYW5kKHN0eWxlLmltYWdlT3V0c2V0cyhuaW5lUGllY2VJbWFnZSkpOwogICAg
IExheW91dFJlY3QgYm9yZGVySW1hZ2VSZWN0ID0gTGF5b3V0UmVjdChzbmFwUmVjdFRvRGV2aWNl
UGl4ZWxzKHJlY3RXaXRoT3V0c2V0cywgZGV2aWNlU2NhbGVGYWN0b3IpKTsKIAotICAgIExheW91
dFNpemUgaW1hZ2VTaXplID0gY2FsY3VsYXRlSW1hZ2VJbnRyaW5zaWNEaW1lbnNpb25zKHN0eWxl
SW1hZ2UsIGJvcmRlckltYWdlUmVjdC5zaXplKCksIERvTm90U2NhbGVCeUVmZmVjdGl2ZVpvb20p
OworICAgIGJvb2wgaGFzSW50cmluc2ljU2l6ZSA9IHRydWU7CisgICAgTGF5b3V0U2l6ZSBpbWFn
ZVNpemUgPSBjYWxjdWxhdGVJbWFnZUludHJpbnNpY0RpbWVuc2lvbnMoc3R5bGVJbWFnZSwgYm9y
ZGVySW1hZ2VSZWN0LnNpemUoKSwgRG9Ob3RTY2FsZUJ5RWZmZWN0aXZlWm9vbSwgJmhhc0ludHJp
bnNpY1NpemUpOwogCiAgICAgLy8gSWYgYm90aCB2YWx1ZXMgYXJlIOKAmGF1dG/igJkgdGhlbiB0
aGUgaW50cmluc2ljIHdpZHRoIGFuZC9vciBoZWlnaHQgb2YgdGhlIGltYWdlIHNob3VsZCBiZSB1
c2VkLCBpZiBhbnkuCiAgICAgc3R5bGVJbWFnZS0+c2V0Q29udGFpbmVyU2l6ZUZvclJlbmRlcmVy
KHRoaXMsIGltYWdlU2l6ZSwgc3R5bGUuZWZmZWN0aXZlWm9vbSgpKTsKQEAgLTEzMTQsMTAgKzEz
MjEsMTAgQEAgYm9vbCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnROaW5lUGllYwogICAgIGZs
b2F0IHNvdXJjZVdpZHRoID0gaW1hZ2VXaWR0aCAtIGxlZnRTbGljZSAtIHJpZ2h0U2xpY2U7CiAg
ICAgZmxvYXQgc291cmNlSGVpZ2h0ID0gaW1hZ2VIZWlnaHQgLSB0b3BTbGljZSAtIGJvdHRvbVNs
aWNlOwogICAgIAotICAgIGZsb2F0IGxlZnRTaWRlU2NhbGUgPSBkcmF3TGVmdCA/IChmbG9hdCls
ZWZ0V2lkdGggLyBsZWZ0U2xpY2UgOiAxOwotICAgIGZsb2F0IHJpZ2h0U2lkZVNjYWxlID0gZHJh
d1JpZ2h0ID8gKGZsb2F0KXJpZ2h0V2lkdGggLyByaWdodFNsaWNlIDogMTsKLSAgICBmbG9hdCB0
b3BTaWRlU2NhbGUgPSBkcmF3VG9wID8gKGZsb2F0KXRvcFdpZHRoIC8gdG9wU2xpY2UgOiAxOwot
ICAgIGZsb2F0IGJvdHRvbVNpZGVTY2FsZSA9IGRyYXdCb3R0b20gPyAoZmxvYXQpYm90dG9tV2lk
dGggLyBib3R0b21TbGljZSA6IDE7CisgICAgZmxvYXQgbGVmdFNpZGVTY2FsZSA9IGRyYXdMZWZ0
ICYmIGhhc0ludHJpbnNpY1NpemUgPyAoZmxvYXQpbGVmdFdpZHRoIC8gbGVmdFNsaWNlIDogMTsK
KyAgICBmbG9hdCByaWdodFNpZGVTY2FsZSA9IGRyYXdSaWdodCAmJiBoYXNJbnRyaW5zaWNTaXpl
ID8gKGZsb2F0KXJpZ2h0V2lkdGggLyByaWdodFNsaWNlIDogMTsKKyAgICBmbG9hdCB0b3BTaWRl
U2NhbGUgPSBkcmF3VG9wICYmIGhhc0ludHJpbnNpY1NpemUgPyAoZmxvYXQpdG9wV2lkdGggLyB0
b3BTbGljZSA6IDE7CisgICAgZmxvYXQgYm90dG9tU2lkZVNjYWxlID0gZHJhd0JvdHRvbSAmJiBo
YXNJbnRyaW5zaWNTaXplID8gKGZsb2F0KWJvdHRvbVdpZHRoIC8gYm90dG9tU2xpY2UgOiAxOwog
CiAgICAgZmxvYXQgeCA9IGJvcmRlckltYWdlUmVjdC5sb2NhdGlvbigpLngoKTsKICAgICBmbG9h
dCB5ID0gYm9yZGVySW1hZ2VSZWN0LmxvY2F0aW9uKCkueSgpOwpAQCAtMTMyNiw1NSArMTMzMyw2
NSBAQCBib29sIFJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludE5pbmVQaWVjCiAKICAgICAgICAg
Ly8gVGhlIHRvcCBsZWZ0IGNvcm5lciByZWN0IGlzICh0eCwgdHksIGxlZnRXaWR0aCwgdG9wV2lk
dGgpCiAgICAgICAgIC8vIFRoZSByZWN0IHRvIHVzZSBmcm9tIHdpdGhpbiB0aGUgaW1hZ2UgaXMg
b2J0YWluZWQgZnJvbSBvdXIgc2xpY2UsIGFuZCBpcyAoMCwgMCwgbGVmdFNsaWNlLCB0b3BTbGlj
ZSkKLSAgICAgICAgaWYgKGRyYXdUb3ApCi0gICAgICAgICAgICBncmFwaGljc0NvbnRleHQtPmRy
YXdJbWFnZShpbWFnZS5nZXQoKSwgY29sb3JTcGFjZSwgc25hcFJlY3RUb0RldmljZVBpeGVscyh4
LCB5LCBsZWZ0V2lkdGgsIHRvcFdpZHRoLCBkZXZpY2VTY2FsZUZhY3RvciksCi0gICAgICAgICAg
ICAgICAgc25hcFJlY3RUb0RldmljZVBpeGVscygwLCAwLCBsZWZ0U2xpY2UsIHRvcFNsaWNlLCBk
ZXZpY2VTY2FsZUZhY3RvciksIG9wKTsKKyAgICAgICAgaWYgKGRyYXdUb3ApIHsKKyAgICAgICAg
ICAgIEZsb2F0UmVjdCBzcmNSZWN0ID0gc25hcFJlY3RUb0RldmljZVBpeGVscygwLCAwLCBsZWZ0
U2xpY2UsIHRvcFNsaWNlLCBkZXZpY2VTY2FsZUZhY3Rvcik7CisgICAgICAgICAgICBncmFwaGlj
c0NvbnRleHQtPmRyYXdJbWFnZShpbWFnZS5nZXQoKSwgY29sb3JTcGFjZSwgc25hcFJlY3RUb0Rl
dmljZVBpeGVscyh4LCB5LCBsZWZ0V2lkdGgsIHRvcFdpZHRoLCBkZXZpY2VTY2FsZUZhY3Rvciks
IHNyY1JlY3QsIG9wKTsKKyAgICAgICAgfQogCiAgICAgICAgIC8vIFRoZSBib3R0b20gbGVmdCBj
b3JuZXIgcmVjdCBpcyAodHgsIHR5ICsgaCAtIGJvdHRvbVdpZHRoLCBsZWZ0V2lkdGgsIGJvdHRv
bVdpZHRoKQogICAgICAgICAvLyBUaGUgcmVjdCB0byB1c2UgZnJvbSB3aXRoaW4gdGhlIGltYWdl
IGlzICgwLCBpbWFnZUhlaWdodCAtIGJvdHRvbVNsaWNlLCBsZWZ0U2xpY2UsIGJvdG9tU2xpY2Up
Ci0gICAgICAgIGlmIChkcmF3Qm90dG9tKQotICAgICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5k
cmF3SW1hZ2UoaW1hZ2UuZ2V0KCksIGNvbG9yU3BhY2UsIHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMo
eCwgYm9yZGVySW1hZ2VSZWN0Lm1heFkoKSAtIGJvdHRvbVdpZHRoLCBsZWZ0V2lkdGgsIGJvdHRv
bVdpZHRoLCBkZXZpY2VTY2FsZUZhY3RvciksCi0gICAgICAgICAgICAgICAgc25hcFJlY3RUb0Rl
dmljZVBpeGVscygwLCBpbWFnZUhlaWdodCAtIGJvdHRvbVNsaWNlLCBsZWZ0U2xpY2UsIGJvdHRv
bVNsaWNlLCBkZXZpY2VTY2FsZUZhY3RvciksIG9wKTsKKyAgICAgICAgaWYgKGRyYXdCb3R0b20p
IHsKKyAgICAgICAgICAgIEZsb2F0UmVjdCBzcmNSZWN0ID0gIWhhc0ludHJpbnNpY1NpemUgPyBz
bmFwUmVjdFRvRGV2aWNlUGl4ZWxzKDAsIDAsIGxlZnRTbGljZSwgYm90dG9tU2xpY2UsIGRldmlj
ZVNjYWxlRmFjdG9yKSA6IHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMoMCwgaW1hZ2VIZWlnaHQgLSBi
b3R0b21TbGljZSwgbGVmdFNsaWNlLCBib3R0b21TbGljZSwgZGV2aWNlU2NhbGVGYWN0b3IpOwor
ICAgICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5kcmF3SW1hZ2UoaW1hZ2UuZ2V0KCksIGNvbG9y
U3BhY2UsIHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMoeCwgYm9yZGVySW1hZ2VSZWN0Lm1heFkoKSAt
IGJvdHRvbVdpZHRoLCBsZWZ0V2lkdGgsIGJvdHRvbVdpZHRoLCBkZXZpY2VTY2FsZUZhY3Rvciks
IHNyY1JlY3QsIG9wKTsKKyAgICAgICAgfQogCiAgICAgICAgIC8vIFBhaW50IHRoZSBsZWZ0IGVk
Z2UuCiAgICAgICAgIC8vIEhhdmUgdG8gc2NhbGUgYW5kIHRpbGUgaW50byB0aGUgYm9yZGVyIHJl
Y3QuCi0gICAgICAgIGlmIChzb3VyY2VIZWlnaHQgPiAwKQorICAgICAgICBpZiAoc291cmNlSGVp
Z2h0ID4gMCkgeworICAgICAgICAgICAgRmxvYXRSZWN0IHNyY1JlY3QgPSAhaGFzSW50cmluc2lj
U2l6ZSA/IHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMoMCwgMCwgbGVmdFNsaWNlLCBkZXN0aW5hdGlv
bkhlaWdodCwgZGV2aWNlU2NhbGVGYWN0b3IpIDogc25hcFJlY3RUb0RldmljZVBpeGVscygwLCB0
b3BTbGljZSwgbGVmdFNsaWNlLCBzb3VyY2VIZWlnaHQsIGRldmljZVNjYWxlRmFjdG9yKTsKICAg
ICAgICAgICAgIGdyYXBoaWNzQ29udGV4dC0+ZHJhd1RpbGVkSW1hZ2UoaW1hZ2UuZ2V0KCksIGNv
bG9yU3BhY2UsIHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMoeCwgeSArIHRvcFdpZHRoLCBsZWZ0V2lk
dGgsIGRlc3RpbmF0aW9uSGVpZ2h0LCBkZXZpY2VTY2FsZUZhY3RvciksCi0gICAgICAgICAgICAg
ICAgc25hcFJlY3RUb0RldmljZVBpeGVscygwLCB0b3BTbGljZSwgbGVmdFNsaWNlLCBzb3VyY2VI
ZWlnaHQsIGRldmljZVNjYWxlRmFjdG9yKSwgRmxvYXRTaXplKGxlZnRTaWRlU2NhbGUsIGxlZnRT
aWRlU2NhbGUpLCBJbWFnZTo6U3RyZXRjaFRpbGUsIChJbWFnZTo6VGlsZVJ1bGUpdlJ1bGUsIG9w
KTsKKyAgICAgICAgICAgICAgICBzcmNSZWN0LCBGbG9hdFNpemUobGVmdFNpZGVTY2FsZSwgbGVm
dFNpZGVTY2FsZSksIEltYWdlOjpTdHJldGNoVGlsZSwgKEltYWdlOjpUaWxlUnVsZSl2UnVsZSwg
b3ApOworICAgICAgICB9CiAgICAgfQogCiAgICAgaWYgKGRyYXdSaWdodCkgewogICAgICAgICAv
LyBQYWludCB0aGUgdG9wIGFuZCBib3R0b20gcmlnaHQgY29ybmVycwogICAgICAgICAvLyBUaGUg
dG9wIHJpZ2h0IGNvcm5lciByZWN0IGlzICh0eCArIHcgLSByaWdodFdpZHRoLCB0eSwgcmlnaHRX
aWR0aCwgdG9wV2lkdGgpCiAgICAgICAgIC8vIFRoZSByZWN0IHRvIHVzZSBmcm9tIHdpdGhpbiB0
aGUgaW1hZ2UgaXMgb2J0YWluZWQgZnJvbSBvdXIgc2xpY2UsIGFuZCBpcyAoaW1hZ2VXaWR0aCAt
IHJpZ2h0U2xpY2UsIDAsIHJpZ2h0U2xpY2UsIHRvcFNsaWNlKQotICAgICAgICBpZiAoZHJhd1Rv
cCkKLSAgICAgICAgICAgIGdyYXBoaWNzQ29udGV4dC0+ZHJhd0ltYWdlKGltYWdlLmdldCgpLCBj
b2xvclNwYWNlLCBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKGJvcmRlckltYWdlUmVjdC5tYXhYKCkg
LSByaWdodFdpZHRoLCB5LCByaWdodFdpZHRoLCB0b3BXaWR0aCwgZGV2aWNlU2NhbGVGYWN0b3Ip
LAotICAgICAgICAgICAgICAgIHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMoaW1hZ2VXaWR0aCAtIHJp
Z2h0U2xpY2UsIDAsIHJpZ2h0U2xpY2UsIHRvcFNsaWNlLCBkZXZpY2VTY2FsZUZhY3RvciksIG9w
KTsKKyAgICAgICAgaWYgKGRyYXdUb3ApIHsKKyAgICAgICAgICAgIEZsb2F0UmVjdCBzcmNSZWN0
ID0gIWhhc0ludHJpbnNpY1NpemUgPyBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKDAsIDAsIHJpZ2h0
U2xpY2UsIHRvcFNsaWNlLCBkZXZpY2VTY2FsZUZhY3RvcikgOiBzbmFwUmVjdFRvRGV2aWNlUGl4
ZWxzKGltYWdlV2lkdGggLSByaWdodFNsaWNlLCAwLCByaWdodFNsaWNlLCB0b3BTbGljZSwgZGV2
aWNlU2NhbGVGYWN0b3IpOworICAgICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5kcmF3SW1hZ2Uo
aW1hZ2UuZ2V0KCksIGNvbG9yU3BhY2UsIHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMoYm9yZGVySW1h
Z2VSZWN0Lm1heFgoKSAtIHJpZ2h0V2lkdGgsIHksIHJpZ2h0V2lkdGgsIHRvcFdpZHRoLCBkZXZp
Y2VTY2FsZUZhY3RvciksIHNyY1JlY3QsIG9wKTsKKyAgICAgICAgfQogCiAgICAgICAgIC8vIFRo
ZSBib3R0b20gcmlnaHQgY29ybmVyIHJlY3QgaXMgKHR4ICsgdyAtIHJpZ2h0V2lkdGgsIHR5ICsg
aCAtIGJvdHRvbVdpZHRoLCByaWdodFdpZHRoLCBib3R0b21XaWR0aCkKICAgICAgICAgLy8gVGhl
IHJlY3QgdG8gdXNlIGZyb20gd2l0aGluIHRoZSBpbWFnZSBpcyAoaW1hZ2VXaWR0aCAtIHJpZ2h0
U2xpY2UsIGltYWdlSGVpZ2h0IC0gYm90dG9tU2xpY2UsIHJpZ2h0U2xpY2UsIGJvdHRvbVNsaWNl
KQotICAgICAgICBpZiAoZHJhd0JvdHRvbSkKKyAgICAgICAgaWYgKGRyYXdCb3R0b20pIHsKKyAg
ICAgICAgICAgIEZsb2F0UmVjdCBzcmNSZWN0ID0gIWhhc0ludHJpbnNpY1NpemUgPyBzbmFwUmVj
dFRvRGV2aWNlUGl4ZWxzKDAsIDAsIHJpZ2h0U2xpY2UsIGJvdHRvbVNsaWNlLCBkZXZpY2VTY2Fs
ZUZhY3RvcikgOiBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKGltYWdlV2lkdGggLSByaWdodFNsaWNl
LCBpbWFnZUhlaWdodCAtIGJvdHRvbVNsaWNlLCByaWdodFNsaWNlLCBib3R0b21TbGljZSwgZGV2
aWNlU2NhbGVGYWN0b3IpOwogICAgICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5kcmF3SW1hZ2Uo
aW1hZ2UuZ2V0KCksIGNvbG9yU3BhY2UsIHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMoYm9yZGVySW1h
Z2VSZWN0Lm1heFgoKSAtIHJpZ2h0V2lkdGgsIGJvcmRlckltYWdlUmVjdC5tYXhZKCkgLSBib3R0
b21XaWR0aCwKLSAgICAgICAgICAgICAgICByaWdodFdpZHRoLCBib3R0b21XaWR0aCwgZGV2aWNl
U2NhbGVGYWN0b3IpLCBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKGltYWdlV2lkdGggLSByaWdodFNs
aWNlLCBpbWFnZUhlaWdodCAtIGJvdHRvbVNsaWNlLCByaWdodFNsaWNlLCBib3R0b21TbGljZSwg
ZGV2aWNlU2NhbGVGYWN0b3IpLAotICAgICAgICAgICAgICAgIG9wKTsKKyAgICAgICAgICAgICAg
ICByaWdodFdpZHRoLCBib3R0b21XaWR0aCwgZGV2aWNlU2NhbGVGYWN0b3IpLCBzcmNSZWN0LCBv
cCk7CisgICAgICAgIH0KIAogICAgICAgICAvLyBQYWludCB0aGUgcmlnaHQgZWRnZS4KLSAgICAg
ICAgaWYgKHNvdXJjZUhlaWdodCA+IDApCisgICAgICAgIGlmIChzb3VyY2VIZWlnaHQgPiAwKSB7
CisgICAgICAgICAgICBGbG9hdFJlY3Qgc3JjUmVjdCA9ICFoYXNJbnRyaW5zaWNTaXplID8gc25h
cFJlY3RUb0RldmljZVBpeGVscygwLCAwLCByaWdodFNsaWNlLCBkZXN0aW5hdGlvbkhlaWdodCwg
ZGV2aWNlU2NhbGVGYWN0b3IpIDogc25hcFJlY3RUb0RldmljZVBpeGVscyhpbWFnZVdpZHRoIC0g
cmlnaHRTbGljZSwgdG9wU2xpY2UsIHJpZ2h0U2xpY2UsIHNvdXJjZUhlaWdodCwgZGV2aWNlU2Nh
bGVGYWN0b3IpOwogICAgICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5kcmF3VGlsZWRJbWFnZShp
bWFnZS5nZXQoKSwgY29sb3JTcGFjZSwgc25hcFJlY3RUb0RldmljZVBpeGVscyhib3JkZXJJbWFn
ZVJlY3QubWF4WCgpIC0gcmlnaHRXaWR0aCwgeSArIHRvcFdpZHRoLCByaWdodFdpZHRoLCBkZXN0
aW5hdGlvbkhlaWdodCwgZGV2aWNlU2NhbGVGYWN0b3IpLAotICAgICAgICAgICAgICAgIHNuYXBS
ZWN0VG9EZXZpY2VQaXhlbHMoaW1hZ2VXaWR0aCAtIHJpZ2h0U2xpY2UsIHRvcFNsaWNlLCByaWdo
dFNsaWNlLCBzb3VyY2VIZWlnaHQsIGRldmljZVNjYWxlRmFjdG9yKSwgRmxvYXRTaXplKHJpZ2h0
U2lkZVNjYWxlLCByaWdodFNpZGVTY2FsZSksCi0gICAgICAgICAgICAgICAgSW1hZ2U6OlN0cmV0
Y2hUaWxlLCAoSW1hZ2U6OlRpbGVSdWxlKXZSdWxlLCBvcCk7CisgICAgICAgICAgICAgICAgc3Jj
UmVjdCwgRmxvYXRTaXplKHJpZ2h0U2lkZVNjYWxlLCByaWdodFNpZGVTY2FsZSksIEltYWdlOjpT
dHJldGNoVGlsZSwgKEltYWdlOjpUaWxlUnVsZSl2UnVsZSwgb3ApOworICAgICAgICB9CiAgICAg
fQogCiAgICAgLy8gUGFpbnQgdGhlIHRvcCBlZGdlLgotICAgIGlmIChkcmF3VG9wICYmIHNvdXJj
ZVdpZHRoID4gMCkKKyAgICBpZiAoZHJhd1RvcCAmJiBzb3VyY2VXaWR0aCA+IDApIHsKKyAgICAg
ICAgRmxvYXRSZWN0IHNyY1JlY3QgPSAhaGFzSW50cmluc2ljU2l6ZSA/IHNuYXBSZWN0VG9EZXZp
Y2VQaXhlbHMoMCwgMCwgZGVzdGluYXRpb25XaWR0aCwgdG9wU2xpY2UsIGRldmljZVNjYWxlRmFj
dG9yKSA6IHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMobGVmdFNsaWNlLCAwLCBzb3VyY2VXaWR0aCwg
dG9wU2xpY2UsIGRldmljZVNjYWxlRmFjdG9yKTsKICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5k
cmF3VGlsZWRJbWFnZShpbWFnZS5nZXQoKSwgY29sb3JTcGFjZSwgc25hcFJlY3RUb0RldmljZVBp
eGVscyh4ICsgbGVmdFdpZHRoLCB5LCBkZXN0aW5hdGlvbldpZHRoLCB0b3BXaWR0aCwgZGV2aWNl
U2NhbGVGYWN0b3IpLAotICAgICAgICAgICAgc25hcFJlY3RUb0RldmljZVBpeGVscyhsZWZ0U2xp
Y2UsIDAsIHNvdXJjZVdpZHRoLCB0b3BTbGljZSwgZGV2aWNlU2NhbGVGYWN0b3IpLCBGbG9hdFNp
emUodG9wU2lkZVNjYWxlLCB0b3BTaWRlU2NhbGUpLCAoSW1hZ2U6OlRpbGVSdWxlKWhSdWxlLCBJ
bWFnZTo6U3RyZXRjaFRpbGUsIG9wKTsKKyAgICAgICAgICAgIHNyY1JlY3QsIEZsb2F0U2l6ZSh0
b3BTaWRlU2NhbGUsIHRvcFNpZGVTY2FsZSksIChJbWFnZTo6VGlsZVJ1bGUpaFJ1bGUsIEltYWdl
OjpTdHJldGNoVGlsZSwgb3ApOworICAgIH0KIAogICAgIC8vIFBhaW50IHRoZSBib3R0b20gZWRn
ZS4KLSAgICBpZiAoZHJhd0JvdHRvbSAmJiBzb3VyY2VXaWR0aCA+IDApCisgICAgaWYgKGRyYXdC
b3R0b20gJiYgc291cmNlV2lkdGggPiAwKSB7CisgICAgICAgIEZsb2F0UmVjdCBzcmNSZWN0ID0g
IWhhc0ludHJpbnNpY1NpemUgPyBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKDAsIDAsIGRlc3RpbmF0
aW9uV2lkdGgsIGJvdHRvbVNsaWNlLCBkZXZpY2VTY2FsZUZhY3RvcikgOiBzbmFwUmVjdFRvRGV2
aWNlUGl4ZWxzKGxlZnRTbGljZSwgaW1hZ2VIZWlnaHQgLSBib3R0b21TbGljZSwgc291cmNlV2lk
dGgsIGJvdHRvbVNsaWNlLCBkZXZpY2VTY2FsZUZhY3Rvcik7CiAgICAgICAgIGdyYXBoaWNzQ29u
dGV4dC0+ZHJhd1RpbGVkSW1hZ2UoaW1hZ2UuZ2V0KCksIGNvbG9yU3BhY2UsIHNuYXBSZWN0VG9E
ZXZpY2VQaXhlbHMoeCArIGxlZnRXaWR0aCwgYm9yZGVySW1hZ2VSZWN0Lm1heFkoKSAtIGJvdHRv
bVdpZHRoLCBkZXN0aW5hdGlvbldpZHRoLCBib3R0b21XaWR0aCwgZGV2aWNlU2NhbGVGYWN0b3Ip
LAotICAgICAgICAgICAgc25hcFJlY3RUb0RldmljZVBpeGVscyhsZWZ0U2xpY2UsIGltYWdlSGVp
Z2h0IC0gYm90dG9tU2xpY2UsIHNvdXJjZVdpZHRoLCBib3R0b21TbGljZSwgZGV2aWNlU2NhbGVG
YWN0b3IpLCBGbG9hdFNpemUoYm90dG9tU2lkZVNjYWxlLCBib3R0b21TaWRlU2NhbGUpLAotICAg
ICAgICAgICAgKEltYWdlOjpUaWxlUnVsZSloUnVsZSwgSW1hZ2U6OlN0cmV0Y2hUaWxlLCBvcCk7
CisgICAgICAgICAgICBzcmNSZWN0LCBGbG9hdFNpemUoYm90dG9tU2lkZVNjYWxlLCBib3R0b21T
aWRlU2NhbGUpLCAoSW1hZ2U6OlRpbGVSdWxlKWhSdWxlLCBJbWFnZTo6U3RyZXRjaFRpbGUsIG9w
KTsKKyAgICB9CiAKICAgICAvLyBQYWludCB0aGUgbWlkZGxlLgogICAgIGlmIChkcmF3TWlkZGxl
KSB7CkBAIC0xMzk3LDExICsxNDE0LDExIEBAIGJvb2wgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBh
aW50TmluZVBpZWMKICAgICAgICAgICAgIAogICAgICAgICBpZiAodlJ1bGUgPT0gU3RyZXRjaElt
YWdlUnVsZSkKICAgICAgICAgICAgIG1pZGRsZVNjYWxlRmFjdG9yLnNldEhlaWdodChkZXN0aW5h
dGlvbkhlaWdodCAvIHNvdXJjZUhlaWdodCk7Ci0gICAgICAgIAorCisgICAgICAgIEZsb2F0UmVj
dCBzcmNSZWN0ID0gIWhhc0ludHJpbnNpY1NpemUgPyBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKDAs
IDAsIGRlc3RpbmF0aW9uV2lkdGgsIGRlc3RpbmF0aW9uSGVpZ2h0LCBkZXZpY2VTY2FsZUZhY3Rv
cikgOiBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKGxlZnRTbGljZSwgdG9wU2xpY2UsIHNvdXJjZVdp
ZHRoLCBzb3VyY2VIZWlnaHQsIGRldmljZVNjYWxlRmFjdG9yKTsKICAgICAgICAgZ3JhcGhpY3ND
b250ZXh0LT5kcmF3VGlsZWRJbWFnZShpbWFnZS5nZXQoKSwgY29sb3JTcGFjZSwKICAgICAgICAg
ICAgIHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMoeCArIGxlZnRXaWR0aCwgeSArIHRvcFdpZHRoLCBk
ZXN0aW5hdGlvbldpZHRoLCBkZXN0aW5hdGlvbkhlaWdodCwgZGV2aWNlU2NhbGVGYWN0b3IpLAot
ICAgICAgICAgICAgc25hcFJlY3RUb0RldmljZVBpeGVscyhsZWZ0U2xpY2UsIHRvcFNsaWNlLCBz
b3VyY2VXaWR0aCwgc291cmNlSGVpZ2h0LCBkZXZpY2VTY2FsZUZhY3RvciksCi0gICAgICAgICAg
ICBtaWRkbGVTY2FsZUZhY3RvciwgKEltYWdlOjpUaWxlUnVsZSloUnVsZSwgKEltYWdlOjpUaWxl
UnVsZSl2UnVsZSwgb3ApOworICAgICAgICAgICAgc3JjUmVjdCwgbWlkZGxlU2NhbGVGYWN0b3Is
IChJbWFnZTo6VGlsZVJ1bGUpaFJ1bGUsIChJbWFnZTo6VGlsZVJ1bGUpdlJ1bGUsIG9wKTsKICAg
ICB9CiAKICAgICByZXR1cm4gdHJ1ZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCb3hNb2RlbE9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oCShyZXZpc2lvbiAxODQxMTYpCisrKyBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaAkod29ya2luZyBjb3B5KQpA
QCAtMjg4LDcgKzI4OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIG1vdmVDaGlsZHJlblRvKFJlbmRl
ckJveE1vZGVsT2JqZWN0KiB0b0JveE1vZGVsT2JqZWN0LCBSZW5kZXJPYmplY3QqIHN0YXJ0Q2hp
bGQsIFJlbmRlck9iamVjdCogZW5kQ2hpbGQsIFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQsIGJv
b2wgZnVsbFJlbW92ZUluc2VydCA9IGZhbHNlKTsKIAogICAgIGVudW0gU2NhbGVCeUVmZmVjdGl2
ZVpvb21Pck5vdCB7IFNjYWxlQnlFZmZlY3RpdmVab29tLCBEb05vdFNjYWxlQnlFZmZlY3RpdmVa
b29tIH07Ci0gICAgTGF5b3V0U2l6ZSBjYWxjdWxhdGVJbWFnZUludHJpbnNpY0RpbWVuc2lvbnMo
U3R5bGVJbWFnZSosIGNvbnN0IExheW91dFNpemUmIHNjYWxlZFBvc2l0aW9uaW5nQXJlYVNpemUs
IFNjYWxlQnlFZmZlY3RpdmVab29tT3JOb3QpIGNvbnN0OworICAgIExheW91dFNpemUgY2FsY3Vs
YXRlSW1hZ2VJbnRyaW5zaWNEaW1lbnNpb25zKFN0eWxlSW1hZ2UqLCBjb25zdCBMYXlvdXRTaXpl
JiBzY2FsZWRQb3NpdGlvbmluZ0FyZWFTaXplLCBTY2FsZUJ5RWZmZWN0aXZlWm9vbU9yTm90LCBi
b29sKiBoYXNJbnRyaW5zaWNTaXplID0gbnVsbHB0cikgY29uc3Q7CiAKIHByaXZhdGU6CiAgICAg
TGF5b3V0VW5pdCBjb21wdXRlZENTU1BhZGRpbmcoY29uc3QgTGVuZ3RoJikgY29uc3Q7CkluZGV4
OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCShyZXZpc2lvbiAxODQyMTQpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwxOSBAQAorMjAxNS0wNS0xMiAgU2FpZCBBYm91LUhhbGxhd2EgIDxz
YWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIEFuIFNWRyB3aXRoIG5vIGludHJpbnNp
YyBzaXplIGRvZXMgbm90IGRyYXcgY29ycmVjdCBzbGljZXMgd2hlbiB1c2VkIGFzIGEgYm9yZGVy
LWltYWdlIGZvciBhbiBIVE1MIGVsZW1lbnQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk0MDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvYm9yZGVycy9ib3JkZXItaW1hZ2UtZmlsbC1uby1p
bnRyaW5zaWMtc2l6ZS1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2JvcmRl
cnMvYm9yZGVyLWltYWdlLWZpbGwtbm8taW50cmluc2ljLXNpemUuaHRtbDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9ib3JkZXJzL3Jlc291cmNlcy9zdmctYm9yZGVyLTEwMHgxMDAtaW50cmluc2lj
LnN2ZzogQWRkZWQuCisgICAgICAgICogZmFzdC9ib3JkZXJzL3Jlc291cmNlcy9zdmctYm9yZGVy
LTE0MHgxNDAtaW50cmluc2ljLnN2ZzogQWRkZWQuCisgICAgICAgICogZmFzdC9ib3JkZXJzL3Jl
c291cmNlcy9zdmctYm9yZGVyLW5vLWludHJpbnNpYy5zdmc6IEFkZGVkLgorICAgICAgICBNYWtl
IHN1cmUgdGhlIHNsaWNlcyBvZiB0aGUgYm9yZGVyLWltYWdlIGFyZSBkcmF3biBjb3JyZWN0bHku
IFdoZW4gdXNpbmcgYW4KKyAgICAgICAgaW1hZ2Ugd2l0aCBubyBpbnRyaW5zaWMgc2l6ZSwgYWxs
IHRoZSBzbGljZXMgaGFzIHRvIGJlIGdvdHRlbiBmcm9tICgwLCAwKQorICAgICAgICBvZiB0aGUg
c291cmNlIGltYWdlLgorCiAyMDE1LTA1LTEyICBKb2FubWFyaWUgRGlnZ3MgIDxqZGlnZ3NAaWdh
bGlhLmNvbT4KIAogICAgICAgICBBWDogW0FUS10gQVJJQSBtZW51IGl0ZW1zIHNob3VsZCBub3Qg
aGF2ZSBhbm9ueW1vdXMgYmxvY2sgY2hpbGRyZW4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvYm9y
ZGVycy9ib3JkZXItaW1hZ2UtZmlsbC1uby1pbnRyaW5zaWMtc2l6ZS1leHBlY3RlZC5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYm9yZGVycy9ib3JkZXItaW1hZ2UtZmlsbC1u
by1pbnRyaW5zaWMtc2l6ZS1leHBlY3RlZC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvZmFzdC9ib3JkZXJzL2JvcmRlci1pbWFnZS1maWxsLW5vLWludHJpbnNpYy1zaXplLWV4cGVj
dGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzOCBAQAorPCFET0NUWVBFIEhUTUw+
Cis8aGVhZD4KKyAgPHN0eWxlPgorICAgIC5ib3ggeworICAgICAgaGVpZ2h0OiAxMDBweDsKKyAg
ICAgIHdpZHRoOiAxMDBweDsKKyAgICAgIG1hcmdpbjogMTBweDsKKyAgICAgIGRpc3BsYXk6IGlu
bGluZS1ibG9jazsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKKyAgICB9CisgICAgLmJv
cmRlciB7CisgICAgICBib3JkZXI6IDIwcHggc29saWQ7CisgICAgfQorICAgIC5uby1ib3JkZXIg
eworICAgICAgYm9yZGVyOiAwcHggbm9uZTsKKyAgICB9CisgICAgLmJvcmRlci1pbWFnZS0xMDAt
aW50cmluc2ljIHsKKyAgICAgICBib3JkZXItaW1hZ2U6IHVybCgncmVzb3VyY2VzL3N2Zy1ib3Jk
ZXItMTAweDEwMC1pbnRyaW5zaWMuc3ZnJykgMCBmaWxsOworICAgIH0KKyAgICAuYm9yZGVyLWlt
YWdlLTEwMC1pbnRyaW5zaWMtc2xpY2UgeworICAgICAgIGJvcmRlci1pbWFnZTogdXJsKCdyZXNv
dXJjZXMvc3ZnLWJvcmRlci0xMDB4MTAwLWludHJpbnNpYy5zdmcnKSAyMCBmaWxsOworICAgIH0K
KyAgICAuYm9yZGVyLWltYWdlLTE0MC1pbnRyaW5zaWMtc2xpY2UgeworICAgICAgIGJvcmRlci1p
bWFnZTogdXJsKCdyZXNvdXJjZXMvc3ZnLWJvcmRlci0xNDB4MTQwLWludHJpbnNpYy5zdmcnKSAy
MCBmaWxsOworICAgIH0KKyAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICA8ZGl2IGNsYXNz
PSJib3ggbm8tYm9yZGVyIGJvcmRlci1pbWFnZS0xMDAtaW50cmluc2ljIj48L2Rpdj4KKyAgPGRp
diBjbGFzcz0iYm94IGJvcmRlciAgICBib3JkZXItaW1hZ2UtMTAwLWludHJpbnNpYyI+PC9kaXY+
CisgIDxkaXYgY2xhc3M9ImJveCBuby1ib3JkZXIgYm9yZGVyLWltYWdlLTEwMC1pbnRyaW5zaWMt
c2xpY2UiPjwvZGl2PgorICA8ZGl2IGNsYXNzPSJib3ggYm9yZGVyICAgIGJvcmRlci1pbWFnZS0x
MDAtaW50cmluc2ljLXNsaWNlIj48L2Rpdj4KKyAgPGJyPgorICA8ZGl2IGNsYXNzPSJib3ggbm8t
Ym9yZGVyIGJvcmRlci1pbWFnZS0xMDAtaW50cmluc2ljIj48L2Rpdj4KKyAgPGRpdiBjbGFzcz0i
Ym94IGJvcmRlciAgICBib3JkZXItaW1hZ2UtMTAwLWludHJpbnNpYyI+PC9kaXY+CisgIDxkaXYg
Y2xhc3M9ImJveCBuby1ib3JkZXIgYm9yZGVyLWltYWdlLTEwMC1pbnRyaW5zaWMiPjwvZGl2Pgor
ICA8ZGl2IGNsYXNzPSJib3ggYm9yZGVyICAgIGJvcmRlci1pbWFnZS0xNDAtaW50cmluc2ljLXNs
aWNlIj48L2Rpdj4KKzwvYm9keT4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvYm9yZGVycy9ib3Jk
ZXItaW1hZ2UtZmlsbC1uby1pbnRyaW5zaWMtc2l6ZS5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvYm9yZGVycy9ib3JkZXItaW1hZ2UtZmlsbC1uby1pbnRyaW5zaWMtc2l6ZS5o
dG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9ib3JkZXJzL2JvcmRlci1pbWFn
ZS1maWxsLW5vLWludHJpbnNpYy1zaXplLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0
MSBAQAorPCFET0NUWVBFIEhUTUw+Cis8aGVhZD4KKyAgPHN0eWxlPgorICAgIC5ib3ggeworICAg
ICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgIG1hcmdpbjogMTBw
eDsKKyAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6
IHJlZDsKKyAgICB9CisgICAgLmJvcmRlciB7CisgICAgICBib3JkZXI6IDIwcHggc29saWQ7Cisg
ICAgfQorICAgIC5uby1ib3JkZXIgeworICAgICAgYm9yZGVyOiAwcHggbm9uZTsKKyAgICB9Cisg
ICAgLmJvcmRlci1pbWFnZS0xMDAtaW50cmluc2ljIHsKKyAgICAgICBib3JkZXItaW1hZ2U6IHVy
bCgncmVzb3VyY2VzL3N2Zy1ib3JkZXItMTAweDEwMC1pbnRyaW5zaWMuc3ZnJykgMCBmaWxsOwor
ICAgIH0KKyAgICAuYm9yZGVyLWltYWdlLTEwMC1pbnRyaW5zaWMtc2xpY2UgeworICAgICAgIGJv
cmRlci1pbWFnZTogdXJsKCdyZXNvdXJjZXMvc3ZnLWJvcmRlci0xMDB4MTAwLWludHJpbnNpYy5z
dmcnKSAyMCBmaWxsOworICAgIH0KKyAgICAuYm9yZGVyLWltYWdlLW5vLWludHJpbnNpYyB7Cisg
ICAgICAgYm9yZGVyLWltYWdlOiB1cmwoJ3Jlc291cmNlcy9zdmctYm9yZGVyLW5vLWludHJpbnNp
Yy5zdmcnKSAwIGZpbGw7CisgICAgfQorICAgIC5ib3JkZXItaW1hZ2Utbm8taW50cmluc2ljLXNs
aWNlIHsKKyAgICAgICBib3JkZXItaW1hZ2U6IHVybCgncmVzb3VyY2VzL3N2Zy1ib3JkZXItbm8t
aW50cmluc2ljLnN2ZycpIDIwIGZpbGw7CisgICAgfQorICA8L3N0eWxlPgorPC9oZWFkPgorPGJv
ZHk+CisgIDxkaXYgY2xhc3M9ImJveCBuby1ib3JkZXIgYm9yZGVyLWltYWdlLTEwMC1pbnRyaW5z
aWMiPjwvZGl2PgorICA8ZGl2IGNsYXNzPSJib3ggYm9yZGVyICAgIGJvcmRlci1pbWFnZS0xMDAt
aW50cmluc2ljIj48L2Rpdj4KKyAgPGRpdiBjbGFzcz0iYm94IG5vLWJvcmRlciBib3JkZXItaW1h
Z2UtMTAwLWludHJpbnNpYy1zbGljZSI+PC9kaXY+CisgIDxkaXYgY2xhc3M9ImJveCBib3JkZXIg
ICAgYm9yZGVyLWltYWdlLTEwMC1pbnRyaW5zaWMtc2xpY2UiPjwvZGl2PgorICA8YnI+CisgIDxk
aXYgY2xhc3M9ImJveCBuby1ib3JkZXIgYm9yZGVyLWltYWdlLW5vLWludHJpbnNpYyI+PC9kaXY+
CisgIDxkaXYgY2xhc3M9ImJveCBib3JkZXIgICAgYm9yZGVyLWltYWdlLW5vLWludHJpbnNpYyI+
PC9kaXY+CisgIDxkaXYgY2xhc3M9ImJveCBuby1ib3JkZXIgYm9yZGVyLWltYWdlLW5vLWludHJp
bnNpYy1zbGljZSI+PC9kaXY+CisgIDxkaXYgY2xhc3M9ImJveCBib3JkZXIgICAgYm9yZGVyLWlt
YWdlLW5vLWludHJpbnNpYy1zbGljZSI+PC9kaXY+Cis8L2JvZHk+CkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2JvcmRlcnMvcmVzb3VyY2VzL3N2Zy1ib3JkZXItMTAweDEwMC1pbnRyaW5zaWMuc3Zn
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYm9yZGVycy9yZXNvdXJjZXMvc3ZnLWJv
cmRlci0xMDB4MTAwLWludHJpbnNpYy5zdmcJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2JvcmRlcnMvcmVzb3VyY2VzL3N2Zy1ib3JkZXItMTAweDEwMC1pbnRyaW5zaWMuc3ZnCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMyBAQAorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5v
cmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiPgorICA8
cmVjdCB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgZmlsbD0ibGltZSIgc3Ryb2tlPSJibGFjayIv
PgorPC9zdmc+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9ib3JkZXJzL3Jlc291cmNlcy9zdmctYm9yZGVyLTE0MHgxNDAtaW50cmluc2ljLnN2Zwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2JvcmRlcnMvcmVzb3VyY2VzL3N2Zy1ib3Jk
ZXItMTQweDE0MC1pbnRyaW5zaWMuc3ZnCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFz
dC9ib3JkZXJzL3Jlc291cmNlcy9zdmctYm9yZGVyLTE0MHgxNDAtaW50cmluc2ljLnN2Zwkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDQ1IEBACis8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9y
Zy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZl
cnNpb249IjEuMSIgd2lkdGg9IjE0MCIgaGVpZ2h0PSIxNDAiPgorICA8ZGVmcz4KKyAgICA8cmVj
dCBpZD0iYm9yZGVyLWltYWdlIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgZmlsbD0ibGltZSIg
c3Ryb2tlPSJibGFjayIgc3Ryb2tlLXdpZHRoPSIxcHgiLz4KKyAgICA8Y2xpcFBhdGggaWQ9InRv
cC1sZWZ0Ij4KKyAgICAgIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIv
PgorICAgIDwvY2xpcFBhdGg+CisgICAgPGNsaXBQYXRoIGlkPSJsZWZ0Ij4KKyAgICAgIDxyZWN0
IHg9IjAiIHk9IjAiIHdpZHRoPSIyMCIgaGVpZ2h0PSIxMDAiLz4KKyAgICA8L2NsaXBQYXRoPgor
ICAgIDxjbGlwUGF0aCBpZD0iYm90dG9tLWxlZnQiPgorICAgICAgPHJlY3QgeD0iMCIgeT0iMCIg
d2lkdGg9IjIwIiBoZWlnaHQ9IjIwIi8+CisgICAgPC9jbGlwUGF0aD4KKyAgICA8Y2xpcFBhdGgg
aWQ9InRvcC1yaWdodCI+CisgICAgICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMjAiIGhlaWdo
dD0iMjAiLz4KKyAgICA8L2NsaXBQYXRoPgorICAgIDxjbGlwUGF0aCBpZD0icmlnaHQiPgorICAg
ICAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjIwIiBoZWlnaHQ9IjEwMCIvPgorICAgIDwvY2xp
cFBhdGg+CisgICAgPGNsaXBQYXRoIGlkPSJib3R0b20tcmlnaHQiPgorICAgICAgPHJlY3QgeD0i
MCIgeT0iMCIgd2lkdGg9IjIwIiBoZWlnaHQ9IjIwIi8+CisgICAgPC9jbGlwUGF0aD4KKyAgICA8
Y2xpcFBhdGggaWQ9InRvcCI+CisgICAgICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMTAwIiBo
ZWlnaHQ9IjIwIi8+CisgICAgPC9jbGlwUGF0aD4KKyAgICA8Y2xpcFBhdGggaWQ9ImJvdHRvbSI+
CisgICAgICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjIwIi8+CisgICAg
PC9jbGlwUGF0aD4KKyAgICA8Y2xpcFBhdGggaWQ9Im1pZGRsZSI+CisgICAgICA8cmVjdCB4PSIw
IiB5PSIwIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIvPgorICAgIDwvY2xpcFBhdGg+CisgIDwv
ZGVmcz4KKyAgCisgIDx1c2UgeD0iMCIgeT0iMCIgeGxpbms6aHJlZj0iI2JvcmRlci1pbWFnZSIg
Y2xpcC1wYXRoPSJ1cmwoI3RvcC1sZWZ0KSIvPgorICA8dXNlIHg9IjAiIHk9IjIwIiB4bGluazpo
cmVmPSIjYm9yZGVyLWltYWdlIiBjbGlwLXBhdGg9InVybCgjbGVmdCkiLz4KKyAgPHVzZSB4PSIw
IiB5PSIxMjAiIHhsaW5rOmhyZWY9IiNib3JkZXItaW1hZ2UiIGNsaXAtcGF0aD0idXJsKCNib3R0
b20tbGVmdCkiLz4KKyAgCisgIDx1c2UgeD0iMTIwIiB5PSIwIiB4bGluazpocmVmPSIjYm9yZGVy
LWltYWdlIiBjbGlwLXBhdGg9InVybCgjdG9wLXJpZ2h0KSIvPgorICA8dXNlIHg9IjEyMCIgeT0i
MjAiIHhsaW5rOmhyZWY9IiNib3JkZXItaW1hZ2UiIGNsaXAtcGF0aD0idXJsKCNyaWdodCkiLz4K
KyAgPHVzZSB4PSIxMjAiIHk9IjEyMCIgeGxpbms6aHJlZj0iI2JvcmRlci1pbWFnZSIgY2xpcC1w
YXRoPSJ1cmwoI2JvdHRvbS1yaWdodCkiLz4KKyAgCisgIDx1c2UgeD0iMjAiIHk9IjAiIHhsaW5r
OmhyZWY9IiNib3JkZXItaW1hZ2UiIGNsaXAtcGF0aD0idXJsKCN0b3ApIi8+CisgIDx1c2UgeD0i
MjAiIHk9IjEyMCIgeGxpbms6aHJlZj0iI2JvcmRlci1pbWFnZSIgY2xpcC1wYXRoPSJ1cmwoI2Jv
dHRvbSkiLz4KKyAgCisgIDx1c2UgeD0iMjAiIHk9IjIwIiB4bGluazpocmVmPSIjYm9yZGVyLWlt
YWdlIiBjbGlwLXBhdGg9InVybCgjbWlkZGxlKSIvPgorPC9zdmc+ClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9ib3JkZXJzL3Jlc291cmNlcy9zdmct
Ym9yZGVyLW5vLWludHJpbnNpYy5zdmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9i
b3JkZXJzL3Jlc291cmNlcy9zdmctYm9yZGVyLW5vLWludHJpbnNpYy5zdmcJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2JvcmRlcnMvcmVzb3VyY2VzL3N2Zy1ib3JkZXItbm8taW50
cmluc2ljLnN2Zwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDMgQEAKKzxzdmcgeG1sbnM9Imh0
dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiPgorICA8cmVjdCB3aWR0aD0i
MTAwIiBoZWlnaHQ9IjEwMCIgZmlsbD0ibGltZSIgc3Ryb2tlPSJibGFjayIvPgorPC9zdmc+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>252981</attachid>
            <date>2015-05-12 13:50:15 -0700</date>
            <delta_ts>2015-05-12 18:27:35 -0700</delta_ts>
            <desc>Test case</desc>
            <filename>border-image-fill-no-intrinsic-size.html</filename>
            <type>text/html</type>
            <size>1769</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIEhUTUw+CjxoZWFkPgogIDxzdHlsZT4KICAgIC5ib3ggewogICAgICBoZWlnaHQ6
IDEwMHB4OwogICAgICB3aWR0aDogMTAwcHg7CiAgICAgIG1hcmdpbjogMTBweDsKICAgICAgZGlz
cGxheTogaW5saW5lLWJsb2NrOwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7CiAgICB9CiAg
ICAuYm9yZGVyIHsKICAgICAgYm9yZGVyOiAyMHB4IHNvbGlkOwogICAgfQogICAgLm5vLWJvcmRl
ciB7CiAgICAgIGJvcmRlcjogMHB4IG5vbmU7CiAgICB9CiAgICAuYm9yZGVyLWltYWdlLTEwMC1p
bnRyaW5zaWMgewogICAgICAgYm9yZGVyLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbDt1
dGY4LDxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEi
IHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIj48cmVjdCB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIg
ZmlsbD0ibGltZSIgc3Ryb2tlPSJibGFjayIvPjwvc3ZnPicpIDAgZmlsbDsKICAgIH0KICAgIC5i
b3JkZXItaW1hZ2UtMTAwLWludHJpbnNpYy1zbGljZSB7CiAgICAgICBib3JkZXItaW1hZ2U6IHVy
bCgnZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
MjAwMC9zdmciIHZlcnNpb249IjEuMSIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiPjxyZWN0IHdp
ZHRoPSIxMDAiIGhlaWdodD0iMTAwIiBmaWxsPSJsaW1lIiBzdHJva2U9ImJsYWNrIi8+PC9zdmc+
JykgMjAgZmlsbDsKICAgIH0KICAgIC5ib3JkZXItaW1hZ2Utbm8taW50cmluc2ljIHsKICAgICAg
IGJvcmRlci1pbWFnZTogdXJsKCdkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHhtbG5zPSJo
dHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIj48cmVjdCB3aWR0aD0iMTAw
IiBoZWlnaHQ9IjEwMCIgZmlsbD0ibGltZSIgc3Ryb2tlPSJibGFjayIvPjwvc3ZnPicpIDAgZmls
bDsKICAgIH0KICAgIC5ib3JkZXItaW1hZ2Utbm8taW50cmluc2ljLXNsaWNlIHsKICAgICAgIGJv
cmRlci1pbWFnZTogdXJsKCdkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHhtbG5zPSJodHRw
Oi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIj48cmVjdCB3aWR0aD0iMTAwIiBo
ZWlnaHQ9IjEwMCIgZmlsbD0ibGltZSIgc3Ryb2tlPSJibGFjayIvPjwvc3ZnPicpIDIwIGZpbGw7
CiAgICB9CiAgPC9zdHlsZT4KPC9oZWFkPgo8Ym9keT4KICA8ZGl2IGNsYXNzPSJib3ggbm8tYm9y
ZGVyIGJvcmRlci1pbWFnZS0xMDAtaW50cmluc2ljIj48L2Rpdj4KICA8ZGl2IGNsYXNzPSJib3gg
Ym9yZGVyICAgIGJvcmRlci1pbWFnZS0xMDAtaW50cmluc2ljIj48L2Rpdj4KICA8ZGl2IGNsYXNz
PSJib3ggbm8tYm9yZGVyIGJvcmRlci1pbWFnZS0xMDAtaW50cmluc2ljLXNsaWNlIj48L2Rpdj4K
ICA8ZGl2IGNsYXNzPSJib3ggYm9yZGVyICAgIGJvcmRlci1pbWFnZS0xMDAtaW50cmluc2ljLXNs
aWNlIj48L2Rpdj4KICA8YnI+CiAgPGRpdiBjbGFzcz0iYm94IG5vLWJvcmRlciBib3JkZXItaW1h
Z2Utbm8taW50cmluc2ljIj48L2Rpdj4KICA8ZGl2IGNsYXNzPSJib3ggYm9yZGVyICAgIGJvcmRl
ci1pbWFnZS1uby1pbnRyaW5zaWMiPjwvZGl2PgogIDxkaXYgY2xhc3M9ImJveCBuby1ib3JkZXIg
Ym9yZGVyLWltYWdlLW5vLWludHJpbnNpYy1zbGljZSI+PC9kaXY+CiAgPGRpdiBjbGFzcz0iYm94
IGJvcmRlciAgICBib3JkZXItaW1hZ2Utbm8taW50cmluc2ljLXNsaWNlIj48L2Rpdj4KPC9ib2R5
Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>252994</attachid>
            <date>2015-05-12 15:52:20 -0700</date>
            <delta_ts>2015-05-20 18:08:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139405-20150512155058.patch</filename>
            <type>text/plain</type>
            <size>21704</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4NDIxNCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDE1LTA1LTEyICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgQW4gU1ZHIHdp
dGggbm8gaW50cmluc2ljIHNpemUgZG9lcyBub3QgZHJhdyBjb3JyZWN0IHNsaWNlcyB3aGVuIHVz
ZWQgYXMgYSBib3JkZXItaW1hZ2UgZm9yIGFuIEhUTUwgZWxlbWVudC4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzOTQwNQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGZhc3QvYm9yZGVycy9ib3Jk
ZXItaW1hZ2UtZmlsbC1uby1pbnRyaW5zaWMtc2l6ZS5odG1sCisKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJC
b3hNb2RlbE9iamVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6
OmNhbGN1bGF0ZUltYWdlSW50cmluc2ljRGltZW5zaW9ucyk6IEFkZCBhCisgICAgICAgIHJldHVy
biB2YWx1ZSB0byBpbmRpY2F0ZSB3aGV0aGVyIHRoZSBpbWFnZSBoYXMgYW4gaW50cmluc2ljIHNp
emUgb3Igbm90LgorICAgICAgICAKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveE1vZGVsT2Jq
ZWN0OjpwYWludE5pbmVQaWVjZUltYWdlKTogRm9yIG5vbiBpbnRyaW5zaWMtc2l6ZQorICAgICAg
ICBpbWFnZXMsIGdldCBhbGwgdGhlIHNsaWNlcyBmcm9tICgwLCAwKSBvZiB0aGUgc291cmNlIGlt
YWdlLiBVc2UgdGhlIHNsaWNlcycKKyAgICAgICAgbGVuZ3RocyB3aGVuIGdldHRpbmcgdGhlIGNv
cm5lcnMgZnJvbSB0aGUgc291cmNlIGltYWdlLiBBbmQgdXNlIHRoZSBkZXN0aW5hdGlvbgorICAg
ICAgICB3aWR0aC9oZWlnaHQgd2hlbiBnZXR0aW5nIHRoZSBjb3JuZXJzIGZyb20gdGhlIHNvdXJj
ZSBpbWFnZS4KKwogMjAxNS0wNS0xMiAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNv
bT4KIAogICAgICAgICBST0xMT1VUIFtXaW5dIFVucmV2aWV3ZWQgYnVpbGQgZml4IGZvciBvbGRl
ciBEaXJlY3RYIGJ1aWxkIGVudmlyb25tZW50cy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcAkocmV2aXNpb24gMTg0MTE2KQor
KysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtOTIxLDggKzkyMSwxMSBAQCBzdGF0aWMgaW5saW5lIExheW91dFNpemUg
cmVzb2x2ZUFnYWluc3RJCiAgICAgcmV0dXJuIExheW91dFNpemUoc2l6ZS53aWR0aCgpLCBzb2x1
dGlvbkhlaWdodCk7CiB9CiAKLUxheW91dFNpemUgUmVuZGVyQm94TW9kZWxPYmplY3Q6OmNhbGN1
bGF0ZUltYWdlSW50cmluc2ljRGltZW5zaW9ucyhTdHlsZUltYWdlKiBpbWFnZSwgY29uc3QgTGF5
b3V0U2l6ZSYgcG9zaXRpb25pbmdBcmVhU2l6ZSwgU2NhbGVCeUVmZmVjdGl2ZVpvb21Pck5vdCBz
aG91bGRTY2FsZU9yTm90KSBjb25zdAorTGF5b3V0U2l6ZSBSZW5kZXJCb3hNb2RlbE9iamVjdDo6
Y2FsY3VsYXRlSW1hZ2VJbnRyaW5zaWNEaW1lbnNpb25zKFN0eWxlSW1hZ2UqIGltYWdlLCBjb25z
dCBMYXlvdXRTaXplJiBwb3NpdGlvbmluZ0FyZWFTaXplLCBTY2FsZUJ5RWZmZWN0aXZlWm9vbU9y
Tm90IHNob3VsZFNjYWxlT3JOb3QsIGJvb2wqIGhhc0ludHJpbnNpY1NpemUpIGNvbnN0CiB7Cisg
ICAgaWYgKGhhc0ludHJpbnNpY1NpemUpCisgICAgICAgICpoYXNJbnRyaW5zaWNTaXplID0gdHJ1
ZTsKKwogICAgIC8vIEEgZ2VuZXJhdGVkIGltYWdlIHdpdGhvdXQgYSBmaXhlZCBzaXplLCB3aWxs
IGFsd2F5cyByZXR1cm4gdGhlIGNvbnRhaW5lciBzaXplIGFzIGludHJpbnNpYyBzaXplLgogICAg
IGlmIChpbWFnZS0+aXNHZW5lcmF0ZWRJbWFnZSgpICYmIGltYWdlLT51c2VzSW1hZ2VDb250YWlu
ZXJTaXplKCkpCiAgICAgICAgIHJldHVybiBMYXlvdXRTaXplKHBvc2l0aW9uaW5nQXJlYVNpemUu
d2lkdGgoKSwgcG9zaXRpb25pbmdBcmVhU2l6ZS5oZWlnaHQoKSk7CkBAIC05NDQsNiArOTQ3LDkg
QEAgTGF5b3V0U2l6ZSBSZW5kZXJCb3hNb2RlbE9iamVjdDo6Y2FsY3VsYQogICAgIGlmICghcmVz
b2x2ZWRTaXplLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHJlc29sdmVkU2l6ZTsKIAorICAg
IGlmIChoYXNJbnRyaW5zaWNTaXplKQorICAgICAgICAqaGFzSW50cmluc2ljU2l6ZSA9IGZhbHNl
OworCiAgICAgLy8gSWYgdGhlIGltYWdlIGhhcyBvbmUgb2YgZWl0aGVyIGFuIGludHJpbnNpYyB3
aWR0aCBvciBhbiBpbnRyaW5zaWMgaGVpZ2h0OgogICAgIC8vICogYW5kIGFuIGludHJpbnNpYyBh
c3BlY3QgcmF0aW8sIHRoZW4gdGhlIG1pc3NpbmcgZGltZW5zaW9uIGlzIGNhbGN1bGF0ZWQgZnJv
bSB0aGUgZ2l2ZW4gZGltZW5zaW9uIGFuZCB0aGUgcmF0aW8uCiAgICAgLy8gKiBhbmQgbm8gaW50
cmluc2ljIGFzcGVjdCByYXRpbywgdGhlbiB0aGUgbWlzc2luZyBkaW1lbnNpb24gaXMgYXNzdW1l
ZCB0byBiZSB0aGUgc2l6ZSBvZiB0aGUgcmVjdGFuZ2xlIHRoYXQKQEAgLTEyNjIsNyArMTI2OCw4
IEBAIGJvb2wgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50TmluZVBpZWMKICAgICByZWN0V2l0
aE91dHNldHMuZXhwYW5kKHN0eWxlLmltYWdlT3V0c2V0cyhuaW5lUGllY2VJbWFnZSkpOwogICAg
IExheW91dFJlY3QgYm9yZGVySW1hZ2VSZWN0ID0gTGF5b3V0UmVjdChzbmFwUmVjdFRvRGV2aWNl
UGl4ZWxzKHJlY3RXaXRoT3V0c2V0cywgZGV2aWNlU2NhbGVGYWN0b3IpKTsKIAotICAgIExheW91
dFNpemUgaW1hZ2VTaXplID0gY2FsY3VsYXRlSW1hZ2VJbnRyaW5zaWNEaW1lbnNpb25zKHN0eWxl
SW1hZ2UsIGJvcmRlckltYWdlUmVjdC5zaXplKCksIERvTm90U2NhbGVCeUVmZmVjdGl2ZVpvb20p
OworICAgIGJvb2wgaGFzSW50cmluc2ljU2l6ZSA9IHRydWU7CisgICAgTGF5b3V0U2l6ZSBpbWFn
ZVNpemUgPSBjYWxjdWxhdGVJbWFnZUludHJpbnNpY0RpbWVuc2lvbnMoc3R5bGVJbWFnZSwgYm9y
ZGVySW1hZ2VSZWN0LnNpemUoKSwgRG9Ob3RTY2FsZUJ5RWZmZWN0aXZlWm9vbSwgJmhhc0ludHJp
bnNpY1NpemUpOwogCiAgICAgLy8gSWYgYm90aCB2YWx1ZXMgYXJlIOKAmGF1dG/igJkgdGhlbiB0
aGUgaW50cmluc2ljIHdpZHRoIGFuZC9vciBoZWlnaHQgb2YgdGhlIGltYWdlIHNob3VsZCBiZSB1
c2VkLCBpZiBhbnkuCiAgICAgc3R5bGVJbWFnZS0+c2V0Q29udGFpbmVyU2l6ZUZvclJlbmRlcmVy
KHRoaXMsIGltYWdlU2l6ZSwgc3R5bGUuZWZmZWN0aXZlWm9vbSgpKTsKQEAgLTEzMTQsMTAgKzEz
MjEsMTAgQEAgYm9vbCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnROaW5lUGllYwogICAgIGZs
b2F0IHNvdXJjZVdpZHRoID0gaW1hZ2VXaWR0aCAtIGxlZnRTbGljZSAtIHJpZ2h0U2xpY2U7CiAg
ICAgZmxvYXQgc291cmNlSGVpZ2h0ID0gaW1hZ2VIZWlnaHQgLSB0b3BTbGljZSAtIGJvdHRvbVNs
aWNlOwogICAgIAotICAgIGZsb2F0IGxlZnRTaWRlU2NhbGUgPSBkcmF3TGVmdCA/IChmbG9hdCls
ZWZ0V2lkdGggLyBsZWZ0U2xpY2UgOiAxOwotICAgIGZsb2F0IHJpZ2h0U2lkZVNjYWxlID0gZHJh
d1JpZ2h0ID8gKGZsb2F0KXJpZ2h0V2lkdGggLyByaWdodFNsaWNlIDogMTsKLSAgICBmbG9hdCB0
b3BTaWRlU2NhbGUgPSBkcmF3VG9wID8gKGZsb2F0KXRvcFdpZHRoIC8gdG9wU2xpY2UgOiAxOwot
ICAgIGZsb2F0IGJvdHRvbVNpZGVTY2FsZSA9IGRyYXdCb3R0b20gPyAoZmxvYXQpYm90dG9tV2lk
dGggLyBib3R0b21TbGljZSA6IDE7CisgICAgZmxvYXQgbGVmdFNpZGVTY2FsZSA9IGRyYXdMZWZ0
ICYmIGhhc0ludHJpbnNpY1NpemUgPyAoZmxvYXQpbGVmdFdpZHRoIC8gbGVmdFNsaWNlIDogMTsK
KyAgICBmbG9hdCByaWdodFNpZGVTY2FsZSA9IGRyYXdSaWdodCAmJiBoYXNJbnRyaW5zaWNTaXpl
ID8gKGZsb2F0KXJpZ2h0V2lkdGggLyByaWdodFNsaWNlIDogMTsKKyAgICBmbG9hdCB0b3BTaWRl
U2NhbGUgPSBkcmF3VG9wICYmIGhhc0ludHJpbnNpY1NpemUgPyAoZmxvYXQpdG9wV2lkdGggLyB0
b3BTbGljZSA6IDE7CisgICAgZmxvYXQgYm90dG9tU2lkZVNjYWxlID0gZHJhd0JvdHRvbSAmJiBo
YXNJbnRyaW5zaWNTaXplID8gKGZsb2F0KWJvdHRvbVdpZHRoIC8gYm90dG9tU2xpY2UgOiAxOwog
CiAgICAgZmxvYXQgeCA9IGJvcmRlckltYWdlUmVjdC5sb2NhdGlvbigpLngoKTsKICAgICBmbG9h
dCB5ID0gYm9yZGVySW1hZ2VSZWN0LmxvY2F0aW9uKCkueSgpOwpAQCAtMTMyNiw1NSArMTMzMyw2
NSBAQCBib29sIFJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludE5pbmVQaWVjCiAKICAgICAgICAg
Ly8gVGhlIHRvcCBsZWZ0IGNvcm5lciByZWN0IGlzICh0eCwgdHksIGxlZnRXaWR0aCwgdG9wV2lk
dGgpCiAgICAgICAgIC8vIFRoZSByZWN0IHRvIHVzZSBmcm9tIHdpdGhpbiB0aGUgaW1hZ2UgaXMg
b2J0YWluZWQgZnJvbSBvdXIgc2xpY2UsIGFuZCBpcyAoMCwgMCwgbGVmdFNsaWNlLCB0b3BTbGlj
ZSkKLSAgICAgICAgaWYgKGRyYXdUb3ApCi0gICAgICAgICAgICBncmFwaGljc0NvbnRleHQtPmRy
YXdJbWFnZShpbWFnZS5nZXQoKSwgY29sb3JTcGFjZSwgc25hcFJlY3RUb0RldmljZVBpeGVscyh4
LCB5LCBsZWZ0V2lkdGgsIHRvcFdpZHRoLCBkZXZpY2VTY2FsZUZhY3RvciksCi0gICAgICAgICAg
ICAgICAgc25hcFJlY3RUb0RldmljZVBpeGVscygwLCAwLCBsZWZ0U2xpY2UsIHRvcFNsaWNlLCBk
ZXZpY2VTY2FsZUZhY3RvciksIG9wKTsKKyAgICAgICAgaWYgKGRyYXdUb3ApIHsKKyAgICAgICAg
ICAgIEZsb2F0UmVjdCBzcmNSZWN0ID0gc25hcFJlY3RUb0RldmljZVBpeGVscygwLCAwLCBsZWZ0
U2xpY2UsIHRvcFNsaWNlLCBkZXZpY2VTY2FsZUZhY3Rvcik7CisgICAgICAgICAgICBncmFwaGlj
c0NvbnRleHQtPmRyYXdJbWFnZShpbWFnZS5nZXQoKSwgY29sb3JTcGFjZSwgc25hcFJlY3RUb0Rl
dmljZVBpeGVscyh4LCB5LCBsZWZ0V2lkdGgsIHRvcFdpZHRoLCBkZXZpY2VTY2FsZUZhY3Rvciks
IHNyY1JlY3QsIG9wKTsKKyAgICAgICAgfQogCiAgICAgICAgIC8vIFRoZSBib3R0b20gbGVmdCBj
b3JuZXIgcmVjdCBpcyAodHgsIHR5ICsgaCAtIGJvdHRvbVdpZHRoLCBsZWZ0V2lkdGgsIGJvdHRv
bVdpZHRoKQogICAgICAgICAvLyBUaGUgcmVjdCB0byB1c2UgZnJvbSB3aXRoaW4gdGhlIGltYWdl
IGlzICgwLCBpbWFnZUhlaWdodCAtIGJvdHRvbVNsaWNlLCBsZWZ0U2xpY2UsIGJvdG9tU2xpY2Up
Ci0gICAgICAgIGlmIChkcmF3Qm90dG9tKQotICAgICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5k
cmF3SW1hZ2UoaW1hZ2UuZ2V0KCksIGNvbG9yU3BhY2UsIHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMo
eCwgYm9yZGVySW1hZ2VSZWN0Lm1heFkoKSAtIGJvdHRvbVdpZHRoLCBsZWZ0V2lkdGgsIGJvdHRv
bVdpZHRoLCBkZXZpY2VTY2FsZUZhY3RvciksCi0gICAgICAgICAgICAgICAgc25hcFJlY3RUb0Rl
dmljZVBpeGVscygwLCBpbWFnZUhlaWdodCAtIGJvdHRvbVNsaWNlLCBsZWZ0U2xpY2UsIGJvdHRv
bVNsaWNlLCBkZXZpY2VTY2FsZUZhY3RvciksIG9wKTsKKyAgICAgICAgaWYgKGRyYXdCb3R0b20p
IHsKKyAgICAgICAgICAgIEZsb2F0UmVjdCBzcmNSZWN0ID0gIWhhc0ludHJpbnNpY1NpemUgPyBz
bmFwUmVjdFRvRGV2aWNlUGl4ZWxzKDAsIDAsIGxlZnRTbGljZSwgYm90dG9tU2xpY2UsIGRldmlj
ZVNjYWxlRmFjdG9yKSA6IHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMoMCwgaW1hZ2VIZWlnaHQgLSBi
b3R0b21TbGljZSwgbGVmdFNsaWNlLCBib3R0b21TbGljZSwgZGV2aWNlU2NhbGVGYWN0b3IpOwor
ICAgICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5kcmF3SW1hZ2UoaW1hZ2UuZ2V0KCksIGNvbG9y
U3BhY2UsIHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMoeCwgYm9yZGVySW1hZ2VSZWN0Lm1heFkoKSAt
IGJvdHRvbVdpZHRoLCBsZWZ0V2lkdGgsIGJvdHRvbVdpZHRoLCBkZXZpY2VTY2FsZUZhY3Rvciks
IHNyY1JlY3QsIG9wKTsKKyAgICAgICAgfQogCiAgICAgICAgIC8vIFBhaW50IHRoZSBsZWZ0IGVk
Z2UuCiAgICAgICAgIC8vIEhhdmUgdG8gc2NhbGUgYW5kIHRpbGUgaW50byB0aGUgYm9yZGVyIHJl
Y3QuCi0gICAgICAgIGlmIChzb3VyY2VIZWlnaHQgPiAwKQorICAgICAgICBpZiAoc291cmNlSGVp
Z2h0ID4gMCkgeworICAgICAgICAgICAgRmxvYXRSZWN0IHNyY1JlY3QgPSAhaGFzSW50cmluc2lj
U2l6ZSA/IHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMoMCwgMCwgbGVmdFNsaWNlLCBkZXN0aW5hdGlv
bkhlaWdodCwgZGV2aWNlU2NhbGVGYWN0b3IpIDogc25hcFJlY3RUb0RldmljZVBpeGVscygwLCB0
b3BTbGljZSwgbGVmdFNsaWNlLCBzb3VyY2VIZWlnaHQsIGRldmljZVNjYWxlRmFjdG9yKTsKICAg
ICAgICAgICAgIGdyYXBoaWNzQ29udGV4dC0+ZHJhd1RpbGVkSW1hZ2UoaW1hZ2UuZ2V0KCksIGNv
bG9yU3BhY2UsIHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMoeCwgeSArIHRvcFdpZHRoLCBsZWZ0V2lk
dGgsIGRlc3RpbmF0aW9uSGVpZ2h0LCBkZXZpY2VTY2FsZUZhY3RvciksCi0gICAgICAgICAgICAg
ICAgc25hcFJlY3RUb0RldmljZVBpeGVscygwLCB0b3BTbGljZSwgbGVmdFNsaWNlLCBzb3VyY2VI
ZWlnaHQsIGRldmljZVNjYWxlRmFjdG9yKSwgRmxvYXRTaXplKGxlZnRTaWRlU2NhbGUsIGxlZnRT
aWRlU2NhbGUpLCBJbWFnZTo6U3RyZXRjaFRpbGUsIChJbWFnZTo6VGlsZVJ1bGUpdlJ1bGUsIG9w
KTsKKyAgICAgICAgICAgICAgICBzcmNSZWN0LCBGbG9hdFNpemUobGVmdFNpZGVTY2FsZSwgbGVm
dFNpZGVTY2FsZSksIEltYWdlOjpTdHJldGNoVGlsZSwgKEltYWdlOjpUaWxlUnVsZSl2UnVsZSwg
b3ApOworICAgICAgICB9CiAgICAgfQogCiAgICAgaWYgKGRyYXdSaWdodCkgewogICAgICAgICAv
LyBQYWludCB0aGUgdG9wIGFuZCBib3R0b20gcmlnaHQgY29ybmVycwogICAgICAgICAvLyBUaGUg
dG9wIHJpZ2h0IGNvcm5lciByZWN0IGlzICh0eCArIHcgLSByaWdodFdpZHRoLCB0eSwgcmlnaHRX
aWR0aCwgdG9wV2lkdGgpCiAgICAgICAgIC8vIFRoZSByZWN0IHRvIHVzZSBmcm9tIHdpdGhpbiB0
aGUgaW1hZ2UgaXMgb2J0YWluZWQgZnJvbSBvdXIgc2xpY2UsIGFuZCBpcyAoaW1hZ2VXaWR0aCAt
IHJpZ2h0U2xpY2UsIDAsIHJpZ2h0U2xpY2UsIHRvcFNsaWNlKQotICAgICAgICBpZiAoZHJhd1Rv
cCkKLSAgICAgICAgICAgIGdyYXBoaWNzQ29udGV4dC0+ZHJhd0ltYWdlKGltYWdlLmdldCgpLCBj
b2xvclNwYWNlLCBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKGJvcmRlckltYWdlUmVjdC5tYXhYKCkg
LSByaWdodFdpZHRoLCB5LCByaWdodFdpZHRoLCB0b3BXaWR0aCwgZGV2aWNlU2NhbGVGYWN0b3Ip
LAotICAgICAgICAgICAgICAgIHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMoaW1hZ2VXaWR0aCAtIHJp
Z2h0U2xpY2UsIDAsIHJpZ2h0U2xpY2UsIHRvcFNsaWNlLCBkZXZpY2VTY2FsZUZhY3RvciksIG9w
KTsKKyAgICAgICAgaWYgKGRyYXdUb3ApIHsKKyAgICAgICAgICAgIEZsb2F0UmVjdCBzcmNSZWN0
ID0gIWhhc0ludHJpbnNpY1NpemUgPyBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKDAsIDAsIHJpZ2h0
U2xpY2UsIHRvcFNsaWNlLCBkZXZpY2VTY2FsZUZhY3RvcikgOiBzbmFwUmVjdFRvRGV2aWNlUGl4
ZWxzKGltYWdlV2lkdGggLSByaWdodFNsaWNlLCAwLCByaWdodFNsaWNlLCB0b3BTbGljZSwgZGV2
aWNlU2NhbGVGYWN0b3IpOworICAgICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5kcmF3SW1hZ2Uo
aW1hZ2UuZ2V0KCksIGNvbG9yU3BhY2UsIHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMoYm9yZGVySW1h
Z2VSZWN0Lm1heFgoKSAtIHJpZ2h0V2lkdGgsIHksIHJpZ2h0V2lkdGgsIHRvcFdpZHRoLCBkZXZp
Y2VTY2FsZUZhY3RvciksIHNyY1JlY3QsIG9wKTsKKyAgICAgICAgfQogCiAgICAgICAgIC8vIFRo
ZSBib3R0b20gcmlnaHQgY29ybmVyIHJlY3QgaXMgKHR4ICsgdyAtIHJpZ2h0V2lkdGgsIHR5ICsg
aCAtIGJvdHRvbVdpZHRoLCByaWdodFdpZHRoLCBib3R0b21XaWR0aCkKICAgICAgICAgLy8gVGhl
IHJlY3QgdG8gdXNlIGZyb20gd2l0aGluIHRoZSBpbWFnZSBpcyAoaW1hZ2VXaWR0aCAtIHJpZ2h0
U2xpY2UsIGltYWdlSGVpZ2h0IC0gYm90dG9tU2xpY2UsIHJpZ2h0U2xpY2UsIGJvdHRvbVNsaWNl
KQotICAgICAgICBpZiAoZHJhd0JvdHRvbSkKKyAgICAgICAgaWYgKGRyYXdCb3R0b20pIHsKKyAg
ICAgICAgICAgIEZsb2F0UmVjdCBzcmNSZWN0ID0gIWhhc0ludHJpbnNpY1NpemUgPyBzbmFwUmVj
dFRvRGV2aWNlUGl4ZWxzKDAsIDAsIHJpZ2h0U2xpY2UsIGJvdHRvbVNsaWNlLCBkZXZpY2VTY2Fs
ZUZhY3RvcikgOiBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKGltYWdlV2lkdGggLSByaWdodFNsaWNl
LCBpbWFnZUhlaWdodCAtIGJvdHRvbVNsaWNlLCByaWdodFNsaWNlLCBib3R0b21TbGljZSwgZGV2
aWNlU2NhbGVGYWN0b3IpOwogICAgICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5kcmF3SW1hZ2Uo
aW1hZ2UuZ2V0KCksIGNvbG9yU3BhY2UsIHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMoYm9yZGVySW1h
Z2VSZWN0Lm1heFgoKSAtIHJpZ2h0V2lkdGgsIGJvcmRlckltYWdlUmVjdC5tYXhZKCkgLSBib3R0
b21XaWR0aCwKLSAgICAgICAgICAgICAgICByaWdodFdpZHRoLCBib3R0b21XaWR0aCwgZGV2aWNl
U2NhbGVGYWN0b3IpLCBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKGltYWdlV2lkdGggLSByaWdodFNs
aWNlLCBpbWFnZUhlaWdodCAtIGJvdHRvbVNsaWNlLCByaWdodFNsaWNlLCBib3R0b21TbGljZSwg
ZGV2aWNlU2NhbGVGYWN0b3IpLAotICAgICAgICAgICAgICAgIG9wKTsKKyAgICAgICAgICAgICAg
ICByaWdodFdpZHRoLCBib3R0b21XaWR0aCwgZGV2aWNlU2NhbGVGYWN0b3IpLCBzcmNSZWN0LCBv
cCk7CisgICAgICAgIH0KIAogICAgICAgICAvLyBQYWludCB0aGUgcmlnaHQgZWRnZS4KLSAgICAg
ICAgaWYgKHNvdXJjZUhlaWdodCA+IDApCisgICAgICAgIGlmIChzb3VyY2VIZWlnaHQgPiAwKSB7
CisgICAgICAgICAgICBGbG9hdFJlY3Qgc3JjUmVjdCA9ICFoYXNJbnRyaW5zaWNTaXplID8gc25h
cFJlY3RUb0RldmljZVBpeGVscygwLCAwLCByaWdodFNsaWNlLCBkZXN0aW5hdGlvbkhlaWdodCwg
ZGV2aWNlU2NhbGVGYWN0b3IpIDogc25hcFJlY3RUb0RldmljZVBpeGVscyhpbWFnZVdpZHRoIC0g
cmlnaHRTbGljZSwgdG9wU2xpY2UsIHJpZ2h0U2xpY2UsIHNvdXJjZUhlaWdodCwgZGV2aWNlU2Nh
bGVGYWN0b3IpOwogICAgICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5kcmF3VGlsZWRJbWFnZShp
bWFnZS5nZXQoKSwgY29sb3JTcGFjZSwgc25hcFJlY3RUb0RldmljZVBpeGVscyhib3JkZXJJbWFn
ZVJlY3QubWF4WCgpIC0gcmlnaHRXaWR0aCwgeSArIHRvcFdpZHRoLCByaWdodFdpZHRoLCBkZXN0
aW5hdGlvbkhlaWdodCwgZGV2aWNlU2NhbGVGYWN0b3IpLAotICAgICAgICAgICAgICAgIHNuYXBS
ZWN0VG9EZXZpY2VQaXhlbHMoaW1hZ2VXaWR0aCAtIHJpZ2h0U2xpY2UsIHRvcFNsaWNlLCByaWdo
dFNsaWNlLCBzb3VyY2VIZWlnaHQsIGRldmljZVNjYWxlRmFjdG9yKSwgRmxvYXRTaXplKHJpZ2h0
U2lkZVNjYWxlLCByaWdodFNpZGVTY2FsZSksCi0gICAgICAgICAgICAgICAgSW1hZ2U6OlN0cmV0
Y2hUaWxlLCAoSW1hZ2U6OlRpbGVSdWxlKXZSdWxlLCBvcCk7CisgICAgICAgICAgICAgICAgc3Jj
UmVjdCwgRmxvYXRTaXplKHJpZ2h0U2lkZVNjYWxlLCByaWdodFNpZGVTY2FsZSksIEltYWdlOjpT
dHJldGNoVGlsZSwgKEltYWdlOjpUaWxlUnVsZSl2UnVsZSwgb3ApOworICAgICAgICB9CiAgICAg
fQogCiAgICAgLy8gUGFpbnQgdGhlIHRvcCBlZGdlLgotICAgIGlmIChkcmF3VG9wICYmIHNvdXJj
ZVdpZHRoID4gMCkKKyAgICBpZiAoZHJhd1RvcCAmJiBzb3VyY2VXaWR0aCA+IDApIHsKKyAgICAg
ICAgRmxvYXRSZWN0IHNyY1JlY3QgPSAhaGFzSW50cmluc2ljU2l6ZSA/IHNuYXBSZWN0VG9EZXZp
Y2VQaXhlbHMoMCwgMCwgZGVzdGluYXRpb25XaWR0aCwgdG9wU2xpY2UsIGRldmljZVNjYWxlRmFj
dG9yKSA6IHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMobGVmdFNsaWNlLCAwLCBzb3VyY2VXaWR0aCwg
dG9wU2xpY2UsIGRldmljZVNjYWxlRmFjdG9yKTsKICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5k
cmF3VGlsZWRJbWFnZShpbWFnZS5nZXQoKSwgY29sb3JTcGFjZSwgc25hcFJlY3RUb0RldmljZVBp
eGVscyh4ICsgbGVmdFdpZHRoLCB5LCBkZXN0aW5hdGlvbldpZHRoLCB0b3BXaWR0aCwgZGV2aWNl
U2NhbGVGYWN0b3IpLAotICAgICAgICAgICAgc25hcFJlY3RUb0RldmljZVBpeGVscyhsZWZ0U2xp
Y2UsIDAsIHNvdXJjZVdpZHRoLCB0b3BTbGljZSwgZGV2aWNlU2NhbGVGYWN0b3IpLCBGbG9hdFNp
emUodG9wU2lkZVNjYWxlLCB0b3BTaWRlU2NhbGUpLCAoSW1hZ2U6OlRpbGVSdWxlKWhSdWxlLCBJ
bWFnZTo6U3RyZXRjaFRpbGUsIG9wKTsKKyAgICAgICAgICAgIHNyY1JlY3QsIEZsb2F0U2l6ZSh0
b3BTaWRlU2NhbGUsIHRvcFNpZGVTY2FsZSksIChJbWFnZTo6VGlsZVJ1bGUpaFJ1bGUsIEltYWdl
OjpTdHJldGNoVGlsZSwgb3ApOworICAgIH0KIAogICAgIC8vIFBhaW50IHRoZSBib3R0b20gZWRn
ZS4KLSAgICBpZiAoZHJhd0JvdHRvbSAmJiBzb3VyY2VXaWR0aCA+IDApCisgICAgaWYgKGRyYXdC
b3R0b20gJiYgc291cmNlV2lkdGggPiAwKSB7CisgICAgICAgIEZsb2F0UmVjdCBzcmNSZWN0ID0g
IWhhc0ludHJpbnNpY1NpemUgPyBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKDAsIDAsIGRlc3RpbmF0
aW9uV2lkdGgsIGJvdHRvbVNsaWNlLCBkZXZpY2VTY2FsZUZhY3RvcikgOiBzbmFwUmVjdFRvRGV2
aWNlUGl4ZWxzKGxlZnRTbGljZSwgaW1hZ2VIZWlnaHQgLSBib3R0b21TbGljZSwgc291cmNlV2lk
dGgsIGJvdHRvbVNsaWNlLCBkZXZpY2VTY2FsZUZhY3Rvcik7CiAgICAgICAgIGdyYXBoaWNzQ29u
dGV4dC0+ZHJhd1RpbGVkSW1hZ2UoaW1hZ2UuZ2V0KCksIGNvbG9yU3BhY2UsIHNuYXBSZWN0VG9E
ZXZpY2VQaXhlbHMoeCArIGxlZnRXaWR0aCwgYm9yZGVySW1hZ2VSZWN0Lm1heFkoKSAtIGJvdHRv
bVdpZHRoLCBkZXN0aW5hdGlvbldpZHRoLCBib3R0b21XaWR0aCwgZGV2aWNlU2NhbGVGYWN0b3Ip
LAotICAgICAgICAgICAgc25hcFJlY3RUb0RldmljZVBpeGVscyhsZWZ0U2xpY2UsIGltYWdlSGVp
Z2h0IC0gYm90dG9tU2xpY2UsIHNvdXJjZVdpZHRoLCBib3R0b21TbGljZSwgZGV2aWNlU2NhbGVG
YWN0b3IpLCBGbG9hdFNpemUoYm90dG9tU2lkZVNjYWxlLCBib3R0b21TaWRlU2NhbGUpLAotICAg
ICAgICAgICAgKEltYWdlOjpUaWxlUnVsZSloUnVsZSwgSW1hZ2U6OlN0cmV0Y2hUaWxlLCBvcCk7
CisgICAgICAgICAgICBzcmNSZWN0LCBGbG9hdFNpemUoYm90dG9tU2lkZVNjYWxlLCBib3R0b21T
aWRlU2NhbGUpLCAoSW1hZ2U6OlRpbGVSdWxlKWhSdWxlLCBJbWFnZTo6U3RyZXRjaFRpbGUsIG9w
KTsKKyAgICB9CiAKICAgICAvLyBQYWludCB0aGUgbWlkZGxlLgogICAgIGlmIChkcmF3TWlkZGxl
KSB7CkBAIC0xMzk3LDExICsxNDE0LDExIEBAIGJvb2wgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBh
aW50TmluZVBpZWMKICAgICAgICAgICAgIAogICAgICAgICBpZiAodlJ1bGUgPT0gU3RyZXRjaElt
YWdlUnVsZSkKICAgICAgICAgICAgIG1pZGRsZVNjYWxlRmFjdG9yLnNldEhlaWdodChkZXN0aW5h
dGlvbkhlaWdodCAvIHNvdXJjZUhlaWdodCk7Ci0gICAgICAgIAorCisgICAgICAgIEZsb2F0UmVj
dCBzcmNSZWN0ID0gIWhhc0ludHJpbnNpY1NpemUgPyBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKDAs
IDAsIGRlc3RpbmF0aW9uV2lkdGgsIGRlc3RpbmF0aW9uSGVpZ2h0LCBkZXZpY2VTY2FsZUZhY3Rv
cikgOiBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKGxlZnRTbGljZSwgdG9wU2xpY2UsIHNvdXJjZVdp
ZHRoLCBzb3VyY2VIZWlnaHQsIGRldmljZVNjYWxlRmFjdG9yKTsKICAgICAgICAgZ3JhcGhpY3ND
b250ZXh0LT5kcmF3VGlsZWRJbWFnZShpbWFnZS5nZXQoKSwgY29sb3JTcGFjZSwKICAgICAgICAg
ICAgIHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMoeCArIGxlZnRXaWR0aCwgeSArIHRvcFdpZHRoLCBk
ZXN0aW5hdGlvbldpZHRoLCBkZXN0aW5hdGlvbkhlaWdodCwgZGV2aWNlU2NhbGVGYWN0b3IpLAot
ICAgICAgICAgICAgc25hcFJlY3RUb0RldmljZVBpeGVscyhsZWZ0U2xpY2UsIHRvcFNsaWNlLCBz
b3VyY2VXaWR0aCwgc291cmNlSGVpZ2h0LCBkZXZpY2VTY2FsZUZhY3RvciksCi0gICAgICAgICAg
ICBtaWRkbGVTY2FsZUZhY3RvciwgKEltYWdlOjpUaWxlUnVsZSloUnVsZSwgKEltYWdlOjpUaWxl
UnVsZSl2UnVsZSwgb3ApOworICAgICAgICAgICAgc3JjUmVjdCwgbWlkZGxlU2NhbGVGYWN0b3Is
IChJbWFnZTo6VGlsZVJ1bGUpaFJ1bGUsIChJbWFnZTo6VGlsZVJ1bGUpdlJ1bGUsIG9wKTsKICAg
ICB9CiAKICAgICByZXR1cm4gdHJ1ZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCb3hNb2RlbE9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oCShyZXZpc2lvbiAxODQxMTYpCisrKyBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaAkod29ya2luZyBjb3B5KQpA
QCAtMjg4LDcgKzI4OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIG1vdmVDaGlsZHJlblRvKFJlbmRl
ckJveE1vZGVsT2JqZWN0KiB0b0JveE1vZGVsT2JqZWN0LCBSZW5kZXJPYmplY3QqIHN0YXJ0Q2hp
bGQsIFJlbmRlck9iamVjdCogZW5kQ2hpbGQsIFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQsIGJv
b2wgZnVsbFJlbW92ZUluc2VydCA9IGZhbHNlKTsKIAogICAgIGVudW0gU2NhbGVCeUVmZmVjdGl2
ZVpvb21Pck5vdCB7IFNjYWxlQnlFZmZlY3RpdmVab29tLCBEb05vdFNjYWxlQnlFZmZlY3RpdmVa
b29tIH07Ci0gICAgTGF5b3V0U2l6ZSBjYWxjdWxhdGVJbWFnZUludHJpbnNpY0RpbWVuc2lvbnMo
U3R5bGVJbWFnZSosIGNvbnN0IExheW91dFNpemUmIHNjYWxlZFBvc2l0aW9uaW5nQXJlYVNpemUs
IFNjYWxlQnlFZmZlY3RpdmVab29tT3JOb3QpIGNvbnN0OworICAgIExheW91dFNpemUgY2FsY3Vs
YXRlSW1hZ2VJbnRyaW5zaWNEaW1lbnNpb25zKFN0eWxlSW1hZ2UqLCBjb25zdCBMYXlvdXRTaXpl
JiBzY2FsZWRQb3NpdGlvbmluZ0FyZWFTaXplLCBTY2FsZUJ5RWZmZWN0aXZlWm9vbU9yTm90LCBi
b29sKiBoYXNJbnRyaW5zaWNTaXplID0gbnVsbHB0cikgY29uc3Q7CiAKIHByaXZhdGU6CiAgICAg
TGF5b3V0VW5pdCBjb21wdXRlZENTU1BhZGRpbmcoY29uc3QgTGVuZ3RoJikgY29uc3Q7CkluZGV4
OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCShyZXZpc2lvbiAxODQyMTQpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwxOSBAQAorMjAxNS0wNS0xMiAgU2FpZCBBYm91LUhhbGxhd2EgIDxz
YWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIEFuIFNWRyB3aXRoIG5vIGludHJpbnNp
YyBzaXplIGRvZXMgbm90IGRyYXcgY29ycmVjdCBzbGljZXMgd2hlbiB1c2VkIGFzIGEgYm9yZGVy
LWltYWdlIGZvciBhbiBIVE1MIGVsZW1lbnQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk0MDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvYm9yZGVycy9ib3JkZXItaW1hZ2UtZmlsbC1uby1p
bnRyaW5zaWMtc2l6ZS1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2JvcmRl
cnMvYm9yZGVyLWltYWdlLWZpbGwtbm8taW50cmluc2ljLXNpemUuaHRtbDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9ib3JkZXJzL3Jlc291cmNlcy9zdmctYm9yZGVyLTEwMHgxMDAtaW50cmluc2lj
LnN2ZzogQWRkZWQuCisgICAgICAgICogZmFzdC9ib3JkZXJzL3Jlc291cmNlcy9zdmctYm9yZGVy
LTE0MHgxNDAtaW50cmluc2ljLnN2ZzogQWRkZWQuCisgICAgICAgICogZmFzdC9ib3JkZXJzL3Jl
c291cmNlcy9zdmctYm9yZGVyLW5vLWludHJpbnNpYy5zdmc6IEFkZGVkLgorICAgICAgICBNYWtl
IHN1cmUgdGhlIHNsaWNlcyBvZiB0aGUgYm9yZGVyLWltYWdlIGFyZSBkcmF3biBjb3JyZWN0bHku
IFdoZW4gdXNpbmcgYW4KKyAgICAgICAgaW1hZ2Ugd2l0aCBubyBpbnRyaW5zaWMgc2l6ZSwgYWxs
IHRoZSBzbGljZXMgaGFzIHRvIGJlIGdvdHRlbiBmcm9tICgwLCAwKQorICAgICAgICBvZiB0aGUg
c291cmNlIGltYWdlLgorCiAyMDE1LTA1LTEyICBKb2FubWFyaWUgRGlnZ3MgIDxqZGlnZ3NAaWdh
bGlhLmNvbT4KIAogICAgICAgICBBWDogW0FUS10gQVJJQSBtZW51IGl0ZW1zIHNob3VsZCBub3Qg
aGF2ZSBhbm9ueW1vdXMgYmxvY2sgY2hpbGRyZW4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvYm9y
ZGVycy9ib3JkZXItaW1hZ2UtZmlsbC1uby1pbnRyaW5zaWMtc2l6ZS1leHBlY3RlZC5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYm9yZGVycy9ib3JkZXItaW1hZ2UtZmlsbC1u
by1pbnRyaW5zaWMtc2l6ZS1leHBlY3RlZC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvZmFzdC9ib3JkZXJzL2JvcmRlci1pbWFnZS1maWxsLW5vLWludHJpbnNpYy1zaXplLWV4cGVj
dGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzOCBAQAorPCFET0NUWVBFIEhUTUw+
Cis8aGVhZD4KKyAgPHN0eWxlPgorICAgIC5ib3ggeworICAgICAgaGVpZ2h0OiAxMDBweDsKKyAg
ICAgIHdpZHRoOiAxMDBweDsKKyAgICAgIG1hcmdpbjogMTBweDsKKyAgICAgIGRpc3BsYXk6IGlu
bGluZS1ibG9jazsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKKyAgICB9CisgICAgLmJv
cmRlciB7CisgICAgICBib3JkZXI6IDIwcHggc29saWQ7CisgICAgfQorICAgIC5uby1ib3JkZXIg
eworICAgICAgYm9yZGVyOiAwcHggbm9uZTsKKyAgICB9CisgICAgLmJvcmRlci1pbWFnZS0xMDAt
aW50cmluc2ljIHsKKyAgICAgICBib3JkZXItaW1hZ2U6IHVybCgncmVzb3VyY2VzL3N2Zy1ib3Jk
ZXItMTAweDEwMC1pbnRyaW5zaWMuc3ZnJykgMCBmaWxsOworICAgIH0KKyAgICAuYm9yZGVyLWlt
YWdlLTEwMC1pbnRyaW5zaWMtc2xpY2UgeworICAgICAgIGJvcmRlci1pbWFnZTogdXJsKCdyZXNv
dXJjZXMvc3ZnLWJvcmRlci0xMDB4MTAwLWludHJpbnNpYy5zdmcnKSAyMCBmaWxsOworICAgIH0K
KyAgICAuYm9yZGVyLWltYWdlLTE0MC1pbnRyaW5zaWMtc2xpY2UgeworICAgICAgIGJvcmRlci1p
bWFnZTogdXJsKCdyZXNvdXJjZXMvc3ZnLWJvcmRlci0xNDB4MTQwLWludHJpbnNpYy5zdmcnKSAy
MCBmaWxsOworICAgIH0KKyAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICA8ZGl2IGNsYXNz
PSJib3ggbm8tYm9yZGVyIGJvcmRlci1pbWFnZS0xMDAtaW50cmluc2ljIj48L2Rpdj4KKyAgPGRp
diBjbGFzcz0iYm94IGJvcmRlciAgICBib3JkZXItaW1hZ2UtMTAwLWludHJpbnNpYyI+PC9kaXY+
CisgIDxkaXYgY2xhc3M9ImJveCBuby1ib3JkZXIgYm9yZGVyLWltYWdlLTEwMC1pbnRyaW5zaWMt
c2xpY2UiPjwvZGl2PgorICA8ZGl2IGNsYXNzPSJib3ggYm9yZGVyICAgIGJvcmRlci1pbWFnZS0x
MDAtaW50cmluc2ljLXNsaWNlIj48L2Rpdj4KKyAgPGJyPgorICA8ZGl2IGNsYXNzPSJib3ggbm8t
Ym9yZGVyIGJvcmRlci1pbWFnZS0xMDAtaW50cmluc2ljIj48L2Rpdj4KKyAgPGRpdiBjbGFzcz0i
Ym94IGJvcmRlciAgICBib3JkZXItaW1hZ2UtMTAwLWludHJpbnNpYyI+PC9kaXY+CisgIDxkaXYg
Y2xhc3M9ImJveCBuby1ib3JkZXIgYm9yZGVyLWltYWdlLTEwMC1pbnRyaW5zaWMiPjwvZGl2Pgor
ICA8ZGl2IGNsYXNzPSJib3ggYm9yZGVyICAgIGJvcmRlci1pbWFnZS0xNDAtaW50cmluc2ljLXNs
aWNlIj48L2Rpdj4KKzwvYm9keT4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvYm9yZGVycy9ib3Jk
ZXItaW1hZ2UtZmlsbC1uby1pbnRyaW5zaWMtc2l6ZS5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvYm9yZGVycy9ib3JkZXItaW1hZ2UtZmlsbC1uby1pbnRyaW5zaWMtc2l6ZS5o
dG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9ib3JkZXJzL2JvcmRlci1pbWFn
ZS1maWxsLW5vLWludHJpbnNpYy1zaXplLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0
MSBAQAorPCFET0NUWVBFIEhUTUw+Cis8aGVhZD4KKyAgPHN0eWxlPgorICAgIC5ib3ggeworICAg
ICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgIG1hcmdpbjogMTBw
eDsKKyAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6
IHJlZDsKKyAgICB9CisgICAgLmJvcmRlciB7CisgICAgICBib3JkZXI6IDIwcHggc29saWQ7Cisg
ICAgfQorICAgIC5uby1ib3JkZXIgeworICAgICAgYm9yZGVyOiAwcHggbm9uZTsKKyAgICB9Cisg
ICAgLmJvcmRlci1pbWFnZS0xMDAtaW50cmluc2ljIHsKKyAgICAgICBib3JkZXItaW1hZ2U6IHVy
bCgncmVzb3VyY2VzL3N2Zy1ib3JkZXItMTAweDEwMC1pbnRyaW5zaWMuc3ZnJykgMCBmaWxsOwor
ICAgIH0KKyAgICAuYm9yZGVyLWltYWdlLTEwMC1pbnRyaW5zaWMtc2xpY2UgeworICAgICAgIGJv
cmRlci1pbWFnZTogdXJsKCdyZXNvdXJjZXMvc3ZnLWJvcmRlci0xMDB4MTAwLWludHJpbnNpYy5z
dmcnKSAyMCBmaWxsOworICAgIH0KKyAgICAuYm9yZGVyLWltYWdlLW5vLWludHJpbnNpYyB7Cisg
ICAgICAgYm9yZGVyLWltYWdlOiB1cmwoJ3Jlc291cmNlcy9zdmctYm9yZGVyLW5vLWludHJpbnNp
Yy5zdmcnKSAwIGZpbGw7CisgICAgfQorICAgIC5ib3JkZXItaW1hZ2Utbm8taW50cmluc2ljLXNs
aWNlIHsKKyAgICAgICBib3JkZXItaW1hZ2U6IHVybCgncmVzb3VyY2VzL3N2Zy1ib3JkZXItbm8t
aW50cmluc2ljLnN2ZycpIDIwIGZpbGw7CisgICAgfQorICA8L3N0eWxlPgorPC9oZWFkPgorPGJv
ZHk+CisgIDxkaXYgY2xhc3M9ImJveCBuby1ib3JkZXIgYm9yZGVyLWltYWdlLTEwMC1pbnRyaW5z
aWMiPjwvZGl2PgorICA8ZGl2IGNsYXNzPSJib3ggYm9yZGVyICAgIGJvcmRlci1pbWFnZS0xMDAt
aW50cmluc2ljIj48L2Rpdj4KKyAgPGRpdiBjbGFzcz0iYm94IG5vLWJvcmRlciBib3JkZXItaW1h
Z2UtMTAwLWludHJpbnNpYy1zbGljZSI+PC9kaXY+CisgIDxkaXYgY2xhc3M9ImJveCBib3JkZXIg
ICAgYm9yZGVyLWltYWdlLTEwMC1pbnRyaW5zaWMtc2xpY2UiPjwvZGl2PgorICA8YnI+CisgIDxk
aXYgY2xhc3M9ImJveCBuby1ib3JkZXIgYm9yZGVyLWltYWdlLW5vLWludHJpbnNpYyI+PC9kaXY+
CisgIDxkaXYgY2xhc3M9ImJveCBib3JkZXIgICAgYm9yZGVyLWltYWdlLW5vLWludHJpbnNpYyI+
PC9kaXY+CisgIDxkaXYgY2xhc3M9ImJveCBuby1ib3JkZXIgYm9yZGVyLWltYWdlLW5vLWludHJp
bnNpYy1zbGljZSI+PC9kaXY+CisgIDxkaXYgY2xhc3M9ImJveCBib3JkZXIgICAgYm9yZGVyLWlt
YWdlLW5vLWludHJpbnNpYy1zbGljZSI+PC9kaXY+Cis8L2JvZHk+CkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2JvcmRlcnMvcmVzb3VyY2VzL3N2Zy1ib3JkZXItMTAweDEwMC1pbnRyaW5zaWMuc3Zn
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYm9yZGVycy9yZXNvdXJjZXMvc3ZnLWJv
cmRlci0xMDB4MTAwLWludHJpbnNpYy5zdmcJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2JvcmRlcnMvcmVzb3VyY2VzL3N2Zy1ib3JkZXItMTAweDEwMC1pbnRyaW5zaWMuc3ZnCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNCBAQAorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5v
cmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiPgorICA8
cmVjdCB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgZmlsbD0ibGltZSIvPgorICA8cmVjdCB4PSIx
MCIgeT0iMTAiIHdpZHRoPSI4MCIgaGVpZ2h0PSI4MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFj
ayIgc3Ryb2tlLXdpZHRoPSI0cHgiLz4KKzwvc3ZnPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvYm9yZGVycy9yZXNvdXJjZXMvc3ZnLWJvcmRlci0x
NDB4MTQwLWludHJpbnNpYy5zdmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ib3Jk
ZXJzL3Jlc291cmNlcy9zdmctYm9yZGVyLTE0MHgxNDAtaW50cmluc2ljLnN2ZwkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL2Zhc3QvYm9yZGVycy9yZXNvdXJjZXMvc3ZnLWJvcmRlci0xNDB4
MTQwLWludHJpbnNpYy5zdmcJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1MiBAQAorPHN2ZyB4
bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3
LnczLm9yZy8xOTk5L3hsaW5rIiB2ZXJzaW9uPSIxLjEiIHdpZHRoPSIxNDAiIGhlaWdodD0iMTQw
Ij4KKyAgPGRlZnM+CisgICAgPGcgaWQ9ImJvcmRlci1pbWFnZSI+CisgICAgICA8cmVjdCB3aWR0
aD0iMTAwIiBoZWlnaHQ9IjEwMCIgZmlsbD0ibGltZSIvPgorICAgICAgPHJlY3QgeD0iMTAiIHk9
IjEwIiB3aWR0aD0iODAiIGhlaWdodD0iODAiIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIHN0
cm9rZS13aWR0aD0iNHB4Ii8+CisgICAgPC9nPgorICAgIDxjbGlwUGF0aCBpZD0idG9wLWxlZnQi
PgorICAgICAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjIwIiBoZWlnaHQ9IjIwIi8+CisgICAg
PC9jbGlwUGF0aD4KKyAgICA8Y2xpcFBhdGggaWQ9ImxlZnQiPgorICAgICAgPHJlY3QgeD0iMCIg
eT0iMCIgd2lkdGg9IjIwIiBoZWlnaHQ9IjEwMCIvPgorICAgIDwvY2xpcFBhdGg+CisgICAgPGNs
aXBQYXRoIGlkPSJib3R0b20tbGVmdCI+CisgICAgICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0i
MjAiIGhlaWdodD0iMjAiLz4KKyAgICA8L2NsaXBQYXRoPgorICAgIDxjbGlwUGF0aCBpZD0idG9w
LXJpZ2h0Ij4KKyAgICAgIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIv
PgorICAgIDwvY2xpcFBhdGg+CisgICAgPGNsaXBQYXRoIGlkPSJyaWdodCI+CisgICAgICA8cmVj
dCB4PSIwIiB5PSIwIiB3aWR0aD0iMjAiIGhlaWdodD0iMTAwIi8+CisgICAgPC9jbGlwUGF0aD4K
KyAgICA8Y2xpcFBhdGggaWQ9ImJvdHRvbS1yaWdodCI+CisgICAgICA8cmVjdCB4PSIwIiB5PSIw
IiB3aWR0aD0iMjAiIGhlaWdodD0iMjAiLz4KKyAgICA8L2NsaXBQYXRoPgorICAgIDxjbGlwUGF0
aCBpZD0idG9wIj4KKyAgICAgIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAiIGhlaWdodD0i
MjAiLz4KKyAgICA8L2NsaXBQYXRoPgorICAgIDxjbGlwUGF0aCBpZD0iYm90dG9tIj4KKyAgICAg
IDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAiIGhlaWdodD0iMjAiLz4KKyAgICA8L2NsaXBQ
YXRoPgorICAgIDxjbGlwUGF0aCBpZD0ibWlkZGxlIj4KKyAgICAgIDxyZWN0IHg9IjAiIHk9IjAi
IHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIi8+CisgICAgPC9jbGlwUGF0aD4KKyAgPC9kZWZzPgor
ICAKKyAgPCEtLSBkcmF3IGxlZnQgc2lkZSAtLT4KKyAgPHVzZSB4PSIwIiB5PSIwIiB4bGluazpo
cmVmPSIjYm9yZGVyLWltYWdlIiBjbGlwLXBhdGg9InVybCgjdG9wLWxlZnQpIi8+CisgIDx1c2Ug
eD0iMCIgeT0iMjAiIHhsaW5rOmhyZWY9IiNib3JkZXItaW1hZ2UiIGNsaXAtcGF0aD0idXJsKCNs
ZWZ0KSIvPgorICA8dXNlIHg9IjAiIHk9IjEyMCIgeGxpbms6aHJlZj0iI2JvcmRlci1pbWFnZSIg
Y2xpcC1wYXRoPSJ1cmwoI2JvdHRvbS1sZWZ0KSIvPgorICAKKyAgPCEtLSBkcmF3IHJpZ2h0IHNp
ZGUgLS0+CisgIDx1c2UgeD0iMTIwIiB5PSIwIiB4bGluazpocmVmPSIjYm9yZGVyLWltYWdlIiBj
bGlwLXBhdGg9InVybCgjdG9wLXJpZ2h0KSIvPgorICA8dXNlIHg9IjEyMCIgeT0iMjAiIHhsaW5r
OmhyZWY9IiNib3JkZXItaW1hZ2UiIGNsaXAtcGF0aD0idXJsKCNyaWdodCkiLz4KKyAgPHVzZSB4
PSIxMjAiIHk9IjEyMCIgeGxpbms6aHJlZj0iI2JvcmRlci1pbWFnZSIgY2xpcC1wYXRoPSJ1cmwo
I2JvdHRvbS1yaWdodCkiLz4KKyAgCisgIDwhLS0gZHJhdyB0b3AgYW5kIGJvdHRvbSBzaWRlcyAt
LT4KKyAgPHVzZSB4PSIyMCIgeT0iMCIgeGxpbms6aHJlZj0iI2JvcmRlci1pbWFnZSIgY2xpcC1w
YXRoPSJ1cmwoI3RvcCkiLz4KKyAgPHVzZSB4PSIyMCIgeT0iMTIwIiB4bGluazpocmVmPSIjYm9y
ZGVyLWltYWdlIiBjbGlwLXBhdGg9InVybCgjYm90dG9tKSIvPgorICAKKyAgPCEtLSBkcmF3IG1p
ZGRsZSAtLT4KKyAgPHVzZSB4PSIyMCIgeT0iMjAiIHhsaW5rOmhyZWY9IiNib3JkZXItaW1hZ2Ui
IGNsaXAtcGF0aD0idXJsKCNtaWRkbGUpIi8+Cis8L3N2Zz4KXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2JvcmRlcnMvcmVzb3VyY2VzL3N2Zy1ib3Jk
ZXItbm8taW50cmluc2ljLnN2Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2JvcmRl
cnMvcmVzb3VyY2VzL3N2Zy1ib3JkZXItbm8taW50cmluc2ljLnN2ZwkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL2Zhc3QvYm9yZGVycy9yZXNvdXJjZXMvc3ZnLWJvcmRlci1uby1pbnRyaW5z
aWMuc3ZnCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNCBAQAorPHN2ZyB4bWxucz0iaHR0cDov
L3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSI+CisgIDxyZWN0IHdpZHRoPSIxMDAi
IGhlaWdodD0iMTAwIiBmaWxsPSJsaW1lIi8+CisgIDxyZWN0IHg9IjEwIiB5PSIxMCIgd2lkdGg9
IjgwIiBoZWlnaHQ9IjgwIiBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9
IjRweCIvPgorPC9zdmc+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>253002</attachid>
            <date>2015-05-12 18:28:12 -0700</date>
            <delta_ts>2015-05-12 18:28:12 -0700</delta_ts>
            <desc>Test case</desc>
            <filename>border-image-fill-no-intrinsic-size.html</filename>
            <type>text/html</type>
            <size>2271</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIEhUTUw+CjxoZWFkPgogIDxzdHlsZT4KICAgIC5ib3ggewogICAgICBoZWlnaHQ6
IDEwMHB4OwogICAgICB3aWR0aDogMTAwcHg7CiAgICAgIG1hcmdpbjogMTBweDsKICAgICAgZGlz
cGxheTogaW5saW5lLWJsb2NrOwogICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7CiAgICB9CiAg
ICAuYm9yZGVyIHsKICAgICAgYm9yZGVyOiAyMHB4IHNvbGlkOwogICAgfQogICAgLm5vLWJvcmRl
ciB7CiAgICAgIGJvcmRlcjogMHB4IG5vbmU7CiAgICB9CiAgICAuYm9yZGVyLWltYWdlLTEwMC1p
bnRyaW5zaWMgewogICAgICAgYm9yZGVyLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbDt1
dGY4LCBcCiAgICAgICA8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVy
c2lvbj0iMS4xIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCI+IFwKICAgICAgICAgPHJlY3Qgd2lk
dGg9IjEwMCIgaGVpZ2h0PSIxMDAiIGZpbGw9ImxpbWUiLz4gXAogICAgICAgICA8cmVjdCB4PSIx
MCIgeT0iMTAiIHdpZHRoPSI4MCIgaGVpZ2h0PSI4MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFj
ayIgc3Ryb2tlLXdpZHRoPSI0cHgiLz4gXAogICAgICAgICA8L3N2Zz4nKSAwIGZpbGw7CiAgICB9
CiAgICAuYm9yZGVyLWltYWdlLTEwMC1pbnRyaW5zaWMtc2xpY2UgewogICAgICAgYm9yZGVyLWlt
YWdlOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LCBcCiAgICAgICAgIDxzdmcgeG1sbnM9
Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjEiIHdpZHRoPSIxMDAiIGhl
aWdodD0iMTAwIj4gXAogICAgICAgICAgIDxyZWN0IHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIiBm
aWxsPSJsaW1lIi8+IFwKICAgICAgICAgICA8cmVjdCB4PSIxMCIgeT0iMTAiIHdpZHRoPSI4MCIg
aGVpZ2h0PSI4MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLXdpZHRoPSI0cHgi
Lz4gXAogICAgICAgICA8L3N2Zz4nKSAyMCBmaWxsOwogICAgfQogICAgLmJvcmRlci1pbWFnZS1u
by1pbnRyaW5zaWMgewogICAgICAgYm9yZGVyLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3ht
bDt1dGY4LCBcCiAgICAgICAgIDxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3Zn
IiB2ZXJzaW9uPSIxLjEiPiBcCiAgICAgICAgICAgPHJlY3Qgd2lkdGg9IjEwMCIgaGVpZ2h0PSIx
MDAiIGZpbGw9ImxpbWUiLz4gXAogICAgICAgICAgIDxyZWN0IHg9IjEwIiB5PSIxMCIgd2lkdGg9
IjgwIiBoZWlnaHQ9IjgwIiBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9
IjRweCIvPiBcCiAgICAgICAgIDwvc3ZnPicpIDAgZmlsbDsKICAgIH0KICAgIC5ib3JkZXItaW1h
Z2Utbm8taW50cmluc2ljLXNsaWNlIHsKICAgICAgIGJvcmRlci1pbWFnZTogdXJsKCdkYXRhOmlt
YWdlL3N2Zyt4bWw7dXRmOCwgXAogICAgICAgICA8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9y
Zy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4xIj4gXAogICAgICAgICAgIDxyZWN0IHdpZHRoPSIxMDAi
IGhlaWdodD0iMTAwIiBmaWxsPSJsaW1lIi8+IFwKICAgICAgICAgICA8cmVjdCB4PSIxMCIgeT0i
MTAiIHdpZHRoPSI4MCIgaGVpZ2h0PSI4MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgc3Ry
b2tlLXdpZHRoPSI0cHgiLz4gXAogICAgICAgICA8L3N2Zz4nKSAyMCBmaWxsOwogICAgfQogIDwv
c3R5bGU+CjwvaGVhZD4KPGJvZHk+CiAgPGRpdiBjbGFzcz0iYm94IG5vLWJvcmRlciBib3JkZXIt
aW1hZ2UtMTAwLWludHJpbnNpYyI+PC9kaXY+CiAgPGRpdiBjbGFzcz0iYm94IGJvcmRlciAgICBi
b3JkZXItaW1hZ2UtMTAwLWludHJpbnNpYyI+PC9kaXY+CiAgPGRpdiBjbGFzcz0iYm94IG5vLWJv
cmRlciBib3JkZXItaW1hZ2UtMTAwLWludHJpbnNpYy1zbGljZSI+PC9kaXY+CiAgPGRpdiBjbGFz
cz0iYm94IGJvcmRlciAgICBib3JkZXItaW1hZ2UtMTAwLWludHJpbnNpYy1zbGljZSI+PC9kaXY+
CiAgPGJyPgogIDxkaXYgY2xhc3M9ImJveCBuby1ib3JkZXIgYm9yZGVyLWltYWdlLW5vLWludHJp
bnNpYyI+PC9kaXY+CiAgPGRpdiBjbGFzcz0iYm94IGJvcmRlciAgICBib3JkZXItaW1hZ2Utbm8t
aW50cmluc2ljIj48L2Rpdj4KICA8ZGl2IGNsYXNzPSJib3ggbm8tYm9yZGVyIGJvcmRlci1pbWFn
ZS1uby1pbnRyaW5zaWMtc2xpY2UiPjwvZGl2PgogIDxkaXYgY2xhc3M9ImJveCBib3JkZXIgICAg
Ym9yZGVyLWltYWdlLW5vLWludHJpbnNpYy1zbGljZSI+PC9kaXY+CjwvYm9keT4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253483</attachid>
            <date>2015-05-20 18:08:53 -0700</date>
            <delta_ts>2015-05-20 18:37:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139405-20150520180849.patch</filename>
            <type>text/plain</type>
            <size>109349</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4NDY1NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2NyBAQAorMjAxNS0wNS0yMCAgU2FpZCBB
Ym91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIEFuIFNWRyB3
aXRoIG5vIGludHJpbnNpYyBzaXplIGRvZXMgbm90IGRyYXcgY29ycmVjdCBzbGljZXMgd2hlbiB1
c2VkIGFzIGEgYm9yZGVyLWltYWdlIGZvciBhbiBIVE1MIGVsZW1lbnQuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk0MDUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIFdoZW4gdXNpbmcgbm9u
LWludHJpbnNpYy1zaXplZCBpbWFnZSBhcyBhbiBpbWFnZS1ib3JkZXIsIGFsbCB0aGUgc291cmNl
CisgICAgICAgIHNsaWNlcyBoYXZlIHRvIGJlIGV4dHJhY3RlZCBmcm9tIHRoZSB0b3AtbGVmdCBj
b3JuZXIgb2YgdGhlIHNvdXJjZSBpbWFnZS4KKyAgICAgICAgVGhpcyBpcyBiZWNhdXNlLCB0aGUg
cmlnaHQgYW5kIGJvdHRvbSBzaWRlcyBvZiB0aGUgaW1hZ2UgY2FuIG5vdCBiZSBrbm93bi4KKyAg
ICAgICAgQWxzbyBhbGwgdGhlIHNsaWNlcyBzaG91bGQgbm90IGJlIHN0cmV0Y2hlZC4gSW4gb3Ro
ZXIgd29yZHMsIHRoZSBzaXplcyBvZgorICAgICAgICBzb3VyY2Ugc2xpY2VzIGZvciBhIG5vbi1p
bnRyaW5zaWMtc2l6ZWQgaW1hZ2Ugc2hvdWxkIGJlIGVxdWFsIHRvIHRoZSBzaXplcworICAgICAg
ICBvZiB0aGUgZGVzdGluYXRpb24gY29udGFpbmVyIHNsaWNlcy4KKworICAgICAgICBUaGlzIGlz
IG5vdCBjb21wbGlhbnQgd2l0aCB0aGUgY3NzMyBzcGVjcy4gSSB0aGluayB0aGUgc3BlY3MgbWFr
ZXMgaXQgaGFyZAorICAgICAgICB0byBwcmVkaWN0IHdoYXQgZXhhY3RseSB3aWxsIGJlIGRyYXdu
IGZvciBpbWFnZS1ib3JkZXIgaW4gdGhpcyBjYXNlLiBQbGVhc2UKKyAgICAgICAgc2VlIGh0dHA6
Ly93d3cudzMub3JnL1RSL2NzczMtYmFja2dyb3VuZC8jYm9yZGVyLWltYWdlLXNsaWNlLiBUaGlz
IHBhdGNoIGRvZXMKKyAgICAgICAgd2hhdCBGaXJlRm94IGlzIGRvaW5nIGFuZCBJIHRoaW5rIHRo
aXMgc29sdXRpb24gaXMgdGhlIG1vc3QgcHJlZGljdGFibGUgZm9yCisgICAgICAgIGltYWdlLWJv
cmRlciByZW5kZXJpbmcgaW4gdGhpcyBjYXNlLgorICAgICAgICAKKyAgICAgICAgVGVzdDogZmFz
dC9ib3JkZXJzL2JvcmRlci1pbWFnZS1maWxsLW5vLWludHJpbnNpYy1zaXplLmh0bWwKKworICAg
ICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3Jl
LnZjeHByb2o6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0
ZXJzOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9MZW5ndGhCb3guY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0xheW91dEJveEV4dGVudC5jcHA6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvTGF5b3V0Qm94RXh0ZW50Lmg6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvTGF5b3V0UmVjdC5oOgorICAgICAgICBEZWxldGUgTGVuZ3RoQm94LmNwcCBh
bmQgbW92ZSBhbGwgdGhlIGZ1bmN0aW9uYWxpdGllcyB0byBMZW5ndGhCb3guaC4KKyAgICAgICAg
RGVsZXRlIExheW91dEJveEV4dGVudC5jcHAgc2luY2UgaXQgaXMgdGhlIHNhbWUgY2xhc3MgYXMg
TGVuZ3RoQm94LgorICAgICAgICAKKyAgICAgICAgKiBjc3MvQ1NTUHJvcGVydHkuY3BwOgorICAg
ICAgICAqIHBsYXRmb3JtL3RleHQvV3JpdGluZ01vZGUuaDoKKyAgICAgICAgTW92ZSB0aGUgZW51
bXMgTG9naWNhbEJveFNpZGUgYW5kIFBoeXNpY2FsQm94U2lkZQorICAgICAgICBmcm9tIENTU1By
b3BlcnR5LmNwcCB0byBXcml0aW5nTW9kZS5oIHNvIGl0IGNhbiBiZSB1c2VkIGJ5IG90aGVyIGNs
YXNzZXMuCisgICAgICAgIAorICAgICAgICAqIGNzcy9DU1NUb1N0eWxlTWFwLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1RvU3R5bGVNYXA6Om1hcE5pbmVQaWVjZUltYWdlU2xpY2UpOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTVG9TdHlsZU1hcDo6bWFwTmluZVBpZWNlSW1hZ2VRdWFkKToKKyAg
ICAgICAgKiBjc3MvQ1NTVG9TdHlsZU1hcC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0
b3JPdmVybGF5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxkUmVuZGVyZXJIaWdobGlnaHQp
OgorICAgICAgICAqIHJlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OklubGluZUZsb3dCb3g6OmFkZEJvcmRlck91dHNldFZpc3VhbE92ZXJmbG93KToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyQm94Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6
Om1hcmdpbkxvZ2ljYWxMZWZ0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6bWFyZ2lu
TG9naWNhbFJpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6c2V0TWFyZ2luQmVm
b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6c2V0TWFyZ2luQWZ0ZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpzZXRNYXJnaW5TdGFydCk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJCb3g6OnNldE1hcmdpbkVuZCk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpzZXRDbGlw
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpub25lRGFzaGJvYXJkUmVnaW9ucyk6
CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6CisgICAgICAgIFVzZSB0
aGUgbmV3IEJveEV4dGVudCBhY2Nlc3MgbWV0aG9kcyBmb3IgZ2V0dGluZyBhbmQgc2V0dGluZ3Mg
dGhlIHNpZGVzIG9mCisgICAgICAgIExlbmd0aEJveCBhbmQgTGF5b3V0Qm94RXh0ZW50LgorICAg
ICAgICAKKyAgICAgICAgKiBwbGF0Zm9ybS9MZW5ndGhCb3guaDoKKyAgICAgICAgKFdlYkNvcmU6
OkJveEV4dGVudDo6Qm94RXh0ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkJveEV4dGVudDo6YXQp
OgorICAgICAgICAoV2ViQ29yZTo6Qm94RXh0ZW50Ojp0b3ApOgorICAgICAgICAoV2ViQ29yZTo6
Qm94RXh0ZW50OjpyaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpCb3hFeHRlbnQ6OmJvdHRvbSk6
CisgICAgICAgIChXZWJDb3JlOjpCb3hFeHRlbnQ6OmxlZnQpOgorICAgICAgICAoV2ViQ29yZTo6
Qm94RXh0ZW50OjpzZXRBdCk6CisgICAgICAgIChXZWJDb3JlOjpCb3hFeHRlbnQ6OnNldFRvcCk6
CisgICAgICAgIChXZWJDb3JlOjpCb3hFeHRlbnQ6OnNldFJpZ2h0KToKKyAgICAgICAgKFdlYkNv
cmU6OkJveEV4dGVudDo6c2V0Qm90dG9tKToKKyAgICAgICAgKFdlYkNvcmU6OkJveEV4dGVudDo6
c2V0TGVmdCk6CisgICAgICAgIChXZWJDb3JlOjpCb3hFeHRlbnQ6OmJlZm9yZSk6CisgICAgICAg
IChXZWJDb3JlOjpCb3hFeHRlbnQ6OmVuZCk6CisgICAgICAgIChXZWJDb3JlOjpCb3hFeHRlbnQ6
OmFmdGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkJveEV4dGVudDo6c3RhcnQpOgorICAgICAgICAo
V2ViQ29yZTo6Qm94RXh0ZW50OjpzZXRCZWZvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Qm94RXh0
ZW50OjpzZXRFbmQpOgorICAgICAgICAoV2ViQ29yZTo6Qm94RXh0ZW50OjpzZXRBZnRlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpCb3hFeHRlbnQ6OnNldFN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6
OkJveEV4dGVudDo6b3BlcmF0b3I9PSk6CisgICAgICAgIChXZWJDb3JlOjpCb3hFeHRlbnQ6Om9w
ZXJhdG9yIT0pOgorICAgICAgICAoV2ViQ29yZTo6TGVuZ3RoQm94OjpMZW5ndGhCb3gpOgorICAg
ICAgICAoV2ViQ29yZTo6TGVuZ3RoQm94Ojppc1plcm8pOgorICAgICAgICAoV2ViQ29yZTo6TGVu
Z3RoQm94OjpsZWZ0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okxlbmd0aEJveDo6cmln
aHQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGVuZ3RoQm94Ojp0b3ApOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6TGVuZ3RoQm94Ojpib3R0b20pOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6TGVuZ3RoQm94OjpvcGVyYXRvcj09KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6Okxlbmd0aEJveDo6b3BlcmF0b3IhPSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpMZW5ndGhCb3g6Om5vblplcm8pOiBEZWxldGVkLgorICAgICAgICBEZWZpbmUgYSBuZXcgdGVt
cGxhdGUgY2xhc3MgZm9yICdCb3hFeHRlbnQnLiBBICdCb3hFeHRlbnQnIHJlcHJlc2VudHMgdGhl
CisgICAgICAgIGV4dGVudCBvZiBmb3VyIHNpZGVzIG9mIGEgYm94LiBVc2UgdGhpcyBjbGFzcyB0
ZW1wbGF0ZSB0byBkZWZpbmUgdGhlIGV4aXRpbmcgCisgICAgICAgIGNsYXNzZXMgJ0xlbmd0aEJv
eCcgYW5kICdMYXlvdXRCb3hFeHRlbnQnLiBVc2UgaXQgYWxzbyB0byBhbmQgZGVmaW5lIHRoZQor
ICAgICAgICBuZXcgY2xhc3MgRmxvYXRCb3hFeHRlbnQKKyAgICAgICAgICAgIAorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJCb3hNb2RlbE9iamVjdDo6Y2FsY3VsYXRlSW1hZ2VJbnRyaW5zaWNEaW1lbnNpb25zKToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckJveE1vZGVsT2JqZWN0OjpjYWxjdWxhdGVGaWxsVGlsZVNpemUpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckxpc3RNYXJrZXI6OnVwZGF0ZUNvbnRlbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9z
aGFwZXMvU2hhcGVPdXRzaWRlSW5mby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFwZU91dHNp
ZGVJbmZvOjpjcmVhdGVTaGFwZUZvckltYWdlKToKKyAgICAgICAgQ2hhbmdlIHRoZSByZXR1cm4g
dmFsdWUgb2YgY2FsY3VsYXRlSW1hZ2VJbnRyaW5zaWNEaW1lbnNpb25zKCkgdG8gYmUgYQorICAg
ICAgICBib29sIHdoaWNoIGluZGljYXRlcyB3aGV0aGVyIHRoZSBpbWFnZSBoYXMgYW4gaW50cmlu
c2ljIHNpemUgb3Igbm90LiBBZGQKKyAgICAgICAgYSBuZXcgcmVmZXJlbmNlIGFyZ3VtZW50IHRv
IHRoaXMgZnVuY3Rpb24gcmVjZWl2ZSB0aGUgcmVzb2x2ZWQgaW1hZ2Ugc2l6ZS4KKyAgICAgICAg
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnROaW5lUGllY2VJ
bWFnZSk6IE1vdmUgYWxsIHRoZSBwYWludGluZworICAgICAgICBjb2RlIG9mIHRoaXMgZnVuY3Rp
b24gdG8gTmluZVBpZWNlSW1hZ2U6OnBhaW50KCkKKyAgICAgICAgCisgICAgICAgIChXZWJDb3Jl
Ojpjb21wdXRlQm9yZGVySW1hZ2VTaWRlKTogRGVsZXRlZC4KKyAgICAgICAgUmVuYW1lZCB0byBi
ZSBOaW5lUGllY2VJbWFnZTo6Y29tcHV0ZVNsaWNlKCkuCisgICAgICAgIAorICAgICAgICAqIHJl
bmRlcmluZy9zdHlsZS9Cb3JkZXJEYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpCb3JkZXJEYXRh
Ojpib3JkZXJXaWR0aCk6IEFkZCBhIG5ldyBtZXRob2QgdG8gcmV0dXJuIHRoZSBleHRlbnRzCisg
ICAgICAgIG9mIHRoZSBib3JkZXIgaW4gYSBGbG9hdEJveEV4dGVudC4KKyAgICAgICAgCisgICAg
ICAgICogcmVuZGVyaW5nL3N0eWxlL05pbmVQaWVjZUltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok5pbmVQaWVjZUltYWdlOjpjb21wdXRlU2xpY2UpOiBNb3ZlZCBmcm9tIE5pbmVQaWVjZUlt
YWdlOjpjb21wdXRlU2xpY2UoKS4KKyAgICAgICAgCisgICAgICAgIChXZWJDb3JlOjpOaW5lUGll
Y2VJbWFnZTo6Y29tcHV0ZVNsaWNlcyk6IFRoZSBmaXJzdCB2ZXJzaW9uIG9mIHRoaXMgZnVuY3Rp
b24KKyAgICAgICAgY29tcHV0ZXMgdGhlIHNsaWNlcyBnaXZlbiB0aGVpciBsZW5ndGhzLiBUaGUg
c2xpY2VzIGhhdmUgdG8gYmUgY2xhbXBlZCB0bworICAgICAgICB0aGUgY29udGFpbmVyIHNpemUu
IFRoZSBzZWNvbmQgdmVyc2lvbiBvZiB0aGlzIGZ1bmN0aW9uIGNvbXB1dGVzIHRoZSBzbGljZXMK
KyAgICAgICAgZ2l2ZW4gdGhlaXIgbGVuZ3RocywgdGhlaXIgYWN0dWFsIGV4dGVudHMgYW5kIHRo
ZWlyIHNvdXJjZSBzbGljZXMuCisgICAgICAgIAorICAgICAgICAoV2ViQ29yZTo6TmluZVBpZWNl
SW1hZ2U6OnNjYWxlU2xpY2VzSWZOZWVkZWQpOiAgUmVkdWNlIHRoZSBzbGljZXMgaWYgdGhleQor
ICAgICAgICBhcmUgdG9vIGxhcmdlLgorICAgICAgICAKKyAgICAgICAgKFdlYkNvcmU6Ok5pbmVQ
aWVjZUltYWdlOjppc0VtcHR5UGllY2VSZWN0KTogUmV0dXJucyB0cnVlIGlmIGFuIEltYWdlUGll
Y2UKKyAgICAgICAgc2hvdWxkIG5vdCBiZSBkcmF3bi4KKyAgICAgICAgCisgICAgICAgIChXZWJD
b3JlOjpOaW5lUGllY2VJbWFnZTo6aG9yaXpvbnRhbFRpbGVSdWxlcyk6CisgICAgICAgIChXZWJD
b3JlOjpOaW5lUGllY2VJbWFnZTo6dmVydGljYWxUaWxlUnVsZXMpOgorICAgICAgICBGaWxsIHZl
Y3RvcnMgb2YgdGlsaW5nIHJ1bGVzIHRvIGJlIHBhc3NlZCB0byBHcmFwaGljc0NvbnRleHQ6OmRy
YXdUaWxlZEltYWdlKCkKKyAgICAgICAgCisgICAgICAgIChXZWJDb3JlOjpOaW5lUGllY2VJbWFn
ZTo6Y29tcHV0ZUludHJpbnNpY1JlY3RzKTogQ29tcHV0ZXMgdGhlIG5pbmUgcGllY2VzCisgICAg
ICAgIHJlY3RhbmdsZXMgZm9yIGFuIGludHJpbnNpYy1zaXplZCBjb250YWluZXIuCisgICAgICAg
IAorICAgICAgICAoV2ViQ29yZTo6TmluZVBpZWNlSW1hZ2U6OmNvbXB1dGVOb25JbnRyaW5zaWNS
ZWN0cyk6IENvbXB1dGVzIHRoZSBuaW5lCisgICAgICAgIHBpZWNlcyByZWN0YW5nbGVzIGZvciBh
biBub24taW50cmluc2ljLXNpemVkIHNvdXJjZSBpbWFnZS4gVGhlIGNvbXB1dGVkCisgICAgICAg
IHJlY3RhbmdsZXMgaGF2ZSB0byBzdGFydCBhdCAoMCwgMCkgYW5kIHRoZWlyIHNpemVzIHNob3Vs
ZCBiZSBlcXVhbCB0bworICAgICAgICB0aGUgc2l6ZXMgb2YgdGhlIG5pbmUgcGllY2VzIHJlY3Rh
bmdsZXMgb2YgdGhlIGRlc3RpbmF0aW9uIGNvbnRhaW5lci4KKyAgICAgICAgCisgICAgICAgIChX
ZWJDb3JlOjpOaW5lUGllY2VJbWFnZTo6Y29tcHV0ZUludHJpbnNpY1NpZGVUaWxlU2NhbGUpOgor
ICAgICAgICAoV2ViQ29yZTo6TmluZVBpZWNlSW1hZ2U6OmNvbXB1dGVJbnRyaW5zaWNNaWRkbGVU
aWxlU2NhbGUpOgorICAgICAgICAoV2ViQ29yZTo6TmluZVBpZWNlSW1hZ2U6OmNvbXB1dGVJbnRy
aW5zaWNUaWxlU2NhbGVzKToKKyAgICAgICAgKFdlYkNvcmU6Ok5pbmVQaWVjZUltYWdlOjpjb21w
dXRlTm9uSW50cmluc2ljVGlsZVNjYWxlcyk6CisgICAgICAgIENvbXB1dGVzIHRoZSBzY2FsaW5n
IGZhY3RvcnMgZm9yIGRyYXdpbmcgdGhlIHRpbGVzLiBGb3Igbm9uLWludHJpbnNpYyBzb3VyY2UK
KyAgICAgICAgaW1hZ2VzLCB0aGVyZSBzaG91bGQgbm90IGJlIGFueSBzY2FsaW5nIGZhY3RvcnMu
IAorICAgICAgICAKKyAgICAgICAgKFdlYkNvcmU6Ok5pbmVQaWVjZUltYWdlOjpwYWludCk6IE1v
dmVkIGZyb20gUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50TmluZVBpZWNlSW1hZ2UoKQorICAg
ICAgICBidXQgc2ltcGxpZmllZCBhbmQgcmVzdHJ1Y3R1cmVkLgorICAgICAgICAKKyAgICAgICAg
KFdlYkNvcmU6Ok5pbmVQaWVjZUltYWdlRGF0YTo6TmluZVBpZWNlSW1hZ2VEYXRhKTogVXNlIG51
bGxwdHIgaW5zdGVhZCBvZiAwLgorICAgICAgICAKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUv
TmluZVBpZWNlSW1hZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yKyspOgorICAgICAg
ICAoV2ViQ29yZTo6aXNDb3JuZXJQaWVjZSk6IAorICAgICAgICAoV2ViQ29yZTo6aXNNaWRkbGVQ
aWVjZSk6CisgICAgICAgIChXZWJDb3JlOjppbWFnZVBpZWNlSG9yaXpvbnRhbFNpZGUpOgorICAg
ICAgICAoV2ViQ29yZTo6aW1hZ2VQaWVjZVZlcnRpY2FsU2lkZSk6CisgICAgICAgIEFkZCBoZWxw
ZXIgZnVuY3Rpb25zIGZvciB0aGUgZW51bSBJbWFnZVBpZWNlLgorCiAyMDE1LTA1LTIwICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBhIG1lY2hh
bmlzbSB0byBvcHQtb3V0IG9mIHRoZSBhdXRvbWF0aWMgc2NhbGluZyBhcHBsaWVkIHRvIG5vdC1y
ZWFsbHktcmVzcG9uc2l2ZSBzaXRlcwpJbmRleDogU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9u
IDE4NDY1NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkp
CkBAIC0yMDQ0LDcgKzIwNDQsNiBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0v
S2lsbFJpbmdOb25lLmNwcAogICAgIHBsYXRmb3JtL0xhbmd1YWdlLmNwcAogICAgIHBsYXRmb3Jt
L0xlbmd0aC5jcHAKLSAgICBwbGF0Zm9ybS9MZW5ndGhCb3guY3BwCiAgICAgcGxhdGZvcm0vTGlu
a0hhc2guY3BwCiAgICAgcGxhdGZvcm0vTG9nZ2luZy5jcHAKICAgICBwbGF0Zm9ybS9NSU1FVHlw
ZVJlZ2lzdHJ5LmNwcApAQCAtMjE1MSw3ICsyMTUwLDYgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwog
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ludFJlY3QuY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
SW50U2l6ZS5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9JU09WVFRDdWUuY3BwCi0gICAgcGxh
dGZvcm0vZ3JhcGhpY3MvTGF5b3V0Qm94RXh0ZW50LmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNz
L0xheW91dFJlY3QuY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvTWFza0ltYWdlT3BlcmF0aW9u
LmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApJbmRleDogU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvago9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCShyZXZpc2lvbiAx
ODQ2NTUpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9q
CSh3b3JraW5nIGNvcHkpCkBAIC03OTk2LDcgKzc5OTYsNiBAQAogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5ccGxhdGZvcm1cVVJMLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
XHBsYXRmb3JtXExhbmd1YWdlLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBs
YXRmb3JtXExlbmd0aC5jcHAiIC8+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9y
bVxMZW5ndGhCb3guY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1c
TGlua0hhc2guY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cTG9j
YWxpemVkU3RyaW5ncy5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9y
bVxMb2dnaW5nLmNwcCIgLz4KQEAgLTgyMTUsNyArODIxNCw2IEBACiAgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xJbnRQb2ludC5jcHAiIC8+CiAgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xJbnRSZWN0LmNwcCIgLz4KICAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXEludFNpemUuY3BwIiAvPgot
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcTGF5b3V0Qm94RXh0
ZW50LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNz
XExheW91dFJlY3QuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1c
Z3JhcGhpY3NcTWVkaWFQbGF5ZXIuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
cGxhdGZvcm1cZ3JhcGhpY3NcUGF0aC5jcHAiIC8+CkBAIC0yMDAxMSw3ICsyMDAwOSw2IEBACiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xJbnRTaXplLmgiIC8+
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xJbnRTaXplSGFz
aC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcSVNP
VlRUQ3VlLmgiIC8+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGlj
c1xMYXlvdXRCb3hFeHRlbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBsYXRm
b3JtXGdyYXBoaWNzXExheW91dFBvaW50LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxwbGF0Zm9ybVxncmFwaGljc1xMYXlvdXRSZWN0LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xMYXlvdXRTaXplLmgiIC8+CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0
ZXJzCShyZXZpc2lvbiAxODQ2NTUpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ov
V2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMJKHdvcmtpbmcgY29weSkKQEAgLTExMTMsOSArMTExMyw2
IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxMZW5ndGguY3BwIj4KICAg
ICAgIDxGaWx0ZXI+cGxhdGZvcm08L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXExlbmd0aEJveC5jcHAiPgotICAgICAgPEZpbHRl
cj5wbGF0Zm9ybTwvRmlsdGVyPgotICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5ccGxhdGZvcm1cTGlua0hhc2guY3BwIj4KICAgICAgIDxGaWx0ZXI+cGxhdGZvcm08
L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTEzNzEsOSArMTM2OCw2IEBACiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xJbnRTaXplLmNwcCI+CiAgICAg
ICA8RmlsdGVyPnBsYXRmb3JtXGdyYXBoaWNzPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+Ci0g
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xMYXlvdXRCb3hFeHRl
bnQuY3BwIj4KLSAgICAgIDxGaWx0ZXI+cGxhdGZvcm1cZ3JhcGhpY3M8L0ZpbHRlcj4KLSAgICA8
L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNz
XExheW91dFJlY3QuY3BwIj4KICAgICAgIDxGaWx0ZXI+cGxhdGZvcm1cZ3JhcGhpY3M8L0ZpbHRl
cj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTg0OTYsOSArODQ5MCw2IEBACiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xJbnRTaXplSGFzaC5oIj4KICAgICAgIDxG
aWx0ZXI+cGxhdGZvcm1cZ3JhcGhpY3M8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KLSAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXExheW91dEJveEV4dGVudC5o
Ij4KLSAgICAgIDxGaWx0ZXI+cGxhdGZvcm1cZ3JhcGhpY3M8L0ZpbHRlcj4KLSAgICA8L0NsSW5j
bHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXExheW91
dFBvaW50LmgiPgogICAgICAgPEZpbHRlcj5wbGF0Zm9ybVxncmFwaGljczwvRmlsdGVyPgogICAg
IDwvQ2xJbmNsdWRlPgpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTg0NjU1KQorKysgU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC01OTAs
OCArNTkwLDYgQEAKIAkJMTQxMTVCNzMwOUY4NENENjAwQ0E0RkMxIC8qIEpTTm9kZUZpbHRlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQxMTVCNzEw
OUY4NENENjAwQ0E0RkMxIC8qIEpTTm9kZUZpbHRlci5oICovOyB9OwogCQkxNDExRENCMTE2NEMz
OUE4MDBENDlCQzEgLyogV2lkdGhDYWNoZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMTQxMURDQjAxNjRDMzlBODAwRDQ5QkMxIC8qIFdpZHRoQ2FjaGUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxNDFE
QzA0ODE2NDgzNDhGMDAzNzFFNUEgLyogTGF5b3V0VW5pdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQxREMwNDcxNjQ4MzQ4RjAwMzcxRTVBIC8qIExh
eW91dFVuaXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwotCQkxNDFEQzA0RjE2NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0Qm94RXh0ZW50LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0MURDMDQ5MTY0ODM0
QjkwMDM3MUU1QSAvKiBMYXlvdXRCb3hFeHRlbnQuY3BwICovOyB9OwotCQkxNDFEQzA1MDE2NDgz
NEI5MDAzNzFFNUEgLyogTGF5b3V0Qm94RXh0ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDFEQzA0QTE2NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0
Qm94RXh0ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJMTQxREMwNTExNjQ4MzRCOTAwMzcxRTVBIC8qIExheW91dFBvaW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDFEQzA0QjE2NDgzNEI5MDAz
NzFFNUEgLyogTGF5b3V0UG9pbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQkxNDFEQzA1MjE2NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0UmVjdC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDFEQzA0
QzE2NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0UmVjdC5jcHAgKi87IH07CiAJCTE0MURDMDUzMTY0
ODM0QjkwMDM3MUU1QSAvKiBMYXlvdXRSZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxNDFEQzA0RDE2NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0UmVj
dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC02
MDUsNyArNjAzLDYgQEAKIAkJMTQ0NzZBQTgxNURDNEJCMTAwMzA1REIyIC8qIFdyaXRpbmdNb2Rl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDQ3NkFB
NzE1REM0QkIxMDAzMDVEQjIgLyogV3JpdGluZ01vZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxNDQ5RTI0QzEwN0Q0QTg0MDBCNTc5M0YgLyog
SlNDYWxsYmFja0RhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDE0NDlFMjRBMTA3RDRBODQwMEI1NzkzRiAvKiBKU0NhbGxiYWNrRGF0YS5oICovOyB9
OwogCQkxNDQ5RTI4NzEwN0Q0REI0MDBCNTc5M0YgLyogSlNDYWxsYmFja0RhdGEuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ0OUUyODYxMDdENERC
NDAwQjU3OTNGIC8qIEpTQ2FsbGJhY2tEYXRhLmNwcCAqLzsgfTsKLQkJMTQ2Q0MxMTUxNTY5ODhF
NDAwMTA5RTM3IC8qIExlbmd0aEJveC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxNDZDQzExMzE1Njk4OEJEMDAxMDlFMzcgLyogTGVuZ3RoQm94LmNw
cCAqLzsgfTsKIAkJMTQ3N0U3NzYwQkY0MTM0QTAwMTUyODcyIC8qIFBhZ2VDYWNoZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDc3RTc3NDBCRjQx
MzRBMDAxNTI4NzIgLyogUGFnZUNhY2hlLmNwcCAqLzsgfTsKIAkJMTQ3N0U3NzcwQkY0MTM0QTAw
MTUyODcyIC8qIFBhZ2VDYWNoZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMTQ3N0U3NzUwQkY0MTM0QTAwMTUyODcyIC8qIFBhZ2VDYWNoZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTE0NzlGQUVEMTA5
QUUzNzUwMERFRDY1NSAvKiBSZW5kZXJSdWJ5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0NzlGQUU1MTA5QUUzNzUwMERFRDY1NSAvKiBSZW5kZXJS
dWJ5LmNwcCAqLzsgfTsKQEAgLTc2NjQsOCArNzY2MSw2IEBACiAJCTE0MUI5NEU1MDlFQzQyMjMw
MDBFOTQxMyAvKiBNb3VzZUV2ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTW91c2VF
dmVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0MUI5NEVFMDlFQzQyNUEw
MDBFOTQxMyAvKiBVSUV2ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gVUlFdmVudC5p
ZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0MURDMDQ3MTY0ODM0OEYwMDM3MUU1
QSAvKiBMYXlvdXRVbml0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExheW91
dFVuaXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMTQxREMwNDkxNjQ4MzRCOTAw
MzcxRTVBIC8qIExheW91dEJveEV4dGVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBMYXlvdXRCb3hFeHRlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQkxNDFEQzA0QTE2NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0Qm94RXh0ZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExheW91dEJveEV4dGVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkxNDFEQzA0QjE2NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0UG9p
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGF5b3V0UG9pbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQxREMwNEMxNjQ4MzRCOTAwMzcxRTVBIC8qIExh
eW91dFJlY3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGF5b3V0
UmVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0MURDMDREMTY0ODM0Qjkw
MDM3MUU1QSAvKiBMYXlvdXRSZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IExheW91dFJlY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTc2ODAsNyArNzY3
NSw2IEBACiAJCTE0NDc2QUE3MTVEQzRCQjEwMDMwNURCMiAvKiBXcml0aW5nTW9kZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXcml0aW5nTW9kZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkxNDQ5RTI0QTEwN0Q0QTg0MDBCNTc5M0YgLyogSlNDYWxsYmFja0Rh
dGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDYWxsYmFja0RhdGEuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQ0OUUyODYxMDdENERCNDAwQjU3OTNGIC8q
IEpTQ2FsbGJhY2tEYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTQ2FsbGJhY2tEYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMTQ2Q0Mx
MTMxNTY5ODhCRDAwMTA5RTM3IC8qIExlbmd0aEJveC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBMZW5ndGhCb3guY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkxNDc3RTc3NDBCRjQxMzRBMDAxNTI4NzIgLyogUGFnZUNhY2hlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYWdlQ2FjaGUuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkxNDc3RTc3NTBCRjQxMzRBMDAxNTI4NzIgLyogUGFnZUNhY2hlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYWdlQ2FjaGUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQ3OUZBRTUxMDlBRTM3NTAwREVENjU1IC8qIFJlbmRlclJ1
YnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyUnVieS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMDg3OCw4ICsyMDg3Miw2IEBACiAJ
CQkJMDdBQzQ2RkYxOTUyMTAyMTAwRUU5NzIzIC8qIElTT1ZUVEN1ZS5jcHAgKi8sCiAJCQkJMDdB
QzQ3MDAxOTUyMTAyMTAwRUU5NzIzIC8qIElTT1ZUVEN1ZS5oICovLAogCQkJCTY1Q0M2QkVEMTYw
MTRFQzAwMDBFRDI3RCAvKiBMYXRpbjFUZXh0SXRlcmF0b3IuaCAqLywKLQkJCQkxNDFEQzA0OTE2
NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0Qm94RXh0ZW50LmNwcCAqLywKLQkJCQkxNDFEQzA0QTE2
NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0Qm94RXh0ZW50LmggKi8sCiAJCQkJMTQxREMwNEIxNjQ4
MzRCOTAwMzcxRTVBIC8qIExheW91dFBvaW50LmggKi8sCiAJCQkJMTQxREMwNEMxNjQ4MzRCOTAw
MzcxRTVBIC8qIExheW91dFJlY3QuY3BwICovLAogCQkJCTE0MURDMDREMTY0ODM0QjkwMDM3MUU1
QSAvKiBMYXlvdXRSZWN0LmggKi8sCkBAIC0yMTc2NCw3ICsyMTc1Niw2IEBACiAJCQkJMTQxREMw
NDcxNjQ4MzQ4RjAwMzcxRTVBIC8qIExheW91dFVuaXQuaCAqLywKIAkJCQlCQ0U2NUJFODBFQUNE
RjE2MDA3RTQ1MzMgLyogTGVuZ3RoLmNwcCAqLywKIAkJCQlCQ0U2NUJFOTBFQUNERjE2MDA3RTQ1
MzMgLyogTGVuZ3RoLmggKi8sCi0JCQkJMTQ2Q0MxMTMxNTY5ODhCRDAwMTA5RTM3IC8qIExlbmd0
aEJveC5jcHAgKi8sCiAJCQkJQkNGRjY0OEYwRUFEMTVDMjAwQzFENkY3IC8qIExlbmd0aEJveC5o
ICovLAogCQkJCUJDRkY2NDkwMEVBRDE1QzIwMEMxRDZGNyAvKiBMZW5ndGhTaXplLmggKi8sCiAJ
CQkJQTdBRDJGODUwRUM4OUQwNzAwOEFCMDAyIC8qIExpbmtIYXNoLmNwcCAqLywKQEAgLTI1NzA0
LDcgKzI1Njk1LDYgQEAKIAkJCQlFNDkxNkZGNzE5NURGNkEwMDA1QUIzNDkgLyogTGF5ZXJGbHVz
aFRocm90dGxlU3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTU4MDM3MTY0MUE2NkYxRDMwMEJB
RjUxOSAvKiBMYXllckZyYWdtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUEzQTZBMDE5NEI1
OUI2MDAxQ0JEMjQgLyogTGF5ZXJQb29sLmggaW4gSGVhZGVycyAqLywKLQkJCQkxNDFEQzA1MDE2
NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0Qm94RXh0ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk5
MzFENzJGNjE1RkU2OTUzMDBDNEMwN0UgLyogTGF5b3V0TWlsZXN0b25lcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMTQxREMwNTExNjQ4MzRCOTAwMzcxRTVBIC8qIExheW91dFBvaW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQkxNDFEQzA1MzE2NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0UmVjdC5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0yOTMwMCw3ICsyOTI5MCw2IEBACiAJCQkJMjkxN0I1NjExNDczNDk2
QzAwNTJDOUQwIC8qIExheWVyRmx1c2hTY2hlZHVsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MjkxN0I1NjYxNDczNDk5NTAwNTJDOUQwIC8qIExheWVyRmx1c2hTY2hlZHVsZXJNYWMuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJN0FBM0E2OUYxOTRCNTlCNjAwMUNCRDI0IC8qIExheWVyUG9vbC5j
cHAgaW4gU291cmNlcyAqLywKLQkJCQkxNDFEQzA0RjE2NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0
Qm94RXh0ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0MURDMDUyMTY0ODM0QjkwMDM3MUU1
QSAvKiBMYXlvdXRSZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUExMjBBQ0E0MTNGOTk4Q0Ew
MEZFNEFDNyAvKiBMYXlvdXRSZXBhaW50ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5MDY2
MDYwQkUxNDFENDAwOTU2OTk4IC8qIExheW91dFN0YXRlLmNwcCBpbiBTb3VyY2VzICovLApAQCAt
MjkzMTIsNyArMjkzMDEsNiBAQAogCQkJCTUxMkREOEY0MEQ5MUU2QUYwMDBGODlFRSAvKiBMZWdh
Y3lXZWJBcmNoaXZlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxQjI0MTdCMEQ5MzFGM0YwMEU4
M0Y1QyAvKiBMZWdhY3lXZWJBcmNoaXZlTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNFNjVC
RUEwRUFDREYxNjAwN0U0NTMzIC8qIExlbmd0aC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkxNDZD
QzExNTE1Njk4OEU0MDAxMDlFMzcgLyogTGVuZ3RoQm94LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUU1NUY0OTdBMTUxQjg4ODAwMEJCNjdEQiAvKiBMZW5ndGhGdW5jdGlvbnMuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJRkZCNjk4Q0MxODMzRUUwRDAwMTU4QTMxIC8qIExpbmVCcmVha2VyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTg5QjVFQUExMTFFODAwM0QwMEYyMzY3RSAvKiBMaW5lRW5kaW5n
LmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHkuY3BwCShy
ZXZpc2lvbiAxODQ2NTUpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHkuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC01NCw5ICs1NCw2IEBAIHZvaWQgQ1NTUHJvcGVydHk6OndyYXBWYWx1
ZUluQ29tbWFTZXBhcmEKICAgICBtX3ZhbHVlID0gV1RGOjptb3ZlKGxpc3QpOwogfQogCi1lbnVt
IExvZ2ljYWxCb3hTaWRlIHsgQmVmb3JlU2lkZSwgRW5kU2lkZSwgQWZ0ZXJTaWRlLCBTdGFydFNp
ZGUgfTsKLWVudW0gUGh5c2ljYWxCb3hTaWRlIHsgVG9wU2lkZSwgUmlnaHRTaWRlLCBCb3R0b21T
aWRlLCBMZWZ0U2lkZSB9OwotCiBzdGF0aWMgQ1NTUHJvcGVydHlJRCByZXNvbHZlVG9QaHlzaWNh
bFByb3BlcnR5KFRleHREaXJlY3Rpb24gZGlyZWN0aW9uLCBXcml0aW5nTW9kZSB3cml0aW5nTW9k
ZSwgTG9naWNhbEJveFNpZGUgbG9naWNhbFNpZGUsIGNvbnN0IFN0eWxlUHJvcGVydHlTaG9ydGhh
bmQmIHNob3J0aGFuZCkKIHsKICAgICBpZiAoZGlyZWN0aW9uID09IExUUikgewpJbmRleDogU291
cmNlL1dlYkNvcmUvY3NzL0NTU1RvU3R5bGVNYXAuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NUb1N0eWxlTWFwLmNwcAkocmV2aXNpb24gMTg0NjU1KQorKysgU291cmNl
L1dlYkNvcmUvY3NzL0NTU1RvU3R5bGVNYXAuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MTgsMjEg
KzYxOCwyMSBAQCB2b2lkIENTU1RvU3R5bGVNYXA6Om1hcE5pbmVQaWVjZUltYWdlU2xpCiAgICAg
TGVuZ3RoQm94IGJveDsKICAgICBRdWFkKiBzbGljZXMgPSBib3JkZXJJbWFnZVNsaWNlLnNsaWNl
cygpOwogICAgIGlmIChzbGljZXMtPnRvcCgpLT5pc1BlcmNlbnRhZ2UoKSkKLSAgICAgICAgYm94
Lm1fdG9wID0gTGVuZ3RoKHNsaWNlcy0+dG9wKCktPmdldERvdWJsZVZhbHVlKCksIFBlcmNlbnQp
OworICAgICAgICBib3gudG9wKCkgPSBMZW5ndGgoc2xpY2VzLT50b3AoKS0+Z2V0RG91YmxlVmFs
dWUoKSwgUGVyY2VudCk7CiAgICAgZWxzZQotICAgICAgICBib3gubV90b3AgPSBMZW5ndGgoc2xp
Y2VzLT50b3AoKS0+Z2V0SW50VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVIpLCBG
aXhlZCk7CisgICAgICAgIGJveC50b3AoKSA9IExlbmd0aChzbGljZXMtPnRvcCgpLT5nZXRJbnRW
YWx1ZShDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUiksIEZpeGVkKTsKICAgICBpZiAoc2xp
Y2VzLT5ib3R0b20oKS0+aXNQZXJjZW50YWdlKCkpCi0gICAgICAgIGJveC5tX2JvdHRvbSA9IExl
bmd0aChzbGljZXMtPmJvdHRvbSgpLT5nZXREb3VibGVWYWx1ZSgpLCBQZXJjZW50KTsKKyAgICAg
ICAgYm94LmJvdHRvbSgpID0gTGVuZ3RoKHNsaWNlcy0+Ym90dG9tKCktPmdldERvdWJsZVZhbHVl
KCksIFBlcmNlbnQpOwogICAgIGVsc2UKLSAgICAgICAgYm94Lm1fYm90dG9tID0gTGVuZ3RoKChp
bnQpc2xpY2VzLT5ib3R0b20oKS0+Z2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
X05VTUJFUiksIEZpeGVkKTsKKyAgICAgICAgYm94LmJvdHRvbSgpID0gTGVuZ3RoKChpbnQpc2xp
Y2VzLT5ib3R0b20oKS0+Z2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJF
UiksIEZpeGVkKTsKICAgICBpZiAoc2xpY2VzLT5sZWZ0KCktPmlzUGVyY2VudGFnZSgpKQotICAg
ICAgICBib3gubV9sZWZ0ID0gTGVuZ3RoKHNsaWNlcy0+bGVmdCgpLT5nZXREb3VibGVWYWx1ZSgp
LCBQZXJjZW50KTsKKyAgICAgICAgYm94LmxlZnQoKSA9IExlbmd0aChzbGljZXMtPmxlZnQoKS0+
Z2V0RG91YmxlVmFsdWUoKSwgUGVyY2VudCk7CiAgICAgZWxzZQotICAgICAgICBib3gubV9sZWZ0
ID0gTGVuZ3RoKHNsaWNlcy0+bGVmdCgpLT5nZXRJbnRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTX05VTUJFUiksIEZpeGVkKTsKKyAgICAgICAgYm94LmxlZnQoKSA9IExlbmd0aChzbGljZXMt
PmxlZnQoKS0+Z2V0SW50VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVIpLCBGaXhl
ZCk7CiAgICAgaWYgKHNsaWNlcy0+cmlnaHQoKS0+aXNQZXJjZW50YWdlKCkpCi0gICAgICAgIGJv
eC5tX3JpZ2h0ID0gTGVuZ3RoKHNsaWNlcy0+cmlnaHQoKS0+Z2V0RG91YmxlVmFsdWUoKSwgUGVy
Y2VudCk7CisgICAgICAgIGJveC5yaWdodCgpID0gTGVuZ3RoKHNsaWNlcy0+cmlnaHQoKS0+Z2V0
RG91YmxlVmFsdWUoKSwgUGVyY2VudCk7CiAgICAgZWxzZQotICAgICAgICBib3gubV9yaWdodCA9
IExlbmd0aChzbGljZXMtPnJpZ2h0KCktPmdldEludFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlOjpD
U1NfTlVNQkVSKSwgRml4ZWQpOworICAgICAgICBib3gucmlnaHQoKSA9IExlbmd0aChzbGljZXMt
PnJpZ2h0KCktPmdldEludFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfTlVNQkVSKSwgRml4
ZWQpOwogICAgIGltYWdlLnNldEltYWdlU2xpY2VzKGJveCk7CiAKICAgICAvLyBTZXQgb3VyIGZp
bGwgbW9kZS4KQEAgLTY1NCwzMiArNjU0LDMyIEBAIExlbmd0aEJveCBDU1NUb1N0eWxlTWFwOjpt
YXBOaW5lUGllY2VJbWEKICAgICBMZW5ndGhCb3ggYm94OyAvLyBEZWZhdWx0cyB0byAnYXV0bycg
c28gd2UgZG9uJ3QgaGF2ZSB0byBoYW5kbGUgdGhhdCBleHBsaWNpdGx5IGJlbG93LgogICAgIFF1
YWQqIHNsaWNlcyA9IGJvcmRlcldpZHRocy5nZXRRdWFkVmFsdWUoKTsKICAgICBpZiAoc2xpY2Vz
LT50b3AoKS0+aXNOdW1iZXIoKSkKLSAgICAgICAgYm94Lm1fdG9wID0gTGVuZ3RoKHNsaWNlcy0+
dG9wKCktPmdldEludFZhbHVlKCksIFJlbGF0aXZlKTsKKyAgICAgICAgYm94LnRvcCgpID0gTGVu
Z3RoKHNsaWNlcy0+dG9wKCktPmdldEludFZhbHVlKCksIFJlbGF0aXZlKTsKICAgICBlbHNlIGlm
IChzbGljZXMtPnRvcCgpLT5pc1BlcmNlbnRhZ2UoKSkKLSAgICAgICAgYm94Lm1fdG9wID0gTGVu
Z3RoKHNsaWNlcy0+dG9wKCktPmdldERvdWJsZVZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlOjpDU1Nf
UEVSQ0VOVEFHRSksIFBlcmNlbnQpOworICAgICAgICBib3gudG9wKCkgPSBMZW5ndGgoc2xpY2Vz
LT50b3AoKS0+Z2V0RG91YmxlVmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QRVJDRU5UQUdF
KSwgUGVyY2VudCk7CiAgICAgZWxzZSBpZiAoc2xpY2VzLT50b3AoKS0+Z2V0VmFsdWVJRCgpICE9
IENTU1ZhbHVlQXV0bykKLSAgICAgICAgYm94Lm1fdG9wID0gc2xpY2VzLT50b3AoKS0+Y29tcHV0
ZUxlbmd0aDxMZW5ndGg+KGNvbnZlcnNpb25EYXRhKTsKKyAgICAgICAgYm94LnRvcCgpID0gc2xp
Y2VzLT50b3AoKS0+Y29tcHV0ZUxlbmd0aDxMZW5ndGg+KGNvbnZlcnNpb25EYXRhKTsKIAogICAg
IGlmIChzbGljZXMtPnJpZ2h0KCktPmlzTnVtYmVyKCkpCi0gICAgICAgIGJveC5tX3JpZ2h0ID0g
TGVuZ3RoKHNsaWNlcy0+cmlnaHQoKS0+Z2V0SW50VmFsdWUoKSwgUmVsYXRpdmUpOworICAgICAg
ICBib3gucmlnaHQoKSA9IExlbmd0aChzbGljZXMtPnJpZ2h0KCktPmdldEludFZhbHVlKCksIFJl
bGF0aXZlKTsKICAgICBlbHNlIGlmIChzbGljZXMtPnJpZ2h0KCktPmlzUGVyY2VudGFnZSgpKQot
ICAgICAgICBib3gubV9yaWdodCA9IExlbmd0aChzbGljZXMtPnJpZ2h0KCktPmdldERvdWJsZVZh
bHVlKENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUEVSQ0VOVEFHRSksIFBlcmNlbnQpOworICAgICAg
ICBib3gucmlnaHQoKSA9IExlbmd0aChzbGljZXMtPnJpZ2h0KCktPmdldERvdWJsZVZhbHVlKENT
U1ByaW1pdGl2ZVZhbHVlOjpDU1NfUEVSQ0VOVEFHRSksIFBlcmNlbnQpOwogICAgIGVsc2UgaWYg
KHNsaWNlcy0+cmlnaHQoKS0+Z2V0VmFsdWVJRCgpICE9IENTU1ZhbHVlQXV0bykKLSAgICAgICAg
Ym94Lm1fcmlnaHQgPSBzbGljZXMtPnJpZ2h0KCktPmNvbXB1dGVMZW5ndGg8TGVuZ3RoPihjb252
ZXJzaW9uRGF0YSk7CisgICAgICAgIGJveC5yaWdodCgpID0gc2xpY2VzLT5yaWdodCgpLT5jb21w
dXRlTGVuZ3RoPExlbmd0aD4oY29udmVyc2lvbkRhdGEpOwogCiAgICAgaWYgKHNsaWNlcy0+Ym90
dG9tKCktPmlzTnVtYmVyKCkpCi0gICAgICAgIGJveC5tX2JvdHRvbSA9IExlbmd0aChzbGljZXMt
PmJvdHRvbSgpLT5nZXRJbnRWYWx1ZSgpLCBSZWxhdGl2ZSk7CisgICAgICAgIGJveC5ib3R0b20o
KSA9IExlbmd0aChzbGljZXMtPmJvdHRvbSgpLT5nZXRJbnRWYWx1ZSgpLCBSZWxhdGl2ZSk7CiAg
ICAgZWxzZSBpZiAoc2xpY2VzLT5ib3R0b20oKS0+aXNQZXJjZW50YWdlKCkpCi0gICAgICAgIGJv
eC5tX2JvdHRvbSA9IExlbmd0aChzbGljZXMtPmJvdHRvbSgpLT5nZXREb3VibGVWYWx1ZShDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTX1BFUkNFTlRBR0UpLCBQZXJjZW50KTsKKyAgICAgICAgYm94LmJv
dHRvbSgpID0gTGVuZ3RoKHNsaWNlcy0+Ym90dG9tKCktPmdldERvdWJsZVZhbHVlKENTU1ByaW1p
dGl2ZVZhbHVlOjpDU1NfUEVSQ0VOVEFHRSksIFBlcmNlbnQpOwogICAgIGVsc2UgaWYgKHNsaWNl
cy0+Ym90dG9tKCktPmdldFZhbHVlSUQoKSAhPSBDU1NWYWx1ZUF1dG8pCi0gICAgICAgIGJveC5t
X2JvdHRvbSA9IHNsaWNlcy0+Ym90dG9tKCktPmNvbXB1dGVMZW5ndGg8TGVuZ3RoPihjb252ZXJz
aW9uRGF0YSk7CisgICAgICAgIGJveC5ib3R0b20oKSA9IHNsaWNlcy0+Ym90dG9tKCktPmNvbXB1
dGVMZW5ndGg8TGVuZ3RoPihjb252ZXJzaW9uRGF0YSk7CiAKICAgICBpZiAoc2xpY2VzLT5sZWZ0
KCktPmlzTnVtYmVyKCkpCi0gICAgICAgIGJveC5tX2xlZnQgPSBMZW5ndGgoc2xpY2VzLT5sZWZ0
KCktPmdldEludFZhbHVlKCksIFJlbGF0aXZlKTsKKyAgICAgICAgYm94LmxlZnQoKSA9IExlbmd0
aChzbGljZXMtPmxlZnQoKS0+Z2V0SW50VmFsdWUoKSwgUmVsYXRpdmUpOwogICAgIGVsc2UgaWYg
KHNsaWNlcy0+bGVmdCgpLT5pc1BlcmNlbnRhZ2UoKSkKLSAgICAgICAgYm94Lm1fbGVmdCA9IExl
bmd0aChzbGljZXMtPmxlZnQoKS0+Z2V0RG91YmxlVmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWU6OkNT
U19QRVJDRU5UQUdFKSwgUGVyY2VudCk7CisgICAgICAgIGJveC5sZWZ0KCkgPSBMZW5ndGgoc2xp
Y2VzLT5sZWZ0KCktPmdldERvdWJsZVZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUEVSQ0VO
VEFHRSksIFBlcmNlbnQpOwogICAgIGVsc2UgaWYgKHNsaWNlcy0+bGVmdCgpLT5nZXRWYWx1ZUlE
KCkgIT0gQ1NTVmFsdWVBdXRvKQotICAgICAgICBib3gubV9sZWZ0ID0gc2xpY2VzLT5sZWZ0KCkt
PmNvbXB1dGVMZW5ndGg8TGVuZ3RoPihjb252ZXJzaW9uRGF0YSk7CisgICAgICAgIGJveC5sZWZ0
KCkgPSBzbGljZXMtPmxlZnQoKS0+Y29tcHV0ZUxlbmd0aDxMZW5ndGg+KGNvbnZlcnNpb25EYXRh
KTsKIAogICAgIHJldHVybiBib3g7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVG9T
dHlsZU1hcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUb1N0eWxlTWFw
LmgJKHJldmlzaW9uIDE4NDY1NSkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUb1N0eWxlTWFw
LmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDcgQEAgY2xhc3MgU3R5bGVJbWFnZTsKIGNs
YXNzIFN0eWxlUmVzb2x2ZXI7CiBjbGFzcyBOaW5lUGllY2VJbWFnZTsKIAotc3RydWN0IExlbmd0
aEJveDsKK2NsYXNzIExlbmd0aEJveDsKIAogY2xhc3MgQ1NTVG9TdHlsZU1hcCB7CiAgICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoQ1NTVG9TdHlsZU1hcCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwCShyZXZpc2lvbiAxODQ2NTUpCisrKyBT
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTExMSw4ICsxMTEsOCBAQCBzdGF0aWMgdm9pZCBidWlsZFJlbmRlcmVySGlnaGxpZ2h0
KFJlbmRlCiAgICAgICAgICAgICBpZiAoIXJlbmRlckJveC5pc091dE9mRmxvd1Bvc2l0aW9uZWQo
KSAmJiByZWdpb24pIHsKICAgICAgICAgICAgICAgICBSZW5kZXJCb3g6OkxvZ2ljYWxFeHRlbnRD
b21wdXRlZFZhbHVlcyBjb21wdXRlZFZhbHVlczsKICAgICAgICAgICAgICAgICByZW5kZXJCb3gu
Y29tcHV0ZUxvZ2ljYWxXaWR0aEluUmVnaW9uKGNvbXB1dGVkVmFsdWVzLCByZWdpb24pOwotICAg
ICAgICAgICAgICAgIG1hcmdpbnMubXV0YWJsZUxvZ2ljYWxMZWZ0KHJlbmRlckJveC5zdHlsZSgp
LndyaXRpbmdNb2RlKCkpID0gY29tcHV0ZWRWYWx1ZXMubV9tYXJnaW5zLm1fc3RhcnQ7Ci0gICAg
ICAgICAgICAgICAgbWFyZ2lucy5tdXRhYmxlTG9naWNhbFJpZ2h0KHJlbmRlckJveC5zdHlsZSgp
LndyaXRpbmdNb2RlKCkpID0gY29tcHV0ZWRWYWx1ZXMubV9tYXJnaW5zLm1fZW5kOworICAgICAg
ICAgICAgICAgIG1hcmdpbnMuc3RhcnQocmVuZGVyQm94LnN0eWxlKCkud3JpdGluZ01vZGUoKSkg
PSBjb21wdXRlZFZhbHVlcy5tX21hcmdpbnMubV9zdGFydDsKKyAgICAgICAgICAgICAgICBtYXJn
aW5zLmVuZChyZW5kZXJCb3guc3R5bGUoKS53cml0aW5nTW9kZSgpKSA9IGNvbXB1dGVkVmFsdWVz
Lm1fbWFyZ2lucy5tX2VuZDsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgcGFkZGluZ0Jv
eCA9IHJlbmRlckJveC5jbGllbnRCb3hSZWN0SW5SZWdpb24ocmVnaW9uKTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0xlbmd0aEJveC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vTGVuZ3RoQm94LmNwcAkocmV2aXNpb24gMTg0NjU1KQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vTGVuZ3RoQm94LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw5MiAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAyMDEyLCBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0Ogot
ICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0g
KiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJMZW5ndGhCb3guaCIKLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi1jb25zdCBMZW5ndGgmIExlbmd0aEJveDo6bG9naWNhbExlZnQo
V3JpdGluZ01vZGUgd3JpdGluZ01vZGUpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGlzSG9yaXpvbnRh
bFdyaXRpbmdNb2RlKHdyaXRpbmdNb2RlKSA/IG1fbGVmdCA6IG1fdG9wOwotfQotCi1jb25zdCBM
ZW5ndGgmIExlbmd0aEJveDo6bG9naWNhbFJpZ2h0KFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlKSBj
b25zdAotewotICAgIHJldHVybiBpc0hvcml6b250YWxXcml0aW5nTW9kZSh3cml0aW5nTW9kZSkg
PyBtX3JpZ2h0IDogbV9ib3R0b207Ci19Ci0KLWNvbnN0IExlbmd0aCYgTGVuZ3RoQm94OjpiZWZv
cmUoV3JpdGluZ01vZGUgd3JpdGluZ01vZGUpIGNvbnN0Ci17Ci0gICAgc3dpdGNoICh3cml0aW5n
TW9kZSkgewotICAgIGNhc2UgVG9wVG9Cb3R0b21Xcml0aW5nTW9kZToKLSAgICAgICAgcmV0dXJu
IG1fdG9wOwotICAgIGNhc2UgQm90dG9tVG9Ub3BXcml0aW5nTW9kZToKLSAgICAgICAgcmV0dXJu
IG1fYm90dG9tOwotICAgIGNhc2UgTGVmdFRvUmlnaHRXcml0aW5nTW9kZToKLSAgICAgICAgcmV0
dXJuIG1fbGVmdDsKLSAgICBjYXNlIFJpZ2h0VG9MZWZ0V3JpdGluZ01vZGU6Ci0gICAgICAgIHJl
dHVybiBtX3JpZ2h0OwotICAgIH0KLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1
cm4gbV90b3A7Ci19Ci0KLWNvbnN0IExlbmd0aCYgTGVuZ3RoQm94OjphZnRlcihXcml0aW5nTW9k
ZSB3cml0aW5nTW9kZSkgY29uc3QKLXsKLSAgICBzd2l0Y2ggKHdyaXRpbmdNb2RlKSB7Ci0gICAg
Y2FzZSBUb3BUb0JvdHRvbVdyaXRpbmdNb2RlOgotICAgICAgICByZXR1cm4gbV9ib3R0b207Ci0g
ICAgY2FzZSBCb3R0b21Ub1RvcFdyaXRpbmdNb2RlOgotICAgICAgICByZXR1cm4gbV90b3A7Ci0g
ICAgY2FzZSBMZWZ0VG9SaWdodFdyaXRpbmdNb2RlOgotICAgICAgICByZXR1cm4gbV9yaWdodDsK
LSAgICBjYXNlIFJpZ2h0VG9MZWZ0V3JpdGluZ01vZGU6Ci0gICAgICAgIHJldHVybiBtX2xlZnQ7
Ci0gICAgfQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBtX2JvdHRvbTsK
LX0KLQotY29uc3QgTGVuZ3RoJiBMZW5ndGhCb3g6OnN0YXJ0KFdyaXRpbmdNb2RlIHdyaXRpbmdN
b2RlLCBUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbikgY29uc3QKLXsKLSAgICBpZiAoaXNIb3Jpem9u
dGFsV3JpdGluZ01vZGUod3JpdGluZ01vZGUpKQotICAgICAgICByZXR1cm4gaXNMZWZ0VG9SaWdo
dERpcmVjdGlvbihkaXJlY3Rpb24pID8gbV9sZWZ0IDogbV9yaWdodDsKLSAgICByZXR1cm4gaXNM
ZWZ0VG9SaWdodERpcmVjdGlvbihkaXJlY3Rpb24pID8gbV90b3AgOiBtX2JvdHRvbTsKLX0KLQot
Y29uc3QgTGVuZ3RoJiBMZW5ndGhCb3g6OmVuZChXcml0aW5nTW9kZSB3cml0aW5nTW9kZSwgVGV4
dERpcmVjdGlvbiBkaXJlY3Rpb24pIGNvbnN0Ci17Ci0gICAgaWYgKGlzSG9yaXpvbnRhbFdyaXRp
bmdNb2RlKHdyaXRpbmdNb2RlKSkKLSAgICAgICAgcmV0dXJuIGlzTGVmdFRvUmlnaHREaXJlY3Rp
b24oZGlyZWN0aW9uKSA/IG1fcmlnaHQgOiBtX2xlZnQ7Ci0gICAgcmV0dXJuIGlzTGVmdFRvUmln
aHREaXJlY3Rpb24oZGlyZWN0aW9uKSA/IG1fYm90dG9tIDogbV90b3A7Ci19Ci0KLX0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xlbmd0aEJveC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xlbmd0aEJveC5oCShyZXZp
c2lvbiAxODQ2NTUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZW5ndGhCb3guaAkod29y
a2luZyBjb3B5KQpAQCAtMSw2ICsxLDYgQEAKIC8qCiAgICAgQ29weXJpZ2h0IChDKSAxOTk5IExh
cnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCi0gICAgQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAgICBDb3B5cmlnaHQgKEMpIDIwMDYsIDIw
MDgsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgIENvcHlyaWdodCAo
YykgMjAxMiwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KIAogICAgIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAg
LTI4LDc3ICsyOCwxNDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdHJ1Y3QgTGVuZ3Ro
Qm94IHsKLSAgICBMZW5ndGhCb3goKQordGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgQm94RXh0
ZW50IHsKK3B1YmxpYzoKKyAgICBCb3hFeHRlbnQoKQorICAgICAgICA6IG1fc2lkZXMoeyAwLCAw
LCAwLCAwIH0pCiAgICAgewogICAgIH0KIAotICAgIGV4cGxpY2l0IExlbmd0aEJveChMZW5ndGhU
eXBlIHR5cGUpCi0gICAgICAgIDogbV9sZWZ0KHR5cGUpCi0gICAgICAgICwgbV9yaWdodCh0eXBl
KQotICAgICAgICAsIG1fdG9wKHR5cGUpCi0gICAgICAgICwgbV9ib3R0b20odHlwZSkKKyAgICBC
b3hFeHRlbnQoY29uc3QgVCYgdG9wLCBjb25zdCBUJiByaWdodCwgY29uc3QgVCYgYm90dG9tLCBj
b25zdCBUJiBsZWZ0KQorICAgICAgICA6IG1fc2lkZXMoeyB0b3AsIHJpZ2h0LCBib3R0b20sIGxl
ZnQgfSkKICAgICB7CiAgICAgfQogCi0gICAgZXhwbGljaXQgTGVuZ3RoQm94KGludCB2KQotICAg
ICAgICA6IG1fbGVmdChMZW5ndGgodiwgRml4ZWQpKQotICAgICAgICAsIG1fcmlnaHQoTGVuZ3Ro
KHYsIEZpeGVkKSkKLSAgICAgICAgLCBtX3RvcChMZW5ndGgodiwgRml4ZWQpKQotICAgICAgICAs
IG1fYm90dG9tKExlbmd0aCh2LCBGaXhlZCkpCisgICAgVCYgYXQoUGh5c2ljYWxCb3hTaWRlIHNp
ZGUpIHsgcmV0dXJuIG1fc2lkZXNbc2lkZV07IH0KKyAgICBUJiB0b3AoKSB7IHJldHVybiBhdChU
b3BTaWRlKTsgfQorICAgIFQmIHJpZ2h0KCkgeyByZXR1cm4gYXQoUmlnaHRTaWRlKTsgfQorICAg
IFQmIGJvdHRvbSgpIHsgcmV0dXJuIGF0KEJvdHRvbVNpZGUpOyB9CisgICAgVCYgbGVmdCgpIHsg
cmV0dXJuIGF0KExlZnRTaWRlKTsgfQorCisgICAgY29uc3QgVCYgYXQoUGh5c2ljYWxCb3hTaWRl
IHNpZGUpIGNvbnN0IHsgcmV0dXJuIG1fc2lkZXNbc2lkZV07IH0KKyAgICBjb25zdCBUJiB0b3Ao
KSBjb25zdCB7IHJldHVybiBhdChUb3BTaWRlKTsgfQorICAgIGNvbnN0IFQmIHJpZ2h0KCkgY29u
c3QgeyByZXR1cm4gYXQoUmlnaHRTaWRlKTsgfQorICAgIGNvbnN0IFQmIGJvdHRvbSgpIGNvbnN0
IHsgcmV0dXJuIGF0KEJvdHRvbVNpZGUpOyB9CisgICAgY29uc3QgVCYgbGVmdCgpIGNvbnN0IHsg
cmV0dXJuIGF0KExlZnRTaWRlKTsgfQorCisgICAgdm9pZCBzZXRBdChQaHlzaWNhbEJveFNpZGUg
c2lkZSwgY29uc3QgVCYgdikgeyBhdChzaWRlKSA9IHY7IH0KKyAgICB2b2lkIHNldFRvcChjb25z
dCBUJiB0b3ApIHsgc2V0QXQoVG9wU2lkZSwgdG9wKTsgfQorICAgIHZvaWQgc2V0UmlnaHQoY29u
c3QgVCYgcmlnaHQpIHsgc2V0QXQoUmlnaHRTaWRlLCByaWdodCk7IH0KKyAgICB2b2lkIHNldEJv
dHRvbShjb25zdCBUJiBib3R0b20pIHsgc2V0QXQoQm90dG9tU2lkZSwgYm90dG9tKTsgfQorICAg
IHZvaWQgc2V0TGVmdChjb25zdCBUJiBsZWZ0KSB7IHNldEF0KExlZnRTaWRlLCBsZWZ0KTsgfQor
CisgICAgVCYgYmVmb3JlKFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlKQogICAgIHsKKyAgICAgICAg
cmV0dXJuIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKHdyaXRpbmdNb2RlKSA/CisgICAgICAgICAg
ICAoaXNGbGlwcGVkQmxvY2tzV3JpdGluZ01vZGUod3JpdGluZ01vZGUpID8gYm90dG9tKCkgOiB0
b3AoKSkgOgorICAgICAgICAgICAgKGlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdNb2RlKHdyaXRpbmdN
b2RlKSA/IHJpZ2h0KCkgOiBsZWZ0KCkpOwogICAgIH0KIAotICAgIExlbmd0aEJveChMZW5ndGgg
dG9wLCBMZW5ndGggcmlnaHQsIExlbmd0aCBib3R0b20sIExlbmd0aCBsZWZ0KQotICAgICAgICA6
IG1fbGVmdChXVEY6Om1vdmUobGVmdCkpCi0gICAgICAgICwgbV9yaWdodChXVEY6Om1vdmUocmln
aHQpKQotICAgICAgICAsIG1fdG9wKFdURjo6bW92ZSh0b3ApKQotICAgICAgICAsIG1fYm90dG9t
KFdURjo6bW92ZShib3R0b20pKQorICAgIFQmIGFmdGVyKFdyaXRpbmdNb2RlIHdyaXRpbmdNb2Rl
KQogICAgIHsKKyAgICAgICAgcmV0dXJuIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKHdyaXRpbmdN
b2RlKSA/CisgICAgICAgICAgICAoaXNGbGlwcGVkQmxvY2tzV3JpdGluZ01vZGUod3JpdGluZ01v
ZGUpID8gdG9wKCkgOiBib3R0b20oKSkgOgorICAgICAgICAgICAgKGlzRmxpcHBlZEJsb2Nrc1dy
aXRpbmdNb2RlKHdyaXRpbmdNb2RlKSA/IGxlZnQoKSA6IHJpZ2h0KCkpOwogICAgIH0KIAotICAg
IExlbmd0aEJveChpbnQgdG9wLCBpbnQgcmlnaHQsIGludCBib3R0b20sIGludCBsZWZ0KQotICAg
ICAgICA6IG1fbGVmdChMZW5ndGgobGVmdCwgRml4ZWQpKQotICAgICAgICAsIG1fcmlnaHQoTGVu
Z3RoKHJpZ2h0LCBGaXhlZCkpCi0gICAgICAgICwgbV90b3AoTGVuZ3RoKHRvcCwgRml4ZWQpKQot
ICAgICAgICAsIG1fYm90dG9tKExlbmd0aChib3R0b20sIEZpeGVkKSkKKyAgICBUJiBzdGFydChX
cml0aW5nTW9kZSB3cml0aW5nTW9kZSwgVGV4dERpcmVjdGlvbiBkaXJlY3Rpb24gPSBMVFIpCiAg
ICAgeworICAgICAgICByZXR1cm4gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUod3JpdGluZ01vZGUp
ID8KKyAgICAgICAgICAgIChpc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKGRpcmVjdGlvbikgPyBsZWZ0
KCkgOiByaWdodCgpKSA6CisgICAgICAgICAgICAoaXNMZWZ0VG9SaWdodERpcmVjdGlvbihkaXJl
Y3Rpb24pID8gdG9wKCkgOiBib3R0b20oKSk7CiAgICAgfQogCi0gICAgY29uc3QgTGVuZ3RoJiBs
ZWZ0KCkgY29uc3QgeyByZXR1cm4gbV9sZWZ0OyB9Ci0gICAgY29uc3QgTGVuZ3RoJiByaWdodCgp
IGNvbnN0IHsgcmV0dXJuIG1fcmlnaHQ7IH0KLSAgICBjb25zdCBMZW5ndGgmIHRvcCgpIGNvbnN0
IHsgcmV0dXJuIG1fdG9wOyB9Ci0gICAgY29uc3QgTGVuZ3RoJiBib3R0b20oKSBjb25zdCB7IHJl
dHVybiBtX2JvdHRvbTsgfQorICAgIFQmIGVuZChXcml0aW5nTW9kZSB3cml0aW5nTW9kZSwgVGV4
dERpcmVjdGlvbiBkaXJlY3Rpb24gPSBMVFIpCisgICAgeworICAgICAgICByZXR1cm4gaXNIb3Jp
em9udGFsV3JpdGluZ01vZGUod3JpdGluZ01vZGUpID8KKyAgICAgICAgICAgIChpc0xlZnRUb1Jp
Z2h0RGlyZWN0aW9uKGRpcmVjdGlvbikgPyByaWdodCgpIDogbGVmdCgpKSA6CisgICAgICAgICAg
ICAoaXNMZWZ0VG9SaWdodERpcmVjdGlvbihkaXJlY3Rpb24pID8gYm90dG9tKCkgOiB0b3AoKSk7
CisgICAgfQogCi0gICAgY29uc3QgTGVuZ3RoJiBsb2dpY2FsTGVmdChXcml0aW5nTW9kZSkgY29u
c3Q7Ci0gICAgY29uc3QgTGVuZ3RoJiBsb2dpY2FsUmlnaHQoV3JpdGluZ01vZGUpIGNvbnN0Owor
ICAgIGNvbnN0IFQmIGJlZm9yZShXcml0aW5nTW9kZSB3cml0aW5nTW9kZSkgY29uc3QKKyAgICB7
CisgICAgICAgIHJldHVybiBpc0hvcml6b250YWxXcml0aW5nTW9kZSh3cml0aW5nTW9kZSkgPwor
ICAgICAgICAgICAgKGlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdNb2RlKHdyaXRpbmdNb2RlKSA/IGJv
dHRvbSgpIDogdG9wKCkpIDoKKyAgICAgICAgICAgIChpc0ZsaXBwZWRCbG9ja3NXcml0aW5nTW9k
ZSh3cml0aW5nTW9kZSkgPyByaWdodCgpIDogbGVmdCgpKTsKKyAgICB9CiAKLSAgICBjb25zdCBM
ZW5ndGgmIGJlZm9yZShXcml0aW5nTW9kZSkgY29uc3Q7Ci0gICAgY29uc3QgTGVuZ3RoJiBhZnRl
cihXcml0aW5nTW9kZSkgY29uc3Q7Ci0gICAgY29uc3QgTGVuZ3RoJiBzdGFydChXcml0aW5nTW9k
ZSwgVGV4dERpcmVjdGlvbikgY29uc3Q7Ci0gICAgY29uc3QgTGVuZ3RoJiBlbmQoV3JpdGluZ01v
ZGUsIFRleHREaXJlY3Rpb24pIGNvbnN0OworICAgIGNvbnN0IFQmIGFmdGVyKFdyaXRpbmdNb2Rl
IHdyaXRpbmdNb2RlKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIGlzSG9yaXpvbnRhbFdy
aXRpbmdNb2RlKHdyaXRpbmdNb2RlKSA/CisgICAgICAgICAgICAoaXNGbGlwcGVkQmxvY2tzV3Jp
dGluZ01vZGUod3JpdGluZ01vZGUpID8gdG9wKCkgOiBib3R0b20oKSkgOgorICAgICAgICAgICAg
KGlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdNb2RlKHdyaXRpbmdNb2RlKSA/IGxlZnQoKSA6IHJpZ2h0
KCkpOworICAgIH0KKworICAgIGNvbnN0IFQmIHN0YXJ0KFdyaXRpbmdNb2RlIHdyaXRpbmdNb2Rl
LCBUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbiA9IExUUikgY29uc3QKKyAgICB7CisgICAgICAgIHJl
dHVybiBpc0hvcml6b250YWxXcml0aW5nTW9kZSh3cml0aW5nTW9kZSkgPworICAgICAgICAgICAg
KGlzTGVmdFRvUmlnaHREaXJlY3Rpb24oZGlyZWN0aW9uKSA/IGxlZnQoKSA6IHJpZ2h0KCkpIDoK
KyAgICAgICAgICAgIChpc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKGRpcmVjdGlvbikgPyB0b3AoKSA6
IGJvdHRvbSgpKTsKKyAgICB9CiAKLSAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgTGVuZ3RoQm94
JiBvdGhlcikgY29uc3QKKyAgICBjb25zdCBUJiBlbmQoV3JpdGluZ01vZGUgd3JpdGluZ01vZGUs
IFRleHREaXJlY3Rpb24gZGlyZWN0aW9uID0gTFRSKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0
dXJuIG1fbGVmdCA9PSBvdGhlci5tX2xlZnQgJiYgbV9yaWdodCA9PSBvdGhlci5tX3JpZ2h0ICYm
IG1fdG9wID09IG90aGVyLm1fdG9wICYmIG1fYm90dG9tID09IG90aGVyLm1fYm90dG9tOworICAg
ICAgICByZXR1cm4gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUod3JpdGluZ01vZGUpID8KKyAgICAg
ICAgICAgIChpc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKGRpcmVjdGlvbikgPyByaWdodCgpIDogbGVm
dCgpKSA6CisgICAgICAgICAgICAoaXNMZWZ0VG9SaWdodERpcmVjdGlvbihkaXJlY3Rpb24pID8g
Ym90dG9tKCkgOiB0b3AoKSk7CiAgICAgfQogCi0gICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IExl
bmd0aEJveCYgb3RoZXIpIGNvbnN0CisgICAgdm9pZCBzZXRCZWZvcmUoY29uc3QgVCYgYmVmb3Jl
LCBXcml0aW5nTW9kZSB3cml0aW5nTW9kZSkgeyB0aGlzLT5iZWZvcmUod3JpdGluZ01vZGUpID0g
YmVmb3JlOyB9CisgICAgdm9pZCBzZXRBZnRlcihjb25zdCBUJiBhZnRlciwgV3JpdGluZ01vZGUg
d3JpdGluZ01vZGUpIHsgdGhpcy0+YWZ0ZXIod3JpdGluZ01vZGUpID0gYWZ0ZXI7IH0KKyAgICB2
b2lkIHNldFN0YXJ0KGNvbnN0IFQmIHN0YXJ0LCBXcml0aW5nTW9kZSB3cml0aW5nTW9kZSwgVGV4
dERpcmVjdGlvbiBkaXJlY3Rpb24gPSBMVFIpIHsgdGhpcy0+c3RhcnQod3JpdGluZ01vZGUsIGRp
cmVjdGlvbikgPSBzdGFydDsgfQorICAgIHZvaWQgc2V0RW5kKGNvbnN0IFQmIGVuZCwgV3JpdGlu
Z01vZGUgd3JpdGluZ01vZGUsIFRleHREaXJlY3Rpb24gZGlyZWN0aW9uID0gTFRSKSB7IHRoaXMt
PmVuZCh3cml0aW5nTW9kZSwgZGlyZWN0aW9uKSA9IGVuZDsgfQorCisgICAgYm9vbCBvcGVyYXRv
cj09KGNvbnN0IEJveEV4dGVudCYgb3RoZXIpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4g
ISgqdGhpcyA9PSBvdGhlcik7CisgICAgICAgIHJldHVybiBtX3NpZGVzID09IG90aGVyLm1fc2lk
ZXM7CiAgICAgfQogCi0gICAgYm9vbCBub25aZXJvKCkgY29uc3QKKyAgICBib29sIG9wZXJhdG9y
IT0oY29uc3QgQm94RXh0ZW50JiBvdGhlcikgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiAh
KG1fbGVmdC5pc1plcm8oKSAmJiBtX3JpZ2h0LmlzWmVybygpICYmIG1fdG9wLmlzWmVybygpICYm
IG1fYm90dG9tLmlzWmVybygpKTsKKyAgICAgICAgcmV0dXJuIG1fc2lkZXMgIT0gb3RoZXIubV9z
aWRlczsKICAgICB9CiAKLSAgICBMZW5ndGggbV9sZWZ0OwotICAgIExlbmd0aCBtX3JpZ2h0Owot
ICAgIExlbmd0aCBtX3RvcDsKLSAgICBMZW5ndGggbV9ib3R0b207Citwcm90ZWN0ZWQ6CisgICAg
VmVjdG9yPFQsIDQ+IG1fc2lkZXM7CiB9OwogCitjbGFzcyBMZW5ndGhCb3ggOiBwdWJsaWMgQm94
RXh0ZW50PExlbmd0aD4geworcHVibGljOgorICAgIExlbmd0aEJveCgpCisgICAgICAgIDogTGVu
Z3RoQm94KEF1dG8pCisgICAgeworICAgIH0KKworICAgIGV4cGxpY2l0IExlbmd0aEJveChMZW5n
dGhUeXBlIHR5cGUpCisgICAgICAgIDogQm94RXh0ZW50KExlbmd0aCh0eXBlKSwgTGVuZ3RoKHR5
cGUpLCBMZW5ndGgodHlwZSksIExlbmd0aCh0eXBlKSkKKyAgICB7CisgICAgfQorCisgICAgZXhw
bGljaXQgTGVuZ3RoQm94KGludCB2KQorICAgICAgICA6IEJveEV4dGVudChMZW5ndGgodiwgRml4
ZWQpLCBMZW5ndGgodiwgRml4ZWQpLCBMZW5ndGgodiwgRml4ZWQpLCBMZW5ndGgodiwgRml4ZWQp
KQorICAgIHsKKyAgICB9CisKKyAgICBMZW5ndGhCb3goaW50IHRvcCwgaW50IHJpZ2h0LCBpbnQg
Ym90dG9tLCBpbnQgbGVmdCkKKyAgICAgICAgOiBCb3hFeHRlbnQoTGVuZ3RoKHRvcCwgRml4ZWQp
LCBMZW5ndGgocmlnaHQsIEZpeGVkKSwgTGVuZ3RoKGJvdHRvbSwgRml4ZWQpLCBMZW5ndGgobGVm
dCwgRml4ZWQpKQorICAgIHsKKyAgICB9CisKKyAgICBMZW5ndGhCb3goY29uc3QgTGVuZ3RoJiB0
b3AsIGNvbnN0IExlbmd0aCYgcmlnaHQsIGNvbnN0IExlbmd0aCYgYm90dG9tLCBjb25zdCBMZW5n
dGgmIGxlZnQpCisgICAgICAgIDogQm94RXh0ZW50KHRvcCwgcmlnaHQsIGJvdHRvbSwgbGVmdCkK
KyAgICB7CisgICAgfQorCisgICAgYm9vbCBpc1plcm8oKSBjb25zdAorICAgIHsKKyAgICAgICAg
cmV0dXJuIHRvcCgpLmlzWmVybygpICYmIHJpZ2h0KCkuaXNaZXJvKCkgJiYgYm90dG9tKCkuaXNa
ZXJvKCkgJiYgbGVmdCgpLmlzWmVybygpOworICAgIH0KK307CisKK3R5cGVkZWYgQm94RXh0ZW50
PExheW91dFVuaXQ+IExheW91dEJveEV4dGVudDsKK3R5cGVkZWYgQm94RXh0ZW50PGZsb2F0PiBG
bG9hdEJveEV4dGVudDsKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gTGVu
Z3RoQm94X2gKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0xheW91dEJv
eEV4dGVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTGF5b3V0Qm94RXh0ZW50LmNwcAkocmV2aXNpb24gMTg0NjU1KQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTGF5b3V0Qm94RXh0ZW50LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMSwxOTYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMjAxMiwgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
LSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
LSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICog
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
Ci0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiTGF5b3V0Qm94
RXh0ZW50LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotTGF5b3V0VW5pdCBMYXlvdXRCb3hF
eHRlbnQ6OmxvZ2ljYWxUb3AoV3JpdGluZ01vZGUgd3JpdGluZ01vZGUpIGNvbnN0Ci17Ci0gICAg
cmV0dXJuIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKHdyaXRpbmdNb2RlKSA/IG1fdG9wIDogbV9s
ZWZ0OwotfQotCi1MYXlvdXRVbml0IExheW91dEJveEV4dGVudDo6bG9naWNhbEJvdHRvbShXcml0
aW5nTW9kZSB3cml0aW5nTW9kZSkgY29uc3QKLXsKLSAgICByZXR1cm4gaXNIb3Jpem9udGFsV3Jp
dGluZ01vZGUod3JpdGluZ01vZGUpID8gbV9ib3R0b20gOiBtX3JpZ2h0OwotfQotCi1MYXlvdXRV
bml0IExheW91dEJveEV4dGVudDo6bG9naWNhbExlZnQoV3JpdGluZ01vZGUgd3JpdGluZ01vZGUp
IGNvbnN0Ci17Ci0gICAgcmV0dXJuIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKHdyaXRpbmdNb2Rl
KSA/IG1fbGVmdCA6IG1fdG9wOwotfQotCi1MYXlvdXRVbml0IExheW91dEJveEV4dGVudDo6bG9n
aWNhbFJpZ2h0KFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlKSBjb25zdAotewotICAgIHJldHVybiBp
c0hvcml6b250YWxXcml0aW5nTW9kZSh3cml0aW5nTW9kZSkgPyBtX3JpZ2h0IDogbV9ib3R0b207
Ci19Ci0KLUxheW91dFVuaXQgTGF5b3V0Qm94RXh0ZW50OjpiZWZvcmUoV3JpdGluZ01vZGUgd3Jp
dGluZ01vZGUpIGNvbnN0Ci17Ci0gICAgc3dpdGNoICh3cml0aW5nTW9kZSkgewotICAgIGNhc2Ug
VG9wVG9Cb3R0b21Xcml0aW5nTW9kZToKLSAgICAgICAgcmV0dXJuIG1fdG9wOwotICAgIGNhc2Ug
Qm90dG9tVG9Ub3BXcml0aW5nTW9kZToKLSAgICAgICAgcmV0dXJuIG1fYm90dG9tOwotICAgIGNh
c2UgTGVmdFRvUmlnaHRXcml0aW5nTW9kZToKLSAgICAgICAgcmV0dXJuIG1fbGVmdDsKLSAgICBj
YXNlIFJpZ2h0VG9MZWZ0V3JpdGluZ01vZGU6Ci0gICAgICAgIHJldHVybiBtX3JpZ2h0OwotICAg
IH0KLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gbV90b3A7Ci19Ci0KLUxh
eW91dFVuaXQgTGF5b3V0Qm94RXh0ZW50OjphZnRlcihXcml0aW5nTW9kZSB3cml0aW5nTW9kZSkg
Y29uc3QKLXsKLSAgICBzd2l0Y2ggKHdyaXRpbmdNb2RlKSB7Ci0gICAgY2FzZSBUb3BUb0JvdHRv
bVdyaXRpbmdNb2RlOgotICAgICAgICByZXR1cm4gbV9ib3R0b207Ci0gICAgY2FzZSBCb3R0b21U
b1RvcFdyaXRpbmdNb2RlOgotICAgICAgICByZXR1cm4gbV90b3A7Ci0gICAgY2FzZSBMZWZ0VG9S
aWdodFdyaXRpbmdNb2RlOgotICAgICAgICByZXR1cm4gbV9yaWdodDsKLSAgICBjYXNlIFJpZ2h0
VG9MZWZ0V3JpdGluZ01vZGU6Ci0gICAgICAgIHJldHVybiBtX2xlZnQ7Ci0gICAgfQotICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBtX2JvdHRvbTsKLX0KLQotTGF5b3V0VW5p
dCBMYXlvdXRCb3hFeHRlbnQ6OnN0YXJ0KFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlLCBUZXh0RGly
ZWN0aW9uIGRpcmVjdGlvbikgY29uc3QKLXsKLSAgICBpZiAoaXNIb3Jpem9udGFsV3JpdGluZ01v
ZGUod3JpdGluZ01vZGUpKQotICAgICAgICByZXR1cm4gaXNMZWZ0VG9SaWdodERpcmVjdGlvbihk
aXJlY3Rpb24pID8gbV9sZWZ0IDogbV9yaWdodDsKLSAgICByZXR1cm4gaXNMZWZ0VG9SaWdodERp
cmVjdGlvbihkaXJlY3Rpb24pID8gbV90b3AgOiBtX2JvdHRvbTsKLX0KLQotTGF5b3V0VW5pdCBM
YXlvdXRCb3hFeHRlbnQ6OmVuZChXcml0aW5nTW9kZSB3cml0aW5nTW9kZSwgVGV4dERpcmVjdGlv
biBkaXJlY3Rpb24pIGNvbnN0Ci17Ci0gICAgaWYgKGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKHdy
aXRpbmdNb2RlKSkKLSAgICAgICAgcmV0dXJuIGlzTGVmdFRvUmlnaHREaXJlY3Rpb24oZGlyZWN0
aW9uKSA/IG1fcmlnaHQgOiBtX2xlZnQ7Ci0gICAgcmV0dXJuIGlzTGVmdFRvUmlnaHREaXJlY3Rp
b24oZGlyZWN0aW9uKSA/IG1fYm90dG9tIDogbV90b3A7Ci19Ci0KLXZvaWQgTGF5b3V0Qm94RXh0
ZW50OjpzZXRCZWZvcmUoV3JpdGluZ01vZGUgd3JpdGluZ01vZGUsIExheW91dFVuaXQgdmFsdWUp
Ci17Ci0gICAgc3dpdGNoICh3cml0aW5nTW9kZSkgewotICAgIGNhc2UgVG9wVG9Cb3R0b21Xcml0
aW5nTW9kZToKLSAgICAgICAgbV90b3AgPSB2YWx1ZTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBCb3R0b21Ub1RvcFdyaXRpbmdNb2RlOgotICAgICAgICBtX2JvdHRvbSA9IHZhbHVlOwotICAg
ICAgICBicmVhazsKLSAgICBjYXNlIExlZnRUb1JpZ2h0V3JpdGluZ01vZGU6Ci0gICAgICAgIG1f
bGVmdCA9IHZhbHVlOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFJpZ2h0VG9MZWZ0V3JpdGlu
Z01vZGU6Ci0gICAgICAgIG1fcmlnaHQgPSB2YWx1ZTsKLSAgICAgICAgYnJlYWs7Ci0gICAgZGVm
YXVsdDoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIG1fdG9wID0gdmFs
dWU7Ci0gICAgfQotfQotCi12b2lkIExheW91dEJveEV4dGVudDo6c2V0QWZ0ZXIoV3JpdGluZ01v
ZGUgd3JpdGluZ01vZGUsIExheW91dFVuaXQgdmFsdWUpCi17Ci0gICAgc3dpdGNoICh3cml0aW5n
TW9kZSkgewotICAgIGNhc2UgVG9wVG9Cb3R0b21Xcml0aW5nTW9kZToKLSAgICAgICAgbV9ib3R0
b20gPSB2YWx1ZTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBCb3R0b21Ub1RvcFdyaXRpbmdN
b2RlOgotICAgICAgICBtX3RvcCA9IHZhbHVlOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIExl
ZnRUb1JpZ2h0V3JpdGluZ01vZGU6Ci0gICAgICAgIG1fcmlnaHQgPSB2YWx1ZTsKLSAgICAgICAg
YnJlYWs7Ci0gICAgY2FzZSBSaWdodFRvTGVmdFdyaXRpbmdNb2RlOgotICAgICAgICBtX2xlZnQg
PSB2YWx1ZTsKLSAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7Ci0gICAgICAgIG1fYm90dG9tID0gdmFsdWU7Ci0gICAgfQotfQotCi12b2lk
IExheW91dEJveEV4dGVudDo6c2V0U3RhcnQoV3JpdGluZ01vZGUgd3JpdGluZ01vZGUsIFRleHRE
aXJlY3Rpb24gZGlyZWN0aW9uLCBMYXlvdXRVbml0IHZhbHVlKQotewotICAgIGlmIChpc0hvcml6
b250YWxXcml0aW5nTW9kZSh3cml0aW5nTW9kZSkpIHsKLSAgICAgICAgaWYgKGlzTGVmdFRvUmln
aHREaXJlY3Rpb24oZGlyZWN0aW9uKSkKLSAgICAgICAgICAgIG1fbGVmdCA9IHZhbHVlOwotICAg
ICAgICBlbHNlCi0gICAgICAgICAgICBtX3JpZ2h0ID0gdmFsdWU7Ci0gICAgfSBlbHNlIHsKLSAg
ICAgICAgaWYgKGlzTGVmdFRvUmlnaHREaXJlY3Rpb24oZGlyZWN0aW9uKSkKLSAgICAgICAgICAg
IG1fdG9wID0gdmFsdWU7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1fYm90dG9tID0gdmFs
dWU7Ci0gICAgfQotfQotCi12b2lkIExheW91dEJveEV4dGVudDo6c2V0RW5kKFdyaXRpbmdNb2Rl
IHdyaXRpbmdNb2RlLCBUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbiwgTGF5b3V0VW5pdCB2YWx1ZSkK
LXsKLSAgICBpZiAoaXNIb3Jpem9udGFsV3JpdGluZ01vZGUod3JpdGluZ01vZGUpKSB7Ci0gICAg
ICAgIGlmIChpc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKGRpcmVjdGlvbikpCi0gICAgICAgICAgICBt
X3JpZ2h0ID0gdmFsdWU7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1fbGVmdCA9IHZhbHVl
OwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGlmIChpc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKGRpcmVj
dGlvbikpCi0gICAgICAgICAgICBtX2JvdHRvbSA9IHZhbHVlOwotICAgICAgICBlbHNlCi0gICAg
ICAgICAgICBtX3RvcCA9IHZhbHVlOwotICAgIH0KLX0KLQotTGF5b3V0VW5pdCYgTGF5b3V0Qm94
RXh0ZW50OjptdXRhYmxlTG9naWNhbExlZnQoV3JpdGluZ01vZGUgd3JpdGluZ01vZGUpCi17Ci0g
ICAgcmV0dXJuIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKHdyaXRpbmdNb2RlKSA/IG1fbGVmdCA6
IG1fdG9wOwotfQotCi1MYXlvdXRVbml0JiBMYXlvdXRCb3hFeHRlbnQ6Om11dGFibGVMb2dpY2Fs
UmlnaHQoV3JpdGluZ01vZGUgd3JpdGluZ01vZGUpCi17Ci0gICAgcmV0dXJuIGlzSG9yaXpvbnRh
bFdyaXRpbmdNb2RlKHdyaXRpbmdNb2RlKSA/IG1fcmlnaHQgOiBtX2JvdHRvbTsKLX0KLQotTGF5
b3V0VW5pdCYgTGF5b3V0Qm94RXh0ZW50OjptdXRhYmxlQmVmb3JlKFdyaXRpbmdNb2RlIHdyaXRp
bmdNb2RlKQotewotICAgIHJldHVybiBpc0hvcml6b250YWxXcml0aW5nTW9kZSh3cml0aW5nTW9k
ZSkgPyAoaXNGbGlwcGVkQmxvY2tzV3JpdGluZ01vZGUod3JpdGluZ01vZGUpID8gbV9ib3R0b20g
OiBtX3RvcCkgOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoaXNGbGlwcGVkQmxvY2tzV3JpdGluZ01vZGUod3JpdGluZ01vZGUpID8gbV9yaWdodDog
bV9sZWZ0KTsKLX0KLQotTGF5b3V0VW5pdCYgTGF5b3V0Qm94RXh0ZW50OjptdXRhYmxlQWZ0ZXIo
V3JpdGluZ01vZGUgd3JpdGluZ01vZGUpCi17Ci0gICAgcmV0dXJuIGlzSG9yaXpvbnRhbFdyaXRp
bmdNb2RlKHdyaXRpbmdNb2RlKSA/IChpc0ZsaXBwZWRCbG9ja3NXcml0aW5nTW9kZSh3cml0aW5n
TW9kZSkgPyBtX3RvcCA6IG1fYm90dG9tKSA6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIChpc0ZsaXBwZWRCbG9ja3NXcml0aW5nTW9kZSh3cml0aW5n
TW9kZSkgPyBtX2xlZnQ6IG1fcmlnaHQpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9MYXlvdXRCb3hFeHRlbnQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9MYXlvdXRCb3hF
eHRlbnQuaAkocmV2aXNpb24gMTg0NjU1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTGF5b3V0Qm94RXh0ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsODYgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoYykgMjAxMiwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQot
ICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
LSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0j
aWZuZGVmIExheW91dEJveEV4dGVudF9oCi0jZGVmaW5lIExheW91dEJveEV4dGVudF9oCi0KLSNp
bmNsdWRlICJMYXlvdXRVbml0LmgiCi0jaW5jbHVkZSAiVGV4dEZsYWdzLmgiCi0jaW5jbHVkZSAi
V3JpdGluZ01vZGUuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBMYXlvdXRCb3hF
eHRlbnQgewotcHVibGljOgotICAgIExheW91dEJveEV4dGVudCgpIDogbV90b3AoMCksIG1fcmln
aHQoMCksIG1fYm90dG9tKDApLCBtX2xlZnQoMCkgeyB9Ci0gICAgTGF5b3V0Qm94RXh0ZW50KExh
eW91dFVuaXQgdG9wLCBMYXlvdXRVbml0IHJpZ2h0LCBMYXlvdXRVbml0IGJvdHRvbSwgTGF5b3V0
VW5pdCBsZWZ0KQotICAgICAgICA6IG1fdG9wKHRvcCksIG1fcmlnaHQocmlnaHQpLCBtX2JvdHRv
bShib3R0b20pLCBtX2xlZnQobGVmdCkgeyB9Ci0KLSAgICBpbmxpbmUgTGF5b3V0VW5pdCB0b3Ao
KSBjb25zdCB7IHJldHVybiBtX3RvcDsgfQotICAgIGlubGluZSBMYXlvdXRVbml0IHJpZ2h0KCkg
Y29uc3QgeyByZXR1cm4gbV9yaWdodDsgfQotICAgIGlubGluZSBMYXlvdXRVbml0IGJvdHRvbSgp
IGNvbnN0IHsgcmV0dXJuIG1fYm90dG9tOyB9Ci0gICAgaW5saW5lIExheW91dFVuaXQgbGVmdCgp
IGNvbnN0IHsgcmV0dXJuIG1fbGVmdDsgfQotCi0gICAgaW5saW5lIHZvaWQgc2V0VG9wKExheW91
dFVuaXQgdmFsdWUpIHsgbV90b3AgPSB2YWx1ZTsgfQotICAgIGlubGluZSB2b2lkIHNldFJpZ2h0
KExheW91dFVuaXQgdmFsdWUpIHsgbV9yaWdodCA9IHZhbHVlOyB9Ci0gICAgaW5saW5lIHZvaWQg
c2V0Qm90dG9tKExheW91dFVuaXQgdmFsdWUpIHsgbV9ib3R0b20gPSB2YWx1ZTsgfQotICAgIGlu
bGluZSB2b2lkIHNldExlZnQoTGF5b3V0VW5pdCB2YWx1ZSkgeyBtX2xlZnQgPSB2YWx1ZTsgfQot
Ci0gICAgTGF5b3V0VW5pdCBsb2dpY2FsVG9wKFdyaXRpbmdNb2RlKSBjb25zdDsKLSAgICBMYXlv
dXRVbml0IGxvZ2ljYWxCb3R0b20oV3JpdGluZ01vZGUpIGNvbnN0OwotICAgIExheW91dFVuaXQg
bG9naWNhbExlZnQoV3JpdGluZ01vZGUpIGNvbnN0OwotICAgIExheW91dFVuaXQgbG9naWNhbFJp
Z2h0KFdyaXRpbmdNb2RlKSBjb25zdDsKLQotICAgIExheW91dFVuaXQgYmVmb3JlKFdyaXRpbmdN
b2RlKSBjb25zdDsKLSAgICBMYXlvdXRVbml0IGFmdGVyKFdyaXRpbmdNb2RlKSBjb25zdDsKLSAg
ICBMYXlvdXRVbml0IHN0YXJ0KFdyaXRpbmdNb2RlLCBUZXh0RGlyZWN0aW9uKSBjb25zdDsKLSAg
ICBMYXlvdXRVbml0IGVuZChXcml0aW5nTW9kZSwgVGV4dERpcmVjdGlvbikgY29uc3Q7Ci0KLSAg
ICB2b2lkIHNldEJlZm9yZShXcml0aW5nTW9kZSwgTGF5b3V0VW5pdCk7Ci0gICAgdm9pZCBzZXRB
ZnRlcihXcml0aW5nTW9kZSwgTGF5b3V0VW5pdCk7Ci0gICAgdm9pZCBzZXRTdGFydChXcml0aW5n
TW9kZSwgVGV4dERpcmVjdGlvbiwgTGF5b3V0VW5pdCk7Ci0gICAgdm9pZCBzZXRFbmQoV3JpdGlu
Z01vZGUsIFRleHREaXJlY3Rpb24sIExheW91dFVuaXQpOwotCi0gICAgTGF5b3V0VW5pdCYgbXV0
YWJsZUxvZ2ljYWxMZWZ0KFdyaXRpbmdNb2RlKTsKLSAgICBMYXlvdXRVbml0JiBtdXRhYmxlTG9n
aWNhbFJpZ2h0KFdyaXRpbmdNb2RlKTsKLQotICAgIExheW91dFVuaXQmIG11dGFibGVCZWZvcmUo
V3JpdGluZ01vZGUpOwotICAgIExheW91dFVuaXQmIG11dGFibGVBZnRlcihXcml0aW5nTW9kZSk7
Ci0KLXByaXZhdGU6Ci0gICAgTGF5b3V0VW5pdCBtX3RvcDsKLSAgICBMYXlvdXRVbml0IG1fcmln
aHQ7Ci0gICAgTGF5b3V0VW5pdCBtX2JvdHRvbTsKLSAgICBMYXlvdXRVbml0IG1fbGVmdDsKLX07
Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIExheW91dEJveEV4dGVudF9o
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9MYXlvdXRSZWN0LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTGF5b3V0UmVjdC5o
CShyZXZpc2lvbiAxODQ2NTUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9M
YXlvdXRSZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDggKzMzLDggQEAKIAogI2luY2x1ZGUg
IkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKLSNpbmNsdWRlICJMYXlvdXRCb3hF
eHRlbnQuaCIKICNpbmNsdWRlICJMYXlvdXRQb2ludC5oIgorI2luY2x1ZGUgIkxlbmd0aEJveC5o
IgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Xcml0aW5nTW9kZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvV3JpdGluZ01vZGUuaAkocmV2aXNpb24gMTg0
NjU1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Xcml0aW5nTW9kZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC01NSw2ICs1NSwyMSBAQCBpbmxpbmUgYm9vbCBpc0ZsaXBwZWRCbG9ja3NX
cml0aW5nTW9kZShXCiAgICAgcmV0dXJuIHdyaXRpbmdNb2RlID09IFJpZ2h0VG9MZWZ0V3JpdGlu
Z01vZGUgfHwgd3JpdGluZ01vZGUgPT0gQm90dG9tVG9Ub3BXcml0aW5nTW9kZTsKIH0KIAorZW51
bSBMb2dpY2FsQm94U2lkZSB7CisgICAgQmVmb3JlU2lkZSwKKyAgICBFbmRTaWRlLAorICAgIEFm
dGVyU2lkZSwKKyAgICBTdGFydFNpZGUKK307CisKK2VudW0gUGh5c2ljYWxCb3hTaWRlIHsKKyAg
ICBOaWxTaWRlID0gLTEsCisgICAgVG9wU2lkZSwKKyAgICBSaWdodFNpZGUsCisgICAgQm90dG9t
U2lkZSwKKyAgICBMZWZ0U2lkZQorfTsKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5k
aWYgLy8gV3JpdGluZ01vZGVfaApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGlu
ZUZsb3dCb3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Jbmxp
bmVGbG93Qm94LmNwcAkocmV2aXNpb24gMTg0NjU1KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL0lubGluZUZsb3dCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04NDMsMTAgKzg0MywxMCBA
QCBpbmxpbmUgdm9pZCBJbmxpbmVGbG93Qm94OjphZGRCb3JkZXJPdXRzCiAKICAgICBMYXlvdXRC
b3hFeHRlbnQgYm9yZGVyT3V0c2V0cyA9IGxpbmVTdHlsZS5ib3JkZXJJbWFnZU91dHNldHMoKTsK
IAotICAgIExheW91dFVuaXQgYm9yZGVyT3V0c2V0TG9naWNhbFRvcCA9IGJvcmRlck91dHNldHMu
bG9naWNhbFRvcChsaW5lU3R5bGUud3JpdGluZ01vZGUoKSk7Ci0gICAgTGF5b3V0VW5pdCBib3Jk
ZXJPdXRzZXRMb2dpY2FsQm90dG9tID0gYm9yZGVyT3V0c2V0cy5sb2dpY2FsQm90dG9tKGxpbmVT
dHlsZS53cml0aW5nTW9kZSgpKTsKLSAgICBMYXlvdXRVbml0IGJvcmRlck91dHNldExvZ2ljYWxM
ZWZ0ID0gYm9yZGVyT3V0c2V0cy5sb2dpY2FsTGVmdChsaW5lU3R5bGUud3JpdGluZ01vZGUoKSk7
Ci0gICAgTGF5b3V0VW5pdCBib3JkZXJPdXRzZXRMb2dpY2FsUmlnaHQgPSBib3JkZXJPdXRzZXRz
LmxvZ2ljYWxSaWdodChsaW5lU3R5bGUud3JpdGluZ01vZGUoKSk7CisgICAgTGF5b3V0VW5pdCBi
b3JkZXJPdXRzZXRMb2dpY2FsVG9wID0gYm9yZGVyT3V0c2V0cy5iZWZvcmUobGluZVN0eWxlLndy
aXRpbmdNb2RlKCkpOworICAgIExheW91dFVuaXQgYm9yZGVyT3V0c2V0TG9naWNhbEJvdHRvbSA9
IGJvcmRlck91dHNldHMuYWZ0ZXIobGluZVN0eWxlLndyaXRpbmdNb2RlKCkpOworICAgIExheW91
dFVuaXQgYm9yZGVyT3V0c2V0TG9naWNhbExlZnQgPSBib3JkZXJPdXRzZXRzLnN0YXJ0KGxpbmVT
dHlsZS53cml0aW5nTW9kZSgpKTsKKyAgICBMYXlvdXRVbml0IGJvcmRlck91dHNldExvZ2ljYWxS
aWdodCA9IGJvcmRlck91dHNldHMuZW5kKGxpbmVTdHlsZS53cml0aW5nTW9kZSgpKTsKIAogICAg
IC8vIFNpbWlsYXIgdG8gaG93IGdseXBoIG92ZXJmbG93IHdvcmtzLCBpZiBvdXIgbGluZXMgYXJl
IGZsaXBwZWQsIHRoZW4gaXQncyBhY3R1YWxseSB0aGUgb3Bwb3NpdGUgYm9yZGVyIHRoYXQgYXBw
bGllcywgc2luY2UKICAgICAvLyB0aGUgbGluZSBpcyAidXBzaWRlIGRvd24iIGluIHRlcm1zIG9m
IGJsb2NrIGNvb3JkaW5hdGVzLiB2ZXJ0aWNhbC1ybCBhbmQgaG9yaXpvbnRhbC1idCBhcmUgdGhl
IGZsaXBwZWQgbGluZSBtb2Rlcy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCb3guaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94
LmgJKHJldmlzaW9uIDE4NDY1NSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
b3guaAkod29ya2luZyBjb3B5KQpAQCAtMjYyLDggKzI2Miw4IEBAIHB1YmxpYzoKICAgICB2b2lk
IHNldE1hcmdpbkxlZnQoTGF5b3V0VW5pdCBtYXJnaW4pIHsgbV9tYXJnaW5Cb3guc2V0TGVmdCht
YXJnaW4pOyB9CiAgICAgdm9pZCBzZXRNYXJnaW5SaWdodChMYXlvdXRVbml0IG1hcmdpbikgeyBt
X21hcmdpbkJveC5zZXRSaWdodChtYXJnaW4pOyB9CiAKLSAgICBMYXlvdXRVbml0IG1hcmdpbkxv
Z2ljYWxMZWZ0KCkgY29uc3QgeyByZXR1cm4gbV9tYXJnaW5Cb3gubG9naWNhbExlZnQoc3R5bGUo
KS53cml0aW5nTW9kZSgpKTsgfQotICAgIExheW91dFVuaXQgbWFyZ2luTG9naWNhbFJpZ2h0KCkg
Y29uc3QgeyByZXR1cm4gbV9tYXJnaW5Cb3gubG9naWNhbFJpZ2h0KHN0eWxlKCkud3JpdGluZ01v
ZGUoKSk7IH0KKyAgICBMYXlvdXRVbml0IG1hcmdpbkxvZ2ljYWxMZWZ0KCkgY29uc3QgeyByZXR1
cm4gbV9tYXJnaW5Cb3guc3RhcnQoc3R5bGUoKS53cml0aW5nTW9kZSgpKTsgfQorICAgIExheW91
dFVuaXQgbWFyZ2luTG9naWNhbFJpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9tYXJnaW5Cb3guZW5k
KHN0eWxlKCkud3JpdGluZ01vZGUoKSk7IH0KICAgICAKICAgICB2aXJ0dWFsIExheW91dFVuaXQg
bWFyZ2luQmVmb3JlKGNvbnN0IFJlbmRlclN0eWxlKiBvdmVycmlkZVN0eWxlID0gbnVsbHB0cikg
Y29uc3Qgb3ZlcnJpZGUgZmluYWwgeyByZXR1cm4gbV9tYXJnaW5Cb3guYmVmb3JlKChvdmVycmlk
ZVN0eWxlID8gb3ZlcnJpZGVTdHlsZSA6ICZzdHlsZSgpKS0+d3JpdGluZ01vZGUoKSk7IH0KICAg
ICB2aXJ0dWFsIExheW91dFVuaXQgbWFyZ2luQWZ0ZXIoY29uc3QgUmVuZGVyU3R5bGUqIG92ZXJy
aWRlU3R5bGUgPSBudWxscHRyKSBjb25zdCBvdmVycmlkZSBmaW5hbCB7IHJldHVybiBtX21hcmdp
bkJveC5hZnRlcigob3ZlcnJpZGVTdHlsZSA/IG92ZXJyaWRlU3R5bGUgOiAmc3R5bGUoKSktPndy
aXRpbmdNb2RlKCkpOyB9CkBAIC0yNzcsMTcgKzI3NywxNyBAQCBwdWJsaWM6CiAgICAgICAgIGNv
bnN0IFJlbmRlclN0eWxlKiBzdHlsZVRvVXNlID0gb3ZlcnJpZGVTdHlsZSA/IG92ZXJyaWRlU3R5
bGUgOiAmc3R5bGUoKTsKICAgICAgICAgcmV0dXJuIG1fbWFyZ2luQm94LmVuZChzdHlsZVRvVXNl
LT53cml0aW5nTW9kZSgpLCBzdHlsZVRvVXNlLT5kaXJlY3Rpb24oKSk7CiAgICAgfQotICAgIHZv
aWQgc2V0TWFyZ2luQmVmb3JlKExheW91dFVuaXQgdmFsdWUsIGNvbnN0IFJlbmRlclN0eWxlKiBv
dmVycmlkZVN0eWxlID0gbnVsbHB0cikgeyBtX21hcmdpbkJveC5zZXRCZWZvcmUoKG92ZXJyaWRl
U3R5bGUgPyBvdmVycmlkZVN0eWxlIDogJnN0eWxlKCkpLT53cml0aW5nTW9kZSgpLCB2YWx1ZSk7
IH0KLSAgICB2b2lkIHNldE1hcmdpbkFmdGVyKExheW91dFVuaXQgdmFsdWUsIGNvbnN0IFJlbmRl
clN0eWxlKiBvdmVycmlkZVN0eWxlID0gbnVsbHB0cikgeyBtX21hcmdpbkJveC5zZXRBZnRlcigo
b3ZlcnJpZGVTdHlsZSA/IG92ZXJyaWRlU3R5bGUgOiAmc3R5bGUoKSktPndyaXRpbmdNb2RlKCks
IHZhbHVlKTsgfQorICAgIHZvaWQgc2V0TWFyZ2luQmVmb3JlKExheW91dFVuaXQgdmFsdWUsIGNv
bnN0IFJlbmRlclN0eWxlKiBvdmVycmlkZVN0eWxlID0gbnVsbHB0cikgeyBtX21hcmdpbkJveC5z
ZXRCZWZvcmUodmFsdWUsIChvdmVycmlkZVN0eWxlID8gb3ZlcnJpZGVTdHlsZSA6ICZzdHlsZSgp
KS0+d3JpdGluZ01vZGUoKSk7IH0KKyAgICB2b2lkIHNldE1hcmdpbkFmdGVyKExheW91dFVuaXQg
dmFsdWUsIGNvbnN0IFJlbmRlclN0eWxlKiBvdmVycmlkZVN0eWxlID0gbnVsbHB0cikgeyBtX21h
cmdpbkJveC5zZXRBZnRlcih2YWx1ZSwgKG92ZXJyaWRlU3R5bGUgPyBvdmVycmlkZVN0eWxlIDog
JnN0eWxlKCkpLT53cml0aW5nTW9kZSgpKTsgfQogICAgIHZvaWQgc2V0TWFyZ2luU3RhcnQoTGF5
b3V0VW5pdCB2YWx1ZSwgY29uc3QgUmVuZGVyU3R5bGUqIG92ZXJyaWRlU3R5bGUgPSBudWxscHRy
KQogICAgIHsKICAgICAgICAgY29uc3QgUmVuZGVyU3R5bGUqIHN0eWxlVG9Vc2UgPSBvdmVycmlk
ZVN0eWxlID8gb3ZlcnJpZGVTdHlsZSA6ICZzdHlsZSgpOwotICAgICAgICBtX21hcmdpbkJveC5z
ZXRTdGFydChzdHlsZVRvVXNlLT53cml0aW5nTW9kZSgpLCBzdHlsZVRvVXNlLT5kaXJlY3Rpb24o
KSwgdmFsdWUpOworICAgICAgICBtX21hcmdpbkJveC5zZXRTdGFydCh2YWx1ZSwgc3R5bGVUb1Vz
ZS0+d3JpdGluZ01vZGUoKSwgc3R5bGVUb1VzZS0+ZGlyZWN0aW9uKCkpOwogICAgIH0KICAgICB2
b2lkIHNldE1hcmdpbkVuZChMYXlvdXRVbml0IHZhbHVlLCBjb25zdCBSZW5kZXJTdHlsZSogb3Zl
cnJpZGVTdHlsZSA9IG51bGxwdHIpCiAgICAgewogICAgICAgICBjb25zdCBSZW5kZXJTdHlsZSog
c3R5bGVUb1VzZSA9IG92ZXJyaWRlU3R5bGUgPyBvdmVycmlkZVN0eWxlIDogJnN0eWxlKCk7Ci0g
ICAgICAgIG1fbWFyZ2luQm94LnNldEVuZChzdHlsZVRvVXNlLT53cml0aW5nTW9kZSgpLCBzdHls
ZVRvVXNlLT5kaXJlY3Rpb24oKSwgdmFsdWUpOworICAgICAgICBtX21hcmdpbkJveC5zZXRFbmQo
dmFsdWUsIHN0eWxlVG9Vc2UtPndyaXRpbmdNb2RlKCksIHN0eWxlVG9Vc2UtPmRpcmVjdGlvbigp
KTsKICAgICB9CiAKICAgICAvLyBUaGUgZm9sbG93aW5nIGZpdmUgZnVuY3Rpb25zIGFyZSB1c2Vk
IHRvIGltcGxlbWVudCBjb2xsYXBzaW5nIG1hcmdpbnMuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAJKHJldmlzaW9uIDE4NDY1
NSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTkyMSwxMSArOTIxLDEzIEBAIHN0YXRpYyBpbmxpbmUgTGF5b3V0
U2l6ZSByZXNvbHZlQWdhaW5zdEkKICAgICByZXR1cm4gTGF5b3V0U2l6ZShzaXplLndpZHRoKCks
IHNvbHV0aW9uSGVpZ2h0KTsKIH0KIAotTGF5b3V0U2l6ZSBSZW5kZXJCb3hNb2RlbE9iamVjdDo6
Y2FsY3VsYXRlSW1hZ2VJbnRyaW5zaWNEaW1lbnNpb25zKFN0eWxlSW1hZ2UqIGltYWdlLCBjb25z
dCBMYXlvdXRTaXplJiBwb3NpdGlvbmluZ0FyZWFTaXplLCBTY2FsZUJ5RWZmZWN0aXZlWm9vbU9y
Tm90IHNob3VsZFNjYWxlT3JOb3QpIGNvbnN0Citib29sIFJlbmRlckJveE1vZGVsT2JqZWN0Ojpj
YWxjdWxhdGVJbWFnZUludHJpbnNpY0RpbWVuc2lvbnMoU3R5bGVJbWFnZSogaW1hZ2UsIGNvbnN0
IExheW91dFNpemUmIHBvc2l0aW9uaW5nQXJlYVNpemUsIFNjYWxlQnlFZmZlY3RpdmVab29tT3JO
b3Qgc2hvdWxkU2NhbGVPck5vdCwgTGF5b3V0U2l6ZSYgaW1hZ2VTaXplKSBjb25zdAogewogICAg
IC8vIEEgZ2VuZXJhdGVkIGltYWdlIHdpdGhvdXQgYSBmaXhlZCBzaXplLCB3aWxsIGFsd2F5cyBy
ZXR1cm4gdGhlIGNvbnRhaW5lciBzaXplIGFzIGludHJpbnNpYyBzaXplLgotICAgIGlmIChpbWFn
ZS0+aXNHZW5lcmF0ZWRJbWFnZSgpICYmIGltYWdlLT51c2VzSW1hZ2VDb250YWluZXJTaXplKCkp
Ci0gICAgICAgIHJldHVybiBMYXlvdXRTaXplKHBvc2l0aW9uaW5nQXJlYVNpemUud2lkdGgoKSwg
cG9zaXRpb25pbmdBcmVhU2l6ZS5oZWlnaHQoKSk7CisgICAgaWYgKGltYWdlLT5pc0dlbmVyYXRl
ZEltYWdlKCkgJiYgaW1hZ2UtPnVzZXNJbWFnZUNvbnRhaW5lclNpemUoKSkgeworICAgICAgICBp
bWFnZVNpemUgPSBMYXlvdXRTaXplKHBvc2l0aW9uaW5nQXJlYVNpemUud2lkdGgoKSwgcG9zaXRp
b25pbmdBcmVhU2l6ZS5oZWlnaHQoKSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KIAog
ICAgIExlbmd0aCBpbnRyaW5zaWNXaWR0aDsKICAgICBMZW5ndGggaW50cmluc2ljSGVpZ2h0OwpA
QCAtOTM1LDMxICs5MzcsMzYgQEAgTGF5b3V0U2l6ZSBSZW5kZXJCb3hNb2RlbE9iamVjdDo6Y2Fs
Y3VsYQogICAgIEFTU0VSVCghaW50cmluc2ljV2lkdGguaXNQZXJjZW50T3JDYWxjdWxhdGVkKCkp
OwogICAgIEFTU0VSVCghaW50cmluc2ljSGVpZ2h0LmlzUGVyY2VudE9yQ2FsY3VsYXRlZCgpKTsK
IAotICAgIExheW91dFNpemUgcmVzb2x2ZWRTaXplKGludHJpbnNpY1dpZHRoLnZhbHVlKCksIGlu
dHJpbnNpY0hlaWdodC52YWx1ZSgpKTsKLSAgICBMYXlvdXRTaXplIG1pbmltdW1TaXplKHJlc29s
dmVkU2l6ZS53aWR0aCgpID4gMCA/IDEgOiAwLCByZXNvbHZlZFNpemUuaGVpZ2h0KCkgPiAwID8g
MSA6IDApOworICAgIGltYWdlU2l6ZSA9IExheW91dFNpemUoaW50cmluc2ljV2lkdGgudmFsdWUo
KSwgaW50cmluc2ljSGVpZ2h0LnZhbHVlKCkpOworICAgIExheW91dFNpemUgbWluaW11bVNpemUo
aW1hZ2VTaXplLndpZHRoKCkgPiAwID8gMSA6IDAsIGltYWdlU2l6ZS5oZWlnaHQoKSA+IDAgPyAx
IDogMCk7CiAgICAgaWYgKHNob3VsZFNjYWxlT3JOb3QgPT0gU2NhbGVCeUVmZmVjdGl2ZVpvb20p
Ci0gICAgICAgIHJlc29sdmVkU2l6ZS5zY2FsZShzdHlsZSgpLmVmZmVjdGl2ZVpvb20oKSk7Ci0g
ICAgcmVzb2x2ZWRTaXplLmNsYW1wVG9NaW5pbXVtU2l6ZShtaW5pbXVtU2l6ZSk7CisgICAgICAg
IGltYWdlU2l6ZS5zY2FsZShzdHlsZSgpLmVmZmVjdGl2ZVpvb20oKSk7CisgICAgaW1hZ2VTaXpl
LmNsYW1wVG9NaW5pbXVtU2l6ZShtaW5pbXVtU2l6ZSk7CiAKLSAgICBpZiAoIXJlc29sdmVkU2l6
ZS5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiByZXNvbHZlZFNpemU7CisgICAgaWYgKCFpbWFn
ZVNpemUuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIC8vIElmIHRoZSBp
bWFnZSBoYXMgb25lIG9mIGVpdGhlciBhbiBpbnRyaW5zaWMgd2lkdGggb3IgYW4gaW50cmluc2lj
IGhlaWdodDoKICAgICAvLyAqIGFuZCBhbiBpbnRyaW5zaWMgYXNwZWN0IHJhdGlvLCB0aGVuIHRo
ZSBtaXNzaW5nIGRpbWVuc2lvbiBpcyBjYWxjdWxhdGVkIGZyb20gdGhlIGdpdmVuIGRpbWVuc2lv
biBhbmQgdGhlIHJhdGlvLgogICAgIC8vICogYW5kIG5vIGludHJpbnNpYyBhc3BlY3QgcmF0aW8s
IHRoZW4gdGhlIG1pc3NpbmcgZGltZW5zaW9uIGlzIGFzc3VtZWQgdG8gYmUgdGhlIHNpemUgb2Yg
dGhlIHJlY3RhbmdsZSB0aGF0CiAgICAgLy8gICBlc3RhYmxpc2hlcyB0aGUgY29vcmRpbmF0ZSBz
eXN0ZW0gZm9yIHRoZSAnYmFja2dyb3VuZC1wb3NpdGlvbicgcHJvcGVydHkuCi0gICAgaWYgKHJl
c29sdmVkU2l6ZS53aWR0aCgpID4gMCB8fCByZXNvbHZlZFNpemUuaGVpZ2h0KCkgPiAwKQotICAg
ICAgICByZXR1cm4gcmVzb2x2ZUFnYWluc3RJbnRyaW5zaWNXaWR0aE9ySGVpZ2h0QW5kUmF0aW8o
cG9zaXRpb25pbmdBcmVhU2l6ZSwgaW50cmluc2ljUmF0aW8sIHJlc29sdmVkU2l6ZS53aWR0aCgp
LCByZXNvbHZlZFNpemUuaGVpZ2h0KCkpOworICAgIGlmIChpbWFnZVNpemUud2lkdGgoKSA+IDAg
fHwgaW1hZ2VTaXplLmhlaWdodCgpID4gMCkgeworICAgICAgICBpbWFnZVNpemUgPSByZXNvbHZl
QWdhaW5zdEludHJpbnNpY1dpZHRoT3JIZWlnaHRBbmRSYXRpbyhwb3NpdGlvbmluZ0FyZWFTaXpl
LCBpbnRyaW5zaWNSYXRpbywgaW1hZ2VTaXplLndpZHRoKCksIGltYWdlU2l6ZS5oZWlnaHQoKSk7
CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KIAogICAgIC8vIElmIHRoZSBpbWFnZSBoYXMg
bm8gaW50cmluc2ljIGRpbWVuc2lvbnMgYW5kIGhhcyBhbiBpbnRyaW5zaWMgcmF0aW8gdGhlIGRp
bWVuc2lvbnMgbXVzdCBiZSBhc3N1bWVkIHRvIGJlIHRoZQogICAgIC8vIGxhcmdlc3QgZGltZW5z
aW9ucyBhdCB0aGF0IHJhdGlvIHN1Y2ggdGhhdCBuZWl0aGVyIGRpbWVuc2lvbiBleGNlZWRzIHRo
ZSBkaW1lbnNpb25zIG9mIHRoZSByZWN0YW5nbGUgdGhhdAogICAgIC8vIGVzdGFibGlzaGVzIHRo
ZSBjb29yZGluYXRlIHN5c3RlbSBmb3IgdGhlICdiYWNrZ3JvdW5kLXBvc2l0aW9uJyBwcm9wZXJ0
eS4KLSAgICBpZiAoIWludHJpbnNpY1JhdGlvLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIHJl
c29sdmVBZ2FpbnN0SW50cmluc2ljUmF0aW8ocG9zaXRpb25pbmdBcmVhU2l6ZSwgaW50cmluc2lj
UmF0aW8pOworICAgIGlmICghaW50cmluc2ljUmF0aW8uaXNFbXB0eSgpKSB7CisgICAgICAgIGlt
YWdlU2l6ZSA9IHJlc29sdmVBZ2FpbnN0SW50cmluc2ljUmF0aW8ocG9zaXRpb25pbmdBcmVhU2l6
ZSwgaW50cmluc2ljUmF0aW8pOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQogCiAgICAg
Ly8gSWYgdGhlIGltYWdlIGhhcyBubyBpbnRyaW5zaWMgcmF0aW8gZWl0aGVyLCB0aGVuIHRoZSBk
aW1lbnNpb25zIG11c3QgYmUgYXNzdW1lZCB0byBiZSB0aGUgcmVjdGFuZ2xlIHRoYXQKICAgICAv
LyBlc3RhYmxpc2hlcyB0aGUgY29vcmRpbmF0ZSBzeXN0ZW0gZm9yIHRoZSAnYmFja2dyb3VuZC1w
b3NpdGlvbicgcHJvcGVydHkuCi0gICAgcmV0dXJuIHBvc2l0aW9uaW5nQXJlYVNpemU7CisgICAg
aW1hZ2VTaXplID0gcG9zaXRpb25pbmdBcmVhU2l6ZTsKKyAgICByZXR1cm4gZmFsc2U7CiB9CiAK
IExheW91dFNpemUgUmVuZGVyQm94TW9kZWxPYmplY3Q6OmNhbGN1bGF0ZUZpbGxUaWxlU2l6ZShj
b25zdCBGaWxsTGF5ZXImIGZpbGxMYXllciwgY29uc3QgTGF5b3V0U2l6ZSYgcG9zaXRpb25pbmdB
cmVhU2l6ZSkgY29uc3QKQEAgLTk2OSw3ICs5NzYsNyBAQCBMYXlvdXRTaXplIFJlbmRlckJveE1v
ZGVsT2JqZWN0OjpjYWxjdWxhCiAKICAgICBMYXlvdXRTaXplIGltYWdlSW50cmluc2ljU2l6ZTsK
ICAgICBpZiAoaW1hZ2UpIHsKLSAgICAgICAgaW1hZ2VJbnRyaW5zaWNTaXplID0gY2FsY3VsYXRl
SW1hZ2VJbnRyaW5zaWNEaW1lbnNpb25zKGltYWdlLCBwb3NpdGlvbmluZ0FyZWFTaXplLCBTY2Fs
ZUJ5RWZmZWN0aXZlWm9vbSk7CisgICAgICAgIGNhbGN1bGF0ZUltYWdlSW50cmluc2ljRGltZW5z
aW9ucyhpbWFnZSwgcG9zaXRpb25pbmdBcmVhU2l6ZSwgU2NhbGVCeUVmZmVjdGl2ZVpvb20sIGlt
YWdlSW50cmluc2ljU2l6ZSk7CiAgICAgICAgIGltYWdlSW50cmluc2ljU2l6ZS5zY2FsZSgxIC8g
aW1hZ2UtPmltYWdlU2NhbGVGYWN0b3IoKSwgMSAvIGltYWdlLT5pbWFnZVNjYWxlRmFjdG9yKCkp
OwogICAgIH0gZWxzZQogICAgICAgICBpbWFnZUludHJpbnNpY1NpemUgPSBwb3NpdGlvbmluZ0Fy
ZWFTaXplOwpAQCAtMTIzOCwxNSArMTI0NSw2IEBAIHZvaWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6
OmdldEdlb21ldHJ5Rm8KICAgICBkZXN0UmVjdCA9IGdlb21ldHJ5LmRlc3RSZWN0KCk7CiB9CiAK
LXN0YXRpYyBMYXlvdXRVbml0IGNvbXB1dGVCb3JkZXJJbWFnZVNpZGUoTGVuZ3RoIGJvcmRlclNs
aWNlLCBMYXlvdXRVbml0IGJvcmRlclNpZGUsIExheW91dFVuaXQgaW1hZ2VTaWRlLCBMYXlvdXRV
bml0IGJveEV4dGVudCkKLXsKLSAgICBpZiAoYm9yZGVyU2xpY2UuaXNSZWxhdGl2ZSgpKQotICAg
ICAgICByZXR1cm4gYm9yZGVyU2xpY2UudmFsdWUoKSAqIGJvcmRlclNpZGU7Ci0gICAgaWYgKGJv
cmRlclNsaWNlLmlzQXV0bygpKQotICAgICAgICByZXR1cm4gaW1hZ2VTaWRlOwotICAgIHJldHVy
biB2YWx1ZUZvckxlbmd0aChib3JkZXJTbGljZSwgYm94RXh0ZW50KTsKLX0KLQogYm9vbCBSZW5k
ZXJCb3hNb2RlbE9iamVjdDo6cGFpbnROaW5lUGllY2VJbWFnZShHcmFwaGljc0NvbnRleHQqIGdy
YXBoaWNzQ29udGV4dCwgY29uc3QgTGF5b3V0UmVjdCYgcmVjdCwgY29uc3QgUmVuZGVyU3R5bGUm
IHN0eWxlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBOaW5lUGllY2VJbWFnZSYgbmluZVBpZWNlSW1hZ2UsIENvbXBvc2l0ZU9wZXJhdG9yIG9w
KQogewpAQCAtMTI2MywxNTIgKzEyNjEsMTggQEAgYm9vbCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6
cGFpbnROaW5lUGllYwogICAgIC8vIEZJWE1FOiBib3JkZXItaW1hZ2UgaXMgYnJva2VuIHdpdGgg
ZnVsbCBwYWdlIHpvb21pbmcgd2hlbiB0aWxpbmcgaGFzIHRvIGhhcHBlbiwgc2luY2UgdGhlIHRp
bGluZyBmdW5jdGlvbgogICAgIC8vIGRvZXNuJ3QgaGF2ZSBhbnkgdW5kZXJzdGFuZGluZyBvZiB0
aGUgem9vbSB0aGF0IGlzIGluIGVmZmVjdCBvbiB0aGUgdGlsZS4KICAgICBmbG9hdCBkZXZpY2VT
Y2FsZUZhY3RvciA9IGRvY3VtZW50KCkuZGV2aWNlU2NhbGVGYWN0b3IoKTsKKwogICAgIExheW91
dFJlY3QgcmVjdFdpdGhPdXRzZXRzID0gcmVjdDsKICAgICByZWN0V2l0aE91dHNldHMuZXhwYW5k
KHN0eWxlLmltYWdlT3V0c2V0cyhuaW5lUGllY2VJbWFnZSkpOwotICAgIExheW91dFJlY3QgYm9y
ZGVySW1hZ2VSZWN0ID0gTGF5b3V0UmVjdChzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKHJlY3RXaXRo
T3V0c2V0cywgZGV2aWNlU2NhbGVGYWN0b3IpKTsKKyAgICBMYXlvdXRSZWN0IGRlc3RpbmF0aW9u
ID0gTGF5b3V0UmVjdChzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKHJlY3RXaXRoT3V0c2V0cywgZGV2
aWNlU2NhbGVGYWN0b3IpKTsKIAotICAgIExheW91dFNpemUgaW1hZ2VTaXplID0gY2FsY3VsYXRl
SW1hZ2VJbnRyaW5zaWNEaW1lbnNpb25zKHN0eWxlSW1hZ2UsIGJvcmRlckltYWdlUmVjdC5zaXpl
KCksIERvTm90U2NhbGVCeUVmZmVjdGl2ZVpvb20pOworICAgIExheW91dFNpemUgc291cmNlOwor
ICAgIGJvb2wgaW50cmluc2ljU291cmNlID0gY2FsY3VsYXRlSW1hZ2VJbnRyaW5zaWNEaW1lbnNp
b25zKHN0eWxlSW1hZ2UsIGRlc3RpbmF0aW9uLnNpemUoKSwgRG9Ob3RTY2FsZUJ5RWZmZWN0aXZl
Wm9vbSwgc291cmNlKTsKIAogICAgIC8vIElmIGJvdGggdmFsdWVzIGFyZSDigJhhdXRv4oCZIHRo
ZW4gdGhlIGludHJpbnNpYyB3aWR0aCBhbmQvb3IgaGVpZ2h0IG9mIHRoZSBpbWFnZSBzaG91bGQg
YmUgdXNlZCwgaWYgYW55LgotICAgIHN0eWxlSW1hZ2UtPnNldENvbnRhaW5lclNpemVGb3JSZW5k
ZXJlcih0aGlzLCBpbWFnZVNpemUsIHN0eWxlLmVmZmVjdGl2ZVpvb20oKSk7Ci0KLSAgICBMYXlv
dXRVbml0IGltYWdlV2lkdGggPSBpbWFnZVNpemUud2lkdGgoKTsKLSAgICBMYXlvdXRVbml0IGlt
YWdlSGVpZ2h0ID0gaW1hZ2VTaXplLmhlaWdodCgpOwotCi0gICAgZmxvYXQgaW1hZ2VTY2FsZUZh
Y3RvciA9IHN0eWxlSW1hZ2UtPmltYWdlU2NhbGVGYWN0b3IoKTsKLSAgICBMYXlvdXRVbml0IHRv
cFNsaWNlID0gc3RkOjptaW48TGF5b3V0VW5pdD4oaW1hZ2VIZWlnaHQsIHZhbHVlRm9yTGVuZ3Ro
KG5pbmVQaWVjZUltYWdlLmltYWdlU2xpY2VzKCkudG9wKCksIGltYWdlSGVpZ2h0KSkgKiBpbWFn
ZVNjYWxlRmFjdG9yOwotICAgIExheW91dFVuaXQgcmlnaHRTbGljZSA9IHN0ZDo6bWluPExheW91
dFVuaXQ+KGltYWdlV2lkdGgsIHZhbHVlRm9yTGVuZ3RoKG5pbmVQaWVjZUltYWdlLmltYWdlU2xp
Y2VzKCkucmlnaHQoKSwgaW1hZ2VXaWR0aCkpICogaW1hZ2VTY2FsZUZhY3RvcjsKLSAgICBMYXlv
dXRVbml0IGJvdHRvbVNsaWNlID0gc3RkOjptaW48TGF5b3V0VW5pdD4oaW1hZ2VIZWlnaHQsIHZh
bHVlRm9yTGVuZ3RoKG5pbmVQaWVjZUltYWdlLmltYWdlU2xpY2VzKCkuYm90dG9tKCksIGltYWdl
SGVpZ2h0KSkgKiBpbWFnZVNjYWxlRmFjdG9yOwotICAgIExheW91dFVuaXQgbGVmdFNsaWNlID0g
c3RkOjptaW48TGF5b3V0VW5pdD4oaW1hZ2VXaWR0aCwgdmFsdWVGb3JMZW5ndGgobmluZVBpZWNl
SW1hZ2UuaW1hZ2VTbGljZXMoKS5sZWZ0KCksIGltYWdlV2lkdGgpKSAqIGltYWdlU2NhbGVGYWN0
b3I7Ci0KLSAgICBFTmluZVBpZWNlSW1hZ2VSdWxlIGhSdWxlID0gbmluZVBpZWNlSW1hZ2UuaG9y
aXpvbnRhbFJ1bGUoKTsKLSAgICBFTmluZVBpZWNlSW1hZ2VSdWxlIHZSdWxlID0gbmluZVBpZWNl
SW1hZ2UudmVydGljYWxSdWxlKCk7Ci0KLSAgICBMYXlvdXRVbml0IHRvcFdpZHRoID0gY29tcHV0
ZUJvcmRlckltYWdlU2lkZShuaW5lUGllY2VJbWFnZS5ib3JkZXJTbGljZXMoKS50b3AoKSwgc3R5
bGUuYm9yZGVyVG9wV2lkdGgoKSwgdG9wU2xpY2UsIGJvcmRlckltYWdlUmVjdC5oZWlnaHQoKSk7
Ci0gICAgTGF5b3V0VW5pdCByaWdodFdpZHRoID0gY29tcHV0ZUJvcmRlckltYWdlU2lkZShuaW5l
UGllY2VJbWFnZS5ib3JkZXJTbGljZXMoKS5yaWdodCgpLCBzdHlsZS5ib3JkZXJSaWdodFdpZHRo
KCksIHJpZ2h0U2xpY2UsIGJvcmRlckltYWdlUmVjdC53aWR0aCgpKTsKLSAgICBMYXlvdXRVbml0
IGJvdHRvbVdpZHRoID0gY29tcHV0ZUJvcmRlckltYWdlU2lkZShuaW5lUGllY2VJbWFnZS5ib3Jk
ZXJTbGljZXMoKS5ib3R0b20oKSwgc3R5bGUuYm9yZGVyQm90dG9tV2lkdGgoKSwgYm90dG9tU2xp
Y2UsIGJvcmRlckltYWdlUmVjdC5oZWlnaHQoKSk7Ci0gICAgTGF5b3V0VW5pdCBsZWZ0V2lkdGgg
PSBjb21wdXRlQm9yZGVySW1hZ2VTaWRlKG5pbmVQaWVjZUltYWdlLmJvcmRlclNsaWNlcygpLmxl
ZnQoKSwgc3R5bGUuYm9yZGVyTGVmdFdpZHRoKCksIGxlZnRTbGljZSwgYm9yZGVySW1hZ2VSZWN0
LndpZHRoKCkpOwotCi0gICAgLy8gUmVkdWNlIHRoZSB3aWR0aHMgaWYgdGhleSdyZSB0b28gbGFy
Z2UuCi0gICAgLy8gVGhlIHNwZWMgc2F5czogR2l2ZW4gTHdpZHRoIGFzIHRoZSB3aWR0aCBvZiB0
aGUgYm9yZGVyIGltYWdlIGFyZWEsIExoZWlnaHQgYXMgaXRzIGhlaWdodCwgYW5kIFdzaWRlIGFz
IHRoZSBib3JkZXIgaW1hZ2Ugd2lkdGgKLSAgICAvLyBvZmZzZXQgZm9yIHRoZSBzaWRlLCBsZXQg
ZiA9IG1pbihMd2lkdGgvKFdsZWZ0K1dyaWdodCksIExoZWlnaHQvKFd0b3ArV2JvdHRvbSkpLiBJ
ZiBmIDwgMSwgdGhlbiBhbGwgVyBhcmUgcmVkdWNlZCBieQotICAgIC8vIG11bHRpcGx5aW5nIHRo
ZW0gYnkgZi4KLSAgICBMYXlvdXRVbml0IGJvcmRlclNpZGVXaWR0aCA9IHN0ZDo6bWF4PExheW91
dFVuaXQ+KDEgLyBkZXZpY2VTY2FsZUZhY3RvciwgbGVmdFdpZHRoICsgcmlnaHRXaWR0aCk7Ci0g
ICAgTGF5b3V0VW5pdCBib3JkZXJTaWRlSGVpZ2h0ID0gc3RkOjptYXg8TGF5b3V0VW5pdD4oMSAv
IGRldmljZVNjYWxlRmFjdG9yLCB0b3BXaWR0aCArIGJvdHRvbVdpZHRoKTsKLSAgICBmbG9hdCBi
b3JkZXJTaWRlU2NhbGVGYWN0b3IgPSBzdGQ6Om1pbigoZmxvYXQpYm9yZGVySW1hZ2VSZWN0Lndp
ZHRoKCkgLyBib3JkZXJTaWRlV2lkdGgsIChmbG9hdClib3JkZXJJbWFnZVJlY3QuaGVpZ2h0KCkg
LyBib3JkZXJTaWRlSGVpZ2h0KTsKLSAgICBpZiAoYm9yZGVyU2lkZVNjYWxlRmFjdG9yIDwgMSkg
ewotICAgICAgICB0b3BXaWR0aCAqPSBib3JkZXJTaWRlU2NhbGVGYWN0b3I7Ci0gICAgICAgIHJp
Z2h0V2lkdGggKj0gYm9yZGVyU2lkZVNjYWxlRmFjdG9yOwotICAgICAgICBib3R0b21XaWR0aCAq
PSBib3JkZXJTaWRlU2NhbGVGYWN0b3I7Ci0gICAgICAgIGxlZnRXaWR0aCAqPSBib3JkZXJTaWRl
U2NhbGVGYWN0b3I7Ci0gICAgfQotCi0gICAgYm9vbCBkcmF3TGVmdCA9IGxlZnRTbGljZSA+IDAg
JiYgbGVmdFdpZHRoID4gMDsKLSAgICBib29sIGRyYXdUb3AgPSB0b3BTbGljZSA+IDAgJiYgdG9w
V2lkdGggPiAwOwotICAgIGJvb2wgZHJhd1JpZ2h0ID0gcmlnaHRTbGljZSA+IDAgJiYgcmlnaHRX
aWR0aCA+IDA7Ci0gICAgYm9vbCBkcmF3Qm90dG9tID0gYm90dG9tU2xpY2UgPiAwICYmIGJvdHRv
bVdpZHRoID4gMDsKLSAgICBib29sIGRyYXdNaWRkbGUgPSBuaW5lUGllY2VJbWFnZS5maWxsKCkg
JiYgKGltYWdlV2lkdGggLSBsZWZ0U2xpY2UgLSByaWdodFNsaWNlKSA+IDAgJiYgKGJvcmRlcklt
YWdlUmVjdC53aWR0aCgpIC0gbGVmdFdpZHRoIC0gcmlnaHRXaWR0aCkgPiAwCi0gICAgICAgICAg
ICAgICAgICAgICAgJiYgKGltYWdlSGVpZ2h0IC0gdG9wU2xpY2UgLSBib3R0b21TbGljZSkgPiAw
ICYmIChib3JkZXJJbWFnZVJlY3QuaGVpZ2h0KCkgLSB0b3BXaWR0aCAtIGJvdHRvbVdpZHRoKSA+
IDA7Ci0KLSAgICBSZWZQdHI8SW1hZ2U+IGltYWdlID0gc3R5bGVJbWFnZS0+aW1hZ2UodGhpcywg
aW1hZ2VTaXplKTsKLSAgICBDb2xvclNwYWNlIGNvbG9yU3BhY2UgPSBzdHlsZS5jb2xvclNwYWNl
KCk7Ci0gICAgCi0gICAgZmxvYXQgZGVzdGluYXRpb25XaWR0aCA9IGJvcmRlckltYWdlUmVjdC53
aWR0aCgpIC0gbGVmdFdpZHRoIC0gcmlnaHRXaWR0aDsKLSAgICBmbG9hdCBkZXN0aW5hdGlvbkhl
aWdodCA9IGJvcmRlckltYWdlUmVjdC5oZWlnaHQoKSAtIHRvcFdpZHRoIC0gYm90dG9tV2lkdGg7
Ci0gICAgCi0gICAgZmxvYXQgc291cmNlV2lkdGggPSBpbWFnZVdpZHRoIC0gbGVmdFNsaWNlIC0g
cmlnaHRTbGljZTsKLSAgICBmbG9hdCBzb3VyY2VIZWlnaHQgPSBpbWFnZUhlaWdodCAtIHRvcFNs
aWNlIC0gYm90dG9tU2xpY2U7Ci0gICAgCi0gICAgZmxvYXQgbGVmdFNpZGVTY2FsZSA9IGRyYXdM
ZWZ0ID8gKGZsb2F0KWxlZnRXaWR0aCAvIGxlZnRTbGljZSA6IDE7Ci0gICAgZmxvYXQgcmlnaHRT
aWRlU2NhbGUgPSBkcmF3UmlnaHQgPyAoZmxvYXQpcmlnaHRXaWR0aCAvIHJpZ2h0U2xpY2UgOiAx
OwotICAgIGZsb2F0IHRvcFNpZGVTY2FsZSA9IGRyYXdUb3AgPyAoZmxvYXQpdG9wV2lkdGggLyB0
b3BTbGljZSA6IDE7Ci0gICAgZmxvYXQgYm90dG9tU2lkZVNjYWxlID0gZHJhd0JvdHRvbSA/IChm
bG9hdClib3R0b21XaWR0aCAvIGJvdHRvbVNsaWNlIDogMTsKLQotICAgIGZsb2F0IHggPSBib3Jk
ZXJJbWFnZVJlY3QubG9jYXRpb24oKS54KCk7Ci0gICAgZmxvYXQgeSA9IGJvcmRlckltYWdlUmVj
dC5sb2NhdGlvbigpLnkoKTsKLSAgICBpZiAoZHJhd0xlZnQpIHsKLSAgICAgICAgLy8gUGFpbnQg
dGhlIHRvcCBhbmQgYm90dG9tIGxlZnQgY29ybmVycy4KLQotICAgICAgICAvLyBUaGUgdG9wIGxl
ZnQgY29ybmVyIHJlY3QgaXMgKHR4LCB0eSwgbGVmdFdpZHRoLCB0b3BXaWR0aCkKLSAgICAgICAg
Ly8gVGhlIHJlY3QgdG8gdXNlIGZyb20gd2l0aGluIHRoZSBpbWFnZSBpcyBvYnRhaW5lZCBmcm9t
IG91ciBzbGljZSwgYW5kIGlzICgwLCAwLCBsZWZ0U2xpY2UsIHRvcFNsaWNlKQotICAgICAgICBp
ZiAoZHJhd1RvcCkKLSAgICAgICAgICAgIGdyYXBoaWNzQ29udGV4dC0+ZHJhd0ltYWdlKGltYWdl
LmdldCgpLCBjb2xvclNwYWNlLCBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKHgsIHksIGxlZnRXaWR0
aCwgdG9wV2lkdGgsIGRldmljZVNjYWxlRmFjdG9yKSwKLSAgICAgICAgICAgICAgICBzbmFwUmVj
dFRvRGV2aWNlUGl4ZWxzKDAsIDAsIGxlZnRTbGljZSwgdG9wU2xpY2UsIGRldmljZVNjYWxlRmFj
dG9yKSwgb3ApOwotCi0gICAgICAgIC8vIFRoZSBib3R0b20gbGVmdCBjb3JuZXIgcmVjdCBpcyAo
dHgsIHR5ICsgaCAtIGJvdHRvbVdpZHRoLCBsZWZ0V2lkdGgsIGJvdHRvbVdpZHRoKQotICAgICAg
ICAvLyBUaGUgcmVjdCB0byB1c2UgZnJvbSB3aXRoaW4gdGhlIGltYWdlIGlzICgwLCBpbWFnZUhl
aWdodCAtIGJvdHRvbVNsaWNlLCBsZWZ0U2xpY2UsIGJvdG9tU2xpY2UpCi0gICAgICAgIGlmIChk
cmF3Qm90dG9tKQotICAgICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5kcmF3SW1hZ2UoaW1hZ2Uu
Z2V0KCksIGNvbG9yU3BhY2UsIHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMoeCwgYm9yZGVySW1hZ2VS
ZWN0Lm1heFkoKSAtIGJvdHRvbVdpZHRoLCBsZWZ0V2lkdGgsIGJvdHRvbVdpZHRoLCBkZXZpY2VT
Y2FsZUZhY3RvciksCi0gICAgICAgICAgICAgICAgc25hcFJlY3RUb0RldmljZVBpeGVscygwLCBp
bWFnZUhlaWdodCAtIGJvdHRvbVNsaWNlLCBsZWZ0U2xpY2UsIGJvdHRvbVNsaWNlLCBkZXZpY2VT
Y2FsZUZhY3RvciksIG9wKTsKLQotICAgICAgICAvLyBQYWludCB0aGUgbGVmdCBlZGdlLgotICAg
ICAgICAvLyBIYXZlIHRvIHNjYWxlIGFuZCB0aWxlIGludG8gdGhlIGJvcmRlciByZWN0LgotICAg
ICAgICBpZiAoc291cmNlSGVpZ2h0ID4gMCkKLSAgICAgICAgICAgIGdyYXBoaWNzQ29udGV4dC0+
ZHJhd1RpbGVkSW1hZ2UoaW1hZ2UuZ2V0KCksIGNvbG9yU3BhY2UsIHNuYXBSZWN0VG9EZXZpY2VQ
aXhlbHMoeCwgeSArIHRvcFdpZHRoLCBsZWZ0V2lkdGgsIGRlc3RpbmF0aW9uSGVpZ2h0LCBkZXZp
Y2VTY2FsZUZhY3RvciksCi0gICAgICAgICAgICAgICAgc25hcFJlY3RUb0RldmljZVBpeGVscygw
LCB0b3BTbGljZSwgbGVmdFNsaWNlLCBzb3VyY2VIZWlnaHQsIGRldmljZVNjYWxlRmFjdG9yKSwg
RmxvYXRTaXplKGxlZnRTaWRlU2NhbGUsIGxlZnRTaWRlU2NhbGUpLCBJbWFnZTo6U3RyZXRjaFRp
bGUsIChJbWFnZTo6VGlsZVJ1bGUpdlJ1bGUsIG9wKTsKLSAgICB9Ci0KLSAgICBpZiAoZHJhd1Jp
Z2h0KSB7Ci0gICAgICAgIC8vIFBhaW50IHRoZSB0b3AgYW5kIGJvdHRvbSByaWdodCBjb3JuZXJz
Ci0gICAgICAgIC8vIFRoZSB0b3AgcmlnaHQgY29ybmVyIHJlY3QgaXMgKHR4ICsgdyAtIHJpZ2h0
V2lkdGgsIHR5LCByaWdodFdpZHRoLCB0b3BXaWR0aCkKLSAgICAgICAgLy8gVGhlIHJlY3QgdG8g
dXNlIGZyb20gd2l0aGluIHRoZSBpbWFnZSBpcyBvYnRhaW5lZCBmcm9tIG91ciBzbGljZSwgYW5k
IGlzIChpbWFnZVdpZHRoIC0gcmlnaHRTbGljZSwgMCwgcmlnaHRTbGljZSwgdG9wU2xpY2UpCi0g
ICAgICAgIGlmIChkcmF3VG9wKQotICAgICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5kcmF3SW1h
Z2UoaW1hZ2UuZ2V0KCksIGNvbG9yU3BhY2UsIHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMoYm9yZGVy
SW1hZ2VSZWN0Lm1heFgoKSAtIHJpZ2h0V2lkdGgsIHksIHJpZ2h0V2lkdGgsIHRvcFdpZHRoLCBk
ZXZpY2VTY2FsZUZhY3RvciksCi0gICAgICAgICAgICAgICAgc25hcFJlY3RUb0RldmljZVBpeGVs
cyhpbWFnZVdpZHRoIC0gcmlnaHRTbGljZSwgMCwgcmlnaHRTbGljZSwgdG9wU2xpY2UsIGRldmlj
ZVNjYWxlRmFjdG9yKSwgb3ApOwotCi0gICAgICAgIC8vIFRoZSBib3R0b20gcmlnaHQgY29ybmVy
IHJlY3QgaXMgKHR4ICsgdyAtIHJpZ2h0V2lkdGgsIHR5ICsgaCAtIGJvdHRvbVdpZHRoLCByaWdo
dFdpZHRoLCBib3R0b21XaWR0aCkKLSAgICAgICAgLy8gVGhlIHJlY3QgdG8gdXNlIGZyb20gd2l0
aGluIHRoZSBpbWFnZSBpcyAoaW1hZ2VXaWR0aCAtIHJpZ2h0U2xpY2UsIGltYWdlSGVpZ2h0IC0g
Ym90dG9tU2xpY2UsIHJpZ2h0U2xpY2UsIGJvdHRvbVNsaWNlKQotICAgICAgICBpZiAoZHJhd0Jv
dHRvbSkKLSAgICAgICAgICAgIGdyYXBoaWNzQ29udGV4dC0+ZHJhd0ltYWdlKGltYWdlLmdldCgp
LCBjb2xvclNwYWNlLCBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKGJvcmRlckltYWdlUmVjdC5tYXhY
KCkgLSByaWdodFdpZHRoLCBib3JkZXJJbWFnZVJlY3QubWF4WSgpIC0gYm90dG9tV2lkdGgsCi0g
ICAgICAgICAgICAgICAgcmlnaHRXaWR0aCwgYm90dG9tV2lkdGgsIGRldmljZVNjYWxlRmFjdG9y
KSwgc25hcFJlY3RUb0RldmljZVBpeGVscyhpbWFnZVdpZHRoIC0gcmlnaHRTbGljZSwgaW1hZ2VI
ZWlnaHQgLSBib3R0b21TbGljZSwgcmlnaHRTbGljZSwgYm90dG9tU2xpY2UsIGRldmljZVNjYWxl
RmFjdG9yKSwKLSAgICAgICAgICAgICAgICBvcCk7Ci0KLSAgICAgICAgLy8gUGFpbnQgdGhlIHJp
Z2h0IGVkZ2UuCi0gICAgICAgIGlmIChzb3VyY2VIZWlnaHQgPiAwKQotICAgICAgICAgICAgZ3Jh
cGhpY3NDb250ZXh0LT5kcmF3VGlsZWRJbWFnZShpbWFnZS5nZXQoKSwgY29sb3JTcGFjZSwgc25h
cFJlY3RUb0RldmljZVBpeGVscyhib3JkZXJJbWFnZVJlY3QubWF4WCgpIC0gcmlnaHRXaWR0aCwg
eSArIHRvcFdpZHRoLCByaWdodFdpZHRoLCBkZXN0aW5hdGlvbkhlaWdodCwgZGV2aWNlU2NhbGVG
YWN0b3IpLAotICAgICAgICAgICAgICAgIHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMoaW1hZ2VXaWR0
aCAtIHJpZ2h0U2xpY2UsIHRvcFNsaWNlLCByaWdodFNsaWNlLCBzb3VyY2VIZWlnaHQsIGRldmlj
ZVNjYWxlRmFjdG9yKSwgRmxvYXRTaXplKHJpZ2h0U2lkZVNjYWxlLCByaWdodFNpZGVTY2FsZSks
Ci0gICAgICAgICAgICAgICAgSW1hZ2U6OlN0cmV0Y2hUaWxlLCAoSW1hZ2U6OlRpbGVSdWxlKXZS
dWxlLCBvcCk7Ci0gICAgfQotCi0gICAgLy8gUGFpbnQgdGhlIHRvcCBlZGdlLgotICAgIGlmIChk
cmF3VG9wICYmIHNvdXJjZVdpZHRoID4gMCkKLSAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5kcmF3
VGlsZWRJbWFnZShpbWFnZS5nZXQoKSwgY29sb3JTcGFjZSwgc25hcFJlY3RUb0RldmljZVBpeGVs
cyh4ICsgbGVmdFdpZHRoLCB5LCBkZXN0aW5hdGlvbldpZHRoLCB0b3BXaWR0aCwgZGV2aWNlU2Nh
bGVGYWN0b3IpLAotICAgICAgICAgICAgc25hcFJlY3RUb0RldmljZVBpeGVscyhsZWZ0U2xpY2Us
IDAsIHNvdXJjZVdpZHRoLCB0b3BTbGljZSwgZGV2aWNlU2NhbGVGYWN0b3IpLCBGbG9hdFNpemUo
dG9wU2lkZVNjYWxlLCB0b3BTaWRlU2NhbGUpLCAoSW1hZ2U6OlRpbGVSdWxlKWhSdWxlLCBJbWFn
ZTo6U3RyZXRjaFRpbGUsIG9wKTsKLQotICAgIC8vIFBhaW50IHRoZSBib3R0b20gZWRnZS4KLSAg
ICBpZiAoZHJhd0JvdHRvbSAmJiBzb3VyY2VXaWR0aCA+IDApCi0gICAgICAgIGdyYXBoaWNzQ29u
dGV4dC0+ZHJhd1RpbGVkSW1hZ2UoaW1hZ2UuZ2V0KCksIGNvbG9yU3BhY2UsIHNuYXBSZWN0VG9E
ZXZpY2VQaXhlbHMoeCArIGxlZnRXaWR0aCwgYm9yZGVySW1hZ2VSZWN0Lm1heFkoKSAtIGJvdHRv
bVdpZHRoLCBkZXN0aW5hdGlvbldpZHRoLCBib3R0b21XaWR0aCwgZGV2aWNlU2NhbGVGYWN0b3Ip
LAotICAgICAgICAgICAgc25hcFJlY3RUb0RldmljZVBpeGVscyhsZWZ0U2xpY2UsIGltYWdlSGVp
Z2h0IC0gYm90dG9tU2xpY2UsIHNvdXJjZVdpZHRoLCBib3R0b21TbGljZSwgZGV2aWNlU2NhbGVG
YWN0b3IpLCBGbG9hdFNpemUoYm90dG9tU2lkZVNjYWxlLCBib3R0b21TaWRlU2NhbGUpLAotICAg
ICAgICAgICAgKEltYWdlOjpUaWxlUnVsZSloUnVsZSwgSW1hZ2U6OlN0cmV0Y2hUaWxlLCBvcCk7
Ci0KLSAgICAvLyBQYWludCB0aGUgbWlkZGxlLgotICAgIGlmIChkcmF3TWlkZGxlKSB7Ci0gICAg
ICAgIEZsb2F0U2l6ZSBtaWRkbGVTY2FsZUZhY3RvcigxLCAxKTsKLSAgICAgICAgaWYgKGRyYXdU
b3ApCi0gICAgICAgICAgICBtaWRkbGVTY2FsZUZhY3Rvci5zZXRXaWR0aCh0b3BTaWRlU2NhbGUp
OwotICAgICAgICBlbHNlIGlmIChkcmF3Qm90dG9tKQotICAgICAgICAgICAgbWlkZGxlU2NhbGVG
YWN0b3Iuc2V0V2lkdGgoYm90dG9tU2lkZVNjYWxlKTsKLSAgICAgICAgaWYgKGRyYXdMZWZ0KQot
ICAgICAgICAgICAgbWlkZGxlU2NhbGVGYWN0b3Iuc2V0SGVpZ2h0KGxlZnRTaWRlU2NhbGUpOwot
ICAgICAgICBlbHNlIGlmIChkcmF3UmlnaHQpCi0gICAgICAgICAgICBtaWRkbGVTY2FsZUZhY3Rv
ci5zZXRIZWlnaHQocmlnaHRTaWRlU2NhbGUpOwotICAgICAgICAgICAgCi0gICAgICAgIC8vIEZv
ciAic3RyZXRjaCIgcnVsZXMsIGp1c3Qgb3ZlcnJpZGUgdGhlIHNjYWxlIGZhY3RvciBhbmQgcmVw
bGFjZS4gV2Ugb25seSBoYWQgdG8gZG8gdGhpcyBmb3IgdGhlCi0gICAgICAgIC8vIGNlbnRlciB0
aWxlLCBzaW5jZSBzaWRlcyBkb24ndCBldmVuIHVzZSB0aGUgc2NhbGUgZmFjdG9yIHVubGVzcyB0
aGV5IGhhdmUgYSBydWxlIG90aGVyIHRoYW4gInN0cmV0Y2giLgotICAgICAgICAvLyBUaGUgbWlk
ZGxlIGhvd2V2ZXIgY2FuIGhhdmUgInN0cmV0Y2giIHNwZWNpZmllZCBpbiBvbmUgYXhpcyBidXQg
bm90IHRoZSBvdGhlciwgc28gd2UgaGF2ZSB0bwotICAgICAgICAvLyBjb3JyZWN0IHRoZSBzY2Fs
ZSBoZXJlLgotICAgICAgICBpZiAoaFJ1bGUgPT0gU3RyZXRjaEltYWdlUnVsZSkKLSAgICAgICAg
ICAgIG1pZGRsZVNjYWxlRmFjdG9yLnNldFdpZHRoKGRlc3RpbmF0aW9uV2lkdGggLyBzb3VyY2VX
aWR0aCk7Ci0gICAgICAgICAgICAKLSAgICAgICAgaWYgKHZSdWxlID09IFN0cmV0Y2hJbWFnZVJ1
bGUpCi0gICAgICAgICAgICBtaWRkbGVTY2FsZUZhY3Rvci5zZXRIZWlnaHQoZGVzdGluYXRpb25I
ZWlnaHQgLyBzb3VyY2VIZWlnaHQpOwotICAgICAgICAKLSAgICAgICAgZ3JhcGhpY3NDb250ZXh0
LT5kcmF3VGlsZWRJbWFnZShpbWFnZS5nZXQoKSwgY29sb3JTcGFjZSwKLSAgICAgICAgICAgIHNu
YXBSZWN0VG9EZXZpY2VQaXhlbHMoeCArIGxlZnRXaWR0aCwgeSArIHRvcFdpZHRoLCBkZXN0aW5h
dGlvbldpZHRoLCBkZXN0aW5hdGlvbkhlaWdodCwgZGV2aWNlU2NhbGVGYWN0b3IpLAotICAgICAg
ICAgICAgc25hcFJlY3RUb0RldmljZVBpeGVscyhsZWZ0U2xpY2UsIHRvcFNsaWNlLCBzb3VyY2VX
aWR0aCwgc291cmNlSGVpZ2h0LCBkZXZpY2VTY2FsZUZhY3RvciksCi0gICAgICAgICAgICBtaWRk
bGVTY2FsZUZhY3RvciwgKEltYWdlOjpUaWxlUnVsZSloUnVsZSwgKEltYWdlOjpUaWxlUnVsZSl2
UnVsZSwgb3ApOwotICAgIH0KKyAgICBzdHlsZUltYWdlLT5zZXRDb250YWluZXJTaXplRm9yUmVu
ZGVyZXIodGhpcywgc291cmNlLCBzdHlsZS5lZmZlY3RpdmVab29tKCkpOwogCisgICAgbmluZVBp
ZWNlSW1hZ2UucGFpbnQoZ3JhcGhpY3NDb250ZXh0LCB0aGlzLCBzdHlsZSwgZGVzdGluYXRpb24s
IHNvdXJjZSwgaW50cmluc2ljU291cmNlLCBkZXZpY2VTY2FsZUZhY3Rvciwgb3ApOwogICAgIHJl
dHVybiB0cnVlOwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94
TW9kZWxPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQm94TW9kZWxPYmplY3QuaAkocmV2aXNpb24gMTg0NjU1KQorKysgU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTI4OSw3
ICsyODksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBtb3ZlQ2hpbGRyZW5UbyhSZW5kZXJCb3hNb2Rl
bE9iamVjdCogdG9Cb3hNb2RlbE9iamVjdCwgUmVuZGVyT2JqZWN0KiBzdGFydENoaWxkLCBSZW5k
ZXJPYmplY3QqIGVuZENoaWxkLCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkLCBib29sIGZ1bGxS
ZW1vdmVJbnNlcnQgPSBmYWxzZSk7CiAKICAgICBlbnVtIFNjYWxlQnlFZmZlY3RpdmVab29tT3JO
b3QgeyBTY2FsZUJ5RWZmZWN0aXZlWm9vbSwgRG9Ob3RTY2FsZUJ5RWZmZWN0aXZlWm9vbSB9Owot
ICAgIExheW91dFNpemUgY2FsY3VsYXRlSW1hZ2VJbnRyaW5zaWNEaW1lbnNpb25zKFN0eWxlSW1h
Z2UqLCBjb25zdCBMYXlvdXRTaXplJiBzY2FsZWRQb3NpdGlvbmluZ0FyZWFTaXplLCBTY2FsZUJ5
RWZmZWN0aXZlWm9vbU9yTm90KSBjb25zdDsKKyAgICBib29sIGNhbGN1bGF0ZUltYWdlSW50cmlu
c2ljRGltZW5zaW9ucyhTdHlsZUltYWdlKiwgY29uc3QgTGF5b3V0U2l6ZSYgc2NhbGVkUG9zaXRp
b25pbmdBcmVhU2l6ZSwgU2NhbGVCeUVmZmVjdGl2ZVpvb21Pck5vdCwgTGF5b3V0U2l6ZSYgaW1h
Z2VTaXplKSBjb25zdDsKIAogcHJpdmF0ZToKICAgICBMYXlvdXRVbml0IGNvbXB1dGVkQ1NTUGFk
ZGluZyhjb25zdCBMZW5ndGgmKSBjb25zdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMaXN0TWFya2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5jcHAJKHJldmlzaW9uIDE4NDY1NSkKKysrIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTQyNiw3ICsxNDI2LDggQEAgdm9pZCBSZW5kZXJMaXN0TWFya2VyOjp1cGRhdGVDb250ZW50KCkK
ICAgICAgICAgLy8gdW50aWwgd2Ugc3VwcG9ydCB0aGUgQ1NTMyBtYXJrZXIgcHNldWRvY2xhc3Mg
dG8gYWxsb3cgY29udHJvbCBvdmVyIHRoZSB3aWR0aCBhbmQgaGVpZ2h0IG9mIHRoZSBtYXJrZXIg
Ym94LgogICAgICAgICBMYXlvdXRVbml0IGJ1bGxldFdpZHRoID0gc3R5bGUoKS5mb250TWV0cmlj
cygpLmFzY2VudCgpIC8gTGF5b3V0VW5pdCgyKTsKICAgICAgICAgTGF5b3V0U2l6ZSBkZWZhdWx0
QnVsbGV0U2l6ZShidWxsZXRXaWR0aCwgYnVsbGV0V2lkdGgpOwotICAgICAgICBMYXlvdXRTaXpl
IGltYWdlU2l6ZSA9IGNhbGN1bGF0ZUltYWdlSW50cmluc2ljRGltZW5zaW9ucyhtX2ltYWdlLmdl
dCgpLCBkZWZhdWx0QnVsbGV0U2l6ZSwgRG9Ob3RTY2FsZUJ5RWZmZWN0aXZlWm9vbSk7CisgICAg
ICAgIExheW91dFNpemUgaW1hZ2VTaXplOworICAgICAgICBjYWxjdWxhdGVJbWFnZUludHJpbnNp
Y0RpbWVuc2lvbnMobV9pbWFnZS5nZXQoKSwgZGVmYXVsdEJ1bGxldFNpemUsIERvTm90U2NhbGVC
eUVmZmVjdGl2ZVpvb20sIGltYWdlU2l6ZSk7CiAgICAgICAgIG1faW1hZ2UtPnNldENvbnRhaW5l
clNpemVGb3JSZW5kZXJlcih0aGlzLCBpbWFnZVNpemUsIHN0eWxlKCkuZWZmZWN0aXZlWm9vbSgp
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zaGFwZXMvU2hhcGVPdXRzaWRlSW5mby5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZU91dHNpZGVJbmZvLmNwcAkocmV2aXNpb24gMTg0NjU1
KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZU91dHNpZGVJbmZvLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTQ4LDcgKzE0OCw4IEBAIHN0YXRpYyBMYXlvdXRSZWN0IGdl
dFNoYXBlSW1hZ2VNYXJnaW5SZWMKIAogc3RkOjp1bmlxdWVfcHRyPFNoYXBlPiBTaGFwZU91dHNp
ZGVJbmZvOjpjcmVhdGVTaGFwZUZvckltYWdlKFN0eWxlSW1hZ2UqIHN0eWxlSW1hZ2UsIGZsb2F0
IHNoYXBlSW1hZ2VUaHJlc2hvbGQsIFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlLCBmbG9hdCBtYXJn
aW4pIGNvbnN0CiB7Ci0gICAgY29uc3QgTGF5b3V0U2l6ZSYgaW1hZ2VTaXplID0gbV9yZW5kZXJl
ci5jYWxjdWxhdGVJbWFnZUludHJpbnNpY0RpbWVuc2lvbnMoc3R5bGVJbWFnZSwgbV9yZWZlcmVu
Y2VCb3hMb2dpY2FsU2l6ZSwgUmVuZGVySW1hZ2U6OlNjYWxlQnlFZmZlY3RpdmVab29tKTsKKyAg
ICBMYXlvdXRTaXplIGltYWdlU2l6ZTsKKyAgICBtX3JlbmRlcmVyLmNhbGN1bGF0ZUltYWdlSW50
cmluc2ljRGltZW5zaW9ucyhzdHlsZUltYWdlLCBtX3JlZmVyZW5jZUJveExvZ2ljYWxTaXplLCBS
ZW5kZXJJbWFnZTo6U2NhbGVCeUVmZmVjdGl2ZVpvb20sIGltYWdlU2l6ZSk7CiAgICAgc3R5bGVJ
bWFnZS0+c2V0Q29udGFpbmVyU2l6ZUZvclJlbmRlcmVyKCZtX3JlbmRlcmVyLCBpbWFnZVNpemUs
IG1fcmVuZGVyZXIuc3R5bGUoKS5lZmZlY3RpdmVab29tKCkpOwogCiAgICAgY29uc3QgTGF5b3V0
UmVjdCYgbWFyZ2luUmVjdCA9IGdldFNoYXBlSW1hZ2VNYXJnaW5SZWN0KG1fcmVuZGVyZXIsIG1f
cmVmZXJlbmNlQm94TG9naWNhbFNpemUpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL0JvcmRlckRhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvQm9yZGVyRGF0YS5oCShyZXZpc2lvbiAxODQ2NTUpCisrKyBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvQm9yZGVyRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC05Miw2ICs5
MiwxMSBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgcmV0dXJuIG1f
Ym90dG9tLndpZHRoKCk7CiAgICAgfQorCisgICAgRmxvYXRCb3hFeHRlbnQgYm9yZGVyV2lkdGgo
KSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIEZsb2F0Qm94RXh0ZW50KGJvcmRlclRvcFdp
ZHRoKCksIGJvcmRlclJpZ2h0V2lkdGgoKSwgYm9yZGVyQm90dG9tV2lkdGgoKSwgYm9yZGVyTGVm
dFdpZHRoKCkpOworICAgIH0KICAgICAKICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgQm9yZGVy
RGF0YSYgbykgY29uc3QKICAgICB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvTmluZVBpZWNlSW1hZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9OaW5lUGllY2VJbWFnZS5jcHAJKHJldmlzaW9uIDE4NDY1NSkKKysrIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9OaW5lUGllY2VJbWFnZS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTIsNyArMiw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDAgTGFycyBLbm9sbCAoa25v
bGxAa2RlLm9yZykKICAqICAgICAgICAgICAoQykgMjAwMCBBbnR0aSBLb2l2aXN0byAoa29pdmlz
dG9Aa2RlLm9yZykKICAqICAgICAgICAgICAoQykgMjAwMCBEaXJrIE11ZWxsZXIgKG11ZWxsZXJA
a2RlLm9yZykKLSAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwg
MjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDMsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMTMsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yMyw2ICsyMywxMCBAQAogCiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiTmluZVBpZWNlSW1hZ2UuaCIKKworI2luY2x1
ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgorI2luY2x1ZGUgIkxlbmd0aEZ1bmN0aW9ucy5oIgorI2lu
Y2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTUwLDExICs1NCwyMDUgQEAgTmluZVBpZWNlSW1hZ2U6
Ok5pbmVQaWVjZUltYWdlKFBhc3NSZWZQdAogICAgIG1fZGF0YS5hY2Nlc3MoKS0+dmVydGljYWxS
dWxlID0gdmVydGljYWxSdWxlOwogfQogCitMYXlvdXRVbml0IE5pbmVQaWVjZUltYWdlOjpjb21w
dXRlU2xpY2UoTGVuZ3RoIGxlbmd0aCwgTGF5b3V0VW5pdCB3aWR0aCwgTGF5b3V0VW5pdCBzbGlj
ZSwgTGF5b3V0VW5pdCBleHRlbnQpCit7CisgICAgaWYgKGxlbmd0aC5pc1JlbGF0aXZlKCkpCisg
ICAgICAgIHJldHVybiBsZW5ndGgudmFsdWUoKSAqIHdpZHRoOworICAgIGlmIChsZW5ndGguaXNB
dXRvKCkpCisgICAgICAgIHJldHVybiBzbGljZTsKKyAgICByZXR1cm4gdmFsdWVGb3JMZW5ndGgo
bGVuZ3RoLCBleHRlbnQpOworfQorCitMYXlvdXRCb3hFeHRlbnQgTmluZVBpZWNlSW1hZ2U6OmNv
bXB1dGVTbGljZXMoY29uc3QgTGF5b3V0U2l6ZSYgc2l6ZSwgY29uc3QgTGVuZ3RoQm94JiBsZW5n
dGhzLCBpbnQgc2NhbGVGYWN0b3IpCit7CisgICAgTGF5b3V0VW5pdCB0b3AgICAgPSBzdGQ6Om1p
bjxMYXlvdXRVbml0PihzaXplLmhlaWdodCgpLCB2YWx1ZUZvckxlbmd0aChsZW5ndGhzLnRvcCgp
LCAgICBzaXplLmhlaWdodCgpKSkgKiBzY2FsZUZhY3RvcjsKKyAgICBMYXlvdXRVbml0IHJpZ2h0
ICA9IHN0ZDo6bWluPExheW91dFVuaXQ+KHNpemUud2lkdGgoKSwgIHZhbHVlRm9yTGVuZ3RoKGxl
bmd0aHMucmlnaHQoKSwgIHNpemUud2lkdGgoKSkpICAqIHNjYWxlRmFjdG9yOworICAgIExheW91
dFVuaXQgYm90dG9tID0gc3RkOjptaW48TGF5b3V0VW5pdD4oc2l6ZS5oZWlnaHQoKSwgdmFsdWVG
b3JMZW5ndGgobGVuZ3Rocy5ib3R0b20oKSwgc2l6ZS5oZWlnaHQoKSkpICogc2NhbGVGYWN0b3I7
CisgICAgTGF5b3V0VW5pdCBsZWZ0ICAgPSBzdGQ6Om1pbjxMYXlvdXRVbml0PihzaXplLndpZHRo
KCksICB2YWx1ZUZvckxlbmd0aChsZW5ndGhzLmxlZnQoKSwgICBzaXplLndpZHRoKCkpKSAgKiBz
Y2FsZUZhY3RvcjsKKyAgICByZXR1cm4gTGF5b3V0Qm94RXh0ZW50KHRvcCwgcmlnaHQsIGJvdHRv
bSwgbGVmdCk7Cit9CisKK0xheW91dEJveEV4dGVudCBOaW5lUGllY2VJbWFnZTo6Y29tcHV0ZVNs
aWNlcyhjb25zdCBMYXlvdXRTaXplJiBzaXplLCBjb25zdCBMZW5ndGhCb3gmIGxlbmd0aHMsIGNv
bnN0IEZsb2F0Qm94RXh0ZW50JiB3aWR0aHMsIGNvbnN0IExheW91dEJveEV4dGVudCYgc2xpY2Vz
KQoreworICAgIExheW91dFVuaXQgdG9wICAgID0gY29tcHV0ZVNsaWNlKGxlbmd0aHMudG9wKCks
ICAgIHdpZHRocy50b3AoKSwgICAgc2xpY2VzLnRvcCgpLCAgICBzaXplLmhlaWdodCgpKTsKKyAg
ICBMYXlvdXRVbml0IHJpZ2h0ICA9IGNvbXB1dGVTbGljZShsZW5ndGhzLnJpZ2h0KCksICB3aWR0
aHMucmlnaHQoKSwgIHNsaWNlcy5yaWdodCgpLCAgc2l6ZS53aWR0aCgpKTsKKyAgICBMYXlvdXRV
bml0IGJvdHRvbSA9IGNvbXB1dGVTbGljZShsZW5ndGhzLmJvdHRvbSgpLCB3aWR0aHMuYm90dG9t
KCksIHNsaWNlcy5ib3R0b20oKSwgc2l6ZS5oZWlnaHQoKSk7CisgICAgTGF5b3V0VW5pdCBsZWZ0
ICAgPSBjb21wdXRlU2xpY2UobGVuZ3Rocy5sZWZ0KCksICAgd2lkdGhzLmxlZnQoKSwgICBzbGlj
ZXMubGVmdCgpLCAgIHNpemUud2lkdGgoKSk7CisgICAgcmV0dXJuIExheW91dEJveEV4dGVudCh0
b3AsIHJpZ2h0LCBib3R0b20sIGxlZnQpOworfQorCit2b2lkIE5pbmVQaWVjZUltYWdlOjpzY2Fs
ZVNsaWNlc0lmTmVlZGVkKGNvbnN0IExheW91dFNpemUmIHNpemUsIExheW91dEJveEV4dGVudCYg
c2xpY2VzLCBpbnQgc2NhbGVGYWN0b3IpCit7CisgICAgTGF5b3V0VW5pdCB3aWR0aCAgPSBzdGQ6
Om1heDxMYXlvdXRVbml0PigxIC8gc2NhbGVGYWN0b3IsIHNsaWNlcy5sZWZ0KCkgKyBzbGljZXMu
cmlnaHQoKSk7CisgICAgTGF5b3V0VW5pdCBoZWlnaHQgPSBzdGQ6Om1heDxMYXlvdXRVbml0Pigx
IC8gc2NhbGVGYWN0b3IsIHNsaWNlcy50b3AoKSArIHNsaWNlcy5ib3R0b20oKSk7CisKKyAgICBm
bG9hdCBzbGljZVNjYWxlRmFjdG9yID0gc3RkOjptaW4oKGZsb2F0KXNpemUud2lkdGgoKSAvIHdp
ZHRoLCAoZmxvYXQpc2l6ZS5oZWlnaHQoKSAvIGhlaWdodCk7CisKKyAgICBpZiAoc2xpY2VTY2Fs
ZUZhY3RvciA+PSAxKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBBbGwgc2xpY2VzIGFyZSBy
ZWR1Y2VkIGJ5IG11bHRpcGx5aW5nIHRoZW0gYnkgc2xpY2VTY2FsZUZhY3Rvci4KKyAgICBzbGlj
ZXMudG9wKCkgICAgKj0gc2xpY2VTY2FsZUZhY3RvcjsKKyAgICBzbGljZXMucmlnaHQoKSAgKj0g
c2xpY2VTY2FsZUZhY3RvcjsKKyAgICBzbGljZXMuYm90dG9tKCkgKj0gc2xpY2VTY2FsZUZhY3Rv
cjsKKyAgICBzbGljZXMubGVmdCgpICAgKj0gc2xpY2VTY2FsZUZhY3RvcjsKK30KKworYm9vbCBO
aW5lUGllY2VJbWFnZTo6aXNFbXB0eVBpZWNlUmVjdChJbWFnZVBpZWNlIHBpZWNlLCBjb25zdCBM
YXlvdXRCb3hFeHRlbnQmIHNsaWNlcykKK3sKKyAgICBpZiAocGllY2UgPT0gTWlkZGxlUGllY2Up
CisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIFBoeXNpY2FsQm94U2lkZSBob3Jpem9udGFs
U2lkZSA9IGltYWdlUGllY2VIb3Jpem9udGFsU2lkZShwaWVjZSk7CisgICAgUGh5c2ljYWxCb3hT
aWRlIHZlcnRpY2FsU2lkZSA9IGltYWdlUGllY2VWZXJ0aWNhbFNpZGUocGllY2UpOworICAgIHJl
dHVybiAhKChob3Jpem9udGFsU2lkZSA9PSBOaWxTaWRlIHx8IHNsaWNlcy5hdChob3Jpem9udGFs
U2lkZSkpICYmICh2ZXJ0aWNhbFNpZGUgPT0gTmlsU2lkZSB8fCBzbGljZXMuYXQodmVydGljYWxT
aWRlKSkpOworfQorCitib29sIE5pbmVQaWVjZUltYWdlOjppc0VtcHR5UGllY2VSZWN0KEltYWdl
UGllY2UgcGllY2UsIGNvbnN0IFZlY3RvcjxGbG9hdFJlY3Q+JiBkZXN0aW5hdGlvblJlY3RzLCBj
b25zdCBWZWN0b3I8RmxvYXRSZWN0PiYgc291cmNlUmVjdHMpCit7CisgICAgcmV0dXJuIGRlc3Rp
bmF0aW9uUmVjdHNbcGllY2VdLmlzRW1wdHkoKSB8fCBzb3VyY2VSZWN0c1twaWVjZV0uaXNFbXB0
eSgpOworfQorCitWZWN0b3I8RmxvYXRSZWN0PiBOaW5lUGllY2VJbWFnZTo6Y29tcHV0ZUludHJp
bnNpY1JlY3RzKGNvbnN0IEZsb2F0UmVjdCYgb3V0ZXIsIGNvbnN0IExheW91dEJveEV4dGVudCYg
c2xpY2VzLCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcikKK3sKKyAgICBGbG9hdFJlY3QgaW5uZXIg
PSBvdXRlcjsKKyAgICBpbm5lci5tb3ZlKHNsaWNlcy5sZWZ0KCksIHNsaWNlcy50b3AoKSk7Cisg
ICAgaW5uZXIuY29udHJhY3Qoc2xpY2VzLmxlZnQoKSArIHNsaWNlcy5yaWdodCgpLCBzbGljZXMu
dG9wKCkgKyBzbGljZXMuYm90dG9tKCkpOworICAgIEFTU0VSVChvdXRlci5jb250YWlucyhpbm5l
cikpOworCisgICAgVmVjdG9yPEZsb2F0UmVjdD4gcmVjdHMoTWF4UGllY2UpOworCisgICAgcmVj
dHNbVG9wTGVmdFBpZWNlXSAgICAgPSBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKG91dGVyLngoKSwg
ICAgb3V0ZXIueSgpLCAgICBzbGljZXMubGVmdCgpLCAgc2xpY2VzLnRvcCgpLCAgICBkZXZpY2VT
Y2FsZUZhY3Rvcik7CisgICAgcmVjdHNbQm90dG9tTGVmdFBpZWNlXSAgPSBzbmFwUmVjdFRvRGV2
aWNlUGl4ZWxzKG91dGVyLngoKSwgICAgaW5uZXIubWF4WSgpLCBzbGljZXMubGVmdCgpLCAgc2xp
Y2VzLmJvdHRvbSgpLCBkZXZpY2VTY2FsZUZhY3Rvcik7CisgICAgcmVjdHNbTGVmdFBpZWNlXSAg
ICAgICAgPSBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKG91dGVyLngoKSwgICAgaW5uZXIueSgpLCAg
ICBzbGljZXMubGVmdCgpLCAgaW5uZXIuaGVpZ2h0KCksICBkZXZpY2VTY2FsZUZhY3Rvcik7CisK
KyAgICByZWN0c1tUb3BSaWdodFBpZWNlXSAgICA9IHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMoaW5u
ZXIubWF4WCgpLCBvdXRlci55KCksICAgIHNsaWNlcy5yaWdodCgpLCBzbGljZXMudG9wKCksICAg
IGRldmljZVNjYWxlRmFjdG9yKTsKKyAgICByZWN0c1tCb3R0b21SaWdodFBpZWNlXSA9IHNuYXBS
ZWN0VG9EZXZpY2VQaXhlbHMoaW5uZXIubWF4WCgpLCBpbm5lci5tYXhZKCksIHNsaWNlcy5yaWdo
dCgpLCBzbGljZXMuYm90dG9tKCksIGRldmljZVNjYWxlRmFjdG9yKTsKKyAgICByZWN0c1tSaWdo
dFBpZWNlXSAgICAgICA9IHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMoaW5uZXIubWF4WCgpLCBpbm5l
ci55KCksICAgIHNsaWNlcy5yaWdodCgpLCBpbm5lci5oZWlnaHQoKSwgIGRldmljZVNjYWxlRmFj
dG9yKTsKKworICAgIHJlY3RzW1RvcFBpZWNlXSAgICAgICAgID0gc25hcFJlY3RUb0RldmljZVBp
eGVscyhpbm5lci54KCksICAgIG91dGVyLnkoKSwgICAgaW5uZXIud2lkdGgoKSwgIHNsaWNlcy50
b3AoKSwgICAgZGV2aWNlU2NhbGVGYWN0b3IpOworICAgIHJlY3RzW0JvdHRvbVBpZWNlXSAgICAg
ID0gc25hcFJlY3RUb0RldmljZVBpeGVscyhpbm5lci54KCksICAgIGlubmVyLm1heFkoKSwgaW5u
ZXIud2lkdGgoKSwgIHNsaWNlcy5ib3R0b20oKSwgZGV2aWNlU2NhbGVGYWN0b3IpOworCisgICAg
cmVjdHNbTWlkZGxlUGllY2VdICAgICAgPSBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKGlubmVyLngo
KSwgICAgaW5uZXIueSgpLCAgICBpbm5lci53aWR0aCgpLCAgaW5uZXIuaGVpZ2h0KCksICBkZXZp
Y2VTY2FsZUZhY3Rvcik7CisgICAgcmV0dXJuIHJlY3RzOworfQorCitWZWN0b3I8RmxvYXRSZWN0
PiBOaW5lUGllY2VJbWFnZTo6Y29tcHV0ZU5vbkludHJpbnNpY1JlY3RzKGNvbnN0IFZlY3RvcjxG
bG9hdFJlY3Q+JiBpbnRyaW5zaWNSZWN0cywgY29uc3QgTGF5b3V0Qm94RXh0ZW50JiBzbGljZXMp
Cit7CisgICAgVmVjdG9yPEZsb2F0UmVjdD4gcmVjdHMoTWF4UGllY2UpOworCisgICAgZm9yIChJ
bWFnZVBpZWNlIHBpZWNlID0gTWluUGllY2U7IHBpZWNlIDwgTWF4UGllY2U7ICsrcGllY2UpIHsK
KyAgICAgICAgaWYgKGlzRW1wdHlQaWVjZVJlY3QocGllY2UsIHNsaWNlcykpCisgICAgICAgICAg
ICBjb250aW51ZTsKKyAgICAgICAgcmVjdHNbcGllY2VdID0gRmxvYXRSZWN0KEZsb2F0UG9pbnQo
KSwgaW50cmluc2ljUmVjdHNbcGllY2VdLnNpemUoKSk7CisgICAgfQorCisgICAgcmV0dXJuIHJl
Y3RzOworfQorCitGbG9hdFNpemUgTmluZVBpZWNlSW1hZ2U6OmNvbXB1dGVJbnRyaW5zaWNTaWRl
VGlsZVNjYWxlKEltYWdlUGllY2UgcGllY2UsIGNvbnN0IFZlY3RvcjxGbG9hdFJlY3Q+JiBkZXN0
aW5hdGlvblJlY3RzLCBjb25zdCBWZWN0b3I8RmxvYXRSZWN0PiYgc291cmNlUmVjdHMpCit7Cisg
ICAgQVNTRVJUKCFpc0Nvcm5lclBpZWNlKHBpZWNlKSAmJiAhaXNNaWRkbGVQaWVjZShwaWVjZSkp
OworICAgIGlmIChpc0VtcHR5UGllY2VSZWN0KHBpZWNlLCBkZXN0aW5hdGlvblJlY3RzLCBzb3Vy
Y2VSZWN0cykpCisgICAgICAgIHJldHVybiBGbG9hdFNpemUoMSwgMSk7CisKKyAgICBmbG9hdCBz
Y2FsZTsKKyAgICBpZiAoaXNWZXJ0aWNhbFBpZWNlKHBpZWNlKSkKKyAgICAgICAgc2NhbGUgPSBk
ZXN0aW5hdGlvblJlY3RzW3BpZWNlXS5oZWlnaHQoKSAvIHNvdXJjZVJlY3RzW3BpZWNlXS5oZWln
aHQoKTsKKyAgICBlbHNlCisgICAgICAgIHNjYWxlID0gZGVzdGluYXRpb25SZWN0c1twaWVjZV0u
d2lkdGgoKSAvIHNvdXJjZVJlY3RzW3BpZWNlXS53aWR0aCgpOworCisgICAgcmV0dXJuIEZsb2F0
U2l6ZShzY2FsZSwgc2NhbGUpOworfQorCitGbG9hdFNpemUgTmluZVBpZWNlSW1hZ2U6OmNvbXB1
dGVJbnRyaW5zaWNNaWRkbGVUaWxlU2NhbGUoY29uc3QgVmVjdG9yPEZsb2F0U2l6ZT4mIHNjYWxl
cywgY29uc3QgVmVjdG9yPEZsb2F0UmVjdD4mIGRlc3RpbmF0aW9uUmVjdHMsIGNvbnN0IFZlY3Rv
cjxGbG9hdFJlY3Q+JiBzb3VyY2VSZWN0cywgRU5pbmVQaWVjZUltYWdlUnVsZSBoUnVsZSwgRU5p
bmVQaWVjZUltYWdlUnVsZSB2UnVsZSkKK3sKKyAgICBGbG9hdFNpemUgc2NhbGUoMSwgMSk7Cisg
ICAgaWYgKGlzRW1wdHlQaWVjZVJlY3QoTWlkZGxlUGllY2UsIGRlc3RpbmF0aW9uUmVjdHMsIHNv
dXJjZVJlY3RzKSkKKyAgICAgICAgcmV0dXJuIHNjYWxlOworCisgICAgLy8gVW5saWtlIHRoZSBz
aWRlIHBpZWNlcywgdGhlIG1pZGRsZSBwaWVjZSBjYW4gaGF2ZSAic3RyZXRjaCIgc3BlY2lmaWVk
IGluIG9uZSBheGlzIGJ1dCBub3QgdGhlIG90aGVyLgorICAgIC8vIEluIGZhY3QgdGhlIHNpZGUg
cGllY2VzIGRvbid0IGV2ZW4gdXNlIHRoZSBzY2FsZSBmYWN0b3IgdW5sZXNzIHRoZXkgaGF2ZSBh
IHJ1bGUgb3RoZXIgdGhhbiAic3RyZXRjaCIuCisgICAgaWYgKGhSdWxlID09IFN0cmV0Y2hJbWFn
ZVJ1bGUpCisgICAgICAgIHNjYWxlLnNldFdpZHRoKGRlc3RpbmF0aW9uUmVjdHNbTWlkZGxlUGll
Y2VdLndpZHRoKCkgLyBzb3VyY2VSZWN0c1tNaWRkbGVQaWVjZV0ud2lkdGgoKSk7CisgICAgZWxz
ZSBpZiAoIWlzRW1wdHlQaWVjZVJlY3QoVG9wUGllY2UsIGRlc3RpbmF0aW9uUmVjdHMsIHNvdXJj
ZVJlY3RzKSkKKyAgICAgICAgc2NhbGUuc2V0V2lkdGgoc2NhbGVzW1RvcFBpZWNlXS53aWR0aCgp
KTsKKyAgICBlbHNlIGlmICghaXNFbXB0eVBpZWNlUmVjdChCb3R0b21QaWVjZSwgZGVzdGluYXRp
b25SZWN0cywgc291cmNlUmVjdHMpKQorICAgICAgICBzY2FsZS5zZXRXaWR0aChzY2FsZXNbQm90
dG9tUGllY2VdLndpZHRoKCkpOworCisgICAgaWYgKHZSdWxlID09IFN0cmV0Y2hJbWFnZVJ1bGUp
CisgICAgICAgIHNjYWxlLnNldEhlaWdodChkZXN0aW5hdGlvblJlY3RzW01pZGRsZVBpZWNlXS5o
ZWlnaHQoKSAvIHNvdXJjZVJlY3RzW01pZGRsZVBpZWNlXS5oZWlnaHQoKSk7CisgICAgZWxzZSBp
ZiAoIWlzRW1wdHlQaWVjZVJlY3QoTGVmdFBpZWNlLCBkZXN0aW5hdGlvblJlY3RzLCBzb3VyY2VS
ZWN0cykpCisgICAgICAgIHNjYWxlLnNldEhlaWdodChzY2FsZXNbTGVmdFBpZWNlXS5oZWlnaHQo
KSk7CisgICAgZWxzZSBpZiAoIWlzRW1wdHlQaWVjZVJlY3QoUmlnaHRQaWVjZSwgZGVzdGluYXRp
b25SZWN0cywgc291cmNlUmVjdHMpKQorICAgICAgICBzY2FsZS5zZXRIZWlnaHQoc2NhbGVzW1Jp
Z2h0UGllY2VdLmhlaWdodCgpKTsKKworICAgIHJldHVybiBzY2FsZTsKK30KKworVmVjdG9yPEZs
b2F0U2l6ZT4gTmluZVBpZWNlSW1hZ2U6OmNvbXB1dGVJbnRyaW5zaWNUaWxlU2NhbGVzKGNvbnN0
IFZlY3RvcjxGbG9hdFJlY3Q+JiBkZXN0aW5hdGlvblJlY3RzLCBjb25zdCBWZWN0b3I8RmxvYXRS
ZWN0PiYgc291cmNlUmVjdHMsIEVOaW5lUGllY2VJbWFnZVJ1bGUgaFJ1bGUsIEVOaW5lUGllY2VJ
bWFnZVJ1bGUgdlJ1bGUpCit7CisgICAgVmVjdG9yPEZsb2F0U2l6ZT4gc2NhbGVzKE1heFBpZWNl
LCBGbG9hdFNpemUoMSwgMSkpOworCisgICAgc2NhbGVzW1RvcFBpZWNlXSAgICA9IGNvbXB1dGVJ
bnRyaW5zaWNTaWRlVGlsZVNjYWxlKFRvcFBpZWNlLCAgICBkZXN0aW5hdGlvblJlY3RzLCBzb3Vy
Y2VSZWN0cyk7CisgICAgc2NhbGVzW1JpZ2h0UGllY2VdICA9IGNvbXB1dGVJbnRyaW5zaWNTaWRl
VGlsZVNjYWxlKFJpZ2h0UGllY2UsICBkZXN0aW5hdGlvblJlY3RzLCBzb3VyY2VSZWN0cyk7Cisg
ICAgc2NhbGVzW0JvdHRvbVBpZWNlXSA9IGNvbXB1dGVJbnRyaW5zaWNTaWRlVGlsZVNjYWxlKEJv
dHRvbVBpZWNlLCBkZXN0aW5hdGlvblJlY3RzLCBzb3VyY2VSZWN0cyk7CisgICAgc2NhbGVzW0xl
ZnRQaWVjZV0gICA9IGNvbXB1dGVJbnRyaW5zaWNTaWRlVGlsZVNjYWxlKExlZnRQaWVjZSwgICBk
ZXN0aW5hdGlvblJlY3RzLCBzb3VyY2VSZWN0cyk7CisKKyAgICBzY2FsZXNbTWlkZGxlUGllY2Vd
ID0gY29tcHV0ZUludHJpbnNpY01pZGRsZVRpbGVTY2FsZShzY2FsZXMsIGRlc3RpbmF0aW9uUmVj
dHMsIHNvdXJjZVJlY3RzLCBoUnVsZSwgdlJ1bGUpOworICAgIHJldHVybiBzY2FsZXM7Cit9CisK
K1ZlY3RvcjxGbG9hdFNpemU+IE5pbmVQaWVjZUltYWdlOjpjb21wdXRlTm9uSW50cmluc2ljVGls
ZVNjYWxlcygpCit7CisgICAgcmV0dXJuIFZlY3RvcjxGbG9hdFNpemU+KE1heFBpZWNlLCBGbG9h
dFNpemUoMSwgMSkpOworfQorCit2b2lkIE5pbmVQaWVjZUltYWdlOjpwYWludChHcmFwaGljc0Nv
bnRleHQqIGdyYXBoaWNzQ29udGV4dCwgUmVuZGVyRWxlbWVudCogcmVuZGVyZXIsIGNvbnN0IFJl
bmRlclN0eWxlJiBzdHlsZSwgY29uc3QgTGF5b3V0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IExh
eW91dFNpemUmIHNvdXJjZSwgIGJvb2wgaW50cmluc2ljU291cmNlLCBmbG9hdCBkZXZpY2VTY2Fs
ZUZhY3RvciwgQ29tcG9zaXRlT3BlcmF0b3Igb3ApIGNvbnN0Cit7CisgICAgU3R5bGVJbWFnZSog
c3R5bGVJbWFnZSA9IGltYWdlKCk7CisgICAgQVNTRVJUKHN0eWxlSW1hZ2UgJiYgc3R5bGVJbWFn
ZS0+aXNMb2FkZWQoKSk7CisKKyAgICBMYXlvdXRCb3hFeHRlbnQgc291cmNlU2xpY2VzID0gY29t
cHV0ZVNsaWNlcyhzb3VyY2UsIGltYWdlU2xpY2VzKCksIHN0eWxlSW1hZ2UtPmltYWdlU2NhbGVG
YWN0b3IoKSk7CisgICAgTGF5b3V0Qm94RXh0ZW50IGRlc3RpbmF0aW9uU2xpY2VzID0gY29tcHV0
ZVNsaWNlcyhkZXN0aW5hdGlvbi5zaXplKCksIGJvcmRlclNsaWNlcygpLCBzdHlsZS5ib3JkZXJX
aWR0aCgpLCBzb3VyY2VTbGljZXMpOworCisgICAgc2NhbGVTbGljZXNJZk5lZWRlZChkZXN0aW5h
dGlvbi5zaXplKCksIGRlc3RpbmF0aW9uU2xpY2VzLCBkZXZpY2VTY2FsZUZhY3Rvcik7CisKKyAg
ICBWZWN0b3I8RmxvYXRSZWN0PiBkZXN0aW5hdGlvblJlY3RzID0gY29tcHV0ZUludHJpbnNpY1Jl
Y3RzKGRlc3RpbmF0aW9uLCBkZXN0aW5hdGlvblNsaWNlcywgZGV2aWNlU2NhbGVGYWN0b3IpOwor
ICAgIFZlY3RvcjxGbG9hdFJlY3Q+IHNvdXJjZVJlY3RzOworICAgIFZlY3RvcjxGbG9hdFNpemU+
IHRpbGVTY2FsZXM7CisKKyAgICBpZiAoaW50cmluc2ljU291cmNlKSB7CisgICAgICAgIHNvdXJj
ZVJlY3RzID0gY29tcHV0ZUludHJpbnNpY1JlY3RzKEZsb2F0UmVjdChGbG9hdFBvaW50KCksIHNv
dXJjZSksIHNvdXJjZVNsaWNlcywgZGV2aWNlU2NhbGVGYWN0b3IpOworICAgICAgICB0aWxlU2Nh
bGVzID0gY29tcHV0ZUludHJpbnNpY1RpbGVTY2FsZXMoZGVzdGluYXRpb25SZWN0cywgc291cmNl
UmVjdHMsIGhvcml6b250YWxSdWxlKCksIHZlcnRpY2FsUnVsZSgpKTsKKyAgICB9IGVsc2Ugewor
ICAgICAgICBzb3VyY2VSZWN0cyA9IGNvbXB1dGVOb25JbnRyaW5zaWNSZWN0cyhkZXN0aW5hdGlv
blJlY3RzLCBzb3VyY2VTbGljZXMpOworICAgICAgICB0aWxlU2NhbGVzID0gY29tcHV0ZU5vbklu
dHJpbnNpY1RpbGVTY2FsZXMoKTsKKyAgICB9CisKKyAgICBSZWZQdHI8SW1hZ2U+IGltYWdlID0g
c3R5bGVJbWFnZS0+aW1hZ2UocmVuZGVyZXIsIHNvdXJjZSk7CisgICAgQ29sb3JTcGFjZSBjb2xv
clNwYWNlID0gc3R5bGUuY29sb3JTcGFjZSgpOworCisgICAgZm9yIChJbWFnZVBpZWNlIHBpZWNl
ID0gTWluUGllY2U7IHBpZWNlIDwgTWF4UGllY2U7ICsrcGllY2UpIHsKKyAgICAgICAgaWYgKChw
aWVjZSA9PSBNaWRkbGVQaWVjZSAmJiAhZmlsbCgpKSB8fCBpc0VtcHR5UGllY2VSZWN0KHBpZWNl
LCBkZXN0aW5hdGlvblJlY3RzLCBzb3VyY2VSZWN0cykpCisgICAgICAgICAgICBjb250aW51ZTsK
KworICAgICAgICBpZiAoaXNDb3JuZXJQaWVjZShwaWVjZSkpIHsKKyAgICAgICAgICAgIGdyYXBo
aWNzQ29udGV4dC0+ZHJhd0ltYWdlKGltYWdlLmdldCgpLCBjb2xvclNwYWNlLCBkZXN0aW5hdGlv
blJlY3RzW3BpZWNlXSwgc291cmNlUmVjdHNbcGllY2VdLCBvcCk7CisgICAgICAgICAgICBjb250
aW51ZTsKKyAgICAgICAgfQorCisgICAgICAgIEltYWdlOjpUaWxlUnVsZSBoUnVsZSA9IGlzSG9y
aXpvbnRhbFBpZWNlKHBpZWNlKSA/IHN0YXRpY19jYXN0PEltYWdlOjpUaWxlUnVsZT4oaG9yaXpv
bnRhbFJ1bGUoKSkgOiBJbWFnZTo6U3RyZXRjaFRpbGU7CisgICAgICAgIEltYWdlOjpUaWxlUnVs
ZSB2UnVsZSA9IGlzVmVydGljYWxQaWVjZShwaWVjZSkgPyBzdGF0aWNfY2FzdDxJbWFnZTo6VGls
ZVJ1bGU+KHZlcnRpY2FsUnVsZSgpKSA6IEltYWdlOjpTdHJldGNoVGlsZTsKKyAgICAgICAgZ3Jh
cGhpY3NDb250ZXh0LT5kcmF3VGlsZWRJbWFnZShpbWFnZS5nZXQoKSwgY29sb3JTcGFjZSwgZGVz
dGluYXRpb25SZWN0c1twaWVjZV0sIHNvdXJjZVJlY3RzW3BpZWNlXSwgdGlsZVNjYWxlc1twaWVj
ZV0sIGhSdWxlLCB2UnVsZSwgb3ApOworICAgIH0KK30KKwogTmluZVBpZWNlSW1hZ2VEYXRhOjpO
aW5lUGllY2VJbWFnZURhdGEoKQogICAgIDogZmlsbChmYWxzZSkKICAgICAsIGhvcml6b250YWxS
dWxlKFN0cmV0Y2hJbWFnZVJ1bGUpCiAgICAgLCB2ZXJ0aWNhbFJ1bGUoU3RyZXRjaEltYWdlUnVs
ZSkKLSAgICAsIGltYWdlKDApCisgICAgLCBpbWFnZShudWxscHRyKQogICAgICwgaW1hZ2VTbGlj
ZXMoTGVuZ3RoKDEwMCwgUGVyY2VudCksIExlbmd0aCgxMDAsIFBlcmNlbnQpLCBMZW5ndGgoMTAw
LCBQZXJjZW50KSwgTGVuZ3RoKDEwMCwgUGVyY2VudCkpCiAgICAgLCBib3JkZXJTbGljZXMoTGVu
Z3RoKDEsIFJlbGF0aXZlKSwgTGVuZ3RoKDEsIFJlbGF0aXZlKSwgTGVuZ3RoKDEsIFJlbGF0aXZl
KSwgTGVuZ3RoKDEsIFJlbGF0aXZlKSkKICAgICAsIG91dHNldCgwKQpJbmRleDogU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL05pbmVQaWVjZUltYWdlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL05pbmVQaWVjZUltYWdlLmgJKHJldmlzaW9uIDE4
NDY1NSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9OaW5lUGllY2VJbWFnZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yLDcgKzIsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDAwIExh
cnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDIwMDAgQW50dGkgS29p
dmlzdG8gKGtvaXZpc3RvQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDIwMDAgRGlyayBNdWVs
bGVyIChtdWVsbGVyQGtkZS5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDUsIDIwMDYs
IDIwMDcsIDIwMDgsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDAzLCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDEzLCAyMDE1IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjUsOSAr
MjUsMTIgQEAKICNkZWZpbmUgTmluZVBpZWNlSW1hZ2VfaAogCiAjaW5jbHVkZSAiRGF0YVJlZi5o
IgorI2luY2x1ZGUgIkxheW91dFJlY3QuaCIKKyNpbmNsdWRlICJMYXlvdXRTaXplLmgiCiAjaW5j
bHVkZSAiTGF5b3V0VW5pdC5oIgogI2luY2x1ZGUgIkxlbmd0aEJveC5oIgogI2luY2x1ZGUgIlN0
eWxlSW1hZ2UuaCIKKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIApAQCAtMzUsNiArMzgsNzAgQEAgZW51bSBFTmluZVBpZWNlSW1hZ2VSdWxlIHsKICAgICBT
dHJldGNoSW1hZ2VSdWxlLCBSb3VuZEltYWdlUnVsZSwgU3BhY2VJbWFnZVJ1bGUsIFJlcGVhdElt
YWdlUnVsZQogfTsKIAorZW51bSBJbWFnZVBpZWNlIHsKKyAgICBNaW5QaWVjZSA9IDAsCisgICAg
VG9wTGVmdFBpZWNlID0gTWluUGllY2UsCisgICAgTGVmdFBpZWNlLAorICAgIEJvdHRvbUxlZnRQ
aWVjZSwKKyAgICBUb3BSaWdodFBpZWNlLAorICAgIFJpZ2h0UGllY2UsCisgICAgQm90dG9tUmln
aHRQaWVjZSwKKyAgICBUb3BQaWVjZSwKKyAgICBCb3R0b21QaWVjZSwKKyAgICBNaWRkbGVQaWVj
ZSwKKyAgICBNYXhQaWVjZQorfTsKKworaW5saW5lIEltYWdlUGllY2UmIG9wZXJhdG9yKysoSW1h
Z2VQaWVjZSYgcGllY2UpCit7CisgICAgcGllY2UgPSBzdGF0aWNfY2FzdDxJbWFnZVBpZWNlPihz
dGF0aWNfY2FzdDxpbnQ+KHBpZWNlKSArIDEpOworICAgIHJldHVybiBwaWVjZTsKK30KKworaW5s
aW5lIGJvb2wgaXNDb3JuZXJQaWVjZShJbWFnZVBpZWNlIHBpZWNlKQoreworICAgIHJldHVybiBw
aWVjZSA9PSBUb3BMZWZ0UGllY2UgfHwgcGllY2UgPT0gVG9wUmlnaHRQaWVjZSB8fCBwaWVjZSA9
PSBCb3R0b21MZWZ0UGllY2UgfHwgcGllY2UgPT0gQm90dG9tUmlnaHRQaWVjZTsKK30KKworaW5s
aW5lIGJvb2wgaXNNaWRkbGVQaWVjZShJbWFnZVBpZWNlIHBpZWNlKQoreworICAgIHJldHVybiBw
aWVjZSA9PSBNaWRkbGVQaWVjZTsKK30KKworaW5saW5lIGJvb2wgaXNIb3Jpem9udGFsUGllY2Uo
SW1hZ2VQaWVjZSBwaWVjZSkKK3sKKyAgICByZXR1cm4gcGllY2UgPT0gVG9wUGllY2UgfHwgcGll
Y2UgPT0gQm90dG9tUGllY2UgfHwgcGllY2UgPT0gTWlkZGxlUGllY2U7Cit9CisKK2lubGluZSBi
b29sIGlzVmVydGljYWxQaWVjZShJbWFnZVBpZWNlIHBpZWNlKQoreworICAgIHJldHVybiBwaWVj
ZSA9PSBMZWZ0UGllY2UgfHwgcGllY2UgPT0gUmlnaHRQaWVjZSB8fCBwaWVjZSA9PSBNaWRkbGVQ
aWVjZTsKK30KKworaW5saW5lIFBoeXNpY2FsQm94U2lkZSBpbWFnZVBpZWNlSG9yaXpvbnRhbFNp
ZGUoSW1hZ2VQaWVjZSBwaWVjZSkKK3sKKyAgICBpZiAocGllY2UgPT0gVG9wTGVmdFBpZWNlIHx8
IHBpZWNlID09IFRvcFBpZWNlIHx8IHBpZWNlID09IFRvcFJpZ2h0UGllY2UpCisgICAgICAgIHJl
dHVybiBUb3BTaWRlOworCisgICAgaWYgKHBpZWNlID09IEJvdHRvbUxlZnRQaWVjZSB8fCBwaWVj
ZSA9PSBCb3R0b21QaWVjZSB8fCBwaWVjZSA9PSBCb3R0b21SaWdodFBpZWNlKQorICAgICAgICBy
ZXR1cm4gQm90dG9tU2lkZTsKKworICAgIHJldHVybiBOaWxTaWRlOworfQorCitpbmxpbmUgUGh5
c2ljYWxCb3hTaWRlIGltYWdlUGllY2VWZXJ0aWNhbFNpZGUoSW1hZ2VQaWVjZSBwaWVjZSkKK3sK
KyAgICBpZiAocGllY2UgPT0gVG9wTGVmdFBpZWNlIHx8IHBpZWNlID09IExlZnRQaWVjZSB8fCBw
aWVjZSA9PSBCb3R0b21MZWZ0UGllY2UpCisgICAgICAgIHJldHVybiBMZWZ0U2lkZTsKKworICAg
IGlmIChwaWVjZSA9PSBUb3BSaWdodFBpZWNlIHx8IHBpZWNlID09IFJpZ2h0UGllY2UgfHwgcGll
Y2UgPT0gQm90dG9tUmlnaHRQaWVjZSkKKyAgICAgICAgcmV0dXJuIFJpZ2h0U2lkZTsKKworICAg
IHJldHVybiBOaWxTaWRlOworfQorCitjbGFzcyBSZW5kZXJTdHlsZTsKKwogY2xhc3MgTmluZVBp
ZWNlSW1hZ2VEYXRhIDogcHVibGljIFJlZkNvdW50ZWQ8TmluZVBpZWNlSW1hZ2VEYXRhPiB7CiBw
dWJsaWM6CiAgICAgc3RhdGljIFJlZjxOaW5lUGllY2VJbWFnZURhdGE+IGNyZWF0ZSgpIHsgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgTmluZVBpZWNlSW1hZ2VEYXRhKTsgfQpAQCAtMTIyLDYgKzE4OSwy
NSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBvdXRzZXRTaWRlLnZhbHVlKCk7CiAgICAgfQog
CisgICAgc3RhdGljIExheW91dFVuaXQgY29tcHV0ZVNsaWNlKExlbmd0aCwgTGF5b3V0VW5pdCB3
aWR0aCwgTGF5b3V0VW5pdCBzbGljZSwgTGF5b3V0VW5pdCBleHRlbnQpOworICAgIHN0YXRpYyBM
YXlvdXRCb3hFeHRlbnQgY29tcHV0ZVNsaWNlcyhjb25zdCBMYXlvdXRTaXplJiwgY29uc3QgTGVu
Z3RoQm94JiBsZW5ndGhzLCBpbnQgc2NhbGVGYWN0b3IpOworICAgIHN0YXRpYyBMYXlvdXRCb3hF
eHRlbnQgY29tcHV0ZVNsaWNlcyhjb25zdCBMYXlvdXRTaXplJiwgY29uc3QgTGVuZ3RoQm94JiBs
ZW5ndGhzLCBjb25zdCBGbG9hdEJveEV4dGVudCYgd2lkdGhzLCBjb25zdCBMYXlvdXRCb3hFeHRl
bnQmIHNsaWNlcyk7CisKKyAgICBzdGF0aWMgYm9vbCBpc0VtcHR5UGllY2VSZWN0KEltYWdlUGll
Y2UsIGNvbnN0IExheW91dEJveEV4dGVudCYgc2xpY2VzKTsKKyAgICBzdGF0aWMgYm9vbCBpc0Vt
cHR5UGllY2VSZWN0KEltYWdlUGllY2UsIGNvbnN0IFZlY3RvcjxGbG9hdFJlY3Q+JiBkZXN0aW5h
dGlvblJlY3RzLCBjb25zdCBWZWN0b3I8RmxvYXRSZWN0PiYgc291cmNlUmVjdHMpOworCisgICAg
c3RhdGljIFZlY3RvcjxGbG9hdFJlY3Q+IGNvbXB1dGVJbnRyaW5zaWNSZWN0cyhjb25zdCBGbG9h
dFJlY3QmIG91dGVyLCBjb25zdCBMYXlvdXRCb3hFeHRlbnQmIHNsaWNlcywgZmxvYXQgZGV2aWNl
U2NhbGVGYWN0b3IpOworICAgIHN0YXRpYyBWZWN0b3I8RmxvYXRSZWN0PiBjb21wdXRlTm9uSW50
cmluc2ljUmVjdHMoY29uc3QgVmVjdG9yPEZsb2F0UmVjdD4mIGludHJpbnNpY1JlY3RzLCBjb25z
dCBMYXlvdXRCb3hFeHRlbnQmIHNsaWNlcyk7CisKKyAgICBzdGF0aWMgdm9pZCBzY2FsZVNsaWNl
c0lmTmVlZGVkKGNvbnN0IExheW91dFNpemUmLCBMYXlvdXRCb3hFeHRlbnQmIHNsaWNlcywgaW50
IHNjYWxlRmFjdG9yKTsKKworICAgIHN0YXRpYyBGbG9hdFNpemUgY29tcHV0ZUludHJpbnNpY1Np
ZGVUaWxlU2NhbGUoSW1hZ2VQaWVjZSwgY29uc3QgVmVjdG9yPEZsb2F0UmVjdD4mIGRlc3RpbmF0
aW9uUmVjdHMsIGNvbnN0IFZlY3RvcjxGbG9hdFJlY3Q+JiBzb3VyY2VSZWN0cyk7CisgICAgc3Rh
dGljIEZsb2F0U2l6ZSBjb21wdXRlSW50cmluc2ljTWlkZGxlVGlsZVNjYWxlKGNvbnN0IFZlY3Rv
cjxGbG9hdFNpemU+JiBzY2FsZXMsIGNvbnN0IFZlY3RvcjxGbG9hdFJlY3Q+JiBkZXN0aW5hdGlv
blJlY3RzLCBjb25zdCBWZWN0b3I8RmxvYXRSZWN0PiYgc291cmNlUmVjdHMsIEVOaW5lUGllY2VJ
bWFnZVJ1bGUgaFJ1bGUsIEVOaW5lUGllY2VJbWFnZVJ1bGUgdlJ1bGUpOworICAgIHN0YXRpYyBW
ZWN0b3I8RmxvYXRTaXplPiBjb21wdXRlSW50cmluc2ljVGlsZVNjYWxlcyhjb25zdCBWZWN0b3I8
RmxvYXRSZWN0PiYgZGVzdGluYXRpb25SZWN0cywgY29uc3QgVmVjdG9yPEZsb2F0UmVjdD4mIHNv
dXJjZVJlY3RzLCBFTmluZVBpZWNlSW1hZ2VSdWxlIGhSdWxlLCBFTmluZVBpZWNlSW1hZ2VSdWxl
IHZSdWxlKTsKKyAgICBzdGF0aWMgVmVjdG9yPEZsb2F0U2l6ZT4gY29tcHV0ZU5vbkludHJpbnNp
Y1RpbGVTY2FsZXMoKTsKKworICAgIHZvaWQgcGFpbnQoR3JhcGhpY3NDb250ZXh0KiwgUmVuZGVy
RWxlbWVudCosIGNvbnN0IFJlbmRlclN0eWxlJiwgY29uc3QgTGF5b3V0UmVjdCYgZGVzdGluYXRp
b24sIGNvbnN0IExheW91dFNpemUmIHNvdXJjZSwgYm9vbCBpbnRyaW5zaWNTb3VyY2UsIGZsb2F0
IGRldmljZVNjYWxlRmFjdG9yLCBDb21wb3NpdGVPcGVyYXRvcikgY29uc3Q7CisKIHByaXZhdGU6
CiAgICAgRGF0YVJlZjxOaW5lUGllY2VJbWFnZURhdGE+IG1fZGF0YTsKIH07CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAJKHJldmlzaW9u
IDE4NDY1NSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTkyMSwxMCArOTIxLDEwIEBAIHZvaWQgUmVuZGVyU3R5bGU6
OnNldE1hc2tJbWFnZShjb25zdCBWZWMKIHZvaWQgUmVuZGVyU3R5bGU6OnNldENsaXAoTGVuZ3Ro
IHRvcCwgTGVuZ3RoIHJpZ2h0LCBMZW5ndGggYm90dG9tLCBMZW5ndGggbGVmdCkKIHsKICAgICBT
dHlsZVZpc3VhbERhdGEqIGRhdGEgPSB2aXN1YWwuYWNjZXNzKCk7Ci0gICAgZGF0YS0+Y2xpcC5t
X3RvcCA9IHRvcDsKLSAgICBkYXRhLT5jbGlwLm1fcmlnaHQgPSByaWdodDsKLSAgICBkYXRhLT5j
bGlwLm1fYm90dG9tID0gYm90dG9tOwotICAgIGRhdGEtPmNsaXAubV9sZWZ0ID0gbGVmdDsKKyAg
ICBkYXRhLT5jbGlwLnRvcCgpID0gdG9wOworICAgIGRhdGEtPmNsaXAucmlnaHQoKSA9IHJpZ2h0
OworICAgIGRhdGEtPmNsaXAuYm90dG9tKCkgPSBib3R0b207CisgICAgZGF0YS0+Y2xpcC5sZWZ0
KCkgPSBsZWZ0OwogfQogCiB2b2lkIFJlbmRlclN0eWxlOjphZGRDdXJzb3IoUGFzc1JlZlB0cjxT
dHlsZUltYWdlPiBpbWFnZSwgY29uc3QgSW50UG9pbnQmIGhvdFNwb3QpCkBAIC0xMzA5LDEwICsx
MzA5LDEwIEBAIGNvbnN0IFZlY3RvcjxTdHlsZURhc2hib2FyZFJlZ2lvbj4mIFJlbmQKICAgICBp
ZiAoIW5vbmVMaXN0SW5pdGlhbGl6ZWQpIHsKICAgICAgICAgU3R5bGVEYXNoYm9hcmRSZWdpb24g
cmVnaW9uOwogICAgICAgICByZWdpb24ubGFiZWwgPSAiIjsKLSAgICAgICAgcmVnaW9uLm9mZnNl
dC5tX3RvcCAgPSBMZW5ndGgoKTsKLSAgICAgICAgcmVnaW9uLm9mZnNldC5tX3JpZ2h0ID0gTGVu
Z3RoKCk7Ci0gICAgICAgIHJlZ2lvbi5vZmZzZXQubV9ib3R0b20gPSBMZW5ndGgoKTsKLSAgICAg
ICAgcmVnaW9uLm9mZnNldC5tX2xlZnQgPSBMZW5ndGgoKTsKKyAgICAgICAgcmVnaW9uLm9mZnNl
dC50b3AoKSAgPSBMZW5ndGgoKTsKKyAgICAgICAgcmVnaW9uLm9mZnNldC5yaWdodCgpID0gTGVu
Z3RoKCk7CisgICAgICAgIHJlZ2lvbi5vZmZzZXQuYm90dG9tKCkgPSBMZW5ndGgoKTsKKyAgICAg
ICAgcmVnaW9uLm9mZnNldC5sZWZ0KCkgPSBMZW5ndGgoKTsKICAgICAgICAgcmVnaW9uLnR5cGUg
PSBTdHlsZURhc2hib2FyZFJlZ2lvbjo6Tm9uZTsKICAgICAgICAgbm9uZUxpc3QuYXBwZW5kKHJl
Z2lvbik7CiAgICAgICAgIG5vbmVMaXN0SW5pdGlhbGl6ZWQgPSB0cnVlOwpJbmRleDogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgJKHJldmlzaW9uIDE4NDY1
NSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNyw3ICszNyw2IEBACiAjaW5jbHVkZSAiRm9udEJhc2VsaW5lLmgiCiAj
aW5jbHVkZSAiRm9udERlc2NyaXB0aW9uLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NUeXBlcy5oIgot
I2luY2x1ZGUgIkxheW91dEJveEV4dGVudC5oIgogI2luY2x1ZGUgIkxlbmd0aC5oIgogI2luY2x1
ZGUgIkxlbmd0aEJveC5oIgogI2luY2x1ZGUgIkxlbmd0aEZ1bmN0aW9ucy5oIgpAQCAtNTMxLDEy
ICs1MzAsMTIgQEAgcHVibGljOgogICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBSZW5kZXJTdHls
ZSYgb3RoZXIpIGNvbnN0OwogICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBSZW5kZXJTdHlsZSYg
b3RoZXIpIGNvbnN0IHsgcmV0dXJuICEoKnRoaXMgPT0gb3RoZXIpOyB9CiAgICAgYm9vbCBpc0Zs
b2F0aW5nKCkgY29uc3QgeyByZXR1cm4gbm9uaW5oZXJpdGVkX2ZsYWdzLmlzRmxvYXRpbmcoKTsg
fQotICAgIGJvb2wgaGFzTWFyZ2luKCkgY29uc3QgeyByZXR1cm4gc3Vycm91bmQtPm1hcmdpbi5u
b25aZXJvKCk7IH0KKyAgICBib29sIGhhc01hcmdpbigpIGNvbnN0IHsgcmV0dXJuICFzdXJyb3Vu
ZC0+bWFyZ2luLmlzWmVybygpOyB9CiAgICAgYm9vbCBoYXNCb3JkZXIoKSBjb25zdCB7IHJldHVy
biBzdXJyb3VuZC0+Ym9yZGVyLmhhc0JvcmRlcigpOyB9CiAgICAgYm9vbCBoYXNCb3JkZXJGaWxs
KCkgY29uc3QgeyByZXR1cm4gc3Vycm91bmQtPmJvcmRlci5oYXNGaWxsKCk7IH0KICAgICBib29s
IGhhc0JvcmRlckRlY29yYXRpb24oKSBjb25zdCB7IHJldHVybiBoYXNCb3JkZXIoKSB8fCBoYXNC
b3JkZXJGaWxsKCk7IH0KLSAgICBib29sIGhhc1BhZGRpbmcoKSBjb25zdCB7IHJldHVybiBzdXJy
b3VuZC0+cGFkZGluZy5ub25aZXJvKCk7IH0KLSAgICBib29sIGhhc09mZnNldCgpIGNvbnN0IHsg
cmV0dXJuIHN1cnJvdW5kLT5vZmZzZXQubm9uWmVybygpOyB9CisgICAgYm9vbCBoYXNQYWRkaW5n
KCkgY29uc3QgeyByZXR1cm4gIXN1cnJvdW5kLT5wYWRkaW5nLmlzWmVybygpOyB9CisgICAgYm9v
bCBoYXNPZmZzZXQoKSBjb25zdCB7IHJldHVybiAhc3Vycm91bmQtPm9mZnNldC5pc1plcm8oKTsg
fQogICAgIGJvb2wgaGFzTWFyZ2luQmVmb3JlUXVpcmsoKSBjb25zdCB7IHJldHVybiBtYXJnaW5C
ZWZvcmUoKS5oYXNRdWlyaygpOyB9CiAgICAgYm9vbCBoYXNNYXJnaW5BZnRlclF1aXJrKCkgY29u
c3QgeyByZXR1cm4gbWFyZ2luQWZ0ZXIoKS5oYXNRdWlyaygpOyB9CiAKQEAgLTU1OCw3ICs1NTcs
NyBAQCBwdWJsaWM6CiAgICAgTGF5b3V0Qm94RXh0ZW50IGltYWdlT3V0c2V0cyhjb25zdCBOaW5l
UGllY2VJbWFnZSYpIGNvbnN0OwogICAgIGJvb2wgaGFzQm9yZGVySW1hZ2VPdXRzZXRzKCkgY29u
c3QKICAgICB7Ci0gICAgICAgIHJldHVybiBib3JkZXJJbWFnZSgpLmhhc0ltYWdlKCkgJiYgYm9y
ZGVySW1hZ2UoKS5vdXRzZXQoKS5ub25aZXJvKCk7CisgICAgICAgIHJldHVybiBib3JkZXJJbWFn
ZSgpLmhhc0ltYWdlKCkgJiYgIWJvcmRlckltYWdlKCkub3V0c2V0KCkuaXNaZXJvKCk7CiAgICAg
fQogICAgIExheW91dEJveEV4dGVudCBib3JkZXJJbWFnZU91dHNldHMoKSBjb25zdAogICAgIHsK
QEAgLTU5NSw4ICs1OTQsOCBAQCBwdWJsaWM6CiAgICAgY29uc3QgTGVuZ3RoJiBib3R0b20oKSBj
b25zdCB7IHJldHVybiBzdXJyb3VuZC0+b2Zmc2V0LmJvdHRvbSgpOyB9CiAKICAgICAvLyBBY2Nl
c3NvcnMgZm9yIHBvc2l0aW9uZWQgb2JqZWN0IGVkZ2VzIHRoYXQgdGFrZSBpbnRvIGFjY291bnQg
d3JpdGluZyBtb2RlLgotICAgIGNvbnN0IExlbmd0aCYgbG9naWNhbExlZnQoKSBjb25zdCB7IHJl
dHVybiBzdXJyb3VuZC0+b2Zmc2V0LmxvZ2ljYWxMZWZ0KHdyaXRpbmdNb2RlKCkpOyB9Ci0gICAg
Y29uc3QgTGVuZ3RoJiBsb2dpY2FsUmlnaHQoKSBjb25zdCB7IHJldHVybiBzdXJyb3VuZC0+b2Zm
c2V0LmxvZ2ljYWxSaWdodCh3cml0aW5nTW9kZSgpKTsgfQorICAgIGNvbnN0IExlbmd0aCYgbG9n
aWNhbExlZnQoKSBjb25zdCB7IHJldHVybiBzdXJyb3VuZC0+b2Zmc2V0LnN0YXJ0KHdyaXRpbmdN
b2RlKCkpOyB9CisgICAgY29uc3QgTGVuZ3RoJiBsb2dpY2FsUmlnaHQoKSBjb25zdCB7IHJldHVy
biBzdXJyb3VuZC0+b2Zmc2V0LmVuZCh3cml0aW5nTW9kZSgpKTsgfQogICAgIGNvbnN0IExlbmd0
aCYgbG9naWNhbFRvcCgpIGNvbnN0IHsgcmV0dXJuIHN1cnJvdW5kLT5vZmZzZXQuYmVmb3JlKHdy
aXRpbmdNb2RlKCkpOyB9CiAgICAgY29uc3QgTGVuZ3RoJiBsb2dpY2FsQm90dG9tKCkgY29uc3Qg
eyByZXR1cm4gc3Vycm91bmQtPm9mZnNldC5hZnRlcih3cml0aW5nTW9kZSgpKTsgfQogCkBAIC02
NjIsNyArNjYxLDggQEAgcHVibGljOgogICAgIGZsb2F0IGJvcmRlckJvdHRvbVdpZHRoKCkgY29u
c3QgeyByZXR1cm4gc3Vycm91bmQtPmJvcmRlci5ib3JkZXJCb3R0b21XaWR0aCgpOyB9CiAgICAg
RUJvcmRlclN0eWxlIGJvcmRlckJvdHRvbVN0eWxlKCkgY29uc3QgeyByZXR1cm4gc3Vycm91bmQt
PmJvcmRlci5ib3R0b20oKS5zdHlsZSgpOyB9CiAgICAgYm9vbCBib3JkZXJCb3R0b21Jc1RyYW5z
cGFyZW50KCkgY29uc3QgeyByZXR1cm4gc3Vycm91bmQtPmJvcmRlci5ib3R0b20oKS5pc1RyYW5z
cGFyZW50KCk7IH0KLSAgICAKKyAgICBGbG9hdEJveEV4dGVudCBib3JkZXJXaWR0aCgpIGNvbnN0
IHsgcmV0dXJuIHN1cnJvdW5kLT5ib3JkZXIuYm9yZGVyV2lkdGgoKTsgfQorCiAgICAgZmxvYXQg
Ym9yZGVyQmVmb3JlV2lkdGgoKSBjb25zdDsKICAgICBmbG9hdCBib3JkZXJBZnRlcldpZHRoKCkg
Y29uc3Q7CiAgICAgZmxvYXQgYm9yZGVyU3RhcnRXaWR0aCgpIGNvbnN0OwpAQCAtMTIwMCwxMCAr
MTIwMCwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQb3NpdGlvbihFUG9zaXRpb24gdikgeyBu
b25pbmhlcml0ZWRfZmxhZ3Muc2V0UG9zaXRpb24odik7IH0KICAgICB2b2lkIHNldEZsb2F0aW5n
KEVGbG9hdCB2KSB7IG5vbmluaGVyaXRlZF9mbGFncy5zZXRGbG9hdGluZyh2KTsgfQogCi0gICAg
dm9pZCBzZXRMZWZ0KExlbmd0aCB2KSB7IFNFVF9WQVIoc3Vycm91bmQsIG9mZnNldC5tX2xlZnQs
IFdURjo6bW92ZSh2KSk7IH0KLSAgICB2b2lkIHNldFJpZ2h0KExlbmd0aCB2KSB7IFNFVF9WQVIo
c3Vycm91bmQsIG9mZnNldC5tX3JpZ2h0LCBXVEY6Om1vdmUodikpOyB9Ci0gICAgdm9pZCBzZXRU
b3AoTGVuZ3RoIHYpIHsgU0VUX1ZBUihzdXJyb3VuZCwgb2Zmc2V0Lm1fdG9wLCBXVEY6Om1vdmUo
dikpOyB9Ci0gICAgdm9pZCBzZXRCb3R0b20oTGVuZ3RoIHYpIHsgU0VUX1ZBUihzdXJyb3VuZCwg
b2Zmc2V0Lm1fYm90dG9tLCBXVEY6Om1vdmUodikpOyB9CisgICAgdm9pZCBzZXRMZWZ0KExlbmd0
aCB2KSB7IFNFVF9WQVIoc3Vycm91bmQsIG9mZnNldC5sZWZ0KCksIFdURjo6bW92ZSh2KSk7IH0K
KyAgICB2b2lkIHNldFJpZ2h0KExlbmd0aCB2KSB7IFNFVF9WQVIoc3Vycm91bmQsIG9mZnNldC5y
aWdodCgpLCBXVEY6Om1vdmUodikpOyB9CisgICAgdm9pZCBzZXRUb3AoTGVuZ3RoIHYpIHsgU0VU
X1ZBUihzdXJyb3VuZCwgb2Zmc2V0LnRvcCgpLCBXVEY6Om1vdmUodikpOyB9CisgICAgdm9pZCBz
ZXRCb3R0b20oTGVuZ3RoIHYpIHsgU0VUX1ZBUihzdXJyb3VuZCwgb2Zmc2V0LmJvdHRvbSgpLCBX
VEY6Om1vdmUodikpOyB9CiAKICAgICB2b2lkIHNldFdpZHRoKExlbmd0aCB2KSB7IFNFVF9WQVIo
bV9ib3gsIG1fd2lkdGgsIFdURjo6bW92ZSh2KSk7IH0KICAgICB2b2lkIHNldEhlaWdodChMZW5n
dGggdikgeyBTRVRfVkFSKG1fYm94LCBtX2hlaWdodCwgV1RGOjptb3ZlKHYpKTsgfQpAQCAtMTIz
OSwxMCArMTIzOSwxMCBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBTdHlsZURhc2hib2FyZFJl
Z2lvbiByZWdpb247CiAgICAgICAgIHJlZ2lvbi5sYWJlbCA9IGxhYmVsOwotICAgICAgICByZWdp
b24ub2Zmc2V0Lm1fdG9wID0gV1RGOjptb3ZlKHQpOwotICAgICAgICByZWdpb24ub2Zmc2V0Lm1f
cmlnaHQgPSBXVEY6Om1vdmUocik7Ci0gICAgICAgIHJlZ2lvbi5vZmZzZXQubV9ib3R0b20gPSBX
VEY6Om1vdmUoYik7Ci0gICAgICAgIHJlZ2lvbi5vZmZzZXQubV9sZWZ0ID0gV1RGOjptb3ZlKGwp
OworICAgICAgICByZWdpb24ub2Zmc2V0LnRvcCgpID0gV1RGOjptb3ZlKHQpOworICAgICAgICBy
ZWdpb24ub2Zmc2V0LnJpZ2h0KCkgPSBXVEY6Om1vdmUocik7CisgICAgICAgIHJlZ2lvbi5vZmZz
ZXQuYm90dG9tKCkgPSBXVEY6Om1vdmUoYik7CisgICAgICAgIHJlZ2lvbi5vZmZzZXQubGVmdCgp
ID0gV1RGOjptb3ZlKGwpOwogICAgICAgICByZWdpb24udHlwZSA9IHR5cGU7CiAgICAgICAgIGlm
ICghYXBwZW5kKQogICAgICAgICAgICAgcmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1f
ZGFzaGJvYXJkUmVnaW9ucy5jbGVhcigpOwpAQCAtMTMyMywxMCArMTMyMywxMCBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzZXRWZXJ0aWNhbEFsaWduTGVuZ3RoKExlbmd0aCBsZW5ndGgpIHsgc2V0VmVy
dGljYWxBbGlnbihMRU5HVEgpOyBTRVRfVkFSKG1fYm94LCBtX3ZlcnRpY2FsQWxpZ24sIFdURjo6
bW92ZShsZW5ndGgpKTsgfQogCiAgICAgdm9pZCBzZXRIYXNDbGlwKGJvb2wgYiA9IHRydWUpIHsg
U0VUX1ZBUih2aXN1YWwsIGhhc0NsaXAsIGIpOyB9Ci0gICAgdm9pZCBzZXRDbGlwTGVmdChMZW5n
dGggbGVuZ3RoKSB7IFNFVF9WQVIodmlzdWFsLCBjbGlwLm1fbGVmdCwgV1RGOjptb3ZlKGxlbmd0
aCkpOyB9Ci0gICAgdm9pZCBzZXRDbGlwUmlnaHQoTGVuZ3RoIGxlbmd0aCkgeyBTRVRfVkFSKHZp
c3VhbCwgY2xpcC5tX3JpZ2h0LCBXVEY6Om1vdmUobGVuZ3RoKSk7IH0KLSAgICB2b2lkIHNldENs
aXBUb3AoTGVuZ3RoIGxlbmd0aCkgeyBTRVRfVkFSKHZpc3VhbCwgY2xpcC5tX3RvcCwgV1RGOjpt
b3ZlKGxlbmd0aCkpOyB9Ci0gICAgdm9pZCBzZXRDbGlwQm90dG9tKExlbmd0aCBsZW5ndGgpIHsg
U0VUX1ZBUih2aXN1YWwsIGNsaXAubV9ib3R0b20sIFdURjo6bW92ZShsZW5ndGgpKTsgfQorICAg
IHZvaWQgc2V0Q2xpcExlZnQoTGVuZ3RoIGxlbmd0aCkgeyBTRVRfVkFSKHZpc3VhbCwgY2xpcC5s
ZWZ0KCksIFdURjo6bW92ZShsZW5ndGgpKTsgfQorICAgIHZvaWQgc2V0Q2xpcFJpZ2h0KExlbmd0
aCBsZW5ndGgpIHsgU0VUX1ZBUih2aXN1YWwsIGNsaXAucmlnaHQoKSwgV1RGOjptb3ZlKGxlbmd0
aCkpOyB9CisgICAgdm9pZCBzZXRDbGlwVG9wKExlbmd0aCBsZW5ndGgpIHsgU0VUX1ZBUih2aXN1
YWwsIGNsaXAudG9wKCksIFdURjo6bW92ZShsZW5ndGgpKTsgfQorICAgIHZvaWQgc2V0Q2xpcEJv
dHRvbShMZW5ndGggbGVuZ3RoKSB7IFNFVF9WQVIodmlzdWFsLCBjbGlwLmJvdHRvbSgpLCBXVEY6
Om1vdmUobGVuZ3RoKSk7IH0KICAgICB2b2lkIHNldENsaXAoTGVuZ3RoIHRvcCwgTGVuZ3RoIHJp
Z2h0LCBMZW5ndGggYm90dG9tLCBMZW5ndGggbGVmdCk7CiAgICAgdm9pZCBzZXRDbGlwKExlbmd0
aEJveCBib3gpIHsgU0VUX1ZBUih2aXN1YWwsIGNsaXAsIFdURjo6bW92ZShib3gpKTsgfQogCkBA
IC0xNDM0LDE5ICsxNDM0LDE5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldExpc3RTdHlsZVBvc2l0
aW9uKEVMaXN0U3R5bGVQb3NpdGlvbiB2KSB7IGluaGVyaXRlZF9mbGFncy5fbGlzdF9zdHlsZV9w
b3NpdGlvbiA9IHY7IH0KIAogICAgIHZvaWQgcmVzZXRNYXJnaW4oKSB7IFNFVF9WQVIoc3Vycm91
bmQsIG1hcmdpbiwgTGVuZ3RoQm94KEZpeGVkKSk7IH0KLSAgICB2b2lkIHNldE1hcmdpblRvcChM
ZW5ndGggbGVuZ3RoKSB7IFNFVF9WQVIoc3Vycm91bmQsIG1hcmdpbi5tX3RvcCwgV1RGOjptb3Zl
KGxlbmd0aCkpOyB9Ci0gICAgdm9pZCBzZXRNYXJnaW5Cb3R0b20oTGVuZ3RoIGxlbmd0aCkgeyBT
RVRfVkFSKHN1cnJvdW5kLCBtYXJnaW4ubV9ib3R0b20sIFdURjo6bW92ZShsZW5ndGgpKTsgfQot
ICAgIHZvaWQgc2V0TWFyZ2luTGVmdChMZW5ndGggbGVuZ3RoKSB7IFNFVF9WQVIoc3Vycm91bmQs
IG1hcmdpbi5tX2xlZnQsIFdURjo6bW92ZShsZW5ndGgpKTsgfQotICAgIHZvaWQgc2V0TWFyZ2lu
UmlnaHQoTGVuZ3RoIGxlbmd0aCkgeyBTRVRfVkFSKHN1cnJvdW5kLCBtYXJnaW4ubV9yaWdodCwg
V1RGOjptb3ZlKGxlbmd0aCkpOyB9CisgICAgdm9pZCBzZXRNYXJnaW5Ub3AoTGVuZ3RoIGxlbmd0
aCkgeyBTRVRfVkFSKHN1cnJvdW5kLCBtYXJnaW4udG9wKCksIFdURjo6bW92ZShsZW5ndGgpKTsg
fQorICAgIHZvaWQgc2V0TWFyZ2luQm90dG9tKExlbmd0aCBsZW5ndGgpIHsgU0VUX1ZBUihzdXJy
b3VuZCwgbWFyZ2luLmJvdHRvbSgpLCBXVEY6Om1vdmUobGVuZ3RoKSk7IH0KKyAgICB2b2lkIHNl
dE1hcmdpbkxlZnQoTGVuZ3RoIGxlbmd0aCkgeyBTRVRfVkFSKHN1cnJvdW5kLCBtYXJnaW4ubGVm
dCgpLCBXVEY6Om1vdmUobGVuZ3RoKSk7IH0KKyAgICB2b2lkIHNldE1hcmdpblJpZ2h0KExlbmd0
aCBsZW5ndGgpIHsgU0VUX1ZBUihzdXJyb3VuZCwgbWFyZ2luLnJpZ2h0KCksIFdURjo6bW92ZShs
ZW5ndGgpKTsgfQogICAgIHZvaWQgc2V0TWFyZ2luU3RhcnQoTGVuZ3RoKTsKICAgICB2b2lkIHNl
dE1hcmdpbkVuZChMZW5ndGgpOwogCiAgICAgdm9pZCByZXNldFBhZGRpbmcoKSB7IFNFVF9WQVIo
c3Vycm91bmQsIHBhZGRpbmcsIExlbmd0aEJveChBdXRvKSk7IH0KICAgICB2b2lkIHNldFBhZGRp
bmdCb3goTGVuZ3RoQm94IGJveCkgeyBTRVRfVkFSKHN1cnJvdW5kLCBwYWRkaW5nLCBXVEY6Om1v
dmUoYm94KSk7IH0KLSAgICB2b2lkIHNldFBhZGRpbmdUb3AoTGVuZ3RoIGxlbmd0aCkgeyBTRVRf
VkFSKHN1cnJvdW5kLCBwYWRkaW5nLm1fdG9wLCBXVEY6Om1vdmUobGVuZ3RoKSk7IH0KLSAgICB2
b2lkIHNldFBhZGRpbmdCb3R0b20oTGVuZ3RoIGxlbmd0aCkgeyBTRVRfVkFSKHN1cnJvdW5kLCBw
YWRkaW5nLm1fYm90dG9tLCBXVEY6Om1vdmUobGVuZ3RoKSk7IH0KLSAgICB2b2lkIHNldFBhZGRp
bmdMZWZ0KExlbmd0aCBsZW5ndGgpIHsgU0VUX1ZBUihzdXJyb3VuZCwgcGFkZGluZy5tX2xlZnQs
IFdURjo6bW92ZShsZW5ndGgpKTsgfQotICAgIHZvaWQgc2V0UGFkZGluZ1JpZ2h0KExlbmd0aCBs
ZW5ndGgpIHsgU0VUX1ZBUihzdXJyb3VuZCwgcGFkZGluZy5tX3JpZ2h0LCBXVEY6Om1vdmUobGVu
Z3RoKSk7IH0KKyAgICB2b2lkIHNldFBhZGRpbmdUb3AoTGVuZ3RoIGxlbmd0aCkgeyBTRVRfVkFS
KHN1cnJvdW5kLCBwYWRkaW5nLnRvcCgpLCBXVEY6Om1vdmUobGVuZ3RoKSk7IH0KKyAgICB2b2lk
IHNldFBhZGRpbmdCb3R0b20oTGVuZ3RoIGxlbmd0aCkgeyBTRVRfVkFSKHN1cnJvdW5kLCBwYWRk
aW5nLmJvdHRvbSgpLCBXVEY6Om1vdmUobGVuZ3RoKSk7IH0KKyAgICB2b2lkIHNldFBhZGRpbmdM
ZWZ0KExlbmd0aCBsZW5ndGgpIHsgU0VUX1ZBUihzdXJyb3VuZCwgcGFkZGluZy5sZWZ0KCksIFdU
Rjo6bW92ZShsZW5ndGgpKTsgfQorICAgIHZvaWQgc2V0UGFkZGluZ1JpZ2h0KExlbmd0aCBsZW5n
dGgpIHsgU0VUX1ZBUihzdXJyb3VuZCwgcGFkZGluZy5yaWdodCgpLCBXVEY6Om1vdmUobGVuZ3Ro
KSk7IH0KIAogICAgIHZvaWQgc2V0Q3Vyc29yKEVDdXJzb3IgYykgeyBpbmhlcml0ZWRfZmxhZ3Mu
X2N1cnNvcl9zdHlsZSA9IGM7IH0KICAgICB2b2lkIGFkZEN1cnNvcihQYXNzUmVmUHRyPFN0eWxl
SW1hZ2U+LCBjb25zdCBJbnRQb2ludCYgaG90U3BvdCA9IEludFBvaW50KCkpOwpJbmRleDogTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwko
cmV2aXNpb24gMTg0NjgwKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMjEgQEAKKzIwMTUtMDUtMjAgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3Vo
YWxsYXdhQGFwcGxlLmNvbT4KKworICAgICAgICBBbiBTVkcgd2l0aCBubyBpbnRyaW5zaWMgc2l6
ZSBkb2VzIG5vdCBkcmF3IGNvcnJlY3Qgc2xpY2VzIHdoZW4gdXNlZCBhcyBhIGJvcmRlci1pbWFn
ZSBmb3IgYW4gSFRNTCBlbGVtZW50LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTM5NDA1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBmYXN0L2JvcmRlcnMvYm9yZGVyLWltYWdlLWZpbGwtbm8taW50cmlu
c2ljLXNpemUtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ib3JkZXJzL2Jv
cmRlci1pbWFnZS1maWxsLW5vLWludHJpbnNpYy1zaXplLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvYm9yZGVycy9yZXNvdXJjZXMvc3ZnLWJvcmRlci0xMDB4MTAwLWludHJpbnNpYy5zdmc6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvYm9yZGVycy9yZXNvdXJjZXMvc3ZnLWJvcmRlci0xNDB4
MTQwLWludHJpbnNpYy5zdmc6IEFkZGVkLgorICAgICAgICAqIGZhc3QvYm9yZGVycy9yZXNvdXJj
ZXMvc3ZnLWJvcmRlci1uby1pbnRyaW5zaWMuc3ZnOiBBZGRlZC4KKyAgICAgICAgTWFrZSBzdXJl
IHRoZSBzbGljZXMgb2YgdGhlIGJvcmRlci1pbWFnZSBhcmUgZHJhd24gY29ycmVjdGx5LiBXaGVu
IHVzaW5nIGFuCisgICAgICAgIGltYWdlIHdpdGggbm8gaW50cmluc2ljIHNpemUsIGFsbCB0aGUg
c2xpY2VzIGhhcyB0byBiZSBnb3R0ZW4gZnJvbSAoMCwgMCkKKyAgICAgICAgb2YgdGhlIHNvdXJj
ZSBpbWFnZS4KKyAgICAgICAgCisgICAgICAgICogVGVzdEV4cGVjdGF0aW9uczogUmVtb3ZlZCBw
cmV2aW91c2x5LWZhaWxpbmcgdGVzdC4KKwogMjAxNS0wNS0yMCAgQ2hyaXMgRmxlaXphY2ggIDxj
ZmxlaXphY2hAYXBwbGUuY29tPgogCiAgICAgICAgIEFYOiBpbXByb3ZlIGxpc3QgaGV1cmlzdGlj
cyAocHJlc2VudGF0aW9uYWwgdXNlIHZlcnN1cyBhY3R1YWwgbGlzdHMpCkluZGV4OiBMYXlvdXRU
ZXN0cy9UZXN0RXhwZWN0YXRpb25zCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL1Rlc3RFeHBl
Y3RhdGlvbnMJKHJldmlzaW9uIDE4NDY1NSkKKysrIExheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlv
bnMJKHdvcmtpbmcgY29weSkKQEAgLTQzMyw3ICs0MzMsNiBAQCB3ZWJraXQub3JnL2IvMTM5MjY2
IGltcG9ydGVkL21vemlsbGEvc3ZnCiB3ZWJraXQub3JnL2IvMTM5MjgyIGltcG9ydGVkL21vemls
bGEvc3ZnL2ltYWdlL2ltYWdlLWZpbHRlci0wMS5zdmcgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIHdl
YmtpdC5vcmcvYi8xMzkzMjIgaW1wb3J0ZWQvbW96aWxsYS9zdmcvdGV4dC9keW5hbWljLW5vbi1z
Y2FsaW5nLXN0cm9rZS5zdmcgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xMzk0
MDcgaW1wb3J0ZWQvbW96aWxsYS9zdmcvYXMtaW1hZ2UvYm9yZGVyLWltYWdlLXNpbXBsZS0xLmh0
bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8xMzk0MDUgaW1wb3J0ZWQvbW96
aWxsYS9zdmcvYXMtaW1hZ2UvYm9yZGVyLWltYWdlLXNpbXBsZS0yLmh0bWwgWyBJbWFnZU9ubHlG
YWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xMzk0MTIgaW1wb3J0ZWQvbW96aWxsYS9zdmcvZmlsdGVy
cy9zdmctZmlsdGVyLWNoYWlucy9jbGlwLWlucHV0LnN2ZyBbIEltYWdlT25seUZhaWx1cmUgXQog
d2Via2l0Lm9yZy9iLzEzOTQxMiBpbXBvcnRlZC9tb3ppbGxhL3N2Zy9maWx0ZXJzL3N2Zy1maWx0
ZXItY2hhaW5zL2NsaXAtb3V0cHV0LnN2ZyBbIEltYWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9y
Zy9iLzEzOTQxNCBpbXBvcnRlZC9tb3ppbGxhL3N2Zy9maWx0ZXJzL2ZlQ29sb3JNYXRyaXgtMS5z
dmcgWyBJbWFnZU9ubHlGYWlsdXJlIF0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvYm9yZGVycy9i
b3JkZXItaW1hZ2UtZmlsbC1uby1pbnRyaW5zaWMtc2l6ZS1leHBlY3RlZC5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYm9yZGVycy9ib3JkZXItaW1hZ2UtZmlsbC1uby1pbnRy
aW5zaWMtc2l6ZS1leHBlY3RlZC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFz
dC9ib3JkZXJzL2JvcmRlci1pbWFnZS1maWxsLW5vLWludHJpbnNpYy1zaXplLWV4cGVjdGVkLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzOCBAQAorPCFET0NUWVBFIEhUTUw+Cis8aGVh
ZD4KKyAgPHN0eWxlPgorICAgIC5ib3ggeworICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgIHdp
ZHRoOiAxMDBweDsKKyAgICAgIG1hcmdpbjogMTBweDsKKyAgICAgIGRpc3BsYXk6IGlubGluZS1i
bG9jazsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKKyAgICB9CisgICAgLmJvcmRlciB7
CisgICAgICBib3JkZXI6IDIwcHggc29saWQ7CisgICAgfQorICAgIC5uby1ib3JkZXIgeworICAg
ICAgYm9yZGVyOiAwcHggbm9uZTsKKyAgICB9CisgICAgLmJvcmRlci1pbWFnZS0xMDAtaW50cmlu
c2ljIHsKKyAgICAgICBib3JkZXItaW1hZ2U6IHVybCgncmVzb3VyY2VzL3N2Zy1ib3JkZXItMTAw
eDEwMC1pbnRyaW5zaWMuc3ZnJykgMCBmaWxsOworICAgIH0KKyAgICAuYm9yZGVyLWltYWdlLTEw
MC1pbnRyaW5zaWMtc2xpY2UgeworICAgICAgIGJvcmRlci1pbWFnZTogdXJsKCdyZXNvdXJjZXMv
c3ZnLWJvcmRlci0xMDB4MTAwLWludHJpbnNpYy5zdmcnKSAyMCBmaWxsOworICAgIH0KKyAgICAu
Ym9yZGVyLWltYWdlLTE0MC1pbnRyaW5zaWMtc2xpY2UgeworICAgICAgIGJvcmRlci1pbWFnZTog
dXJsKCdyZXNvdXJjZXMvc3ZnLWJvcmRlci0xNDB4MTQwLWludHJpbnNpYy5zdmcnKSAyMCBmaWxs
OworICAgIH0KKyAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICA8ZGl2IGNsYXNzPSJib3gg
bm8tYm9yZGVyIGJvcmRlci1pbWFnZS0xMDAtaW50cmluc2ljIj48L2Rpdj4KKyAgPGRpdiBjbGFz
cz0iYm94IGJvcmRlciAgICBib3JkZXItaW1hZ2UtMTAwLWludHJpbnNpYyI+PC9kaXY+CisgIDxk
aXYgY2xhc3M9ImJveCBuby1ib3JkZXIgYm9yZGVyLWltYWdlLTEwMC1pbnRyaW5zaWMtc2xpY2Ui
PjwvZGl2PgorICA8ZGl2IGNsYXNzPSJib3ggYm9yZGVyICAgIGJvcmRlci1pbWFnZS0xMDAtaW50
cmluc2ljLXNsaWNlIj48L2Rpdj4KKyAgPGJyPgorICA8ZGl2IGNsYXNzPSJib3ggbm8tYm9yZGVy
IGJvcmRlci1pbWFnZS0xMDAtaW50cmluc2ljIj48L2Rpdj4KKyAgPGRpdiBjbGFzcz0iYm94IGJv
cmRlciAgICBib3JkZXItaW1hZ2UtMTAwLWludHJpbnNpYyI+PC9kaXY+CisgIDxkaXYgY2xhc3M9
ImJveCBuby1ib3JkZXIgYm9yZGVyLWltYWdlLTEwMC1pbnRyaW5zaWMiPjwvZGl2PgorICA8ZGl2
IGNsYXNzPSJib3ggYm9yZGVyICAgIGJvcmRlci1pbWFnZS0xNDAtaW50cmluc2ljLXNsaWNlIj48
L2Rpdj4KKzwvYm9keT4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvYm9yZGVycy9ib3JkZXItaW1h
Z2UtZmlsbC1uby1pbnRyaW5zaWMtc2l6ZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvYm9yZGVycy9ib3JkZXItaW1hZ2UtZmlsbC1uby1pbnRyaW5zaWMtc2l6ZS5odG1sCShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9ib3JkZXJzL2JvcmRlci1pbWFnZS1maWxs
LW5vLWludHJpbnNpYy1zaXplLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0MSBAQAor
PCFET0NUWVBFIEhUTUw+Cis8aGVhZD4KKyAgPHN0eWxlPgorICAgIC5ib3ggeworICAgICAgaGVp
Z2h0OiAxMDBweDsKKyAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgIG1hcmdpbjogMTBweDsKKyAg
ICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsK
KyAgICB9CisgICAgLmJvcmRlciB7CisgICAgICBib3JkZXI6IDIwcHggc29saWQ7CisgICAgfQor
ICAgIC5uby1ib3JkZXIgeworICAgICAgYm9yZGVyOiAwcHggbm9uZTsKKyAgICB9CisgICAgLmJv
cmRlci1pbWFnZS0xMDAtaW50cmluc2ljIHsKKyAgICAgICBib3JkZXItaW1hZ2U6IHVybCgncmVz
b3VyY2VzL3N2Zy1ib3JkZXItMTAweDEwMC1pbnRyaW5zaWMuc3ZnJykgMCBmaWxsOworICAgIH0K
KyAgICAuYm9yZGVyLWltYWdlLTEwMC1pbnRyaW5zaWMtc2xpY2UgeworICAgICAgIGJvcmRlci1p
bWFnZTogdXJsKCdyZXNvdXJjZXMvc3ZnLWJvcmRlci0xMDB4MTAwLWludHJpbnNpYy5zdmcnKSAy
MCBmaWxsOworICAgIH0KKyAgICAuYm9yZGVyLWltYWdlLW5vLWludHJpbnNpYyB7CisgICAgICAg
Ym9yZGVyLWltYWdlOiB1cmwoJ3Jlc291cmNlcy9zdmctYm9yZGVyLW5vLWludHJpbnNpYy5zdmcn
KSAwIGZpbGw7CisgICAgfQorICAgIC5ib3JkZXItaW1hZ2Utbm8taW50cmluc2ljLXNsaWNlIHsK
KyAgICAgICBib3JkZXItaW1hZ2U6IHVybCgncmVzb3VyY2VzL3N2Zy1ib3JkZXItbm8taW50cmlu
c2ljLnN2ZycpIDIwIGZpbGw7CisgICAgfQorICA8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cisg
IDxkaXYgY2xhc3M9ImJveCBuby1ib3JkZXIgYm9yZGVyLWltYWdlLTEwMC1pbnRyaW5zaWMiPjwv
ZGl2PgorICA8ZGl2IGNsYXNzPSJib3ggYm9yZGVyICAgIGJvcmRlci1pbWFnZS0xMDAtaW50cmlu
c2ljIj48L2Rpdj4KKyAgPGRpdiBjbGFzcz0iYm94IG5vLWJvcmRlciBib3JkZXItaW1hZ2UtMTAw
LWludHJpbnNpYy1zbGljZSI+PC9kaXY+CisgIDxkaXYgY2xhc3M9ImJveCBib3JkZXIgICAgYm9y
ZGVyLWltYWdlLTEwMC1pbnRyaW5zaWMtc2xpY2UiPjwvZGl2PgorICA8YnI+CisgIDxkaXYgY2xh
c3M9ImJveCBuby1ib3JkZXIgYm9yZGVyLWltYWdlLW5vLWludHJpbnNpYyI+PC9kaXY+CisgIDxk
aXYgY2xhc3M9ImJveCBib3JkZXIgICAgYm9yZGVyLWltYWdlLW5vLWludHJpbnNpYyI+PC9kaXY+
CisgIDxkaXYgY2xhc3M9ImJveCBuby1ib3JkZXIgYm9yZGVyLWltYWdlLW5vLWludHJpbnNpYy1z
bGljZSI+PC9kaXY+CisgIDxkaXYgY2xhc3M9ImJveCBib3JkZXIgICAgYm9yZGVyLWltYWdlLW5v
LWludHJpbnNpYy1zbGljZSI+PC9kaXY+Cis8L2JvZHk+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2JvcmRlcnMvcmVzb3VyY2VzL3N2Zy1ib3JkZXItMTAweDEwMC1pbnRyaW5zaWMuc3ZnCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYm9yZGVycy9yZXNvdXJjZXMvc3ZnLWJvcmRlci0x
MDB4MTAwLWludHJpbnNpYy5zdmcJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Jv
cmRlcnMvcmVzb3VyY2VzL3N2Zy1ib3JkZXItMTAweDEwMC1pbnRyaW5zaWMuc3ZnCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsNCBAQAorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAw
MC9zdmciIHZlcnNpb249IjEuMSIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiPgorICA8cmVjdCB3
aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgZmlsbD0ibGltZSIvPgorICA8cmVjdCB4PSIxMCIgeT0i
MTAiIHdpZHRoPSI4MCIgaGVpZ2h0PSI4MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgc3Ry
b2tlLXdpZHRoPSI0cHgiLz4KKzwvc3ZnPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvYm9yZGVycy9yZXNvdXJjZXMvc3ZnLWJvcmRlci0xNDB4MTQw
LWludHJpbnNpYy5zdmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ib3JkZXJzL3Jl
c291cmNlcy9zdmctYm9yZGVyLTE0MHgxNDAtaW50cmluc2ljLnN2ZwkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL2Zhc3QvYm9yZGVycy9yZXNvdXJjZXMvc3ZnLWJvcmRlci0xNDB4MTQwLWlu
dHJpbnNpYy5zdmcJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1MiBAQAorPHN2ZyB4bWxucz0i
aHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9y
Zy8xOTk5L3hsaW5rIiB2ZXJzaW9uPSIxLjEiIHdpZHRoPSIxNDAiIGhlaWdodD0iMTQwIj4KKyAg
PGRlZnM+CisgICAgPGcgaWQ9ImJvcmRlci1pbWFnZSI+CisgICAgICA8cmVjdCB3aWR0aD0iMTAw
IiBoZWlnaHQ9IjEwMCIgZmlsbD0ibGltZSIvPgorICAgICAgPHJlY3QgeD0iMTAiIHk9IjEwIiB3
aWR0aD0iODAiIGhlaWdodD0iODAiIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIHN0cm9rZS13
aWR0aD0iNHB4Ii8+CisgICAgPC9nPgorICAgIDxjbGlwUGF0aCBpZD0idG9wLWxlZnQiPgorICAg
ICAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjIwIiBoZWlnaHQ9IjIwIi8+CisgICAgPC9jbGlw
UGF0aD4KKyAgICA8Y2xpcFBhdGggaWQ9ImxlZnQiPgorICAgICAgPHJlY3QgeD0iMCIgeT0iMCIg
d2lkdGg9IjIwIiBoZWlnaHQ9IjEwMCIvPgorICAgIDwvY2xpcFBhdGg+CisgICAgPGNsaXBQYXRo
IGlkPSJib3R0b20tbGVmdCI+CisgICAgICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMjAiIGhl
aWdodD0iMjAiLz4KKyAgICA8L2NsaXBQYXRoPgorICAgIDxjbGlwUGF0aCBpZD0idG9wLXJpZ2h0
Ij4KKyAgICAgIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIvPgorICAg
IDwvY2xpcFBhdGg+CisgICAgPGNsaXBQYXRoIGlkPSJyaWdodCI+CisgICAgICA8cmVjdCB4PSIw
IiB5PSIwIiB3aWR0aD0iMjAiIGhlaWdodD0iMTAwIi8+CisgICAgPC9jbGlwUGF0aD4KKyAgICA8
Y2xpcFBhdGggaWQ9ImJvdHRvbS1yaWdodCI+CisgICAgICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0
aD0iMjAiIGhlaWdodD0iMjAiLz4KKyAgICA8L2NsaXBQYXRoPgorICAgIDxjbGlwUGF0aCBpZD0i
dG9wIj4KKyAgICAgIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAiIGhlaWdodD0iMjAiLz4K
KyAgICA8L2NsaXBQYXRoPgorICAgIDxjbGlwUGF0aCBpZD0iYm90dG9tIj4KKyAgICAgIDxyZWN0
IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAiIGhlaWdodD0iMjAiLz4KKyAgICA8L2NsaXBQYXRoPgor
ICAgIDxjbGlwUGF0aCBpZD0ibWlkZGxlIj4KKyAgICAgIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRo
PSIxMDAiIGhlaWdodD0iMTAwIi8+CisgICAgPC9jbGlwUGF0aD4KKyAgPC9kZWZzPgorICAKKyAg
PCEtLSBkcmF3IGxlZnQgc2lkZSAtLT4KKyAgPHVzZSB4PSIwIiB5PSIwIiB4bGluazpocmVmPSIj
Ym9yZGVyLWltYWdlIiBjbGlwLXBhdGg9InVybCgjdG9wLWxlZnQpIi8+CisgIDx1c2UgeD0iMCIg
eT0iMjAiIHhsaW5rOmhyZWY9IiNib3JkZXItaW1hZ2UiIGNsaXAtcGF0aD0idXJsKCNsZWZ0KSIv
PgorICA8dXNlIHg9IjAiIHk9IjEyMCIgeGxpbms6aHJlZj0iI2JvcmRlci1pbWFnZSIgY2xpcC1w
YXRoPSJ1cmwoI2JvdHRvbS1sZWZ0KSIvPgorICAKKyAgPCEtLSBkcmF3IHJpZ2h0IHNpZGUgLS0+
CisgIDx1c2UgeD0iMTIwIiB5PSIwIiB4bGluazpocmVmPSIjYm9yZGVyLWltYWdlIiBjbGlwLXBh
dGg9InVybCgjdG9wLXJpZ2h0KSIvPgorICA8dXNlIHg9IjEyMCIgeT0iMjAiIHhsaW5rOmhyZWY9
IiNib3JkZXItaW1hZ2UiIGNsaXAtcGF0aD0idXJsKCNyaWdodCkiLz4KKyAgPHVzZSB4PSIxMjAi
IHk9IjEyMCIgeGxpbms6aHJlZj0iI2JvcmRlci1pbWFnZSIgY2xpcC1wYXRoPSJ1cmwoI2JvdHRv
bS1yaWdodCkiLz4KKyAgCisgIDwhLS0gZHJhdyB0b3AgYW5kIGJvdHRvbSBzaWRlcyAtLT4KKyAg
PHVzZSB4PSIyMCIgeT0iMCIgeGxpbms6aHJlZj0iI2JvcmRlci1pbWFnZSIgY2xpcC1wYXRoPSJ1
cmwoI3RvcCkiLz4KKyAgPHVzZSB4PSIyMCIgeT0iMTIwIiB4bGluazpocmVmPSIjYm9yZGVyLWlt
YWdlIiBjbGlwLXBhdGg9InVybCgjYm90dG9tKSIvPgorICAKKyAgPCEtLSBkcmF3IG1pZGRsZSAt
LT4KKyAgPHVzZSB4PSIyMCIgeT0iMjAiIHhsaW5rOmhyZWY9IiNib3JkZXItaW1hZ2UiIGNsaXAt
cGF0aD0idXJsKCNtaWRkbGUpIi8+Cis8L3N2Zz4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2JvcmRlcnMvcmVzb3VyY2VzL3N2Zy1ib3JkZXItbm8t
aW50cmluc2ljLnN2Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2JvcmRlcnMvcmVz
b3VyY2VzL3N2Zy1ib3JkZXItbm8taW50cmluc2ljLnN2ZwkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL2Zhc3QvYm9yZGVycy9yZXNvdXJjZXMvc3ZnLWJvcmRlci1uby1pbnRyaW5zaWMuc3Zn
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNCBAQAorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53
My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSI+CisgIDxyZWN0IHdpZHRoPSIxMDAiIGhlaWdo
dD0iMTAwIiBmaWxsPSJsaW1lIi8+CisgIDxyZWN0IHg9IjEwIiB5PSIxMCIgd2lkdGg9IjgwIiBo
ZWlnaHQ9IjgwIiBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjRweCIv
PgorPC9zdmc+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRleDogTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvbW96aWxsYS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvbW96aWxsYS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4NDY4MCkKKysrIExheW91dFRlc3Rz
L2ltcG9ydGVkL21vemlsbGEvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYg
QEAKKzIwMTUtMDUtMjAgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNv
bT4KKworICAgICAgICBBbiBTVkcgd2l0aCBubyBpbnRyaW5zaWMgc2l6ZSBkb2VzIG5vdCBkcmF3
IGNvcnJlY3Qgc2xpY2VzIHdoZW4gdXNlZCBhcyBhIGJvcmRlci1pbWFnZSBmb3IgYW4gSFRNTCBl
bGVtZW50LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTM5NDA1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBzdmcvYXMtaW1hZ2UvYm9yZGVyLWltYWdlLXNpbXBsZS0yLmh0bWw6IEFkZCAiYm9yZGVyOiAw
cHggbm9uZTsiIHRvCisgICAgICAgIHN0eWxlIG9mIHRoZSA8ZGl2PiBhbHRob3VnaCB0aGUgc3R5
bGUgaGFzICJib3JkZXItaW1hZ2U6IHVybCgpIDAgZmlsbDsiLgorICAgICAgICBJZiB0aGUgYm9y
ZGVyIHdpZHRoIGlzIG5vdCBzZXQgdG8gemVybyBpbiB0aGUgc3R5bGUsIHRoZSA8ZGl2PiB3aWxs
IGhhdmUKKyAgICAgICAgYSAzcHggYm9yZGVyLiBUaGlzIHNlZW1zIHRvIGJlIGEgYnVnIGluIFdl
YktpdCBidXQgc2hvdWxkIGJlIHVucmVsYXRlZCB0bworICAgICAgICB0aGUgbm9uLWludHJpbnNp
Yy1zaXplZCBpbWFnZXMgd2l0aCBib3JkZXItaW1hZ2UuCisKIDIwMTQtMTItMDkgIFNhaWQgQWJv
dS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBvcnQgTW96
aWxsYSB0ZXN0IHN1aXRlIGZvciBTVkcuCkluZGV4OiBMYXlvdXRUZXN0cy9pbXBvcnRlZC9tb3pp
bGxhL3N2Zy9hcy1pbWFnZS9ib3JkZXItaW1hZ2Utc2ltcGxlLTIuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9pbXBvcnRlZC9tb3ppbGxhL3N2Zy9hcy1pbWFnZS9ib3JkZXItaW1hZ2Ut
c2ltcGxlLTIuaHRtbAkocmV2aXNpb24gMTg0NjU1KQorKysgTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
bW96aWxsYS9zdmcvYXMtaW1hZ2UvYm9yZGVyLWltYWdlLXNpbXBsZS0yLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNiArMSw2IEBACiA8aHRtbD4KIDxib2R5PgotICA8ZGl2IHN0eWxlPSJoZWln
aHQ6IDEwMHB4OyB3aWR0aDogMTAwcHg7CisgIDxkaXYgc3R5bGU9ImhlaWdodDogMTAwcHg7IHdp
ZHRoOiAxMDBweDsgYm9yZGVyOiAwcHggbm9uZTsKICAgICAgICAgICAgICAgYm9yZGVyLWltYWdl
OiB1cmwoJ3Jlc291cmNlcy9saW1lMTAweDEwMC1ub1NWR0RpbWVuc2lvbnMuc3ZnJykgMCBmaWxs
OyIvPgogPC9ib2R5PgogPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253488</attachid>
            <date>2015-05-20 18:38:04 -0700</date>
            <delta_ts>2015-05-20 19:30:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139405-20150520183759.patch</filename>
            <type>text/plain</type>
            <size>109445</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4NDY1NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2NyBAQAorMjAxNS0wNS0yMCAgU2FpZCBB
Ym91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIEFuIFNWRyB3
aXRoIG5vIGludHJpbnNpYyBzaXplIGRvZXMgbm90IGRyYXcgY29ycmVjdCBzbGljZXMgd2hlbiB1
c2VkIGFzIGEgYm9yZGVyLWltYWdlIGZvciBhbiBIVE1MIGVsZW1lbnQuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk0MDUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIFdoZW4gdXNpbmcgbm9u
LWludHJpbnNpYy1zaXplZCBpbWFnZSBhcyBhbiBpbWFnZS1ib3JkZXIsIGFsbCB0aGUgc291cmNl
CisgICAgICAgIHNsaWNlcyBoYXZlIHRvIGJlIGV4dHJhY3RlZCBmcm9tIHRoZSB0b3AtbGVmdCBj
b3JuZXIgb2YgdGhlIHNvdXJjZSBpbWFnZS4KKyAgICAgICAgVGhpcyBpcyBiZWNhdXNlLCB0aGUg
cmlnaHQgYW5kIGJvdHRvbSBzaWRlcyBvZiB0aGUgaW1hZ2UgY2FuIG5vdCBiZSBrbm93bi4KKyAg
ICAgICAgQWxzbyBhbGwgdGhlIHNsaWNlcyBzaG91bGQgbm90IGJlIHN0cmV0Y2hlZC4gSW4gb3Ro
ZXIgd29yZHMsIHRoZSBzaXplcyBvZgorICAgICAgICBzb3VyY2Ugc2xpY2VzIGZvciBhIG5vbi1p
bnRyaW5zaWMtc2l6ZWQgaW1hZ2Ugc2hvdWxkIGJlIGVxdWFsIHRvIHRoZSBzaXplcworICAgICAg
ICBvZiB0aGUgZGVzdGluYXRpb24gY29udGFpbmVyIHNsaWNlcy4KKworICAgICAgICBUaGlzIGlz
IG5vdCBjb21wbGlhbnQgd2l0aCB0aGUgY3NzMyBzcGVjcy4gSSB0aGluayB0aGUgc3BlY3MgbWFr
ZXMgaXQgaGFyZAorICAgICAgICB0byBwcmVkaWN0IHdoYXQgZXhhY3RseSB3aWxsIGJlIGRyYXdu
IGZvciBpbWFnZS1ib3JkZXIgaW4gdGhpcyBjYXNlLiBQbGVhc2UKKyAgICAgICAgc2VlIGh0dHA6
Ly93d3cudzMub3JnL1RSL2NzczMtYmFja2dyb3VuZC8jYm9yZGVyLWltYWdlLXNsaWNlLiBUaGlz
IHBhdGNoIGRvZXMKKyAgICAgICAgd2hhdCBGaXJlRm94IGlzIGRvaW5nIGFuZCBJIHRoaW5rIHRo
aXMgc29sdXRpb24gaXMgdGhlIG1vc3QgcHJlZGljdGFibGUgZm9yCisgICAgICAgIGltYWdlLWJv
cmRlciByZW5kZXJpbmcgaW4gdGhpcyBjYXNlLgorICAgICAgICAKKyAgICAgICAgVGVzdDogZmFz
dC9ib3JkZXJzL2JvcmRlci1pbWFnZS1maWxsLW5vLWludHJpbnNpYy1zaXplLmh0bWwKKworICAg
ICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3Jl
LnZjeHByb2o6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0
ZXJzOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9MZW5ndGhCb3guY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0xheW91dEJveEV4dGVudC5jcHA6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvTGF5b3V0Qm94RXh0ZW50Lmg6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvTGF5b3V0UmVjdC5oOgorICAgICAgICBEZWxldGUgTGVuZ3RoQm94LmNwcCBh
bmQgbW92ZSBhbGwgdGhlIGZ1bmN0aW9uYWxpdGllcyB0byBMZW5ndGhCb3guaC4KKyAgICAgICAg
RGVsZXRlIExheW91dEJveEV4dGVudC5jcHAgc2luY2UgaXQgaXMgdGhlIHNhbWUgY2xhc3MgYXMg
TGVuZ3RoQm94LgorICAgICAgICAKKyAgICAgICAgKiBjc3MvQ1NTUHJvcGVydHkuY3BwOgorICAg
ICAgICAqIHBsYXRmb3JtL3RleHQvV3JpdGluZ01vZGUuaDoKKyAgICAgICAgTW92ZSB0aGUgZW51
bXMgTG9naWNhbEJveFNpZGUgYW5kIFBoeXNpY2FsQm94U2lkZQorICAgICAgICBmcm9tIENTU1By
b3BlcnR5LmNwcCB0byBXcml0aW5nTW9kZS5oIHNvIGl0IGNhbiBiZSB1c2VkIGJ5IG90aGVyIGNs
YXNzZXMuCisgICAgICAgIAorICAgICAgICAqIGNzcy9DU1NUb1N0eWxlTWFwLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1RvU3R5bGVNYXA6Om1hcE5pbmVQaWVjZUltYWdlU2xpY2UpOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTVG9TdHlsZU1hcDo6bWFwTmluZVBpZWNlSW1hZ2VRdWFkKToKKyAg
ICAgICAgKiBjc3MvQ1NTVG9TdHlsZU1hcC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0
b3JPdmVybGF5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxkUmVuZGVyZXJIaWdobGlnaHQp
OgorICAgICAgICAqIHJlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OklubGluZUZsb3dCb3g6OmFkZEJvcmRlck91dHNldFZpc3VhbE92ZXJmbG93KToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyQm94Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6
Om1hcmdpbkxvZ2ljYWxMZWZ0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6bWFyZ2lu
TG9naWNhbFJpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6c2V0TWFyZ2luQmVm
b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6c2V0TWFyZ2luQWZ0ZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpzZXRNYXJnaW5TdGFydCk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJCb3g6OnNldE1hcmdpbkVuZCk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpzZXRDbGlw
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpub25lRGFzaGJvYXJkUmVnaW9ucyk6
CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6CisgICAgICAgIFVzZSB0
aGUgbmV3IEJveEV4dGVudCBhY2Nlc3MgbWV0aG9kcyBmb3IgZ2V0dGluZyBhbmQgc2V0dGluZ3Mg
dGhlIHNpZGVzIG9mCisgICAgICAgIExlbmd0aEJveCBhbmQgTGF5b3V0Qm94RXh0ZW50LgorICAg
ICAgICAKKyAgICAgICAgKiBwbGF0Zm9ybS9MZW5ndGhCb3guaDoKKyAgICAgICAgKFdlYkNvcmU6
OkJveEV4dGVudDo6Qm94RXh0ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkJveEV4dGVudDo6YXQp
OgorICAgICAgICAoV2ViQ29yZTo6Qm94RXh0ZW50Ojp0b3ApOgorICAgICAgICAoV2ViQ29yZTo6
Qm94RXh0ZW50OjpyaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpCb3hFeHRlbnQ6OmJvdHRvbSk6
CisgICAgICAgIChXZWJDb3JlOjpCb3hFeHRlbnQ6OmxlZnQpOgorICAgICAgICAoV2ViQ29yZTo6
Qm94RXh0ZW50OjpzZXRBdCk6CisgICAgICAgIChXZWJDb3JlOjpCb3hFeHRlbnQ6OnNldFRvcCk6
CisgICAgICAgIChXZWJDb3JlOjpCb3hFeHRlbnQ6OnNldFJpZ2h0KToKKyAgICAgICAgKFdlYkNv
cmU6OkJveEV4dGVudDo6c2V0Qm90dG9tKToKKyAgICAgICAgKFdlYkNvcmU6OkJveEV4dGVudDo6
c2V0TGVmdCk6CisgICAgICAgIChXZWJDb3JlOjpCb3hFeHRlbnQ6OmJlZm9yZSk6CisgICAgICAg
IChXZWJDb3JlOjpCb3hFeHRlbnQ6OmVuZCk6CisgICAgICAgIChXZWJDb3JlOjpCb3hFeHRlbnQ6
OmFmdGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkJveEV4dGVudDo6c3RhcnQpOgorICAgICAgICAo
V2ViQ29yZTo6Qm94RXh0ZW50OjpzZXRCZWZvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Qm94RXh0
ZW50OjpzZXRFbmQpOgorICAgICAgICAoV2ViQ29yZTo6Qm94RXh0ZW50OjpzZXRBZnRlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpCb3hFeHRlbnQ6OnNldFN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6
OkJveEV4dGVudDo6b3BlcmF0b3I9PSk6CisgICAgICAgIChXZWJDb3JlOjpCb3hFeHRlbnQ6Om9w
ZXJhdG9yIT0pOgorICAgICAgICAoV2ViQ29yZTo6TGVuZ3RoQm94OjpMZW5ndGhCb3gpOgorICAg
ICAgICAoV2ViQ29yZTo6TGVuZ3RoQm94Ojppc1plcm8pOgorICAgICAgICAoV2ViQ29yZTo6TGVu
Z3RoQm94OjpsZWZ0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okxlbmd0aEJveDo6cmln
aHQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGVuZ3RoQm94Ojp0b3ApOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6TGVuZ3RoQm94Ojpib3R0b20pOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6TGVuZ3RoQm94OjpvcGVyYXRvcj09KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6Okxlbmd0aEJveDo6b3BlcmF0b3IhPSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpMZW5ndGhCb3g6Om5vblplcm8pOiBEZWxldGVkLgorICAgICAgICBEZWZpbmUgYSBuZXcgdGVt
cGxhdGUgY2xhc3MgZm9yICdCb3hFeHRlbnQnLiBBICdCb3hFeHRlbnQnIHJlcHJlc2VudHMgdGhl
CisgICAgICAgIGV4dGVudCBvZiBmb3VyIHNpZGVzIG9mIGEgYm94LiBVc2UgdGhpcyBjbGFzcyB0
ZW1wbGF0ZSB0byBkZWZpbmUgdGhlIGV4aXRpbmcgCisgICAgICAgIGNsYXNzZXMgJ0xlbmd0aEJv
eCcgYW5kICdMYXlvdXRCb3hFeHRlbnQnLiBVc2UgaXQgYWxzbyB0byBhbmQgZGVmaW5lIHRoZQor
ICAgICAgICBuZXcgY2xhc3MgRmxvYXRCb3hFeHRlbnQKKyAgICAgICAgICAgIAorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJCb3hNb2RlbE9iamVjdDo6Y2FsY3VsYXRlSW1hZ2VJbnRyaW5zaWNEaW1lbnNpb25zKToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckJveE1vZGVsT2JqZWN0OjpjYWxjdWxhdGVGaWxsVGlsZVNpemUpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckxpc3RNYXJrZXI6OnVwZGF0ZUNvbnRlbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9z
aGFwZXMvU2hhcGVPdXRzaWRlSW5mby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFwZU91dHNp
ZGVJbmZvOjpjcmVhdGVTaGFwZUZvckltYWdlKToKKyAgICAgICAgQ2hhbmdlIHRoZSByZXR1cm4g
dmFsdWUgb2YgY2FsY3VsYXRlSW1hZ2VJbnRyaW5zaWNEaW1lbnNpb25zKCkgdG8gYmUgYQorICAg
ICAgICBib29sIHdoaWNoIGluZGljYXRlcyB3aGV0aGVyIHRoZSBpbWFnZSBoYXMgYW4gaW50cmlu
c2ljIHNpemUgb3Igbm90LiBBZGQKKyAgICAgICAgYSBuZXcgcmVmZXJlbmNlIGFyZ3VtZW50IHRv
IHRoaXMgZnVuY3Rpb24gcmVjZWl2ZSB0aGUgcmVzb2x2ZWQgaW1hZ2Ugc2l6ZS4KKyAgICAgICAg
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnROaW5lUGllY2VJ
bWFnZSk6IE1vdmUgYWxsIHRoZSBwYWludGluZworICAgICAgICBjb2RlIG9mIHRoaXMgZnVuY3Rp
b24gdG8gTmluZVBpZWNlSW1hZ2U6OnBhaW50KCkKKyAgICAgICAgCisgICAgICAgIChXZWJDb3Jl
Ojpjb21wdXRlQm9yZGVySW1hZ2VTaWRlKTogRGVsZXRlZC4KKyAgICAgICAgUmVuYW1lZCB0byBi
ZSBOaW5lUGllY2VJbWFnZTo6Y29tcHV0ZVNsaWNlKCkuCisgICAgICAgIAorICAgICAgICAqIHJl
bmRlcmluZy9zdHlsZS9Cb3JkZXJEYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpCb3JkZXJEYXRh
Ojpib3JkZXJXaWR0aCk6IEFkZCBhIG5ldyBtZXRob2QgdG8gcmV0dXJuIHRoZSBleHRlbnRzCisg
ICAgICAgIG9mIHRoZSBib3JkZXIgaW4gYSBGbG9hdEJveEV4dGVudC4KKyAgICAgICAgCisgICAg
ICAgICogcmVuZGVyaW5nL3N0eWxlL05pbmVQaWVjZUltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok5pbmVQaWVjZUltYWdlOjpjb21wdXRlU2xpY2UpOiBNb3ZlZCBmcm9tIE5pbmVQaWVjZUlt
YWdlOjpjb21wdXRlU2xpY2UoKS4KKyAgICAgICAgCisgICAgICAgIChXZWJDb3JlOjpOaW5lUGll
Y2VJbWFnZTo6Y29tcHV0ZVNsaWNlcyk6IFRoZSBmaXJzdCB2ZXJzaW9uIG9mIHRoaXMgZnVuY3Rp
b24KKyAgICAgICAgY29tcHV0ZXMgdGhlIHNsaWNlcyBnaXZlbiB0aGVpciBsZW5ndGhzLiBUaGUg
c2xpY2VzIGhhdmUgdG8gYmUgY2xhbXBlZCB0bworICAgICAgICB0aGUgY29udGFpbmVyIHNpemUu
IFRoZSBzZWNvbmQgdmVyc2lvbiBvZiB0aGlzIGZ1bmN0aW9uIGNvbXB1dGVzIHRoZSBzbGljZXMK
KyAgICAgICAgZ2l2ZW4gdGhlaXIgbGVuZ3RocywgdGhlaXIgYWN0dWFsIGV4dGVudHMgYW5kIHRo
ZWlyIHNvdXJjZSBzbGljZXMuCisgICAgICAgIAorICAgICAgICAoV2ViQ29yZTo6TmluZVBpZWNl
SW1hZ2U6OnNjYWxlU2xpY2VzSWZOZWVkZWQpOiAgUmVkdWNlIHRoZSBzbGljZXMgaWYgdGhleQor
ICAgICAgICBhcmUgdG9vIGxhcmdlLgorICAgICAgICAKKyAgICAgICAgKFdlYkNvcmU6Ok5pbmVQ
aWVjZUltYWdlOjppc0VtcHR5UGllY2VSZWN0KTogUmV0dXJucyB0cnVlIGlmIGFuIEltYWdlUGll
Y2UKKyAgICAgICAgc2hvdWxkIG5vdCBiZSBkcmF3bi4KKyAgICAgICAgCisgICAgICAgIChXZWJD
b3JlOjpOaW5lUGllY2VJbWFnZTo6aG9yaXpvbnRhbFRpbGVSdWxlcyk6CisgICAgICAgIChXZWJD
b3JlOjpOaW5lUGllY2VJbWFnZTo6dmVydGljYWxUaWxlUnVsZXMpOgorICAgICAgICBGaWxsIHZl
Y3RvcnMgb2YgdGlsaW5nIHJ1bGVzIHRvIGJlIHBhc3NlZCB0byBHcmFwaGljc0NvbnRleHQ6OmRy
YXdUaWxlZEltYWdlKCkKKyAgICAgICAgCisgICAgICAgIChXZWJDb3JlOjpOaW5lUGllY2VJbWFn
ZTo6Y29tcHV0ZUludHJpbnNpY1JlY3RzKTogQ29tcHV0ZXMgdGhlIG5pbmUgcGllY2VzCisgICAg
ICAgIHJlY3RhbmdsZXMgZm9yIGFuIGludHJpbnNpYy1zaXplZCBjb250YWluZXIuCisgICAgICAg
IAorICAgICAgICAoV2ViQ29yZTo6TmluZVBpZWNlSW1hZ2U6OmNvbXB1dGVOb25JbnRyaW5zaWNS
ZWN0cyk6IENvbXB1dGVzIHRoZSBuaW5lCisgICAgICAgIHBpZWNlcyByZWN0YW5nbGVzIGZvciBh
biBub24taW50cmluc2ljLXNpemVkIHNvdXJjZSBpbWFnZS4gVGhlIGNvbXB1dGVkCisgICAgICAg
IHJlY3RhbmdsZXMgaGF2ZSB0byBzdGFydCBhdCAoMCwgMCkgYW5kIHRoZWlyIHNpemVzIHNob3Vs
ZCBiZSBlcXVhbCB0bworICAgICAgICB0aGUgc2l6ZXMgb2YgdGhlIG5pbmUgcGllY2VzIHJlY3Rh
bmdsZXMgb2YgdGhlIGRlc3RpbmF0aW9uIGNvbnRhaW5lci4KKyAgICAgICAgCisgICAgICAgIChX
ZWJDb3JlOjpOaW5lUGllY2VJbWFnZTo6Y29tcHV0ZUludHJpbnNpY1NpZGVUaWxlU2NhbGUpOgor
ICAgICAgICAoV2ViQ29yZTo6TmluZVBpZWNlSW1hZ2U6OmNvbXB1dGVJbnRyaW5zaWNNaWRkbGVU
aWxlU2NhbGUpOgorICAgICAgICAoV2ViQ29yZTo6TmluZVBpZWNlSW1hZ2U6OmNvbXB1dGVJbnRy
aW5zaWNUaWxlU2NhbGVzKToKKyAgICAgICAgKFdlYkNvcmU6Ok5pbmVQaWVjZUltYWdlOjpjb21w
dXRlTm9uSW50cmluc2ljVGlsZVNjYWxlcyk6CisgICAgICAgIENvbXB1dGVzIHRoZSBzY2FsaW5n
IGZhY3RvcnMgZm9yIGRyYXdpbmcgdGhlIHRpbGVzLiBGb3Igbm9uLWludHJpbnNpYyBzb3VyY2UK
KyAgICAgICAgaW1hZ2VzLCB0aGVyZSBzaG91bGQgbm90IGJlIGFueSBzY2FsaW5nIGZhY3RvcnMu
IAorICAgICAgICAKKyAgICAgICAgKFdlYkNvcmU6Ok5pbmVQaWVjZUltYWdlOjpwYWludCk6IE1v
dmVkIGZyb20gUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50TmluZVBpZWNlSW1hZ2UoKQorICAg
ICAgICBidXQgc2ltcGxpZmllZCBhbmQgcmVzdHJ1Y3R1cmVkLgorICAgICAgICAKKyAgICAgICAg
KFdlYkNvcmU6Ok5pbmVQaWVjZUltYWdlRGF0YTo6TmluZVBpZWNlSW1hZ2VEYXRhKTogVXNlIG51
bGxwdHIgaW5zdGVhZCBvZiAwLgorICAgICAgICAKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUv
TmluZVBpZWNlSW1hZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yKyspOgorICAgICAg
ICAoV2ViQ29yZTo6aXNDb3JuZXJQaWVjZSk6IAorICAgICAgICAoV2ViQ29yZTo6aXNNaWRkbGVQ
aWVjZSk6CisgICAgICAgIChXZWJDb3JlOjppbWFnZVBpZWNlSG9yaXpvbnRhbFNpZGUpOgorICAg
ICAgICAoV2ViQ29yZTo6aW1hZ2VQaWVjZVZlcnRpY2FsU2lkZSk6CisgICAgICAgIEFkZCBoZWxw
ZXIgZnVuY3Rpb25zIGZvciB0aGUgZW51bSBJbWFnZVBpZWNlLgorCiAyMDE1LTA1LTIwICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBhIG1lY2hh
bmlzbSB0byBvcHQtb3V0IG9mIHRoZSBhdXRvbWF0aWMgc2NhbGluZyBhcHBsaWVkIHRvIG5vdC1y
ZWFsbHktcmVzcG9uc2l2ZSBzaXRlcwpJbmRleDogU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9u
IDE4NDY1NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkp
CkBAIC0yMDQ0LDcgKzIwNDQsNiBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0v
S2lsbFJpbmdOb25lLmNwcAogICAgIHBsYXRmb3JtL0xhbmd1YWdlLmNwcAogICAgIHBsYXRmb3Jt
L0xlbmd0aC5jcHAKLSAgICBwbGF0Zm9ybS9MZW5ndGhCb3guY3BwCiAgICAgcGxhdGZvcm0vTGlu
a0hhc2guY3BwCiAgICAgcGxhdGZvcm0vTG9nZ2luZy5jcHAKICAgICBwbGF0Zm9ybS9NSU1FVHlw
ZVJlZ2lzdHJ5LmNwcApAQCAtMjE1MSw3ICsyMTUwLDYgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwog
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ludFJlY3QuY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
SW50U2l6ZS5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9JU09WVFRDdWUuY3BwCi0gICAgcGxh
dGZvcm0vZ3JhcGhpY3MvTGF5b3V0Qm94RXh0ZW50LmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNz
L0xheW91dFJlY3QuY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvTWFza0ltYWdlT3BlcmF0aW9u
LmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApJbmRleDogU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvago9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCShyZXZpc2lvbiAx
ODQ2NTUpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9q
CSh3b3JraW5nIGNvcHkpCkBAIC03OTk2LDcgKzc5OTYsNiBAQAogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5ccGxhdGZvcm1cVVJMLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
XHBsYXRmb3JtXExhbmd1YWdlLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBs
YXRmb3JtXExlbmd0aC5jcHAiIC8+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9y
bVxMZW5ndGhCb3guY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1c
TGlua0hhc2guY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cTG9j
YWxpemVkU3RyaW5ncy5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9y
bVxMb2dnaW5nLmNwcCIgLz4KQEAgLTgyMTUsNyArODIxNCw2IEBACiAgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xJbnRQb2ludC5jcHAiIC8+CiAgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xJbnRSZWN0LmNwcCIgLz4KICAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXEludFNpemUuY3BwIiAvPgot
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcTGF5b3V0Qm94RXh0
ZW50LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNz
XExheW91dFJlY3QuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1c
Z3JhcGhpY3NcTWVkaWFQbGF5ZXIuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
cGxhdGZvcm1cZ3JhcGhpY3NcUGF0aC5jcHAiIC8+CkBAIC0yMDAxMSw3ICsyMDAwOSw2IEBACiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xJbnRTaXplLmgiIC8+
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xJbnRTaXplSGFz
aC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcSVNP
VlRUQ3VlLmgiIC8+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGlj
c1xMYXlvdXRCb3hFeHRlbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBsYXRm
b3JtXGdyYXBoaWNzXExheW91dFBvaW50LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxwbGF0Zm9ybVxncmFwaGljc1xMYXlvdXRSZWN0LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xMYXlvdXRTaXplLmgiIC8+CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0
ZXJzCShyZXZpc2lvbiAxODQ2NTUpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ov
V2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMJKHdvcmtpbmcgY29weSkKQEAgLTExMTMsOSArMTExMyw2
IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxMZW5ndGguY3BwIj4KICAg
ICAgIDxGaWx0ZXI+cGxhdGZvcm08L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXExlbmd0aEJveC5jcHAiPgotICAgICAgPEZpbHRl
cj5wbGF0Zm9ybTwvRmlsdGVyPgotICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5ccGxhdGZvcm1cTGlua0hhc2guY3BwIj4KICAgICAgIDxGaWx0ZXI+cGxhdGZvcm08
L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTEzNzEsOSArMTM2OCw2IEBACiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xJbnRTaXplLmNwcCI+CiAgICAg
ICA8RmlsdGVyPnBsYXRmb3JtXGdyYXBoaWNzPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+Ci0g
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xMYXlvdXRCb3hFeHRl
bnQuY3BwIj4KLSAgICAgIDxGaWx0ZXI+cGxhdGZvcm1cZ3JhcGhpY3M8L0ZpbHRlcj4KLSAgICA8
L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNz
XExheW91dFJlY3QuY3BwIj4KICAgICAgIDxGaWx0ZXI+cGxhdGZvcm1cZ3JhcGhpY3M8L0ZpbHRl
cj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTg0OTYsOSArODQ5MCw2IEBACiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xJbnRTaXplSGFzaC5oIj4KICAgICAgIDxG
aWx0ZXI+cGxhdGZvcm1cZ3JhcGhpY3M8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KLSAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXExheW91dEJveEV4dGVudC5o
Ij4KLSAgICAgIDxGaWx0ZXI+cGxhdGZvcm1cZ3JhcGhpY3M8L0ZpbHRlcj4KLSAgICA8L0NsSW5j
bHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXExheW91
dFBvaW50LmgiPgogICAgICAgPEZpbHRlcj5wbGF0Zm9ybVxncmFwaGljczwvRmlsdGVyPgogICAg
IDwvQ2xJbmNsdWRlPgpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTg0NjU1KQorKysgU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC01OTAs
OCArNTkwLDYgQEAKIAkJMTQxMTVCNzMwOUY4NENENjAwQ0E0RkMxIC8qIEpTTm9kZUZpbHRlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQxMTVCNzEw
OUY4NENENjAwQ0E0RkMxIC8qIEpTTm9kZUZpbHRlci5oICovOyB9OwogCQkxNDExRENCMTE2NEMz
OUE4MDBENDlCQzEgLyogV2lkdGhDYWNoZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMTQxMURDQjAxNjRDMzlBODAwRDQ5QkMxIC8qIFdpZHRoQ2FjaGUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxNDFE
QzA0ODE2NDgzNDhGMDAzNzFFNUEgLyogTGF5b3V0VW5pdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQxREMwNDcxNjQ4MzQ4RjAwMzcxRTVBIC8qIExh
eW91dFVuaXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwotCQkxNDFEQzA0RjE2NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0Qm94RXh0ZW50LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0MURDMDQ5MTY0ODM0
QjkwMDM3MUU1QSAvKiBMYXlvdXRCb3hFeHRlbnQuY3BwICovOyB9OwotCQkxNDFEQzA1MDE2NDgz
NEI5MDAzNzFFNUEgLyogTGF5b3V0Qm94RXh0ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDFEQzA0QTE2NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0
Qm94RXh0ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJMTQxREMwNTExNjQ4MzRCOTAwMzcxRTVBIC8qIExheW91dFBvaW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDFEQzA0QjE2NDgzNEI5MDAz
NzFFNUEgLyogTGF5b3V0UG9pbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQkxNDFEQzA1MjE2NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0UmVjdC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDFEQzA0
QzE2NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0UmVjdC5jcHAgKi87IH07CiAJCTE0MURDMDUzMTY0
ODM0QjkwMDM3MUU1QSAvKiBMYXlvdXRSZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxNDFEQzA0RDE2NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0UmVj
dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC02
MDUsNyArNjAzLDYgQEAKIAkJMTQ0NzZBQTgxNURDNEJCMTAwMzA1REIyIC8qIFdyaXRpbmdNb2Rl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDQ3NkFB
NzE1REM0QkIxMDAzMDVEQjIgLyogV3JpdGluZ01vZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxNDQ5RTI0QzEwN0Q0QTg0MDBCNTc5M0YgLyog
SlNDYWxsYmFja0RhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDE0NDlFMjRBMTA3RDRBODQwMEI1NzkzRiAvKiBKU0NhbGxiYWNrRGF0YS5oICovOyB9
OwogCQkxNDQ5RTI4NzEwN0Q0REI0MDBCNTc5M0YgLyogSlNDYWxsYmFja0RhdGEuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ0OUUyODYxMDdENERC
NDAwQjU3OTNGIC8qIEpTQ2FsbGJhY2tEYXRhLmNwcCAqLzsgfTsKLQkJMTQ2Q0MxMTUxNTY5ODhF
NDAwMTA5RTM3IC8qIExlbmd0aEJveC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxNDZDQzExMzE1Njk4OEJEMDAxMDlFMzcgLyogTGVuZ3RoQm94LmNw
cCAqLzsgfTsKIAkJMTQ3N0U3NzYwQkY0MTM0QTAwMTUyODcyIC8qIFBhZ2VDYWNoZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDc3RTc3NDBCRjQx
MzRBMDAxNTI4NzIgLyogUGFnZUNhY2hlLmNwcCAqLzsgfTsKIAkJMTQ3N0U3NzcwQkY0MTM0QTAw
MTUyODcyIC8qIFBhZ2VDYWNoZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMTQ3N0U3NzUwQkY0MTM0QTAwMTUyODcyIC8qIFBhZ2VDYWNoZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTE0NzlGQUVEMTA5
QUUzNzUwMERFRDY1NSAvKiBSZW5kZXJSdWJ5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0NzlGQUU1MTA5QUUzNzUwMERFRDY1NSAvKiBSZW5kZXJS
dWJ5LmNwcCAqLzsgfTsKQEAgLTc2NjQsOCArNzY2MSw2IEBACiAJCTE0MUI5NEU1MDlFQzQyMjMw
MDBFOTQxMyAvKiBNb3VzZUV2ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTW91c2VF
dmVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0MUI5NEVFMDlFQzQyNUEw
MDBFOTQxMyAvKiBVSUV2ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gVUlFdmVudC5p
ZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0MURDMDQ3MTY0ODM0OEYwMDM3MUU1
QSAvKiBMYXlvdXRVbml0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExheW91
dFVuaXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMTQxREMwNDkxNjQ4MzRCOTAw
MzcxRTVBIC8qIExheW91dEJveEV4dGVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBMYXlvdXRCb3hFeHRlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQkxNDFEQzA0QTE2NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0Qm94RXh0ZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExheW91dEJveEV4dGVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkxNDFEQzA0QjE2NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0UG9p
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGF5b3V0UG9pbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQxREMwNEMxNjQ4MzRCOTAwMzcxRTVBIC8qIExh
eW91dFJlY3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGF5b3V0
UmVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0MURDMDREMTY0ODM0Qjkw
MDM3MUU1QSAvKiBMYXlvdXRSZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IExheW91dFJlY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTc2ODAsNyArNzY3
NSw2IEBACiAJCTE0NDc2QUE3MTVEQzRCQjEwMDMwNURCMiAvKiBXcml0aW5nTW9kZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXcml0aW5nTW9kZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkxNDQ5RTI0QTEwN0Q0QTg0MDBCNTc5M0YgLyogSlNDYWxsYmFja0Rh
dGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDYWxsYmFja0RhdGEuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQ0OUUyODYxMDdENERCNDAwQjU3OTNGIC8q
IEpTQ2FsbGJhY2tEYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTQ2FsbGJhY2tEYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMTQ2Q0Mx
MTMxNTY5ODhCRDAwMTA5RTM3IC8qIExlbmd0aEJveC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBMZW5ndGhCb3guY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkxNDc3RTc3NDBCRjQxMzRBMDAxNTI4NzIgLyogUGFnZUNhY2hlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYWdlQ2FjaGUuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkxNDc3RTc3NTBCRjQxMzRBMDAxNTI4NzIgLyogUGFnZUNhY2hlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYWdlQ2FjaGUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQ3OUZBRTUxMDlBRTM3NTAwREVENjU1IC8qIFJlbmRlclJ1
YnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyUnVieS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMDg3OCw4ICsyMDg3Miw2IEBACiAJ
CQkJMDdBQzQ2RkYxOTUyMTAyMTAwRUU5NzIzIC8qIElTT1ZUVEN1ZS5jcHAgKi8sCiAJCQkJMDdB
QzQ3MDAxOTUyMTAyMTAwRUU5NzIzIC8qIElTT1ZUVEN1ZS5oICovLAogCQkJCTY1Q0M2QkVEMTYw
MTRFQzAwMDBFRDI3RCAvKiBMYXRpbjFUZXh0SXRlcmF0b3IuaCAqLywKLQkJCQkxNDFEQzA0OTE2
NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0Qm94RXh0ZW50LmNwcCAqLywKLQkJCQkxNDFEQzA0QTE2
NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0Qm94RXh0ZW50LmggKi8sCiAJCQkJMTQxREMwNEIxNjQ4
MzRCOTAwMzcxRTVBIC8qIExheW91dFBvaW50LmggKi8sCiAJCQkJMTQxREMwNEMxNjQ4MzRCOTAw
MzcxRTVBIC8qIExheW91dFJlY3QuY3BwICovLAogCQkJCTE0MURDMDREMTY0ODM0QjkwMDM3MUU1
QSAvKiBMYXlvdXRSZWN0LmggKi8sCkBAIC0yMTc2NCw3ICsyMTc1Niw2IEBACiAJCQkJMTQxREMw
NDcxNjQ4MzQ4RjAwMzcxRTVBIC8qIExheW91dFVuaXQuaCAqLywKIAkJCQlCQ0U2NUJFODBFQUNE
RjE2MDA3RTQ1MzMgLyogTGVuZ3RoLmNwcCAqLywKIAkJCQlCQ0U2NUJFOTBFQUNERjE2MDA3RTQ1
MzMgLyogTGVuZ3RoLmggKi8sCi0JCQkJMTQ2Q0MxMTMxNTY5ODhCRDAwMTA5RTM3IC8qIExlbmd0
aEJveC5jcHAgKi8sCiAJCQkJQkNGRjY0OEYwRUFEMTVDMjAwQzFENkY3IC8qIExlbmd0aEJveC5o
ICovLAogCQkJCUJDRkY2NDkwMEVBRDE1QzIwMEMxRDZGNyAvKiBMZW5ndGhTaXplLmggKi8sCiAJ
CQkJQTdBRDJGODUwRUM4OUQwNzAwOEFCMDAyIC8qIExpbmtIYXNoLmNwcCAqLywKQEAgLTI1NzA0
LDcgKzI1Njk1LDYgQEAKIAkJCQlFNDkxNkZGNzE5NURGNkEwMDA1QUIzNDkgLyogTGF5ZXJGbHVz
aFRocm90dGxlU3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTU4MDM3MTY0MUE2NkYxRDMwMEJB
RjUxOSAvKiBMYXllckZyYWdtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUEzQTZBMDE5NEI1
OUI2MDAxQ0JEMjQgLyogTGF5ZXJQb29sLmggaW4gSGVhZGVycyAqLywKLQkJCQkxNDFEQzA1MDE2
NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0Qm94RXh0ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk5
MzFENzJGNjE1RkU2OTUzMDBDNEMwN0UgLyogTGF5b3V0TWlsZXN0b25lcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMTQxREMwNTExNjQ4MzRCOTAwMzcxRTVBIC8qIExheW91dFBvaW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQkxNDFEQzA1MzE2NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0UmVjdC5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0yOTMwMCw3ICsyOTI5MCw2IEBACiAJCQkJMjkxN0I1NjExNDczNDk2
QzAwNTJDOUQwIC8qIExheWVyRmx1c2hTY2hlZHVsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MjkxN0I1NjYxNDczNDk5NTAwNTJDOUQwIC8qIExheWVyRmx1c2hTY2hlZHVsZXJNYWMuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJN0FBM0E2OUYxOTRCNTlCNjAwMUNCRDI0IC8qIExheWVyUG9vbC5j
cHAgaW4gU291cmNlcyAqLywKLQkJCQkxNDFEQzA0RjE2NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0
Qm94RXh0ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0MURDMDUyMTY0ODM0QjkwMDM3MUU1
QSAvKiBMYXlvdXRSZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUExMjBBQ0E0MTNGOTk4Q0Ew
MEZFNEFDNyAvKiBMYXlvdXRSZXBhaW50ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5MDY2
MDYwQkUxNDFENDAwOTU2OTk4IC8qIExheW91dFN0YXRlLmNwcCBpbiBTb3VyY2VzICovLApAQCAt
MjkzMTIsNyArMjkzMDEsNiBAQAogCQkJCTUxMkREOEY0MEQ5MUU2QUYwMDBGODlFRSAvKiBMZWdh
Y3lXZWJBcmNoaXZlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxQjI0MTdCMEQ5MzFGM0YwMEU4
M0Y1QyAvKiBMZWdhY3lXZWJBcmNoaXZlTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNFNjVC
RUEwRUFDREYxNjAwN0U0NTMzIC8qIExlbmd0aC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkxNDZD
QzExNTE1Njk4OEU0MDAxMDlFMzcgLyogTGVuZ3RoQm94LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUU1NUY0OTdBMTUxQjg4ODAwMEJCNjdEQiAvKiBMZW5ndGhGdW5jdGlvbnMuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJRkZCNjk4Q0MxODMzRUUwRDAwMTU4QTMxIC8qIExpbmVCcmVha2VyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTg5QjVFQUExMTFFODAwM0QwMEYyMzY3RSAvKiBMaW5lRW5kaW5n
LmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHkuY3BwCShy
ZXZpc2lvbiAxODQ2NTUpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHkuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC01NCw5ICs1NCw2IEBAIHZvaWQgQ1NTUHJvcGVydHk6OndyYXBWYWx1
ZUluQ29tbWFTZXBhcmEKICAgICBtX3ZhbHVlID0gV1RGOjptb3ZlKGxpc3QpOwogfQogCi1lbnVt
IExvZ2ljYWxCb3hTaWRlIHsgQmVmb3JlU2lkZSwgRW5kU2lkZSwgQWZ0ZXJTaWRlLCBTdGFydFNp
ZGUgfTsKLWVudW0gUGh5c2ljYWxCb3hTaWRlIHsgVG9wU2lkZSwgUmlnaHRTaWRlLCBCb3R0b21T
aWRlLCBMZWZ0U2lkZSB9OwotCiBzdGF0aWMgQ1NTUHJvcGVydHlJRCByZXNvbHZlVG9QaHlzaWNh
bFByb3BlcnR5KFRleHREaXJlY3Rpb24gZGlyZWN0aW9uLCBXcml0aW5nTW9kZSB3cml0aW5nTW9k
ZSwgTG9naWNhbEJveFNpZGUgbG9naWNhbFNpZGUsIGNvbnN0IFN0eWxlUHJvcGVydHlTaG9ydGhh
bmQmIHNob3J0aGFuZCkKIHsKICAgICBpZiAoZGlyZWN0aW9uID09IExUUikgewpJbmRleDogU291
cmNlL1dlYkNvcmUvY3NzL0NTU1RvU3R5bGVNYXAuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NUb1N0eWxlTWFwLmNwcAkocmV2aXNpb24gMTg0NjU1KQorKysgU291cmNl
L1dlYkNvcmUvY3NzL0NTU1RvU3R5bGVNYXAuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MTgsMjEg
KzYxOCwyMSBAQCB2b2lkIENTU1RvU3R5bGVNYXA6Om1hcE5pbmVQaWVjZUltYWdlU2xpCiAgICAg
TGVuZ3RoQm94IGJveDsKICAgICBRdWFkKiBzbGljZXMgPSBib3JkZXJJbWFnZVNsaWNlLnNsaWNl
cygpOwogICAgIGlmIChzbGljZXMtPnRvcCgpLT5pc1BlcmNlbnRhZ2UoKSkKLSAgICAgICAgYm94
Lm1fdG9wID0gTGVuZ3RoKHNsaWNlcy0+dG9wKCktPmdldERvdWJsZVZhbHVlKCksIFBlcmNlbnQp
OworICAgICAgICBib3gudG9wKCkgPSBMZW5ndGgoc2xpY2VzLT50b3AoKS0+Z2V0RG91YmxlVmFs
dWUoKSwgUGVyY2VudCk7CiAgICAgZWxzZQotICAgICAgICBib3gubV90b3AgPSBMZW5ndGgoc2xp
Y2VzLT50b3AoKS0+Z2V0SW50VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVIpLCBG
aXhlZCk7CisgICAgICAgIGJveC50b3AoKSA9IExlbmd0aChzbGljZXMtPnRvcCgpLT5nZXRJbnRW
YWx1ZShDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUiksIEZpeGVkKTsKICAgICBpZiAoc2xp
Y2VzLT5ib3R0b20oKS0+aXNQZXJjZW50YWdlKCkpCi0gICAgICAgIGJveC5tX2JvdHRvbSA9IExl
bmd0aChzbGljZXMtPmJvdHRvbSgpLT5nZXREb3VibGVWYWx1ZSgpLCBQZXJjZW50KTsKKyAgICAg
ICAgYm94LmJvdHRvbSgpID0gTGVuZ3RoKHNsaWNlcy0+Ym90dG9tKCktPmdldERvdWJsZVZhbHVl
KCksIFBlcmNlbnQpOwogICAgIGVsc2UKLSAgICAgICAgYm94Lm1fYm90dG9tID0gTGVuZ3RoKChp
bnQpc2xpY2VzLT5ib3R0b20oKS0+Z2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
X05VTUJFUiksIEZpeGVkKTsKKyAgICAgICAgYm94LmJvdHRvbSgpID0gTGVuZ3RoKChpbnQpc2xp
Y2VzLT5ib3R0b20oKS0+Z2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJF
UiksIEZpeGVkKTsKICAgICBpZiAoc2xpY2VzLT5sZWZ0KCktPmlzUGVyY2VudGFnZSgpKQotICAg
ICAgICBib3gubV9sZWZ0ID0gTGVuZ3RoKHNsaWNlcy0+bGVmdCgpLT5nZXREb3VibGVWYWx1ZSgp
LCBQZXJjZW50KTsKKyAgICAgICAgYm94LmxlZnQoKSA9IExlbmd0aChzbGljZXMtPmxlZnQoKS0+
Z2V0RG91YmxlVmFsdWUoKSwgUGVyY2VudCk7CiAgICAgZWxzZQotICAgICAgICBib3gubV9sZWZ0
ID0gTGVuZ3RoKHNsaWNlcy0+bGVmdCgpLT5nZXRJbnRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTX05VTUJFUiksIEZpeGVkKTsKKyAgICAgICAgYm94LmxlZnQoKSA9IExlbmd0aChzbGljZXMt
PmxlZnQoKS0+Z2V0SW50VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVIpLCBGaXhl
ZCk7CiAgICAgaWYgKHNsaWNlcy0+cmlnaHQoKS0+aXNQZXJjZW50YWdlKCkpCi0gICAgICAgIGJv
eC5tX3JpZ2h0ID0gTGVuZ3RoKHNsaWNlcy0+cmlnaHQoKS0+Z2V0RG91YmxlVmFsdWUoKSwgUGVy
Y2VudCk7CisgICAgICAgIGJveC5yaWdodCgpID0gTGVuZ3RoKHNsaWNlcy0+cmlnaHQoKS0+Z2V0
RG91YmxlVmFsdWUoKSwgUGVyY2VudCk7CiAgICAgZWxzZQotICAgICAgICBib3gubV9yaWdodCA9
IExlbmd0aChzbGljZXMtPnJpZ2h0KCktPmdldEludFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlOjpD
U1NfTlVNQkVSKSwgRml4ZWQpOworICAgICAgICBib3gucmlnaHQoKSA9IExlbmd0aChzbGljZXMt
PnJpZ2h0KCktPmdldEludFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfTlVNQkVSKSwgRml4
ZWQpOwogICAgIGltYWdlLnNldEltYWdlU2xpY2VzKGJveCk7CiAKICAgICAvLyBTZXQgb3VyIGZp
bGwgbW9kZS4KQEAgLTY1NCwzMiArNjU0LDMyIEBAIExlbmd0aEJveCBDU1NUb1N0eWxlTWFwOjpt
YXBOaW5lUGllY2VJbWEKICAgICBMZW5ndGhCb3ggYm94OyAvLyBEZWZhdWx0cyB0byAnYXV0bycg
c28gd2UgZG9uJ3QgaGF2ZSB0byBoYW5kbGUgdGhhdCBleHBsaWNpdGx5IGJlbG93LgogICAgIFF1
YWQqIHNsaWNlcyA9IGJvcmRlcldpZHRocy5nZXRRdWFkVmFsdWUoKTsKICAgICBpZiAoc2xpY2Vz
LT50b3AoKS0+aXNOdW1iZXIoKSkKLSAgICAgICAgYm94Lm1fdG9wID0gTGVuZ3RoKHNsaWNlcy0+
dG9wKCktPmdldEludFZhbHVlKCksIFJlbGF0aXZlKTsKKyAgICAgICAgYm94LnRvcCgpID0gTGVu
Z3RoKHNsaWNlcy0+dG9wKCktPmdldEludFZhbHVlKCksIFJlbGF0aXZlKTsKICAgICBlbHNlIGlm
IChzbGljZXMtPnRvcCgpLT5pc1BlcmNlbnRhZ2UoKSkKLSAgICAgICAgYm94Lm1fdG9wID0gTGVu
Z3RoKHNsaWNlcy0+dG9wKCktPmdldERvdWJsZVZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlOjpDU1Nf
UEVSQ0VOVEFHRSksIFBlcmNlbnQpOworICAgICAgICBib3gudG9wKCkgPSBMZW5ndGgoc2xpY2Vz
LT50b3AoKS0+Z2V0RG91YmxlVmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QRVJDRU5UQUdF
KSwgUGVyY2VudCk7CiAgICAgZWxzZSBpZiAoc2xpY2VzLT50b3AoKS0+Z2V0VmFsdWVJRCgpICE9
IENTU1ZhbHVlQXV0bykKLSAgICAgICAgYm94Lm1fdG9wID0gc2xpY2VzLT50b3AoKS0+Y29tcHV0
ZUxlbmd0aDxMZW5ndGg+KGNvbnZlcnNpb25EYXRhKTsKKyAgICAgICAgYm94LnRvcCgpID0gc2xp
Y2VzLT50b3AoKS0+Y29tcHV0ZUxlbmd0aDxMZW5ndGg+KGNvbnZlcnNpb25EYXRhKTsKIAogICAg
IGlmIChzbGljZXMtPnJpZ2h0KCktPmlzTnVtYmVyKCkpCi0gICAgICAgIGJveC5tX3JpZ2h0ID0g
TGVuZ3RoKHNsaWNlcy0+cmlnaHQoKS0+Z2V0SW50VmFsdWUoKSwgUmVsYXRpdmUpOworICAgICAg
ICBib3gucmlnaHQoKSA9IExlbmd0aChzbGljZXMtPnJpZ2h0KCktPmdldEludFZhbHVlKCksIFJl
bGF0aXZlKTsKICAgICBlbHNlIGlmIChzbGljZXMtPnJpZ2h0KCktPmlzUGVyY2VudGFnZSgpKQot
ICAgICAgICBib3gubV9yaWdodCA9IExlbmd0aChzbGljZXMtPnJpZ2h0KCktPmdldERvdWJsZVZh
bHVlKENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUEVSQ0VOVEFHRSksIFBlcmNlbnQpOworICAgICAg
ICBib3gucmlnaHQoKSA9IExlbmd0aChzbGljZXMtPnJpZ2h0KCktPmdldERvdWJsZVZhbHVlKENT
U1ByaW1pdGl2ZVZhbHVlOjpDU1NfUEVSQ0VOVEFHRSksIFBlcmNlbnQpOwogICAgIGVsc2UgaWYg
KHNsaWNlcy0+cmlnaHQoKS0+Z2V0VmFsdWVJRCgpICE9IENTU1ZhbHVlQXV0bykKLSAgICAgICAg
Ym94Lm1fcmlnaHQgPSBzbGljZXMtPnJpZ2h0KCktPmNvbXB1dGVMZW5ndGg8TGVuZ3RoPihjb252
ZXJzaW9uRGF0YSk7CisgICAgICAgIGJveC5yaWdodCgpID0gc2xpY2VzLT5yaWdodCgpLT5jb21w
dXRlTGVuZ3RoPExlbmd0aD4oY29udmVyc2lvbkRhdGEpOwogCiAgICAgaWYgKHNsaWNlcy0+Ym90
dG9tKCktPmlzTnVtYmVyKCkpCi0gICAgICAgIGJveC5tX2JvdHRvbSA9IExlbmd0aChzbGljZXMt
PmJvdHRvbSgpLT5nZXRJbnRWYWx1ZSgpLCBSZWxhdGl2ZSk7CisgICAgICAgIGJveC5ib3R0b20o
KSA9IExlbmd0aChzbGljZXMtPmJvdHRvbSgpLT5nZXRJbnRWYWx1ZSgpLCBSZWxhdGl2ZSk7CiAg
ICAgZWxzZSBpZiAoc2xpY2VzLT5ib3R0b20oKS0+aXNQZXJjZW50YWdlKCkpCi0gICAgICAgIGJv
eC5tX2JvdHRvbSA9IExlbmd0aChzbGljZXMtPmJvdHRvbSgpLT5nZXREb3VibGVWYWx1ZShDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTX1BFUkNFTlRBR0UpLCBQZXJjZW50KTsKKyAgICAgICAgYm94LmJv
dHRvbSgpID0gTGVuZ3RoKHNsaWNlcy0+Ym90dG9tKCktPmdldERvdWJsZVZhbHVlKENTU1ByaW1p
dGl2ZVZhbHVlOjpDU1NfUEVSQ0VOVEFHRSksIFBlcmNlbnQpOwogICAgIGVsc2UgaWYgKHNsaWNl
cy0+Ym90dG9tKCktPmdldFZhbHVlSUQoKSAhPSBDU1NWYWx1ZUF1dG8pCi0gICAgICAgIGJveC5t
X2JvdHRvbSA9IHNsaWNlcy0+Ym90dG9tKCktPmNvbXB1dGVMZW5ndGg8TGVuZ3RoPihjb252ZXJz
aW9uRGF0YSk7CisgICAgICAgIGJveC5ib3R0b20oKSA9IHNsaWNlcy0+Ym90dG9tKCktPmNvbXB1
dGVMZW5ndGg8TGVuZ3RoPihjb252ZXJzaW9uRGF0YSk7CiAKICAgICBpZiAoc2xpY2VzLT5sZWZ0
KCktPmlzTnVtYmVyKCkpCi0gICAgICAgIGJveC5tX2xlZnQgPSBMZW5ndGgoc2xpY2VzLT5sZWZ0
KCktPmdldEludFZhbHVlKCksIFJlbGF0aXZlKTsKKyAgICAgICAgYm94LmxlZnQoKSA9IExlbmd0
aChzbGljZXMtPmxlZnQoKS0+Z2V0SW50VmFsdWUoKSwgUmVsYXRpdmUpOwogICAgIGVsc2UgaWYg
KHNsaWNlcy0+bGVmdCgpLT5pc1BlcmNlbnRhZ2UoKSkKLSAgICAgICAgYm94Lm1fbGVmdCA9IExl
bmd0aChzbGljZXMtPmxlZnQoKS0+Z2V0RG91YmxlVmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWU6OkNT
U19QRVJDRU5UQUdFKSwgUGVyY2VudCk7CisgICAgICAgIGJveC5sZWZ0KCkgPSBMZW5ndGgoc2xp
Y2VzLT5sZWZ0KCktPmdldERvdWJsZVZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUEVSQ0VO
VEFHRSksIFBlcmNlbnQpOwogICAgIGVsc2UgaWYgKHNsaWNlcy0+bGVmdCgpLT5nZXRWYWx1ZUlE
KCkgIT0gQ1NTVmFsdWVBdXRvKQotICAgICAgICBib3gubV9sZWZ0ID0gc2xpY2VzLT5sZWZ0KCkt
PmNvbXB1dGVMZW5ndGg8TGVuZ3RoPihjb252ZXJzaW9uRGF0YSk7CisgICAgICAgIGJveC5sZWZ0
KCkgPSBzbGljZXMtPmxlZnQoKS0+Y29tcHV0ZUxlbmd0aDxMZW5ndGg+KGNvbnZlcnNpb25EYXRh
KTsKIAogICAgIHJldHVybiBib3g7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVG9T
dHlsZU1hcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUb1N0eWxlTWFw
LmgJKHJldmlzaW9uIDE4NDY1NSkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUb1N0eWxlTWFw
LmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDcgQEAgY2xhc3MgU3R5bGVJbWFnZTsKIGNs
YXNzIFN0eWxlUmVzb2x2ZXI7CiBjbGFzcyBOaW5lUGllY2VJbWFnZTsKIAotc3RydWN0IExlbmd0
aEJveDsKK2NsYXNzIExlbmd0aEJveDsKIAogY2xhc3MgQ1NTVG9TdHlsZU1hcCB7CiAgICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoQ1NTVG9TdHlsZU1hcCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwCShyZXZpc2lvbiAxODQ2NTUpCisrKyBT
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTExMSw4ICsxMTEsOCBAQCBzdGF0aWMgdm9pZCBidWlsZFJlbmRlcmVySGlnaGxpZ2h0
KFJlbmRlCiAgICAgICAgICAgICBpZiAoIXJlbmRlckJveC5pc091dE9mRmxvd1Bvc2l0aW9uZWQo
KSAmJiByZWdpb24pIHsKICAgICAgICAgICAgICAgICBSZW5kZXJCb3g6OkxvZ2ljYWxFeHRlbnRD
b21wdXRlZFZhbHVlcyBjb21wdXRlZFZhbHVlczsKICAgICAgICAgICAgICAgICByZW5kZXJCb3gu
Y29tcHV0ZUxvZ2ljYWxXaWR0aEluUmVnaW9uKGNvbXB1dGVkVmFsdWVzLCByZWdpb24pOwotICAg
ICAgICAgICAgICAgIG1hcmdpbnMubXV0YWJsZUxvZ2ljYWxMZWZ0KHJlbmRlckJveC5zdHlsZSgp
LndyaXRpbmdNb2RlKCkpID0gY29tcHV0ZWRWYWx1ZXMubV9tYXJnaW5zLm1fc3RhcnQ7Ci0gICAg
ICAgICAgICAgICAgbWFyZ2lucy5tdXRhYmxlTG9naWNhbFJpZ2h0KHJlbmRlckJveC5zdHlsZSgp
LndyaXRpbmdNb2RlKCkpID0gY29tcHV0ZWRWYWx1ZXMubV9tYXJnaW5zLm1fZW5kOworICAgICAg
ICAgICAgICAgIG1hcmdpbnMuc3RhcnQocmVuZGVyQm94LnN0eWxlKCkud3JpdGluZ01vZGUoKSkg
PSBjb21wdXRlZFZhbHVlcy5tX21hcmdpbnMubV9zdGFydDsKKyAgICAgICAgICAgICAgICBtYXJn
aW5zLmVuZChyZW5kZXJCb3guc3R5bGUoKS53cml0aW5nTW9kZSgpKSA9IGNvbXB1dGVkVmFsdWVz
Lm1fbWFyZ2lucy5tX2VuZDsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgcGFkZGluZ0Jv
eCA9IHJlbmRlckJveC5jbGllbnRCb3hSZWN0SW5SZWdpb24ocmVnaW9uKTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0xlbmd0aEJveC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vTGVuZ3RoQm94LmNwcAkocmV2aXNpb24gMTg0NjU1KQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vTGVuZ3RoQm94LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw5MiAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAyMDEyLCBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0Ogot
ICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0g
KiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJMZW5ndGhCb3guaCIKLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi1jb25zdCBMZW5ndGgmIExlbmd0aEJveDo6bG9naWNhbExlZnQo
V3JpdGluZ01vZGUgd3JpdGluZ01vZGUpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGlzSG9yaXpvbnRh
bFdyaXRpbmdNb2RlKHdyaXRpbmdNb2RlKSA/IG1fbGVmdCA6IG1fdG9wOwotfQotCi1jb25zdCBM
ZW5ndGgmIExlbmd0aEJveDo6bG9naWNhbFJpZ2h0KFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlKSBj
b25zdAotewotICAgIHJldHVybiBpc0hvcml6b250YWxXcml0aW5nTW9kZSh3cml0aW5nTW9kZSkg
PyBtX3JpZ2h0IDogbV9ib3R0b207Ci19Ci0KLWNvbnN0IExlbmd0aCYgTGVuZ3RoQm94OjpiZWZv
cmUoV3JpdGluZ01vZGUgd3JpdGluZ01vZGUpIGNvbnN0Ci17Ci0gICAgc3dpdGNoICh3cml0aW5n
TW9kZSkgewotICAgIGNhc2UgVG9wVG9Cb3R0b21Xcml0aW5nTW9kZToKLSAgICAgICAgcmV0dXJu
IG1fdG9wOwotICAgIGNhc2UgQm90dG9tVG9Ub3BXcml0aW5nTW9kZToKLSAgICAgICAgcmV0dXJu
IG1fYm90dG9tOwotICAgIGNhc2UgTGVmdFRvUmlnaHRXcml0aW5nTW9kZToKLSAgICAgICAgcmV0
dXJuIG1fbGVmdDsKLSAgICBjYXNlIFJpZ2h0VG9MZWZ0V3JpdGluZ01vZGU6Ci0gICAgICAgIHJl
dHVybiBtX3JpZ2h0OwotICAgIH0KLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1
cm4gbV90b3A7Ci19Ci0KLWNvbnN0IExlbmd0aCYgTGVuZ3RoQm94OjphZnRlcihXcml0aW5nTW9k
ZSB3cml0aW5nTW9kZSkgY29uc3QKLXsKLSAgICBzd2l0Y2ggKHdyaXRpbmdNb2RlKSB7Ci0gICAg
Y2FzZSBUb3BUb0JvdHRvbVdyaXRpbmdNb2RlOgotICAgICAgICByZXR1cm4gbV9ib3R0b207Ci0g
ICAgY2FzZSBCb3R0b21Ub1RvcFdyaXRpbmdNb2RlOgotICAgICAgICByZXR1cm4gbV90b3A7Ci0g
ICAgY2FzZSBMZWZ0VG9SaWdodFdyaXRpbmdNb2RlOgotICAgICAgICByZXR1cm4gbV9yaWdodDsK
LSAgICBjYXNlIFJpZ2h0VG9MZWZ0V3JpdGluZ01vZGU6Ci0gICAgICAgIHJldHVybiBtX2xlZnQ7
Ci0gICAgfQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBtX2JvdHRvbTsK
LX0KLQotY29uc3QgTGVuZ3RoJiBMZW5ndGhCb3g6OnN0YXJ0KFdyaXRpbmdNb2RlIHdyaXRpbmdN
b2RlLCBUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbikgY29uc3QKLXsKLSAgICBpZiAoaXNIb3Jpem9u
dGFsV3JpdGluZ01vZGUod3JpdGluZ01vZGUpKQotICAgICAgICByZXR1cm4gaXNMZWZ0VG9SaWdo
dERpcmVjdGlvbihkaXJlY3Rpb24pID8gbV9sZWZ0IDogbV9yaWdodDsKLSAgICByZXR1cm4gaXNM
ZWZ0VG9SaWdodERpcmVjdGlvbihkaXJlY3Rpb24pID8gbV90b3AgOiBtX2JvdHRvbTsKLX0KLQot
Y29uc3QgTGVuZ3RoJiBMZW5ndGhCb3g6OmVuZChXcml0aW5nTW9kZSB3cml0aW5nTW9kZSwgVGV4
dERpcmVjdGlvbiBkaXJlY3Rpb24pIGNvbnN0Ci17Ci0gICAgaWYgKGlzSG9yaXpvbnRhbFdyaXRp
bmdNb2RlKHdyaXRpbmdNb2RlKSkKLSAgICAgICAgcmV0dXJuIGlzTGVmdFRvUmlnaHREaXJlY3Rp
b24oZGlyZWN0aW9uKSA/IG1fcmlnaHQgOiBtX2xlZnQ7Ci0gICAgcmV0dXJuIGlzTGVmdFRvUmln
aHREaXJlY3Rpb24oZGlyZWN0aW9uKSA/IG1fYm90dG9tIDogbV90b3A7Ci19Ci0KLX0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xlbmd0aEJveC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xlbmd0aEJveC5oCShyZXZp
c2lvbiAxODQ2NTUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZW5ndGhCb3guaAkod29y
a2luZyBjb3B5KQpAQCAtMSw2ICsxLDYgQEAKIC8qCiAgICAgQ29weXJpZ2h0IChDKSAxOTk5IExh
cnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCi0gICAgQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAgICBDb3B5cmlnaHQgKEMpIDIwMDYsIDIw
MDgsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgIENvcHlyaWdodCAo
YykgMjAxMiwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KIAogICAgIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAg
LTI1LDgwICsyNSwxNTEgQEAKICNpbmNsdWRlICJMZW5ndGguaCIKICNpbmNsdWRlICJUZXh0Rmxh
Z3MuaCIKICNpbmNsdWRlICJXcml0aW5nTW9kZS5oIgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdHJ1Y3QgTGVuZ3RoQm94IHsKLSAgICBMZW5ndGhC
b3goKQordGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgQm94RXh0ZW50IHsKK3B1YmxpYzoKKyAg
ICBCb3hFeHRlbnQoKQorICAgICAgICA6IG1fc2lkZXMoeyAwLCAwLCAwLCAwIH0pCiAgICAgewog
ICAgIH0KIAotICAgIGV4cGxpY2l0IExlbmd0aEJveChMZW5ndGhUeXBlIHR5cGUpCi0gICAgICAg
IDogbV9sZWZ0KHR5cGUpCi0gICAgICAgICwgbV9yaWdodCh0eXBlKQotICAgICAgICAsIG1fdG9w
KHR5cGUpCi0gICAgICAgICwgbV9ib3R0b20odHlwZSkKKyAgICBCb3hFeHRlbnQoY29uc3QgVCYg
dG9wLCBjb25zdCBUJiByaWdodCwgY29uc3QgVCYgYm90dG9tLCBjb25zdCBUJiBsZWZ0KQorICAg
ICAgICA6IG1fc2lkZXMoeyB0b3AsIHJpZ2h0LCBib3R0b20sIGxlZnQgfSkKICAgICB7CiAgICAg
fQogCi0gICAgZXhwbGljaXQgTGVuZ3RoQm94KGludCB2KQotICAgICAgICA6IG1fbGVmdChMZW5n
dGgodiwgRml4ZWQpKQotICAgICAgICAsIG1fcmlnaHQoTGVuZ3RoKHYsIEZpeGVkKSkKLSAgICAg
ICAgLCBtX3RvcChMZW5ndGgodiwgRml4ZWQpKQotICAgICAgICAsIG1fYm90dG9tKExlbmd0aCh2
LCBGaXhlZCkpCisgICAgVCYgYXQoUGh5c2ljYWxCb3hTaWRlIHNpZGUpIHsgcmV0dXJuIG1fc2lk
ZXNbc2lkZV07IH0KKyAgICBUJiB0b3AoKSB7IHJldHVybiBhdChUb3BTaWRlKTsgfQorICAgIFQm
IHJpZ2h0KCkgeyByZXR1cm4gYXQoUmlnaHRTaWRlKTsgfQorICAgIFQmIGJvdHRvbSgpIHsgcmV0
dXJuIGF0KEJvdHRvbVNpZGUpOyB9CisgICAgVCYgbGVmdCgpIHsgcmV0dXJuIGF0KExlZnRTaWRl
KTsgfQorCisgICAgY29uc3QgVCYgYXQoUGh5c2ljYWxCb3hTaWRlIHNpZGUpIGNvbnN0IHsgcmV0
dXJuIG1fc2lkZXNbc2lkZV07IH0KKyAgICBjb25zdCBUJiB0b3AoKSBjb25zdCB7IHJldHVybiBh
dChUb3BTaWRlKTsgfQorICAgIGNvbnN0IFQmIHJpZ2h0KCkgY29uc3QgeyByZXR1cm4gYXQoUmln
aHRTaWRlKTsgfQorICAgIGNvbnN0IFQmIGJvdHRvbSgpIGNvbnN0IHsgcmV0dXJuIGF0KEJvdHRv
bVNpZGUpOyB9CisgICAgY29uc3QgVCYgbGVmdCgpIGNvbnN0IHsgcmV0dXJuIGF0KExlZnRTaWRl
KTsgfQorCisgICAgdm9pZCBzZXRBdChQaHlzaWNhbEJveFNpZGUgc2lkZSwgY29uc3QgVCYgdikg
eyBhdChzaWRlKSA9IHY7IH0KKyAgICB2b2lkIHNldFRvcChjb25zdCBUJiB0b3ApIHsgc2V0QXQo
VG9wU2lkZSwgdG9wKTsgfQorICAgIHZvaWQgc2V0UmlnaHQoY29uc3QgVCYgcmlnaHQpIHsgc2V0
QXQoUmlnaHRTaWRlLCByaWdodCk7IH0KKyAgICB2b2lkIHNldEJvdHRvbShjb25zdCBUJiBib3R0
b20pIHsgc2V0QXQoQm90dG9tU2lkZSwgYm90dG9tKTsgfQorICAgIHZvaWQgc2V0TGVmdChjb25z
dCBUJiBsZWZ0KSB7IHNldEF0KExlZnRTaWRlLCBsZWZ0KTsgfQorCisgICAgVCYgYmVmb3JlKFdy
aXRpbmdNb2RlIHdyaXRpbmdNb2RlKQogICAgIHsKKyAgICAgICAgcmV0dXJuIGlzSG9yaXpvbnRh
bFdyaXRpbmdNb2RlKHdyaXRpbmdNb2RlKSA/CisgICAgICAgICAgICAoaXNGbGlwcGVkQmxvY2tz
V3JpdGluZ01vZGUod3JpdGluZ01vZGUpID8gYm90dG9tKCkgOiB0b3AoKSkgOgorICAgICAgICAg
ICAgKGlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdNb2RlKHdyaXRpbmdNb2RlKSA/IHJpZ2h0KCkgOiBs
ZWZ0KCkpOwogICAgIH0KIAotICAgIExlbmd0aEJveChMZW5ndGggdG9wLCBMZW5ndGggcmlnaHQs
IExlbmd0aCBib3R0b20sIExlbmd0aCBsZWZ0KQotICAgICAgICA6IG1fbGVmdChXVEY6Om1vdmUo
bGVmdCkpCi0gICAgICAgICwgbV9yaWdodChXVEY6Om1vdmUocmlnaHQpKQotICAgICAgICAsIG1f
dG9wKFdURjo6bW92ZSh0b3ApKQotICAgICAgICAsIG1fYm90dG9tKFdURjo6bW92ZShib3R0b20p
KQorICAgIFQmIGFmdGVyKFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlKQogICAgIHsKKyAgICAgICAg
cmV0dXJuIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKHdyaXRpbmdNb2RlKSA/CisgICAgICAgICAg
ICAoaXNGbGlwcGVkQmxvY2tzV3JpdGluZ01vZGUod3JpdGluZ01vZGUpID8gdG9wKCkgOiBib3R0
b20oKSkgOgorICAgICAgICAgICAgKGlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdNb2RlKHdyaXRpbmdN
b2RlKSA/IGxlZnQoKSA6IHJpZ2h0KCkpOwogICAgIH0KIAotICAgIExlbmd0aEJveChpbnQgdG9w
LCBpbnQgcmlnaHQsIGludCBib3R0b20sIGludCBsZWZ0KQotICAgICAgICA6IG1fbGVmdChMZW5n
dGgobGVmdCwgRml4ZWQpKQotICAgICAgICAsIG1fcmlnaHQoTGVuZ3RoKHJpZ2h0LCBGaXhlZCkp
Ci0gICAgICAgICwgbV90b3AoTGVuZ3RoKHRvcCwgRml4ZWQpKQotICAgICAgICAsIG1fYm90dG9t
KExlbmd0aChib3R0b20sIEZpeGVkKSkKKyAgICBUJiBzdGFydChXcml0aW5nTW9kZSB3cml0aW5n
TW9kZSwgVGV4dERpcmVjdGlvbiBkaXJlY3Rpb24gPSBMVFIpCiAgICAgeworICAgICAgICByZXR1
cm4gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUod3JpdGluZ01vZGUpID8KKyAgICAgICAgICAgIChp
c0xlZnRUb1JpZ2h0RGlyZWN0aW9uKGRpcmVjdGlvbikgPyBsZWZ0KCkgOiByaWdodCgpKSA6Cisg
ICAgICAgICAgICAoaXNMZWZ0VG9SaWdodERpcmVjdGlvbihkaXJlY3Rpb24pID8gdG9wKCkgOiBi
b3R0b20oKSk7CiAgICAgfQogCi0gICAgY29uc3QgTGVuZ3RoJiBsZWZ0KCkgY29uc3QgeyByZXR1
cm4gbV9sZWZ0OyB9Ci0gICAgY29uc3QgTGVuZ3RoJiByaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1f
cmlnaHQ7IH0KLSAgICBjb25zdCBMZW5ndGgmIHRvcCgpIGNvbnN0IHsgcmV0dXJuIG1fdG9wOyB9
Ci0gICAgY29uc3QgTGVuZ3RoJiBib3R0b20oKSBjb25zdCB7IHJldHVybiBtX2JvdHRvbTsgfQor
ICAgIFQmIGVuZChXcml0aW5nTW9kZSB3cml0aW5nTW9kZSwgVGV4dERpcmVjdGlvbiBkaXJlY3Rp
b24gPSBMVFIpCisgICAgeworICAgICAgICByZXR1cm4gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUo
d3JpdGluZ01vZGUpID8KKyAgICAgICAgICAgIChpc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKGRpcmVj
dGlvbikgPyByaWdodCgpIDogbGVmdCgpKSA6CisgICAgICAgICAgICAoaXNMZWZ0VG9SaWdodERp
cmVjdGlvbihkaXJlY3Rpb24pID8gYm90dG9tKCkgOiB0b3AoKSk7CisgICAgfQogCi0gICAgY29u
c3QgTGVuZ3RoJiBsb2dpY2FsTGVmdChXcml0aW5nTW9kZSkgY29uc3Q7Ci0gICAgY29uc3QgTGVu
Z3RoJiBsb2dpY2FsUmlnaHQoV3JpdGluZ01vZGUpIGNvbnN0OworICAgIGNvbnN0IFQmIGJlZm9y
ZShXcml0aW5nTW9kZSB3cml0aW5nTW9kZSkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBp
c0hvcml6b250YWxXcml0aW5nTW9kZSh3cml0aW5nTW9kZSkgPworICAgICAgICAgICAgKGlzRmxp
cHBlZEJsb2Nrc1dyaXRpbmdNb2RlKHdyaXRpbmdNb2RlKSA/IGJvdHRvbSgpIDogdG9wKCkpIDoK
KyAgICAgICAgICAgIChpc0ZsaXBwZWRCbG9ja3NXcml0aW5nTW9kZSh3cml0aW5nTW9kZSkgPyBy
aWdodCgpIDogbGVmdCgpKTsKKyAgICB9CiAKLSAgICBjb25zdCBMZW5ndGgmIGJlZm9yZShXcml0
aW5nTW9kZSkgY29uc3Q7Ci0gICAgY29uc3QgTGVuZ3RoJiBhZnRlcihXcml0aW5nTW9kZSkgY29u
c3Q7Ci0gICAgY29uc3QgTGVuZ3RoJiBzdGFydChXcml0aW5nTW9kZSwgVGV4dERpcmVjdGlvbikg
Y29uc3Q7Ci0gICAgY29uc3QgTGVuZ3RoJiBlbmQoV3JpdGluZ01vZGUsIFRleHREaXJlY3Rpb24p
IGNvbnN0OworICAgIGNvbnN0IFQmIGFmdGVyKFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlKSBjb25z
dAorICAgIHsKKyAgICAgICAgcmV0dXJuIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKHdyaXRpbmdN
b2RlKSA/CisgICAgICAgICAgICAoaXNGbGlwcGVkQmxvY2tzV3JpdGluZ01vZGUod3JpdGluZ01v
ZGUpID8gdG9wKCkgOiBib3R0b20oKSkgOgorICAgICAgICAgICAgKGlzRmxpcHBlZEJsb2Nrc1dy
aXRpbmdNb2RlKHdyaXRpbmdNb2RlKSA/IGxlZnQoKSA6IHJpZ2h0KCkpOworICAgIH0KKworICAg
IGNvbnN0IFQmIHN0YXJ0KFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlLCBUZXh0RGlyZWN0aW9uIGRp
cmVjdGlvbiA9IExUUikgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBpc0hvcml6b250YWxX
cml0aW5nTW9kZSh3cml0aW5nTW9kZSkgPworICAgICAgICAgICAgKGlzTGVmdFRvUmlnaHREaXJl
Y3Rpb24oZGlyZWN0aW9uKSA/IGxlZnQoKSA6IHJpZ2h0KCkpIDoKKyAgICAgICAgICAgIChpc0xl
ZnRUb1JpZ2h0RGlyZWN0aW9uKGRpcmVjdGlvbikgPyB0b3AoKSA6IGJvdHRvbSgpKTsKKyAgICB9
CiAKLSAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgTGVuZ3RoQm94JiBvdGhlcikgY29uc3QKKyAg
ICBjb25zdCBUJiBlbmQoV3JpdGluZ01vZGUgd3JpdGluZ01vZGUsIFRleHREaXJlY3Rpb24gZGly
ZWN0aW9uID0gTFRSKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIG1fbGVmdCA9PSBvdGhl
ci5tX2xlZnQgJiYgbV9yaWdodCA9PSBvdGhlci5tX3JpZ2h0ICYmIG1fdG9wID09IG90aGVyLm1f
dG9wICYmIG1fYm90dG9tID09IG90aGVyLm1fYm90dG9tOworICAgICAgICByZXR1cm4gaXNIb3Jp
em9udGFsV3JpdGluZ01vZGUod3JpdGluZ01vZGUpID8KKyAgICAgICAgICAgIChpc0xlZnRUb1Jp
Z2h0RGlyZWN0aW9uKGRpcmVjdGlvbikgPyByaWdodCgpIDogbGVmdCgpKSA6CisgICAgICAgICAg
ICAoaXNMZWZ0VG9SaWdodERpcmVjdGlvbihkaXJlY3Rpb24pID8gYm90dG9tKCkgOiB0b3AoKSk7
CiAgICAgfQogCi0gICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IExlbmd0aEJveCYgb3RoZXIpIGNv
bnN0CisgICAgdm9pZCBzZXRCZWZvcmUoY29uc3QgVCYgYmVmb3JlLCBXcml0aW5nTW9kZSB3cml0
aW5nTW9kZSkgeyB0aGlzLT5iZWZvcmUod3JpdGluZ01vZGUpID0gYmVmb3JlOyB9CisgICAgdm9p
ZCBzZXRBZnRlcihjb25zdCBUJiBhZnRlciwgV3JpdGluZ01vZGUgd3JpdGluZ01vZGUpIHsgdGhp
cy0+YWZ0ZXIod3JpdGluZ01vZGUpID0gYWZ0ZXI7IH0KKyAgICB2b2lkIHNldFN0YXJ0KGNvbnN0
IFQmIHN0YXJ0LCBXcml0aW5nTW9kZSB3cml0aW5nTW9kZSwgVGV4dERpcmVjdGlvbiBkaXJlY3Rp
b24gPSBMVFIpIHsgdGhpcy0+c3RhcnQod3JpdGluZ01vZGUsIGRpcmVjdGlvbikgPSBzdGFydDsg
fQorICAgIHZvaWQgc2V0RW5kKGNvbnN0IFQmIGVuZCwgV3JpdGluZ01vZGUgd3JpdGluZ01vZGUs
IFRleHREaXJlY3Rpb24gZGlyZWN0aW9uID0gTFRSKSB7IHRoaXMtPmVuZCh3cml0aW5nTW9kZSwg
ZGlyZWN0aW9uKSA9IGVuZDsgfQorCisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEJveEV4dGVu
dCYgb3RoZXIpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gISgqdGhpcyA9PSBvdGhlcik7
CisgICAgICAgIHJldHVybiBtX3NpZGVzID09IG90aGVyLm1fc2lkZXM7CiAgICAgfQogCi0gICAg
Ym9vbCBub25aZXJvKCkgY29uc3QKKyAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgQm94RXh0ZW50
JiBvdGhlcikgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiAhKG1fbGVmdC5pc1plcm8oKSAm
JiBtX3JpZ2h0LmlzWmVybygpICYmIG1fdG9wLmlzWmVybygpICYmIG1fYm90dG9tLmlzWmVybygp
KTsKKyAgICAgICAgcmV0dXJuIG1fc2lkZXMgIT0gb3RoZXIubV9zaWRlczsKICAgICB9CiAKLSAg
ICBMZW5ndGggbV9sZWZ0OwotICAgIExlbmd0aCBtX3JpZ2h0OwotICAgIExlbmd0aCBtX3RvcDsK
LSAgICBMZW5ndGggbV9ib3R0b207Citwcm90ZWN0ZWQ6CisgICAgVmVjdG9yPFQsIDQ+IG1fc2lk
ZXM7CiB9OwogCitjbGFzcyBMZW5ndGhCb3ggOiBwdWJsaWMgQm94RXh0ZW50PExlbmd0aD4gewor
cHVibGljOgorICAgIExlbmd0aEJveCgpCisgICAgICAgIDogTGVuZ3RoQm94KEF1dG8pCisgICAg
eworICAgIH0KKworICAgIGV4cGxpY2l0IExlbmd0aEJveChMZW5ndGhUeXBlIHR5cGUpCisgICAg
ICAgIDogQm94RXh0ZW50KExlbmd0aCh0eXBlKSwgTGVuZ3RoKHR5cGUpLCBMZW5ndGgodHlwZSks
IExlbmd0aCh0eXBlKSkKKyAgICB7CisgICAgfQorCisgICAgZXhwbGljaXQgTGVuZ3RoQm94KGlu
dCB2KQorICAgICAgICA6IEJveEV4dGVudChMZW5ndGgodiwgRml4ZWQpLCBMZW5ndGgodiwgRml4
ZWQpLCBMZW5ndGgodiwgRml4ZWQpLCBMZW5ndGgodiwgRml4ZWQpKQorICAgIHsKKyAgICB9CisK
KyAgICBMZW5ndGhCb3goaW50IHRvcCwgaW50IHJpZ2h0LCBpbnQgYm90dG9tLCBpbnQgbGVmdCkK
KyAgICAgICAgOiBCb3hFeHRlbnQoTGVuZ3RoKHRvcCwgRml4ZWQpLCBMZW5ndGgocmlnaHQsIEZp
eGVkKSwgTGVuZ3RoKGJvdHRvbSwgRml4ZWQpLCBMZW5ndGgobGVmdCwgRml4ZWQpKQorICAgIHsK
KyAgICB9CisKKyAgICBMZW5ndGhCb3goY29uc3QgTGVuZ3RoJiB0b3AsIGNvbnN0IExlbmd0aCYg
cmlnaHQsIGNvbnN0IExlbmd0aCYgYm90dG9tLCBjb25zdCBMZW5ndGgmIGxlZnQpCisgICAgICAg
IDogQm94RXh0ZW50KHRvcCwgcmlnaHQsIGJvdHRvbSwgbGVmdCkKKyAgICB7CisgICAgfQorCisg
ICAgYm9vbCBpc1plcm8oKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIHRvcCgpLmlzWmVy
bygpICYmIHJpZ2h0KCkuaXNaZXJvKCkgJiYgYm90dG9tKCkuaXNaZXJvKCkgJiYgbGVmdCgpLmlz
WmVybygpOworICAgIH0KK307CisKK3R5cGVkZWYgQm94RXh0ZW50PExheW91dFVuaXQ+IExheW91
dEJveEV4dGVudDsKK3R5cGVkZWYgQm94RXh0ZW50PGZsb2F0PiBGbG9hdEJveEV4dGVudDsKKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gTGVuZ3RoQm94X2gKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0xheW91dEJveEV4dGVudC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTGF5b3V0Qm94RXh0ZW50
LmNwcAkocmV2aXNpb24gMTg0NjU1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTGF5b3V0Qm94RXh0ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSwxOTYgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoYykgMjAxMiwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQot
ICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
LSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0j
aW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiTGF5b3V0Qm94RXh0ZW50LmgiCi0KLW5hbWVz
cGFjZSBXZWJDb3JlIHsKLQotTGF5b3V0VW5pdCBMYXlvdXRCb3hFeHRlbnQ6OmxvZ2ljYWxUb3Ao
V3JpdGluZ01vZGUgd3JpdGluZ01vZGUpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGlzSG9yaXpvbnRh
bFdyaXRpbmdNb2RlKHdyaXRpbmdNb2RlKSA/IG1fdG9wIDogbV9sZWZ0OwotfQotCi1MYXlvdXRV
bml0IExheW91dEJveEV4dGVudDo6bG9naWNhbEJvdHRvbShXcml0aW5nTW9kZSB3cml0aW5nTW9k
ZSkgY29uc3QKLXsKLSAgICByZXR1cm4gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUod3JpdGluZ01v
ZGUpID8gbV9ib3R0b20gOiBtX3JpZ2h0OwotfQotCi1MYXlvdXRVbml0IExheW91dEJveEV4dGVu
dDo6bG9naWNhbExlZnQoV3JpdGluZ01vZGUgd3JpdGluZ01vZGUpIGNvbnN0Ci17Ci0gICAgcmV0
dXJuIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKHdyaXRpbmdNb2RlKSA/IG1fbGVmdCA6IG1fdG9w
OwotfQotCi1MYXlvdXRVbml0IExheW91dEJveEV4dGVudDo6bG9naWNhbFJpZ2h0KFdyaXRpbmdN
b2RlIHdyaXRpbmdNb2RlKSBjb25zdAotewotICAgIHJldHVybiBpc0hvcml6b250YWxXcml0aW5n
TW9kZSh3cml0aW5nTW9kZSkgPyBtX3JpZ2h0IDogbV9ib3R0b207Ci19Ci0KLUxheW91dFVuaXQg
TGF5b3V0Qm94RXh0ZW50OjpiZWZvcmUoV3JpdGluZ01vZGUgd3JpdGluZ01vZGUpIGNvbnN0Ci17
Ci0gICAgc3dpdGNoICh3cml0aW5nTW9kZSkgewotICAgIGNhc2UgVG9wVG9Cb3R0b21Xcml0aW5n
TW9kZToKLSAgICAgICAgcmV0dXJuIG1fdG9wOwotICAgIGNhc2UgQm90dG9tVG9Ub3BXcml0aW5n
TW9kZToKLSAgICAgICAgcmV0dXJuIG1fYm90dG9tOwotICAgIGNhc2UgTGVmdFRvUmlnaHRXcml0
aW5nTW9kZToKLSAgICAgICAgcmV0dXJuIG1fbGVmdDsKLSAgICBjYXNlIFJpZ2h0VG9MZWZ0V3Jp
dGluZ01vZGU6Ci0gICAgICAgIHJldHVybiBtX3JpZ2h0OwotICAgIH0KLSAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKLSAgICByZXR1cm4gbV90b3A7Ci19Ci0KLUxheW91dFVuaXQgTGF5b3V0Qm94
RXh0ZW50OjphZnRlcihXcml0aW5nTW9kZSB3cml0aW5nTW9kZSkgY29uc3QKLXsKLSAgICBzd2l0
Y2ggKHdyaXRpbmdNb2RlKSB7Ci0gICAgY2FzZSBUb3BUb0JvdHRvbVdyaXRpbmdNb2RlOgotICAg
ICAgICByZXR1cm4gbV9ib3R0b207Ci0gICAgY2FzZSBCb3R0b21Ub1RvcFdyaXRpbmdNb2RlOgot
ICAgICAgICByZXR1cm4gbV90b3A7Ci0gICAgY2FzZSBMZWZ0VG9SaWdodFdyaXRpbmdNb2RlOgot
ICAgICAgICByZXR1cm4gbV9yaWdodDsKLSAgICBjYXNlIFJpZ2h0VG9MZWZ0V3JpdGluZ01vZGU6
Ci0gICAgICAgIHJldHVybiBtX2xlZnQ7Ci0gICAgfQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwotICAgIHJldHVybiBtX2JvdHRvbTsKLX0KLQotTGF5b3V0VW5pdCBMYXlvdXRCb3hFeHRlbnQ6
OnN0YXJ0KFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlLCBUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbikg
Y29uc3QKLXsKLSAgICBpZiAoaXNIb3Jpem9udGFsV3JpdGluZ01vZGUod3JpdGluZ01vZGUpKQot
ICAgICAgICByZXR1cm4gaXNMZWZ0VG9SaWdodERpcmVjdGlvbihkaXJlY3Rpb24pID8gbV9sZWZ0
IDogbV9yaWdodDsKLSAgICByZXR1cm4gaXNMZWZ0VG9SaWdodERpcmVjdGlvbihkaXJlY3Rpb24p
ID8gbV90b3AgOiBtX2JvdHRvbTsKLX0KLQotTGF5b3V0VW5pdCBMYXlvdXRCb3hFeHRlbnQ6OmVu
ZChXcml0aW5nTW9kZSB3cml0aW5nTW9kZSwgVGV4dERpcmVjdGlvbiBkaXJlY3Rpb24pIGNvbnN0
Ci17Ci0gICAgaWYgKGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKHdyaXRpbmdNb2RlKSkKLSAgICAg
ICAgcmV0dXJuIGlzTGVmdFRvUmlnaHREaXJlY3Rpb24oZGlyZWN0aW9uKSA/IG1fcmlnaHQgOiBt
X2xlZnQ7Ci0gICAgcmV0dXJuIGlzTGVmdFRvUmlnaHREaXJlY3Rpb24oZGlyZWN0aW9uKSA/IG1f
Ym90dG9tIDogbV90b3A7Ci19Ci0KLXZvaWQgTGF5b3V0Qm94RXh0ZW50OjpzZXRCZWZvcmUoV3Jp
dGluZ01vZGUgd3JpdGluZ01vZGUsIExheW91dFVuaXQgdmFsdWUpCi17Ci0gICAgc3dpdGNoICh3
cml0aW5nTW9kZSkgewotICAgIGNhc2UgVG9wVG9Cb3R0b21Xcml0aW5nTW9kZToKLSAgICAgICAg
bV90b3AgPSB2YWx1ZTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBCb3R0b21Ub1RvcFdyaXRp
bmdNb2RlOgotICAgICAgICBtX2JvdHRvbSA9IHZhbHVlOwotICAgICAgICBicmVhazsKLSAgICBj
YXNlIExlZnRUb1JpZ2h0V3JpdGluZ01vZGU6Ci0gICAgICAgIG1fbGVmdCA9IHZhbHVlOwotICAg
ICAgICBicmVhazsKLSAgICBjYXNlIFJpZ2h0VG9MZWZ0V3JpdGluZ01vZGU6Ci0gICAgICAgIG1f
cmlnaHQgPSB2YWx1ZTsKLSAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIG1fdG9wID0gdmFsdWU7Ci0gICAgfQotfQotCi12
b2lkIExheW91dEJveEV4dGVudDo6c2V0QWZ0ZXIoV3JpdGluZ01vZGUgd3JpdGluZ01vZGUsIExh
eW91dFVuaXQgdmFsdWUpCi17Ci0gICAgc3dpdGNoICh3cml0aW5nTW9kZSkgewotICAgIGNhc2Ug
VG9wVG9Cb3R0b21Xcml0aW5nTW9kZToKLSAgICAgICAgbV9ib3R0b20gPSB2YWx1ZTsKLSAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSBCb3R0b21Ub1RvcFdyaXRpbmdNb2RlOgotICAgICAgICBtX3Rv
cCA9IHZhbHVlOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIExlZnRUb1JpZ2h0V3JpdGluZ01v
ZGU6Ci0gICAgICAgIG1fcmlnaHQgPSB2YWx1ZTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBS
aWdodFRvTGVmdFdyaXRpbmdNb2RlOgotICAgICAgICBtX2xlZnQgPSB2YWx1ZTsKLSAgICAgICAg
YnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAg
ICAgIG1fYm90dG9tID0gdmFsdWU7Ci0gICAgfQotfQotCi12b2lkIExheW91dEJveEV4dGVudDo6
c2V0U3RhcnQoV3JpdGluZ01vZGUgd3JpdGluZ01vZGUsIFRleHREaXJlY3Rpb24gZGlyZWN0aW9u
LCBMYXlvdXRVbml0IHZhbHVlKQotewotICAgIGlmIChpc0hvcml6b250YWxXcml0aW5nTW9kZSh3
cml0aW5nTW9kZSkpIHsKLSAgICAgICAgaWYgKGlzTGVmdFRvUmlnaHREaXJlY3Rpb24oZGlyZWN0
aW9uKSkKLSAgICAgICAgICAgIG1fbGVmdCA9IHZhbHVlOwotICAgICAgICBlbHNlCi0gICAgICAg
ICAgICBtX3JpZ2h0ID0gdmFsdWU7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKGlzTGVmdFRv
UmlnaHREaXJlY3Rpb24oZGlyZWN0aW9uKSkKLSAgICAgICAgICAgIG1fdG9wID0gdmFsdWU7Ci0g
ICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1fYm90dG9tID0gdmFsdWU7Ci0gICAgfQotfQotCi12
b2lkIExheW91dEJveEV4dGVudDo6c2V0RW5kKFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlLCBUZXh0
RGlyZWN0aW9uIGRpcmVjdGlvbiwgTGF5b3V0VW5pdCB2YWx1ZSkKLXsKLSAgICBpZiAoaXNIb3Jp
em9udGFsV3JpdGluZ01vZGUod3JpdGluZ01vZGUpKSB7Ci0gICAgICAgIGlmIChpc0xlZnRUb1Jp
Z2h0RGlyZWN0aW9uKGRpcmVjdGlvbikpCi0gICAgICAgICAgICBtX3JpZ2h0ID0gdmFsdWU7Ci0g
ICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1fbGVmdCA9IHZhbHVlOwotICAgIH0gZWxzZSB7Ci0g
ICAgICAgIGlmIChpc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKGRpcmVjdGlvbikpCi0gICAgICAgICAg
ICBtX2JvdHRvbSA9IHZhbHVlOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBtX3RvcCA9IHZh
bHVlOwotICAgIH0KLX0KLQotTGF5b3V0VW5pdCYgTGF5b3V0Qm94RXh0ZW50OjptdXRhYmxlTG9n
aWNhbExlZnQoV3JpdGluZ01vZGUgd3JpdGluZ01vZGUpCi17Ci0gICAgcmV0dXJuIGlzSG9yaXpv
bnRhbFdyaXRpbmdNb2RlKHdyaXRpbmdNb2RlKSA/IG1fbGVmdCA6IG1fdG9wOwotfQotCi1MYXlv
dXRVbml0JiBMYXlvdXRCb3hFeHRlbnQ6Om11dGFibGVMb2dpY2FsUmlnaHQoV3JpdGluZ01vZGUg
d3JpdGluZ01vZGUpCi17Ci0gICAgcmV0dXJuIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKHdyaXRp
bmdNb2RlKSA/IG1fcmlnaHQgOiBtX2JvdHRvbTsKLX0KLQotTGF5b3V0VW5pdCYgTGF5b3V0Qm94
RXh0ZW50OjptdXRhYmxlQmVmb3JlKFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlKQotewotICAgIHJl
dHVybiBpc0hvcml6b250YWxXcml0aW5nTW9kZSh3cml0aW5nTW9kZSkgPyAoaXNGbGlwcGVkQmxv
Y2tzV3JpdGluZ01vZGUod3JpdGluZ01vZGUpID8gbV9ib3R0b20gOiBtX3RvcCkgOgotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaXNGbGlwcGVkQmxv
Y2tzV3JpdGluZ01vZGUod3JpdGluZ01vZGUpID8gbV9yaWdodDogbV9sZWZ0KTsKLX0KLQotTGF5
b3V0VW5pdCYgTGF5b3V0Qm94RXh0ZW50OjptdXRhYmxlQWZ0ZXIoV3JpdGluZ01vZGUgd3JpdGlu
Z01vZGUpCi17Ci0gICAgcmV0dXJuIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKHdyaXRpbmdNb2Rl
KSA/IChpc0ZsaXBwZWRCbG9ja3NXcml0aW5nTW9kZSh3cml0aW5nTW9kZSkgPyBtX3RvcCA6IG1f
Ym90dG9tKSA6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChpc0ZsaXBwZWRCbG9ja3NXcml0aW5nTW9kZSh3cml0aW5nTW9kZSkgPyBtX2xlZnQ6IG1f
cmlnaHQpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9MYXlvdXRCb3hFeHRlbnQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9MYXlvdXRCb3hFeHRlbnQuaAkocmV2aXNpb24g
MTg0NjU1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTGF5b3V0Qm94RXh0
ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsODYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
YykgMjAxMiwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgot
ICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
LSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIExheW91dEJveEV4
dGVudF9oCi0jZGVmaW5lIExheW91dEJveEV4dGVudF9oCi0KLSNpbmNsdWRlICJMYXlvdXRVbml0
LmgiCi0jaW5jbHVkZSAiVGV4dEZsYWdzLmgiCi0jaW5jbHVkZSAiV3JpdGluZ01vZGUuaCIKLQot
bmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBMYXlvdXRCb3hFeHRlbnQgewotcHVibGljOgot
ICAgIExheW91dEJveEV4dGVudCgpIDogbV90b3AoMCksIG1fcmlnaHQoMCksIG1fYm90dG9tKDAp
LCBtX2xlZnQoMCkgeyB9Ci0gICAgTGF5b3V0Qm94RXh0ZW50KExheW91dFVuaXQgdG9wLCBMYXlv
dXRVbml0IHJpZ2h0LCBMYXlvdXRVbml0IGJvdHRvbSwgTGF5b3V0VW5pdCBsZWZ0KQotICAgICAg
ICA6IG1fdG9wKHRvcCksIG1fcmlnaHQocmlnaHQpLCBtX2JvdHRvbShib3R0b20pLCBtX2xlZnQo
bGVmdCkgeyB9Ci0KLSAgICBpbmxpbmUgTGF5b3V0VW5pdCB0b3AoKSBjb25zdCB7IHJldHVybiBt
X3RvcDsgfQotICAgIGlubGluZSBMYXlvdXRVbml0IHJpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9y
aWdodDsgfQotICAgIGlubGluZSBMYXlvdXRVbml0IGJvdHRvbSgpIGNvbnN0IHsgcmV0dXJuIG1f
Ym90dG9tOyB9Ci0gICAgaW5saW5lIExheW91dFVuaXQgbGVmdCgpIGNvbnN0IHsgcmV0dXJuIG1f
bGVmdDsgfQotCi0gICAgaW5saW5lIHZvaWQgc2V0VG9wKExheW91dFVuaXQgdmFsdWUpIHsgbV90
b3AgPSB2YWx1ZTsgfQotICAgIGlubGluZSB2b2lkIHNldFJpZ2h0KExheW91dFVuaXQgdmFsdWUp
IHsgbV9yaWdodCA9IHZhbHVlOyB9Ci0gICAgaW5saW5lIHZvaWQgc2V0Qm90dG9tKExheW91dFVu
aXQgdmFsdWUpIHsgbV9ib3R0b20gPSB2YWx1ZTsgfQotICAgIGlubGluZSB2b2lkIHNldExlZnQo
TGF5b3V0VW5pdCB2YWx1ZSkgeyBtX2xlZnQgPSB2YWx1ZTsgfQotCi0gICAgTGF5b3V0VW5pdCBs
b2dpY2FsVG9wKFdyaXRpbmdNb2RlKSBjb25zdDsKLSAgICBMYXlvdXRVbml0IGxvZ2ljYWxCb3R0
b20oV3JpdGluZ01vZGUpIGNvbnN0OwotICAgIExheW91dFVuaXQgbG9naWNhbExlZnQoV3JpdGlu
Z01vZGUpIGNvbnN0OwotICAgIExheW91dFVuaXQgbG9naWNhbFJpZ2h0KFdyaXRpbmdNb2RlKSBj
b25zdDsKLQotICAgIExheW91dFVuaXQgYmVmb3JlKFdyaXRpbmdNb2RlKSBjb25zdDsKLSAgICBM
YXlvdXRVbml0IGFmdGVyKFdyaXRpbmdNb2RlKSBjb25zdDsKLSAgICBMYXlvdXRVbml0IHN0YXJ0
KFdyaXRpbmdNb2RlLCBUZXh0RGlyZWN0aW9uKSBjb25zdDsKLSAgICBMYXlvdXRVbml0IGVuZChX
cml0aW5nTW9kZSwgVGV4dERpcmVjdGlvbikgY29uc3Q7Ci0KLSAgICB2b2lkIHNldEJlZm9yZShX
cml0aW5nTW9kZSwgTGF5b3V0VW5pdCk7Ci0gICAgdm9pZCBzZXRBZnRlcihXcml0aW5nTW9kZSwg
TGF5b3V0VW5pdCk7Ci0gICAgdm9pZCBzZXRTdGFydChXcml0aW5nTW9kZSwgVGV4dERpcmVjdGlv
biwgTGF5b3V0VW5pdCk7Ci0gICAgdm9pZCBzZXRFbmQoV3JpdGluZ01vZGUsIFRleHREaXJlY3Rp
b24sIExheW91dFVuaXQpOwotCi0gICAgTGF5b3V0VW5pdCYgbXV0YWJsZUxvZ2ljYWxMZWZ0KFdy
aXRpbmdNb2RlKTsKLSAgICBMYXlvdXRVbml0JiBtdXRhYmxlTG9naWNhbFJpZ2h0KFdyaXRpbmdN
b2RlKTsKLQotICAgIExheW91dFVuaXQmIG11dGFibGVCZWZvcmUoV3JpdGluZ01vZGUpOwotICAg
IExheW91dFVuaXQmIG11dGFibGVBZnRlcihXcml0aW5nTW9kZSk7Ci0KLXByaXZhdGU6Ci0gICAg
TGF5b3V0VW5pdCBtX3RvcDsKLSAgICBMYXlvdXRVbml0IG1fcmlnaHQ7Ci0gICAgTGF5b3V0VW5p
dCBtX2JvdHRvbTsKLSAgICBMYXlvdXRVbml0IG1fbGVmdDsKLX07Ci0KLX0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKLQotI2VuZGlmIC8vIExheW91dEJveEV4dGVudF9oCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9MYXlvdXRSZWN0LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTGF5b3V0UmVjdC5oCShyZXZpc2lvbiAxODQ2NTUp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9MYXlvdXRSZWN0LmgJKHdvcmtp
bmcgY29weSkKQEAgLTMzLDggKzMzLDggQEAKIAogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2lu
Y2x1ZGUgIkludFJlY3QuaCIKLSNpbmNsdWRlICJMYXlvdXRCb3hFeHRlbnQuaCIKICNpbmNsdWRl
ICJMYXlvdXRQb2ludC5oIgorI2luY2x1ZGUgIkxlbmd0aEJveC5oIgogI2luY2x1ZGUgPHd0Zi9W
ZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vdGV4dC9Xcml0aW5nTW9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3RleHQvV3JpdGluZ01vZGUuaAkocmV2aXNpb24gMTg0NjU1KQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vdGV4dC9Xcml0aW5nTW9kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01NSw2
ICs1NSwyMSBAQCBpbmxpbmUgYm9vbCBpc0ZsaXBwZWRCbG9ja3NXcml0aW5nTW9kZShXCiAgICAg
cmV0dXJuIHdyaXRpbmdNb2RlID09IFJpZ2h0VG9MZWZ0V3JpdGluZ01vZGUgfHwgd3JpdGluZ01v
ZGUgPT0gQm90dG9tVG9Ub3BXcml0aW5nTW9kZTsKIH0KIAorZW51bSBMb2dpY2FsQm94U2lkZSB7
CisgICAgQmVmb3JlU2lkZSwKKyAgICBFbmRTaWRlLAorICAgIEFmdGVyU2lkZSwKKyAgICBTdGFy
dFNpZGUKK307CisKK2VudW0gUGh5c2ljYWxCb3hTaWRlIHsKKyAgICBOaWxTaWRlID0gLTEsCisg
ICAgVG9wU2lkZSwKKyAgICBSaWdodFNpZGUsCisgICAgQm90dG9tU2lkZSwKKyAgICBMZWZ0U2lk
ZQorfTsKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gV3JpdGluZ01vZGVf
aApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcAkocmV2
aXNpb24gMTg0NjU1KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3gu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC04NDMsMTAgKzg0MywxMCBAQCBpbmxpbmUgdm9pZCBJbmxp
bmVGbG93Qm94OjphZGRCb3JkZXJPdXRzCiAKICAgICBMYXlvdXRCb3hFeHRlbnQgYm9yZGVyT3V0
c2V0cyA9IGxpbmVTdHlsZS5ib3JkZXJJbWFnZU91dHNldHMoKTsKIAotICAgIExheW91dFVuaXQg
Ym9yZGVyT3V0c2V0TG9naWNhbFRvcCA9IGJvcmRlck91dHNldHMubG9naWNhbFRvcChsaW5lU3R5
bGUud3JpdGluZ01vZGUoKSk7Ci0gICAgTGF5b3V0VW5pdCBib3JkZXJPdXRzZXRMb2dpY2FsQm90
dG9tID0gYm9yZGVyT3V0c2V0cy5sb2dpY2FsQm90dG9tKGxpbmVTdHlsZS53cml0aW5nTW9kZSgp
KTsKLSAgICBMYXlvdXRVbml0IGJvcmRlck91dHNldExvZ2ljYWxMZWZ0ID0gYm9yZGVyT3V0c2V0
cy5sb2dpY2FsTGVmdChsaW5lU3R5bGUud3JpdGluZ01vZGUoKSk7Ci0gICAgTGF5b3V0VW5pdCBi
b3JkZXJPdXRzZXRMb2dpY2FsUmlnaHQgPSBib3JkZXJPdXRzZXRzLmxvZ2ljYWxSaWdodChsaW5l
U3R5bGUud3JpdGluZ01vZGUoKSk7CisgICAgTGF5b3V0VW5pdCBib3JkZXJPdXRzZXRMb2dpY2Fs
VG9wID0gYm9yZGVyT3V0c2V0cy5iZWZvcmUobGluZVN0eWxlLndyaXRpbmdNb2RlKCkpOworICAg
IExheW91dFVuaXQgYm9yZGVyT3V0c2V0TG9naWNhbEJvdHRvbSA9IGJvcmRlck91dHNldHMuYWZ0
ZXIobGluZVN0eWxlLndyaXRpbmdNb2RlKCkpOworICAgIExheW91dFVuaXQgYm9yZGVyT3V0c2V0
TG9naWNhbExlZnQgPSBib3JkZXJPdXRzZXRzLnN0YXJ0KGxpbmVTdHlsZS53cml0aW5nTW9kZSgp
KTsKKyAgICBMYXlvdXRVbml0IGJvcmRlck91dHNldExvZ2ljYWxSaWdodCA9IGJvcmRlck91dHNl
dHMuZW5kKGxpbmVTdHlsZS53cml0aW5nTW9kZSgpKTsKIAogICAgIC8vIFNpbWlsYXIgdG8gaG93
IGdseXBoIG92ZXJmbG93IHdvcmtzLCBpZiBvdXIgbGluZXMgYXJlIGZsaXBwZWQsIHRoZW4gaXQn
cyBhY3R1YWxseSB0aGUgb3Bwb3NpdGUgYm9yZGVyIHRoYXQgYXBwbGllcywgc2luY2UKICAgICAv
LyB0aGUgbGluZSBpcyAidXBzaWRlIGRvd24iIGluIHRlcm1zIG9mIGJsb2NrIGNvb3JkaW5hdGVz
LiB2ZXJ0aWNhbC1ybCBhbmQgaG9yaXpvbnRhbC1idCBhcmUgdGhlIGZsaXBwZWQgbGluZSBtb2Rl
cy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgJKHJldmlzaW9uIDE4NDY1
NSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAkod29ya2luZyBjb3B5
KQpAQCAtMjYyLDggKzI2Miw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldE1hcmdpbkxlZnQoTGF5
b3V0VW5pdCBtYXJnaW4pIHsgbV9tYXJnaW5Cb3guc2V0TGVmdChtYXJnaW4pOyB9CiAgICAgdm9p
ZCBzZXRNYXJnaW5SaWdodChMYXlvdXRVbml0IG1hcmdpbikgeyBtX21hcmdpbkJveC5zZXRSaWdo
dChtYXJnaW4pOyB9CiAKLSAgICBMYXlvdXRVbml0IG1hcmdpbkxvZ2ljYWxMZWZ0KCkgY29uc3Qg
eyByZXR1cm4gbV9tYXJnaW5Cb3gubG9naWNhbExlZnQoc3R5bGUoKS53cml0aW5nTW9kZSgpKTsg
fQotICAgIExheW91dFVuaXQgbWFyZ2luTG9naWNhbFJpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9t
YXJnaW5Cb3gubG9naWNhbFJpZ2h0KHN0eWxlKCkud3JpdGluZ01vZGUoKSk7IH0KKyAgICBMYXlv
dXRVbml0IG1hcmdpbkxvZ2ljYWxMZWZ0KCkgY29uc3QgeyByZXR1cm4gbV9tYXJnaW5Cb3guc3Rh
cnQoc3R5bGUoKS53cml0aW5nTW9kZSgpKTsgfQorICAgIExheW91dFVuaXQgbWFyZ2luTG9naWNh
bFJpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9tYXJnaW5Cb3guZW5kKHN0eWxlKCkud3JpdGluZ01v
ZGUoKSk7IH0KICAgICAKICAgICB2aXJ0dWFsIExheW91dFVuaXQgbWFyZ2luQmVmb3JlKGNvbnN0
IFJlbmRlclN0eWxlKiBvdmVycmlkZVN0eWxlID0gbnVsbHB0cikgY29uc3Qgb3ZlcnJpZGUgZmlu
YWwgeyByZXR1cm4gbV9tYXJnaW5Cb3guYmVmb3JlKChvdmVycmlkZVN0eWxlID8gb3ZlcnJpZGVT
dHlsZSA6ICZzdHlsZSgpKS0+d3JpdGluZ01vZGUoKSk7IH0KICAgICB2aXJ0dWFsIExheW91dFVu
aXQgbWFyZ2luQWZ0ZXIoY29uc3QgUmVuZGVyU3R5bGUqIG92ZXJyaWRlU3R5bGUgPSBudWxscHRy
KSBjb25zdCBvdmVycmlkZSBmaW5hbCB7IHJldHVybiBtX21hcmdpbkJveC5hZnRlcigob3ZlcnJp
ZGVTdHlsZSA/IG92ZXJyaWRlU3R5bGUgOiAmc3R5bGUoKSktPndyaXRpbmdNb2RlKCkpOyB9CkBA
IC0yNzcsMTcgKzI3NywxNyBAQCBwdWJsaWM6CiAgICAgICAgIGNvbnN0IFJlbmRlclN0eWxlKiBz
dHlsZVRvVXNlID0gb3ZlcnJpZGVTdHlsZSA/IG92ZXJyaWRlU3R5bGUgOiAmc3R5bGUoKTsKICAg
ICAgICAgcmV0dXJuIG1fbWFyZ2luQm94LmVuZChzdHlsZVRvVXNlLT53cml0aW5nTW9kZSgpLCBz
dHlsZVRvVXNlLT5kaXJlY3Rpb24oKSk7CiAgICAgfQotICAgIHZvaWQgc2V0TWFyZ2luQmVmb3Jl
KExheW91dFVuaXQgdmFsdWUsIGNvbnN0IFJlbmRlclN0eWxlKiBvdmVycmlkZVN0eWxlID0gbnVs
bHB0cikgeyBtX21hcmdpbkJveC5zZXRCZWZvcmUoKG92ZXJyaWRlU3R5bGUgPyBvdmVycmlkZVN0
eWxlIDogJnN0eWxlKCkpLT53cml0aW5nTW9kZSgpLCB2YWx1ZSk7IH0KLSAgICB2b2lkIHNldE1h
cmdpbkFmdGVyKExheW91dFVuaXQgdmFsdWUsIGNvbnN0IFJlbmRlclN0eWxlKiBvdmVycmlkZVN0
eWxlID0gbnVsbHB0cikgeyBtX21hcmdpbkJveC5zZXRBZnRlcigob3ZlcnJpZGVTdHlsZSA/IG92
ZXJyaWRlU3R5bGUgOiAmc3R5bGUoKSktPndyaXRpbmdNb2RlKCksIHZhbHVlKTsgfQorICAgIHZv
aWQgc2V0TWFyZ2luQmVmb3JlKExheW91dFVuaXQgdmFsdWUsIGNvbnN0IFJlbmRlclN0eWxlKiBv
dmVycmlkZVN0eWxlID0gbnVsbHB0cikgeyBtX21hcmdpbkJveC5zZXRCZWZvcmUodmFsdWUsIChv
dmVycmlkZVN0eWxlID8gb3ZlcnJpZGVTdHlsZSA6ICZzdHlsZSgpKS0+d3JpdGluZ01vZGUoKSk7
IH0KKyAgICB2b2lkIHNldE1hcmdpbkFmdGVyKExheW91dFVuaXQgdmFsdWUsIGNvbnN0IFJlbmRl
clN0eWxlKiBvdmVycmlkZVN0eWxlID0gbnVsbHB0cikgeyBtX21hcmdpbkJveC5zZXRBZnRlcih2
YWx1ZSwgKG92ZXJyaWRlU3R5bGUgPyBvdmVycmlkZVN0eWxlIDogJnN0eWxlKCkpLT53cml0aW5n
TW9kZSgpKTsgfQogICAgIHZvaWQgc2V0TWFyZ2luU3RhcnQoTGF5b3V0VW5pdCB2YWx1ZSwgY29u
c3QgUmVuZGVyU3R5bGUqIG92ZXJyaWRlU3R5bGUgPSBudWxscHRyKQogICAgIHsKICAgICAgICAg
Y29uc3QgUmVuZGVyU3R5bGUqIHN0eWxlVG9Vc2UgPSBvdmVycmlkZVN0eWxlID8gb3ZlcnJpZGVT
dHlsZSA6ICZzdHlsZSgpOwotICAgICAgICBtX21hcmdpbkJveC5zZXRTdGFydChzdHlsZVRvVXNl
LT53cml0aW5nTW9kZSgpLCBzdHlsZVRvVXNlLT5kaXJlY3Rpb24oKSwgdmFsdWUpOworICAgICAg
ICBtX21hcmdpbkJveC5zZXRTdGFydCh2YWx1ZSwgc3R5bGVUb1VzZS0+d3JpdGluZ01vZGUoKSwg
c3R5bGVUb1VzZS0+ZGlyZWN0aW9uKCkpOwogICAgIH0KICAgICB2b2lkIHNldE1hcmdpbkVuZChM
YXlvdXRVbml0IHZhbHVlLCBjb25zdCBSZW5kZXJTdHlsZSogb3ZlcnJpZGVTdHlsZSA9IG51bGxw
dHIpCiAgICAgewogICAgICAgICBjb25zdCBSZW5kZXJTdHlsZSogc3R5bGVUb1VzZSA9IG92ZXJy
aWRlU3R5bGUgPyBvdmVycmlkZVN0eWxlIDogJnN0eWxlKCk7Ci0gICAgICAgIG1fbWFyZ2luQm94
LnNldEVuZChzdHlsZVRvVXNlLT53cml0aW5nTW9kZSgpLCBzdHlsZVRvVXNlLT5kaXJlY3Rpb24o
KSwgdmFsdWUpOworICAgICAgICBtX21hcmdpbkJveC5zZXRFbmQodmFsdWUsIHN0eWxlVG9Vc2Ut
PndyaXRpbmdNb2RlKCksIHN0eWxlVG9Vc2UtPmRpcmVjdGlvbigpKTsKICAgICB9CiAKICAgICAv
LyBUaGUgZm9sbG93aW5nIGZpdmUgZnVuY3Rpb25zIGFyZSB1c2VkIHRvIGltcGxlbWVudCBjb2xs
YXBzaW5nIG1hcmdpbnMuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94
TW9kZWxPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAJKHJldmlzaW9uIDE4NDY1NSkKKysrIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTkyMSwxMSArOTIxLDEzIEBAIHN0YXRpYyBpbmxpbmUgTGF5b3V0U2l6ZSByZXNvbHZlQWdhaW5z
dEkKICAgICByZXR1cm4gTGF5b3V0U2l6ZShzaXplLndpZHRoKCksIHNvbHV0aW9uSGVpZ2h0KTsK
IH0KIAotTGF5b3V0U2l6ZSBSZW5kZXJCb3hNb2RlbE9iamVjdDo6Y2FsY3VsYXRlSW1hZ2VJbnRy
aW5zaWNEaW1lbnNpb25zKFN0eWxlSW1hZ2UqIGltYWdlLCBjb25zdCBMYXlvdXRTaXplJiBwb3Np
dGlvbmluZ0FyZWFTaXplLCBTY2FsZUJ5RWZmZWN0aXZlWm9vbU9yTm90IHNob3VsZFNjYWxlT3JO
b3QpIGNvbnN0Citib29sIFJlbmRlckJveE1vZGVsT2JqZWN0OjpjYWxjdWxhdGVJbWFnZUludHJp
bnNpY0RpbWVuc2lvbnMoU3R5bGVJbWFnZSogaW1hZ2UsIGNvbnN0IExheW91dFNpemUmIHBvc2l0
aW9uaW5nQXJlYVNpemUsIFNjYWxlQnlFZmZlY3RpdmVab29tT3JOb3Qgc2hvdWxkU2NhbGVPck5v
dCwgTGF5b3V0U2l6ZSYgaW1hZ2VTaXplKSBjb25zdAogewogICAgIC8vIEEgZ2VuZXJhdGVkIGlt
YWdlIHdpdGhvdXQgYSBmaXhlZCBzaXplLCB3aWxsIGFsd2F5cyByZXR1cm4gdGhlIGNvbnRhaW5l
ciBzaXplIGFzIGludHJpbnNpYyBzaXplLgotICAgIGlmIChpbWFnZS0+aXNHZW5lcmF0ZWRJbWFn
ZSgpICYmIGltYWdlLT51c2VzSW1hZ2VDb250YWluZXJTaXplKCkpCi0gICAgICAgIHJldHVybiBM
YXlvdXRTaXplKHBvc2l0aW9uaW5nQXJlYVNpemUud2lkdGgoKSwgcG9zaXRpb25pbmdBcmVhU2l6
ZS5oZWlnaHQoKSk7CisgICAgaWYgKGltYWdlLT5pc0dlbmVyYXRlZEltYWdlKCkgJiYgaW1hZ2Ut
PnVzZXNJbWFnZUNvbnRhaW5lclNpemUoKSkgeworICAgICAgICBpbWFnZVNpemUgPSBMYXlvdXRT
aXplKHBvc2l0aW9uaW5nQXJlYVNpemUud2lkdGgoKSwgcG9zaXRpb25pbmdBcmVhU2l6ZS5oZWln
aHQoKSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KIAogICAgIExlbmd0aCBpbnRyaW5z
aWNXaWR0aDsKICAgICBMZW5ndGggaW50cmluc2ljSGVpZ2h0OwpAQCAtOTM1LDMxICs5MzcsMzYg
QEAgTGF5b3V0U2l6ZSBSZW5kZXJCb3hNb2RlbE9iamVjdDo6Y2FsY3VsYQogICAgIEFTU0VSVCgh
aW50cmluc2ljV2lkdGguaXNQZXJjZW50T3JDYWxjdWxhdGVkKCkpOwogICAgIEFTU0VSVCghaW50
cmluc2ljSGVpZ2h0LmlzUGVyY2VudE9yQ2FsY3VsYXRlZCgpKTsKIAotICAgIExheW91dFNpemUg
cmVzb2x2ZWRTaXplKGludHJpbnNpY1dpZHRoLnZhbHVlKCksIGludHJpbnNpY0hlaWdodC52YWx1
ZSgpKTsKLSAgICBMYXlvdXRTaXplIG1pbmltdW1TaXplKHJlc29sdmVkU2l6ZS53aWR0aCgpID4g
MCA/IDEgOiAwLCByZXNvbHZlZFNpemUuaGVpZ2h0KCkgPiAwID8gMSA6IDApOworICAgIGltYWdl
U2l6ZSA9IExheW91dFNpemUoaW50cmluc2ljV2lkdGgudmFsdWUoKSwgaW50cmluc2ljSGVpZ2h0
LnZhbHVlKCkpOworICAgIExheW91dFNpemUgbWluaW11bVNpemUoaW1hZ2VTaXplLndpZHRoKCkg
PiAwID8gMSA6IDAsIGltYWdlU2l6ZS5oZWlnaHQoKSA+IDAgPyAxIDogMCk7CiAgICAgaWYgKHNo
b3VsZFNjYWxlT3JOb3QgPT0gU2NhbGVCeUVmZmVjdGl2ZVpvb20pCi0gICAgICAgIHJlc29sdmVk
U2l6ZS5zY2FsZShzdHlsZSgpLmVmZmVjdGl2ZVpvb20oKSk7Ci0gICAgcmVzb2x2ZWRTaXplLmNs
YW1wVG9NaW5pbXVtU2l6ZShtaW5pbXVtU2l6ZSk7CisgICAgICAgIGltYWdlU2l6ZS5zY2FsZShz
dHlsZSgpLmVmZmVjdGl2ZVpvb20oKSk7CisgICAgaW1hZ2VTaXplLmNsYW1wVG9NaW5pbXVtU2l6
ZShtaW5pbXVtU2l6ZSk7CiAKLSAgICBpZiAoIXJlc29sdmVkU2l6ZS5pc0VtcHR5KCkpCi0gICAg
ICAgIHJldHVybiByZXNvbHZlZFNpemU7CisgICAgaWYgKCFpbWFnZVNpemUuaXNFbXB0eSgpKQor
ICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIC8vIElmIHRoZSBpbWFnZSBoYXMgb25lIG9mIGVp
dGhlciBhbiBpbnRyaW5zaWMgd2lkdGggb3IgYW4gaW50cmluc2ljIGhlaWdodDoKICAgICAvLyAq
IGFuZCBhbiBpbnRyaW5zaWMgYXNwZWN0IHJhdGlvLCB0aGVuIHRoZSBtaXNzaW5nIGRpbWVuc2lv
biBpcyBjYWxjdWxhdGVkIGZyb20gdGhlIGdpdmVuIGRpbWVuc2lvbiBhbmQgdGhlIHJhdGlvLgog
ICAgIC8vICogYW5kIG5vIGludHJpbnNpYyBhc3BlY3QgcmF0aW8sIHRoZW4gdGhlIG1pc3Npbmcg
ZGltZW5zaW9uIGlzIGFzc3VtZWQgdG8gYmUgdGhlIHNpemUgb2YgdGhlIHJlY3RhbmdsZSB0aGF0
CiAgICAgLy8gICBlc3RhYmxpc2hlcyB0aGUgY29vcmRpbmF0ZSBzeXN0ZW0gZm9yIHRoZSAnYmFj
a2dyb3VuZC1wb3NpdGlvbicgcHJvcGVydHkuCi0gICAgaWYgKHJlc29sdmVkU2l6ZS53aWR0aCgp
ID4gMCB8fCByZXNvbHZlZFNpemUuaGVpZ2h0KCkgPiAwKQotICAgICAgICByZXR1cm4gcmVzb2x2
ZUFnYWluc3RJbnRyaW5zaWNXaWR0aE9ySGVpZ2h0QW5kUmF0aW8ocG9zaXRpb25pbmdBcmVhU2l6
ZSwgaW50cmluc2ljUmF0aW8sIHJlc29sdmVkU2l6ZS53aWR0aCgpLCByZXNvbHZlZFNpemUuaGVp
Z2h0KCkpOworICAgIGlmIChpbWFnZVNpemUud2lkdGgoKSA+IDAgfHwgaW1hZ2VTaXplLmhlaWdo
dCgpID4gMCkgeworICAgICAgICBpbWFnZVNpemUgPSByZXNvbHZlQWdhaW5zdEludHJpbnNpY1dp
ZHRoT3JIZWlnaHRBbmRSYXRpbyhwb3NpdGlvbmluZ0FyZWFTaXplLCBpbnRyaW5zaWNSYXRpbywg
aW1hZ2VTaXplLndpZHRoKCksIGltYWdlU2l6ZS5oZWlnaHQoKSk7CisgICAgICAgIHJldHVybiB0
cnVlOworICAgIH0KIAogICAgIC8vIElmIHRoZSBpbWFnZSBoYXMgbm8gaW50cmluc2ljIGRpbWVu
c2lvbnMgYW5kIGhhcyBhbiBpbnRyaW5zaWMgcmF0aW8gdGhlIGRpbWVuc2lvbnMgbXVzdCBiZSBh
c3N1bWVkIHRvIGJlIHRoZQogICAgIC8vIGxhcmdlc3QgZGltZW5zaW9ucyBhdCB0aGF0IHJhdGlv
IHN1Y2ggdGhhdCBuZWl0aGVyIGRpbWVuc2lvbiBleGNlZWRzIHRoZSBkaW1lbnNpb25zIG9mIHRo
ZSByZWN0YW5nbGUgdGhhdAogICAgIC8vIGVzdGFibGlzaGVzIHRoZSBjb29yZGluYXRlIHN5c3Rl
bSBmb3IgdGhlICdiYWNrZ3JvdW5kLXBvc2l0aW9uJyBwcm9wZXJ0eS4KLSAgICBpZiAoIWludHJp
bnNpY1JhdGlvLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIHJlc29sdmVBZ2FpbnN0SW50cmlu
c2ljUmF0aW8ocG9zaXRpb25pbmdBcmVhU2l6ZSwgaW50cmluc2ljUmF0aW8pOworICAgIGlmICgh
aW50cmluc2ljUmF0aW8uaXNFbXB0eSgpKSB7CisgICAgICAgIGltYWdlU2l6ZSA9IHJlc29sdmVB
Z2FpbnN0SW50cmluc2ljUmF0aW8ocG9zaXRpb25pbmdBcmVhU2l6ZSwgaW50cmluc2ljUmF0aW8p
OworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQogCiAgICAgLy8gSWYgdGhlIGltYWdlIGhh
cyBubyBpbnRyaW5zaWMgcmF0aW8gZWl0aGVyLCB0aGVuIHRoZSBkaW1lbnNpb25zIG11c3QgYmUg
YXNzdW1lZCB0byBiZSB0aGUgcmVjdGFuZ2xlIHRoYXQKICAgICAvLyBlc3RhYmxpc2hlcyB0aGUg
Y29vcmRpbmF0ZSBzeXN0ZW0gZm9yIHRoZSAnYmFja2dyb3VuZC1wb3NpdGlvbicgcHJvcGVydHku
Ci0gICAgcmV0dXJuIHBvc2l0aW9uaW5nQXJlYVNpemU7CisgICAgaW1hZ2VTaXplID0gcG9zaXRp
b25pbmdBcmVhU2l6ZTsKKyAgICByZXR1cm4gZmFsc2U7CiB9CiAKIExheW91dFNpemUgUmVuZGVy
Qm94TW9kZWxPYmplY3Q6OmNhbGN1bGF0ZUZpbGxUaWxlU2l6ZShjb25zdCBGaWxsTGF5ZXImIGZp
bGxMYXllciwgY29uc3QgTGF5b3V0U2l6ZSYgcG9zaXRpb25pbmdBcmVhU2l6ZSkgY29uc3QKQEAg
LTk2OSw3ICs5NzYsNyBAQCBMYXlvdXRTaXplIFJlbmRlckJveE1vZGVsT2JqZWN0OjpjYWxjdWxh
CiAKICAgICBMYXlvdXRTaXplIGltYWdlSW50cmluc2ljU2l6ZTsKICAgICBpZiAoaW1hZ2UpIHsK
LSAgICAgICAgaW1hZ2VJbnRyaW5zaWNTaXplID0gY2FsY3VsYXRlSW1hZ2VJbnRyaW5zaWNEaW1l
bnNpb25zKGltYWdlLCBwb3NpdGlvbmluZ0FyZWFTaXplLCBTY2FsZUJ5RWZmZWN0aXZlWm9vbSk7
CisgICAgICAgIGNhbGN1bGF0ZUltYWdlSW50cmluc2ljRGltZW5zaW9ucyhpbWFnZSwgcG9zaXRp
b25pbmdBcmVhU2l6ZSwgU2NhbGVCeUVmZmVjdGl2ZVpvb20sIGltYWdlSW50cmluc2ljU2l6ZSk7
CiAgICAgICAgIGltYWdlSW50cmluc2ljU2l6ZS5zY2FsZSgxIC8gaW1hZ2UtPmltYWdlU2NhbGVG
YWN0b3IoKSwgMSAvIGltYWdlLT5pbWFnZVNjYWxlRmFjdG9yKCkpOwogICAgIH0gZWxzZQogICAg
ICAgICBpbWFnZUludHJpbnNpY1NpemUgPSBwb3NpdGlvbmluZ0FyZWFTaXplOwpAQCAtMTIzOCwx
NSArMTI0NSw2IEBAIHZvaWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OmdldEdlb21ldHJ5Rm8KICAg
ICBkZXN0UmVjdCA9IGdlb21ldHJ5LmRlc3RSZWN0KCk7CiB9CiAKLXN0YXRpYyBMYXlvdXRVbml0
IGNvbXB1dGVCb3JkZXJJbWFnZVNpZGUoTGVuZ3RoIGJvcmRlclNsaWNlLCBMYXlvdXRVbml0IGJv
cmRlclNpZGUsIExheW91dFVuaXQgaW1hZ2VTaWRlLCBMYXlvdXRVbml0IGJveEV4dGVudCkKLXsK
LSAgICBpZiAoYm9yZGVyU2xpY2UuaXNSZWxhdGl2ZSgpKQotICAgICAgICByZXR1cm4gYm9yZGVy
U2xpY2UudmFsdWUoKSAqIGJvcmRlclNpZGU7Ci0gICAgaWYgKGJvcmRlclNsaWNlLmlzQXV0bygp
KQotICAgICAgICByZXR1cm4gaW1hZ2VTaWRlOwotICAgIHJldHVybiB2YWx1ZUZvckxlbmd0aChi
b3JkZXJTbGljZSwgYm94RXh0ZW50KTsKLX0KLQogYm9vbCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6
cGFpbnROaW5lUGllY2VJbWFnZShHcmFwaGljc0NvbnRleHQqIGdyYXBoaWNzQ29udGV4dCwgY29u
c3QgTGF5b3V0UmVjdCYgcmVjdCwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBOaW5lUGllY2VJbWFn
ZSYgbmluZVBpZWNlSW1hZ2UsIENvbXBvc2l0ZU9wZXJhdG9yIG9wKQogewpAQCAtMTI2MywxNTIg
KzEyNjEsMTggQEAgYm9vbCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnROaW5lUGllYwogICAg
IC8vIEZJWE1FOiBib3JkZXItaW1hZ2UgaXMgYnJva2VuIHdpdGggZnVsbCBwYWdlIHpvb21pbmcg
d2hlbiB0aWxpbmcgaGFzIHRvIGhhcHBlbiwgc2luY2UgdGhlIHRpbGluZyBmdW5jdGlvbgogICAg
IC8vIGRvZXNuJ3QgaGF2ZSBhbnkgdW5kZXJzdGFuZGluZyBvZiB0aGUgem9vbSB0aGF0IGlzIGlu
IGVmZmVjdCBvbiB0aGUgdGlsZS4KICAgICBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvciA9IGRvY3Vt
ZW50KCkuZGV2aWNlU2NhbGVGYWN0b3IoKTsKKwogICAgIExheW91dFJlY3QgcmVjdFdpdGhPdXRz
ZXRzID0gcmVjdDsKICAgICByZWN0V2l0aE91dHNldHMuZXhwYW5kKHN0eWxlLmltYWdlT3V0c2V0
cyhuaW5lUGllY2VJbWFnZSkpOwotICAgIExheW91dFJlY3QgYm9yZGVySW1hZ2VSZWN0ID0gTGF5
b3V0UmVjdChzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKHJlY3RXaXRoT3V0c2V0cywgZGV2aWNlU2Nh
bGVGYWN0b3IpKTsKKyAgICBMYXlvdXRSZWN0IGRlc3RpbmF0aW9uID0gTGF5b3V0UmVjdChzbmFw
UmVjdFRvRGV2aWNlUGl4ZWxzKHJlY3RXaXRoT3V0c2V0cywgZGV2aWNlU2NhbGVGYWN0b3IpKTsK
IAotICAgIExheW91dFNpemUgaW1hZ2VTaXplID0gY2FsY3VsYXRlSW1hZ2VJbnRyaW5zaWNEaW1l
bnNpb25zKHN0eWxlSW1hZ2UsIGJvcmRlckltYWdlUmVjdC5zaXplKCksIERvTm90U2NhbGVCeUVm
ZmVjdGl2ZVpvb20pOworICAgIExheW91dFNpemUgc291cmNlOworICAgIGJvb2wgaW50cmluc2lj
U291cmNlID0gY2FsY3VsYXRlSW1hZ2VJbnRyaW5zaWNEaW1lbnNpb25zKHN0eWxlSW1hZ2UsIGRl
c3RpbmF0aW9uLnNpemUoKSwgRG9Ob3RTY2FsZUJ5RWZmZWN0aXZlWm9vbSwgc291cmNlKTsKIAog
ICAgIC8vIElmIGJvdGggdmFsdWVzIGFyZSDigJhhdXRv4oCZIHRoZW4gdGhlIGludHJpbnNpYyB3
aWR0aCBhbmQvb3IgaGVpZ2h0IG9mIHRoZSBpbWFnZSBzaG91bGQgYmUgdXNlZCwgaWYgYW55Lgot
ICAgIHN0eWxlSW1hZ2UtPnNldENvbnRhaW5lclNpemVGb3JSZW5kZXJlcih0aGlzLCBpbWFnZVNp
emUsIHN0eWxlLmVmZmVjdGl2ZVpvb20oKSk7Ci0KLSAgICBMYXlvdXRVbml0IGltYWdlV2lkdGgg
PSBpbWFnZVNpemUud2lkdGgoKTsKLSAgICBMYXlvdXRVbml0IGltYWdlSGVpZ2h0ID0gaW1hZ2VT
aXplLmhlaWdodCgpOwotCi0gICAgZmxvYXQgaW1hZ2VTY2FsZUZhY3RvciA9IHN0eWxlSW1hZ2Ut
PmltYWdlU2NhbGVGYWN0b3IoKTsKLSAgICBMYXlvdXRVbml0IHRvcFNsaWNlID0gc3RkOjptaW48
TGF5b3V0VW5pdD4oaW1hZ2VIZWlnaHQsIHZhbHVlRm9yTGVuZ3RoKG5pbmVQaWVjZUltYWdlLmlt
YWdlU2xpY2VzKCkudG9wKCksIGltYWdlSGVpZ2h0KSkgKiBpbWFnZVNjYWxlRmFjdG9yOwotICAg
IExheW91dFVuaXQgcmlnaHRTbGljZSA9IHN0ZDo6bWluPExheW91dFVuaXQ+KGltYWdlV2lkdGgs
IHZhbHVlRm9yTGVuZ3RoKG5pbmVQaWVjZUltYWdlLmltYWdlU2xpY2VzKCkucmlnaHQoKSwgaW1h
Z2VXaWR0aCkpICogaW1hZ2VTY2FsZUZhY3RvcjsKLSAgICBMYXlvdXRVbml0IGJvdHRvbVNsaWNl
ID0gc3RkOjptaW48TGF5b3V0VW5pdD4oaW1hZ2VIZWlnaHQsIHZhbHVlRm9yTGVuZ3RoKG5pbmVQ
aWVjZUltYWdlLmltYWdlU2xpY2VzKCkuYm90dG9tKCksIGltYWdlSGVpZ2h0KSkgKiBpbWFnZVNj
YWxlRmFjdG9yOwotICAgIExheW91dFVuaXQgbGVmdFNsaWNlID0gc3RkOjptaW48TGF5b3V0VW5p
dD4oaW1hZ2VXaWR0aCwgdmFsdWVGb3JMZW5ndGgobmluZVBpZWNlSW1hZ2UuaW1hZ2VTbGljZXMo
KS5sZWZ0KCksIGltYWdlV2lkdGgpKSAqIGltYWdlU2NhbGVGYWN0b3I7Ci0KLSAgICBFTmluZVBp
ZWNlSW1hZ2VSdWxlIGhSdWxlID0gbmluZVBpZWNlSW1hZ2UuaG9yaXpvbnRhbFJ1bGUoKTsKLSAg
ICBFTmluZVBpZWNlSW1hZ2VSdWxlIHZSdWxlID0gbmluZVBpZWNlSW1hZ2UudmVydGljYWxSdWxl
KCk7Ci0KLSAgICBMYXlvdXRVbml0IHRvcFdpZHRoID0gY29tcHV0ZUJvcmRlckltYWdlU2lkZShu
aW5lUGllY2VJbWFnZS5ib3JkZXJTbGljZXMoKS50b3AoKSwgc3R5bGUuYm9yZGVyVG9wV2lkdGgo
KSwgdG9wU2xpY2UsIGJvcmRlckltYWdlUmVjdC5oZWlnaHQoKSk7Ci0gICAgTGF5b3V0VW5pdCBy
aWdodFdpZHRoID0gY29tcHV0ZUJvcmRlckltYWdlU2lkZShuaW5lUGllY2VJbWFnZS5ib3JkZXJT
bGljZXMoKS5yaWdodCgpLCBzdHlsZS5ib3JkZXJSaWdodFdpZHRoKCksIHJpZ2h0U2xpY2UsIGJv
cmRlckltYWdlUmVjdC53aWR0aCgpKTsKLSAgICBMYXlvdXRVbml0IGJvdHRvbVdpZHRoID0gY29t
cHV0ZUJvcmRlckltYWdlU2lkZShuaW5lUGllY2VJbWFnZS5ib3JkZXJTbGljZXMoKS5ib3R0b20o
KSwgc3R5bGUuYm9yZGVyQm90dG9tV2lkdGgoKSwgYm90dG9tU2xpY2UsIGJvcmRlckltYWdlUmVj
dC5oZWlnaHQoKSk7Ci0gICAgTGF5b3V0VW5pdCBsZWZ0V2lkdGggPSBjb21wdXRlQm9yZGVySW1h
Z2VTaWRlKG5pbmVQaWVjZUltYWdlLmJvcmRlclNsaWNlcygpLmxlZnQoKSwgc3R5bGUuYm9yZGVy
TGVmdFdpZHRoKCksIGxlZnRTbGljZSwgYm9yZGVySW1hZ2VSZWN0LndpZHRoKCkpOwotCi0gICAg
Ly8gUmVkdWNlIHRoZSB3aWR0aHMgaWYgdGhleSdyZSB0b28gbGFyZ2UuCi0gICAgLy8gVGhlIHNw
ZWMgc2F5czogR2l2ZW4gTHdpZHRoIGFzIHRoZSB3aWR0aCBvZiB0aGUgYm9yZGVyIGltYWdlIGFy
ZWEsIExoZWlnaHQgYXMgaXRzIGhlaWdodCwgYW5kIFdzaWRlIGFzIHRoZSBib3JkZXIgaW1hZ2Ug
d2lkdGgKLSAgICAvLyBvZmZzZXQgZm9yIHRoZSBzaWRlLCBsZXQgZiA9IG1pbihMd2lkdGgvKFds
ZWZ0K1dyaWdodCksIExoZWlnaHQvKFd0b3ArV2JvdHRvbSkpLiBJZiBmIDwgMSwgdGhlbiBhbGwg
VyBhcmUgcmVkdWNlZCBieQotICAgIC8vIG11bHRpcGx5aW5nIHRoZW0gYnkgZi4KLSAgICBMYXlv
dXRVbml0IGJvcmRlclNpZGVXaWR0aCA9IHN0ZDo6bWF4PExheW91dFVuaXQ+KDEgLyBkZXZpY2VT
Y2FsZUZhY3RvciwgbGVmdFdpZHRoICsgcmlnaHRXaWR0aCk7Ci0gICAgTGF5b3V0VW5pdCBib3Jk
ZXJTaWRlSGVpZ2h0ID0gc3RkOjptYXg8TGF5b3V0VW5pdD4oMSAvIGRldmljZVNjYWxlRmFjdG9y
LCB0b3BXaWR0aCArIGJvdHRvbVdpZHRoKTsKLSAgICBmbG9hdCBib3JkZXJTaWRlU2NhbGVGYWN0
b3IgPSBzdGQ6Om1pbigoZmxvYXQpYm9yZGVySW1hZ2VSZWN0LndpZHRoKCkgLyBib3JkZXJTaWRl
V2lkdGgsIChmbG9hdClib3JkZXJJbWFnZVJlY3QuaGVpZ2h0KCkgLyBib3JkZXJTaWRlSGVpZ2h0
KTsKLSAgICBpZiAoYm9yZGVyU2lkZVNjYWxlRmFjdG9yIDwgMSkgewotICAgICAgICB0b3BXaWR0
aCAqPSBib3JkZXJTaWRlU2NhbGVGYWN0b3I7Ci0gICAgICAgIHJpZ2h0V2lkdGggKj0gYm9yZGVy
U2lkZVNjYWxlRmFjdG9yOwotICAgICAgICBib3R0b21XaWR0aCAqPSBib3JkZXJTaWRlU2NhbGVG
YWN0b3I7Ci0gICAgICAgIGxlZnRXaWR0aCAqPSBib3JkZXJTaWRlU2NhbGVGYWN0b3I7Ci0gICAg
fQotCi0gICAgYm9vbCBkcmF3TGVmdCA9IGxlZnRTbGljZSA+IDAgJiYgbGVmdFdpZHRoID4gMDsK
LSAgICBib29sIGRyYXdUb3AgPSB0b3BTbGljZSA+IDAgJiYgdG9wV2lkdGggPiAwOwotICAgIGJv
b2wgZHJhd1JpZ2h0ID0gcmlnaHRTbGljZSA+IDAgJiYgcmlnaHRXaWR0aCA+IDA7Ci0gICAgYm9v
bCBkcmF3Qm90dG9tID0gYm90dG9tU2xpY2UgPiAwICYmIGJvdHRvbVdpZHRoID4gMDsKLSAgICBi
b29sIGRyYXdNaWRkbGUgPSBuaW5lUGllY2VJbWFnZS5maWxsKCkgJiYgKGltYWdlV2lkdGggLSBs
ZWZ0U2xpY2UgLSByaWdodFNsaWNlKSA+IDAgJiYgKGJvcmRlckltYWdlUmVjdC53aWR0aCgpIC0g
bGVmdFdpZHRoIC0gcmlnaHRXaWR0aCkgPiAwCi0gICAgICAgICAgICAgICAgICAgICAgJiYgKGlt
YWdlSGVpZ2h0IC0gdG9wU2xpY2UgLSBib3R0b21TbGljZSkgPiAwICYmIChib3JkZXJJbWFnZVJl
Y3QuaGVpZ2h0KCkgLSB0b3BXaWR0aCAtIGJvdHRvbVdpZHRoKSA+IDA7Ci0KLSAgICBSZWZQdHI8
SW1hZ2U+IGltYWdlID0gc3R5bGVJbWFnZS0+aW1hZ2UodGhpcywgaW1hZ2VTaXplKTsKLSAgICBD
b2xvclNwYWNlIGNvbG9yU3BhY2UgPSBzdHlsZS5jb2xvclNwYWNlKCk7Ci0gICAgCi0gICAgZmxv
YXQgZGVzdGluYXRpb25XaWR0aCA9IGJvcmRlckltYWdlUmVjdC53aWR0aCgpIC0gbGVmdFdpZHRo
IC0gcmlnaHRXaWR0aDsKLSAgICBmbG9hdCBkZXN0aW5hdGlvbkhlaWdodCA9IGJvcmRlckltYWdl
UmVjdC5oZWlnaHQoKSAtIHRvcFdpZHRoIC0gYm90dG9tV2lkdGg7Ci0gICAgCi0gICAgZmxvYXQg
c291cmNlV2lkdGggPSBpbWFnZVdpZHRoIC0gbGVmdFNsaWNlIC0gcmlnaHRTbGljZTsKLSAgICBm
bG9hdCBzb3VyY2VIZWlnaHQgPSBpbWFnZUhlaWdodCAtIHRvcFNsaWNlIC0gYm90dG9tU2xpY2U7
Ci0gICAgCi0gICAgZmxvYXQgbGVmdFNpZGVTY2FsZSA9IGRyYXdMZWZ0ID8gKGZsb2F0KWxlZnRX
aWR0aCAvIGxlZnRTbGljZSA6IDE7Ci0gICAgZmxvYXQgcmlnaHRTaWRlU2NhbGUgPSBkcmF3Umln
aHQgPyAoZmxvYXQpcmlnaHRXaWR0aCAvIHJpZ2h0U2xpY2UgOiAxOwotICAgIGZsb2F0IHRvcFNp
ZGVTY2FsZSA9IGRyYXdUb3AgPyAoZmxvYXQpdG9wV2lkdGggLyB0b3BTbGljZSA6IDE7Ci0gICAg
ZmxvYXQgYm90dG9tU2lkZVNjYWxlID0gZHJhd0JvdHRvbSA/IChmbG9hdClib3R0b21XaWR0aCAv
IGJvdHRvbVNsaWNlIDogMTsKLQotICAgIGZsb2F0IHggPSBib3JkZXJJbWFnZVJlY3QubG9jYXRp
b24oKS54KCk7Ci0gICAgZmxvYXQgeSA9IGJvcmRlckltYWdlUmVjdC5sb2NhdGlvbigpLnkoKTsK
LSAgICBpZiAoZHJhd0xlZnQpIHsKLSAgICAgICAgLy8gUGFpbnQgdGhlIHRvcCBhbmQgYm90dG9t
IGxlZnQgY29ybmVycy4KLQotICAgICAgICAvLyBUaGUgdG9wIGxlZnQgY29ybmVyIHJlY3QgaXMg
KHR4LCB0eSwgbGVmdFdpZHRoLCB0b3BXaWR0aCkKLSAgICAgICAgLy8gVGhlIHJlY3QgdG8gdXNl
IGZyb20gd2l0aGluIHRoZSBpbWFnZSBpcyBvYnRhaW5lZCBmcm9tIG91ciBzbGljZSwgYW5kIGlz
ICgwLCAwLCBsZWZ0U2xpY2UsIHRvcFNsaWNlKQotICAgICAgICBpZiAoZHJhd1RvcCkKLSAgICAg
ICAgICAgIGdyYXBoaWNzQ29udGV4dC0+ZHJhd0ltYWdlKGltYWdlLmdldCgpLCBjb2xvclNwYWNl
LCBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKHgsIHksIGxlZnRXaWR0aCwgdG9wV2lkdGgsIGRldmlj
ZVNjYWxlRmFjdG9yKSwKLSAgICAgICAgICAgICAgICBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKDAs
IDAsIGxlZnRTbGljZSwgdG9wU2xpY2UsIGRldmljZVNjYWxlRmFjdG9yKSwgb3ApOwotCi0gICAg
ICAgIC8vIFRoZSBib3R0b20gbGVmdCBjb3JuZXIgcmVjdCBpcyAodHgsIHR5ICsgaCAtIGJvdHRv
bVdpZHRoLCBsZWZ0V2lkdGgsIGJvdHRvbVdpZHRoKQotICAgICAgICAvLyBUaGUgcmVjdCB0byB1
c2UgZnJvbSB3aXRoaW4gdGhlIGltYWdlIGlzICgwLCBpbWFnZUhlaWdodCAtIGJvdHRvbVNsaWNl
LCBsZWZ0U2xpY2UsIGJvdG9tU2xpY2UpCi0gICAgICAgIGlmIChkcmF3Qm90dG9tKQotICAgICAg
ICAgICAgZ3JhcGhpY3NDb250ZXh0LT5kcmF3SW1hZ2UoaW1hZ2UuZ2V0KCksIGNvbG9yU3BhY2Us
IHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMoeCwgYm9yZGVySW1hZ2VSZWN0Lm1heFkoKSAtIGJvdHRv
bVdpZHRoLCBsZWZ0V2lkdGgsIGJvdHRvbVdpZHRoLCBkZXZpY2VTY2FsZUZhY3RvciksCi0gICAg
ICAgICAgICAgICAgc25hcFJlY3RUb0RldmljZVBpeGVscygwLCBpbWFnZUhlaWdodCAtIGJvdHRv
bVNsaWNlLCBsZWZ0U2xpY2UsIGJvdHRvbVNsaWNlLCBkZXZpY2VTY2FsZUZhY3RvciksIG9wKTsK
LQotICAgICAgICAvLyBQYWludCB0aGUgbGVmdCBlZGdlLgotICAgICAgICAvLyBIYXZlIHRvIHNj
YWxlIGFuZCB0aWxlIGludG8gdGhlIGJvcmRlciByZWN0LgotICAgICAgICBpZiAoc291cmNlSGVp
Z2h0ID4gMCkKLSAgICAgICAgICAgIGdyYXBoaWNzQ29udGV4dC0+ZHJhd1RpbGVkSW1hZ2UoaW1h
Z2UuZ2V0KCksIGNvbG9yU3BhY2UsIHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMoeCwgeSArIHRvcFdp
ZHRoLCBsZWZ0V2lkdGgsIGRlc3RpbmF0aW9uSGVpZ2h0LCBkZXZpY2VTY2FsZUZhY3RvciksCi0g
ICAgICAgICAgICAgICAgc25hcFJlY3RUb0RldmljZVBpeGVscygwLCB0b3BTbGljZSwgbGVmdFNs
aWNlLCBzb3VyY2VIZWlnaHQsIGRldmljZVNjYWxlRmFjdG9yKSwgRmxvYXRTaXplKGxlZnRTaWRl
U2NhbGUsIGxlZnRTaWRlU2NhbGUpLCBJbWFnZTo6U3RyZXRjaFRpbGUsIChJbWFnZTo6VGlsZVJ1
bGUpdlJ1bGUsIG9wKTsKLSAgICB9Ci0KLSAgICBpZiAoZHJhd1JpZ2h0KSB7Ci0gICAgICAgIC8v
IFBhaW50IHRoZSB0b3AgYW5kIGJvdHRvbSByaWdodCBjb3JuZXJzCi0gICAgICAgIC8vIFRoZSB0
b3AgcmlnaHQgY29ybmVyIHJlY3QgaXMgKHR4ICsgdyAtIHJpZ2h0V2lkdGgsIHR5LCByaWdodFdp
ZHRoLCB0b3BXaWR0aCkKLSAgICAgICAgLy8gVGhlIHJlY3QgdG8gdXNlIGZyb20gd2l0aGluIHRo
ZSBpbWFnZSBpcyBvYnRhaW5lZCBmcm9tIG91ciBzbGljZSwgYW5kIGlzIChpbWFnZVdpZHRoIC0g
cmlnaHRTbGljZSwgMCwgcmlnaHRTbGljZSwgdG9wU2xpY2UpCi0gICAgICAgIGlmIChkcmF3VG9w
KQotICAgICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5kcmF3SW1hZ2UoaW1hZ2UuZ2V0KCksIGNv
bG9yU3BhY2UsIHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMoYm9yZGVySW1hZ2VSZWN0Lm1heFgoKSAt
IHJpZ2h0V2lkdGgsIHksIHJpZ2h0V2lkdGgsIHRvcFdpZHRoLCBkZXZpY2VTY2FsZUZhY3Rvciks
Ci0gICAgICAgICAgICAgICAgc25hcFJlY3RUb0RldmljZVBpeGVscyhpbWFnZVdpZHRoIC0gcmln
aHRTbGljZSwgMCwgcmlnaHRTbGljZSwgdG9wU2xpY2UsIGRldmljZVNjYWxlRmFjdG9yKSwgb3Ap
OwotCi0gICAgICAgIC8vIFRoZSBib3R0b20gcmlnaHQgY29ybmVyIHJlY3QgaXMgKHR4ICsgdyAt
IHJpZ2h0V2lkdGgsIHR5ICsgaCAtIGJvdHRvbVdpZHRoLCByaWdodFdpZHRoLCBib3R0b21XaWR0
aCkKLSAgICAgICAgLy8gVGhlIHJlY3QgdG8gdXNlIGZyb20gd2l0aGluIHRoZSBpbWFnZSBpcyAo
aW1hZ2VXaWR0aCAtIHJpZ2h0U2xpY2UsIGltYWdlSGVpZ2h0IC0gYm90dG9tU2xpY2UsIHJpZ2h0
U2xpY2UsIGJvdHRvbVNsaWNlKQotICAgICAgICBpZiAoZHJhd0JvdHRvbSkKLSAgICAgICAgICAg
IGdyYXBoaWNzQ29udGV4dC0+ZHJhd0ltYWdlKGltYWdlLmdldCgpLCBjb2xvclNwYWNlLCBzbmFw
UmVjdFRvRGV2aWNlUGl4ZWxzKGJvcmRlckltYWdlUmVjdC5tYXhYKCkgLSByaWdodFdpZHRoLCBi
b3JkZXJJbWFnZVJlY3QubWF4WSgpIC0gYm90dG9tV2lkdGgsCi0gICAgICAgICAgICAgICAgcmln
aHRXaWR0aCwgYm90dG9tV2lkdGgsIGRldmljZVNjYWxlRmFjdG9yKSwgc25hcFJlY3RUb0Rldmlj
ZVBpeGVscyhpbWFnZVdpZHRoIC0gcmlnaHRTbGljZSwgaW1hZ2VIZWlnaHQgLSBib3R0b21TbGlj
ZSwgcmlnaHRTbGljZSwgYm90dG9tU2xpY2UsIGRldmljZVNjYWxlRmFjdG9yKSwKLSAgICAgICAg
ICAgICAgICBvcCk7Ci0KLSAgICAgICAgLy8gUGFpbnQgdGhlIHJpZ2h0IGVkZ2UuCi0gICAgICAg
IGlmIChzb3VyY2VIZWlnaHQgPiAwKQotICAgICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5kcmF3
VGlsZWRJbWFnZShpbWFnZS5nZXQoKSwgY29sb3JTcGFjZSwgc25hcFJlY3RUb0RldmljZVBpeGVs
cyhib3JkZXJJbWFnZVJlY3QubWF4WCgpIC0gcmlnaHRXaWR0aCwgeSArIHRvcFdpZHRoLCByaWdo
dFdpZHRoLCBkZXN0aW5hdGlvbkhlaWdodCwgZGV2aWNlU2NhbGVGYWN0b3IpLAotICAgICAgICAg
ICAgICAgIHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMoaW1hZ2VXaWR0aCAtIHJpZ2h0U2xpY2UsIHRv
cFNsaWNlLCByaWdodFNsaWNlLCBzb3VyY2VIZWlnaHQsIGRldmljZVNjYWxlRmFjdG9yKSwgRmxv
YXRTaXplKHJpZ2h0U2lkZVNjYWxlLCByaWdodFNpZGVTY2FsZSksCi0gICAgICAgICAgICAgICAg
SW1hZ2U6OlN0cmV0Y2hUaWxlLCAoSW1hZ2U6OlRpbGVSdWxlKXZSdWxlLCBvcCk7Ci0gICAgfQot
Ci0gICAgLy8gUGFpbnQgdGhlIHRvcCBlZGdlLgotICAgIGlmIChkcmF3VG9wICYmIHNvdXJjZVdp
ZHRoID4gMCkKLSAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5kcmF3VGlsZWRJbWFnZShpbWFnZS5n
ZXQoKSwgY29sb3JTcGFjZSwgc25hcFJlY3RUb0RldmljZVBpeGVscyh4ICsgbGVmdFdpZHRoLCB5
LCBkZXN0aW5hdGlvbldpZHRoLCB0b3BXaWR0aCwgZGV2aWNlU2NhbGVGYWN0b3IpLAotICAgICAg
ICAgICAgc25hcFJlY3RUb0RldmljZVBpeGVscyhsZWZ0U2xpY2UsIDAsIHNvdXJjZVdpZHRoLCB0
b3BTbGljZSwgZGV2aWNlU2NhbGVGYWN0b3IpLCBGbG9hdFNpemUodG9wU2lkZVNjYWxlLCB0b3BT
aWRlU2NhbGUpLCAoSW1hZ2U6OlRpbGVSdWxlKWhSdWxlLCBJbWFnZTo6U3RyZXRjaFRpbGUsIG9w
KTsKLQotICAgIC8vIFBhaW50IHRoZSBib3R0b20gZWRnZS4KLSAgICBpZiAoZHJhd0JvdHRvbSAm
JiBzb3VyY2VXaWR0aCA+IDApCi0gICAgICAgIGdyYXBoaWNzQ29udGV4dC0+ZHJhd1RpbGVkSW1h
Z2UoaW1hZ2UuZ2V0KCksIGNvbG9yU3BhY2UsIHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMoeCArIGxl
ZnRXaWR0aCwgYm9yZGVySW1hZ2VSZWN0Lm1heFkoKSAtIGJvdHRvbVdpZHRoLCBkZXN0aW5hdGlv
bldpZHRoLCBib3R0b21XaWR0aCwgZGV2aWNlU2NhbGVGYWN0b3IpLAotICAgICAgICAgICAgc25h
cFJlY3RUb0RldmljZVBpeGVscyhsZWZ0U2xpY2UsIGltYWdlSGVpZ2h0IC0gYm90dG9tU2xpY2Us
IHNvdXJjZVdpZHRoLCBib3R0b21TbGljZSwgZGV2aWNlU2NhbGVGYWN0b3IpLCBGbG9hdFNpemUo
Ym90dG9tU2lkZVNjYWxlLCBib3R0b21TaWRlU2NhbGUpLAotICAgICAgICAgICAgKEltYWdlOjpU
aWxlUnVsZSloUnVsZSwgSW1hZ2U6OlN0cmV0Y2hUaWxlLCBvcCk7Ci0KLSAgICAvLyBQYWludCB0
aGUgbWlkZGxlLgotICAgIGlmIChkcmF3TWlkZGxlKSB7Ci0gICAgICAgIEZsb2F0U2l6ZSBtaWRk
bGVTY2FsZUZhY3RvcigxLCAxKTsKLSAgICAgICAgaWYgKGRyYXdUb3ApCi0gICAgICAgICAgICBt
aWRkbGVTY2FsZUZhY3Rvci5zZXRXaWR0aCh0b3BTaWRlU2NhbGUpOwotICAgICAgICBlbHNlIGlm
IChkcmF3Qm90dG9tKQotICAgICAgICAgICAgbWlkZGxlU2NhbGVGYWN0b3Iuc2V0V2lkdGgoYm90
dG9tU2lkZVNjYWxlKTsKLSAgICAgICAgaWYgKGRyYXdMZWZ0KQotICAgICAgICAgICAgbWlkZGxl
U2NhbGVGYWN0b3Iuc2V0SGVpZ2h0KGxlZnRTaWRlU2NhbGUpOwotICAgICAgICBlbHNlIGlmIChk
cmF3UmlnaHQpCi0gICAgICAgICAgICBtaWRkbGVTY2FsZUZhY3Rvci5zZXRIZWlnaHQocmlnaHRT
aWRlU2NhbGUpOwotICAgICAgICAgICAgCi0gICAgICAgIC8vIEZvciAic3RyZXRjaCIgcnVsZXMs
IGp1c3Qgb3ZlcnJpZGUgdGhlIHNjYWxlIGZhY3RvciBhbmQgcmVwbGFjZS4gV2Ugb25seSBoYWQg
dG8gZG8gdGhpcyBmb3IgdGhlCi0gICAgICAgIC8vIGNlbnRlciB0aWxlLCBzaW5jZSBzaWRlcyBk
b24ndCBldmVuIHVzZSB0aGUgc2NhbGUgZmFjdG9yIHVubGVzcyB0aGV5IGhhdmUgYSBydWxlIG90
aGVyIHRoYW4gInN0cmV0Y2giLgotICAgICAgICAvLyBUaGUgbWlkZGxlIGhvd2V2ZXIgY2FuIGhh
dmUgInN0cmV0Y2giIHNwZWNpZmllZCBpbiBvbmUgYXhpcyBidXQgbm90IHRoZSBvdGhlciwgc28g
d2UgaGF2ZSB0bwotICAgICAgICAvLyBjb3JyZWN0IHRoZSBzY2FsZSBoZXJlLgotICAgICAgICBp
ZiAoaFJ1bGUgPT0gU3RyZXRjaEltYWdlUnVsZSkKLSAgICAgICAgICAgIG1pZGRsZVNjYWxlRmFj
dG9yLnNldFdpZHRoKGRlc3RpbmF0aW9uV2lkdGggLyBzb3VyY2VXaWR0aCk7Ci0gICAgICAgICAg
ICAKLSAgICAgICAgaWYgKHZSdWxlID09IFN0cmV0Y2hJbWFnZVJ1bGUpCi0gICAgICAgICAgICBt
aWRkbGVTY2FsZUZhY3Rvci5zZXRIZWlnaHQoZGVzdGluYXRpb25IZWlnaHQgLyBzb3VyY2VIZWln
aHQpOwotICAgICAgICAKLSAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5kcmF3VGlsZWRJbWFnZShp
bWFnZS5nZXQoKSwgY29sb3JTcGFjZSwKLSAgICAgICAgICAgIHNuYXBSZWN0VG9EZXZpY2VQaXhl
bHMoeCArIGxlZnRXaWR0aCwgeSArIHRvcFdpZHRoLCBkZXN0aW5hdGlvbldpZHRoLCBkZXN0aW5h
dGlvbkhlaWdodCwgZGV2aWNlU2NhbGVGYWN0b3IpLAotICAgICAgICAgICAgc25hcFJlY3RUb0Rl
dmljZVBpeGVscyhsZWZ0U2xpY2UsIHRvcFNsaWNlLCBzb3VyY2VXaWR0aCwgc291cmNlSGVpZ2h0
LCBkZXZpY2VTY2FsZUZhY3RvciksCi0gICAgICAgICAgICBtaWRkbGVTY2FsZUZhY3RvciwgKElt
YWdlOjpUaWxlUnVsZSloUnVsZSwgKEltYWdlOjpUaWxlUnVsZSl2UnVsZSwgb3ApOwotICAgIH0K
KyAgICBzdHlsZUltYWdlLT5zZXRDb250YWluZXJTaXplRm9yUmVuZGVyZXIodGhpcywgc291cmNl
LCBzdHlsZS5lZmZlY3RpdmVab29tKCkpOwogCisgICAgbmluZVBpZWNlSW1hZ2UucGFpbnQoZ3Jh
cGhpY3NDb250ZXh0LCB0aGlzLCBzdHlsZSwgZGVzdGluYXRpb24sIHNvdXJjZSwgaW50cmluc2lj
U291cmNlLCBkZXZpY2VTY2FsZUZhY3Rvciwgb3ApOwogICAgIHJldHVybiB0cnVlOwogfQogCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3Qu
aAkocmV2aXNpb24gMTg0NjU1KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJv
eE1vZGVsT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTI4OSw3ICsyODksNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBtb3ZlQ2hpbGRyZW5UbyhSZW5kZXJCb3hNb2RlbE9iamVjdCogdG9Cb3hNb2Rl
bE9iamVjdCwgUmVuZGVyT2JqZWN0KiBzdGFydENoaWxkLCBSZW5kZXJPYmplY3QqIGVuZENoaWxk
LCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkLCBib29sIGZ1bGxSZW1vdmVJbnNlcnQgPSBmYWxz
ZSk7CiAKICAgICBlbnVtIFNjYWxlQnlFZmZlY3RpdmVab29tT3JOb3QgeyBTY2FsZUJ5RWZmZWN0
aXZlWm9vbSwgRG9Ob3RTY2FsZUJ5RWZmZWN0aXZlWm9vbSB9OwotICAgIExheW91dFNpemUgY2Fs
Y3VsYXRlSW1hZ2VJbnRyaW5zaWNEaW1lbnNpb25zKFN0eWxlSW1hZ2UqLCBjb25zdCBMYXlvdXRT
aXplJiBzY2FsZWRQb3NpdGlvbmluZ0FyZWFTaXplLCBTY2FsZUJ5RWZmZWN0aXZlWm9vbU9yTm90
KSBjb25zdDsKKyAgICBib29sIGNhbGN1bGF0ZUltYWdlSW50cmluc2ljRGltZW5zaW9ucyhTdHls
ZUltYWdlKiwgY29uc3QgTGF5b3V0U2l6ZSYgc2NhbGVkUG9zaXRpb25pbmdBcmVhU2l6ZSwgU2Nh
bGVCeUVmZmVjdGl2ZVpvb21Pck5vdCwgTGF5b3V0U2l6ZSYgaW1hZ2VTaXplKSBjb25zdDsKIAog
cHJpdmF0ZToKICAgICBMYXlvdXRVbml0IGNvbXB1dGVkQ1NTUGFkZGluZyhjb25zdCBMZW5ndGgm
KSBjb25zdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2Vy
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1h
cmtlci5jcHAJKHJldmlzaW9uIDE4NDY1NSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMaXN0TWFya2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQyNiw3ICsxNDI2LDggQEAg
dm9pZCBSZW5kZXJMaXN0TWFya2VyOjp1cGRhdGVDb250ZW50KCkKICAgICAgICAgLy8gdW50aWwg
d2Ugc3VwcG9ydCB0aGUgQ1NTMyBtYXJrZXIgcHNldWRvY2xhc3MgdG8gYWxsb3cgY29udHJvbCBv
dmVyIHRoZSB3aWR0aCBhbmQgaGVpZ2h0IG9mIHRoZSBtYXJrZXIgYm94LgogICAgICAgICBMYXlv
dXRVbml0IGJ1bGxldFdpZHRoID0gc3R5bGUoKS5mb250TWV0cmljcygpLmFzY2VudCgpIC8gTGF5
b3V0VW5pdCgyKTsKICAgICAgICAgTGF5b3V0U2l6ZSBkZWZhdWx0QnVsbGV0U2l6ZShidWxsZXRX
aWR0aCwgYnVsbGV0V2lkdGgpOwotICAgICAgICBMYXlvdXRTaXplIGltYWdlU2l6ZSA9IGNhbGN1
bGF0ZUltYWdlSW50cmluc2ljRGltZW5zaW9ucyhtX2ltYWdlLmdldCgpLCBkZWZhdWx0QnVsbGV0
U2l6ZSwgRG9Ob3RTY2FsZUJ5RWZmZWN0aXZlWm9vbSk7CisgICAgICAgIExheW91dFNpemUgaW1h
Z2VTaXplOworICAgICAgICBjYWxjdWxhdGVJbWFnZUludHJpbnNpY0RpbWVuc2lvbnMobV9pbWFn
ZS5nZXQoKSwgZGVmYXVsdEJ1bGxldFNpemUsIERvTm90U2NhbGVCeUVmZmVjdGl2ZVpvb20sIGlt
YWdlU2l6ZSk7CiAgICAgICAgIG1faW1hZ2UtPnNldENvbnRhaW5lclNpemVGb3JSZW5kZXJlcih0
aGlzLCBpbWFnZVNpemUsIHN0eWxlKCkuZWZmZWN0aXZlWm9vbSgpKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGVPdXRz
aWRlSW5mby5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBl
cy9TaGFwZU91dHNpZGVJbmZvLmNwcAkocmV2aXNpb24gMTg0NjU1KQorKysgU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZU91dHNpZGVJbmZvLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTQ4LDcgKzE0OCw4IEBAIHN0YXRpYyBMYXlvdXRSZWN0IGdldFNoYXBlSW1hZ2VNYXJnaW5S
ZWMKIAogc3RkOjp1bmlxdWVfcHRyPFNoYXBlPiBTaGFwZU91dHNpZGVJbmZvOjpjcmVhdGVTaGFw
ZUZvckltYWdlKFN0eWxlSW1hZ2UqIHN0eWxlSW1hZ2UsIGZsb2F0IHNoYXBlSW1hZ2VUaHJlc2hv
bGQsIFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlLCBmbG9hdCBtYXJnaW4pIGNvbnN0CiB7Ci0gICAg
Y29uc3QgTGF5b3V0U2l6ZSYgaW1hZ2VTaXplID0gbV9yZW5kZXJlci5jYWxjdWxhdGVJbWFnZUlu
dHJpbnNpY0RpbWVuc2lvbnMoc3R5bGVJbWFnZSwgbV9yZWZlcmVuY2VCb3hMb2dpY2FsU2l6ZSwg
UmVuZGVySW1hZ2U6OlNjYWxlQnlFZmZlY3RpdmVab29tKTsKKyAgICBMYXlvdXRTaXplIGltYWdl
U2l6ZTsKKyAgICBtX3JlbmRlcmVyLmNhbGN1bGF0ZUltYWdlSW50cmluc2ljRGltZW5zaW9ucyhz
dHlsZUltYWdlLCBtX3JlZmVyZW5jZUJveExvZ2ljYWxTaXplLCBSZW5kZXJJbWFnZTo6U2NhbGVC
eUVmZmVjdGl2ZVpvb20sIGltYWdlU2l6ZSk7CiAgICAgc3R5bGVJbWFnZS0+c2V0Q29udGFpbmVy
U2l6ZUZvclJlbmRlcmVyKCZtX3JlbmRlcmVyLCBpbWFnZVNpemUsIG1fcmVuZGVyZXIuc3R5bGUo
KS5lZmZlY3RpdmVab29tKCkpOwogCiAgICAgY29uc3QgTGF5b3V0UmVjdCYgbWFyZ2luUmVjdCA9
IGdldFNoYXBlSW1hZ2VNYXJnaW5SZWN0KG1fcmVuZGVyZXIsIG1fcmVmZXJlbmNlQm94TG9naWNh
bFNpemUpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0JvcmRlckRhdGEu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQm9yZGVyRGF0
YS5oCShyZXZpc2lvbiAxODQ2NTUpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
Qm9yZGVyRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC05Miw2ICs5MiwxMSBAQCBwdWJsaWM6CiAg
ICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgcmV0dXJuIG1fYm90dG9tLndpZHRoKCk7CiAg
ICAgfQorCisgICAgRmxvYXRCb3hFeHRlbnQgYm9yZGVyV2lkdGgoKSBjb25zdAorICAgIHsKKyAg
ICAgICAgcmV0dXJuIEZsb2F0Qm94RXh0ZW50KGJvcmRlclRvcFdpZHRoKCksIGJvcmRlclJpZ2h0
V2lkdGgoKSwgYm9yZGVyQm90dG9tV2lkdGgoKSwgYm9yZGVyTGVmdFdpZHRoKCkpOworICAgIH0K
ICAgICAKICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgQm9yZGVyRGF0YSYgbykgY29uc3QKICAg
ICB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvTmluZVBpZWNlSW1hZ2Uu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9OaW5lUGll
Y2VJbWFnZS5jcHAJKHJldmlzaW9uIDE4NDY1NSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9OaW5lUGllY2VJbWFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIsNyArMiw3IEBA
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDAgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKICAqICAg
ICAgICAgICAoQykgMjAwMCBBbnR0aSBLb2l2aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKICAqICAg
ICAgICAgICAoQykgMjAwMCBEaXJrIE11ZWxsZXIgKG11ZWxsZXJAa2RlLm9yZykKLSAqIENvcHly
aWdodCAoQykgMjAwMywgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAxMyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDUsIDIwMDYsIDIw
MDcsIDIwMDgsIDIwMTMsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCkBAIC0yMyw2ICsyMywxMCBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiTmluZVBpZWNlSW1hZ2UuaCIKKworI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4
dC5oIgorI2luY2x1ZGUgIkxlbmd0aEZ1bmN0aW9ucy5oIgorI2luY2x1ZGUgIlJlbmRlclN0eWxl
LmgiCiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKQEAgLTUwLDExICs1NCwyMDUgQEAgTmluZVBpZWNlSW1hZ2U6Ok5pbmVQaWVjZUltYWdlKFBh
c3NSZWZQdAogICAgIG1fZGF0YS5hY2Nlc3MoKS0+dmVydGljYWxSdWxlID0gdmVydGljYWxSdWxl
OwogfQogCitMYXlvdXRVbml0IE5pbmVQaWVjZUltYWdlOjpjb21wdXRlU2xpY2UoTGVuZ3RoIGxl
bmd0aCwgTGF5b3V0VW5pdCB3aWR0aCwgTGF5b3V0VW5pdCBzbGljZSwgTGF5b3V0VW5pdCBleHRl
bnQpCit7CisgICAgaWYgKGxlbmd0aC5pc1JlbGF0aXZlKCkpCisgICAgICAgIHJldHVybiBsZW5n
dGgudmFsdWUoKSAqIHdpZHRoOworICAgIGlmIChsZW5ndGguaXNBdXRvKCkpCisgICAgICAgIHJl
dHVybiBzbGljZTsKKyAgICByZXR1cm4gdmFsdWVGb3JMZW5ndGgobGVuZ3RoLCBleHRlbnQpOwor
fQorCitMYXlvdXRCb3hFeHRlbnQgTmluZVBpZWNlSW1hZ2U6OmNvbXB1dGVTbGljZXMoY29uc3Qg
TGF5b3V0U2l6ZSYgc2l6ZSwgY29uc3QgTGVuZ3RoQm94JiBsZW5ndGhzLCBpbnQgc2NhbGVGYWN0
b3IpCit7CisgICAgTGF5b3V0VW5pdCB0b3AgICAgPSBzdGQ6Om1pbjxMYXlvdXRVbml0PihzaXpl
LmhlaWdodCgpLCB2YWx1ZUZvckxlbmd0aChsZW5ndGhzLnRvcCgpLCAgICBzaXplLmhlaWdodCgp
KSkgKiBzY2FsZUZhY3RvcjsKKyAgICBMYXlvdXRVbml0IHJpZ2h0ICA9IHN0ZDo6bWluPExheW91
dFVuaXQ+KHNpemUud2lkdGgoKSwgIHZhbHVlRm9yTGVuZ3RoKGxlbmd0aHMucmlnaHQoKSwgIHNp
emUud2lkdGgoKSkpICAqIHNjYWxlRmFjdG9yOworICAgIExheW91dFVuaXQgYm90dG9tID0gc3Rk
OjptaW48TGF5b3V0VW5pdD4oc2l6ZS5oZWlnaHQoKSwgdmFsdWVGb3JMZW5ndGgobGVuZ3Rocy5i
b3R0b20oKSwgc2l6ZS5oZWlnaHQoKSkpICogc2NhbGVGYWN0b3I7CisgICAgTGF5b3V0VW5pdCBs
ZWZ0ICAgPSBzdGQ6Om1pbjxMYXlvdXRVbml0PihzaXplLndpZHRoKCksICB2YWx1ZUZvckxlbmd0
aChsZW5ndGhzLmxlZnQoKSwgICBzaXplLndpZHRoKCkpKSAgKiBzY2FsZUZhY3RvcjsKKyAgICBy
ZXR1cm4gTGF5b3V0Qm94RXh0ZW50KHRvcCwgcmlnaHQsIGJvdHRvbSwgbGVmdCk7Cit9CisKK0xh
eW91dEJveEV4dGVudCBOaW5lUGllY2VJbWFnZTo6Y29tcHV0ZVNsaWNlcyhjb25zdCBMYXlvdXRT
aXplJiBzaXplLCBjb25zdCBMZW5ndGhCb3gmIGxlbmd0aHMsIGNvbnN0IEZsb2F0Qm94RXh0ZW50
JiB3aWR0aHMsIGNvbnN0IExheW91dEJveEV4dGVudCYgc2xpY2VzKQoreworICAgIExheW91dFVu
aXQgdG9wICAgID0gY29tcHV0ZVNsaWNlKGxlbmd0aHMudG9wKCksICAgIHdpZHRocy50b3AoKSwg
ICAgc2xpY2VzLnRvcCgpLCAgICBzaXplLmhlaWdodCgpKTsKKyAgICBMYXlvdXRVbml0IHJpZ2h0
ICA9IGNvbXB1dGVTbGljZShsZW5ndGhzLnJpZ2h0KCksICB3aWR0aHMucmlnaHQoKSwgIHNsaWNl
cy5yaWdodCgpLCAgc2l6ZS53aWR0aCgpKTsKKyAgICBMYXlvdXRVbml0IGJvdHRvbSA9IGNvbXB1
dGVTbGljZShsZW5ndGhzLmJvdHRvbSgpLCB3aWR0aHMuYm90dG9tKCksIHNsaWNlcy5ib3R0b20o
KSwgc2l6ZS5oZWlnaHQoKSk7CisgICAgTGF5b3V0VW5pdCBsZWZ0ICAgPSBjb21wdXRlU2xpY2Uo
bGVuZ3Rocy5sZWZ0KCksICAgd2lkdGhzLmxlZnQoKSwgICBzbGljZXMubGVmdCgpLCAgIHNpemUu
d2lkdGgoKSk7CisgICAgcmV0dXJuIExheW91dEJveEV4dGVudCh0b3AsIHJpZ2h0LCBib3R0b20s
IGxlZnQpOworfQorCit2b2lkIE5pbmVQaWVjZUltYWdlOjpzY2FsZVNsaWNlc0lmTmVlZGVkKGNv
bnN0IExheW91dFNpemUmIHNpemUsIExheW91dEJveEV4dGVudCYgc2xpY2VzLCBpbnQgc2NhbGVG
YWN0b3IpCit7CisgICAgTGF5b3V0VW5pdCB3aWR0aCAgPSBzdGQ6Om1heDxMYXlvdXRVbml0Pigx
IC8gc2NhbGVGYWN0b3IsIHNsaWNlcy5sZWZ0KCkgKyBzbGljZXMucmlnaHQoKSk7CisgICAgTGF5
b3V0VW5pdCBoZWlnaHQgPSBzdGQ6Om1heDxMYXlvdXRVbml0PigxIC8gc2NhbGVGYWN0b3IsIHNs
aWNlcy50b3AoKSArIHNsaWNlcy5ib3R0b20oKSk7CisKKyAgICBmbG9hdCBzbGljZVNjYWxlRmFj
dG9yID0gc3RkOjptaW4oKGZsb2F0KXNpemUud2lkdGgoKSAvIHdpZHRoLCAoZmxvYXQpc2l6ZS5o
ZWlnaHQoKSAvIGhlaWdodCk7CisKKyAgICBpZiAoc2xpY2VTY2FsZUZhY3RvciA+PSAxKQorICAg
ICAgICByZXR1cm47CisKKyAgICAvLyBBbGwgc2xpY2VzIGFyZSByZWR1Y2VkIGJ5IG11bHRpcGx5
aW5nIHRoZW0gYnkgc2xpY2VTY2FsZUZhY3Rvci4KKyAgICBzbGljZXMudG9wKCkgICAgKj0gc2xp
Y2VTY2FsZUZhY3RvcjsKKyAgICBzbGljZXMucmlnaHQoKSAgKj0gc2xpY2VTY2FsZUZhY3RvcjsK
KyAgICBzbGljZXMuYm90dG9tKCkgKj0gc2xpY2VTY2FsZUZhY3RvcjsKKyAgICBzbGljZXMubGVm
dCgpICAgKj0gc2xpY2VTY2FsZUZhY3RvcjsKK30KKworYm9vbCBOaW5lUGllY2VJbWFnZTo6aXNF
bXB0eVBpZWNlUmVjdChJbWFnZVBpZWNlIHBpZWNlLCBjb25zdCBMYXlvdXRCb3hFeHRlbnQmIHNs
aWNlcykKK3sKKyAgICBpZiAocGllY2UgPT0gTWlkZGxlUGllY2UpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgIFBoeXNpY2FsQm94U2lkZSBob3Jpem9udGFsU2lkZSA9IGltYWdlUGllY2VI
b3Jpem9udGFsU2lkZShwaWVjZSk7CisgICAgUGh5c2ljYWxCb3hTaWRlIHZlcnRpY2FsU2lkZSA9
IGltYWdlUGllY2VWZXJ0aWNhbFNpZGUocGllY2UpOworICAgIHJldHVybiAhKChob3Jpem9udGFs
U2lkZSA9PSBOaWxTaWRlIHx8IHNsaWNlcy5hdChob3Jpem9udGFsU2lkZSkpICYmICh2ZXJ0aWNh
bFNpZGUgPT0gTmlsU2lkZSB8fCBzbGljZXMuYXQodmVydGljYWxTaWRlKSkpOworfQorCitib29s
IE5pbmVQaWVjZUltYWdlOjppc0VtcHR5UGllY2VSZWN0KEltYWdlUGllY2UgcGllY2UsIGNvbnN0
IFZlY3RvcjxGbG9hdFJlY3Q+JiBkZXN0aW5hdGlvblJlY3RzLCBjb25zdCBWZWN0b3I8RmxvYXRS
ZWN0PiYgc291cmNlUmVjdHMpCit7CisgICAgcmV0dXJuIGRlc3RpbmF0aW9uUmVjdHNbcGllY2Vd
LmlzRW1wdHkoKSB8fCBzb3VyY2VSZWN0c1twaWVjZV0uaXNFbXB0eSgpOworfQorCitWZWN0b3I8
RmxvYXRSZWN0PiBOaW5lUGllY2VJbWFnZTo6Y29tcHV0ZUludHJpbnNpY1JlY3RzKGNvbnN0IEZs
b2F0UmVjdCYgb3V0ZXIsIGNvbnN0IExheW91dEJveEV4dGVudCYgc2xpY2VzLCBmbG9hdCBkZXZp
Y2VTY2FsZUZhY3RvcikKK3sKKyAgICBGbG9hdFJlY3QgaW5uZXIgPSBvdXRlcjsKKyAgICBpbm5l
ci5tb3ZlKHNsaWNlcy5sZWZ0KCksIHNsaWNlcy50b3AoKSk7CisgICAgaW5uZXIuY29udHJhY3Qo
c2xpY2VzLmxlZnQoKSArIHNsaWNlcy5yaWdodCgpLCBzbGljZXMudG9wKCkgKyBzbGljZXMuYm90
dG9tKCkpOworICAgIEFTU0VSVChvdXRlci5jb250YWlucyhpbm5lcikpOworCisgICAgVmVjdG9y
PEZsb2F0UmVjdD4gcmVjdHMoTWF4UGllY2UpOworCisgICAgcmVjdHNbVG9wTGVmdFBpZWNlXSAg
ICAgPSBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKG91dGVyLngoKSwgICAgb3V0ZXIueSgpLCAgICBz
bGljZXMubGVmdCgpLCAgc2xpY2VzLnRvcCgpLCAgICBkZXZpY2VTY2FsZUZhY3Rvcik7CisgICAg
cmVjdHNbQm90dG9tTGVmdFBpZWNlXSAgPSBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKG91dGVyLngo
KSwgICAgaW5uZXIubWF4WSgpLCBzbGljZXMubGVmdCgpLCAgc2xpY2VzLmJvdHRvbSgpLCBkZXZp
Y2VTY2FsZUZhY3Rvcik7CisgICAgcmVjdHNbTGVmdFBpZWNlXSAgICAgICAgPSBzbmFwUmVjdFRv
RGV2aWNlUGl4ZWxzKG91dGVyLngoKSwgICAgaW5uZXIueSgpLCAgICBzbGljZXMubGVmdCgpLCAg
aW5uZXIuaGVpZ2h0KCksICBkZXZpY2VTY2FsZUZhY3Rvcik7CisKKyAgICByZWN0c1tUb3BSaWdo
dFBpZWNlXSAgICA9IHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMoaW5uZXIubWF4WCgpLCBvdXRlci55
KCksICAgIHNsaWNlcy5yaWdodCgpLCBzbGljZXMudG9wKCksICAgIGRldmljZVNjYWxlRmFjdG9y
KTsKKyAgICByZWN0c1tCb3R0b21SaWdodFBpZWNlXSA9IHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMo
aW5uZXIubWF4WCgpLCBpbm5lci5tYXhZKCksIHNsaWNlcy5yaWdodCgpLCBzbGljZXMuYm90dG9t
KCksIGRldmljZVNjYWxlRmFjdG9yKTsKKyAgICByZWN0c1tSaWdodFBpZWNlXSAgICAgICA9IHNu
YXBSZWN0VG9EZXZpY2VQaXhlbHMoaW5uZXIubWF4WCgpLCBpbm5lci55KCksICAgIHNsaWNlcy5y
aWdodCgpLCBpbm5lci5oZWlnaHQoKSwgIGRldmljZVNjYWxlRmFjdG9yKTsKKworICAgIHJlY3Rz
W1RvcFBpZWNlXSAgICAgICAgID0gc25hcFJlY3RUb0RldmljZVBpeGVscyhpbm5lci54KCksICAg
IG91dGVyLnkoKSwgICAgaW5uZXIud2lkdGgoKSwgIHNsaWNlcy50b3AoKSwgICAgZGV2aWNlU2Nh
bGVGYWN0b3IpOworICAgIHJlY3RzW0JvdHRvbVBpZWNlXSAgICAgID0gc25hcFJlY3RUb0Rldmlj
ZVBpeGVscyhpbm5lci54KCksICAgIGlubmVyLm1heFkoKSwgaW5uZXIud2lkdGgoKSwgIHNsaWNl
cy5ib3R0b20oKSwgZGV2aWNlU2NhbGVGYWN0b3IpOworCisgICAgcmVjdHNbTWlkZGxlUGllY2Vd
ICAgICAgPSBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKGlubmVyLngoKSwgICAgaW5uZXIueSgpLCAg
ICBpbm5lci53aWR0aCgpLCAgaW5uZXIuaGVpZ2h0KCksICBkZXZpY2VTY2FsZUZhY3Rvcik7Cisg
ICAgcmV0dXJuIHJlY3RzOworfQorCitWZWN0b3I8RmxvYXRSZWN0PiBOaW5lUGllY2VJbWFnZTo6
Y29tcHV0ZU5vbkludHJpbnNpY1JlY3RzKGNvbnN0IFZlY3RvcjxGbG9hdFJlY3Q+JiBpbnRyaW5z
aWNSZWN0cywgY29uc3QgTGF5b3V0Qm94RXh0ZW50JiBzbGljZXMpCit7CisgICAgVmVjdG9yPEZs
b2F0UmVjdD4gcmVjdHMoTWF4UGllY2UpOworCisgICAgZm9yIChJbWFnZVBpZWNlIHBpZWNlID0g
TWluUGllY2U7IHBpZWNlIDwgTWF4UGllY2U7ICsrcGllY2UpIHsKKyAgICAgICAgaWYgKGlzRW1w
dHlQaWVjZVJlY3QocGllY2UsIHNsaWNlcykpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAg
ICAgcmVjdHNbcGllY2VdID0gRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgaW50cmluc2ljUmVjdHNb
cGllY2VdLnNpemUoKSk7CisgICAgfQorCisgICAgcmV0dXJuIHJlY3RzOworfQorCitGbG9hdFNp
emUgTmluZVBpZWNlSW1hZ2U6OmNvbXB1dGVJbnRyaW5zaWNTaWRlVGlsZVNjYWxlKEltYWdlUGll
Y2UgcGllY2UsIGNvbnN0IFZlY3RvcjxGbG9hdFJlY3Q+JiBkZXN0aW5hdGlvblJlY3RzLCBjb25z
dCBWZWN0b3I8RmxvYXRSZWN0PiYgc291cmNlUmVjdHMpCit7CisgICAgQVNTRVJUKCFpc0Nvcm5l
clBpZWNlKHBpZWNlKSAmJiAhaXNNaWRkbGVQaWVjZShwaWVjZSkpOworICAgIGlmIChpc0VtcHR5
UGllY2VSZWN0KHBpZWNlLCBkZXN0aW5hdGlvblJlY3RzLCBzb3VyY2VSZWN0cykpCisgICAgICAg
IHJldHVybiBGbG9hdFNpemUoMSwgMSk7CisKKyAgICBmbG9hdCBzY2FsZTsKKyAgICBpZiAoaXNW
ZXJ0aWNhbFBpZWNlKHBpZWNlKSkKKyAgICAgICAgc2NhbGUgPSBkZXN0aW5hdGlvblJlY3RzW3Bp
ZWNlXS5oZWlnaHQoKSAvIHNvdXJjZVJlY3RzW3BpZWNlXS5oZWlnaHQoKTsKKyAgICBlbHNlCisg
ICAgICAgIHNjYWxlID0gZGVzdGluYXRpb25SZWN0c1twaWVjZV0ud2lkdGgoKSAvIHNvdXJjZVJl
Y3RzW3BpZWNlXS53aWR0aCgpOworCisgICAgcmV0dXJuIEZsb2F0U2l6ZShzY2FsZSwgc2NhbGUp
OworfQorCitGbG9hdFNpemUgTmluZVBpZWNlSW1hZ2U6OmNvbXB1dGVJbnRyaW5zaWNNaWRkbGVU
aWxlU2NhbGUoY29uc3QgVmVjdG9yPEZsb2F0U2l6ZT4mIHNjYWxlcywgY29uc3QgVmVjdG9yPEZs
b2F0UmVjdD4mIGRlc3RpbmF0aW9uUmVjdHMsIGNvbnN0IFZlY3RvcjxGbG9hdFJlY3Q+JiBzb3Vy
Y2VSZWN0cywgRU5pbmVQaWVjZUltYWdlUnVsZSBoUnVsZSwgRU5pbmVQaWVjZUltYWdlUnVsZSB2
UnVsZSkKK3sKKyAgICBGbG9hdFNpemUgc2NhbGUoMSwgMSk7CisgICAgaWYgKGlzRW1wdHlQaWVj
ZVJlY3QoTWlkZGxlUGllY2UsIGRlc3RpbmF0aW9uUmVjdHMsIHNvdXJjZVJlY3RzKSkKKyAgICAg
ICAgcmV0dXJuIHNjYWxlOworCisgICAgLy8gVW5saWtlIHRoZSBzaWRlIHBpZWNlcywgdGhlIG1p
ZGRsZSBwaWVjZSBjYW4gaGF2ZSAic3RyZXRjaCIgc3BlY2lmaWVkIGluIG9uZSBheGlzIGJ1dCBu
b3QgdGhlIG90aGVyLgorICAgIC8vIEluIGZhY3QgdGhlIHNpZGUgcGllY2VzIGRvbid0IGV2ZW4g
dXNlIHRoZSBzY2FsZSBmYWN0b3IgdW5sZXNzIHRoZXkgaGF2ZSBhIHJ1bGUgb3RoZXIgdGhhbiAi
c3RyZXRjaCIuCisgICAgaWYgKGhSdWxlID09IFN0cmV0Y2hJbWFnZVJ1bGUpCisgICAgICAgIHNj
YWxlLnNldFdpZHRoKGRlc3RpbmF0aW9uUmVjdHNbTWlkZGxlUGllY2VdLndpZHRoKCkgLyBzb3Vy
Y2VSZWN0c1tNaWRkbGVQaWVjZV0ud2lkdGgoKSk7CisgICAgZWxzZSBpZiAoIWlzRW1wdHlQaWVj
ZVJlY3QoVG9wUGllY2UsIGRlc3RpbmF0aW9uUmVjdHMsIHNvdXJjZVJlY3RzKSkKKyAgICAgICAg
c2NhbGUuc2V0V2lkdGgoc2NhbGVzW1RvcFBpZWNlXS53aWR0aCgpKTsKKyAgICBlbHNlIGlmICgh
aXNFbXB0eVBpZWNlUmVjdChCb3R0b21QaWVjZSwgZGVzdGluYXRpb25SZWN0cywgc291cmNlUmVj
dHMpKQorICAgICAgICBzY2FsZS5zZXRXaWR0aChzY2FsZXNbQm90dG9tUGllY2VdLndpZHRoKCkp
OworCisgICAgaWYgKHZSdWxlID09IFN0cmV0Y2hJbWFnZVJ1bGUpCisgICAgICAgIHNjYWxlLnNl
dEhlaWdodChkZXN0aW5hdGlvblJlY3RzW01pZGRsZVBpZWNlXS5oZWlnaHQoKSAvIHNvdXJjZVJl
Y3RzW01pZGRsZVBpZWNlXS5oZWlnaHQoKSk7CisgICAgZWxzZSBpZiAoIWlzRW1wdHlQaWVjZVJl
Y3QoTGVmdFBpZWNlLCBkZXN0aW5hdGlvblJlY3RzLCBzb3VyY2VSZWN0cykpCisgICAgICAgIHNj
YWxlLnNldEhlaWdodChzY2FsZXNbTGVmdFBpZWNlXS5oZWlnaHQoKSk7CisgICAgZWxzZSBpZiAo
IWlzRW1wdHlQaWVjZVJlY3QoUmlnaHRQaWVjZSwgZGVzdGluYXRpb25SZWN0cywgc291cmNlUmVj
dHMpKQorICAgICAgICBzY2FsZS5zZXRIZWlnaHQoc2NhbGVzW1JpZ2h0UGllY2VdLmhlaWdodCgp
KTsKKworICAgIHJldHVybiBzY2FsZTsKK30KKworVmVjdG9yPEZsb2F0U2l6ZT4gTmluZVBpZWNl
SW1hZ2U6OmNvbXB1dGVJbnRyaW5zaWNUaWxlU2NhbGVzKGNvbnN0IFZlY3RvcjxGbG9hdFJlY3Q+
JiBkZXN0aW5hdGlvblJlY3RzLCBjb25zdCBWZWN0b3I8RmxvYXRSZWN0PiYgc291cmNlUmVjdHMs
IEVOaW5lUGllY2VJbWFnZVJ1bGUgaFJ1bGUsIEVOaW5lUGllY2VJbWFnZVJ1bGUgdlJ1bGUpCit7
CisgICAgVmVjdG9yPEZsb2F0U2l6ZT4gc2NhbGVzKE1heFBpZWNlLCBGbG9hdFNpemUoMSwgMSkp
OworCisgICAgc2NhbGVzW1RvcFBpZWNlXSAgICA9IGNvbXB1dGVJbnRyaW5zaWNTaWRlVGlsZVNj
YWxlKFRvcFBpZWNlLCAgICBkZXN0aW5hdGlvblJlY3RzLCBzb3VyY2VSZWN0cyk7CisgICAgc2Nh
bGVzW1JpZ2h0UGllY2VdICA9IGNvbXB1dGVJbnRyaW5zaWNTaWRlVGlsZVNjYWxlKFJpZ2h0UGll
Y2UsICBkZXN0aW5hdGlvblJlY3RzLCBzb3VyY2VSZWN0cyk7CisgICAgc2NhbGVzW0JvdHRvbVBp
ZWNlXSA9IGNvbXB1dGVJbnRyaW5zaWNTaWRlVGlsZVNjYWxlKEJvdHRvbVBpZWNlLCBkZXN0aW5h
dGlvblJlY3RzLCBzb3VyY2VSZWN0cyk7CisgICAgc2NhbGVzW0xlZnRQaWVjZV0gICA9IGNvbXB1
dGVJbnRyaW5zaWNTaWRlVGlsZVNjYWxlKExlZnRQaWVjZSwgICBkZXN0aW5hdGlvblJlY3RzLCBz
b3VyY2VSZWN0cyk7CisKKyAgICBzY2FsZXNbTWlkZGxlUGllY2VdID0gY29tcHV0ZUludHJpbnNp
Y01pZGRsZVRpbGVTY2FsZShzY2FsZXMsIGRlc3RpbmF0aW9uUmVjdHMsIHNvdXJjZVJlY3RzLCBo
UnVsZSwgdlJ1bGUpOworICAgIHJldHVybiBzY2FsZXM7Cit9CisKK1ZlY3RvcjxGbG9hdFNpemU+
IE5pbmVQaWVjZUltYWdlOjpjb21wdXRlTm9uSW50cmluc2ljVGlsZVNjYWxlcygpCit7CisgICAg
cmV0dXJuIFZlY3RvcjxGbG9hdFNpemU+KE1heFBpZWNlLCBGbG9hdFNpemUoMSwgMSkpOworfQor
Cit2b2lkIE5pbmVQaWVjZUltYWdlOjpwYWludChHcmFwaGljc0NvbnRleHQqIGdyYXBoaWNzQ29u
dGV4dCwgUmVuZGVyRWxlbWVudCogcmVuZGVyZXIsIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwg
Y29uc3QgTGF5b3V0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IExheW91dFNpemUmIHNvdXJjZSwg
IGJvb2wgaW50cmluc2ljU291cmNlLCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvciwgQ29tcG9zaXRl
T3BlcmF0b3Igb3ApIGNvbnN0Cit7CisgICAgU3R5bGVJbWFnZSogc3R5bGVJbWFnZSA9IGltYWdl
KCk7CisgICAgQVNTRVJUKHN0eWxlSW1hZ2UgJiYgc3R5bGVJbWFnZS0+aXNMb2FkZWQoKSk7CisK
KyAgICBMYXlvdXRCb3hFeHRlbnQgc291cmNlU2xpY2VzID0gY29tcHV0ZVNsaWNlcyhzb3VyY2Us
IGltYWdlU2xpY2VzKCksIHN0eWxlSW1hZ2UtPmltYWdlU2NhbGVGYWN0b3IoKSk7CisgICAgTGF5
b3V0Qm94RXh0ZW50IGRlc3RpbmF0aW9uU2xpY2VzID0gY29tcHV0ZVNsaWNlcyhkZXN0aW5hdGlv
bi5zaXplKCksIGJvcmRlclNsaWNlcygpLCBzdHlsZS5ib3JkZXJXaWR0aCgpLCBzb3VyY2VTbGlj
ZXMpOworCisgICAgc2NhbGVTbGljZXNJZk5lZWRlZChkZXN0aW5hdGlvbi5zaXplKCksIGRlc3Rp
bmF0aW9uU2xpY2VzLCBkZXZpY2VTY2FsZUZhY3Rvcik7CisKKyAgICBWZWN0b3I8RmxvYXRSZWN0
PiBkZXN0aW5hdGlvblJlY3RzID0gY29tcHV0ZUludHJpbnNpY1JlY3RzKGRlc3RpbmF0aW9uLCBk
ZXN0aW5hdGlvblNsaWNlcywgZGV2aWNlU2NhbGVGYWN0b3IpOworICAgIFZlY3RvcjxGbG9hdFJl
Y3Q+IHNvdXJjZVJlY3RzOworICAgIFZlY3RvcjxGbG9hdFNpemU+IHRpbGVTY2FsZXM7CisKKyAg
ICBpZiAoaW50cmluc2ljU291cmNlKSB7CisgICAgICAgIHNvdXJjZVJlY3RzID0gY29tcHV0ZUlu
dHJpbnNpY1JlY3RzKEZsb2F0UmVjdChGbG9hdFBvaW50KCksIHNvdXJjZSksIHNvdXJjZVNsaWNl
cywgZGV2aWNlU2NhbGVGYWN0b3IpOworICAgICAgICB0aWxlU2NhbGVzID0gY29tcHV0ZUludHJp
bnNpY1RpbGVTY2FsZXMoZGVzdGluYXRpb25SZWN0cywgc291cmNlUmVjdHMsIGhvcml6b250YWxS
dWxlKCksIHZlcnRpY2FsUnVsZSgpKTsKKyAgICB9IGVsc2UgeworICAgICAgICBzb3VyY2VSZWN0
cyA9IGNvbXB1dGVOb25JbnRyaW5zaWNSZWN0cyhkZXN0aW5hdGlvblJlY3RzLCBzb3VyY2VTbGlj
ZXMpOworICAgICAgICB0aWxlU2NhbGVzID0gY29tcHV0ZU5vbkludHJpbnNpY1RpbGVTY2FsZXMo
KTsKKyAgICB9CisKKyAgICBSZWZQdHI8SW1hZ2U+IGltYWdlID0gc3R5bGVJbWFnZS0+aW1hZ2Uo
cmVuZGVyZXIsIHNvdXJjZSk7CisgICAgQ29sb3JTcGFjZSBjb2xvclNwYWNlID0gc3R5bGUuY29s
b3JTcGFjZSgpOworCisgICAgZm9yIChJbWFnZVBpZWNlIHBpZWNlID0gTWluUGllY2U7IHBpZWNl
IDwgTWF4UGllY2U7ICsrcGllY2UpIHsKKyAgICAgICAgaWYgKChwaWVjZSA9PSBNaWRkbGVQaWVj
ZSAmJiAhZmlsbCgpKSB8fCBpc0VtcHR5UGllY2VSZWN0KHBpZWNlLCBkZXN0aW5hdGlvblJlY3Rz
LCBzb3VyY2VSZWN0cykpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBpZiAoaXND
b3JuZXJQaWVjZShwaWVjZSkpIHsKKyAgICAgICAgICAgIGdyYXBoaWNzQ29udGV4dC0+ZHJhd0lt
YWdlKGltYWdlLmdldCgpLCBjb2xvclNwYWNlLCBkZXN0aW5hdGlvblJlY3RzW3BpZWNlXSwgc291
cmNlUmVjdHNbcGllY2VdLCBvcCk7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQor
CisgICAgICAgIEltYWdlOjpUaWxlUnVsZSBoUnVsZSA9IGlzSG9yaXpvbnRhbFBpZWNlKHBpZWNl
KSA/IHN0YXRpY19jYXN0PEltYWdlOjpUaWxlUnVsZT4oaG9yaXpvbnRhbFJ1bGUoKSkgOiBJbWFn
ZTo6U3RyZXRjaFRpbGU7CisgICAgICAgIEltYWdlOjpUaWxlUnVsZSB2UnVsZSA9IGlzVmVydGlj
YWxQaWVjZShwaWVjZSkgPyBzdGF0aWNfY2FzdDxJbWFnZTo6VGlsZVJ1bGU+KHZlcnRpY2FsUnVs
ZSgpKSA6IEltYWdlOjpTdHJldGNoVGlsZTsKKyAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5kcmF3
VGlsZWRJbWFnZShpbWFnZS5nZXQoKSwgY29sb3JTcGFjZSwgZGVzdGluYXRpb25SZWN0c1twaWVj
ZV0sIHNvdXJjZVJlY3RzW3BpZWNlXSwgdGlsZVNjYWxlc1twaWVjZV0sIGhSdWxlLCB2UnVsZSwg
b3ApOworICAgIH0KK30KKwogTmluZVBpZWNlSW1hZ2VEYXRhOjpOaW5lUGllY2VJbWFnZURhdGEo
KQogICAgIDogZmlsbChmYWxzZSkKICAgICAsIGhvcml6b250YWxSdWxlKFN0cmV0Y2hJbWFnZVJ1
bGUpCiAgICAgLCB2ZXJ0aWNhbFJ1bGUoU3RyZXRjaEltYWdlUnVsZSkKLSAgICAsIGltYWdlKDAp
CisgICAgLCBpbWFnZShudWxscHRyKQogICAgICwgaW1hZ2VTbGljZXMoTGVuZ3RoKDEwMCwgUGVy
Y2VudCksIExlbmd0aCgxMDAsIFBlcmNlbnQpLCBMZW5ndGgoMTAwLCBQZXJjZW50KSwgTGVuZ3Ro
KDEwMCwgUGVyY2VudCkpCiAgICAgLCBib3JkZXJTbGljZXMoTGVuZ3RoKDEsIFJlbGF0aXZlKSwg
TGVuZ3RoKDEsIFJlbGF0aXZlKSwgTGVuZ3RoKDEsIFJlbGF0aXZlKSwgTGVuZ3RoKDEsIFJlbGF0
aXZlKSkKICAgICAsIG91dHNldCgwKQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL05pbmVQaWVjZUltYWdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL05pbmVQaWVjZUltYWdlLmgJKHJldmlzaW9uIDE4NDY1NSkKKysrIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9OaW5lUGllY2VJbWFnZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yLDcgKzIsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDAwIExhcnMgS25vbGwgKGtub2xsQGtk
ZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDIwMDAgQW50dGkgS29pdmlzdG8gKGtvaXZpc3RvQGtk
ZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDIwMDAgRGlyayBNdWVsbGVyIChtdWVsbGVyQGtkZS5v
cmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMTMg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDAzLCAy
MDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDEzLCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjUsOSArMjUsMTIgQEAKICNkZWZpbmUg
TmluZVBpZWNlSW1hZ2VfaAogCiAjaW5jbHVkZSAiRGF0YVJlZi5oIgorI2luY2x1ZGUgIkxheW91
dFJlY3QuaCIKKyNpbmNsdWRlICJMYXlvdXRTaXplLmgiCiAjaW5jbHVkZSAiTGF5b3V0VW5pdC5o
IgogI2luY2x1ZGUgIkxlbmd0aEJveC5oIgogI2luY2x1ZGUgIlN0eWxlSW1hZ2UuaCIKKyNpbmNs
dWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzUsNiArMzgs
NzAgQEAgZW51bSBFTmluZVBpZWNlSW1hZ2VSdWxlIHsKICAgICBTdHJldGNoSW1hZ2VSdWxlLCBS
b3VuZEltYWdlUnVsZSwgU3BhY2VJbWFnZVJ1bGUsIFJlcGVhdEltYWdlUnVsZQogfTsKIAorZW51
bSBJbWFnZVBpZWNlIHsKKyAgICBNaW5QaWVjZSA9IDAsCisgICAgVG9wTGVmdFBpZWNlID0gTWlu
UGllY2UsCisgICAgTGVmdFBpZWNlLAorICAgIEJvdHRvbUxlZnRQaWVjZSwKKyAgICBUb3BSaWdo
dFBpZWNlLAorICAgIFJpZ2h0UGllY2UsCisgICAgQm90dG9tUmlnaHRQaWVjZSwKKyAgICBUb3BQ
aWVjZSwKKyAgICBCb3R0b21QaWVjZSwKKyAgICBNaWRkbGVQaWVjZSwKKyAgICBNYXhQaWVjZQor
fTsKKworaW5saW5lIEltYWdlUGllY2UmIG9wZXJhdG9yKysoSW1hZ2VQaWVjZSYgcGllY2UpCit7
CisgICAgcGllY2UgPSBzdGF0aWNfY2FzdDxJbWFnZVBpZWNlPihzdGF0aWNfY2FzdDxpbnQ+KHBp
ZWNlKSArIDEpOworICAgIHJldHVybiBwaWVjZTsKK30KKworaW5saW5lIGJvb2wgaXNDb3JuZXJQ
aWVjZShJbWFnZVBpZWNlIHBpZWNlKQoreworICAgIHJldHVybiBwaWVjZSA9PSBUb3BMZWZ0UGll
Y2UgfHwgcGllY2UgPT0gVG9wUmlnaHRQaWVjZSB8fCBwaWVjZSA9PSBCb3R0b21MZWZ0UGllY2Ug
fHwgcGllY2UgPT0gQm90dG9tUmlnaHRQaWVjZTsKK30KKworaW5saW5lIGJvb2wgaXNNaWRkbGVQ
aWVjZShJbWFnZVBpZWNlIHBpZWNlKQoreworICAgIHJldHVybiBwaWVjZSA9PSBNaWRkbGVQaWVj
ZTsKK30KKworaW5saW5lIGJvb2wgaXNIb3Jpem9udGFsUGllY2UoSW1hZ2VQaWVjZSBwaWVjZSkK
K3sKKyAgICByZXR1cm4gcGllY2UgPT0gVG9wUGllY2UgfHwgcGllY2UgPT0gQm90dG9tUGllY2Ug
fHwgcGllY2UgPT0gTWlkZGxlUGllY2U7Cit9CisKK2lubGluZSBib29sIGlzVmVydGljYWxQaWVj
ZShJbWFnZVBpZWNlIHBpZWNlKQoreworICAgIHJldHVybiBwaWVjZSA9PSBMZWZ0UGllY2UgfHwg
cGllY2UgPT0gUmlnaHRQaWVjZSB8fCBwaWVjZSA9PSBNaWRkbGVQaWVjZTsKK30KKworaW5saW5l
IFBoeXNpY2FsQm94U2lkZSBpbWFnZVBpZWNlSG9yaXpvbnRhbFNpZGUoSW1hZ2VQaWVjZSBwaWVj
ZSkKK3sKKyAgICBpZiAocGllY2UgPT0gVG9wTGVmdFBpZWNlIHx8IHBpZWNlID09IFRvcFBpZWNl
IHx8IHBpZWNlID09IFRvcFJpZ2h0UGllY2UpCisgICAgICAgIHJldHVybiBUb3BTaWRlOworCisg
ICAgaWYgKHBpZWNlID09IEJvdHRvbUxlZnRQaWVjZSB8fCBwaWVjZSA9PSBCb3R0b21QaWVjZSB8
fCBwaWVjZSA9PSBCb3R0b21SaWdodFBpZWNlKQorICAgICAgICByZXR1cm4gQm90dG9tU2lkZTsK
KworICAgIHJldHVybiBOaWxTaWRlOworfQorCitpbmxpbmUgUGh5c2ljYWxCb3hTaWRlIGltYWdl
UGllY2VWZXJ0aWNhbFNpZGUoSW1hZ2VQaWVjZSBwaWVjZSkKK3sKKyAgICBpZiAocGllY2UgPT0g
VG9wTGVmdFBpZWNlIHx8IHBpZWNlID09IExlZnRQaWVjZSB8fCBwaWVjZSA9PSBCb3R0b21MZWZ0
UGllY2UpCisgICAgICAgIHJldHVybiBMZWZ0U2lkZTsKKworICAgIGlmIChwaWVjZSA9PSBUb3BS
aWdodFBpZWNlIHx8IHBpZWNlID09IFJpZ2h0UGllY2UgfHwgcGllY2UgPT0gQm90dG9tUmlnaHRQ
aWVjZSkKKyAgICAgICAgcmV0dXJuIFJpZ2h0U2lkZTsKKworICAgIHJldHVybiBOaWxTaWRlOwor
fQorCitjbGFzcyBSZW5kZXJTdHlsZTsKKwogY2xhc3MgTmluZVBpZWNlSW1hZ2VEYXRhIDogcHVi
bGljIFJlZkNvdW50ZWQ8TmluZVBpZWNlSW1hZ2VEYXRhPiB7CiBwdWJsaWM6CiAgICAgc3RhdGlj
IFJlZjxOaW5lUGllY2VJbWFnZURhdGE+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
TmluZVBpZWNlSW1hZ2VEYXRhKTsgfQpAQCAtMTIyLDYgKzE4OSwyNSBAQCBwdWJsaWM6CiAgICAg
ICAgIHJldHVybiBvdXRzZXRTaWRlLnZhbHVlKCk7CiAgICAgfQogCisgICAgc3RhdGljIExheW91
dFVuaXQgY29tcHV0ZVNsaWNlKExlbmd0aCwgTGF5b3V0VW5pdCB3aWR0aCwgTGF5b3V0VW5pdCBz
bGljZSwgTGF5b3V0VW5pdCBleHRlbnQpOworICAgIHN0YXRpYyBMYXlvdXRCb3hFeHRlbnQgY29t
cHV0ZVNsaWNlcyhjb25zdCBMYXlvdXRTaXplJiwgY29uc3QgTGVuZ3RoQm94JiBsZW5ndGhzLCBp
bnQgc2NhbGVGYWN0b3IpOworICAgIHN0YXRpYyBMYXlvdXRCb3hFeHRlbnQgY29tcHV0ZVNsaWNl
cyhjb25zdCBMYXlvdXRTaXplJiwgY29uc3QgTGVuZ3RoQm94JiBsZW5ndGhzLCBjb25zdCBGbG9h
dEJveEV4dGVudCYgd2lkdGhzLCBjb25zdCBMYXlvdXRCb3hFeHRlbnQmIHNsaWNlcyk7CisKKyAg
ICBzdGF0aWMgYm9vbCBpc0VtcHR5UGllY2VSZWN0KEltYWdlUGllY2UsIGNvbnN0IExheW91dEJv
eEV4dGVudCYgc2xpY2VzKTsKKyAgICBzdGF0aWMgYm9vbCBpc0VtcHR5UGllY2VSZWN0KEltYWdl
UGllY2UsIGNvbnN0IFZlY3RvcjxGbG9hdFJlY3Q+JiBkZXN0aW5hdGlvblJlY3RzLCBjb25zdCBW
ZWN0b3I8RmxvYXRSZWN0PiYgc291cmNlUmVjdHMpOworCisgICAgc3RhdGljIFZlY3RvcjxGbG9h
dFJlY3Q+IGNvbXB1dGVJbnRyaW5zaWNSZWN0cyhjb25zdCBGbG9hdFJlY3QmIG91dGVyLCBjb25z
dCBMYXlvdXRCb3hFeHRlbnQmIHNsaWNlcywgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpOworICAg
IHN0YXRpYyBWZWN0b3I8RmxvYXRSZWN0PiBjb21wdXRlTm9uSW50cmluc2ljUmVjdHMoY29uc3Qg
VmVjdG9yPEZsb2F0UmVjdD4mIGludHJpbnNpY1JlY3RzLCBjb25zdCBMYXlvdXRCb3hFeHRlbnQm
IHNsaWNlcyk7CisKKyAgICBzdGF0aWMgdm9pZCBzY2FsZVNsaWNlc0lmTmVlZGVkKGNvbnN0IExh
eW91dFNpemUmLCBMYXlvdXRCb3hFeHRlbnQmIHNsaWNlcywgaW50IHNjYWxlRmFjdG9yKTsKKwor
ICAgIHN0YXRpYyBGbG9hdFNpemUgY29tcHV0ZUludHJpbnNpY1NpZGVUaWxlU2NhbGUoSW1hZ2VQ
aWVjZSwgY29uc3QgVmVjdG9yPEZsb2F0UmVjdD4mIGRlc3RpbmF0aW9uUmVjdHMsIGNvbnN0IFZl
Y3RvcjxGbG9hdFJlY3Q+JiBzb3VyY2VSZWN0cyk7CisgICAgc3RhdGljIEZsb2F0U2l6ZSBjb21w
dXRlSW50cmluc2ljTWlkZGxlVGlsZVNjYWxlKGNvbnN0IFZlY3RvcjxGbG9hdFNpemU+JiBzY2Fs
ZXMsIGNvbnN0IFZlY3RvcjxGbG9hdFJlY3Q+JiBkZXN0aW5hdGlvblJlY3RzLCBjb25zdCBWZWN0
b3I8RmxvYXRSZWN0PiYgc291cmNlUmVjdHMsIEVOaW5lUGllY2VJbWFnZVJ1bGUgaFJ1bGUsIEVO
aW5lUGllY2VJbWFnZVJ1bGUgdlJ1bGUpOworICAgIHN0YXRpYyBWZWN0b3I8RmxvYXRTaXplPiBj
b21wdXRlSW50cmluc2ljVGlsZVNjYWxlcyhjb25zdCBWZWN0b3I8RmxvYXRSZWN0PiYgZGVzdGlu
YXRpb25SZWN0cywgY29uc3QgVmVjdG9yPEZsb2F0UmVjdD4mIHNvdXJjZVJlY3RzLCBFTmluZVBp
ZWNlSW1hZ2VSdWxlIGhSdWxlLCBFTmluZVBpZWNlSW1hZ2VSdWxlIHZSdWxlKTsKKyAgICBzdGF0
aWMgVmVjdG9yPEZsb2F0U2l6ZT4gY29tcHV0ZU5vbkludHJpbnNpY1RpbGVTY2FsZXMoKTsKKwor
ICAgIHZvaWQgcGFpbnQoR3JhcGhpY3NDb250ZXh0KiwgUmVuZGVyRWxlbWVudCosIGNvbnN0IFJl
bmRlclN0eWxlJiwgY29uc3QgTGF5b3V0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IExheW91dFNp
emUmIHNvdXJjZSwgYm9vbCBpbnRyaW5zaWNTb3VyY2UsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9y
LCBDb21wb3NpdGVPcGVyYXRvcikgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgRGF0YVJlZjxOaW5l
UGllY2VJbWFnZURhdGE+IG1fZGF0YTsKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAJKHJldmlzaW9uIDE4NDY1NSkKKysrIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTkyMSwxMCArOTIxLDEwIEBAIHZvaWQgUmVuZGVyU3R5bGU6OnNldE1hc2tJbWFnZShjb25z
dCBWZWMKIHZvaWQgUmVuZGVyU3R5bGU6OnNldENsaXAoTGVuZ3RoIHRvcCwgTGVuZ3RoIHJpZ2h0
LCBMZW5ndGggYm90dG9tLCBMZW5ndGggbGVmdCkKIHsKICAgICBTdHlsZVZpc3VhbERhdGEqIGRh
dGEgPSB2aXN1YWwuYWNjZXNzKCk7Ci0gICAgZGF0YS0+Y2xpcC5tX3RvcCA9IHRvcDsKLSAgICBk
YXRhLT5jbGlwLm1fcmlnaHQgPSByaWdodDsKLSAgICBkYXRhLT5jbGlwLm1fYm90dG9tID0gYm90
dG9tOwotICAgIGRhdGEtPmNsaXAubV9sZWZ0ID0gbGVmdDsKKyAgICBkYXRhLT5jbGlwLnRvcCgp
ID0gdG9wOworICAgIGRhdGEtPmNsaXAucmlnaHQoKSA9IHJpZ2h0OworICAgIGRhdGEtPmNsaXAu
Ym90dG9tKCkgPSBib3R0b207CisgICAgZGF0YS0+Y2xpcC5sZWZ0KCkgPSBsZWZ0OwogfQogCiB2
b2lkIFJlbmRlclN0eWxlOjphZGRDdXJzb3IoUGFzc1JlZlB0cjxTdHlsZUltYWdlPiBpbWFnZSwg
Y29uc3QgSW50UG9pbnQmIGhvdFNwb3QpCkBAIC0xMzA5LDEwICsxMzA5LDEwIEBAIGNvbnN0IFZl
Y3RvcjxTdHlsZURhc2hib2FyZFJlZ2lvbj4mIFJlbmQKICAgICBpZiAoIW5vbmVMaXN0SW5pdGlh
bGl6ZWQpIHsKICAgICAgICAgU3R5bGVEYXNoYm9hcmRSZWdpb24gcmVnaW9uOwogICAgICAgICBy
ZWdpb24ubGFiZWwgPSAiIjsKLSAgICAgICAgcmVnaW9uLm9mZnNldC5tX3RvcCAgPSBMZW5ndGgo
KTsKLSAgICAgICAgcmVnaW9uLm9mZnNldC5tX3JpZ2h0ID0gTGVuZ3RoKCk7Ci0gICAgICAgIHJl
Z2lvbi5vZmZzZXQubV9ib3R0b20gPSBMZW5ndGgoKTsKLSAgICAgICAgcmVnaW9uLm9mZnNldC5t
X2xlZnQgPSBMZW5ndGgoKTsKKyAgICAgICAgcmVnaW9uLm9mZnNldC50b3AoKSAgPSBMZW5ndGgo
KTsKKyAgICAgICAgcmVnaW9uLm9mZnNldC5yaWdodCgpID0gTGVuZ3RoKCk7CisgICAgICAgIHJl
Z2lvbi5vZmZzZXQuYm90dG9tKCkgPSBMZW5ndGgoKTsKKyAgICAgICAgcmVnaW9uLm9mZnNldC5s
ZWZ0KCkgPSBMZW5ndGgoKTsKICAgICAgICAgcmVnaW9uLnR5cGUgPSBTdHlsZURhc2hib2FyZFJl
Z2lvbjo6Tm9uZTsKICAgICAgICAgbm9uZUxpc3QuYXBwZW5kKHJlZ2lvbik7CiAgICAgICAgIG5v
bmVMaXN0SW5pdGlhbGl6ZWQgPSB0cnVlOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1JlbmRlclN0eWxlLmgJKHJldmlzaW9uIDE4NDY1NSkKKysrIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3
ICszNyw2IEBACiAjaW5jbHVkZSAiRm9udEJhc2VsaW5lLmgiCiAjaW5jbHVkZSAiRm9udERlc2Ny
aXB0aW9uLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NUeXBlcy5oIgotI2luY2x1ZGUgIkxheW91dEJv
eEV4dGVudC5oIgogI2luY2x1ZGUgIkxlbmd0aC5oIgogI2luY2x1ZGUgIkxlbmd0aEJveC5oIgog
I2luY2x1ZGUgIkxlbmd0aEZ1bmN0aW9ucy5oIgpAQCAtNTMxLDEyICs1MzAsMTIgQEAgcHVibGlj
OgogICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBSZW5kZXJTdHlsZSYgb3RoZXIpIGNvbnN0Owog
ICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBSZW5kZXJTdHlsZSYgb3RoZXIpIGNvbnN0IHsgcmV0
dXJuICEoKnRoaXMgPT0gb3RoZXIpOyB9CiAgICAgYm9vbCBpc0Zsb2F0aW5nKCkgY29uc3QgeyBy
ZXR1cm4gbm9uaW5oZXJpdGVkX2ZsYWdzLmlzRmxvYXRpbmcoKTsgfQotICAgIGJvb2wgaGFzTWFy
Z2luKCkgY29uc3QgeyByZXR1cm4gc3Vycm91bmQtPm1hcmdpbi5ub25aZXJvKCk7IH0KKyAgICBi
b29sIGhhc01hcmdpbigpIGNvbnN0IHsgcmV0dXJuICFzdXJyb3VuZC0+bWFyZ2luLmlzWmVybygp
OyB9CiAgICAgYm9vbCBoYXNCb3JkZXIoKSBjb25zdCB7IHJldHVybiBzdXJyb3VuZC0+Ym9yZGVy
Lmhhc0JvcmRlcigpOyB9CiAgICAgYm9vbCBoYXNCb3JkZXJGaWxsKCkgY29uc3QgeyByZXR1cm4g
c3Vycm91bmQtPmJvcmRlci5oYXNGaWxsKCk7IH0KICAgICBib29sIGhhc0JvcmRlckRlY29yYXRp
b24oKSBjb25zdCB7IHJldHVybiBoYXNCb3JkZXIoKSB8fCBoYXNCb3JkZXJGaWxsKCk7IH0KLSAg
ICBib29sIGhhc1BhZGRpbmcoKSBjb25zdCB7IHJldHVybiBzdXJyb3VuZC0+cGFkZGluZy5ub25a
ZXJvKCk7IH0KLSAgICBib29sIGhhc09mZnNldCgpIGNvbnN0IHsgcmV0dXJuIHN1cnJvdW5kLT5v
ZmZzZXQubm9uWmVybygpOyB9CisgICAgYm9vbCBoYXNQYWRkaW5nKCkgY29uc3QgeyByZXR1cm4g
IXN1cnJvdW5kLT5wYWRkaW5nLmlzWmVybygpOyB9CisgICAgYm9vbCBoYXNPZmZzZXQoKSBjb25z
dCB7IHJldHVybiAhc3Vycm91bmQtPm9mZnNldC5pc1plcm8oKTsgfQogICAgIGJvb2wgaGFzTWFy
Z2luQmVmb3JlUXVpcmsoKSBjb25zdCB7IHJldHVybiBtYXJnaW5CZWZvcmUoKS5oYXNRdWlyaygp
OyB9CiAgICAgYm9vbCBoYXNNYXJnaW5BZnRlclF1aXJrKCkgY29uc3QgeyByZXR1cm4gbWFyZ2lu
QWZ0ZXIoKS5oYXNRdWlyaygpOyB9CiAKQEAgLTU1OCw3ICs1NTcsNyBAQCBwdWJsaWM6CiAgICAg
TGF5b3V0Qm94RXh0ZW50IGltYWdlT3V0c2V0cyhjb25zdCBOaW5lUGllY2VJbWFnZSYpIGNvbnN0
OwogICAgIGJvb2wgaGFzQm9yZGVySW1hZ2VPdXRzZXRzKCkgY29uc3QKICAgICB7Ci0gICAgICAg
IHJldHVybiBib3JkZXJJbWFnZSgpLmhhc0ltYWdlKCkgJiYgYm9yZGVySW1hZ2UoKS5vdXRzZXQo
KS5ub25aZXJvKCk7CisgICAgICAgIHJldHVybiBib3JkZXJJbWFnZSgpLmhhc0ltYWdlKCkgJiYg
IWJvcmRlckltYWdlKCkub3V0c2V0KCkuaXNaZXJvKCk7CiAgICAgfQogICAgIExheW91dEJveEV4
dGVudCBib3JkZXJJbWFnZU91dHNldHMoKSBjb25zdAogICAgIHsKQEAgLTU5NSw4ICs1OTQsOCBA
QCBwdWJsaWM6CiAgICAgY29uc3QgTGVuZ3RoJiBib3R0b20oKSBjb25zdCB7IHJldHVybiBzdXJy
b3VuZC0+b2Zmc2V0LmJvdHRvbSgpOyB9CiAKICAgICAvLyBBY2Nlc3NvcnMgZm9yIHBvc2l0aW9u
ZWQgb2JqZWN0IGVkZ2VzIHRoYXQgdGFrZSBpbnRvIGFjY291bnQgd3JpdGluZyBtb2RlLgotICAg
IGNvbnN0IExlbmd0aCYgbG9naWNhbExlZnQoKSBjb25zdCB7IHJldHVybiBzdXJyb3VuZC0+b2Zm
c2V0LmxvZ2ljYWxMZWZ0KHdyaXRpbmdNb2RlKCkpOyB9Ci0gICAgY29uc3QgTGVuZ3RoJiBsb2dp
Y2FsUmlnaHQoKSBjb25zdCB7IHJldHVybiBzdXJyb3VuZC0+b2Zmc2V0LmxvZ2ljYWxSaWdodCh3
cml0aW5nTW9kZSgpKTsgfQorICAgIGNvbnN0IExlbmd0aCYgbG9naWNhbExlZnQoKSBjb25zdCB7
IHJldHVybiBzdXJyb3VuZC0+b2Zmc2V0LnN0YXJ0KHdyaXRpbmdNb2RlKCkpOyB9CisgICAgY29u
c3QgTGVuZ3RoJiBsb2dpY2FsUmlnaHQoKSBjb25zdCB7IHJldHVybiBzdXJyb3VuZC0+b2Zmc2V0
LmVuZCh3cml0aW5nTW9kZSgpKTsgfQogICAgIGNvbnN0IExlbmd0aCYgbG9naWNhbFRvcCgpIGNv
bnN0IHsgcmV0dXJuIHN1cnJvdW5kLT5vZmZzZXQuYmVmb3JlKHdyaXRpbmdNb2RlKCkpOyB9CiAg
ICAgY29uc3QgTGVuZ3RoJiBsb2dpY2FsQm90dG9tKCkgY29uc3QgeyByZXR1cm4gc3Vycm91bmQt
Pm9mZnNldC5hZnRlcih3cml0aW5nTW9kZSgpKTsgfQogCkBAIC02NjIsNyArNjYxLDggQEAgcHVi
bGljOgogICAgIGZsb2F0IGJvcmRlckJvdHRvbVdpZHRoKCkgY29uc3QgeyByZXR1cm4gc3Vycm91
bmQtPmJvcmRlci5ib3JkZXJCb3R0b21XaWR0aCgpOyB9CiAgICAgRUJvcmRlclN0eWxlIGJvcmRl
ckJvdHRvbVN0eWxlKCkgY29uc3QgeyByZXR1cm4gc3Vycm91bmQtPmJvcmRlci5ib3R0b20oKS5z
dHlsZSgpOyB9CiAgICAgYm9vbCBib3JkZXJCb3R0b21Jc1RyYW5zcGFyZW50KCkgY29uc3QgeyBy
ZXR1cm4gc3Vycm91bmQtPmJvcmRlci5ib3R0b20oKS5pc1RyYW5zcGFyZW50KCk7IH0KLSAgICAK
KyAgICBGbG9hdEJveEV4dGVudCBib3JkZXJXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIHN1cnJvdW5k
LT5ib3JkZXIuYm9yZGVyV2lkdGgoKTsgfQorCiAgICAgZmxvYXQgYm9yZGVyQmVmb3JlV2lkdGgo
KSBjb25zdDsKICAgICBmbG9hdCBib3JkZXJBZnRlcldpZHRoKCkgY29uc3Q7CiAgICAgZmxvYXQg
Ym9yZGVyU3RhcnRXaWR0aCgpIGNvbnN0OwpAQCAtMTIwMCwxMCArMTIwMCwxMCBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzZXRQb3NpdGlvbihFUG9zaXRpb24gdikgeyBub25pbmhlcml0ZWRfZmxhZ3Mu
c2V0UG9zaXRpb24odik7IH0KICAgICB2b2lkIHNldEZsb2F0aW5nKEVGbG9hdCB2KSB7IG5vbmlu
aGVyaXRlZF9mbGFncy5zZXRGbG9hdGluZyh2KTsgfQogCi0gICAgdm9pZCBzZXRMZWZ0KExlbmd0
aCB2KSB7IFNFVF9WQVIoc3Vycm91bmQsIG9mZnNldC5tX2xlZnQsIFdURjo6bW92ZSh2KSk7IH0K
LSAgICB2b2lkIHNldFJpZ2h0KExlbmd0aCB2KSB7IFNFVF9WQVIoc3Vycm91bmQsIG9mZnNldC5t
X3JpZ2h0LCBXVEY6Om1vdmUodikpOyB9Ci0gICAgdm9pZCBzZXRUb3AoTGVuZ3RoIHYpIHsgU0VU
X1ZBUihzdXJyb3VuZCwgb2Zmc2V0Lm1fdG9wLCBXVEY6Om1vdmUodikpOyB9Ci0gICAgdm9pZCBz
ZXRCb3R0b20oTGVuZ3RoIHYpIHsgU0VUX1ZBUihzdXJyb3VuZCwgb2Zmc2V0Lm1fYm90dG9tLCBX
VEY6Om1vdmUodikpOyB9CisgICAgdm9pZCBzZXRMZWZ0KExlbmd0aCB2KSB7IFNFVF9WQVIoc3Vy
cm91bmQsIG9mZnNldC5sZWZ0KCksIFdURjo6bW92ZSh2KSk7IH0KKyAgICB2b2lkIHNldFJpZ2h0
KExlbmd0aCB2KSB7IFNFVF9WQVIoc3Vycm91bmQsIG9mZnNldC5yaWdodCgpLCBXVEY6Om1vdmUo
dikpOyB9CisgICAgdm9pZCBzZXRUb3AoTGVuZ3RoIHYpIHsgU0VUX1ZBUihzdXJyb3VuZCwgb2Zm
c2V0LnRvcCgpLCBXVEY6Om1vdmUodikpOyB9CisgICAgdm9pZCBzZXRCb3R0b20oTGVuZ3RoIHYp
IHsgU0VUX1ZBUihzdXJyb3VuZCwgb2Zmc2V0LmJvdHRvbSgpLCBXVEY6Om1vdmUodikpOyB9CiAK
ICAgICB2b2lkIHNldFdpZHRoKExlbmd0aCB2KSB7IFNFVF9WQVIobV9ib3gsIG1fd2lkdGgsIFdU
Rjo6bW92ZSh2KSk7IH0KICAgICB2b2lkIHNldEhlaWdodChMZW5ndGggdikgeyBTRVRfVkFSKG1f
Ym94LCBtX2hlaWdodCwgV1RGOjptb3ZlKHYpKTsgfQpAQCAtMTIzOSwxMCArMTIzOSwxMCBAQCBw
dWJsaWM6CiAgICAgewogICAgICAgICBTdHlsZURhc2hib2FyZFJlZ2lvbiByZWdpb247CiAgICAg
ICAgIHJlZ2lvbi5sYWJlbCA9IGxhYmVsOwotICAgICAgICByZWdpb24ub2Zmc2V0Lm1fdG9wID0g
V1RGOjptb3ZlKHQpOwotICAgICAgICByZWdpb24ub2Zmc2V0Lm1fcmlnaHQgPSBXVEY6Om1vdmUo
cik7Ci0gICAgICAgIHJlZ2lvbi5vZmZzZXQubV9ib3R0b20gPSBXVEY6Om1vdmUoYik7Ci0gICAg
ICAgIHJlZ2lvbi5vZmZzZXQubV9sZWZ0ID0gV1RGOjptb3ZlKGwpOworICAgICAgICByZWdpb24u
b2Zmc2V0LnRvcCgpID0gV1RGOjptb3ZlKHQpOworICAgICAgICByZWdpb24ub2Zmc2V0LnJpZ2h0
KCkgPSBXVEY6Om1vdmUocik7CisgICAgICAgIHJlZ2lvbi5vZmZzZXQuYm90dG9tKCkgPSBXVEY6
Om1vdmUoYik7CisgICAgICAgIHJlZ2lvbi5vZmZzZXQubGVmdCgpID0gV1RGOjptb3ZlKGwpOwog
ICAgICAgICByZWdpb24udHlwZSA9IHR5cGU7CiAgICAgICAgIGlmICghYXBwZW5kKQogICAgICAg
ICAgICAgcmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fZGFzaGJvYXJkUmVnaW9ucy5j
bGVhcigpOwpAQCAtMTMyMywxMCArMTMyMywxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRWZXJ0
aWNhbEFsaWduTGVuZ3RoKExlbmd0aCBsZW5ndGgpIHsgc2V0VmVydGljYWxBbGlnbihMRU5HVEgp
OyBTRVRfVkFSKG1fYm94LCBtX3ZlcnRpY2FsQWxpZ24sIFdURjo6bW92ZShsZW5ndGgpKTsgfQog
CiAgICAgdm9pZCBzZXRIYXNDbGlwKGJvb2wgYiA9IHRydWUpIHsgU0VUX1ZBUih2aXN1YWwsIGhh
c0NsaXAsIGIpOyB9Ci0gICAgdm9pZCBzZXRDbGlwTGVmdChMZW5ndGggbGVuZ3RoKSB7IFNFVF9W
QVIodmlzdWFsLCBjbGlwLm1fbGVmdCwgV1RGOjptb3ZlKGxlbmd0aCkpOyB9Ci0gICAgdm9pZCBz
ZXRDbGlwUmlnaHQoTGVuZ3RoIGxlbmd0aCkgeyBTRVRfVkFSKHZpc3VhbCwgY2xpcC5tX3JpZ2h0
LCBXVEY6Om1vdmUobGVuZ3RoKSk7IH0KLSAgICB2b2lkIHNldENsaXBUb3AoTGVuZ3RoIGxlbmd0
aCkgeyBTRVRfVkFSKHZpc3VhbCwgY2xpcC5tX3RvcCwgV1RGOjptb3ZlKGxlbmd0aCkpOyB9Ci0g
ICAgdm9pZCBzZXRDbGlwQm90dG9tKExlbmd0aCBsZW5ndGgpIHsgU0VUX1ZBUih2aXN1YWwsIGNs
aXAubV9ib3R0b20sIFdURjo6bW92ZShsZW5ndGgpKTsgfQorICAgIHZvaWQgc2V0Q2xpcExlZnQo
TGVuZ3RoIGxlbmd0aCkgeyBTRVRfVkFSKHZpc3VhbCwgY2xpcC5sZWZ0KCksIFdURjo6bW92ZShs
ZW5ndGgpKTsgfQorICAgIHZvaWQgc2V0Q2xpcFJpZ2h0KExlbmd0aCBsZW5ndGgpIHsgU0VUX1ZB
Uih2aXN1YWwsIGNsaXAucmlnaHQoKSwgV1RGOjptb3ZlKGxlbmd0aCkpOyB9CisgICAgdm9pZCBz
ZXRDbGlwVG9wKExlbmd0aCBsZW5ndGgpIHsgU0VUX1ZBUih2aXN1YWwsIGNsaXAudG9wKCksIFdU
Rjo6bW92ZShsZW5ndGgpKTsgfQorICAgIHZvaWQgc2V0Q2xpcEJvdHRvbShMZW5ndGggbGVuZ3Ro
KSB7IFNFVF9WQVIodmlzdWFsLCBjbGlwLmJvdHRvbSgpLCBXVEY6Om1vdmUobGVuZ3RoKSk7IH0K
ICAgICB2b2lkIHNldENsaXAoTGVuZ3RoIHRvcCwgTGVuZ3RoIHJpZ2h0LCBMZW5ndGggYm90dG9t
LCBMZW5ndGggbGVmdCk7CiAgICAgdm9pZCBzZXRDbGlwKExlbmd0aEJveCBib3gpIHsgU0VUX1ZB
Uih2aXN1YWwsIGNsaXAsIFdURjo6bW92ZShib3gpKTsgfQogCkBAIC0xNDM0LDE5ICsxNDM0LDE5
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldExpc3RTdHlsZVBvc2l0aW9uKEVMaXN0U3R5bGVQb3Np
dGlvbiB2KSB7IGluaGVyaXRlZF9mbGFncy5fbGlzdF9zdHlsZV9wb3NpdGlvbiA9IHY7IH0KIAog
ICAgIHZvaWQgcmVzZXRNYXJnaW4oKSB7IFNFVF9WQVIoc3Vycm91bmQsIG1hcmdpbiwgTGVuZ3Ro
Qm94KEZpeGVkKSk7IH0KLSAgICB2b2lkIHNldE1hcmdpblRvcChMZW5ndGggbGVuZ3RoKSB7IFNF
VF9WQVIoc3Vycm91bmQsIG1hcmdpbi5tX3RvcCwgV1RGOjptb3ZlKGxlbmd0aCkpOyB9Ci0gICAg
dm9pZCBzZXRNYXJnaW5Cb3R0b20oTGVuZ3RoIGxlbmd0aCkgeyBTRVRfVkFSKHN1cnJvdW5kLCBt
YXJnaW4ubV9ib3R0b20sIFdURjo6bW92ZShsZW5ndGgpKTsgfQotICAgIHZvaWQgc2V0TWFyZ2lu
TGVmdChMZW5ndGggbGVuZ3RoKSB7IFNFVF9WQVIoc3Vycm91bmQsIG1hcmdpbi5tX2xlZnQsIFdU
Rjo6bW92ZShsZW5ndGgpKTsgfQotICAgIHZvaWQgc2V0TWFyZ2luUmlnaHQoTGVuZ3RoIGxlbmd0
aCkgeyBTRVRfVkFSKHN1cnJvdW5kLCBtYXJnaW4ubV9yaWdodCwgV1RGOjptb3ZlKGxlbmd0aCkp
OyB9CisgICAgdm9pZCBzZXRNYXJnaW5Ub3AoTGVuZ3RoIGxlbmd0aCkgeyBTRVRfVkFSKHN1cnJv
dW5kLCBtYXJnaW4udG9wKCksIFdURjo6bW92ZShsZW5ndGgpKTsgfQorICAgIHZvaWQgc2V0TWFy
Z2luQm90dG9tKExlbmd0aCBsZW5ndGgpIHsgU0VUX1ZBUihzdXJyb3VuZCwgbWFyZ2luLmJvdHRv
bSgpLCBXVEY6Om1vdmUobGVuZ3RoKSk7IH0KKyAgICB2b2lkIHNldE1hcmdpbkxlZnQoTGVuZ3Ro
IGxlbmd0aCkgeyBTRVRfVkFSKHN1cnJvdW5kLCBtYXJnaW4ubGVmdCgpLCBXVEY6Om1vdmUobGVu
Z3RoKSk7IH0KKyAgICB2b2lkIHNldE1hcmdpblJpZ2h0KExlbmd0aCBsZW5ndGgpIHsgU0VUX1ZB
UihzdXJyb3VuZCwgbWFyZ2luLnJpZ2h0KCksIFdURjo6bW92ZShsZW5ndGgpKTsgfQogICAgIHZv
aWQgc2V0TWFyZ2luU3RhcnQoTGVuZ3RoKTsKICAgICB2b2lkIHNldE1hcmdpbkVuZChMZW5ndGgp
OwogCiAgICAgdm9pZCByZXNldFBhZGRpbmcoKSB7IFNFVF9WQVIoc3Vycm91bmQsIHBhZGRpbmcs
IExlbmd0aEJveChBdXRvKSk7IH0KICAgICB2b2lkIHNldFBhZGRpbmdCb3goTGVuZ3RoQm94IGJv
eCkgeyBTRVRfVkFSKHN1cnJvdW5kLCBwYWRkaW5nLCBXVEY6Om1vdmUoYm94KSk7IH0KLSAgICB2
b2lkIHNldFBhZGRpbmdUb3AoTGVuZ3RoIGxlbmd0aCkgeyBTRVRfVkFSKHN1cnJvdW5kLCBwYWRk
aW5nLm1fdG9wLCBXVEY6Om1vdmUobGVuZ3RoKSk7IH0KLSAgICB2b2lkIHNldFBhZGRpbmdCb3R0
b20oTGVuZ3RoIGxlbmd0aCkgeyBTRVRfVkFSKHN1cnJvdW5kLCBwYWRkaW5nLm1fYm90dG9tLCBX
VEY6Om1vdmUobGVuZ3RoKSk7IH0KLSAgICB2b2lkIHNldFBhZGRpbmdMZWZ0KExlbmd0aCBsZW5n
dGgpIHsgU0VUX1ZBUihzdXJyb3VuZCwgcGFkZGluZy5tX2xlZnQsIFdURjo6bW92ZShsZW5ndGgp
KTsgfQotICAgIHZvaWQgc2V0UGFkZGluZ1JpZ2h0KExlbmd0aCBsZW5ndGgpIHsgU0VUX1ZBUihz
dXJyb3VuZCwgcGFkZGluZy5tX3JpZ2h0LCBXVEY6Om1vdmUobGVuZ3RoKSk7IH0KKyAgICB2b2lk
IHNldFBhZGRpbmdUb3AoTGVuZ3RoIGxlbmd0aCkgeyBTRVRfVkFSKHN1cnJvdW5kLCBwYWRkaW5n
LnRvcCgpLCBXVEY6Om1vdmUobGVuZ3RoKSk7IH0KKyAgICB2b2lkIHNldFBhZGRpbmdCb3R0b20o
TGVuZ3RoIGxlbmd0aCkgeyBTRVRfVkFSKHN1cnJvdW5kLCBwYWRkaW5nLmJvdHRvbSgpLCBXVEY6
Om1vdmUobGVuZ3RoKSk7IH0KKyAgICB2b2lkIHNldFBhZGRpbmdMZWZ0KExlbmd0aCBsZW5ndGgp
IHsgU0VUX1ZBUihzdXJyb3VuZCwgcGFkZGluZy5sZWZ0KCksIFdURjo6bW92ZShsZW5ndGgpKTsg
fQorICAgIHZvaWQgc2V0UGFkZGluZ1JpZ2h0KExlbmd0aCBsZW5ndGgpIHsgU0VUX1ZBUihzdXJy
b3VuZCwgcGFkZGluZy5yaWdodCgpLCBXVEY6Om1vdmUobGVuZ3RoKSk7IH0KIAogICAgIHZvaWQg
c2V0Q3Vyc29yKEVDdXJzb3IgYykgeyBpbmhlcml0ZWRfZmxhZ3MuX2N1cnNvcl9zdHlsZSA9IGM7
IH0KICAgICB2b2lkIGFkZEN1cnNvcihQYXNzUmVmUHRyPFN0eWxlSW1hZ2U+LCBjb25zdCBJbnRQ
b2ludCYgaG90U3BvdCA9IEludFBvaW50KCkpOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTg0NjgwKQor
KysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAK
KzIwMTUtMDUtMjAgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4K
KworICAgICAgICBBbiBTVkcgd2l0aCBubyBpbnRyaW5zaWMgc2l6ZSBkb2VzIG5vdCBkcmF3IGNv
cnJlY3Qgc2xpY2VzIHdoZW4gdXNlZCBhcyBhIGJvcmRlci1pbWFnZSBmb3IgYW4gSFRNTCBlbGVt
ZW50LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5
NDA1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBm
YXN0L2JvcmRlcnMvYm9yZGVyLWltYWdlLWZpbGwtbm8taW50cmluc2ljLXNpemUtZXhwZWN0ZWQu
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ib3JkZXJzL2JvcmRlci1pbWFnZS1maWxsLW5v
LWludHJpbnNpYy1zaXplLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvYm9yZGVycy9yZXNv
dXJjZXMvc3ZnLWJvcmRlci0xMDB4MTAwLWludHJpbnNpYy5zdmc6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvYm9yZGVycy9yZXNvdXJjZXMvc3ZnLWJvcmRlci0xNDB4MTQwLWludHJpbnNpYy5zdmc6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvYm9yZGVycy9yZXNvdXJjZXMvc3ZnLWJvcmRlci1uby1p
bnRyaW5zaWMuc3ZnOiBBZGRlZC4KKyAgICAgICAgTWFrZSBzdXJlIHRoZSBzbGljZXMgb2YgdGhl
IGJvcmRlci1pbWFnZSBhcmUgZHJhd24gY29ycmVjdGx5LiBXaGVuIHVzaW5nIGFuCisgICAgICAg
IGltYWdlIHdpdGggbm8gaW50cmluc2ljIHNpemUsIGFsbCB0aGUgc2xpY2VzIGhhcyB0byBiZSBn
b3R0ZW4gZnJvbSAoMCwgMCkKKyAgICAgICAgb2YgdGhlIHNvdXJjZSBpbWFnZS4KKyAgICAgICAg
CisgICAgICAgICogVGVzdEV4cGVjdGF0aW9uczogUmVtb3ZlZCBwcmV2aW91c2x5LWZhaWxpbmcg
dGVzdC4KKwogMjAxNS0wNS0yMCAgQ2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29t
PgogCiAgICAgICAgIEFYOiBpbXByb3ZlIGxpc3QgaGV1cmlzdGljcyAocHJlc2VudGF0aW9uYWwg
dXNlIHZlcnN1cyBhY3R1YWwgbGlzdHMpCkluZGV4OiBMYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRp
b25zCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlzaW9u
IDE4NDY1NSkKKysrIExheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMJKHdvcmtpbmcgY29weSkK
QEAgLTQzMyw3ICs0MzMsNiBAQCB3ZWJraXQub3JnL2IvMTM5MjY2IGltcG9ydGVkL21vemlsbGEv
c3ZnCiB3ZWJraXQub3JnL2IvMTM5MjgyIGltcG9ydGVkL21vemlsbGEvc3ZnL2ltYWdlL2ltYWdl
LWZpbHRlci0wMS5zdmcgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xMzkzMjIg
aW1wb3J0ZWQvbW96aWxsYS9zdmcvdGV4dC9keW5hbWljLW5vbi1zY2FsaW5nLXN0cm9rZS5zdmcg
WyBJbWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xMzk0MDcgaW1wb3J0ZWQvbW96aWxs
YS9zdmcvYXMtaW1hZ2UvYm9yZGVyLWltYWdlLXNpbXBsZS0xLmh0bWwgWyBJbWFnZU9ubHlGYWls
dXJlIF0KLXdlYmtpdC5vcmcvYi8xMzk0MDUgaW1wb3J0ZWQvbW96aWxsYS9zdmcvYXMtaW1hZ2Uv
Ym9yZGVyLWltYWdlLXNpbXBsZS0yLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5v
cmcvYi8xMzk0MTIgaW1wb3J0ZWQvbW96aWxsYS9zdmcvZmlsdGVycy9zdmctZmlsdGVyLWNoYWlu
cy9jbGlwLWlucHV0LnN2ZyBbIEltYWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzEzOTQx
MiBpbXBvcnRlZC9tb3ppbGxhL3N2Zy9maWx0ZXJzL3N2Zy1maWx0ZXItY2hhaW5zL2NsaXAtb3V0
cHV0LnN2ZyBbIEltYWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzEzOTQxNCBpbXBvcnRl
ZC9tb3ppbGxhL3N2Zy9maWx0ZXJzL2ZlQ29sb3JNYXRyaXgtMS5zdmcgWyBJbWFnZU9ubHlGYWls
dXJlIF0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvYm9yZGVycy9ib3JkZXItaW1hZ2UtZmlsbC1u
by1pbnRyaW5zaWMtc2l6ZS1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvYm9yZGVycy9ib3JkZXItaW1hZ2UtZmlsbC1uby1pbnRyaW5zaWMtc2l6ZS1leHBlY3Rl
ZC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9ib3JkZXJzL2JvcmRlci1p
bWFnZS1maWxsLW5vLWludHJpbnNpYy1zaXplLWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSwzOCBAQAorPCFET0NUWVBFIEhUTUw+Cis8aGVhZD4KKyAgPHN0eWxlPgorICAg
IC5ib3ggeworICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAg
IG1hcmdpbjogMTBweDsKKyAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgIGJhY2tn
cm91bmQtY29sb3I6IHJlZDsKKyAgICB9CisgICAgLmJvcmRlciB7CisgICAgICBib3JkZXI6IDIw
cHggc29saWQ7CisgICAgfQorICAgIC5uby1ib3JkZXIgeworICAgICAgYm9yZGVyOiAwcHggbm9u
ZTsKKyAgICB9CisgICAgLmJvcmRlci1pbWFnZS0xMDAtaW50cmluc2ljIHsKKyAgICAgICBib3Jk
ZXItaW1hZ2U6IHVybCgncmVzb3VyY2VzL3N2Zy1ib3JkZXItMTAweDEwMC1pbnRyaW5zaWMuc3Zn
JykgMCBmaWxsOworICAgIH0KKyAgICAuYm9yZGVyLWltYWdlLTEwMC1pbnRyaW5zaWMtc2xpY2Ug
eworICAgICAgIGJvcmRlci1pbWFnZTogdXJsKCdyZXNvdXJjZXMvc3ZnLWJvcmRlci0xMDB4MTAw
LWludHJpbnNpYy5zdmcnKSAyMCBmaWxsOworICAgIH0KKyAgICAuYm9yZGVyLWltYWdlLTE0MC1p
bnRyaW5zaWMtc2xpY2UgeworICAgICAgIGJvcmRlci1pbWFnZTogdXJsKCdyZXNvdXJjZXMvc3Zn
LWJvcmRlci0xNDB4MTQwLWludHJpbnNpYy5zdmcnKSAyMCBmaWxsOworICAgIH0KKyAgPC9zdHls
ZT4KKzwvaGVhZD4KKzxib2R5PgorICA8ZGl2IGNsYXNzPSJib3ggbm8tYm9yZGVyIGJvcmRlci1p
bWFnZS0xMDAtaW50cmluc2ljIj48L2Rpdj4KKyAgPGRpdiBjbGFzcz0iYm94IGJvcmRlciAgICBi
b3JkZXItaW1hZ2UtMTAwLWludHJpbnNpYyI+PC9kaXY+CisgIDxkaXYgY2xhc3M9ImJveCBuby1i
b3JkZXIgYm9yZGVyLWltYWdlLTEwMC1pbnRyaW5zaWMtc2xpY2UiPjwvZGl2PgorICA8ZGl2IGNs
YXNzPSJib3ggYm9yZGVyICAgIGJvcmRlci1pbWFnZS0xMDAtaW50cmluc2ljLXNsaWNlIj48L2Rp
dj4KKyAgPGJyPgorICA8ZGl2IGNsYXNzPSJib3ggbm8tYm9yZGVyIGJvcmRlci1pbWFnZS0xMDAt
aW50cmluc2ljIj48L2Rpdj4KKyAgPGRpdiBjbGFzcz0iYm94IGJvcmRlciAgICBib3JkZXItaW1h
Z2UtMTAwLWludHJpbnNpYyI+PC9kaXY+CisgIDxkaXYgY2xhc3M9ImJveCBuby1ib3JkZXIgYm9y
ZGVyLWltYWdlLTEwMC1pbnRyaW5zaWMiPjwvZGl2PgorICA8ZGl2IGNsYXNzPSJib3ggYm9yZGVy
ICAgIGJvcmRlci1pbWFnZS0xNDAtaW50cmluc2ljLXNsaWNlIj48L2Rpdj4KKzwvYm9keT4KSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvYm9yZGVycy9ib3JkZXItaW1hZ2UtZmlsbC1uby1pbnRyaW5z
aWMtc2l6ZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYm9yZGVycy9ib3Jk
ZXItaW1hZ2UtZmlsbC1uby1pbnRyaW5zaWMtc2l6ZS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvZmFzdC9ib3JkZXJzL2JvcmRlci1pbWFnZS1maWxsLW5vLWludHJpbnNpYy1zaXpl
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0MSBAQAorPCFET0NUWVBFIEhUTUw+Cis8
aGVhZD4KKyAgPHN0eWxlPgorICAgIC5ib3ggeworICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAg
IHdpZHRoOiAxMDBweDsKKyAgICAgIG1hcmdpbjogMTBweDsKKyAgICAgIGRpc3BsYXk6IGlubGlu
ZS1ibG9jazsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKKyAgICB9CisgICAgLmJvcmRl
ciB7CisgICAgICBib3JkZXI6IDIwcHggc29saWQ7CisgICAgfQorICAgIC5uby1ib3JkZXIgewor
ICAgICAgYm9yZGVyOiAwcHggbm9uZTsKKyAgICB9CisgICAgLmJvcmRlci1pbWFnZS0xMDAtaW50
cmluc2ljIHsKKyAgICAgICBib3JkZXItaW1hZ2U6IHVybCgncmVzb3VyY2VzL3N2Zy1ib3JkZXIt
MTAweDEwMC1pbnRyaW5zaWMuc3ZnJykgMCBmaWxsOworICAgIH0KKyAgICAuYm9yZGVyLWltYWdl
LTEwMC1pbnRyaW5zaWMtc2xpY2UgeworICAgICAgIGJvcmRlci1pbWFnZTogdXJsKCdyZXNvdXJj
ZXMvc3ZnLWJvcmRlci0xMDB4MTAwLWludHJpbnNpYy5zdmcnKSAyMCBmaWxsOworICAgIH0KKyAg
ICAuYm9yZGVyLWltYWdlLW5vLWludHJpbnNpYyB7CisgICAgICAgYm9yZGVyLWltYWdlOiB1cmwo
J3Jlc291cmNlcy9zdmctYm9yZGVyLW5vLWludHJpbnNpYy5zdmcnKSAwIGZpbGw7CisgICAgfQor
ICAgIC5ib3JkZXItaW1hZ2Utbm8taW50cmluc2ljLXNsaWNlIHsKKyAgICAgICBib3JkZXItaW1h
Z2U6IHVybCgncmVzb3VyY2VzL3N2Zy1ib3JkZXItbm8taW50cmluc2ljLnN2ZycpIDIwIGZpbGw7
CisgICAgfQorICA8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisgIDxkaXYgY2xhc3M9ImJveCBu
by1ib3JkZXIgYm9yZGVyLWltYWdlLTEwMC1pbnRyaW5zaWMiPjwvZGl2PgorICA8ZGl2IGNsYXNz
PSJib3ggYm9yZGVyICAgIGJvcmRlci1pbWFnZS0xMDAtaW50cmluc2ljIj48L2Rpdj4KKyAgPGRp
diBjbGFzcz0iYm94IG5vLWJvcmRlciBib3JkZXItaW1hZ2UtMTAwLWludHJpbnNpYy1zbGljZSI+
PC9kaXY+CisgIDxkaXYgY2xhc3M9ImJveCBib3JkZXIgICAgYm9yZGVyLWltYWdlLTEwMC1pbnRy
aW5zaWMtc2xpY2UiPjwvZGl2PgorICA8YnI+CisgIDxkaXYgY2xhc3M9ImJveCBuby1ib3JkZXIg
Ym9yZGVyLWltYWdlLW5vLWludHJpbnNpYyI+PC9kaXY+CisgIDxkaXYgY2xhc3M9ImJveCBib3Jk
ZXIgICAgYm9yZGVyLWltYWdlLW5vLWludHJpbnNpYyI+PC9kaXY+CisgIDxkaXYgY2xhc3M9ImJv
eCBuby1ib3JkZXIgYm9yZGVyLWltYWdlLW5vLWludHJpbnNpYy1zbGljZSI+PC9kaXY+CisgIDxk
aXYgY2xhc3M9ImJveCBib3JkZXIgICAgYm9yZGVyLWltYWdlLW5vLWludHJpbnNpYy1zbGljZSI+
PC9kaXY+Cis8L2JvZHk+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2JvcmRlcnMvcmVzb3VyY2Vz
L3N2Zy1ib3JkZXItMTAweDEwMC1pbnRyaW5zaWMuc3ZnCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvYm9yZGVycy9yZXNvdXJjZXMvc3ZnLWJvcmRlci0xMDB4MTAwLWludHJpbnNpYy5z
dmcJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2JvcmRlcnMvcmVzb3VyY2VzL3N2
Zy1ib3JkZXItMTAweDEwMC1pbnRyaW5zaWMuc3ZnCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
NCBAQAorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEu
MSIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiPgorICA8cmVjdCB3aWR0aD0iMTAwIiBoZWlnaHQ9
IjEwMCIgZmlsbD0ibGltZSIvPgorICA8cmVjdCB4PSIxMCIgeT0iMTAiIHdpZHRoPSI4MCIgaGVp
Z2h0PSI4MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLXdpZHRoPSI0cHgiLz4K
Kzwvc3ZnPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvYm9yZGVycy9yZXNvdXJjZXMvc3ZnLWJvcmRlci0xNDB4MTQwLWludHJpbnNpYy5zdmcKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ib3JkZXJzL3Jlc291cmNlcy9zdmctYm9yZGVy
LTE0MHgxNDAtaW50cmluc2ljLnN2ZwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qv
Ym9yZGVycy9yZXNvdXJjZXMvc3ZnLWJvcmRlci0xNDB4MTQwLWludHJpbnNpYy5zdmcJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSw1MiBAQAorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2ZXJz
aW9uPSIxLjEiIHdpZHRoPSIxNDAiIGhlaWdodD0iMTQwIj4KKyAgPGRlZnM+CisgICAgPGcgaWQ9
ImJvcmRlci1pbWFnZSI+CisgICAgICA8cmVjdCB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgZmls
bD0ibGltZSIvPgorICAgICAgPHJlY3QgeD0iMTAiIHk9IjEwIiB3aWR0aD0iODAiIGhlaWdodD0i
ODAiIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIHN0cm9rZS13aWR0aD0iNHB4Ii8+CisgICAg
PC9nPgorICAgIDxjbGlwUGF0aCBpZD0idG9wLWxlZnQiPgorICAgICAgPHJlY3QgeD0iMCIgeT0i
MCIgd2lkdGg9IjIwIiBoZWlnaHQ9IjIwIi8+CisgICAgPC9jbGlwUGF0aD4KKyAgICA8Y2xpcFBh
dGggaWQ9ImxlZnQiPgorICAgICAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjIwIiBoZWlnaHQ9
IjEwMCIvPgorICAgIDwvY2xpcFBhdGg+CisgICAgPGNsaXBQYXRoIGlkPSJib3R0b20tbGVmdCI+
CisgICAgICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMjAiIGhlaWdodD0iMjAiLz4KKyAgICA8
L2NsaXBQYXRoPgorICAgIDxjbGlwUGF0aCBpZD0idG9wLXJpZ2h0Ij4KKyAgICAgIDxyZWN0IHg9
IjAiIHk9IjAiIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIvPgorICAgIDwvY2xpcFBhdGg+CisgICAg
PGNsaXBQYXRoIGlkPSJyaWdodCI+CisgICAgICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMjAi
IGhlaWdodD0iMTAwIi8+CisgICAgPC9jbGlwUGF0aD4KKyAgICA8Y2xpcFBhdGggaWQ9ImJvdHRv
bS1yaWdodCI+CisgICAgICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMjAiIGhlaWdodD0iMjAi
Lz4KKyAgICA8L2NsaXBQYXRoPgorICAgIDxjbGlwUGF0aCBpZD0idG9wIj4KKyAgICAgIDxyZWN0
IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAiIGhlaWdodD0iMjAiLz4KKyAgICA8L2NsaXBQYXRoPgor
ICAgIDxjbGlwUGF0aCBpZD0iYm90dG9tIj4KKyAgICAgIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRo
PSIxMDAiIGhlaWdodD0iMjAiLz4KKyAgICA8L2NsaXBQYXRoPgorICAgIDxjbGlwUGF0aCBpZD0i
bWlkZGxlIj4KKyAgICAgIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAw
Ii8+CisgICAgPC9jbGlwUGF0aD4KKyAgPC9kZWZzPgorICAKKyAgPCEtLSBkcmF3IGxlZnQgc2lk
ZSAtLT4KKyAgPHVzZSB4PSIwIiB5PSIwIiB4bGluazpocmVmPSIjYm9yZGVyLWltYWdlIiBjbGlw
LXBhdGg9InVybCgjdG9wLWxlZnQpIi8+CisgIDx1c2UgeD0iMCIgeT0iMjAiIHhsaW5rOmhyZWY9
IiNib3JkZXItaW1hZ2UiIGNsaXAtcGF0aD0idXJsKCNsZWZ0KSIvPgorICA8dXNlIHg9IjAiIHk9
IjEyMCIgeGxpbms6aHJlZj0iI2JvcmRlci1pbWFnZSIgY2xpcC1wYXRoPSJ1cmwoI2JvdHRvbS1s
ZWZ0KSIvPgorICAKKyAgPCEtLSBkcmF3IHJpZ2h0IHNpZGUgLS0+CisgIDx1c2UgeD0iMTIwIiB5
PSIwIiB4bGluazpocmVmPSIjYm9yZGVyLWltYWdlIiBjbGlwLXBhdGg9InVybCgjdG9wLXJpZ2h0
KSIvPgorICA8dXNlIHg9IjEyMCIgeT0iMjAiIHhsaW5rOmhyZWY9IiNib3JkZXItaW1hZ2UiIGNs
aXAtcGF0aD0idXJsKCNyaWdodCkiLz4KKyAgPHVzZSB4PSIxMjAiIHk9IjEyMCIgeGxpbms6aHJl
Zj0iI2JvcmRlci1pbWFnZSIgY2xpcC1wYXRoPSJ1cmwoI2JvdHRvbS1yaWdodCkiLz4KKyAgCisg
IDwhLS0gZHJhdyB0b3AgYW5kIGJvdHRvbSBzaWRlcyAtLT4KKyAgPHVzZSB4PSIyMCIgeT0iMCIg
eGxpbms6aHJlZj0iI2JvcmRlci1pbWFnZSIgY2xpcC1wYXRoPSJ1cmwoI3RvcCkiLz4KKyAgPHVz
ZSB4PSIyMCIgeT0iMTIwIiB4bGluazpocmVmPSIjYm9yZGVyLWltYWdlIiBjbGlwLXBhdGg9InVy
bCgjYm90dG9tKSIvPgorICAKKyAgPCEtLSBkcmF3IG1pZGRsZSAtLT4KKyAgPHVzZSB4PSIyMCIg
eT0iMjAiIHhsaW5rOmhyZWY9IiNib3JkZXItaW1hZ2UiIGNsaXAtcGF0aD0idXJsKCNtaWRkbGUp
Ii8+Cis8L3N2Zz4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2JvcmRlcnMvcmVzb3VyY2VzL3N2Zy1ib3JkZXItbm8taW50cmluc2ljLnN2Zwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2JvcmRlcnMvcmVzb3VyY2VzL3N2Zy1ib3JkZXIt
bm8taW50cmluc2ljLnN2ZwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvYm9yZGVy
cy9yZXNvdXJjZXMvc3ZnLWJvcmRlci1uby1pbnRyaW5zaWMuc3ZnCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsNCBAQAorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZl
cnNpb249IjEuMSI+CisgIDxyZWN0IHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIiBmaWxsPSJsaW1l
Ii8+CisgIDxyZWN0IHg9IjEwIiB5PSIxMCIgd2lkdGg9IjgwIiBoZWlnaHQ9IjgwIiBmaWxsPSJu
b25lIiBzdHJva2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjRweCIvPgorPC9zdmc+ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRleDogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvbW96aWxsYS9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvbW96aWxsYS9DaGFu
Z2VMb2cJKHJldmlzaW9uIDE4NDY4MCkKKysrIExheW91dFRlc3RzL2ltcG9ydGVkL21vemlsbGEv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTUtMDUtMjAgIFNh
aWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KKworICAgICAgICBBbiBT
Vkcgd2l0aCBubyBpbnRyaW5zaWMgc2l6ZSBkb2VzIG5vdCBkcmF3IGNvcnJlY3Qgc2xpY2VzIHdo
ZW4gdXNlZCBhcyBhIGJvcmRlci1pbWFnZSBmb3IgYW4gSFRNTCBlbGVtZW50LgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5NDA1CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdmcvYXMtaW1hZ2UvYm9y
ZGVyLWltYWdlLXNpbXBsZS0yLmh0bWw6IEFkZCAiYm9yZGVyOiAwcHggbm9uZTsiIHRvCisgICAg
ICAgIHN0eWxlIG9mIHRoZSA8ZGl2PiBhbHRob3VnaCB0aGUgc3R5bGUgaGFzICJib3JkZXItaW1h
Z2U6IHVybCgpIDAgZmlsbDsiLgorICAgICAgICBJZiB0aGUgYm9yZGVyIHdpZHRoIGlzIG5vdCBz
ZXQgdG8gemVybyBpbiB0aGUgc3R5bGUsIHRoZSA8ZGl2PiB3aWxsIGhhdmUKKyAgICAgICAgYSAz
cHggYm9yZGVyLiBUaGlzIHNlZW1zIHRvIGJlIGEgYnVnIGluIFdlYktpdCBidXQgc2hvdWxkIGJl
IHVucmVsYXRlZCB0bworICAgICAgICB0aGUgbm9uLWludHJpbnNpYy1zaXplZCBpbWFnZXMgd2l0
aCBib3JkZXItaW1hZ2UuCisKIDIwMTQtMTItMDkgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3Vo
YWxsYXdhQGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBvcnQgTW96aWxsYSB0ZXN0IHN1aXRlIGZv
ciBTVkcuCkluZGV4OiBMYXlvdXRUZXN0cy9pbXBvcnRlZC9tb3ppbGxhL3N2Zy9hcy1pbWFnZS9i
b3JkZXItaW1hZ2Utc2ltcGxlLTIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbXBv
cnRlZC9tb3ppbGxhL3N2Zy9hcy1pbWFnZS9ib3JkZXItaW1hZ2Utc2ltcGxlLTIuaHRtbAkocmV2
aXNpb24gMTg0NjU1KQorKysgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvbW96aWxsYS9zdmcvYXMtaW1h
Z2UvYm9yZGVyLWltYWdlLXNpbXBsZS0yLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw2
IEBACiA8aHRtbD4KIDxib2R5PgotICA8ZGl2IHN0eWxlPSJoZWlnaHQ6IDEwMHB4OyB3aWR0aDog
MTAwcHg7CisgIDxkaXYgc3R5bGU9ImhlaWdodDogMTAwcHg7IHdpZHRoOiAxMDBweDsgYm9yZGVy
OiAwcHggbm9uZTsKICAgICAgICAgICAgICAgYm9yZGVyLWltYWdlOiB1cmwoJ3Jlc291cmNlcy9s
aW1lMTAweDEwMC1ub1NWR0RpbWVuc2lvbnMuc3ZnJykgMCBmaWxsOyIvPgogPC9ib2R5PgogPC9o
dG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253497</attachid>
            <date>2015-05-20 19:30:46 -0700</date>
            <delta_ts>2015-05-20 20:18:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139405-20150520193042.patch</filename>
            <type>text/plain</type>
            <size>109457</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4NDY1NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2NyBAQAorMjAxNS0wNS0yMCAgU2FpZCBB
Ym91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIEFuIFNWRyB3
aXRoIG5vIGludHJpbnNpYyBzaXplIGRvZXMgbm90IGRyYXcgY29ycmVjdCBzbGljZXMgd2hlbiB1
c2VkIGFzIGEgYm9yZGVyLWltYWdlIGZvciBhbiBIVE1MIGVsZW1lbnQuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk0MDUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIFdoZW4gdXNpbmcgbm9u
LWludHJpbnNpYy1zaXplZCBpbWFnZSBhcyBhbiBpbWFnZS1ib3JkZXIsIGFsbCB0aGUgc291cmNl
CisgICAgICAgIHNsaWNlcyBoYXZlIHRvIGJlIGV4dHJhY3RlZCBmcm9tIHRoZSB0b3AtbGVmdCBj
b3JuZXIgb2YgdGhlIHNvdXJjZSBpbWFnZS4KKyAgICAgICAgVGhpcyBpcyBiZWNhdXNlLCB0aGUg
cmlnaHQgYW5kIGJvdHRvbSBzaWRlcyBvZiB0aGUgaW1hZ2UgY2FuIG5vdCBiZSBrbm93bi4KKyAg
ICAgICAgQWxzbyBhbGwgdGhlIHNsaWNlcyBzaG91bGQgbm90IGJlIHN0cmV0Y2hlZC4gSW4gb3Ro
ZXIgd29yZHMsIHRoZSBzaXplcyBvZgorICAgICAgICBzb3VyY2Ugc2xpY2VzIGZvciBhIG5vbi1p
bnRyaW5zaWMtc2l6ZWQgaW1hZ2Ugc2hvdWxkIGJlIGVxdWFsIHRvIHRoZSBzaXplcworICAgICAg
ICBvZiB0aGUgZGVzdGluYXRpb24gY29udGFpbmVyIHNsaWNlcy4KKworICAgICAgICBUaGlzIGlz
IG5vdCBjb21wbGlhbnQgd2l0aCB0aGUgY3NzMyBzcGVjcy4gSSB0aGluayB0aGUgc3BlY3MgbWFr
ZXMgaXQgaGFyZAorICAgICAgICB0byBwcmVkaWN0IHdoYXQgZXhhY3RseSB3aWxsIGJlIGRyYXdu
IGZvciBpbWFnZS1ib3JkZXIgaW4gdGhpcyBjYXNlLiBQbGVhc2UKKyAgICAgICAgc2VlIGh0dHA6
Ly93d3cudzMub3JnL1RSL2NzczMtYmFja2dyb3VuZC8jYm9yZGVyLWltYWdlLXNsaWNlLiBUaGlz
IHBhdGNoIGRvZXMKKyAgICAgICAgd2hhdCBGaXJlRm94IGlzIGRvaW5nIGFuZCBJIHRoaW5rIHRo
aXMgc29sdXRpb24gaXMgdGhlIG1vc3QgcHJlZGljdGFibGUgZm9yCisgICAgICAgIGltYWdlLWJv
cmRlciByZW5kZXJpbmcgaW4gdGhpcyBjYXNlLgorICAgICAgICAKKyAgICAgICAgVGVzdDogZmFz
dC9ib3JkZXJzL2JvcmRlci1pbWFnZS1maWxsLW5vLWludHJpbnNpYy1zaXplLmh0bWwKKworICAg
ICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3Jl
LnZjeHByb2o6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0
ZXJzOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9MZW5ndGhCb3guY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0xheW91dEJveEV4dGVudC5jcHA6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvTGF5b3V0Qm94RXh0ZW50Lmg6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvTGF5b3V0UmVjdC5oOgorICAgICAgICBEZWxldGUgTGVuZ3RoQm94LmNwcCBh
bmQgbW92ZSBhbGwgdGhlIGZ1bmN0aW9uYWxpdGllcyB0byBMZW5ndGhCb3guaC4KKyAgICAgICAg
RGVsZXRlIExheW91dEJveEV4dGVudC5jcHAgc2luY2UgaXQgaXMgdGhlIHNhbWUgY2xhc3MgYXMg
TGVuZ3RoQm94LgorICAgICAgICAKKyAgICAgICAgKiBjc3MvQ1NTUHJvcGVydHkuY3BwOgorICAg
ICAgICAqIHBsYXRmb3JtL3RleHQvV3JpdGluZ01vZGUuaDoKKyAgICAgICAgTW92ZSB0aGUgZW51
bXMgTG9naWNhbEJveFNpZGUgYW5kIFBoeXNpY2FsQm94U2lkZQorICAgICAgICBmcm9tIENTU1By
b3BlcnR5LmNwcCB0byBXcml0aW5nTW9kZS5oIHNvIGl0IGNhbiBiZSB1c2VkIGJ5IG90aGVyIGNs
YXNzZXMuCisgICAgICAgIAorICAgICAgICAqIGNzcy9DU1NUb1N0eWxlTWFwLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1RvU3R5bGVNYXA6Om1hcE5pbmVQaWVjZUltYWdlU2xpY2UpOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTVG9TdHlsZU1hcDo6bWFwTmluZVBpZWNlSW1hZ2VRdWFkKToKKyAg
ICAgICAgKiBjc3MvQ1NTVG9TdHlsZU1hcC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0
b3JPdmVybGF5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxkUmVuZGVyZXJIaWdobGlnaHQp
OgorICAgICAgICAqIHJlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OklubGluZUZsb3dCb3g6OmFkZEJvcmRlck91dHNldFZpc3VhbE92ZXJmbG93KToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyQm94Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6
Om1hcmdpbkxvZ2ljYWxMZWZ0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6bWFyZ2lu
TG9naWNhbFJpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6c2V0TWFyZ2luQmVm
b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6c2V0TWFyZ2luQWZ0ZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpzZXRNYXJnaW5TdGFydCk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJCb3g6OnNldE1hcmdpbkVuZCk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpzZXRDbGlw
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpub25lRGFzaGJvYXJkUmVnaW9ucyk6
CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6CisgICAgICAgIFVzZSB0
aGUgbmV3IEJveEV4dGVudCBhY2Nlc3MgbWV0aG9kcyBmb3IgZ2V0dGluZyBhbmQgc2V0dGluZ3Mg
dGhlIHNpZGVzIG9mCisgICAgICAgIExlbmd0aEJveCBhbmQgTGF5b3V0Qm94RXh0ZW50LgorICAg
ICAgICAKKyAgICAgICAgKiBwbGF0Zm9ybS9MZW5ndGhCb3guaDoKKyAgICAgICAgKFdlYkNvcmU6
OkJveEV4dGVudDo6Qm94RXh0ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkJveEV4dGVudDo6YXQp
OgorICAgICAgICAoV2ViQ29yZTo6Qm94RXh0ZW50Ojp0b3ApOgorICAgICAgICAoV2ViQ29yZTo6
Qm94RXh0ZW50OjpyaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpCb3hFeHRlbnQ6OmJvdHRvbSk6
CisgICAgICAgIChXZWJDb3JlOjpCb3hFeHRlbnQ6OmxlZnQpOgorICAgICAgICAoV2ViQ29yZTo6
Qm94RXh0ZW50OjpzZXRBdCk6CisgICAgICAgIChXZWJDb3JlOjpCb3hFeHRlbnQ6OnNldFRvcCk6
CisgICAgICAgIChXZWJDb3JlOjpCb3hFeHRlbnQ6OnNldFJpZ2h0KToKKyAgICAgICAgKFdlYkNv
cmU6OkJveEV4dGVudDo6c2V0Qm90dG9tKToKKyAgICAgICAgKFdlYkNvcmU6OkJveEV4dGVudDo6
c2V0TGVmdCk6CisgICAgICAgIChXZWJDb3JlOjpCb3hFeHRlbnQ6OmJlZm9yZSk6CisgICAgICAg
IChXZWJDb3JlOjpCb3hFeHRlbnQ6OmVuZCk6CisgICAgICAgIChXZWJDb3JlOjpCb3hFeHRlbnQ6
OmFmdGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkJveEV4dGVudDo6c3RhcnQpOgorICAgICAgICAo
V2ViQ29yZTo6Qm94RXh0ZW50OjpzZXRCZWZvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Qm94RXh0
ZW50OjpzZXRFbmQpOgorICAgICAgICAoV2ViQ29yZTo6Qm94RXh0ZW50OjpzZXRBZnRlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpCb3hFeHRlbnQ6OnNldFN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6
OkJveEV4dGVudDo6b3BlcmF0b3I9PSk6CisgICAgICAgIChXZWJDb3JlOjpCb3hFeHRlbnQ6Om9w
ZXJhdG9yIT0pOgorICAgICAgICAoV2ViQ29yZTo6TGVuZ3RoQm94OjpMZW5ndGhCb3gpOgorICAg
ICAgICAoV2ViQ29yZTo6TGVuZ3RoQm94Ojppc1plcm8pOgorICAgICAgICAoV2ViQ29yZTo6TGVu
Z3RoQm94OjpsZWZ0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okxlbmd0aEJveDo6cmln
aHQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGVuZ3RoQm94Ojp0b3ApOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6TGVuZ3RoQm94Ojpib3R0b20pOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6TGVuZ3RoQm94OjpvcGVyYXRvcj09KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6Okxlbmd0aEJveDo6b3BlcmF0b3IhPSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpMZW5ndGhCb3g6Om5vblplcm8pOiBEZWxldGVkLgorICAgICAgICBEZWZpbmUgYSBuZXcgdGVt
cGxhdGUgY2xhc3MgZm9yICdCb3hFeHRlbnQnLiBBICdCb3hFeHRlbnQnIHJlcHJlc2VudHMgdGhl
CisgICAgICAgIGV4dGVudCBvZiBmb3VyIHNpZGVzIG9mIGEgYm94LiBVc2UgdGhpcyBjbGFzcyB0
ZW1wbGF0ZSB0byBkZWZpbmUgdGhlIGV4aXRpbmcgCisgICAgICAgIGNsYXNzZXMgJ0xlbmd0aEJv
eCcgYW5kICdMYXlvdXRCb3hFeHRlbnQnLiBVc2UgaXQgYWxzbyB0byBhbmQgZGVmaW5lIHRoZQor
ICAgICAgICBuZXcgY2xhc3MgRmxvYXRCb3hFeHRlbnQKKyAgICAgICAgICAgIAorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJCb3hNb2RlbE9iamVjdDo6Y2FsY3VsYXRlSW1hZ2VJbnRyaW5zaWNEaW1lbnNpb25zKToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckJveE1vZGVsT2JqZWN0OjpjYWxjdWxhdGVGaWxsVGlsZVNpemUpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckxpc3RNYXJrZXI6OnVwZGF0ZUNvbnRlbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9z
aGFwZXMvU2hhcGVPdXRzaWRlSW5mby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFwZU91dHNp
ZGVJbmZvOjpjcmVhdGVTaGFwZUZvckltYWdlKToKKyAgICAgICAgQ2hhbmdlIHRoZSByZXR1cm4g
dmFsdWUgb2YgY2FsY3VsYXRlSW1hZ2VJbnRyaW5zaWNEaW1lbnNpb25zKCkgdG8gYmUgYQorICAg
ICAgICBib29sIHdoaWNoIGluZGljYXRlcyB3aGV0aGVyIHRoZSBpbWFnZSBoYXMgYW4gaW50cmlu
c2ljIHNpemUgb3Igbm90LiBBZGQKKyAgICAgICAgYSBuZXcgcmVmZXJlbmNlIGFyZ3VtZW50IHRv
IHRoaXMgZnVuY3Rpb24gcmVjZWl2ZSB0aGUgcmVzb2x2ZWQgaW1hZ2Ugc2l6ZS4KKyAgICAgICAg
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnROaW5lUGllY2VJ
bWFnZSk6IE1vdmUgYWxsIHRoZSBwYWludGluZworICAgICAgICBjb2RlIG9mIHRoaXMgZnVuY3Rp
b24gdG8gTmluZVBpZWNlSW1hZ2U6OnBhaW50KCkKKyAgICAgICAgCisgICAgICAgIChXZWJDb3Jl
Ojpjb21wdXRlQm9yZGVySW1hZ2VTaWRlKTogRGVsZXRlZC4KKyAgICAgICAgUmVuYW1lZCB0byBi
ZSBOaW5lUGllY2VJbWFnZTo6Y29tcHV0ZVNsaWNlKCkuCisgICAgICAgIAorICAgICAgICAqIHJl
bmRlcmluZy9zdHlsZS9Cb3JkZXJEYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpCb3JkZXJEYXRh
Ojpib3JkZXJXaWR0aCk6IEFkZCBhIG5ldyBtZXRob2QgdG8gcmV0dXJuIHRoZSBleHRlbnRzCisg
ICAgICAgIG9mIHRoZSBib3JkZXIgaW4gYSBGbG9hdEJveEV4dGVudC4KKyAgICAgICAgCisgICAg
ICAgICogcmVuZGVyaW5nL3N0eWxlL05pbmVQaWVjZUltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok5pbmVQaWVjZUltYWdlOjpjb21wdXRlU2xpY2UpOiBNb3ZlZCBmcm9tIE5pbmVQaWVjZUlt
YWdlOjpjb21wdXRlU2xpY2UoKS4KKyAgICAgICAgCisgICAgICAgIChXZWJDb3JlOjpOaW5lUGll
Y2VJbWFnZTo6Y29tcHV0ZVNsaWNlcyk6IFRoZSBmaXJzdCB2ZXJzaW9uIG9mIHRoaXMgZnVuY3Rp
b24KKyAgICAgICAgY29tcHV0ZXMgdGhlIHNsaWNlcyBnaXZlbiB0aGVpciBsZW5ndGhzLiBUaGUg
c2xpY2VzIGhhdmUgdG8gYmUgY2xhbXBlZCB0bworICAgICAgICB0aGUgY29udGFpbmVyIHNpemUu
IFRoZSBzZWNvbmQgdmVyc2lvbiBvZiB0aGlzIGZ1bmN0aW9uIGNvbXB1dGVzIHRoZSBzbGljZXMK
KyAgICAgICAgZ2l2ZW4gdGhlaXIgbGVuZ3RocywgdGhlaXIgYWN0dWFsIGV4dGVudHMgYW5kIHRo
ZWlyIHNvdXJjZSBzbGljZXMuCisgICAgICAgIAorICAgICAgICAoV2ViQ29yZTo6TmluZVBpZWNl
SW1hZ2U6OnNjYWxlU2xpY2VzSWZOZWVkZWQpOiAgUmVkdWNlIHRoZSBzbGljZXMgaWYgdGhleQor
ICAgICAgICBhcmUgdG9vIGxhcmdlLgorICAgICAgICAKKyAgICAgICAgKFdlYkNvcmU6Ok5pbmVQ
aWVjZUltYWdlOjppc0VtcHR5UGllY2VSZWN0KTogUmV0dXJucyB0cnVlIGlmIGFuIEltYWdlUGll
Y2UKKyAgICAgICAgc2hvdWxkIG5vdCBiZSBkcmF3bi4KKyAgICAgICAgCisgICAgICAgIChXZWJD
b3JlOjpOaW5lUGllY2VJbWFnZTo6aG9yaXpvbnRhbFRpbGVSdWxlcyk6CisgICAgICAgIChXZWJD
b3JlOjpOaW5lUGllY2VJbWFnZTo6dmVydGljYWxUaWxlUnVsZXMpOgorICAgICAgICBGaWxsIHZl
Y3RvcnMgb2YgdGlsaW5nIHJ1bGVzIHRvIGJlIHBhc3NlZCB0byBHcmFwaGljc0NvbnRleHQ6OmRy
YXdUaWxlZEltYWdlKCkKKyAgICAgICAgCisgICAgICAgIChXZWJDb3JlOjpOaW5lUGllY2VJbWFn
ZTo6Y29tcHV0ZUludHJpbnNpY1JlY3RzKTogQ29tcHV0ZXMgdGhlIG5pbmUgcGllY2VzCisgICAg
ICAgIHJlY3RhbmdsZXMgZm9yIGFuIGludHJpbnNpYy1zaXplZCBjb250YWluZXIuCisgICAgICAg
IAorICAgICAgICAoV2ViQ29yZTo6TmluZVBpZWNlSW1hZ2U6OmNvbXB1dGVOb25JbnRyaW5zaWNS
ZWN0cyk6IENvbXB1dGVzIHRoZSBuaW5lCisgICAgICAgIHBpZWNlcyByZWN0YW5nbGVzIGZvciBh
biBub24taW50cmluc2ljLXNpemVkIHNvdXJjZSBpbWFnZS4gVGhlIGNvbXB1dGVkCisgICAgICAg
IHJlY3RhbmdsZXMgaGF2ZSB0byBzdGFydCBhdCAoMCwgMCkgYW5kIHRoZWlyIHNpemVzIHNob3Vs
ZCBiZSBlcXVhbCB0bworICAgICAgICB0aGUgc2l6ZXMgb2YgdGhlIG5pbmUgcGllY2VzIHJlY3Rh
bmdsZXMgb2YgdGhlIGRlc3RpbmF0aW9uIGNvbnRhaW5lci4KKyAgICAgICAgCisgICAgICAgIChX
ZWJDb3JlOjpOaW5lUGllY2VJbWFnZTo6Y29tcHV0ZUludHJpbnNpY1NpZGVUaWxlU2NhbGUpOgor
ICAgICAgICAoV2ViQ29yZTo6TmluZVBpZWNlSW1hZ2U6OmNvbXB1dGVJbnRyaW5zaWNNaWRkbGVU
aWxlU2NhbGUpOgorICAgICAgICAoV2ViQ29yZTo6TmluZVBpZWNlSW1hZ2U6OmNvbXB1dGVJbnRy
aW5zaWNUaWxlU2NhbGVzKToKKyAgICAgICAgKFdlYkNvcmU6Ok5pbmVQaWVjZUltYWdlOjpjb21w
dXRlTm9uSW50cmluc2ljVGlsZVNjYWxlcyk6CisgICAgICAgIENvbXB1dGVzIHRoZSBzY2FsaW5n
IGZhY3RvcnMgZm9yIGRyYXdpbmcgdGhlIHRpbGVzLiBGb3Igbm9uLWludHJpbnNpYyBzb3VyY2UK
KyAgICAgICAgaW1hZ2VzLCB0aGVyZSBzaG91bGQgbm90IGJlIGFueSBzY2FsaW5nIGZhY3RvcnMu
IAorICAgICAgICAKKyAgICAgICAgKFdlYkNvcmU6Ok5pbmVQaWVjZUltYWdlOjpwYWludCk6IE1v
dmVkIGZyb20gUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50TmluZVBpZWNlSW1hZ2UoKQorICAg
ICAgICBidXQgc2ltcGxpZmllZCBhbmQgcmVzdHJ1Y3R1cmVkLgorICAgICAgICAKKyAgICAgICAg
KFdlYkNvcmU6Ok5pbmVQaWVjZUltYWdlRGF0YTo6TmluZVBpZWNlSW1hZ2VEYXRhKTogVXNlIG51
bGxwdHIgaW5zdGVhZCBvZiAwLgorICAgICAgICAKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUv
TmluZVBpZWNlSW1hZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yKyspOgorICAgICAg
ICAoV2ViQ29yZTo6aXNDb3JuZXJQaWVjZSk6IAorICAgICAgICAoV2ViQ29yZTo6aXNNaWRkbGVQ
aWVjZSk6CisgICAgICAgIChXZWJDb3JlOjppbWFnZVBpZWNlSG9yaXpvbnRhbFNpZGUpOgorICAg
ICAgICAoV2ViQ29yZTo6aW1hZ2VQaWVjZVZlcnRpY2FsU2lkZSk6CisgICAgICAgIEFkZCBoZWxw
ZXIgZnVuY3Rpb25zIGZvciB0aGUgZW51bSBJbWFnZVBpZWNlLgorCiAyMDE1LTA1LTIwICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBhIG1lY2hh
bmlzbSB0byBvcHQtb3V0IG9mIHRoZSBhdXRvbWF0aWMgc2NhbGluZyBhcHBsaWVkIHRvIG5vdC1y
ZWFsbHktcmVzcG9uc2l2ZSBzaXRlcwpJbmRleDogU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9u
IDE4NDY1NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkp
CkBAIC0yMDQ0LDcgKzIwNDQsNiBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0v
S2lsbFJpbmdOb25lLmNwcAogICAgIHBsYXRmb3JtL0xhbmd1YWdlLmNwcAogICAgIHBsYXRmb3Jt
L0xlbmd0aC5jcHAKLSAgICBwbGF0Zm9ybS9MZW5ndGhCb3guY3BwCiAgICAgcGxhdGZvcm0vTGlu
a0hhc2guY3BwCiAgICAgcGxhdGZvcm0vTG9nZ2luZy5jcHAKICAgICBwbGF0Zm9ybS9NSU1FVHlw
ZVJlZ2lzdHJ5LmNwcApAQCAtMjE1MSw3ICsyMTUwLDYgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwog
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ludFJlY3QuY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
SW50U2l6ZS5jcHAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9JU09WVFRDdWUuY3BwCi0gICAgcGxh
dGZvcm0vZ3JhcGhpY3MvTGF5b3V0Qm94RXh0ZW50LmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNz
L0xheW91dFJlY3QuY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvTWFza0ltYWdlT3BlcmF0aW9u
LmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApJbmRleDogU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvago9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCShyZXZpc2lvbiAx
ODQ2NTUpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9q
CSh3b3JraW5nIGNvcHkpCkBAIC03OTk2LDcgKzc5OTYsNiBAQAogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5ccGxhdGZvcm1cVVJMLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
XHBsYXRmb3JtXExhbmd1YWdlLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBs
YXRmb3JtXExlbmd0aC5jcHAiIC8+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9y
bVxMZW5ndGhCb3guY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1c
TGlua0hhc2guY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cTG9j
YWxpemVkU3RyaW5ncy5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9y
bVxMb2dnaW5nLmNwcCIgLz4KQEAgLTgyMTUsNyArODIxNCw2IEBACiAgICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xJbnRQb2ludC5jcHAiIC8+CiAgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xJbnRSZWN0LmNwcCIgLz4KICAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXEludFNpemUuY3BwIiAvPgot
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcTGF5b3V0Qm94RXh0
ZW50LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNz
XExheW91dFJlY3QuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1c
Z3JhcGhpY3NcTWVkaWFQbGF5ZXIuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
cGxhdGZvcm1cZ3JhcGhpY3NcUGF0aC5jcHAiIC8+CkBAIC0yMDAxMSw3ICsyMDAwOSw2IEBACiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xJbnRTaXplLmgiIC8+
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xJbnRTaXplSGFz
aC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcSVNP
VlRUQ3VlLmgiIC8+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGlj
c1xMYXlvdXRCb3hFeHRlbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBsYXRm
b3JtXGdyYXBoaWNzXExheW91dFBvaW50LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxwbGF0Zm9ybVxncmFwaGljc1xMYXlvdXRSZWN0LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xMYXlvdXRTaXplLmgiIC8+CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0
ZXJzCShyZXZpc2lvbiAxODQ2NTUpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ov
V2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMJKHdvcmtpbmcgY29weSkKQEAgLTExMTMsOSArMTExMyw2
IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxMZW5ndGguY3BwIj4KICAg
ICAgIDxGaWx0ZXI+cGxhdGZvcm08L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXExlbmd0aEJveC5jcHAiPgotICAgICAgPEZpbHRl
cj5wbGF0Zm9ybTwvRmlsdGVyPgotICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5ccGxhdGZvcm1cTGlua0hhc2guY3BwIj4KICAgICAgIDxGaWx0ZXI+cGxhdGZvcm08
L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTEzNzEsOSArMTM2OCw2IEBACiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xJbnRTaXplLmNwcCI+CiAgICAg
ICA8RmlsdGVyPnBsYXRmb3JtXGdyYXBoaWNzPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+Ci0g
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xMYXlvdXRCb3hFeHRl
bnQuY3BwIj4KLSAgICAgIDxGaWx0ZXI+cGxhdGZvcm1cZ3JhcGhpY3M8L0ZpbHRlcj4KLSAgICA8
L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNz
XExheW91dFJlY3QuY3BwIj4KICAgICAgIDxGaWx0ZXI+cGxhdGZvcm1cZ3JhcGhpY3M8L0ZpbHRl
cj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTg0OTYsOSArODQ5MCw2IEBACiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xJbnRTaXplSGFzaC5oIj4KICAgICAgIDxG
aWx0ZXI+cGxhdGZvcm1cZ3JhcGhpY3M8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KLSAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXExheW91dEJveEV4dGVudC5o
Ij4KLSAgICAgIDxGaWx0ZXI+cGxhdGZvcm1cZ3JhcGhpY3M8L0ZpbHRlcj4KLSAgICA8L0NsSW5j
bHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXExheW91
dFBvaW50LmgiPgogICAgICAgPEZpbHRlcj5wbGF0Zm9ybVxncmFwaGljczwvRmlsdGVyPgogICAg
IDwvQ2xJbmNsdWRlPgpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTg0NjU1KQorKysgU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC01OTAs
OCArNTkwLDYgQEAKIAkJMTQxMTVCNzMwOUY4NENENjAwQ0E0RkMxIC8qIEpTTm9kZUZpbHRlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQxMTVCNzEw
OUY4NENENjAwQ0E0RkMxIC8qIEpTTm9kZUZpbHRlci5oICovOyB9OwogCQkxNDExRENCMTE2NEMz
OUE4MDBENDlCQzEgLyogV2lkdGhDYWNoZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMTQxMURDQjAxNjRDMzlBODAwRDQ5QkMxIC8qIFdpZHRoQ2FjaGUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxNDFE
QzA0ODE2NDgzNDhGMDAzNzFFNUEgLyogTGF5b3V0VW5pdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQxREMwNDcxNjQ4MzQ4RjAwMzcxRTVBIC8qIExh
eW91dFVuaXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwotCQkxNDFEQzA0RjE2NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0Qm94RXh0ZW50LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0MURDMDQ5MTY0ODM0
QjkwMDM3MUU1QSAvKiBMYXlvdXRCb3hFeHRlbnQuY3BwICovOyB9OwotCQkxNDFEQzA1MDE2NDgz
NEI5MDAzNzFFNUEgLyogTGF5b3V0Qm94RXh0ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDFEQzA0QTE2NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0
Qm94RXh0ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJMTQxREMwNTExNjQ4MzRCOTAwMzcxRTVBIC8qIExheW91dFBvaW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDFEQzA0QjE2NDgzNEI5MDAz
NzFFNUEgLyogTGF5b3V0UG9pbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQkxNDFEQzA1MjE2NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0UmVjdC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDFEQzA0
QzE2NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0UmVjdC5jcHAgKi87IH07CiAJCTE0MURDMDUzMTY0
ODM0QjkwMDM3MUU1QSAvKiBMYXlvdXRSZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxNDFEQzA0RDE2NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0UmVj
dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC02
MDUsNyArNjAzLDYgQEAKIAkJMTQ0NzZBQTgxNURDNEJCMTAwMzA1REIyIC8qIFdyaXRpbmdNb2Rl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDQ3NkFB
NzE1REM0QkIxMDAzMDVEQjIgLyogV3JpdGluZ01vZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxNDQ5RTI0QzEwN0Q0QTg0MDBCNTc5M0YgLyog
SlNDYWxsYmFja0RhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDE0NDlFMjRBMTA3RDRBODQwMEI1NzkzRiAvKiBKU0NhbGxiYWNrRGF0YS5oICovOyB9
OwogCQkxNDQ5RTI4NzEwN0Q0REI0MDBCNTc5M0YgLyogSlNDYWxsYmFja0RhdGEuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ0OUUyODYxMDdENERC
NDAwQjU3OTNGIC8qIEpTQ2FsbGJhY2tEYXRhLmNwcCAqLzsgfTsKLQkJMTQ2Q0MxMTUxNTY5ODhF
NDAwMTA5RTM3IC8qIExlbmd0aEJveC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxNDZDQzExMzE1Njk4OEJEMDAxMDlFMzcgLyogTGVuZ3RoQm94LmNw
cCAqLzsgfTsKIAkJMTQ3N0U3NzYwQkY0MTM0QTAwMTUyODcyIC8qIFBhZ2VDYWNoZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDc3RTc3NDBCRjQx
MzRBMDAxNTI4NzIgLyogUGFnZUNhY2hlLmNwcCAqLzsgfTsKIAkJMTQ3N0U3NzcwQkY0MTM0QTAw
MTUyODcyIC8qIFBhZ2VDYWNoZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMTQ3N0U3NzUwQkY0MTM0QTAwMTUyODcyIC8qIFBhZ2VDYWNoZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTE0NzlGQUVEMTA5
QUUzNzUwMERFRDY1NSAvKiBSZW5kZXJSdWJ5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0NzlGQUU1MTA5QUUzNzUwMERFRDY1NSAvKiBSZW5kZXJS
dWJ5LmNwcCAqLzsgfTsKQEAgLTc2NjQsOCArNzY2MSw2IEBACiAJCTE0MUI5NEU1MDlFQzQyMjMw
MDBFOTQxMyAvKiBNb3VzZUV2ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTW91c2VF
dmVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0MUI5NEVFMDlFQzQyNUEw
MDBFOTQxMyAvKiBVSUV2ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gVUlFdmVudC5p
ZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0MURDMDQ3MTY0ODM0OEYwMDM3MUU1
QSAvKiBMYXlvdXRVbml0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExheW91
dFVuaXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMTQxREMwNDkxNjQ4MzRCOTAw
MzcxRTVBIC8qIExheW91dEJveEV4dGVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBMYXlvdXRCb3hFeHRlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQkxNDFEQzA0QTE2NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0Qm94RXh0ZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExheW91dEJveEV4dGVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkxNDFEQzA0QjE2NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0UG9p
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGF5b3V0UG9pbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQxREMwNEMxNjQ4MzRCOTAwMzcxRTVBIC8qIExh
eW91dFJlY3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGF5b3V0
UmVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0MURDMDREMTY0ODM0Qjkw
MDM3MUU1QSAvKiBMYXlvdXRSZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IExheW91dFJlY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTc2ODAsNyArNzY3
NSw2IEBACiAJCTE0NDc2QUE3MTVEQzRCQjEwMDMwNURCMiAvKiBXcml0aW5nTW9kZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXcml0aW5nTW9kZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkxNDQ5RTI0QTEwN0Q0QTg0MDBCNTc5M0YgLyogSlNDYWxsYmFja0Rh
dGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDYWxsYmFja0RhdGEuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQ0OUUyODYxMDdENERCNDAwQjU3OTNGIC8q
IEpTQ2FsbGJhY2tEYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTQ2FsbGJhY2tEYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMTQ2Q0Mx
MTMxNTY5ODhCRDAwMTA5RTM3IC8qIExlbmd0aEJveC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBMZW5ndGhCb3guY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkxNDc3RTc3NDBCRjQxMzRBMDAxNTI4NzIgLyogUGFnZUNhY2hlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYWdlQ2FjaGUuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkxNDc3RTc3NTBCRjQxMzRBMDAxNTI4NzIgLyogUGFnZUNhY2hlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYWdlQ2FjaGUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQ3OUZBRTUxMDlBRTM3NTAwREVENjU1IC8qIFJlbmRlclJ1
YnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyUnVieS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMDg3OCw4ICsyMDg3Miw2IEBACiAJ
CQkJMDdBQzQ2RkYxOTUyMTAyMTAwRUU5NzIzIC8qIElTT1ZUVEN1ZS5jcHAgKi8sCiAJCQkJMDdB
QzQ3MDAxOTUyMTAyMTAwRUU5NzIzIC8qIElTT1ZUVEN1ZS5oICovLAogCQkJCTY1Q0M2QkVEMTYw
MTRFQzAwMDBFRDI3RCAvKiBMYXRpbjFUZXh0SXRlcmF0b3IuaCAqLywKLQkJCQkxNDFEQzA0OTE2
NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0Qm94RXh0ZW50LmNwcCAqLywKLQkJCQkxNDFEQzA0QTE2
NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0Qm94RXh0ZW50LmggKi8sCiAJCQkJMTQxREMwNEIxNjQ4
MzRCOTAwMzcxRTVBIC8qIExheW91dFBvaW50LmggKi8sCiAJCQkJMTQxREMwNEMxNjQ4MzRCOTAw
MzcxRTVBIC8qIExheW91dFJlY3QuY3BwICovLAogCQkJCTE0MURDMDREMTY0ODM0QjkwMDM3MUU1
QSAvKiBMYXlvdXRSZWN0LmggKi8sCkBAIC0yMTc2NCw3ICsyMTc1Niw2IEBACiAJCQkJMTQxREMw
NDcxNjQ4MzQ4RjAwMzcxRTVBIC8qIExheW91dFVuaXQuaCAqLywKIAkJCQlCQ0U2NUJFODBFQUNE
RjE2MDA3RTQ1MzMgLyogTGVuZ3RoLmNwcCAqLywKIAkJCQlCQ0U2NUJFOTBFQUNERjE2MDA3RTQ1
MzMgLyogTGVuZ3RoLmggKi8sCi0JCQkJMTQ2Q0MxMTMxNTY5ODhCRDAwMTA5RTM3IC8qIExlbmd0
aEJveC5jcHAgKi8sCiAJCQkJQkNGRjY0OEYwRUFEMTVDMjAwQzFENkY3IC8qIExlbmd0aEJveC5o
ICovLAogCQkJCUJDRkY2NDkwMEVBRDE1QzIwMEMxRDZGNyAvKiBMZW5ndGhTaXplLmggKi8sCiAJ
CQkJQTdBRDJGODUwRUM4OUQwNzAwOEFCMDAyIC8qIExpbmtIYXNoLmNwcCAqLywKQEAgLTI1NzA0
LDcgKzI1Njk1LDYgQEAKIAkJCQlFNDkxNkZGNzE5NURGNkEwMDA1QUIzNDkgLyogTGF5ZXJGbHVz
aFRocm90dGxlU3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTU4MDM3MTY0MUE2NkYxRDMwMEJB
RjUxOSAvKiBMYXllckZyYWdtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUEzQTZBMDE5NEI1
OUI2MDAxQ0JEMjQgLyogTGF5ZXJQb29sLmggaW4gSGVhZGVycyAqLywKLQkJCQkxNDFEQzA1MDE2
NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0Qm94RXh0ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk5
MzFENzJGNjE1RkU2OTUzMDBDNEMwN0UgLyogTGF5b3V0TWlsZXN0b25lcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMTQxREMwNTExNjQ4MzRCOTAwMzcxRTVBIC8qIExheW91dFBvaW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQkxNDFEQzA1MzE2NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0UmVjdC5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0yOTMwMCw3ICsyOTI5MCw2IEBACiAJCQkJMjkxN0I1NjExNDczNDk2
QzAwNTJDOUQwIC8qIExheWVyRmx1c2hTY2hlZHVsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MjkxN0I1NjYxNDczNDk5NTAwNTJDOUQwIC8qIExheWVyRmx1c2hTY2hlZHVsZXJNYWMuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJN0FBM0E2OUYxOTRCNTlCNjAwMUNCRDI0IC8qIExheWVyUG9vbC5j
cHAgaW4gU291cmNlcyAqLywKLQkJCQkxNDFEQzA0RjE2NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0
Qm94RXh0ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0MURDMDUyMTY0ODM0QjkwMDM3MUU1
QSAvKiBMYXlvdXRSZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUExMjBBQ0E0MTNGOTk4Q0Ew
MEZFNEFDNyAvKiBMYXlvdXRSZXBhaW50ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5MDY2
MDYwQkUxNDFENDAwOTU2OTk4IC8qIExheW91dFN0YXRlLmNwcCBpbiBTb3VyY2VzICovLApAQCAt
MjkzMTIsNyArMjkzMDEsNiBAQAogCQkJCTUxMkREOEY0MEQ5MUU2QUYwMDBGODlFRSAvKiBMZWdh
Y3lXZWJBcmNoaXZlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxQjI0MTdCMEQ5MzFGM0YwMEU4
M0Y1QyAvKiBMZWdhY3lXZWJBcmNoaXZlTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNFNjVC
RUEwRUFDREYxNjAwN0U0NTMzIC8qIExlbmd0aC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkxNDZD
QzExNTE1Njk4OEU0MDAxMDlFMzcgLyogTGVuZ3RoQm94LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUU1NUY0OTdBMTUxQjg4ODAwMEJCNjdEQiAvKiBMZW5ndGhGdW5jdGlvbnMuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJRkZCNjk4Q0MxODMzRUUwRDAwMTU4QTMxIC8qIExpbmVCcmVha2VyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTg5QjVFQUExMTFFODAwM0QwMEYyMzY3RSAvKiBMaW5lRW5kaW5n
LmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHkuY3BwCShy
ZXZpc2lvbiAxODQ2NTUpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHkuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC01NCw5ICs1NCw2IEBAIHZvaWQgQ1NTUHJvcGVydHk6OndyYXBWYWx1
ZUluQ29tbWFTZXBhcmEKICAgICBtX3ZhbHVlID0gV1RGOjptb3ZlKGxpc3QpOwogfQogCi1lbnVt
IExvZ2ljYWxCb3hTaWRlIHsgQmVmb3JlU2lkZSwgRW5kU2lkZSwgQWZ0ZXJTaWRlLCBTdGFydFNp
ZGUgfTsKLWVudW0gUGh5c2ljYWxCb3hTaWRlIHsgVG9wU2lkZSwgUmlnaHRTaWRlLCBCb3R0b21T
aWRlLCBMZWZ0U2lkZSB9OwotCiBzdGF0aWMgQ1NTUHJvcGVydHlJRCByZXNvbHZlVG9QaHlzaWNh
bFByb3BlcnR5KFRleHREaXJlY3Rpb24gZGlyZWN0aW9uLCBXcml0aW5nTW9kZSB3cml0aW5nTW9k
ZSwgTG9naWNhbEJveFNpZGUgbG9naWNhbFNpZGUsIGNvbnN0IFN0eWxlUHJvcGVydHlTaG9ydGhh
bmQmIHNob3J0aGFuZCkKIHsKICAgICBpZiAoZGlyZWN0aW9uID09IExUUikgewpJbmRleDogU291
cmNlL1dlYkNvcmUvY3NzL0NTU1RvU3R5bGVNYXAuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NUb1N0eWxlTWFwLmNwcAkocmV2aXNpb24gMTg0NjU1KQorKysgU291cmNl
L1dlYkNvcmUvY3NzL0NTU1RvU3R5bGVNYXAuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MTgsMjEg
KzYxOCwyMSBAQCB2b2lkIENTU1RvU3R5bGVNYXA6Om1hcE5pbmVQaWVjZUltYWdlU2xpCiAgICAg
TGVuZ3RoQm94IGJveDsKICAgICBRdWFkKiBzbGljZXMgPSBib3JkZXJJbWFnZVNsaWNlLnNsaWNl
cygpOwogICAgIGlmIChzbGljZXMtPnRvcCgpLT5pc1BlcmNlbnRhZ2UoKSkKLSAgICAgICAgYm94
Lm1fdG9wID0gTGVuZ3RoKHNsaWNlcy0+dG9wKCktPmdldERvdWJsZVZhbHVlKCksIFBlcmNlbnQp
OworICAgICAgICBib3gudG9wKCkgPSBMZW5ndGgoc2xpY2VzLT50b3AoKS0+Z2V0RG91YmxlVmFs
dWUoKSwgUGVyY2VudCk7CiAgICAgZWxzZQotICAgICAgICBib3gubV90b3AgPSBMZW5ndGgoc2xp
Y2VzLT50b3AoKS0+Z2V0SW50VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVIpLCBG
aXhlZCk7CisgICAgICAgIGJveC50b3AoKSA9IExlbmd0aChzbGljZXMtPnRvcCgpLT5nZXRJbnRW
YWx1ZShDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUiksIEZpeGVkKTsKICAgICBpZiAoc2xp
Y2VzLT5ib3R0b20oKS0+aXNQZXJjZW50YWdlKCkpCi0gICAgICAgIGJveC5tX2JvdHRvbSA9IExl
bmd0aChzbGljZXMtPmJvdHRvbSgpLT5nZXREb3VibGVWYWx1ZSgpLCBQZXJjZW50KTsKKyAgICAg
ICAgYm94LmJvdHRvbSgpID0gTGVuZ3RoKHNsaWNlcy0+Ym90dG9tKCktPmdldERvdWJsZVZhbHVl
KCksIFBlcmNlbnQpOwogICAgIGVsc2UKLSAgICAgICAgYm94Lm1fYm90dG9tID0gTGVuZ3RoKChp
bnQpc2xpY2VzLT5ib3R0b20oKS0+Z2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
X05VTUJFUiksIEZpeGVkKTsKKyAgICAgICAgYm94LmJvdHRvbSgpID0gTGVuZ3RoKChpbnQpc2xp
Y2VzLT5ib3R0b20oKS0+Z2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJF
UiksIEZpeGVkKTsKICAgICBpZiAoc2xpY2VzLT5sZWZ0KCktPmlzUGVyY2VudGFnZSgpKQotICAg
ICAgICBib3gubV9sZWZ0ID0gTGVuZ3RoKHNsaWNlcy0+bGVmdCgpLT5nZXREb3VibGVWYWx1ZSgp
LCBQZXJjZW50KTsKKyAgICAgICAgYm94LmxlZnQoKSA9IExlbmd0aChzbGljZXMtPmxlZnQoKS0+
Z2V0RG91YmxlVmFsdWUoKSwgUGVyY2VudCk7CiAgICAgZWxzZQotICAgICAgICBib3gubV9sZWZ0
ID0gTGVuZ3RoKHNsaWNlcy0+bGVmdCgpLT5nZXRJbnRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTX05VTUJFUiksIEZpeGVkKTsKKyAgICAgICAgYm94LmxlZnQoKSA9IExlbmd0aChzbGljZXMt
PmxlZnQoKS0+Z2V0SW50VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVIpLCBGaXhl
ZCk7CiAgICAgaWYgKHNsaWNlcy0+cmlnaHQoKS0+aXNQZXJjZW50YWdlKCkpCi0gICAgICAgIGJv
eC5tX3JpZ2h0ID0gTGVuZ3RoKHNsaWNlcy0+cmlnaHQoKS0+Z2V0RG91YmxlVmFsdWUoKSwgUGVy
Y2VudCk7CisgICAgICAgIGJveC5yaWdodCgpID0gTGVuZ3RoKHNsaWNlcy0+cmlnaHQoKS0+Z2V0
RG91YmxlVmFsdWUoKSwgUGVyY2VudCk7CiAgICAgZWxzZQotICAgICAgICBib3gubV9yaWdodCA9
IExlbmd0aChzbGljZXMtPnJpZ2h0KCktPmdldEludFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlOjpD
U1NfTlVNQkVSKSwgRml4ZWQpOworICAgICAgICBib3gucmlnaHQoKSA9IExlbmd0aChzbGljZXMt
PnJpZ2h0KCktPmdldEludFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfTlVNQkVSKSwgRml4
ZWQpOwogICAgIGltYWdlLnNldEltYWdlU2xpY2VzKGJveCk7CiAKICAgICAvLyBTZXQgb3VyIGZp
bGwgbW9kZS4KQEAgLTY1NCwzMiArNjU0LDMyIEBAIExlbmd0aEJveCBDU1NUb1N0eWxlTWFwOjpt
YXBOaW5lUGllY2VJbWEKICAgICBMZW5ndGhCb3ggYm94OyAvLyBEZWZhdWx0cyB0byAnYXV0bycg
c28gd2UgZG9uJ3QgaGF2ZSB0byBoYW5kbGUgdGhhdCBleHBsaWNpdGx5IGJlbG93LgogICAgIFF1
YWQqIHNsaWNlcyA9IGJvcmRlcldpZHRocy5nZXRRdWFkVmFsdWUoKTsKICAgICBpZiAoc2xpY2Vz
LT50b3AoKS0+aXNOdW1iZXIoKSkKLSAgICAgICAgYm94Lm1fdG9wID0gTGVuZ3RoKHNsaWNlcy0+
dG9wKCktPmdldEludFZhbHVlKCksIFJlbGF0aXZlKTsKKyAgICAgICAgYm94LnRvcCgpID0gTGVu
Z3RoKHNsaWNlcy0+dG9wKCktPmdldEludFZhbHVlKCksIFJlbGF0aXZlKTsKICAgICBlbHNlIGlm
IChzbGljZXMtPnRvcCgpLT5pc1BlcmNlbnRhZ2UoKSkKLSAgICAgICAgYm94Lm1fdG9wID0gTGVu
Z3RoKHNsaWNlcy0+dG9wKCktPmdldERvdWJsZVZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlOjpDU1Nf
UEVSQ0VOVEFHRSksIFBlcmNlbnQpOworICAgICAgICBib3gudG9wKCkgPSBMZW5ndGgoc2xpY2Vz
LT50b3AoKS0+Z2V0RG91YmxlVmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QRVJDRU5UQUdF
KSwgUGVyY2VudCk7CiAgICAgZWxzZSBpZiAoc2xpY2VzLT50b3AoKS0+Z2V0VmFsdWVJRCgpICE9
IENTU1ZhbHVlQXV0bykKLSAgICAgICAgYm94Lm1fdG9wID0gc2xpY2VzLT50b3AoKS0+Y29tcHV0
ZUxlbmd0aDxMZW5ndGg+KGNvbnZlcnNpb25EYXRhKTsKKyAgICAgICAgYm94LnRvcCgpID0gc2xp
Y2VzLT50b3AoKS0+Y29tcHV0ZUxlbmd0aDxMZW5ndGg+KGNvbnZlcnNpb25EYXRhKTsKIAogICAg
IGlmIChzbGljZXMtPnJpZ2h0KCktPmlzTnVtYmVyKCkpCi0gICAgICAgIGJveC5tX3JpZ2h0ID0g
TGVuZ3RoKHNsaWNlcy0+cmlnaHQoKS0+Z2V0SW50VmFsdWUoKSwgUmVsYXRpdmUpOworICAgICAg
ICBib3gucmlnaHQoKSA9IExlbmd0aChzbGljZXMtPnJpZ2h0KCktPmdldEludFZhbHVlKCksIFJl
bGF0aXZlKTsKICAgICBlbHNlIGlmIChzbGljZXMtPnJpZ2h0KCktPmlzUGVyY2VudGFnZSgpKQot
ICAgICAgICBib3gubV9yaWdodCA9IExlbmd0aChzbGljZXMtPnJpZ2h0KCktPmdldERvdWJsZVZh
bHVlKENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUEVSQ0VOVEFHRSksIFBlcmNlbnQpOworICAgICAg
ICBib3gucmlnaHQoKSA9IExlbmd0aChzbGljZXMtPnJpZ2h0KCktPmdldERvdWJsZVZhbHVlKENT
U1ByaW1pdGl2ZVZhbHVlOjpDU1NfUEVSQ0VOVEFHRSksIFBlcmNlbnQpOwogICAgIGVsc2UgaWYg
KHNsaWNlcy0+cmlnaHQoKS0+Z2V0VmFsdWVJRCgpICE9IENTU1ZhbHVlQXV0bykKLSAgICAgICAg
Ym94Lm1fcmlnaHQgPSBzbGljZXMtPnJpZ2h0KCktPmNvbXB1dGVMZW5ndGg8TGVuZ3RoPihjb252
ZXJzaW9uRGF0YSk7CisgICAgICAgIGJveC5yaWdodCgpID0gc2xpY2VzLT5yaWdodCgpLT5jb21w
dXRlTGVuZ3RoPExlbmd0aD4oY29udmVyc2lvbkRhdGEpOwogCiAgICAgaWYgKHNsaWNlcy0+Ym90
dG9tKCktPmlzTnVtYmVyKCkpCi0gICAgICAgIGJveC5tX2JvdHRvbSA9IExlbmd0aChzbGljZXMt
PmJvdHRvbSgpLT5nZXRJbnRWYWx1ZSgpLCBSZWxhdGl2ZSk7CisgICAgICAgIGJveC5ib3R0b20o
KSA9IExlbmd0aChzbGljZXMtPmJvdHRvbSgpLT5nZXRJbnRWYWx1ZSgpLCBSZWxhdGl2ZSk7CiAg
ICAgZWxzZSBpZiAoc2xpY2VzLT5ib3R0b20oKS0+aXNQZXJjZW50YWdlKCkpCi0gICAgICAgIGJv
eC5tX2JvdHRvbSA9IExlbmd0aChzbGljZXMtPmJvdHRvbSgpLT5nZXREb3VibGVWYWx1ZShDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTX1BFUkNFTlRBR0UpLCBQZXJjZW50KTsKKyAgICAgICAgYm94LmJv
dHRvbSgpID0gTGVuZ3RoKHNsaWNlcy0+Ym90dG9tKCktPmdldERvdWJsZVZhbHVlKENTU1ByaW1p
dGl2ZVZhbHVlOjpDU1NfUEVSQ0VOVEFHRSksIFBlcmNlbnQpOwogICAgIGVsc2UgaWYgKHNsaWNl
cy0+Ym90dG9tKCktPmdldFZhbHVlSUQoKSAhPSBDU1NWYWx1ZUF1dG8pCi0gICAgICAgIGJveC5t
X2JvdHRvbSA9IHNsaWNlcy0+Ym90dG9tKCktPmNvbXB1dGVMZW5ndGg8TGVuZ3RoPihjb252ZXJz
aW9uRGF0YSk7CisgICAgICAgIGJveC5ib3R0b20oKSA9IHNsaWNlcy0+Ym90dG9tKCktPmNvbXB1
dGVMZW5ndGg8TGVuZ3RoPihjb252ZXJzaW9uRGF0YSk7CiAKICAgICBpZiAoc2xpY2VzLT5sZWZ0
KCktPmlzTnVtYmVyKCkpCi0gICAgICAgIGJveC5tX2xlZnQgPSBMZW5ndGgoc2xpY2VzLT5sZWZ0
KCktPmdldEludFZhbHVlKCksIFJlbGF0aXZlKTsKKyAgICAgICAgYm94LmxlZnQoKSA9IExlbmd0
aChzbGljZXMtPmxlZnQoKS0+Z2V0SW50VmFsdWUoKSwgUmVsYXRpdmUpOwogICAgIGVsc2UgaWYg
KHNsaWNlcy0+bGVmdCgpLT5pc1BlcmNlbnRhZ2UoKSkKLSAgICAgICAgYm94Lm1fbGVmdCA9IExl
bmd0aChzbGljZXMtPmxlZnQoKS0+Z2V0RG91YmxlVmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWU6OkNT
U19QRVJDRU5UQUdFKSwgUGVyY2VudCk7CisgICAgICAgIGJveC5sZWZ0KCkgPSBMZW5ndGgoc2xp
Y2VzLT5sZWZ0KCktPmdldERvdWJsZVZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUEVSQ0VO
VEFHRSksIFBlcmNlbnQpOwogICAgIGVsc2UgaWYgKHNsaWNlcy0+bGVmdCgpLT5nZXRWYWx1ZUlE
KCkgIT0gQ1NTVmFsdWVBdXRvKQotICAgICAgICBib3gubV9sZWZ0ID0gc2xpY2VzLT5sZWZ0KCkt
PmNvbXB1dGVMZW5ndGg8TGVuZ3RoPihjb252ZXJzaW9uRGF0YSk7CisgICAgICAgIGJveC5sZWZ0
KCkgPSBzbGljZXMtPmxlZnQoKS0+Y29tcHV0ZUxlbmd0aDxMZW5ndGg+KGNvbnZlcnNpb25EYXRh
KTsKIAogICAgIHJldHVybiBib3g7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVG9T
dHlsZU1hcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUb1N0eWxlTWFw
LmgJKHJldmlzaW9uIDE4NDY1NSkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUb1N0eWxlTWFw
LmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDcgQEAgY2xhc3MgU3R5bGVJbWFnZTsKIGNs
YXNzIFN0eWxlUmVzb2x2ZXI7CiBjbGFzcyBOaW5lUGllY2VJbWFnZTsKIAotc3RydWN0IExlbmd0
aEJveDsKK2NsYXNzIExlbmd0aEJveDsKIAogY2xhc3MgQ1NTVG9TdHlsZU1hcCB7CiAgICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoQ1NTVG9TdHlsZU1hcCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwCShyZXZpc2lvbiAxODQ2NTUpCisrKyBT
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTExMSw4ICsxMTEsOCBAQCBzdGF0aWMgdm9pZCBidWlsZFJlbmRlcmVySGlnaGxpZ2h0
KFJlbmRlCiAgICAgICAgICAgICBpZiAoIXJlbmRlckJveC5pc091dE9mRmxvd1Bvc2l0aW9uZWQo
KSAmJiByZWdpb24pIHsKICAgICAgICAgICAgICAgICBSZW5kZXJCb3g6OkxvZ2ljYWxFeHRlbnRD
b21wdXRlZFZhbHVlcyBjb21wdXRlZFZhbHVlczsKICAgICAgICAgICAgICAgICByZW5kZXJCb3gu
Y29tcHV0ZUxvZ2ljYWxXaWR0aEluUmVnaW9uKGNvbXB1dGVkVmFsdWVzLCByZWdpb24pOwotICAg
ICAgICAgICAgICAgIG1hcmdpbnMubXV0YWJsZUxvZ2ljYWxMZWZ0KHJlbmRlckJveC5zdHlsZSgp
LndyaXRpbmdNb2RlKCkpID0gY29tcHV0ZWRWYWx1ZXMubV9tYXJnaW5zLm1fc3RhcnQ7Ci0gICAg
ICAgICAgICAgICAgbWFyZ2lucy5tdXRhYmxlTG9naWNhbFJpZ2h0KHJlbmRlckJveC5zdHlsZSgp
LndyaXRpbmdNb2RlKCkpID0gY29tcHV0ZWRWYWx1ZXMubV9tYXJnaW5zLm1fZW5kOworICAgICAg
ICAgICAgICAgIG1hcmdpbnMuc3RhcnQocmVuZGVyQm94LnN0eWxlKCkud3JpdGluZ01vZGUoKSkg
PSBjb21wdXRlZFZhbHVlcy5tX21hcmdpbnMubV9zdGFydDsKKyAgICAgICAgICAgICAgICBtYXJn
aW5zLmVuZChyZW5kZXJCb3guc3R5bGUoKS53cml0aW5nTW9kZSgpKSA9IGNvbXB1dGVkVmFsdWVz
Lm1fbWFyZ2lucy5tX2VuZDsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgcGFkZGluZ0Jv
eCA9IHJlbmRlckJveC5jbGllbnRCb3hSZWN0SW5SZWdpb24ocmVnaW9uKTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0xlbmd0aEJveC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vTGVuZ3RoQm94LmNwcAkocmV2aXNpb24gMTg0NjU1KQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vTGVuZ3RoQm94LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw5MiAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAyMDEyLCBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0Ogot
ICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0g
KiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJMZW5ndGhCb3guaCIKLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi1jb25zdCBMZW5ndGgmIExlbmd0aEJveDo6bG9naWNhbExlZnQo
V3JpdGluZ01vZGUgd3JpdGluZ01vZGUpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGlzSG9yaXpvbnRh
bFdyaXRpbmdNb2RlKHdyaXRpbmdNb2RlKSA/IG1fbGVmdCA6IG1fdG9wOwotfQotCi1jb25zdCBM
ZW5ndGgmIExlbmd0aEJveDo6bG9naWNhbFJpZ2h0KFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlKSBj
b25zdAotewotICAgIHJldHVybiBpc0hvcml6b250YWxXcml0aW5nTW9kZSh3cml0aW5nTW9kZSkg
PyBtX3JpZ2h0IDogbV9ib3R0b207Ci19Ci0KLWNvbnN0IExlbmd0aCYgTGVuZ3RoQm94OjpiZWZv
cmUoV3JpdGluZ01vZGUgd3JpdGluZ01vZGUpIGNvbnN0Ci17Ci0gICAgc3dpdGNoICh3cml0aW5n
TW9kZSkgewotICAgIGNhc2UgVG9wVG9Cb3R0b21Xcml0aW5nTW9kZToKLSAgICAgICAgcmV0dXJu
IG1fdG9wOwotICAgIGNhc2UgQm90dG9tVG9Ub3BXcml0aW5nTW9kZToKLSAgICAgICAgcmV0dXJu
IG1fYm90dG9tOwotICAgIGNhc2UgTGVmdFRvUmlnaHRXcml0aW5nTW9kZToKLSAgICAgICAgcmV0
dXJuIG1fbGVmdDsKLSAgICBjYXNlIFJpZ2h0VG9MZWZ0V3JpdGluZ01vZGU6Ci0gICAgICAgIHJl
dHVybiBtX3JpZ2h0OwotICAgIH0KLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1
cm4gbV90b3A7Ci19Ci0KLWNvbnN0IExlbmd0aCYgTGVuZ3RoQm94OjphZnRlcihXcml0aW5nTW9k
ZSB3cml0aW5nTW9kZSkgY29uc3QKLXsKLSAgICBzd2l0Y2ggKHdyaXRpbmdNb2RlKSB7Ci0gICAg
Y2FzZSBUb3BUb0JvdHRvbVdyaXRpbmdNb2RlOgotICAgICAgICByZXR1cm4gbV9ib3R0b207Ci0g
ICAgY2FzZSBCb3R0b21Ub1RvcFdyaXRpbmdNb2RlOgotICAgICAgICByZXR1cm4gbV90b3A7Ci0g
ICAgY2FzZSBMZWZ0VG9SaWdodFdyaXRpbmdNb2RlOgotICAgICAgICByZXR1cm4gbV9yaWdodDsK
LSAgICBjYXNlIFJpZ2h0VG9MZWZ0V3JpdGluZ01vZGU6Ci0gICAgICAgIHJldHVybiBtX2xlZnQ7
Ci0gICAgfQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBtX2JvdHRvbTsK
LX0KLQotY29uc3QgTGVuZ3RoJiBMZW5ndGhCb3g6OnN0YXJ0KFdyaXRpbmdNb2RlIHdyaXRpbmdN
b2RlLCBUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbikgY29uc3QKLXsKLSAgICBpZiAoaXNIb3Jpem9u
dGFsV3JpdGluZ01vZGUod3JpdGluZ01vZGUpKQotICAgICAgICByZXR1cm4gaXNMZWZ0VG9SaWdo
dERpcmVjdGlvbihkaXJlY3Rpb24pID8gbV9sZWZ0IDogbV9yaWdodDsKLSAgICByZXR1cm4gaXNM
ZWZ0VG9SaWdodERpcmVjdGlvbihkaXJlY3Rpb24pID8gbV90b3AgOiBtX2JvdHRvbTsKLX0KLQot
Y29uc3QgTGVuZ3RoJiBMZW5ndGhCb3g6OmVuZChXcml0aW5nTW9kZSB3cml0aW5nTW9kZSwgVGV4
dERpcmVjdGlvbiBkaXJlY3Rpb24pIGNvbnN0Ci17Ci0gICAgaWYgKGlzSG9yaXpvbnRhbFdyaXRp
bmdNb2RlKHdyaXRpbmdNb2RlKSkKLSAgICAgICAgcmV0dXJuIGlzTGVmdFRvUmlnaHREaXJlY3Rp
b24oZGlyZWN0aW9uKSA/IG1fcmlnaHQgOiBtX2xlZnQ7Ci0gICAgcmV0dXJuIGlzTGVmdFRvUmln
aHREaXJlY3Rpb24oZGlyZWN0aW9uKSA/IG1fYm90dG9tIDogbV90b3A7Ci19Ci0KLX0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xlbmd0aEJveC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xlbmd0aEJveC5oCShyZXZp
c2lvbiAxODQ2NTUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZW5ndGhCb3guaAkod29y
a2luZyBjb3B5KQpAQCAtMSw2ICsxLDYgQEAKIC8qCiAgICAgQ29weXJpZ2h0IChDKSAxOTk5IExh
cnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCi0gICAgQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAgICBDb3B5cmlnaHQgKEMpIDIwMDYsIDIw
MDgsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAgIENvcHlyaWdodCAo
YykgMjAxMiwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KIAogICAgIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAg
LTI1LDgwICsyNSwxNTEgQEAKICNpbmNsdWRlICJMZW5ndGguaCIKICNpbmNsdWRlICJUZXh0Rmxh
Z3MuaCIKICNpbmNsdWRlICJXcml0aW5nTW9kZS5oIgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdHJ1Y3QgTGVuZ3RoQm94IHsKLSAgICBMZW5ndGhC
b3goKQordGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgQm94RXh0ZW50IHsKK3B1YmxpYzoKKyAg
ICBCb3hFeHRlbnQoKQorICAgICAgICA6IG1fc2lkZXMoeyBUKDApLCBUKDApLCBUKDApLCBUKDAp
IH0pCiAgICAgewogICAgIH0KIAotICAgIGV4cGxpY2l0IExlbmd0aEJveChMZW5ndGhUeXBlIHR5
cGUpCi0gICAgICAgIDogbV9sZWZ0KHR5cGUpCi0gICAgICAgICwgbV9yaWdodCh0eXBlKQotICAg
ICAgICAsIG1fdG9wKHR5cGUpCi0gICAgICAgICwgbV9ib3R0b20odHlwZSkKKyAgICBCb3hFeHRl
bnQoY29uc3QgVCYgdG9wLCBjb25zdCBUJiByaWdodCwgY29uc3QgVCYgYm90dG9tLCBjb25zdCBU
JiBsZWZ0KQorICAgICAgICA6IG1fc2lkZXMoeyB0b3AsIHJpZ2h0LCBib3R0b20sIGxlZnQgfSkK
ICAgICB7CiAgICAgfQogCi0gICAgZXhwbGljaXQgTGVuZ3RoQm94KGludCB2KQotICAgICAgICA6
IG1fbGVmdChMZW5ndGgodiwgRml4ZWQpKQotICAgICAgICAsIG1fcmlnaHQoTGVuZ3RoKHYsIEZp
eGVkKSkKLSAgICAgICAgLCBtX3RvcChMZW5ndGgodiwgRml4ZWQpKQotICAgICAgICAsIG1fYm90
dG9tKExlbmd0aCh2LCBGaXhlZCkpCisgICAgVCYgYXQoUGh5c2ljYWxCb3hTaWRlIHNpZGUpIHsg
cmV0dXJuIG1fc2lkZXNbc2lkZV07IH0KKyAgICBUJiB0b3AoKSB7IHJldHVybiBhdChUb3BTaWRl
KTsgfQorICAgIFQmIHJpZ2h0KCkgeyByZXR1cm4gYXQoUmlnaHRTaWRlKTsgfQorICAgIFQmIGJv
dHRvbSgpIHsgcmV0dXJuIGF0KEJvdHRvbVNpZGUpOyB9CisgICAgVCYgbGVmdCgpIHsgcmV0dXJu
IGF0KExlZnRTaWRlKTsgfQorCisgICAgY29uc3QgVCYgYXQoUGh5c2ljYWxCb3hTaWRlIHNpZGUp
IGNvbnN0IHsgcmV0dXJuIG1fc2lkZXNbc2lkZV07IH0KKyAgICBjb25zdCBUJiB0b3AoKSBjb25z
dCB7IHJldHVybiBhdChUb3BTaWRlKTsgfQorICAgIGNvbnN0IFQmIHJpZ2h0KCkgY29uc3QgeyBy
ZXR1cm4gYXQoUmlnaHRTaWRlKTsgfQorICAgIGNvbnN0IFQmIGJvdHRvbSgpIGNvbnN0IHsgcmV0
dXJuIGF0KEJvdHRvbVNpZGUpOyB9CisgICAgY29uc3QgVCYgbGVmdCgpIGNvbnN0IHsgcmV0dXJu
IGF0KExlZnRTaWRlKTsgfQorCisgICAgdm9pZCBzZXRBdChQaHlzaWNhbEJveFNpZGUgc2lkZSwg
Y29uc3QgVCYgdikgeyBhdChzaWRlKSA9IHY7IH0KKyAgICB2b2lkIHNldFRvcChjb25zdCBUJiB0
b3ApIHsgc2V0QXQoVG9wU2lkZSwgdG9wKTsgfQorICAgIHZvaWQgc2V0UmlnaHQoY29uc3QgVCYg
cmlnaHQpIHsgc2V0QXQoUmlnaHRTaWRlLCByaWdodCk7IH0KKyAgICB2b2lkIHNldEJvdHRvbShj
b25zdCBUJiBib3R0b20pIHsgc2V0QXQoQm90dG9tU2lkZSwgYm90dG9tKTsgfQorICAgIHZvaWQg
c2V0TGVmdChjb25zdCBUJiBsZWZ0KSB7IHNldEF0KExlZnRTaWRlLCBsZWZ0KTsgfQorCisgICAg
VCYgYmVmb3JlKFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlKQogICAgIHsKKyAgICAgICAgcmV0dXJu
IGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKHdyaXRpbmdNb2RlKSA/CisgICAgICAgICAgICAoaXNG
bGlwcGVkQmxvY2tzV3JpdGluZ01vZGUod3JpdGluZ01vZGUpID8gYm90dG9tKCkgOiB0b3AoKSkg
OgorICAgICAgICAgICAgKGlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdNb2RlKHdyaXRpbmdNb2RlKSA/
IHJpZ2h0KCkgOiBsZWZ0KCkpOwogICAgIH0KIAotICAgIExlbmd0aEJveChMZW5ndGggdG9wLCBM
ZW5ndGggcmlnaHQsIExlbmd0aCBib3R0b20sIExlbmd0aCBsZWZ0KQotICAgICAgICA6IG1fbGVm
dChXVEY6Om1vdmUobGVmdCkpCi0gICAgICAgICwgbV9yaWdodChXVEY6Om1vdmUocmlnaHQpKQot
ICAgICAgICAsIG1fdG9wKFdURjo6bW92ZSh0b3ApKQotICAgICAgICAsIG1fYm90dG9tKFdURjo6
bW92ZShib3R0b20pKQorICAgIFQmIGFmdGVyKFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlKQogICAg
IHsKKyAgICAgICAgcmV0dXJuIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKHdyaXRpbmdNb2RlKSA/
CisgICAgICAgICAgICAoaXNGbGlwcGVkQmxvY2tzV3JpdGluZ01vZGUod3JpdGluZ01vZGUpID8g
dG9wKCkgOiBib3R0b20oKSkgOgorICAgICAgICAgICAgKGlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdN
b2RlKHdyaXRpbmdNb2RlKSA/IGxlZnQoKSA6IHJpZ2h0KCkpOwogICAgIH0KIAotICAgIExlbmd0
aEJveChpbnQgdG9wLCBpbnQgcmlnaHQsIGludCBib3R0b20sIGludCBsZWZ0KQotICAgICAgICA6
IG1fbGVmdChMZW5ndGgobGVmdCwgRml4ZWQpKQotICAgICAgICAsIG1fcmlnaHQoTGVuZ3RoKHJp
Z2h0LCBGaXhlZCkpCi0gICAgICAgICwgbV90b3AoTGVuZ3RoKHRvcCwgRml4ZWQpKQotICAgICAg
ICAsIG1fYm90dG9tKExlbmd0aChib3R0b20sIEZpeGVkKSkKKyAgICBUJiBzdGFydChXcml0aW5n
TW9kZSB3cml0aW5nTW9kZSwgVGV4dERpcmVjdGlvbiBkaXJlY3Rpb24gPSBMVFIpCiAgICAgewor
ICAgICAgICByZXR1cm4gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUod3JpdGluZ01vZGUpID8KKyAg
ICAgICAgICAgIChpc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKGRpcmVjdGlvbikgPyBsZWZ0KCkgOiBy
aWdodCgpKSA6CisgICAgICAgICAgICAoaXNMZWZ0VG9SaWdodERpcmVjdGlvbihkaXJlY3Rpb24p
ID8gdG9wKCkgOiBib3R0b20oKSk7CiAgICAgfQogCi0gICAgY29uc3QgTGVuZ3RoJiBsZWZ0KCkg
Y29uc3QgeyByZXR1cm4gbV9sZWZ0OyB9Ci0gICAgY29uc3QgTGVuZ3RoJiByaWdodCgpIGNvbnN0
IHsgcmV0dXJuIG1fcmlnaHQ7IH0KLSAgICBjb25zdCBMZW5ndGgmIHRvcCgpIGNvbnN0IHsgcmV0
dXJuIG1fdG9wOyB9Ci0gICAgY29uc3QgTGVuZ3RoJiBib3R0b20oKSBjb25zdCB7IHJldHVybiBt
X2JvdHRvbTsgfQorICAgIFQmIGVuZChXcml0aW5nTW9kZSB3cml0aW5nTW9kZSwgVGV4dERpcmVj
dGlvbiBkaXJlY3Rpb24gPSBMVFIpCisgICAgeworICAgICAgICByZXR1cm4gaXNIb3Jpem9udGFs
V3JpdGluZ01vZGUod3JpdGluZ01vZGUpID8KKyAgICAgICAgICAgIChpc0xlZnRUb1JpZ2h0RGly
ZWN0aW9uKGRpcmVjdGlvbikgPyByaWdodCgpIDogbGVmdCgpKSA6CisgICAgICAgICAgICAoaXNM
ZWZ0VG9SaWdodERpcmVjdGlvbihkaXJlY3Rpb24pID8gYm90dG9tKCkgOiB0b3AoKSk7CisgICAg
fQogCi0gICAgY29uc3QgTGVuZ3RoJiBsb2dpY2FsTGVmdChXcml0aW5nTW9kZSkgY29uc3Q7Ci0g
ICAgY29uc3QgTGVuZ3RoJiBsb2dpY2FsUmlnaHQoV3JpdGluZ01vZGUpIGNvbnN0OworICAgIGNv
bnN0IFQmIGJlZm9yZShXcml0aW5nTW9kZSB3cml0aW5nTW9kZSkgY29uc3QKKyAgICB7CisgICAg
ICAgIHJldHVybiBpc0hvcml6b250YWxXcml0aW5nTW9kZSh3cml0aW5nTW9kZSkgPworICAgICAg
ICAgICAgKGlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdNb2RlKHdyaXRpbmdNb2RlKSA/IGJvdHRvbSgp
IDogdG9wKCkpIDoKKyAgICAgICAgICAgIChpc0ZsaXBwZWRCbG9ja3NXcml0aW5nTW9kZSh3cml0
aW5nTW9kZSkgPyByaWdodCgpIDogbGVmdCgpKTsKKyAgICB9CiAKLSAgICBjb25zdCBMZW5ndGgm
IGJlZm9yZShXcml0aW5nTW9kZSkgY29uc3Q7Ci0gICAgY29uc3QgTGVuZ3RoJiBhZnRlcihXcml0
aW5nTW9kZSkgY29uc3Q7Ci0gICAgY29uc3QgTGVuZ3RoJiBzdGFydChXcml0aW5nTW9kZSwgVGV4
dERpcmVjdGlvbikgY29uc3Q7Ci0gICAgY29uc3QgTGVuZ3RoJiBlbmQoV3JpdGluZ01vZGUsIFRl
eHREaXJlY3Rpb24pIGNvbnN0OworICAgIGNvbnN0IFQmIGFmdGVyKFdyaXRpbmdNb2RlIHdyaXRp
bmdNb2RlKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIGlzSG9yaXpvbnRhbFdyaXRpbmdN
b2RlKHdyaXRpbmdNb2RlKSA/CisgICAgICAgICAgICAoaXNGbGlwcGVkQmxvY2tzV3JpdGluZ01v
ZGUod3JpdGluZ01vZGUpID8gdG9wKCkgOiBib3R0b20oKSkgOgorICAgICAgICAgICAgKGlzRmxp
cHBlZEJsb2Nrc1dyaXRpbmdNb2RlKHdyaXRpbmdNb2RlKSA/IGxlZnQoKSA6IHJpZ2h0KCkpOwor
ICAgIH0KKworICAgIGNvbnN0IFQmIHN0YXJ0KFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlLCBUZXh0
RGlyZWN0aW9uIGRpcmVjdGlvbiA9IExUUikgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBp
c0hvcml6b250YWxXcml0aW5nTW9kZSh3cml0aW5nTW9kZSkgPworICAgICAgICAgICAgKGlzTGVm
dFRvUmlnaHREaXJlY3Rpb24oZGlyZWN0aW9uKSA/IGxlZnQoKSA6IHJpZ2h0KCkpIDoKKyAgICAg
ICAgICAgIChpc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKGRpcmVjdGlvbikgPyB0b3AoKSA6IGJvdHRv
bSgpKTsKKyAgICB9CiAKLSAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgTGVuZ3RoQm94JiBvdGhl
cikgY29uc3QKKyAgICBjb25zdCBUJiBlbmQoV3JpdGluZ01vZGUgd3JpdGluZ01vZGUsIFRleHRE
aXJlY3Rpb24gZGlyZWN0aW9uID0gTFRSKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIG1f
bGVmdCA9PSBvdGhlci5tX2xlZnQgJiYgbV9yaWdodCA9PSBvdGhlci5tX3JpZ2h0ICYmIG1fdG9w
ID09IG90aGVyLm1fdG9wICYmIG1fYm90dG9tID09IG90aGVyLm1fYm90dG9tOworICAgICAgICBy
ZXR1cm4gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUod3JpdGluZ01vZGUpID8KKyAgICAgICAgICAg
IChpc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKGRpcmVjdGlvbikgPyByaWdodCgpIDogbGVmdCgpKSA6
CisgICAgICAgICAgICAoaXNMZWZ0VG9SaWdodERpcmVjdGlvbihkaXJlY3Rpb24pID8gYm90dG9t
KCkgOiB0b3AoKSk7CiAgICAgfQogCi0gICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IExlbmd0aEJv
eCYgb3RoZXIpIGNvbnN0CisgICAgdm9pZCBzZXRCZWZvcmUoY29uc3QgVCYgYmVmb3JlLCBXcml0
aW5nTW9kZSB3cml0aW5nTW9kZSkgeyB0aGlzLT5iZWZvcmUod3JpdGluZ01vZGUpID0gYmVmb3Jl
OyB9CisgICAgdm9pZCBzZXRBZnRlcihjb25zdCBUJiBhZnRlciwgV3JpdGluZ01vZGUgd3JpdGlu
Z01vZGUpIHsgdGhpcy0+YWZ0ZXIod3JpdGluZ01vZGUpID0gYWZ0ZXI7IH0KKyAgICB2b2lkIHNl
dFN0YXJ0KGNvbnN0IFQmIHN0YXJ0LCBXcml0aW5nTW9kZSB3cml0aW5nTW9kZSwgVGV4dERpcmVj
dGlvbiBkaXJlY3Rpb24gPSBMVFIpIHsgdGhpcy0+c3RhcnQod3JpdGluZ01vZGUsIGRpcmVjdGlv
bikgPSBzdGFydDsgfQorICAgIHZvaWQgc2V0RW5kKGNvbnN0IFQmIGVuZCwgV3JpdGluZ01vZGUg
d3JpdGluZ01vZGUsIFRleHREaXJlY3Rpb24gZGlyZWN0aW9uID0gTFRSKSB7IHRoaXMtPmVuZCh3
cml0aW5nTW9kZSwgZGlyZWN0aW9uKSA9IGVuZDsgfQorCisgICAgYm9vbCBvcGVyYXRvcj09KGNv
bnN0IEJveEV4dGVudCYgb3RoZXIpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gISgqdGhp
cyA9PSBvdGhlcik7CisgICAgICAgIHJldHVybiBtX3NpZGVzID09IG90aGVyLm1fc2lkZXM7CiAg
ICAgfQogCi0gICAgYm9vbCBub25aZXJvKCkgY29uc3QKKyAgICBib29sIG9wZXJhdG9yIT0oY29u
c3QgQm94RXh0ZW50JiBvdGhlcikgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiAhKG1fbGVm
dC5pc1plcm8oKSAmJiBtX3JpZ2h0LmlzWmVybygpICYmIG1fdG9wLmlzWmVybygpICYmIG1fYm90
dG9tLmlzWmVybygpKTsKKyAgICAgICAgcmV0dXJuIG1fc2lkZXMgIT0gb3RoZXIubV9zaWRlczsK
ICAgICB9CiAKLSAgICBMZW5ndGggbV9sZWZ0OwotICAgIExlbmd0aCBtX3JpZ2h0OwotICAgIExl
bmd0aCBtX3RvcDsKLSAgICBMZW5ndGggbV9ib3R0b207Citwcm90ZWN0ZWQ6CisgICAgVmVjdG9y
PFQsIDQ+IG1fc2lkZXM7CiB9OwogCitjbGFzcyBMZW5ndGhCb3ggOiBwdWJsaWMgQm94RXh0ZW50
PExlbmd0aD4geworcHVibGljOgorICAgIExlbmd0aEJveCgpCisgICAgICAgIDogTGVuZ3RoQm94
KEF1dG8pCisgICAgeworICAgIH0KKworICAgIGV4cGxpY2l0IExlbmd0aEJveChMZW5ndGhUeXBl
IHR5cGUpCisgICAgICAgIDogQm94RXh0ZW50KExlbmd0aCh0eXBlKSwgTGVuZ3RoKHR5cGUpLCBM
ZW5ndGgodHlwZSksIExlbmd0aCh0eXBlKSkKKyAgICB7CisgICAgfQorCisgICAgZXhwbGljaXQg
TGVuZ3RoQm94KGludCB2KQorICAgICAgICA6IEJveEV4dGVudChMZW5ndGgodiwgRml4ZWQpLCBM
ZW5ndGgodiwgRml4ZWQpLCBMZW5ndGgodiwgRml4ZWQpLCBMZW5ndGgodiwgRml4ZWQpKQorICAg
IHsKKyAgICB9CisKKyAgICBMZW5ndGhCb3goaW50IHRvcCwgaW50IHJpZ2h0LCBpbnQgYm90dG9t
LCBpbnQgbGVmdCkKKyAgICAgICAgOiBCb3hFeHRlbnQoTGVuZ3RoKHRvcCwgRml4ZWQpLCBMZW5n
dGgocmlnaHQsIEZpeGVkKSwgTGVuZ3RoKGJvdHRvbSwgRml4ZWQpLCBMZW5ndGgobGVmdCwgRml4
ZWQpKQorICAgIHsKKyAgICB9CisKKyAgICBMZW5ndGhCb3goY29uc3QgTGVuZ3RoJiB0b3AsIGNv
bnN0IExlbmd0aCYgcmlnaHQsIGNvbnN0IExlbmd0aCYgYm90dG9tLCBjb25zdCBMZW5ndGgmIGxl
ZnQpCisgICAgICAgIDogQm94RXh0ZW50KHRvcCwgcmlnaHQsIGJvdHRvbSwgbGVmdCkKKyAgICB7
CisgICAgfQorCisgICAgYm9vbCBpc1plcm8oKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJu
IHRvcCgpLmlzWmVybygpICYmIHJpZ2h0KCkuaXNaZXJvKCkgJiYgYm90dG9tKCkuaXNaZXJvKCkg
JiYgbGVmdCgpLmlzWmVybygpOworICAgIH0KK307CisKK3R5cGVkZWYgQm94RXh0ZW50PExheW91
dFVuaXQ+IExheW91dEJveEV4dGVudDsKK3R5cGVkZWYgQm94RXh0ZW50PGZsb2F0PiBGbG9hdEJv
eEV4dGVudDsKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gTGVuZ3RoQm94
X2gKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0xheW91dEJveEV4dGVu
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTGF5
b3V0Qm94RXh0ZW50LmNwcAkocmV2aXNpb24gMTg0NjU1KQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvTGF5b3V0Qm94RXh0ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSwx
OTYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMjAxMiwgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1l
dDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiTGF5b3V0Qm94RXh0ZW50
LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotTGF5b3V0VW5pdCBMYXlvdXRCb3hFeHRlbnQ6
OmxvZ2ljYWxUb3AoV3JpdGluZ01vZGUgd3JpdGluZ01vZGUpIGNvbnN0Ci17Ci0gICAgcmV0dXJu
IGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKHdyaXRpbmdNb2RlKSA/IG1fdG9wIDogbV9sZWZ0Owot
fQotCi1MYXlvdXRVbml0IExheW91dEJveEV4dGVudDo6bG9naWNhbEJvdHRvbShXcml0aW5nTW9k
ZSB3cml0aW5nTW9kZSkgY29uc3QKLXsKLSAgICByZXR1cm4gaXNIb3Jpem9udGFsV3JpdGluZ01v
ZGUod3JpdGluZ01vZGUpID8gbV9ib3R0b20gOiBtX3JpZ2h0OwotfQotCi1MYXlvdXRVbml0IExh
eW91dEJveEV4dGVudDo6bG9naWNhbExlZnQoV3JpdGluZ01vZGUgd3JpdGluZ01vZGUpIGNvbnN0
Ci17Ci0gICAgcmV0dXJuIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKHdyaXRpbmdNb2RlKSA/IG1f
bGVmdCA6IG1fdG9wOwotfQotCi1MYXlvdXRVbml0IExheW91dEJveEV4dGVudDo6bG9naWNhbFJp
Z2h0KFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlKSBjb25zdAotewotICAgIHJldHVybiBpc0hvcml6
b250YWxXcml0aW5nTW9kZSh3cml0aW5nTW9kZSkgPyBtX3JpZ2h0IDogbV9ib3R0b207Ci19Ci0K
LUxheW91dFVuaXQgTGF5b3V0Qm94RXh0ZW50OjpiZWZvcmUoV3JpdGluZ01vZGUgd3JpdGluZ01v
ZGUpIGNvbnN0Ci17Ci0gICAgc3dpdGNoICh3cml0aW5nTW9kZSkgewotICAgIGNhc2UgVG9wVG9C
b3R0b21Xcml0aW5nTW9kZToKLSAgICAgICAgcmV0dXJuIG1fdG9wOwotICAgIGNhc2UgQm90dG9t
VG9Ub3BXcml0aW5nTW9kZToKLSAgICAgICAgcmV0dXJuIG1fYm90dG9tOwotICAgIGNhc2UgTGVm
dFRvUmlnaHRXcml0aW5nTW9kZToKLSAgICAgICAgcmV0dXJuIG1fbGVmdDsKLSAgICBjYXNlIFJp
Z2h0VG9MZWZ0V3JpdGluZ01vZGU6Ci0gICAgICAgIHJldHVybiBtX3JpZ2h0OwotICAgIH0KLSAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gbV90b3A7Ci19Ci0KLUxheW91dFVu
aXQgTGF5b3V0Qm94RXh0ZW50OjphZnRlcihXcml0aW5nTW9kZSB3cml0aW5nTW9kZSkgY29uc3QK
LXsKLSAgICBzd2l0Y2ggKHdyaXRpbmdNb2RlKSB7Ci0gICAgY2FzZSBUb3BUb0JvdHRvbVdyaXRp
bmdNb2RlOgotICAgICAgICByZXR1cm4gbV9ib3R0b207Ci0gICAgY2FzZSBCb3R0b21Ub1RvcFdy
aXRpbmdNb2RlOgotICAgICAgICByZXR1cm4gbV90b3A7Ci0gICAgY2FzZSBMZWZ0VG9SaWdodFdy
aXRpbmdNb2RlOgotICAgICAgICByZXR1cm4gbV9yaWdodDsKLSAgICBjYXNlIFJpZ2h0VG9MZWZ0
V3JpdGluZ01vZGU6Ci0gICAgICAgIHJldHVybiBtX2xlZnQ7Ci0gICAgfQotICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBtX2JvdHRvbTsKLX0KLQotTGF5b3V0VW5pdCBMYXlv
dXRCb3hFeHRlbnQ6OnN0YXJ0KFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlLCBUZXh0RGlyZWN0aW9u
IGRpcmVjdGlvbikgY29uc3QKLXsKLSAgICBpZiAoaXNIb3Jpem9udGFsV3JpdGluZ01vZGUod3Jp
dGluZ01vZGUpKQotICAgICAgICByZXR1cm4gaXNMZWZ0VG9SaWdodERpcmVjdGlvbihkaXJlY3Rp
b24pID8gbV9sZWZ0IDogbV9yaWdodDsKLSAgICByZXR1cm4gaXNMZWZ0VG9SaWdodERpcmVjdGlv
bihkaXJlY3Rpb24pID8gbV90b3AgOiBtX2JvdHRvbTsKLX0KLQotTGF5b3V0VW5pdCBMYXlvdXRC
b3hFeHRlbnQ6OmVuZChXcml0aW5nTW9kZSB3cml0aW5nTW9kZSwgVGV4dERpcmVjdGlvbiBkaXJl
Y3Rpb24pIGNvbnN0Ci17Ci0gICAgaWYgKGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKHdyaXRpbmdN
b2RlKSkKLSAgICAgICAgcmV0dXJuIGlzTGVmdFRvUmlnaHREaXJlY3Rpb24oZGlyZWN0aW9uKSA/
IG1fcmlnaHQgOiBtX2xlZnQ7Ci0gICAgcmV0dXJuIGlzTGVmdFRvUmlnaHREaXJlY3Rpb24oZGly
ZWN0aW9uKSA/IG1fYm90dG9tIDogbV90b3A7Ci19Ci0KLXZvaWQgTGF5b3V0Qm94RXh0ZW50Ojpz
ZXRCZWZvcmUoV3JpdGluZ01vZGUgd3JpdGluZ01vZGUsIExheW91dFVuaXQgdmFsdWUpCi17Ci0g
ICAgc3dpdGNoICh3cml0aW5nTW9kZSkgewotICAgIGNhc2UgVG9wVG9Cb3R0b21Xcml0aW5nTW9k
ZToKLSAgICAgICAgbV90b3AgPSB2YWx1ZTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBCb3R0
b21Ub1RvcFdyaXRpbmdNb2RlOgotICAgICAgICBtX2JvdHRvbSA9IHZhbHVlOwotICAgICAgICBi
cmVhazsKLSAgICBjYXNlIExlZnRUb1JpZ2h0V3JpdGluZ01vZGU6Ci0gICAgICAgIG1fbGVmdCA9
IHZhbHVlOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFJpZ2h0VG9MZWZ0V3JpdGluZ01vZGU6
Ci0gICAgICAgIG1fcmlnaHQgPSB2YWx1ZTsKLSAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoK
LSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIG1fdG9wID0gdmFsdWU7Ci0g
ICAgfQotfQotCi12b2lkIExheW91dEJveEV4dGVudDo6c2V0QWZ0ZXIoV3JpdGluZ01vZGUgd3Jp
dGluZ01vZGUsIExheW91dFVuaXQgdmFsdWUpCi17Ci0gICAgc3dpdGNoICh3cml0aW5nTW9kZSkg
ewotICAgIGNhc2UgVG9wVG9Cb3R0b21Xcml0aW5nTW9kZToKLSAgICAgICAgbV9ib3R0b20gPSB2
YWx1ZTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBCb3R0b21Ub1RvcFdyaXRpbmdNb2RlOgot
ICAgICAgICBtX3RvcCA9IHZhbHVlOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIExlZnRUb1Jp
Z2h0V3JpdGluZ01vZGU6Ci0gICAgICAgIG1fcmlnaHQgPSB2YWx1ZTsKLSAgICAgICAgYnJlYWs7
Ci0gICAgY2FzZSBSaWdodFRvTGVmdFdyaXRpbmdNb2RlOgotICAgICAgICBtX2xlZnQgPSB2YWx1
ZTsKLSAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7Ci0gICAgICAgIG1fYm90dG9tID0gdmFsdWU7Ci0gICAgfQotfQotCi12b2lkIExheW91
dEJveEV4dGVudDo6c2V0U3RhcnQoV3JpdGluZ01vZGUgd3JpdGluZ01vZGUsIFRleHREaXJlY3Rp
b24gZGlyZWN0aW9uLCBMYXlvdXRVbml0IHZhbHVlKQotewotICAgIGlmIChpc0hvcml6b250YWxX
cml0aW5nTW9kZSh3cml0aW5nTW9kZSkpIHsKLSAgICAgICAgaWYgKGlzTGVmdFRvUmlnaHREaXJl
Y3Rpb24oZGlyZWN0aW9uKSkKLSAgICAgICAgICAgIG1fbGVmdCA9IHZhbHVlOwotICAgICAgICBl
bHNlCi0gICAgICAgICAgICBtX3JpZ2h0ID0gdmFsdWU7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAg
aWYgKGlzTGVmdFRvUmlnaHREaXJlY3Rpb24oZGlyZWN0aW9uKSkKLSAgICAgICAgICAgIG1fdG9w
ID0gdmFsdWU7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1fYm90dG9tID0gdmFsdWU7Ci0g
ICAgfQotfQotCi12b2lkIExheW91dEJveEV4dGVudDo6c2V0RW5kKFdyaXRpbmdNb2RlIHdyaXRp
bmdNb2RlLCBUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbiwgTGF5b3V0VW5pdCB2YWx1ZSkKLXsKLSAg
ICBpZiAoaXNIb3Jpem9udGFsV3JpdGluZ01vZGUod3JpdGluZ01vZGUpKSB7Ci0gICAgICAgIGlm
IChpc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKGRpcmVjdGlvbikpCi0gICAgICAgICAgICBtX3JpZ2h0
ID0gdmFsdWU7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1fbGVmdCA9IHZhbHVlOwotICAg
IH0gZWxzZSB7Ci0gICAgICAgIGlmIChpc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKGRpcmVjdGlvbikp
Ci0gICAgICAgICAgICBtX2JvdHRvbSA9IHZhbHVlOwotICAgICAgICBlbHNlCi0gICAgICAgICAg
ICBtX3RvcCA9IHZhbHVlOwotICAgIH0KLX0KLQotTGF5b3V0VW5pdCYgTGF5b3V0Qm94RXh0ZW50
OjptdXRhYmxlTG9naWNhbExlZnQoV3JpdGluZ01vZGUgd3JpdGluZ01vZGUpCi17Ci0gICAgcmV0
dXJuIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKHdyaXRpbmdNb2RlKSA/IG1fbGVmdCA6IG1fdG9w
OwotfQotCi1MYXlvdXRVbml0JiBMYXlvdXRCb3hFeHRlbnQ6Om11dGFibGVMb2dpY2FsUmlnaHQo
V3JpdGluZ01vZGUgd3JpdGluZ01vZGUpCi17Ci0gICAgcmV0dXJuIGlzSG9yaXpvbnRhbFdyaXRp
bmdNb2RlKHdyaXRpbmdNb2RlKSA/IG1fcmlnaHQgOiBtX2JvdHRvbTsKLX0KLQotTGF5b3V0VW5p
dCYgTGF5b3V0Qm94RXh0ZW50OjptdXRhYmxlQmVmb3JlKFdyaXRpbmdNb2RlIHdyaXRpbmdNb2Rl
KQotewotICAgIHJldHVybiBpc0hvcml6b250YWxXcml0aW5nTW9kZSh3cml0aW5nTW9kZSkgPyAo
aXNGbGlwcGVkQmxvY2tzV3JpdGluZ01vZGUod3JpdGluZ01vZGUpID8gbV9ib3R0b20gOiBtX3Rv
cCkgOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
aXNGbGlwcGVkQmxvY2tzV3JpdGluZ01vZGUod3JpdGluZ01vZGUpID8gbV9yaWdodDogbV9sZWZ0
KTsKLX0KLQotTGF5b3V0VW5pdCYgTGF5b3V0Qm94RXh0ZW50OjptdXRhYmxlQWZ0ZXIoV3JpdGlu
Z01vZGUgd3JpdGluZ01vZGUpCi17Ci0gICAgcmV0dXJuIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2Rl
KHdyaXRpbmdNb2RlKSA/IChpc0ZsaXBwZWRCbG9ja3NXcml0aW5nTW9kZSh3cml0aW5nTW9kZSkg
PyBtX3RvcCA6IG1fYm90dG9tKSA6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChpc0ZsaXBwZWRCbG9ja3NXcml0aW5nTW9kZSh3cml0aW5nTW9kZSkg
PyBtX2xlZnQ6IG1fcmlnaHQpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9MYXlvdXRCb3hFeHRlbnQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9MYXlvdXRCb3hFeHRlbnQu
aAkocmV2aXNpb24gMTg0NjU1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TGF5b3V0Qm94RXh0ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsODYgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoYykgMjAxMiwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlz
dHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwot
ICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVm
IExheW91dEJveEV4dGVudF9oCi0jZGVmaW5lIExheW91dEJveEV4dGVudF9oCi0KLSNpbmNsdWRl
ICJMYXlvdXRVbml0LmgiCi0jaW5jbHVkZSAiVGV4dEZsYWdzLmgiCi0jaW5jbHVkZSAiV3JpdGlu
Z01vZGUuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBMYXlvdXRCb3hFeHRlbnQg
ewotcHVibGljOgotICAgIExheW91dEJveEV4dGVudCgpIDogbV90b3AoMCksIG1fcmlnaHQoMCks
IG1fYm90dG9tKDApLCBtX2xlZnQoMCkgeyB9Ci0gICAgTGF5b3V0Qm94RXh0ZW50KExheW91dFVu
aXQgdG9wLCBMYXlvdXRVbml0IHJpZ2h0LCBMYXlvdXRVbml0IGJvdHRvbSwgTGF5b3V0VW5pdCBs
ZWZ0KQotICAgICAgICA6IG1fdG9wKHRvcCksIG1fcmlnaHQocmlnaHQpLCBtX2JvdHRvbShib3R0
b20pLCBtX2xlZnQobGVmdCkgeyB9Ci0KLSAgICBpbmxpbmUgTGF5b3V0VW5pdCB0b3AoKSBjb25z
dCB7IHJldHVybiBtX3RvcDsgfQotICAgIGlubGluZSBMYXlvdXRVbml0IHJpZ2h0KCkgY29uc3Qg
eyByZXR1cm4gbV9yaWdodDsgfQotICAgIGlubGluZSBMYXlvdXRVbml0IGJvdHRvbSgpIGNvbnN0
IHsgcmV0dXJuIG1fYm90dG9tOyB9Ci0gICAgaW5saW5lIExheW91dFVuaXQgbGVmdCgpIGNvbnN0
IHsgcmV0dXJuIG1fbGVmdDsgfQotCi0gICAgaW5saW5lIHZvaWQgc2V0VG9wKExheW91dFVuaXQg
dmFsdWUpIHsgbV90b3AgPSB2YWx1ZTsgfQotICAgIGlubGluZSB2b2lkIHNldFJpZ2h0KExheW91
dFVuaXQgdmFsdWUpIHsgbV9yaWdodCA9IHZhbHVlOyB9Ci0gICAgaW5saW5lIHZvaWQgc2V0Qm90
dG9tKExheW91dFVuaXQgdmFsdWUpIHsgbV9ib3R0b20gPSB2YWx1ZTsgfQotICAgIGlubGluZSB2
b2lkIHNldExlZnQoTGF5b3V0VW5pdCB2YWx1ZSkgeyBtX2xlZnQgPSB2YWx1ZTsgfQotCi0gICAg
TGF5b3V0VW5pdCBsb2dpY2FsVG9wKFdyaXRpbmdNb2RlKSBjb25zdDsKLSAgICBMYXlvdXRVbml0
IGxvZ2ljYWxCb3R0b20oV3JpdGluZ01vZGUpIGNvbnN0OwotICAgIExheW91dFVuaXQgbG9naWNh
bExlZnQoV3JpdGluZ01vZGUpIGNvbnN0OwotICAgIExheW91dFVuaXQgbG9naWNhbFJpZ2h0KFdy
aXRpbmdNb2RlKSBjb25zdDsKLQotICAgIExheW91dFVuaXQgYmVmb3JlKFdyaXRpbmdNb2RlKSBj
b25zdDsKLSAgICBMYXlvdXRVbml0IGFmdGVyKFdyaXRpbmdNb2RlKSBjb25zdDsKLSAgICBMYXlv
dXRVbml0IHN0YXJ0KFdyaXRpbmdNb2RlLCBUZXh0RGlyZWN0aW9uKSBjb25zdDsKLSAgICBMYXlv
dXRVbml0IGVuZChXcml0aW5nTW9kZSwgVGV4dERpcmVjdGlvbikgY29uc3Q7Ci0KLSAgICB2b2lk
IHNldEJlZm9yZShXcml0aW5nTW9kZSwgTGF5b3V0VW5pdCk7Ci0gICAgdm9pZCBzZXRBZnRlcihX
cml0aW5nTW9kZSwgTGF5b3V0VW5pdCk7Ci0gICAgdm9pZCBzZXRTdGFydChXcml0aW5nTW9kZSwg
VGV4dERpcmVjdGlvbiwgTGF5b3V0VW5pdCk7Ci0gICAgdm9pZCBzZXRFbmQoV3JpdGluZ01vZGUs
IFRleHREaXJlY3Rpb24sIExheW91dFVuaXQpOwotCi0gICAgTGF5b3V0VW5pdCYgbXV0YWJsZUxv
Z2ljYWxMZWZ0KFdyaXRpbmdNb2RlKTsKLSAgICBMYXlvdXRVbml0JiBtdXRhYmxlTG9naWNhbFJp
Z2h0KFdyaXRpbmdNb2RlKTsKLQotICAgIExheW91dFVuaXQmIG11dGFibGVCZWZvcmUoV3JpdGlu
Z01vZGUpOwotICAgIExheW91dFVuaXQmIG11dGFibGVBZnRlcihXcml0aW5nTW9kZSk7Ci0KLXBy
aXZhdGU6Ci0gICAgTGF5b3V0VW5pdCBtX3RvcDsKLSAgICBMYXlvdXRVbml0IG1fcmlnaHQ7Ci0g
ICAgTGF5b3V0VW5pdCBtX2JvdHRvbTsKLSAgICBMYXlvdXRVbml0IG1fbGVmdDsKLX07Ci0KLX0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIExheW91dEJveEV4dGVudF9oCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9MYXlvdXRSZWN0LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTGF5b3V0UmVjdC5oCShyZXZp
c2lvbiAxODQ2NTUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9MYXlvdXRS
ZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDggKzMzLDggQEAKIAogI2luY2x1ZGUgIkZsb2F0
UmVjdC5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKLSNpbmNsdWRlICJMYXlvdXRCb3hFeHRlbnQu
aCIKICNpbmNsdWRlICJMYXlvdXRQb2ludC5oIgorI2luY2x1ZGUgIkxlbmd0aEJveC5oIgogI2lu
Y2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Xcml0aW5nTW9kZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvV3JpdGluZ01vZGUuaAkocmV2aXNpb24gMTg0NjU1KQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Xcml0aW5nTW9kZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC01NSw2ICs1NSwyMSBAQCBpbmxpbmUgYm9vbCBpc0ZsaXBwZWRCbG9ja3NXcml0aW5n
TW9kZShXCiAgICAgcmV0dXJuIHdyaXRpbmdNb2RlID09IFJpZ2h0VG9MZWZ0V3JpdGluZ01vZGUg
fHwgd3JpdGluZ01vZGUgPT0gQm90dG9tVG9Ub3BXcml0aW5nTW9kZTsKIH0KIAorZW51bSBMb2dp
Y2FsQm94U2lkZSB7CisgICAgQmVmb3JlU2lkZSwKKyAgICBFbmRTaWRlLAorICAgIEFmdGVyU2lk
ZSwKKyAgICBTdGFydFNpZGUKK307CisKK2VudW0gUGh5c2ljYWxCb3hTaWRlIHsKKyAgICBOaWxT
aWRlID0gLTEsCisgICAgVG9wU2lkZSwKKyAgICBSaWdodFNpZGUsCisgICAgQm90dG9tU2lkZSwK
KyAgICBMZWZ0U2lkZQorfTsKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8g
V3JpdGluZ01vZGVfaApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dC
b3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93
Qm94LmNwcAkocmV2aXNpb24gMTg0NjU1KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lu
bGluZUZsb3dCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04NDMsMTAgKzg0MywxMCBAQCBpbmxp
bmUgdm9pZCBJbmxpbmVGbG93Qm94OjphZGRCb3JkZXJPdXRzCiAKICAgICBMYXlvdXRCb3hFeHRl
bnQgYm9yZGVyT3V0c2V0cyA9IGxpbmVTdHlsZS5ib3JkZXJJbWFnZU91dHNldHMoKTsKIAotICAg
IExheW91dFVuaXQgYm9yZGVyT3V0c2V0TG9naWNhbFRvcCA9IGJvcmRlck91dHNldHMubG9naWNh
bFRvcChsaW5lU3R5bGUud3JpdGluZ01vZGUoKSk7Ci0gICAgTGF5b3V0VW5pdCBib3JkZXJPdXRz
ZXRMb2dpY2FsQm90dG9tID0gYm9yZGVyT3V0c2V0cy5sb2dpY2FsQm90dG9tKGxpbmVTdHlsZS53
cml0aW5nTW9kZSgpKTsKLSAgICBMYXlvdXRVbml0IGJvcmRlck91dHNldExvZ2ljYWxMZWZ0ID0g
Ym9yZGVyT3V0c2V0cy5sb2dpY2FsTGVmdChsaW5lU3R5bGUud3JpdGluZ01vZGUoKSk7Ci0gICAg
TGF5b3V0VW5pdCBib3JkZXJPdXRzZXRMb2dpY2FsUmlnaHQgPSBib3JkZXJPdXRzZXRzLmxvZ2lj
YWxSaWdodChsaW5lU3R5bGUud3JpdGluZ01vZGUoKSk7CisgICAgTGF5b3V0VW5pdCBib3JkZXJP
dXRzZXRMb2dpY2FsVG9wID0gYm9yZGVyT3V0c2V0cy5iZWZvcmUobGluZVN0eWxlLndyaXRpbmdN
b2RlKCkpOworICAgIExheW91dFVuaXQgYm9yZGVyT3V0c2V0TG9naWNhbEJvdHRvbSA9IGJvcmRl
ck91dHNldHMuYWZ0ZXIobGluZVN0eWxlLndyaXRpbmdNb2RlKCkpOworICAgIExheW91dFVuaXQg
Ym9yZGVyT3V0c2V0TG9naWNhbExlZnQgPSBib3JkZXJPdXRzZXRzLnN0YXJ0KGxpbmVTdHlsZS53
cml0aW5nTW9kZSgpKTsKKyAgICBMYXlvdXRVbml0IGJvcmRlck91dHNldExvZ2ljYWxSaWdodCA9
IGJvcmRlck91dHNldHMuZW5kKGxpbmVTdHlsZS53cml0aW5nTW9kZSgpKTsKIAogICAgIC8vIFNp
bWlsYXIgdG8gaG93IGdseXBoIG92ZXJmbG93IHdvcmtzLCBpZiBvdXIgbGluZXMgYXJlIGZsaXBw
ZWQsIHRoZW4gaXQncyBhY3R1YWxseSB0aGUgb3Bwb3NpdGUgYm9yZGVyIHRoYXQgYXBwbGllcywg
c2luY2UKICAgICAvLyB0aGUgbGluZSBpcyAidXBzaWRlIGRvd24iIGluIHRlcm1zIG9mIGJsb2Nr
IGNvb3JkaW5hdGVzLiB2ZXJ0aWNhbC1ybCBhbmQgaG9yaXpvbnRhbC1idCBhcmUgdGhlIGZsaXBw
ZWQgbGluZSBtb2Rlcy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3gu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgJKHJl
dmlzaW9uIDE4NDY1NSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAko
d29ya2luZyBjb3B5KQpAQCAtMjYyLDggKzI2Miw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldE1h
cmdpbkxlZnQoTGF5b3V0VW5pdCBtYXJnaW4pIHsgbV9tYXJnaW5Cb3guc2V0TGVmdChtYXJnaW4p
OyB9CiAgICAgdm9pZCBzZXRNYXJnaW5SaWdodChMYXlvdXRVbml0IG1hcmdpbikgeyBtX21hcmdp
bkJveC5zZXRSaWdodChtYXJnaW4pOyB9CiAKLSAgICBMYXlvdXRVbml0IG1hcmdpbkxvZ2ljYWxM
ZWZ0KCkgY29uc3QgeyByZXR1cm4gbV9tYXJnaW5Cb3gubG9naWNhbExlZnQoc3R5bGUoKS53cml0
aW5nTW9kZSgpKTsgfQotICAgIExheW91dFVuaXQgbWFyZ2luTG9naWNhbFJpZ2h0KCkgY29uc3Qg
eyByZXR1cm4gbV9tYXJnaW5Cb3gubG9naWNhbFJpZ2h0KHN0eWxlKCkud3JpdGluZ01vZGUoKSk7
IH0KKyAgICBMYXlvdXRVbml0IG1hcmdpbkxvZ2ljYWxMZWZ0KCkgY29uc3QgeyByZXR1cm4gbV9t
YXJnaW5Cb3guc3RhcnQoc3R5bGUoKS53cml0aW5nTW9kZSgpKTsgfQorICAgIExheW91dFVuaXQg
bWFyZ2luTG9naWNhbFJpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9tYXJnaW5Cb3guZW5kKHN0eWxl
KCkud3JpdGluZ01vZGUoKSk7IH0KICAgICAKICAgICB2aXJ0dWFsIExheW91dFVuaXQgbWFyZ2lu
QmVmb3JlKGNvbnN0IFJlbmRlclN0eWxlKiBvdmVycmlkZVN0eWxlID0gbnVsbHB0cikgY29uc3Qg
b3ZlcnJpZGUgZmluYWwgeyByZXR1cm4gbV9tYXJnaW5Cb3guYmVmb3JlKChvdmVycmlkZVN0eWxl
ID8gb3ZlcnJpZGVTdHlsZSA6ICZzdHlsZSgpKS0+d3JpdGluZ01vZGUoKSk7IH0KICAgICB2aXJ0
dWFsIExheW91dFVuaXQgbWFyZ2luQWZ0ZXIoY29uc3QgUmVuZGVyU3R5bGUqIG92ZXJyaWRlU3R5
bGUgPSBudWxscHRyKSBjb25zdCBvdmVycmlkZSBmaW5hbCB7IHJldHVybiBtX21hcmdpbkJveC5h
ZnRlcigob3ZlcnJpZGVTdHlsZSA/IG92ZXJyaWRlU3R5bGUgOiAmc3R5bGUoKSktPndyaXRpbmdN
b2RlKCkpOyB9CkBAIC0yNzcsMTcgKzI3NywxNyBAQCBwdWJsaWM6CiAgICAgICAgIGNvbnN0IFJl
bmRlclN0eWxlKiBzdHlsZVRvVXNlID0gb3ZlcnJpZGVTdHlsZSA/IG92ZXJyaWRlU3R5bGUgOiAm
c3R5bGUoKTsKICAgICAgICAgcmV0dXJuIG1fbWFyZ2luQm94LmVuZChzdHlsZVRvVXNlLT53cml0
aW5nTW9kZSgpLCBzdHlsZVRvVXNlLT5kaXJlY3Rpb24oKSk7CiAgICAgfQotICAgIHZvaWQgc2V0
TWFyZ2luQmVmb3JlKExheW91dFVuaXQgdmFsdWUsIGNvbnN0IFJlbmRlclN0eWxlKiBvdmVycmlk
ZVN0eWxlID0gbnVsbHB0cikgeyBtX21hcmdpbkJveC5zZXRCZWZvcmUoKG92ZXJyaWRlU3R5bGUg
PyBvdmVycmlkZVN0eWxlIDogJnN0eWxlKCkpLT53cml0aW5nTW9kZSgpLCB2YWx1ZSk7IH0KLSAg
ICB2b2lkIHNldE1hcmdpbkFmdGVyKExheW91dFVuaXQgdmFsdWUsIGNvbnN0IFJlbmRlclN0eWxl
KiBvdmVycmlkZVN0eWxlID0gbnVsbHB0cikgeyBtX21hcmdpbkJveC5zZXRBZnRlcigob3ZlcnJp
ZGVTdHlsZSA/IG92ZXJyaWRlU3R5bGUgOiAmc3R5bGUoKSktPndyaXRpbmdNb2RlKCksIHZhbHVl
KTsgfQorICAgIHZvaWQgc2V0TWFyZ2luQmVmb3JlKExheW91dFVuaXQgdmFsdWUsIGNvbnN0IFJl
bmRlclN0eWxlKiBvdmVycmlkZVN0eWxlID0gbnVsbHB0cikgeyBtX21hcmdpbkJveC5zZXRCZWZv
cmUodmFsdWUsIChvdmVycmlkZVN0eWxlID8gb3ZlcnJpZGVTdHlsZSA6ICZzdHlsZSgpKS0+d3Jp
dGluZ01vZGUoKSk7IH0KKyAgICB2b2lkIHNldE1hcmdpbkFmdGVyKExheW91dFVuaXQgdmFsdWUs
IGNvbnN0IFJlbmRlclN0eWxlKiBvdmVycmlkZVN0eWxlID0gbnVsbHB0cikgeyBtX21hcmdpbkJv
eC5zZXRBZnRlcih2YWx1ZSwgKG92ZXJyaWRlU3R5bGUgPyBvdmVycmlkZVN0eWxlIDogJnN0eWxl
KCkpLT53cml0aW5nTW9kZSgpKTsgfQogICAgIHZvaWQgc2V0TWFyZ2luU3RhcnQoTGF5b3V0VW5p
dCB2YWx1ZSwgY29uc3QgUmVuZGVyU3R5bGUqIG92ZXJyaWRlU3R5bGUgPSBudWxscHRyKQogICAg
IHsKICAgICAgICAgY29uc3QgUmVuZGVyU3R5bGUqIHN0eWxlVG9Vc2UgPSBvdmVycmlkZVN0eWxl
ID8gb3ZlcnJpZGVTdHlsZSA6ICZzdHlsZSgpOwotICAgICAgICBtX21hcmdpbkJveC5zZXRTdGFy
dChzdHlsZVRvVXNlLT53cml0aW5nTW9kZSgpLCBzdHlsZVRvVXNlLT5kaXJlY3Rpb24oKSwgdmFs
dWUpOworICAgICAgICBtX21hcmdpbkJveC5zZXRTdGFydCh2YWx1ZSwgc3R5bGVUb1VzZS0+d3Jp
dGluZ01vZGUoKSwgc3R5bGVUb1VzZS0+ZGlyZWN0aW9uKCkpOwogICAgIH0KICAgICB2b2lkIHNl
dE1hcmdpbkVuZChMYXlvdXRVbml0IHZhbHVlLCBjb25zdCBSZW5kZXJTdHlsZSogb3ZlcnJpZGVT
dHlsZSA9IG51bGxwdHIpCiAgICAgewogICAgICAgICBjb25zdCBSZW5kZXJTdHlsZSogc3R5bGVU
b1VzZSA9IG92ZXJyaWRlU3R5bGUgPyBvdmVycmlkZVN0eWxlIDogJnN0eWxlKCk7Ci0gICAgICAg
IG1fbWFyZ2luQm94LnNldEVuZChzdHlsZVRvVXNlLT53cml0aW5nTW9kZSgpLCBzdHlsZVRvVXNl
LT5kaXJlY3Rpb24oKSwgdmFsdWUpOworICAgICAgICBtX21hcmdpbkJveC5zZXRFbmQodmFsdWUs
IHN0eWxlVG9Vc2UtPndyaXRpbmdNb2RlKCksIHN0eWxlVG9Vc2UtPmRpcmVjdGlvbigpKTsKICAg
ICB9CiAKICAgICAvLyBUaGUgZm9sbG93aW5nIGZpdmUgZnVuY3Rpb25zIGFyZSB1c2VkIHRvIGlt
cGxlbWVudCBjb2xsYXBzaW5nIG1hcmdpbnMuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAJKHJldmlzaW9uIDE4NDY1NSkKKysr
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTkyMSwxMSArOTIxLDEzIEBAIHN0YXRpYyBpbmxpbmUgTGF5b3V0U2l6ZSBy
ZXNvbHZlQWdhaW5zdEkKICAgICByZXR1cm4gTGF5b3V0U2l6ZShzaXplLndpZHRoKCksIHNvbHV0
aW9uSGVpZ2h0KTsKIH0KIAotTGF5b3V0U2l6ZSBSZW5kZXJCb3hNb2RlbE9iamVjdDo6Y2FsY3Vs
YXRlSW1hZ2VJbnRyaW5zaWNEaW1lbnNpb25zKFN0eWxlSW1hZ2UqIGltYWdlLCBjb25zdCBMYXlv
dXRTaXplJiBwb3NpdGlvbmluZ0FyZWFTaXplLCBTY2FsZUJ5RWZmZWN0aXZlWm9vbU9yTm90IHNo
b3VsZFNjYWxlT3JOb3QpIGNvbnN0Citib29sIFJlbmRlckJveE1vZGVsT2JqZWN0OjpjYWxjdWxh
dGVJbWFnZUludHJpbnNpY0RpbWVuc2lvbnMoU3R5bGVJbWFnZSogaW1hZ2UsIGNvbnN0IExheW91
dFNpemUmIHBvc2l0aW9uaW5nQXJlYVNpemUsIFNjYWxlQnlFZmZlY3RpdmVab29tT3JOb3Qgc2hv
dWxkU2NhbGVPck5vdCwgTGF5b3V0U2l6ZSYgaW1hZ2VTaXplKSBjb25zdAogewogICAgIC8vIEEg
Z2VuZXJhdGVkIGltYWdlIHdpdGhvdXQgYSBmaXhlZCBzaXplLCB3aWxsIGFsd2F5cyByZXR1cm4g
dGhlIGNvbnRhaW5lciBzaXplIGFzIGludHJpbnNpYyBzaXplLgotICAgIGlmIChpbWFnZS0+aXNH
ZW5lcmF0ZWRJbWFnZSgpICYmIGltYWdlLT51c2VzSW1hZ2VDb250YWluZXJTaXplKCkpCi0gICAg
ICAgIHJldHVybiBMYXlvdXRTaXplKHBvc2l0aW9uaW5nQXJlYVNpemUud2lkdGgoKSwgcG9zaXRp
b25pbmdBcmVhU2l6ZS5oZWlnaHQoKSk7CisgICAgaWYgKGltYWdlLT5pc0dlbmVyYXRlZEltYWdl
KCkgJiYgaW1hZ2UtPnVzZXNJbWFnZUNvbnRhaW5lclNpemUoKSkgeworICAgICAgICBpbWFnZVNp
emUgPSBMYXlvdXRTaXplKHBvc2l0aW9uaW5nQXJlYVNpemUud2lkdGgoKSwgcG9zaXRpb25pbmdB
cmVhU2l6ZS5oZWlnaHQoKSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KIAogICAgIExl
bmd0aCBpbnRyaW5zaWNXaWR0aDsKICAgICBMZW5ndGggaW50cmluc2ljSGVpZ2h0OwpAQCAtOTM1
LDMxICs5MzcsMzYgQEAgTGF5b3V0U2l6ZSBSZW5kZXJCb3hNb2RlbE9iamVjdDo6Y2FsY3VsYQog
ICAgIEFTU0VSVCghaW50cmluc2ljV2lkdGguaXNQZXJjZW50T3JDYWxjdWxhdGVkKCkpOwogICAg
IEFTU0VSVCghaW50cmluc2ljSGVpZ2h0LmlzUGVyY2VudE9yQ2FsY3VsYXRlZCgpKTsKIAotICAg
IExheW91dFNpemUgcmVzb2x2ZWRTaXplKGludHJpbnNpY1dpZHRoLnZhbHVlKCksIGludHJpbnNp
Y0hlaWdodC52YWx1ZSgpKTsKLSAgICBMYXlvdXRTaXplIG1pbmltdW1TaXplKHJlc29sdmVkU2l6
ZS53aWR0aCgpID4gMCA/IDEgOiAwLCByZXNvbHZlZFNpemUuaGVpZ2h0KCkgPiAwID8gMSA6IDAp
OworICAgIGltYWdlU2l6ZSA9IExheW91dFNpemUoaW50cmluc2ljV2lkdGgudmFsdWUoKSwgaW50
cmluc2ljSGVpZ2h0LnZhbHVlKCkpOworICAgIExheW91dFNpemUgbWluaW11bVNpemUoaW1hZ2VT
aXplLndpZHRoKCkgPiAwID8gMSA6IDAsIGltYWdlU2l6ZS5oZWlnaHQoKSA+IDAgPyAxIDogMCk7
CiAgICAgaWYgKHNob3VsZFNjYWxlT3JOb3QgPT0gU2NhbGVCeUVmZmVjdGl2ZVpvb20pCi0gICAg
ICAgIHJlc29sdmVkU2l6ZS5zY2FsZShzdHlsZSgpLmVmZmVjdGl2ZVpvb20oKSk7Ci0gICAgcmVz
b2x2ZWRTaXplLmNsYW1wVG9NaW5pbXVtU2l6ZShtaW5pbXVtU2l6ZSk7CisgICAgICAgIGltYWdl
U2l6ZS5zY2FsZShzdHlsZSgpLmVmZmVjdGl2ZVpvb20oKSk7CisgICAgaW1hZ2VTaXplLmNsYW1w
VG9NaW5pbXVtU2l6ZShtaW5pbXVtU2l6ZSk7CiAKLSAgICBpZiAoIXJlc29sdmVkU2l6ZS5pc0Vt
cHR5KCkpCi0gICAgICAgIHJldHVybiByZXNvbHZlZFNpemU7CisgICAgaWYgKCFpbWFnZVNpemUu
aXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIC8vIElmIHRoZSBpbWFnZSBo
YXMgb25lIG9mIGVpdGhlciBhbiBpbnRyaW5zaWMgd2lkdGggb3IgYW4gaW50cmluc2ljIGhlaWdo
dDoKICAgICAvLyAqIGFuZCBhbiBpbnRyaW5zaWMgYXNwZWN0IHJhdGlvLCB0aGVuIHRoZSBtaXNz
aW5nIGRpbWVuc2lvbiBpcyBjYWxjdWxhdGVkIGZyb20gdGhlIGdpdmVuIGRpbWVuc2lvbiBhbmQg
dGhlIHJhdGlvLgogICAgIC8vICogYW5kIG5vIGludHJpbnNpYyBhc3BlY3QgcmF0aW8sIHRoZW4g
dGhlIG1pc3NpbmcgZGltZW5zaW9uIGlzIGFzc3VtZWQgdG8gYmUgdGhlIHNpemUgb2YgdGhlIHJl
Y3RhbmdsZSB0aGF0CiAgICAgLy8gICBlc3RhYmxpc2hlcyB0aGUgY29vcmRpbmF0ZSBzeXN0ZW0g
Zm9yIHRoZSAnYmFja2dyb3VuZC1wb3NpdGlvbicgcHJvcGVydHkuCi0gICAgaWYgKHJlc29sdmVk
U2l6ZS53aWR0aCgpID4gMCB8fCByZXNvbHZlZFNpemUuaGVpZ2h0KCkgPiAwKQotICAgICAgICBy
ZXR1cm4gcmVzb2x2ZUFnYWluc3RJbnRyaW5zaWNXaWR0aE9ySGVpZ2h0QW5kUmF0aW8ocG9zaXRp
b25pbmdBcmVhU2l6ZSwgaW50cmluc2ljUmF0aW8sIHJlc29sdmVkU2l6ZS53aWR0aCgpLCByZXNv
bHZlZFNpemUuaGVpZ2h0KCkpOworICAgIGlmIChpbWFnZVNpemUud2lkdGgoKSA+IDAgfHwgaW1h
Z2VTaXplLmhlaWdodCgpID4gMCkgeworICAgICAgICBpbWFnZVNpemUgPSByZXNvbHZlQWdhaW5z
dEludHJpbnNpY1dpZHRoT3JIZWlnaHRBbmRSYXRpbyhwb3NpdGlvbmluZ0FyZWFTaXplLCBpbnRy
aW5zaWNSYXRpbywgaW1hZ2VTaXplLndpZHRoKCksIGltYWdlU2l6ZS5oZWlnaHQoKSk7CisgICAg
ICAgIHJldHVybiB0cnVlOworICAgIH0KIAogICAgIC8vIElmIHRoZSBpbWFnZSBoYXMgbm8gaW50
cmluc2ljIGRpbWVuc2lvbnMgYW5kIGhhcyBhbiBpbnRyaW5zaWMgcmF0aW8gdGhlIGRpbWVuc2lv
bnMgbXVzdCBiZSBhc3N1bWVkIHRvIGJlIHRoZQogICAgIC8vIGxhcmdlc3QgZGltZW5zaW9ucyBh
dCB0aGF0IHJhdGlvIHN1Y2ggdGhhdCBuZWl0aGVyIGRpbWVuc2lvbiBleGNlZWRzIHRoZSBkaW1l
bnNpb25zIG9mIHRoZSByZWN0YW5nbGUgdGhhdAogICAgIC8vIGVzdGFibGlzaGVzIHRoZSBjb29y
ZGluYXRlIHN5c3RlbSBmb3IgdGhlICdiYWNrZ3JvdW5kLXBvc2l0aW9uJyBwcm9wZXJ0eS4KLSAg
ICBpZiAoIWludHJpbnNpY1JhdGlvLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIHJlc29sdmVB
Z2FpbnN0SW50cmluc2ljUmF0aW8ocG9zaXRpb25pbmdBcmVhU2l6ZSwgaW50cmluc2ljUmF0aW8p
OworICAgIGlmICghaW50cmluc2ljUmF0aW8uaXNFbXB0eSgpKSB7CisgICAgICAgIGltYWdlU2l6
ZSA9IHJlc29sdmVBZ2FpbnN0SW50cmluc2ljUmF0aW8ocG9zaXRpb25pbmdBcmVhU2l6ZSwgaW50
cmluc2ljUmF0aW8pOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQogCiAgICAgLy8gSWYg
dGhlIGltYWdlIGhhcyBubyBpbnRyaW5zaWMgcmF0aW8gZWl0aGVyLCB0aGVuIHRoZSBkaW1lbnNp
b25zIG11c3QgYmUgYXNzdW1lZCB0byBiZSB0aGUgcmVjdGFuZ2xlIHRoYXQKICAgICAvLyBlc3Rh
Ymxpc2hlcyB0aGUgY29vcmRpbmF0ZSBzeXN0ZW0gZm9yIHRoZSAnYmFja2dyb3VuZC1wb3NpdGlv
bicgcHJvcGVydHkuCi0gICAgcmV0dXJuIHBvc2l0aW9uaW5nQXJlYVNpemU7CisgICAgaW1hZ2VT
aXplID0gcG9zaXRpb25pbmdBcmVhU2l6ZTsKKyAgICByZXR1cm4gZmFsc2U7CiB9CiAKIExheW91
dFNpemUgUmVuZGVyQm94TW9kZWxPYmplY3Q6OmNhbGN1bGF0ZUZpbGxUaWxlU2l6ZShjb25zdCBG
aWxsTGF5ZXImIGZpbGxMYXllciwgY29uc3QgTGF5b3V0U2l6ZSYgcG9zaXRpb25pbmdBcmVhU2l6
ZSkgY29uc3QKQEAgLTk2OSw3ICs5NzYsNyBAQCBMYXlvdXRTaXplIFJlbmRlckJveE1vZGVsT2Jq
ZWN0OjpjYWxjdWxhCiAKICAgICBMYXlvdXRTaXplIGltYWdlSW50cmluc2ljU2l6ZTsKICAgICBp
ZiAoaW1hZ2UpIHsKLSAgICAgICAgaW1hZ2VJbnRyaW5zaWNTaXplID0gY2FsY3VsYXRlSW1hZ2VJ
bnRyaW5zaWNEaW1lbnNpb25zKGltYWdlLCBwb3NpdGlvbmluZ0FyZWFTaXplLCBTY2FsZUJ5RWZm
ZWN0aXZlWm9vbSk7CisgICAgICAgIGNhbGN1bGF0ZUltYWdlSW50cmluc2ljRGltZW5zaW9ucyhp
bWFnZSwgcG9zaXRpb25pbmdBcmVhU2l6ZSwgU2NhbGVCeUVmZmVjdGl2ZVpvb20sIGltYWdlSW50
cmluc2ljU2l6ZSk7CiAgICAgICAgIGltYWdlSW50cmluc2ljU2l6ZS5zY2FsZSgxIC8gaW1hZ2Ut
PmltYWdlU2NhbGVGYWN0b3IoKSwgMSAvIGltYWdlLT5pbWFnZVNjYWxlRmFjdG9yKCkpOwogICAg
IH0gZWxzZQogICAgICAgICBpbWFnZUludHJpbnNpY1NpemUgPSBwb3NpdGlvbmluZ0FyZWFTaXpl
OwpAQCAtMTIzOCwxNSArMTI0NSw2IEBAIHZvaWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OmdldEdl
b21ldHJ5Rm8KICAgICBkZXN0UmVjdCA9IGdlb21ldHJ5LmRlc3RSZWN0KCk7CiB9CiAKLXN0YXRp
YyBMYXlvdXRVbml0IGNvbXB1dGVCb3JkZXJJbWFnZVNpZGUoTGVuZ3RoIGJvcmRlclNsaWNlLCBM
YXlvdXRVbml0IGJvcmRlclNpZGUsIExheW91dFVuaXQgaW1hZ2VTaWRlLCBMYXlvdXRVbml0IGJv
eEV4dGVudCkKLXsKLSAgICBpZiAoYm9yZGVyU2xpY2UuaXNSZWxhdGl2ZSgpKQotICAgICAgICBy
ZXR1cm4gYm9yZGVyU2xpY2UudmFsdWUoKSAqIGJvcmRlclNpZGU7Ci0gICAgaWYgKGJvcmRlclNs
aWNlLmlzQXV0bygpKQotICAgICAgICByZXR1cm4gaW1hZ2VTaWRlOwotICAgIHJldHVybiB2YWx1
ZUZvckxlbmd0aChib3JkZXJTbGljZSwgYm94RXh0ZW50KTsKLX0KLQogYm9vbCBSZW5kZXJCb3hN
b2RlbE9iamVjdDo6cGFpbnROaW5lUGllY2VJbWFnZShHcmFwaGljc0NvbnRleHQqIGdyYXBoaWNz
Q29udGV4dCwgY29uc3QgTGF5b3V0UmVjdCYgcmVjdCwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxl
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBO
aW5lUGllY2VJbWFnZSYgbmluZVBpZWNlSW1hZ2UsIENvbXBvc2l0ZU9wZXJhdG9yIG9wKQogewpA
QCAtMTI2MywxNTIgKzEyNjEsMTggQEAgYm9vbCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRO
aW5lUGllYwogICAgIC8vIEZJWE1FOiBib3JkZXItaW1hZ2UgaXMgYnJva2VuIHdpdGggZnVsbCBw
YWdlIHpvb21pbmcgd2hlbiB0aWxpbmcgaGFzIHRvIGhhcHBlbiwgc2luY2UgdGhlIHRpbGluZyBm
dW5jdGlvbgogICAgIC8vIGRvZXNuJ3QgaGF2ZSBhbnkgdW5kZXJzdGFuZGluZyBvZiB0aGUgem9v
bSB0aGF0IGlzIGluIGVmZmVjdCBvbiB0aGUgdGlsZS4KICAgICBmbG9hdCBkZXZpY2VTY2FsZUZh
Y3RvciA9IGRvY3VtZW50KCkuZGV2aWNlU2NhbGVGYWN0b3IoKTsKKwogICAgIExheW91dFJlY3Qg
cmVjdFdpdGhPdXRzZXRzID0gcmVjdDsKICAgICByZWN0V2l0aE91dHNldHMuZXhwYW5kKHN0eWxl
LmltYWdlT3V0c2V0cyhuaW5lUGllY2VJbWFnZSkpOwotICAgIExheW91dFJlY3QgYm9yZGVySW1h
Z2VSZWN0ID0gTGF5b3V0UmVjdChzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKHJlY3RXaXRoT3V0c2V0
cywgZGV2aWNlU2NhbGVGYWN0b3IpKTsKKyAgICBMYXlvdXRSZWN0IGRlc3RpbmF0aW9uID0gTGF5
b3V0UmVjdChzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKHJlY3RXaXRoT3V0c2V0cywgZGV2aWNlU2Nh
bGVGYWN0b3IpKTsKIAotICAgIExheW91dFNpemUgaW1hZ2VTaXplID0gY2FsY3VsYXRlSW1hZ2VJ
bnRyaW5zaWNEaW1lbnNpb25zKHN0eWxlSW1hZ2UsIGJvcmRlckltYWdlUmVjdC5zaXplKCksIERv
Tm90U2NhbGVCeUVmZmVjdGl2ZVpvb20pOworICAgIExheW91dFNpemUgc291cmNlOworICAgIGJv
b2wgaW50cmluc2ljU291cmNlID0gY2FsY3VsYXRlSW1hZ2VJbnRyaW5zaWNEaW1lbnNpb25zKHN0
eWxlSW1hZ2UsIGRlc3RpbmF0aW9uLnNpemUoKSwgRG9Ob3RTY2FsZUJ5RWZmZWN0aXZlWm9vbSwg
c291cmNlKTsKIAogICAgIC8vIElmIGJvdGggdmFsdWVzIGFyZSDigJhhdXRv4oCZIHRoZW4gdGhl
IGludHJpbnNpYyB3aWR0aCBhbmQvb3IgaGVpZ2h0IG9mIHRoZSBpbWFnZSBzaG91bGQgYmUgdXNl
ZCwgaWYgYW55LgotICAgIHN0eWxlSW1hZ2UtPnNldENvbnRhaW5lclNpemVGb3JSZW5kZXJlcih0
aGlzLCBpbWFnZVNpemUsIHN0eWxlLmVmZmVjdGl2ZVpvb20oKSk7Ci0KLSAgICBMYXlvdXRVbml0
IGltYWdlV2lkdGggPSBpbWFnZVNpemUud2lkdGgoKTsKLSAgICBMYXlvdXRVbml0IGltYWdlSGVp
Z2h0ID0gaW1hZ2VTaXplLmhlaWdodCgpOwotCi0gICAgZmxvYXQgaW1hZ2VTY2FsZUZhY3RvciA9
IHN0eWxlSW1hZ2UtPmltYWdlU2NhbGVGYWN0b3IoKTsKLSAgICBMYXlvdXRVbml0IHRvcFNsaWNl
ID0gc3RkOjptaW48TGF5b3V0VW5pdD4oaW1hZ2VIZWlnaHQsIHZhbHVlRm9yTGVuZ3RoKG5pbmVQ
aWVjZUltYWdlLmltYWdlU2xpY2VzKCkudG9wKCksIGltYWdlSGVpZ2h0KSkgKiBpbWFnZVNjYWxl
RmFjdG9yOwotICAgIExheW91dFVuaXQgcmlnaHRTbGljZSA9IHN0ZDo6bWluPExheW91dFVuaXQ+
KGltYWdlV2lkdGgsIHZhbHVlRm9yTGVuZ3RoKG5pbmVQaWVjZUltYWdlLmltYWdlU2xpY2VzKCku
cmlnaHQoKSwgaW1hZ2VXaWR0aCkpICogaW1hZ2VTY2FsZUZhY3RvcjsKLSAgICBMYXlvdXRVbml0
IGJvdHRvbVNsaWNlID0gc3RkOjptaW48TGF5b3V0VW5pdD4oaW1hZ2VIZWlnaHQsIHZhbHVlRm9y
TGVuZ3RoKG5pbmVQaWVjZUltYWdlLmltYWdlU2xpY2VzKCkuYm90dG9tKCksIGltYWdlSGVpZ2h0
KSkgKiBpbWFnZVNjYWxlRmFjdG9yOwotICAgIExheW91dFVuaXQgbGVmdFNsaWNlID0gc3RkOjpt
aW48TGF5b3V0VW5pdD4oaW1hZ2VXaWR0aCwgdmFsdWVGb3JMZW5ndGgobmluZVBpZWNlSW1hZ2Uu
aW1hZ2VTbGljZXMoKS5sZWZ0KCksIGltYWdlV2lkdGgpKSAqIGltYWdlU2NhbGVGYWN0b3I7Ci0K
LSAgICBFTmluZVBpZWNlSW1hZ2VSdWxlIGhSdWxlID0gbmluZVBpZWNlSW1hZ2UuaG9yaXpvbnRh
bFJ1bGUoKTsKLSAgICBFTmluZVBpZWNlSW1hZ2VSdWxlIHZSdWxlID0gbmluZVBpZWNlSW1hZ2Uu
dmVydGljYWxSdWxlKCk7Ci0KLSAgICBMYXlvdXRVbml0IHRvcFdpZHRoID0gY29tcHV0ZUJvcmRl
ckltYWdlU2lkZShuaW5lUGllY2VJbWFnZS5ib3JkZXJTbGljZXMoKS50b3AoKSwgc3R5bGUuYm9y
ZGVyVG9wV2lkdGgoKSwgdG9wU2xpY2UsIGJvcmRlckltYWdlUmVjdC5oZWlnaHQoKSk7Ci0gICAg
TGF5b3V0VW5pdCByaWdodFdpZHRoID0gY29tcHV0ZUJvcmRlckltYWdlU2lkZShuaW5lUGllY2VJ
bWFnZS5ib3JkZXJTbGljZXMoKS5yaWdodCgpLCBzdHlsZS5ib3JkZXJSaWdodFdpZHRoKCksIHJp
Z2h0U2xpY2UsIGJvcmRlckltYWdlUmVjdC53aWR0aCgpKTsKLSAgICBMYXlvdXRVbml0IGJvdHRv
bVdpZHRoID0gY29tcHV0ZUJvcmRlckltYWdlU2lkZShuaW5lUGllY2VJbWFnZS5ib3JkZXJTbGlj
ZXMoKS5ib3R0b20oKSwgc3R5bGUuYm9yZGVyQm90dG9tV2lkdGgoKSwgYm90dG9tU2xpY2UsIGJv
cmRlckltYWdlUmVjdC5oZWlnaHQoKSk7Ci0gICAgTGF5b3V0VW5pdCBsZWZ0V2lkdGggPSBjb21w
dXRlQm9yZGVySW1hZ2VTaWRlKG5pbmVQaWVjZUltYWdlLmJvcmRlclNsaWNlcygpLmxlZnQoKSwg
c3R5bGUuYm9yZGVyTGVmdFdpZHRoKCksIGxlZnRTbGljZSwgYm9yZGVySW1hZ2VSZWN0LndpZHRo
KCkpOwotCi0gICAgLy8gUmVkdWNlIHRoZSB3aWR0aHMgaWYgdGhleSdyZSB0b28gbGFyZ2UuCi0g
ICAgLy8gVGhlIHNwZWMgc2F5czogR2l2ZW4gTHdpZHRoIGFzIHRoZSB3aWR0aCBvZiB0aGUgYm9y
ZGVyIGltYWdlIGFyZWEsIExoZWlnaHQgYXMgaXRzIGhlaWdodCwgYW5kIFdzaWRlIGFzIHRoZSBi
b3JkZXIgaW1hZ2Ugd2lkdGgKLSAgICAvLyBvZmZzZXQgZm9yIHRoZSBzaWRlLCBsZXQgZiA9IG1p
bihMd2lkdGgvKFdsZWZ0K1dyaWdodCksIExoZWlnaHQvKFd0b3ArV2JvdHRvbSkpLiBJZiBmIDwg
MSwgdGhlbiBhbGwgVyBhcmUgcmVkdWNlZCBieQotICAgIC8vIG11bHRpcGx5aW5nIHRoZW0gYnkg
Zi4KLSAgICBMYXlvdXRVbml0IGJvcmRlclNpZGVXaWR0aCA9IHN0ZDo6bWF4PExheW91dFVuaXQ+
KDEgLyBkZXZpY2VTY2FsZUZhY3RvciwgbGVmdFdpZHRoICsgcmlnaHRXaWR0aCk7Ci0gICAgTGF5
b3V0VW5pdCBib3JkZXJTaWRlSGVpZ2h0ID0gc3RkOjptYXg8TGF5b3V0VW5pdD4oMSAvIGRldmlj
ZVNjYWxlRmFjdG9yLCB0b3BXaWR0aCArIGJvdHRvbVdpZHRoKTsKLSAgICBmbG9hdCBib3JkZXJT
aWRlU2NhbGVGYWN0b3IgPSBzdGQ6Om1pbigoZmxvYXQpYm9yZGVySW1hZ2VSZWN0LndpZHRoKCkg
LyBib3JkZXJTaWRlV2lkdGgsIChmbG9hdClib3JkZXJJbWFnZVJlY3QuaGVpZ2h0KCkgLyBib3Jk
ZXJTaWRlSGVpZ2h0KTsKLSAgICBpZiAoYm9yZGVyU2lkZVNjYWxlRmFjdG9yIDwgMSkgewotICAg
ICAgICB0b3BXaWR0aCAqPSBib3JkZXJTaWRlU2NhbGVGYWN0b3I7Ci0gICAgICAgIHJpZ2h0V2lk
dGggKj0gYm9yZGVyU2lkZVNjYWxlRmFjdG9yOwotICAgICAgICBib3R0b21XaWR0aCAqPSBib3Jk
ZXJTaWRlU2NhbGVGYWN0b3I7Ci0gICAgICAgIGxlZnRXaWR0aCAqPSBib3JkZXJTaWRlU2NhbGVG
YWN0b3I7Ci0gICAgfQotCi0gICAgYm9vbCBkcmF3TGVmdCA9IGxlZnRTbGljZSA+IDAgJiYgbGVm
dFdpZHRoID4gMDsKLSAgICBib29sIGRyYXdUb3AgPSB0b3BTbGljZSA+IDAgJiYgdG9wV2lkdGgg
PiAwOwotICAgIGJvb2wgZHJhd1JpZ2h0ID0gcmlnaHRTbGljZSA+IDAgJiYgcmlnaHRXaWR0aCA+
IDA7Ci0gICAgYm9vbCBkcmF3Qm90dG9tID0gYm90dG9tU2xpY2UgPiAwICYmIGJvdHRvbVdpZHRo
ID4gMDsKLSAgICBib29sIGRyYXdNaWRkbGUgPSBuaW5lUGllY2VJbWFnZS5maWxsKCkgJiYgKGlt
YWdlV2lkdGggLSBsZWZ0U2xpY2UgLSByaWdodFNsaWNlKSA+IDAgJiYgKGJvcmRlckltYWdlUmVj
dC53aWR0aCgpIC0gbGVmdFdpZHRoIC0gcmlnaHRXaWR0aCkgPiAwCi0gICAgICAgICAgICAgICAg
ICAgICAgJiYgKGltYWdlSGVpZ2h0IC0gdG9wU2xpY2UgLSBib3R0b21TbGljZSkgPiAwICYmIChi
b3JkZXJJbWFnZVJlY3QuaGVpZ2h0KCkgLSB0b3BXaWR0aCAtIGJvdHRvbVdpZHRoKSA+IDA7Ci0K
LSAgICBSZWZQdHI8SW1hZ2U+IGltYWdlID0gc3R5bGVJbWFnZS0+aW1hZ2UodGhpcywgaW1hZ2VT
aXplKTsKLSAgICBDb2xvclNwYWNlIGNvbG9yU3BhY2UgPSBzdHlsZS5jb2xvclNwYWNlKCk7Ci0g
ICAgCi0gICAgZmxvYXQgZGVzdGluYXRpb25XaWR0aCA9IGJvcmRlckltYWdlUmVjdC53aWR0aCgp
IC0gbGVmdFdpZHRoIC0gcmlnaHRXaWR0aDsKLSAgICBmbG9hdCBkZXN0aW5hdGlvbkhlaWdodCA9
IGJvcmRlckltYWdlUmVjdC5oZWlnaHQoKSAtIHRvcFdpZHRoIC0gYm90dG9tV2lkdGg7Ci0gICAg
Ci0gICAgZmxvYXQgc291cmNlV2lkdGggPSBpbWFnZVdpZHRoIC0gbGVmdFNsaWNlIC0gcmlnaHRT
bGljZTsKLSAgICBmbG9hdCBzb3VyY2VIZWlnaHQgPSBpbWFnZUhlaWdodCAtIHRvcFNsaWNlIC0g
Ym90dG9tU2xpY2U7Ci0gICAgCi0gICAgZmxvYXQgbGVmdFNpZGVTY2FsZSA9IGRyYXdMZWZ0ID8g
KGZsb2F0KWxlZnRXaWR0aCAvIGxlZnRTbGljZSA6IDE7Ci0gICAgZmxvYXQgcmlnaHRTaWRlU2Nh
bGUgPSBkcmF3UmlnaHQgPyAoZmxvYXQpcmlnaHRXaWR0aCAvIHJpZ2h0U2xpY2UgOiAxOwotICAg
IGZsb2F0IHRvcFNpZGVTY2FsZSA9IGRyYXdUb3AgPyAoZmxvYXQpdG9wV2lkdGggLyB0b3BTbGlj
ZSA6IDE7Ci0gICAgZmxvYXQgYm90dG9tU2lkZVNjYWxlID0gZHJhd0JvdHRvbSA/IChmbG9hdCli
b3R0b21XaWR0aCAvIGJvdHRvbVNsaWNlIDogMTsKLQotICAgIGZsb2F0IHggPSBib3JkZXJJbWFn
ZVJlY3QubG9jYXRpb24oKS54KCk7Ci0gICAgZmxvYXQgeSA9IGJvcmRlckltYWdlUmVjdC5sb2Nh
dGlvbigpLnkoKTsKLSAgICBpZiAoZHJhd0xlZnQpIHsKLSAgICAgICAgLy8gUGFpbnQgdGhlIHRv
cCBhbmQgYm90dG9tIGxlZnQgY29ybmVycy4KLQotICAgICAgICAvLyBUaGUgdG9wIGxlZnQgY29y
bmVyIHJlY3QgaXMgKHR4LCB0eSwgbGVmdFdpZHRoLCB0b3BXaWR0aCkKLSAgICAgICAgLy8gVGhl
IHJlY3QgdG8gdXNlIGZyb20gd2l0aGluIHRoZSBpbWFnZSBpcyBvYnRhaW5lZCBmcm9tIG91ciBz
bGljZSwgYW5kIGlzICgwLCAwLCBsZWZ0U2xpY2UsIHRvcFNsaWNlKQotICAgICAgICBpZiAoZHJh
d1RvcCkKLSAgICAgICAgICAgIGdyYXBoaWNzQ29udGV4dC0+ZHJhd0ltYWdlKGltYWdlLmdldCgp
LCBjb2xvclNwYWNlLCBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKHgsIHksIGxlZnRXaWR0aCwgdG9w
V2lkdGgsIGRldmljZVNjYWxlRmFjdG9yKSwKLSAgICAgICAgICAgICAgICBzbmFwUmVjdFRvRGV2
aWNlUGl4ZWxzKDAsIDAsIGxlZnRTbGljZSwgdG9wU2xpY2UsIGRldmljZVNjYWxlRmFjdG9yKSwg
b3ApOwotCi0gICAgICAgIC8vIFRoZSBib3R0b20gbGVmdCBjb3JuZXIgcmVjdCBpcyAodHgsIHR5
ICsgaCAtIGJvdHRvbVdpZHRoLCBsZWZ0V2lkdGgsIGJvdHRvbVdpZHRoKQotICAgICAgICAvLyBU
aGUgcmVjdCB0byB1c2UgZnJvbSB3aXRoaW4gdGhlIGltYWdlIGlzICgwLCBpbWFnZUhlaWdodCAt
IGJvdHRvbVNsaWNlLCBsZWZ0U2xpY2UsIGJvdG9tU2xpY2UpCi0gICAgICAgIGlmIChkcmF3Qm90
dG9tKQotICAgICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5kcmF3SW1hZ2UoaW1hZ2UuZ2V0KCks
IGNvbG9yU3BhY2UsIHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMoeCwgYm9yZGVySW1hZ2VSZWN0Lm1h
eFkoKSAtIGJvdHRvbVdpZHRoLCBsZWZ0V2lkdGgsIGJvdHRvbVdpZHRoLCBkZXZpY2VTY2FsZUZh
Y3RvciksCi0gICAgICAgICAgICAgICAgc25hcFJlY3RUb0RldmljZVBpeGVscygwLCBpbWFnZUhl
aWdodCAtIGJvdHRvbVNsaWNlLCBsZWZ0U2xpY2UsIGJvdHRvbVNsaWNlLCBkZXZpY2VTY2FsZUZh
Y3RvciksIG9wKTsKLQotICAgICAgICAvLyBQYWludCB0aGUgbGVmdCBlZGdlLgotICAgICAgICAv
LyBIYXZlIHRvIHNjYWxlIGFuZCB0aWxlIGludG8gdGhlIGJvcmRlciByZWN0LgotICAgICAgICBp
ZiAoc291cmNlSGVpZ2h0ID4gMCkKLSAgICAgICAgICAgIGdyYXBoaWNzQ29udGV4dC0+ZHJhd1Rp
bGVkSW1hZ2UoaW1hZ2UuZ2V0KCksIGNvbG9yU3BhY2UsIHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMo
eCwgeSArIHRvcFdpZHRoLCBsZWZ0V2lkdGgsIGRlc3RpbmF0aW9uSGVpZ2h0LCBkZXZpY2VTY2Fs
ZUZhY3RvciksCi0gICAgICAgICAgICAgICAgc25hcFJlY3RUb0RldmljZVBpeGVscygwLCB0b3BT
bGljZSwgbGVmdFNsaWNlLCBzb3VyY2VIZWlnaHQsIGRldmljZVNjYWxlRmFjdG9yKSwgRmxvYXRT
aXplKGxlZnRTaWRlU2NhbGUsIGxlZnRTaWRlU2NhbGUpLCBJbWFnZTo6U3RyZXRjaFRpbGUsIChJ
bWFnZTo6VGlsZVJ1bGUpdlJ1bGUsIG9wKTsKLSAgICB9Ci0KLSAgICBpZiAoZHJhd1JpZ2h0KSB7
Ci0gICAgICAgIC8vIFBhaW50IHRoZSB0b3AgYW5kIGJvdHRvbSByaWdodCBjb3JuZXJzCi0gICAg
ICAgIC8vIFRoZSB0b3AgcmlnaHQgY29ybmVyIHJlY3QgaXMgKHR4ICsgdyAtIHJpZ2h0V2lkdGgs
IHR5LCByaWdodFdpZHRoLCB0b3BXaWR0aCkKLSAgICAgICAgLy8gVGhlIHJlY3QgdG8gdXNlIGZy
b20gd2l0aGluIHRoZSBpbWFnZSBpcyBvYnRhaW5lZCBmcm9tIG91ciBzbGljZSwgYW5kIGlzIChp
bWFnZVdpZHRoIC0gcmlnaHRTbGljZSwgMCwgcmlnaHRTbGljZSwgdG9wU2xpY2UpCi0gICAgICAg
IGlmIChkcmF3VG9wKQotICAgICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5kcmF3SW1hZ2UoaW1h
Z2UuZ2V0KCksIGNvbG9yU3BhY2UsIHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMoYm9yZGVySW1hZ2VS
ZWN0Lm1heFgoKSAtIHJpZ2h0V2lkdGgsIHksIHJpZ2h0V2lkdGgsIHRvcFdpZHRoLCBkZXZpY2VT
Y2FsZUZhY3RvciksCi0gICAgICAgICAgICAgICAgc25hcFJlY3RUb0RldmljZVBpeGVscyhpbWFn
ZVdpZHRoIC0gcmlnaHRTbGljZSwgMCwgcmlnaHRTbGljZSwgdG9wU2xpY2UsIGRldmljZVNjYWxl
RmFjdG9yKSwgb3ApOwotCi0gICAgICAgIC8vIFRoZSBib3R0b20gcmlnaHQgY29ybmVyIHJlY3Qg
aXMgKHR4ICsgdyAtIHJpZ2h0V2lkdGgsIHR5ICsgaCAtIGJvdHRvbVdpZHRoLCByaWdodFdpZHRo
LCBib3R0b21XaWR0aCkKLSAgICAgICAgLy8gVGhlIHJlY3QgdG8gdXNlIGZyb20gd2l0aGluIHRo
ZSBpbWFnZSBpcyAoaW1hZ2VXaWR0aCAtIHJpZ2h0U2xpY2UsIGltYWdlSGVpZ2h0IC0gYm90dG9t
U2xpY2UsIHJpZ2h0U2xpY2UsIGJvdHRvbVNsaWNlKQotICAgICAgICBpZiAoZHJhd0JvdHRvbSkK
LSAgICAgICAgICAgIGdyYXBoaWNzQ29udGV4dC0+ZHJhd0ltYWdlKGltYWdlLmdldCgpLCBjb2xv
clNwYWNlLCBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKGJvcmRlckltYWdlUmVjdC5tYXhYKCkgLSBy
aWdodFdpZHRoLCBib3JkZXJJbWFnZVJlY3QubWF4WSgpIC0gYm90dG9tV2lkdGgsCi0gICAgICAg
ICAgICAgICAgcmlnaHRXaWR0aCwgYm90dG9tV2lkdGgsIGRldmljZVNjYWxlRmFjdG9yKSwgc25h
cFJlY3RUb0RldmljZVBpeGVscyhpbWFnZVdpZHRoIC0gcmlnaHRTbGljZSwgaW1hZ2VIZWlnaHQg
LSBib3R0b21TbGljZSwgcmlnaHRTbGljZSwgYm90dG9tU2xpY2UsIGRldmljZVNjYWxlRmFjdG9y
KSwKLSAgICAgICAgICAgICAgICBvcCk7Ci0KLSAgICAgICAgLy8gUGFpbnQgdGhlIHJpZ2h0IGVk
Z2UuCi0gICAgICAgIGlmIChzb3VyY2VIZWlnaHQgPiAwKQotICAgICAgICAgICAgZ3JhcGhpY3ND
b250ZXh0LT5kcmF3VGlsZWRJbWFnZShpbWFnZS5nZXQoKSwgY29sb3JTcGFjZSwgc25hcFJlY3RU
b0RldmljZVBpeGVscyhib3JkZXJJbWFnZVJlY3QubWF4WCgpIC0gcmlnaHRXaWR0aCwgeSArIHRv
cFdpZHRoLCByaWdodFdpZHRoLCBkZXN0aW5hdGlvbkhlaWdodCwgZGV2aWNlU2NhbGVGYWN0b3Ip
LAotICAgICAgICAgICAgICAgIHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMoaW1hZ2VXaWR0aCAtIHJp
Z2h0U2xpY2UsIHRvcFNsaWNlLCByaWdodFNsaWNlLCBzb3VyY2VIZWlnaHQsIGRldmljZVNjYWxl
RmFjdG9yKSwgRmxvYXRTaXplKHJpZ2h0U2lkZVNjYWxlLCByaWdodFNpZGVTY2FsZSksCi0gICAg
ICAgICAgICAgICAgSW1hZ2U6OlN0cmV0Y2hUaWxlLCAoSW1hZ2U6OlRpbGVSdWxlKXZSdWxlLCBv
cCk7Ci0gICAgfQotCi0gICAgLy8gUGFpbnQgdGhlIHRvcCBlZGdlLgotICAgIGlmIChkcmF3VG9w
ICYmIHNvdXJjZVdpZHRoID4gMCkKLSAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5kcmF3VGlsZWRJ
bWFnZShpbWFnZS5nZXQoKSwgY29sb3JTcGFjZSwgc25hcFJlY3RUb0RldmljZVBpeGVscyh4ICsg
bGVmdFdpZHRoLCB5LCBkZXN0aW5hdGlvbldpZHRoLCB0b3BXaWR0aCwgZGV2aWNlU2NhbGVGYWN0
b3IpLAotICAgICAgICAgICAgc25hcFJlY3RUb0RldmljZVBpeGVscyhsZWZ0U2xpY2UsIDAsIHNv
dXJjZVdpZHRoLCB0b3BTbGljZSwgZGV2aWNlU2NhbGVGYWN0b3IpLCBGbG9hdFNpemUodG9wU2lk
ZVNjYWxlLCB0b3BTaWRlU2NhbGUpLCAoSW1hZ2U6OlRpbGVSdWxlKWhSdWxlLCBJbWFnZTo6U3Ry
ZXRjaFRpbGUsIG9wKTsKLQotICAgIC8vIFBhaW50IHRoZSBib3R0b20gZWRnZS4KLSAgICBpZiAo
ZHJhd0JvdHRvbSAmJiBzb3VyY2VXaWR0aCA+IDApCi0gICAgICAgIGdyYXBoaWNzQ29udGV4dC0+
ZHJhd1RpbGVkSW1hZ2UoaW1hZ2UuZ2V0KCksIGNvbG9yU3BhY2UsIHNuYXBSZWN0VG9EZXZpY2VQ
aXhlbHMoeCArIGxlZnRXaWR0aCwgYm9yZGVySW1hZ2VSZWN0Lm1heFkoKSAtIGJvdHRvbVdpZHRo
LCBkZXN0aW5hdGlvbldpZHRoLCBib3R0b21XaWR0aCwgZGV2aWNlU2NhbGVGYWN0b3IpLAotICAg
ICAgICAgICAgc25hcFJlY3RUb0RldmljZVBpeGVscyhsZWZ0U2xpY2UsIGltYWdlSGVpZ2h0IC0g
Ym90dG9tU2xpY2UsIHNvdXJjZVdpZHRoLCBib3R0b21TbGljZSwgZGV2aWNlU2NhbGVGYWN0b3Ip
LCBGbG9hdFNpemUoYm90dG9tU2lkZVNjYWxlLCBib3R0b21TaWRlU2NhbGUpLAotICAgICAgICAg
ICAgKEltYWdlOjpUaWxlUnVsZSloUnVsZSwgSW1hZ2U6OlN0cmV0Y2hUaWxlLCBvcCk7Ci0KLSAg
ICAvLyBQYWludCB0aGUgbWlkZGxlLgotICAgIGlmIChkcmF3TWlkZGxlKSB7Ci0gICAgICAgIEZs
b2F0U2l6ZSBtaWRkbGVTY2FsZUZhY3RvcigxLCAxKTsKLSAgICAgICAgaWYgKGRyYXdUb3ApCi0g
ICAgICAgICAgICBtaWRkbGVTY2FsZUZhY3Rvci5zZXRXaWR0aCh0b3BTaWRlU2NhbGUpOwotICAg
ICAgICBlbHNlIGlmIChkcmF3Qm90dG9tKQotICAgICAgICAgICAgbWlkZGxlU2NhbGVGYWN0b3Iu
c2V0V2lkdGgoYm90dG9tU2lkZVNjYWxlKTsKLSAgICAgICAgaWYgKGRyYXdMZWZ0KQotICAgICAg
ICAgICAgbWlkZGxlU2NhbGVGYWN0b3Iuc2V0SGVpZ2h0KGxlZnRTaWRlU2NhbGUpOwotICAgICAg
ICBlbHNlIGlmIChkcmF3UmlnaHQpCi0gICAgICAgICAgICBtaWRkbGVTY2FsZUZhY3Rvci5zZXRI
ZWlnaHQocmlnaHRTaWRlU2NhbGUpOwotICAgICAgICAgICAgCi0gICAgICAgIC8vIEZvciAic3Ry
ZXRjaCIgcnVsZXMsIGp1c3Qgb3ZlcnJpZGUgdGhlIHNjYWxlIGZhY3RvciBhbmQgcmVwbGFjZS4g
V2Ugb25seSBoYWQgdG8gZG8gdGhpcyBmb3IgdGhlCi0gICAgICAgIC8vIGNlbnRlciB0aWxlLCBz
aW5jZSBzaWRlcyBkb24ndCBldmVuIHVzZSB0aGUgc2NhbGUgZmFjdG9yIHVubGVzcyB0aGV5IGhh
dmUgYSBydWxlIG90aGVyIHRoYW4gInN0cmV0Y2giLgotICAgICAgICAvLyBUaGUgbWlkZGxlIGhv
d2V2ZXIgY2FuIGhhdmUgInN0cmV0Y2giIHNwZWNpZmllZCBpbiBvbmUgYXhpcyBidXQgbm90IHRo
ZSBvdGhlciwgc28gd2UgaGF2ZSB0bwotICAgICAgICAvLyBjb3JyZWN0IHRoZSBzY2FsZSBoZXJl
LgotICAgICAgICBpZiAoaFJ1bGUgPT0gU3RyZXRjaEltYWdlUnVsZSkKLSAgICAgICAgICAgIG1p
ZGRsZVNjYWxlRmFjdG9yLnNldFdpZHRoKGRlc3RpbmF0aW9uV2lkdGggLyBzb3VyY2VXaWR0aCk7
Ci0gICAgICAgICAgICAKLSAgICAgICAgaWYgKHZSdWxlID09IFN0cmV0Y2hJbWFnZVJ1bGUpCi0g
ICAgICAgICAgICBtaWRkbGVTY2FsZUZhY3Rvci5zZXRIZWlnaHQoZGVzdGluYXRpb25IZWlnaHQg
LyBzb3VyY2VIZWlnaHQpOwotICAgICAgICAKLSAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5kcmF3
VGlsZWRJbWFnZShpbWFnZS5nZXQoKSwgY29sb3JTcGFjZSwKLSAgICAgICAgICAgIHNuYXBSZWN0
VG9EZXZpY2VQaXhlbHMoeCArIGxlZnRXaWR0aCwgeSArIHRvcFdpZHRoLCBkZXN0aW5hdGlvbldp
ZHRoLCBkZXN0aW5hdGlvbkhlaWdodCwgZGV2aWNlU2NhbGVGYWN0b3IpLAotICAgICAgICAgICAg
c25hcFJlY3RUb0RldmljZVBpeGVscyhsZWZ0U2xpY2UsIHRvcFNsaWNlLCBzb3VyY2VXaWR0aCwg
c291cmNlSGVpZ2h0LCBkZXZpY2VTY2FsZUZhY3RvciksCi0gICAgICAgICAgICBtaWRkbGVTY2Fs
ZUZhY3RvciwgKEltYWdlOjpUaWxlUnVsZSloUnVsZSwgKEltYWdlOjpUaWxlUnVsZSl2UnVsZSwg
b3ApOwotICAgIH0KKyAgICBzdHlsZUltYWdlLT5zZXRDb250YWluZXJTaXplRm9yUmVuZGVyZXIo
dGhpcywgc291cmNlLCBzdHlsZS5lZmZlY3RpdmVab29tKCkpOwogCisgICAgbmluZVBpZWNlSW1h
Z2UucGFpbnQoZ3JhcGhpY3NDb250ZXh0LCB0aGlzLCBzdHlsZSwgZGVzdGluYXRpb24sIHNvdXJj
ZSwgaW50cmluc2ljU291cmNlLCBkZXZpY2VTY2FsZUZhY3Rvciwgb3ApOwogICAgIHJldHVybiB0
cnVlOwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxP
YmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94
TW9kZWxPYmplY3QuaAkocmV2aXNpb24gMTg0NjU1KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTI4OSw3ICsyODks
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBtb3ZlQ2hpbGRyZW5UbyhSZW5kZXJCb3hNb2RlbE9iamVj
dCogdG9Cb3hNb2RlbE9iamVjdCwgUmVuZGVyT2JqZWN0KiBzdGFydENoaWxkLCBSZW5kZXJPYmpl
Y3QqIGVuZENoaWxkLCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkLCBib29sIGZ1bGxSZW1vdmVJ
bnNlcnQgPSBmYWxzZSk7CiAKICAgICBlbnVtIFNjYWxlQnlFZmZlY3RpdmVab29tT3JOb3QgeyBT
Y2FsZUJ5RWZmZWN0aXZlWm9vbSwgRG9Ob3RTY2FsZUJ5RWZmZWN0aXZlWm9vbSB9OwotICAgIExh
eW91dFNpemUgY2FsY3VsYXRlSW1hZ2VJbnRyaW5zaWNEaW1lbnNpb25zKFN0eWxlSW1hZ2UqLCBj
b25zdCBMYXlvdXRTaXplJiBzY2FsZWRQb3NpdGlvbmluZ0FyZWFTaXplLCBTY2FsZUJ5RWZmZWN0
aXZlWm9vbU9yTm90KSBjb25zdDsKKyAgICBib29sIGNhbGN1bGF0ZUltYWdlSW50cmluc2ljRGlt
ZW5zaW9ucyhTdHlsZUltYWdlKiwgY29uc3QgTGF5b3V0U2l6ZSYgc2NhbGVkUG9zaXRpb25pbmdB
cmVhU2l6ZSwgU2NhbGVCeUVmZmVjdGl2ZVpvb21Pck5vdCwgTGF5b3V0U2l6ZSYgaW1hZ2VTaXpl
KSBjb25zdDsKIAogcHJpdmF0ZToKICAgICBMYXlvdXRVbml0IGNvbXB1dGVkQ1NTUGFkZGluZyhj
b25zdCBMZW5ndGgmKSBjb25zdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMaXN0TWFya2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGlzdE1hcmtlci5jcHAJKHJldmlzaW9uIDE4NDY1NSkKKysrIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQyNiw3
ICsxNDI2LDggQEAgdm9pZCBSZW5kZXJMaXN0TWFya2VyOjp1cGRhdGVDb250ZW50KCkKICAgICAg
ICAgLy8gdW50aWwgd2Ugc3VwcG9ydCB0aGUgQ1NTMyBtYXJrZXIgcHNldWRvY2xhc3MgdG8gYWxs
b3cgY29udHJvbCBvdmVyIHRoZSB3aWR0aCBhbmQgaGVpZ2h0IG9mIHRoZSBtYXJrZXIgYm94Lgog
ICAgICAgICBMYXlvdXRVbml0IGJ1bGxldFdpZHRoID0gc3R5bGUoKS5mb250TWV0cmljcygpLmFz
Y2VudCgpIC8gTGF5b3V0VW5pdCgyKTsKICAgICAgICAgTGF5b3V0U2l6ZSBkZWZhdWx0QnVsbGV0
U2l6ZShidWxsZXRXaWR0aCwgYnVsbGV0V2lkdGgpOwotICAgICAgICBMYXlvdXRTaXplIGltYWdl
U2l6ZSA9IGNhbGN1bGF0ZUltYWdlSW50cmluc2ljRGltZW5zaW9ucyhtX2ltYWdlLmdldCgpLCBk
ZWZhdWx0QnVsbGV0U2l6ZSwgRG9Ob3RTY2FsZUJ5RWZmZWN0aXZlWm9vbSk7CisgICAgICAgIExh
eW91dFNpemUgaW1hZ2VTaXplOworICAgICAgICBjYWxjdWxhdGVJbWFnZUludHJpbnNpY0RpbWVu
c2lvbnMobV9pbWFnZS5nZXQoKSwgZGVmYXVsdEJ1bGxldFNpemUsIERvTm90U2NhbGVCeUVmZmVj
dGl2ZVpvb20sIGltYWdlU2l6ZSk7CiAgICAgICAgIG1faW1hZ2UtPnNldENvbnRhaW5lclNpemVG
b3JSZW5kZXJlcih0aGlzLCBpbWFnZVNpemUsIHN0eWxlKCkuZWZmZWN0aXZlWm9vbSgpKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFw
ZXMvU2hhcGVPdXRzaWRlSW5mby5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3NoYXBlcy9TaGFwZU91dHNpZGVJbmZvLmNwcAkocmV2aXNpb24gMTg0NjU1KQorKysg
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZU91dHNpZGVJbmZvLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTQ4LDcgKzE0OCw4IEBAIHN0YXRpYyBMYXlvdXRSZWN0IGdldFNoYXBl
SW1hZ2VNYXJnaW5SZWMKIAogc3RkOjp1bmlxdWVfcHRyPFNoYXBlPiBTaGFwZU91dHNpZGVJbmZv
OjpjcmVhdGVTaGFwZUZvckltYWdlKFN0eWxlSW1hZ2UqIHN0eWxlSW1hZ2UsIGZsb2F0IHNoYXBl
SW1hZ2VUaHJlc2hvbGQsIFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlLCBmbG9hdCBtYXJnaW4pIGNv
bnN0CiB7Ci0gICAgY29uc3QgTGF5b3V0U2l6ZSYgaW1hZ2VTaXplID0gbV9yZW5kZXJlci5jYWxj
dWxhdGVJbWFnZUludHJpbnNpY0RpbWVuc2lvbnMoc3R5bGVJbWFnZSwgbV9yZWZlcmVuY2VCb3hM
b2dpY2FsU2l6ZSwgUmVuZGVySW1hZ2U6OlNjYWxlQnlFZmZlY3RpdmVab29tKTsKKyAgICBMYXlv
dXRTaXplIGltYWdlU2l6ZTsKKyAgICBtX3JlbmRlcmVyLmNhbGN1bGF0ZUltYWdlSW50cmluc2lj
RGltZW5zaW9ucyhzdHlsZUltYWdlLCBtX3JlZmVyZW5jZUJveExvZ2ljYWxTaXplLCBSZW5kZXJJ
bWFnZTo6U2NhbGVCeUVmZmVjdGl2ZVpvb20sIGltYWdlU2l6ZSk7CiAgICAgc3R5bGVJbWFnZS0+
c2V0Q29udGFpbmVyU2l6ZUZvclJlbmRlcmVyKCZtX3JlbmRlcmVyLCBpbWFnZVNpemUsIG1fcmVu
ZGVyZXIuc3R5bGUoKS5lZmZlY3RpdmVab29tKCkpOwogCiAgICAgY29uc3QgTGF5b3V0UmVjdCYg
bWFyZ2luUmVjdCA9IGdldFNoYXBlSW1hZ2VNYXJnaW5SZWN0KG1fcmVuZGVyZXIsIG1fcmVmZXJl
bmNlQm94TG9naWNhbFNpemUpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L0JvcmRlckRhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvQm9yZGVyRGF0YS5oCShyZXZpc2lvbiAxODQ2NTUpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvQm9yZGVyRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC05Miw2ICs5MiwxMSBA
QCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgcmV0dXJuIG1fYm90dG9t
LndpZHRoKCk7CiAgICAgfQorCisgICAgRmxvYXRCb3hFeHRlbnQgYm9yZGVyV2lkdGgoKSBjb25z
dAorICAgIHsKKyAgICAgICAgcmV0dXJuIEZsb2F0Qm94RXh0ZW50KGJvcmRlclRvcFdpZHRoKCks
IGJvcmRlclJpZ2h0V2lkdGgoKSwgYm9yZGVyQm90dG9tV2lkdGgoKSwgYm9yZGVyTGVmdFdpZHRo
KCkpOworICAgIH0KICAgICAKICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgQm9yZGVyRGF0YSYg
bykgY29uc3QKICAgICB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvTmlu
ZVBpZWNlSW1hZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9OaW5lUGllY2VJbWFnZS5jcHAJKHJldmlzaW9uIDE4NDY1NSkKKysrIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9OaW5lUGllY2VJbWFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTIsNyArMiw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDAgTGFycyBLbm9sbCAoa25vbGxAa2Rl
Lm9yZykKICAqICAgICAgICAgICAoQykgMjAwMCBBbnR0aSBLb2l2aXN0byAoa29pdmlzdG9Aa2Rl
Lm9yZykKICAqICAgICAgICAgICAoQykgMjAwMCBEaXJrIE11ZWxsZXIgKG11ZWxsZXJAa2RlLm9y
ZykKLSAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAxMyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIw
MDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMTMsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yMyw2ICsyMywxMCBAQAogCiAjaW5jbHVk
ZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiTmluZVBpZWNlSW1hZ2UuaCIKKworI2luY2x1ZGUgIkdy
YXBoaWNzQ29udGV4dC5oIgorI2luY2x1ZGUgIkxlbmd0aEZ1bmN0aW9ucy5oIgorI2luY2x1ZGUg
IlJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKQEAgLTUwLDExICs1NCwyMDUgQEAgTmluZVBpZWNlSW1hZ2U6Ok5pbmVQ
aWVjZUltYWdlKFBhc3NSZWZQdAogICAgIG1fZGF0YS5hY2Nlc3MoKS0+dmVydGljYWxSdWxlID0g
dmVydGljYWxSdWxlOwogfQogCitMYXlvdXRVbml0IE5pbmVQaWVjZUltYWdlOjpjb21wdXRlU2xp
Y2UoTGVuZ3RoIGxlbmd0aCwgTGF5b3V0VW5pdCB3aWR0aCwgTGF5b3V0VW5pdCBzbGljZSwgTGF5
b3V0VW5pdCBleHRlbnQpCit7CisgICAgaWYgKGxlbmd0aC5pc1JlbGF0aXZlKCkpCisgICAgICAg
IHJldHVybiBsZW5ndGgudmFsdWUoKSAqIHdpZHRoOworICAgIGlmIChsZW5ndGguaXNBdXRvKCkp
CisgICAgICAgIHJldHVybiBzbGljZTsKKyAgICByZXR1cm4gdmFsdWVGb3JMZW5ndGgobGVuZ3Ro
LCBleHRlbnQpOworfQorCitMYXlvdXRCb3hFeHRlbnQgTmluZVBpZWNlSW1hZ2U6OmNvbXB1dGVT
bGljZXMoY29uc3QgTGF5b3V0U2l6ZSYgc2l6ZSwgY29uc3QgTGVuZ3RoQm94JiBsZW5ndGhzLCBp
bnQgc2NhbGVGYWN0b3IpCit7CisgICAgTGF5b3V0VW5pdCB0b3AgICAgPSBzdGQ6Om1pbjxMYXlv
dXRVbml0PihzaXplLmhlaWdodCgpLCB2YWx1ZUZvckxlbmd0aChsZW5ndGhzLnRvcCgpLCAgICBz
aXplLmhlaWdodCgpKSkgKiBzY2FsZUZhY3RvcjsKKyAgICBMYXlvdXRVbml0IHJpZ2h0ICA9IHN0
ZDo6bWluPExheW91dFVuaXQ+KHNpemUud2lkdGgoKSwgIHZhbHVlRm9yTGVuZ3RoKGxlbmd0aHMu
cmlnaHQoKSwgIHNpemUud2lkdGgoKSkpICAqIHNjYWxlRmFjdG9yOworICAgIExheW91dFVuaXQg
Ym90dG9tID0gc3RkOjptaW48TGF5b3V0VW5pdD4oc2l6ZS5oZWlnaHQoKSwgdmFsdWVGb3JMZW5n
dGgobGVuZ3Rocy5ib3R0b20oKSwgc2l6ZS5oZWlnaHQoKSkpICogc2NhbGVGYWN0b3I7CisgICAg
TGF5b3V0VW5pdCBsZWZ0ICAgPSBzdGQ6Om1pbjxMYXlvdXRVbml0PihzaXplLndpZHRoKCksICB2
YWx1ZUZvckxlbmd0aChsZW5ndGhzLmxlZnQoKSwgICBzaXplLndpZHRoKCkpKSAgKiBzY2FsZUZh
Y3RvcjsKKyAgICByZXR1cm4gTGF5b3V0Qm94RXh0ZW50KHRvcCwgcmlnaHQsIGJvdHRvbSwgbGVm
dCk7Cit9CisKK0xheW91dEJveEV4dGVudCBOaW5lUGllY2VJbWFnZTo6Y29tcHV0ZVNsaWNlcyhj
b25zdCBMYXlvdXRTaXplJiBzaXplLCBjb25zdCBMZW5ndGhCb3gmIGxlbmd0aHMsIGNvbnN0IEZs
b2F0Qm94RXh0ZW50JiB3aWR0aHMsIGNvbnN0IExheW91dEJveEV4dGVudCYgc2xpY2VzKQorewor
ICAgIExheW91dFVuaXQgdG9wICAgID0gY29tcHV0ZVNsaWNlKGxlbmd0aHMudG9wKCksICAgIHdp
ZHRocy50b3AoKSwgICAgc2xpY2VzLnRvcCgpLCAgICBzaXplLmhlaWdodCgpKTsKKyAgICBMYXlv
dXRVbml0IHJpZ2h0ICA9IGNvbXB1dGVTbGljZShsZW5ndGhzLnJpZ2h0KCksICB3aWR0aHMucmln
aHQoKSwgIHNsaWNlcy5yaWdodCgpLCAgc2l6ZS53aWR0aCgpKTsKKyAgICBMYXlvdXRVbml0IGJv
dHRvbSA9IGNvbXB1dGVTbGljZShsZW5ndGhzLmJvdHRvbSgpLCB3aWR0aHMuYm90dG9tKCksIHNs
aWNlcy5ib3R0b20oKSwgc2l6ZS5oZWlnaHQoKSk7CisgICAgTGF5b3V0VW5pdCBsZWZ0ICAgPSBj
b21wdXRlU2xpY2UobGVuZ3Rocy5sZWZ0KCksICAgd2lkdGhzLmxlZnQoKSwgICBzbGljZXMubGVm
dCgpLCAgIHNpemUud2lkdGgoKSk7CisgICAgcmV0dXJuIExheW91dEJveEV4dGVudCh0b3AsIHJp
Z2h0LCBib3R0b20sIGxlZnQpOworfQorCit2b2lkIE5pbmVQaWVjZUltYWdlOjpzY2FsZVNsaWNl
c0lmTmVlZGVkKGNvbnN0IExheW91dFNpemUmIHNpemUsIExheW91dEJveEV4dGVudCYgc2xpY2Vz
LCBpbnQgc2NhbGVGYWN0b3IpCit7CisgICAgTGF5b3V0VW5pdCB3aWR0aCAgPSBzdGQ6Om1heDxM
YXlvdXRVbml0PigxIC8gc2NhbGVGYWN0b3IsIHNsaWNlcy5sZWZ0KCkgKyBzbGljZXMucmlnaHQo
KSk7CisgICAgTGF5b3V0VW5pdCBoZWlnaHQgPSBzdGQ6Om1heDxMYXlvdXRVbml0PigxIC8gc2Nh
bGVGYWN0b3IsIHNsaWNlcy50b3AoKSArIHNsaWNlcy5ib3R0b20oKSk7CisKKyAgICBmbG9hdCBz
bGljZVNjYWxlRmFjdG9yID0gc3RkOjptaW4oKGZsb2F0KXNpemUud2lkdGgoKSAvIHdpZHRoLCAo
ZmxvYXQpc2l6ZS5oZWlnaHQoKSAvIGhlaWdodCk7CisKKyAgICBpZiAoc2xpY2VTY2FsZUZhY3Rv
ciA+PSAxKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBBbGwgc2xpY2VzIGFyZSByZWR1Y2Vk
IGJ5IG11bHRpcGx5aW5nIHRoZW0gYnkgc2xpY2VTY2FsZUZhY3Rvci4KKyAgICBzbGljZXMudG9w
KCkgICAgKj0gc2xpY2VTY2FsZUZhY3RvcjsKKyAgICBzbGljZXMucmlnaHQoKSAgKj0gc2xpY2VT
Y2FsZUZhY3RvcjsKKyAgICBzbGljZXMuYm90dG9tKCkgKj0gc2xpY2VTY2FsZUZhY3RvcjsKKyAg
ICBzbGljZXMubGVmdCgpICAgKj0gc2xpY2VTY2FsZUZhY3RvcjsKK30KKworYm9vbCBOaW5lUGll
Y2VJbWFnZTo6aXNFbXB0eVBpZWNlUmVjdChJbWFnZVBpZWNlIHBpZWNlLCBjb25zdCBMYXlvdXRC
b3hFeHRlbnQmIHNsaWNlcykKK3sKKyAgICBpZiAocGllY2UgPT0gTWlkZGxlUGllY2UpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgIFBoeXNpY2FsQm94U2lkZSBob3Jpem9udGFsU2lkZSA9
IGltYWdlUGllY2VIb3Jpem9udGFsU2lkZShwaWVjZSk7CisgICAgUGh5c2ljYWxCb3hTaWRlIHZl
cnRpY2FsU2lkZSA9IGltYWdlUGllY2VWZXJ0aWNhbFNpZGUocGllY2UpOworICAgIHJldHVybiAh
KChob3Jpem9udGFsU2lkZSA9PSBOaWxTaWRlIHx8IHNsaWNlcy5hdChob3Jpem9udGFsU2lkZSkp
ICYmICh2ZXJ0aWNhbFNpZGUgPT0gTmlsU2lkZSB8fCBzbGljZXMuYXQodmVydGljYWxTaWRlKSkp
OworfQorCitib29sIE5pbmVQaWVjZUltYWdlOjppc0VtcHR5UGllY2VSZWN0KEltYWdlUGllY2Ug
cGllY2UsIGNvbnN0IFZlY3RvcjxGbG9hdFJlY3Q+JiBkZXN0aW5hdGlvblJlY3RzLCBjb25zdCBW
ZWN0b3I8RmxvYXRSZWN0PiYgc291cmNlUmVjdHMpCit7CisgICAgcmV0dXJuIGRlc3RpbmF0aW9u
UmVjdHNbcGllY2VdLmlzRW1wdHkoKSB8fCBzb3VyY2VSZWN0c1twaWVjZV0uaXNFbXB0eSgpOwor
fQorCitWZWN0b3I8RmxvYXRSZWN0PiBOaW5lUGllY2VJbWFnZTo6Y29tcHV0ZUludHJpbnNpY1Jl
Y3RzKGNvbnN0IEZsb2F0UmVjdCYgb3V0ZXIsIGNvbnN0IExheW91dEJveEV4dGVudCYgc2xpY2Vz
LCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcikKK3sKKyAgICBGbG9hdFJlY3QgaW5uZXIgPSBvdXRl
cjsKKyAgICBpbm5lci5tb3ZlKHNsaWNlcy5sZWZ0KCksIHNsaWNlcy50b3AoKSk7CisgICAgaW5u
ZXIuY29udHJhY3Qoc2xpY2VzLmxlZnQoKSArIHNsaWNlcy5yaWdodCgpLCBzbGljZXMudG9wKCkg
KyBzbGljZXMuYm90dG9tKCkpOworICAgIEFTU0VSVChvdXRlci5jb250YWlucyhpbm5lcikpOwor
CisgICAgVmVjdG9yPEZsb2F0UmVjdD4gcmVjdHMoTWF4UGllY2UpOworCisgICAgcmVjdHNbVG9w
TGVmdFBpZWNlXSAgICAgPSBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKG91dGVyLngoKSwgICAgb3V0
ZXIueSgpLCAgICBzbGljZXMubGVmdCgpLCAgc2xpY2VzLnRvcCgpLCAgICBkZXZpY2VTY2FsZUZh
Y3Rvcik7CisgICAgcmVjdHNbQm90dG9tTGVmdFBpZWNlXSAgPSBzbmFwUmVjdFRvRGV2aWNlUGl4
ZWxzKG91dGVyLngoKSwgICAgaW5uZXIubWF4WSgpLCBzbGljZXMubGVmdCgpLCAgc2xpY2VzLmJv
dHRvbSgpLCBkZXZpY2VTY2FsZUZhY3Rvcik7CisgICAgcmVjdHNbTGVmdFBpZWNlXSAgICAgICAg
PSBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKG91dGVyLngoKSwgICAgaW5uZXIueSgpLCAgICBzbGlj
ZXMubGVmdCgpLCAgaW5uZXIuaGVpZ2h0KCksICBkZXZpY2VTY2FsZUZhY3Rvcik7CisKKyAgICBy
ZWN0c1tUb3BSaWdodFBpZWNlXSAgICA9IHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMoaW5uZXIubWF4
WCgpLCBvdXRlci55KCksICAgIHNsaWNlcy5yaWdodCgpLCBzbGljZXMudG9wKCksICAgIGRldmlj
ZVNjYWxlRmFjdG9yKTsKKyAgICByZWN0c1tCb3R0b21SaWdodFBpZWNlXSA9IHNuYXBSZWN0VG9E
ZXZpY2VQaXhlbHMoaW5uZXIubWF4WCgpLCBpbm5lci5tYXhZKCksIHNsaWNlcy5yaWdodCgpLCBz
bGljZXMuYm90dG9tKCksIGRldmljZVNjYWxlRmFjdG9yKTsKKyAgICByZWN0c1tSaWdodFBpZWNl
XSAgICAgICA9IHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMoaW5uZXIubWF4WCgpLCBpbm5lci55KCks
ICAgIHNsaWNlcy5yaWdodCgpLCBpbm5lci5oZWlnaHQoKSwgIGRldmljZVNjYWxlRmFjdG9yKTsK
KworICAgIHJlY3RzW1RvcFBpZWNlXSAgICAgICAgID0gc25hcFJlY3RUb0RldmljZVBpeGVscyhp
bm5lci54KCksICAgIG91dGVyLnkoKSwgICAgaW5uZXIud2lkdGgoKSwgIHNsaWNlcy50b3AoKSwg
ICAgZGV2aWNlU2NhbGVGYWN0b3IpOworICAgIHJlY3RzW0JvdHRvbVBpZWNlXSAgICAgID0gc25h
cFJlY3RUb0RldmljZVBpeGVscyhpbm5lci54KCksICAgIGlubmVyLm1heFkoKSwgaW5uZXIud2lk
dGgoKSwgIHNsaWNlcy5ib3R0b20oKSwgZGV2aWNlU2NhbGVGYWN0b3IpOworCisgICAgcmVjdHNb
TWlkZGxlUGllY2VdICAgICAgPSBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKGlubmVyLngoKSwgICAg
aW5uZXIueSgpLCAgICBpbm5lci53aWR0aCgpLCAgaW5uZXIuaGVpZ2h0KCksICBkZXZpY2VTY2Fs
ZUZhY3Rvcik7CisgICAgcmV0dXJuIHJlY3RzOworfQorCitWZWN0b3I8RmxvYXRSZWN0PiBOaW5l
UGllY2VJbWFnZTo6Y29tcHV0ZU5vbkludHJpbnNpY1JlY3RzKGNvbnN0IFZlY3RvcjxGbG9hdFJl
Y3Q+JiBpbnRyaW5zaWNSZWN0cywgY29uc3QgTGF5b3V0Qm94RXh0ZW50JiBzbGljZXMpCit7Cisg
ICAgVmVjdG9yPEZsb2F0UmVjdD4gcmVjdHMoTWF4UGllY2UpOworCisgICAgZm9yIChJbWFnZVBp
ZWNlIHBpZWNlID0gTWluUGllY2U7IHBpZWNlIDwgTWF4UGllY2U7ICsrcGllY2UpIHsKKyAgICAg
ICAgaWYgKGlzRW1wdHlQaWVjZVJlY3QocGllY2UsIHNsaWNlcykpCisgICAgICAgICAgICBjb250
aW51ZTsKKyAgICAgICAgcmVjdHNbcGllY2VdID0gRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgaW50
cmluc2ljUmVjdHNbcGllY2VdLnNpemUoKSk7CisgICAgfQorCisgICAgcmV0dXJuIHJlY3RzOwor
fQorCitGbG9hdFNpemUgTmluZVBpZWNlSW1hZ2U6OmNvbXB1dGVJbnRyaW5zaWNTaWRlVGlsZVNj
YWxlKEltYWdlUGllY2UgcGllY2UsIGNvbnN0IFZlY3RvcjxGbG9hdFJlY3Q+JiBkZXN0aW5hdGlv
blJlY3RzLCBjb25zdCBWZWN0b3I8RmxvYXRSZWN0PiYgc291cmNlUmVjdHMpCit7CisgICAgQVNT
RVJUKCFpc0Nvcm5lclBpZWNlKHBpZWNlKSAmJiAhaXNNaWRkbGVQaWVjZShwaWVjZSkpOworICAg
IGlmIChpc0VtcHR5UGllY2VSZWN0KHBpZWNlLCBkZXN0aW5hdGlvblJlY3RzLCBzb3VyY2VSZWN0
cykpCisgICAgICAgIHJldHVybiBGbG9hdFNpemUoMSwgMSk7CisKKyAgICBmbG9hdCBzY2FsZTsK
KyAgICBpZiAoaXNWZXJ0aWNhbFBpZWNlKHBpZWNlKSkKKyAgICAgICAgc2NhbGUgPSBkZXN0aW5h
dGlvblJlY3RzW3BpZWNlXS5oZWlnaHQoKSAvIHNvdXJjZVJlY3RzW3BpZWNlXS5oZWlnaHQoKTsK
KyAgICBlbHNlCisgICAgICAgIHNjYWxlID0gZGVzdGluYXRpb25SZWN0c1twaWVjZV0ud2lkdGgo
KSAvIHNvdXJjZVJlY3RzW3BpZWNlXS53aWR0aCgpOworCisgICAgcmV0dXJuIEZsb2F0U2l6ZShz
Y2FsZSwgc2NhbGUpOworfQorCitGbG9hdFNpemUgTmluZVBpZWNlSW1hZ2U6OmNvbXB1dGVJbnRy
aW5zaWNNaWRkbGVUaWxlU2NhbGUoY29uc3QgVmVjdG9yPEZsb2F0U2l6ZT4mIHNjYWxlcywgY29u
c3QgVmVjdG9yPEZsb2F0UmVjdD4mIGRlc3RpbmF0aW9uUmVjdHMsIGNvbnN0IFZlY3RvcjxGbG9h
dFJlY3Q+JiBzb3VyY2VSZWN0cywgRU5pbmVQaWVjZUltYWdlUnVsZSBoUnVsZSwgRU5pbmVQaWVj
ZUltYWdlUnVsZSB2UnVsZSkKK3sKKyAgICBGbG9hdFNpemUgc2NhbGUoMSwgMSk7CisgICAgaWYg
KGlzRW1wdHlQaWVjZVJlY3QoTWlkZGxlUGllY2UsIGRlc3RpbmF0aW9uUmVjdHMsIHNvdXJjZVJl
Y3RzKSkKKyAgICAgICAgcmV0dXJuIHNjYWxlOworCisgICAgLy8gVW5saWtlIHRoZSBzaWRlIHBp
ZWNlcywgdGhlIG1pZGRsZSBwaWVjZSBjYW4gaGF2ZSAic3RyZXRjaCIgc3BlY2lmaWVkIGluIG9u
ZSBheGlzIGJ1dCBub3QgdGhlIG90aGVyLgorICAgIC8vIEluIGZhY3QgdGhlIHNpZGUgcGllY2Vz
IGRvbid0IGV2ZW4gdXNlIHRoZSBzY2FsZSBmYWN0b3IgdW5sZXNzIHRoZXkgaGF2ZSBhIHJ1bGUg
b3RoZXIgdGhhbiAic3RyZXRjaCIuCisgICAgaWYgKGhSdWxlID09IFN0cmV0Y2hJbWFnZVJ1bGUp
CisgICAgICAgIHNjYWxlLnNldFdpZHRoKGRlc3RpbmF0aW9uUmVjdHNbTWlkZGxlUGllY2VdLndp
ZHRoKCkgLyBzb3VyY2VSZWN0c1tNaWRkbGVQaWVjZV0ud2lkdGgoKSk7CisgICAgZWxzZSBpZiAo
IWlzRW1wdHlQaWVjZVJlY3QoVG9wUGllY2UsIGRlc3RpbmF0aW9uUmVjdHMsIHNvdXJjZVJlY3Rz
KSkKKyAgICAgICAgc2NhbGUuc2V0V2lkdGgoc2NhbGVzW1RvcFBpZWNlXS53aWR0aCgpKTsKKyAg
ICBlbHNlIGlmICghaXNFbXB0eVBpZWNlUmVjdChCb3R0b21QaWVjZSwgZGVzdGluYXRpb25SZWN0
cywgc291cmNlUmVjdHMpKQorICAgICAgICBzY2FsZS5zZXRXaWR0aChzY2FsZXNbQm90dG9tUGll
Y2VdLndpZHRoKCkpOworCisgICAgaWYgKHZSdWxlID09IFN0cmV0Y2hJbWFnZVJ1bGUpCisgICAg
ICAgIHNjYWxlLnNldEhlaWdodChkZXN0aW5hdGlvblJlY3RzW01pZGRsZVBpZWNlXS5oZWlnaHQo
KSAvIHNvdXJjZVJlY3RzW01pZGRsZVBpZWNlXS5oZWlnaHQoKSk7CisgICAgZWxzZSBpZiAoIWlz
RW1wdHlQaWVjZVJlY3QoTGVmdFBpZWNlLCBkZXN0aW5hdGlvblJlY3RzLCBzb3VyY2VSZWN0cykp
CisgICAgICAgIHNjYWxlLnNldEhlaWdodChzY2FsZXNbTGVmdFBpZWNlXS5oZWlnaHQoKSk7Cisg
ICAgZWxzZSBpZiAoIWlzRW1wdHlQaWVjZVJlY3QoUmlnaHRQaWVjZSwgZGVzdGluYXRpb25SZWN0
cywgc291cmNlUmVjdHMpKQorICAgICAgICBzY2FsZS5zZXRIZWlnaHQoc2NhbGVzW1JpZ2h0UGll
Y2VdLmhlaWdodCgpKTsKKworICAgIHJldHVybiBzY2FsZTsKK30KKworVmVjdG9yPEZsb2F0U2l6
ZT4gTmluZVBpZWNlSW1hZ2U6OmNvbXB1dGVJbnRyaW5zaWNUaWxlU2NhbGVzKGNvbnN0IFZlY3Rv
cjxGbG9hdFJlY3Q+JiBkZXN0aW5hdGlvblJlY3RzLCBjb25zdCBWZWN0b3I8RmxvYXRSZWN0PiYg
c291cmNlUmVjdHMsIEVOaW5lUGllY2VJbWFnZVJ1bGUgaFJ1bGUsIEVOaW5lUGllY2VJbWFnZVJ1
bGUgdlJ1bGUpCit7CisgICAgVmVjdG9yPEZsb2F0U2l6ZT4gc2NhbGVzKE1heFBpZWNlLCBGbG9h
dFNpemUoMSwgMSkpOworCisgICAgc2NhbGVzW1RvcFBpZWNlXSAgICA9IGNvbXB1dGVJbnRyaW5z
aWNTaWRlVGlsZVNjYWxlKFRvcFBpZWNlLCAgICBkZXN0aW5hdGlvblJlY3RzLCBzb3VyY2VSZWN0
cyk7CisgICAgc2NhbGVzW1JpZ2h0UGllY2VdICA9IGNvbXB1dGVJbnRyaW5zaWNTaWRlVGlsZVNj
YWxlKFJpZ2h0UGllY2UsICBkZXN0aW5hdGlvblJlY3RzLCBzb3VyY2VSZWN0cyk7CisgICAgc2Nh
bGVzW0JvdHRvbVBpZWNlXSA9IGNvbXB1dGVJbnRyaW5zaWNTaWRlVGlsZVNjYWxlKEJvdHRvbVBp
ZWNlLCBkZXN0aW5hdGlvblJlY3RzLCBzb3VyY2VSZWN0cyk7CisgICAgc2NhbGVzW0xlZnRQaWVj
ZV0gICA9IGNvbXB1dGVJbnRyaW5zaWNTaWRlVGlsZVNjYWxlKExlZnRQaWVjZSwgICBkZXN0aW5h
dGlvblJlY3RzLCBzb3VyY2VSZWN0cyk7CisKKyAgICBzY2FsZXNbTWlkZGxlUGllY2VdID0gY29t
cHV0ZUludHJpbnNpY01pZGRsZVRpbGVTY2FsZShzY2FsZXMsIGRlc3RpbmF0aW9uUmVjdHMsIHNv
dXJjZVJlY3RzLCBoUnVsZSwgdlJ1bGUpOworICAgIHJldHVybiBzY2FsZXM7Cit9CisKK1ZlY3Rv
cjxGbG9hdFNpemU+IE5pbmVQaWVjZUltYWdlOjpjb21wdXRlTm9uSW50cmluc2ljVGlsZVNjYWxl
cygpCit7CisgICAgcmV0dXJuIFZlY3RvcjxGbG9hdFNpemU+KE1heFBpZWNlLCBGbG9hdFNpemUo
MSwgMSkpOworfQorCit2b2lkIE5pbmVQaWVjZUltYWdlOjpwYWludChHcmFwaGljc0NvbnRleHQq
IGdyYXBoaWNzQ29udGV4dCwgUmVuZGVyRWxlbWVudCogcmVuZGVyZXIsIGNvbnN0IFJlbmRlclN0
eWxlJiBzdHlsZSwgY29uc3QgTGF5b3V0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IExheW91dFNp
emUmIHNvdXJjZSwgIGJvb2wgaW50cmluc2ljU291cmNlLCBmbG9hdCBkZXZpY2VTY2FsZUZhY3Rv
ciwgQ29tcG9zaXRlT3BlcmF0b3Igb3ApIGNvbnN0Cit7CisgICAgU3R5bGVJbWFnZSogc3R5bGVJ
bWFnZSA9IGltYWdlKCk7CisgICAgQVNTRVJUKHN0eWxlSW1hZ2UgJiYgc3R5bGVJbWFnZS0+aXNM
b2FkZWQoKSk7CisKKyAgICBMYXlvdXRCb3hFeHRlbnQgc291cmNlU2xpY2VzID0gY29tcHV0ZVNs
aWNlcyhzb3VyY2UsIGltYWdlU2xpY2VzKCksIHN0eWxlSW1hZ2UtPmltYWdlU2NhbGVGYWN0b3Io
KSk7CisgICAgTGF5b3V0Qm94RXh0ZW50IGRlc3RpbmF0aW9uU2xpY2VzID0gY29tcHV0ZVNsaWNl
cyhkZXN0aW5hdGlvbi5zaXplKCksIGJvcmRlclNsaWNlcygpLCBzdHlsZS5ib3JkZXJXaWR0aCgp
LCBzb3VyY2VTbGljZXMpOworCisgICAgc2NhbGVTbGljZXNJZk5lZWRlZChkZXN0aW5hdGlvbi5z
aXplKCksIGRlc3RpbmF0aW9uU2xpY2VzLCBkZXZpY2VTY2FsZUZhY3Rvcik7CisKKyAgICBWZWN0
b3I8RmxvYXRSZWN0PiBkZXN0aW5hdGlvblJlY3RzID0gY29tcHV0ZUludHJpbnNpY1JlY3RzKGRl
c3RpbmF0aW9uLCBkZXN0aW5hdGlvblNsaWNlcywgZGV2aWNlU2NhbGVGYWN0b3IpOworICAgIFZl
Y3RvcjxGbG9hdFJlY3Q+IHNvdXJjZVJlY3RzOworICAgIFZlY3RvcjxGbG9hdFNpemU+IHRpbGVT
Y2FsZXM7CisKKyAgICBpZiAoaW50cmluc2ljU291cmNlKSB7CisgICAgICAgIHNvdXJjZVJlY3Rz
ID0gY29tcHV0ZUludHJpbnNpY1JlY3RzKEZsb2F0UmVjdChGbG9hdFBvaW50KCksIHNvdXJjZSks
IHNvdXJjZVNsaWNlcywgZGV2aWNlU2NhbGVGYWN0b3IpOworICAgICAgICB0aWxlU2NhbGVzID0g
Y29tcHV0ZUludHJpbnNpY1RpbGVTY2FsZXMoZGVzdGluYXRpb25SZWN0cywgc291cmNlUmVjdHMs
IGhvcml6b250YWxSdWxlKCksIHZlcnRpY2FsUnVsZSgpKTsKKyAgICB9IGVsc2UgeworICAgICAg
ICBzb3VyY2VSZWN0cyA9IGNvbXB1dGVOb25JbnRyaW5zaWNSZWN0cyhkZXN0aW5hdGlvblJlY3Rz
LCBzb3VyY2VTbGljZXMpOworICAgICAgICB0aWxlU2NhbGVzID0gY29tcHV0ZU5vbkludHJpbnNp
Y1RpbGVTY2FsZXMoKTsKKyAgICB9CisKKyAgICBSZWZQdHI8SW1hZ2U+IGltYWdlID0gc3R5bGVJ
bWFnZS0+aW1hZ2UocmVuZGVyZXIsIHNvdXJjZSk7CisgICAgQ29sb3JTcGFjZSBjb2xvclNwYWNl
ID0gc3R5bGUuY29sb3JTcGFjZSgpOworCisgICAgZm9yIChJbWFnZVBpZWNlIHBpZWNlID0gTWlu
UGllY2U7IHBpZWNlIDwgTWF4UGllY2U7ICsrcGllY2UpIHsKKyAgICAgICAgaWYgKChwaWVjZSA9
PSBNaWRkbGVQaWVjZSAmJiAhZmlsbCgpKSB8fCBpc0VtcHR5UGllY2VSZWN0KHBpZWNlLCBkZXN0
aW5hdGlvblJlY3RzLCBzb3VyY2VSZWN0cykpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAg
ICAgICBpZiAoaXNDb3JuZXJQaWVjZShwaWVjZSkpIHsKKyAgICAgICAgICAgIGdyYXBoaWNzQ29u
dGV4dC0+ZHJhd0ltYWdlKGltYWdlLmdldCgpLCBjb2xvclNwYWNlLCBkZXN0aW5hdGlvblJlY3Rz
W3BpZWNlXSwgc291cmNlUmVjdHNbcGllY2VdLCBvcCk7CisgICAgICAgICAgICBjb250aW51ZTsK
KyAgICAgICAgfQorCisgICAgICAgIEltYWdlOjpUaWxlUnVsZSBoUnVsZSA9IGlzSG9yaXpvbnRh
bFBpZWNlKHBpZWNlKSA/IHN0YXRpY19jYXN0PEltYWdlOjpUaWxlUnVsZT4oaG9yaXpvbnRhbFJ1
bGUoKSkgOiBJbWFnZTo6U3RyZXRjaFRpbGU7CisgICAgICAgIEltYWdlOjpUaWxlUnVsZSB2UnVs
ZSA9IGlzVmVydGljYWxQaWVjZShwaWVjZSkgPyBzdGF0aWNfY2FzdDxJbWFnZTo6VGlsZVJ1bGU+
KHZlcnRpY2FsUnVsZSgpKSA6IEltYWdlOjpTdHJldGNoVGlsZTsKKyAgICAgICAgZ3JhcGhpY3ND
b250ZXh0LT5kcmF3VGlsZWRJbWFnZShpbWFnZS5nZXQoKSwgY29sb3JTcGFjZSwgZGVzdGluYXRp
b25SZWN0c1twaWVjZV0sIHNvdXJjZVJlY3RzW3BpZWNlXSwgdGlsZVNjYWxlc1twaWVjZV0sIGhS
dWxlLCB2UnVsZSwgb3ApOworICAgIH0KK30KKwogTmluZVBpZWNlSW1hZ2VEYXRhOjpOaW5lUGll
Y2VJbWFnZURhdGEoKQogICAgIDogZmlsbChmYWxzZSkKICAgICAsIGhvcml6b250YWxSdWxlKFN0
cmV0Y2hJbWFnZVJ1bGUpCiAgICAgLCB2ZXJ0aWNhbFJ1bGUoU3RyZXRjaEltYWdlUnVsZSkKLSAg
ICAsIGltYWdlKDApCisgICAgLCBpbWFnZShudWxscHRyKQogICAgICwgaW1hZ2VTbGljZXMoTGVu
Z3RoKDEwMCwgUGVyY2VudCksIExlbmd0aCgxMDAsIFBlcmNlbnQpLCBMZW5ndGgoMTAwLCBQZXJj
ZW50KSwgTGVuZ3RoKDEwMCwgUGVyY2VudCkpCiAgICAgLCBib3JkZXJTbGljZXMoTGVuZ3RoKDEs
IFJlbGF0aXZlKSwgTGVuZ3RoKDEsIFJlbGF0aXZlKSwgTGVuZ3RoKDEsIFJlbGF0aXZlKSwgTGVu
Z3RoKDEsIFJlbGF0aXZlKSkKICAgICAsIG91dHNldCgwKQpJbmRleDogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL05pbmVQaWVjZUltYWdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL05pbmVQaWVjZUltYWdlLmgJKHJldmlzaW9uIDE4NDY1NSkK
KysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9OaW5lUGllY2VJbWFnZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yLDcgKzIsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDAwIExhcnMgS25v
bGwgKGtub2xsQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDIwMDAgQW50dGkgS29pdmlzdG8g
KGtvaXZpc3RvQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDIwMDAgRGlyayBNdWVsbGVyICht
dWVsbGVyQGtkZS5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDUsIDIwMDYsIDIwMDcs
IDIwMDgsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDAzLCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDEzLCAyMDE1IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjUsOSArMjUsMTIg
QEAKICNkZWZpbmUgTmluZVBpZWNlSW1hZ2VfaAogCiAjaW5jbHVkZSAiRGF0YVJlZi5oIgorI2lu
Y2x1ZGUgIkxheW91dFJlY3QuaCIKKyNpbmNsdWRlICJMYXlvdXRTaXplLmgiCiAjaW5jbHVkZSAi
TGF5b3V0VW5pdC5oIgogI2luY2x1ZGUgIkxlbmd0aEJveC5oIgogI2luY2x1ZGUgIlN0eWxlSW1h
Z2UuaCIKKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApA
QCAtMzUsNiArMzgsNzAgQEAgZW51bSBFTmluZVBpZWNlSW1hZ2VSdWxlIHsKICAgICBTdHJldGNo
SW1hZ2VSdWxlLCBSb3VuZEltYWdlUnVsZSwgU3BhY2VJbWFnZVJ1bGUsIFJlcGVhdEltYWdlUnVs
ZQogfTsKIAorZW51bSBJbWFnZVBpZWNlIHsKKyAgICBNaW5QaWVjZSA9IDAsCisgICAgVG9wTGVm
dFBpZWNlID0gTWluUGllY2UsCisgICAgTGVmdFBpZWNlLAorICAgIEJvdHRvbUxlZnRQaWVjZSwK
KyAgICBUb3BSaWdodFBpZWNlLAorICAgIFJpZ2h0UGllY2UsCisgICAgQm90dG9tUmlnaHRQaWVj
ZSwKKyAgICBUb3BQaWVjZSwKKyAgICBCb3R0b21QaWVjZSwKKyAgICBNaWRkbGVQaWVjZSwKKyAg
ICBNYXhQaWVjZQorfTsKKworaW5saW5lIEltYWdlUGllY2UmIG9wZXJhdG9yKysoSW1hZ2VQaWVj
ZSYgcGllY2UpCit7CisgICAgcGllY2UgPSBzdGF0aWNfY2FzdDxJbWFnZVBpZWNlPihzdGF0aWNf
Y2FzdDxpbnQ+KHBpZWNlKSArIDEpOworICAgIHJldHVybiBwaWVjZTsKK30KKworaW5saW5lIGJv
b2wgaXNDb3JuZXJQaWVjZShJbWFnZVBpZWNlIHBpZWNlKQoreworICAgIHJldHVybiBwaWVjZSA9
PSBUb3BMZWZ0UGllY2UgfHwgcGllY2UgPT0gVG9wUmlnaHRQaWVjZSB8fCBwaWVjZSA9PSBCb3R0
b21MZWZ0UGllY2UgfHwgcGllY2UgPT0gQm90dG9tUmlnaHRQaWVjZTsKK30KKworaW5saW5lIGJv
b2wgaXNNaWRkbGVQaWVjZShJbWFnZVBpZWNlIHBpZWNlKQoreworICAgIHJldHVybiBwaWVjZSA9
PSBNaWRkbGVQaWVjZTsKK30KKworaW5saW5lIGJvb2wgaXNIb3Jpem9udGFsUGllY2UoSW1hZ2VQ
aWVjZSBwaWVjZSkKK3sKKyAgICByZXR1cm4gcGllY2UgPT0gVG9wUGllY2UgfHwgcGllY2UgPT0g
Qm90dG9tUGllY2UgfHwgcGllY2UgPT0gTWlkZGxlUGllY2U7Cit9CisKK2lubGluZSBib29sIGlz
VmVydGljYWxQaWVjZShJbWFnZVBpZWNlIHBpZWNlKQoreworICAgIHJldHVybiBwaWVjZSA9PSBM
ZWZ0UGllY2UgfHwgcGllY2UgPT0gUmlnaHRQaWVjZSB8fCBwaWVjZSA9PSBNaWRkbGVQaWVjZTsK
K30KKworaW5saW5lIFBoeXNpY2FsQm94U2lkZSBpbWFnZVBpZWNlSG9yaXpvbnRhbFNpZGUoSW1h
Z2VQaWVjZSBwaWVjZSkKK3sKKyAgICBpZiAocGllY2UgPT0gVG9wTGVmdFBpZWNlIHx8IHBpZWNl
ID09IFRvcFBpZWNlIHx8IHBpZWNlID09IFRvcFJpZ2h0UGllY2UpCisgICAgICAgIHJldHVybiBU
b3BTaWRlOworCisgICAgaWYgKHBpZWNlID09IEJvdHRvbUxlZnRQaWVjZSB8fCBwaWVjZSA9PSBC
b3R0b21QaWVjZSB8fCBwaWVjZSA9PSBCb3R0b21SaWdodFBpZWNlKQorICAgICAgICByZXR1cm4g
Qm90dG9tU2lkZTsKKworICAgIHJldHVybiBOaWxTaWRlOworfQorCitpbmxpbmUgUGh5c2ljYWxC
b3hTaWRlIGltYWdlUGllY2VWZXJ0aWNhbFNpZGUoSW1hZ2VQaWVjZSBwaWVjZSkKK3sKKyAgICBp
ZiAocGllY2UgPT0gVG9wTGVmdFBpZWNlIHx8IHBpZWNlID09IExlZnRQaWVjZSB8fCBwaWVjZSA9
PSBCb3R0b21MZWZ0UGllY2UpCisgICAgICAgIHJldHVybiBMZWZ0U2lkZTsKKworICAgIGlmIChw
aWVjZSA9PSBUb3BSaWdodFBpZWNlIHx8IHBpZWNlID09IFJpZ2h0UGllY2UgfHwgcGllY2UgPT0g
Qm90dG9tUmlnaHRQaWVjZSkKKyAgICAgICAgcmV0dXJuIFJpZ2h0U2lkZTsKKworICAgIHJldHVy
biBOaWxTaWRlOworfQorCitjbGFzcyBSZW5kZXJTdHlsZTsKKwogY2xhc3MgTmluZVBpZWNlSW1h
Z2VEYXRhIDogcHVibGljIFJlZkNvdW50ZWQ8TmluZVBpZWNlSW1hZ2VEYXRhPiB7CiBwdWJsaWM6
CiAgICAgc3RhdGljIFJlZjxOaW5lUGllY2VJbWFnZURhdGE+IGNyZWF0ZSgpIHsgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgTmluZVBpZWNlSW1hZ2VEYXRhKTsgfQpAQCAtMTIyLDYgKzE4OSwyNSBAQCBw
dWJsaWM6CiAgICAgICAgIHJldHVybiBvdXRzZXRTaWRlLnZhbHVlKCk7CiAgICAgfQogCisgICAg
c3RhdGljIExheW91dFVuaXQgY29tcHV0ZVNsaWNlKExlbmd0aCwgTGF5b3V0VW5pdCB3aWR0aCwg
TGF5b3V0VW5pdCBzbGljZSwgTGF5b3V0VW5pdCBleHRlbnQpOworICAgIHN0YXRpYyBMYXlvdXRC
b3hFeHRlbnQgY29tcHV0ZVNsaWNlcyhjb25zdCBMYXlvdXRTaXplJiwgY29uc3QgTGVuZ3RoQm94
JiBsZW5ndGhzLCBpbnQgc2NhbGVGYWN0b3IpOworICAgIHN0YXRpYyBMYXlvdXRCb3hFeHRlbnQg
Y29tcHV0ZVNsaWNlcyhjb25zdCBMYXlvdXRTaXplJiwgY29uc3QgTGVuZ3RoQm94JiBsZW5ndGhz
LCBjb25zdCBGbG9hdEJveEV4dGVudCYgd2lkdGhzLCBjb25zdCBMYXlvdXRCb3hFeHRlbnQmIHNs
aWNlcyk7CisKKyAgICBzdGF0aWMgYm9vbCBpc0VtcHR5UGllY2VSZWN0KEltYWdlUGllY2UsIGNv
bnN0IExheW91dEJveEV4dGVudCYgc2xpY2VzKTsKKyAgICBzdGF0aWMgYm9vbCBpc0VtcHR5UGll
Y2VSZWN0KEltYWdlUGllY2UsIGNvbnN0IFZlY3RvcjxGbG9hdFJlY3Q+JiBkZXN0aW5hdGlvblJl
Y3RzLCBjb25zdCBWZWN0b3I8RmxvYXRSZWN0PiYgc291cmNlUmVjdHMpOworCisgICAgc3RhdGlj
IFZlY3RvcjxGbG9hdFJlY3Q+IGNvbXB1dGVJbnRyaW5zaWNSZWN0cyhjb25zdCBGbG9hdFJlY3Qm
IG91dGVyLCBjb25zdCBMYXlvdXRCb3hFeHRlbnQmIHNsaWNlcywgZmxvYXQgZGV2aWNlU2NhbGVG
YWN0b3IpOworICAgIHN0YXRpYyBWZWN0b3I8RmxvYXRSZWN0PiBjb21wdXRlTm9uSW50cmluc2lj
UmVjdHMoY29uc3QgVmVjdG9yPEZsb2F0UmVjdD4mIGludHJpbnNpY1JlY3RzLCBjb25zdCBMYXlv
dXRCb3hFeHRlbnQmIHNsaWNlcyk7CisKKyAgICBzdGF0aWMgdm9pZCBzY2FsZVNsaWNlc0lmTmVl
ZGVkKGNvbnN0IExheW91dFNpemUmLCBMYXlvdXRCb3hFeHRlbnQmIHNsaWNlcywgaW50IHNjYWxl
RmFjdG9yKTsKKworICAgIHN0YXRpYyBGbG9hdFNpemUgY29tcHV0ZUludHJpbnNpY1NpZGVUaWxl
U2NhbGUoSW1hZ2VQaWVjZSwgY29uc3QgVmVjdG9yPEZsb2F0UmVjdD4mIGRlc3RpbmF0aW9uUmVj
dHMsIGNvbnN0IFZlY3RvcjxGbG9hdFJlY3Q+JiBzb3VyY2VSZWN0cyk7CisgICAgc3RhdGljIEZs
b2F0U2l6ZSBjb21wdXRlSW50cmluc2ljTWlkZGxlVGlsZVNjYWxlKGNvbnN0IFZlY3RvcjxGbG9h
dFNpemU+JiBzY2FsZXMsIGNvbnN0IFZlY3RvcjxGbG9hdFJlY3Q+JiBkZXN0aW5hdGlvblJlY3Rz
LCBjb25zdCBWZWN0b3I8RmxvYXRSZWN0PiYgc291cmNlUmVjdHMsIEVOaW5lUGllY2VJbWFnZVJ1
bGUgaFJ1bGUsIEVOaW5lUGllY2VJbWFnZVJ1bGUgdlJ1bGUpOworICAgIHN0YXRpYyBWZWN0b3I8
RmxvYXRTaXplPiBjb21wdXRlSW50cmluc2ljVGlsZVNjYWxlcyhjb25zdCBWZWN0b3I8RmxvYXRS
ZWN0PiYgZGVzdGluYXRpb25SZWN0cywgY29uc3QgVmVjdG9yPEZsb2F0UmVjdD4mIHNvdXJjZVJl
Y3RzLCBFTmluZVBpZWNlSW1hZ2VSdWxlIGhSdWxlLCBFTmluZVBpZWNlSW1hZ2VSdWxlIHZSdWxl
KTsKKyAgICBzdGF0aWMgVmVjdG9yPEZsb2F0U2l6ZT4gY29tcHV0ZU5vbkludHJpbnNpY1RpbGVT
Y2FsZXMoKTsKKworICAgIHZvaWQgcGFpbnQoR3JhcGhpY3NDb250ZXh0KiwgUmVuZGVyRWxlbWVu
dCosIGNvbnN0IFJlbmRlclN0eWxlJiwgY29uc3QgTGF5b3V0UmVjdCYgZGVzdGluYXRpb24sIGNv
bnN0IExheW91dFNpemUmIHNvdXJjZSwgYm9vbCBpbnRyaW5zaWNTb3VyY2UsIGZsb2F0IGRldmlj
ZVNjYWxlRmFjdG9yLCBDb21wb3NpdGVPcGVyYXRvcikgY29uc3Q7CisKIHByaXZhdGU6CiAgICAg
RGF0YVJlZjxOaW5lUGllY2VJbWFnZURhdGE+IG1fZGF0YTsKIH07CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAJKHJldmlzaW9uIDE4NDY1
NSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTkyMSwxMCArOTIxLDEwIEBAIHZvaWQgUmVuZGVyU3R5bGU6OnNldE1h
c2tJbWFnZShjb25zdCBWZWMKIHZvaWQgUmVuZGVyU3R5bGU6OnNldENsaXAoTGVuZ3RoIHRvcCwg
TGVuZ3RoIHJpZ2h0LCBMZW5ndGggYm90dG9tLCBMZW5ndGggbGVmdCkKIHsKICAgICBTdHlsZVZp
c3VhbERhdGEqIGRhdGEgPSB2aXN1YWwuYWNjZXNzKCk7Ci0gICAgZGF0YS0+Y2xpcC5tX3RvcCA9
IHRvcDsKLSAgICBkYXRhLT5jbGlwLm1fcmlnaHQgPSByaWdodDsKLSAgICBkYXRhLT5jbGlwLm1f
Ym90dG9tID0gYm90dG9tOwotICAgIGRhdGEtPmNsaXAubV9sZWZ0ID0gbGVmdDsKKyAgICBkYXRh
LT5jbGlwLnRvcCgpID0gdG9wOworICAgIGRhdGEtPmNsaXAucmlnaHQoKSA9IHJpZ2h0OworICAg
IGRhdGEtPmNsaXAuYm90dG9tKCkgPSBib3R0b207CisgICAgZGF0YS0+Y2xpcC5sZWZ0KCkgPSBs
ZWZ0OwogfQogCiB2b2lkIFJlbmRlclN0eWxlOjphZGRDdXJzb3IoUGFzc1JlZlB0cjxTdHlsZUlt
YWdlPiBpbWFnZSwgY29uc3QgSW50UG9pbnQmIGhvdFNwb3QpCkBAIC0xMzA5LDEwICsxMzA5LDEw
IEBAIGNvbnN0IFZlY3RvcjxTdHlsZURhc2hib2FyZFJlZ2lvbj4mIFJlbmQKICAgICBpZiAoIW5v
bmVMaXN0SW5pdGlhbGl6ZWQpIHsKICAgICAgICAgU3R5bGVEYXNoYm9hcmRSZWdpb24gcmVnaW9u
OwogICAgICAgICByZWdpb24ubGFiZWwgPSAiIjsKLSAgICAgICAgcmVnaW9uLm9mZnNldC5tX3Rv
cCAgPSBMZW5ndGgoKTsKLSAgICAgICAgcmVnaW9uLm9mZnNldC5tX3JpZ2h0ID0gTGVuZ3RoKCk7
Ci0gICAgICAgIHJlZ2lvbi5vZmZzZXQubV9ib3R0b20gPSBMZW5ndGgoKTsKLSAgICAgICAgcmVn
aW9uLm9mZnNldC5tX2xlZnQgPSBMZW5ndGgoKTsKKyAgICAgICAgcmVnaW9uLm9mZnNldC50b3Ao
KSAgPSBMZW5ndGgoKTsKKyAgICAgICAgcmVnaW9uLm9mZnNldC5yaWdodCgpID0gTGVuZ3RoKCk7
CisgICAgICAgIHJlZ2lvbi5vZmZzZXQuYm90dG9tKCkgPSBMZW5ndGgoKTsKKyAgICAgICAgcmVn
aW9uLm9mZnNldC5sZWZ0KCkgPSBMZW5ndGgoKTsKICAgICAgICAgcmVnaW9uLnR5cGUgPSBTdHls
ZURhc2hib2FyZFJlZ2lvbjo6Tm9uZTsKICAgICAgICAgbm9uZUxpc3QuYXBwZW5kKHJlZ2lvbik7
CiAgICAgICAgIG5vbmVMaXN0SW5pdGlhbGl6ZWQgPSB0cnVlOwpJbmRleDogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgJKHJldmlzaW9uIDE4NDY1NSkKKysr
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zNyw3ICszNyw2IEBACiAjaW5jbHVkZSAiRm9udEJhc2VsaW5lLmgiCiAjaW5jbHVk
ZSAiRm9udERlc2NyaXB0aW9uLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NUeXBlcy5oIgotI2luY2x1
ZGUgIkxheW91dEJveEV4dGVudC5oIgogI2luY2x1ZGUgIkxlbmd0aC5oIgogI2luY2x1ZGUgIkxl
bmd0aEJveC5oIgogI2luY2x1ZGUgIkxlbmd0aEZ1bmN0aW9ucy5oIgpAQCAtNTMxLDEyICs1MzAs
MTIgQEAgcHVibGljOgogICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBSZW5kZXJTdHlsZSYgb3Ro
ZXIpIGNvbnN0OwogICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBSZW5kZXJTdHlsZSYgb3RoZXIp
IGNvbnN0IHsgcmV0dXJuICEoKnRoaXMgPT0gb3RoZXIpOyB9CiAgICAgYm9vbCBpc0Zsb2F0aW5n
KCkgY29uc3QgeyByZXR1cm4gbm9uaW5oZXJpdGVkX2ZsYWdzLmlzRmxvYXRpbmcoKTsgfQotICAg
IGJvb2wgaGFzTWFyZ2luKCkgY29uc3QgeyByZXR1cm4gc3Vycm91bmQtPm1hcmdpbi5ub25aZXJv
KCk7IH0KKyAgICBib29sIGhhc01hcmdpbigpIGNvbnN0IHsgcmV0dXJuICFzdXJyb3VuZC0+bWFy
Z2luLmlzWmVybygpOyB9CiAgICAgYm9vbCBoYXNCb3JkZXIoKSBjb25zdCB7IHJldHVybiBzdXJy
b3VuZC0+Ym9yZGVyLmhhc0JvcmRlcigpOyB9CiAgICAgYm9vbCBoYXNCb3JkZXJGaWxsKCkgY29u
c3QgeyByZXR1cm4gc3Vycm91bmQtPmJvcmRlci5oYXNGaWxsKCk7IH0KICAgICBib29sIGhhc0Jv
cmRlckRlY29yYXRpb24oKSBjb25zdCB7IHJldHVybiBoYXNCb3JkZXIoKSB8fCBoYXNCb3JkZXJG
aWxsKCk7IH0KLSAgICBib29sIGhhc1BhZGRpbmcoKSBjb25zdCB7IHJldHVybiBzdXJyb3VuZC0+
cGFkZGluZy5ub25aZXJvKCk7IH0KLSAgICBib29sIGhhc09mZnNldCgpIGNvbnN0IHsgcmV0dXJu
IHN1cnJvdW5kLT5vZmZzZXQubm9uWmVybygpOyB9CisgICAgYm9vbCBoYXNQYWRkaW5nKCkgY29u
c3QgeyByZXR1cm4gIXN1cnJvdW5kLT5wYWRkaW5nLmlzWmVybygpOyB9CisgICAgYm9vbCBoYXNP
ZmZzZXQoKSBjb25zdCB7IHJldHVybiAhc3Vycm91bmQtPm9mZnNldC5pc1plcm8oKTsgfQogICAg
IGJvb2wgaGFzTWFyZ2luQmVmb3JlUXVpcmsoKSBjb25zdCB7IHJldHVybiBtYXJnaW5CZWZvcmUo
KS5oYXNRdWlyaygpOyB9CiAgICAgYm9vbCBoYXNNYXJnaW5BZnRlclF1aXJrKCkgY29uc3QgeyBy
ZXR1cm4gbWFyZ2luQWZ0ZXIoKS5oYXNRdWlyaygpOyB9CiAKQEAgLTU1OCw3ICs1NTcsNyBAQCBw
dWJsaWM6CiAgICAgTGF5b3V0Qm94RXh0ZW50IGltYWdlT3V0c2V0cyhjb25zdCBOaW5lUGllY2VJ
bWFnZSYpIGNvbnN0OwogICAgIGJvb2wgaGFzQm9yZGVySW1hZ2VPdXRzZXRzKCkgY29uc3QKICAg
ICB7Ci0gICAgICAgIHJldHVybiBib3JkZXJJbWFnZSgpLmhhc0ltYWdlKCkgJiYgYm9yZGVySW1h
Z2UoKS5vdXRzZXQoKS5ub25aZXJvKCk7CisgICAgICAgIHJldHVybiBib3JkZXJJbWFnZSgpLmhh
c0ltYWdlKCkgJiYgIWJvcmRlckltYWdlKCkub3V0c2V0KCkuaXNaZXJvKCk7CiAgICAgfQogICAg
IExheW91dEJveEV4dGVudCBib3JkZXJJbWFnZU91dHNldHMoKSBjb25zdAogICAgIHsKQEAgLTU5
NSw4ICs1OTQsOCBAQCBwdWJsaWM6CiAgICAgY29uc3QgTGVuZ3RoJiBib3R0b20oKSBjb25zdCB7
IHJldHVybiBzdXJyb3VuZC0+b2Zmc2V0LmJvdHRvbSgpOyB9CiAKICAgICAvLyBBY2Nlc3NvcnMg
Zm9yIHBvc2l0aW9uZWQgb2JqZWN0IGVkZ2VzIHRoYXQgdGFrZSBpbnRvIGFjY291bnQgd3JpdGlu
ZyBtb2RlLgotICAgIGNvbnN0IExlbmd0aCYgbG9naWNhbExlZnQoKSBjb25zdCB7IHJldHVybiBz
dXJyb3VuZC0+b2Zmc2V0LmxvZ2ljYWxMZWZ0KHdyaXRpbmdNb2RlKCkpOyB9Ci0gICAgY29uc3Qg
TGVuZ3RoJiBsb2dpY2FsUmlnaHQoKSBjb25zdCB7IHJldHVybiBzdXJyb3VuZC0+b2Zmc2V0Lmxv
Z2ljYWxSaWdodCh3cml0aW5nTW9kZSgpKTsgfQorICAgIGNvbnN0IExlbmd0aCYgbG9naWNhbExl
ZnQoKSBjb25zdCB7IHJldHVybiBzdXJyb3VuZC0+b2Zmc2V0LnN0YXJ0KHdyaXRpbmdNb2RlKCkp
OyB9CisgICAgY29uc3QgTGVuZ3RoJiBsb2dpY2FsUmlnaHQoKSBjb25zdCB7IHJldHVybiBzdXJy
b3VuZC0+b2Zmc2V0LmVuZCh3cml0aW5nTW9kZSgpKTsgfQogICAgIGNvbnN0IExlbmd0aCYgbG9n
aWNhbFRvcCgpIGNvbnN0IHsgcmV0dXJuIHN1cnJvdW5kLT5vZmZzZXQuYmVmb3JlKHdyaXRpbmdN
b2RlKCkpOyB9CiAgICAgY29uc3QgTGVuZ3RoJiBsb2dpY2FsQm90dG9tKCkgY29uc3QgeyByZXR1
cm4gc3Vycm91bmQtPm9mZnNldC5hZnRlcih3cml0aW5nTW9kZSgpKTsgfQogCkBAIC02NjIsNyAr
NjYxLDggQEAgcHVibGljOgogICAgIGZsb2F0IGJvcmRlckJvdHRvbVdpZHRoKCkgY29uc3QgeyBy
ZXR1cm4gc3Vycm91bmQtPmJvcmRlci5ib3JkZXJCb3R0b21XaWR0aCgpOyB9CiAgICAgRUJvcmRl
clN0eWxlIGJvcmRlckJvdHRvbVN0eWxlKCkgY29uc3QgeyByZXR1cm4gc3Vycm91bmQtPmJvcmRl
ci5ib3R0b20oKS5zdHlsZSgpOyB9CiAgICAgYm9vbCBib3JkZXJCb3R0b21Jc1RyYW5zcGFyZW50
KCkgY29uc3QgeyByZXR1cm4gc3Vycm91bmQtPmJvcmRlci5ib3R0b20oKS5pc1RyYW5zcGFyZW50
KCk7IH0KLSAgICAKKyAgICBGbG9hdEJveEV4dGVudCBib3JkZXJXaWR0aCgpIGNvbnN0IHsgcmV0
dXJuIHN1cnJvdW5kLT5ib3JkZXIuYm9yZGVyV2lkdGgoKTsgfQorCiAgICAgZmxvYXQgYm9yZGVy
QmVmb3JlV2lkdGgoKSBjb25zdDsKICAgICBmbG9hdCBib3JkZXJBZnRlcldpZHRoKCkgY29uc3Q7
CiAgICAgZmxvYXQgYm9yZGVyU3RhcnRXaWR0aCgpIGNvbnN0OwpAQCAtMTIwMCwxMCArMTIwMCwx
MCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQb3NpdGlvbihFUG9zaXRpb24gdikgeyBub25pbmhl
cml0ZWRfZmxhZ3Muc2V0UG9zaXRpb24odik7IH0KICAgICB2b2lkIHNldEZsb2F0aW5nKEVGbG9h
dCB2KSB7IG5vbmluaGVyaXRlZF9mbGFncy5zZXRGbG9hdGluZyh2KTsgfQogCi0gICAgdm9pZCBz
ZXRMZWZ0KExlbmd0aCB2KSB7IFNFVF9WQVIoc3Vycm91bmQsIG9mZnNldC5tX2xlZnQsIFdURjo6
bW92ZSh2KSk7IH0KLSAgICB2b2lkIHNldFJpZ2h0KExlbmd0aCB2KSB7IFNFVF9WQVIoc3Vycm91
bmQsIG9mZnNldC5tX3JpZ2h0LCBXVEY6Om1vdmUodikpOyB9Ci0gICAgdm9pZCBzZXRUb3AoTGVu
Z3RoIHYpIHsgU0VUX1ZBUihzdXJyb3VuZCwgb2Zmc2V0Lm1fdG9wLCBXVEY6Om1vdmUodikpOyB9
Ci0gICAgdm9pZCBzZXRCb3R0b20oTGVuZ3RoIHYpIHsgU0VUX1ZBUihzdXJyb3VuZCwgb2Zmc2V0
Lm1fYm90dG9tLCBXVEY6Om1vdmUodikpOyB9CisgICAgdm9pZCBzZXRMZWZ0KExlbmd0aCB2KSB7
IFNFVF9WQVIoc3Vycm91bmQsIG9mZnNldC5sZWZ0KCksIFdURjo6bW92ZSh2KSk7IH0KKyAgICB2
b2lkIHNldFJpZ2h0KExlbmd0aCB2KSB7IFNFVF9WQVIoc3Vycm91bmQsIG9mZnNldC5yaWdodCgp
LCBXVEY6Om1vdmUodikpOyB9CisgICAgdm9pZCBzZXRUb3AoTGVuZ3RoIHYpIHsgU0VUX1ZBUihz
dXJyb3VuZCwgb2Zmc2V0LnRvcCgpLCBXVEY6Om1vdmUodikpOyB9CisgICAgdm9pZCBzZXRCb3R0
b20oTGVuZ3RoIHYpIHsgU0VUX1ZBUihzdXJyb3VuZCwgb2Zmc2V0LmJvdHRvbSgpLCBXVEY6Om1v
dmUodikpOyB9CiAKICAgICB2b2lkIHNldFdpZHRoKExlbmd0aCB2KSB7IFNFVF9WQVIobV9ib3gs
IG1fd2lkdGgsIFdURjo6bW92ZSh2KSk7IH0KICAgICB2b2lkIHNldEhlaWdodChMZW5ndGggdikg
eyBTRVRfVkFSKG1fYm94LCBtX2hlaWdodCwgV1RGOjptb3ZlKHYpKTsgfQpAQCAtMTIzOSwxMCAr
MTIzOSwxMCBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBTdHlsZURhc2hib2FyZFJlZ2lvbiBy
ZWdpb247CiAgICAgICAgIHJlZ2lvbi5sYWJlbCA9IGxhYmVsOwotICAgICAgICByZWdpb24ub2Zm
c2V0Lm1fdG9wID0gV1RGOjptb3ZlKHQpOwotICAgICAgICByZWdpb24ub2Zmc2V0Lm1fcmlnaHQg
PSBXVEY6Om1vdmUocik7Ci0gICAgICAgIHJlZ2lvbi5vZmZzZXQubV9ib3R0b20gPSBXVEY6Om1v
dmUoYik7Ci0gICAgICAgIHJlZ2lvbi5vZmZzZXQubV9sZWZ0ID0gV1RGOjptb3ZlKGwpOworICAg
ICAgICByZWdpb24ub2Zmc2V0LnRvcCgpID0gV1RGOjptb3ZlKHQpOworICAgICAgICByZWdpb24u
b2Zmc2V0LnJpZ2h0KCkgPSBXVEY6Om1vdmUocik7CisgICAgICAgIHJlZ2lvbi5vZmZzZXQuYm90
dG9tKCkgPSBXVEY6Om1vdmUoYik7CisgICAgICAgIHJlZ2lvbi5vZmZzZXQubGVmdCgpID0gV1RG
Ojptb3ZlKGwpOwogICAgICAgICByZWdpb24udHlwZSA9IHR5cGU7CiAgICAgICAgIGlmICghYXBw
ZW5kKQogICAgICAgICAgICAgcmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fZGFzaGJv
YXJkUmVnaW9ucy5jbGVhcigpOwpAQCAtMTMyMywxMCArMTMyMywxMCBAQCBwdWJsaWM6CiAgICAg
dm9pZCBzZXRWZXJ0aWNhbEFsaWduTGVuZ3RoKExlbmd0aCBsZW5ndGgpIHsgc2V0VmVydGljYWxB
bGlnbihMRU5HVEgpOyBTRVRfVkFSKG1fYm94LCBtX3ZlcnRpY2FsQWxpZ24sIFdURjo6bW92ZShs
ZW5ndGgpKTsgfQogCiAgICAgdm9pZCBzZXRIYXNDbGlwKGJvb2wgYiA9IHRydWUpIHsgU0VUX1ZB
Uih2aXN1YWwsIGhhc0NsaXAsIGIpOyB9Ci0gICAgdm9pZCBzZXRDbGlwTGVmdChMZW5ndGggbGVu
Z3RoKSB7IFNFVF9WQVIodmlzdWFsLCBjbGlwLm1fbGVmdCwgV1RGOjptb3ZlKGxlbmd0aCkpOyB9
Ci0gICAgdm9pZCBzZXRDbGlwUmlnaHQoTGVuZ3RoIGxlbmd0aCkgeyBTRVRfVkFSKHZpc3VhbCwg
Y2xpcC5tX3JpZ2h0LCBXVEY6Om1vdmUobGVuZ3RoKSk7IH0KLSAgICB2b2lkIHNldENsaXBUb3Ao
TGVuZ3RoIGxlbmd0aCkgeyBTRVRfVkFSKHZpc3VhbCwgY2xpcC5tX3RvcCwgV1RGOjptb3ZlKGxl
bmd0aCkpOyB9Ci0gICAgdm9pZCBzZXRDbGlwQm90dG9tKExlbmd0aCBsZW5ndGgpIHsgU0VUX1ZB
Uih2aXN1YWwsIGNsaXAubV9ib3R0b20sIFdURjo6bW92ZShsZW5ndGgpKTsgfQorICAgIHZvaWQg
c2V0Q2xpcExlZnQoTGVuZ3RoIGxlbmd0aCkgeyBTRVRfVkFSKHZpc3VhbCwgY2xpcC5sZWZ0KCks
IFdURjo6bW92ZShsZW5ndGgpKTsgfQorICAgIHZvaWQgc2V0Q2xpcFJpZ2h0KExlbmd0aCBsZW5n
dGgpIHsgU0VUX1ZBUih2aXN1YWwsIGNsaXAucmlnaHQoKSwgV1RGOjptb3ZlKGxlbmd0aCkpOyB9
CisgICAgdm9pZCBzZXRDbGlwVG9wKExlbmd0aCBsZW5ndGgpIHsgU0VUX1ZBUih2aXN1YWwsIGNs
aXAudG9wKCksIFdURjo6bW92ZShsZW5ndGgpKTsgfQorICAgIHZvaWQgc2V0Q2xpcEJvdHRvbShM
ZW5ndGggbGVuZ3RoKSB7IFNFVF9WQVIodmlzdWFsLCBjbGlwLmJvdHRvbSgpLCBXVEY6Om1vdmUo
bGVuZ3RoKSk7IH0KICAgICB2b2lkIHNldENsaXAoTGVuZ3RoIHRvcCwgTGVuZ3RoIHJpZ2h0LCBM
ZW5ndGggYm90dG9tLCBMZW5ndGggbGVmdCk7CiAgICAgdm9pZCBzZXRDbGlwKExlbmd0aEJveCBi
b3gpIHsgU0VUX1ZBUih2aXN1YWwsIGNsaXAsIFdURjo6bW92ZShib3gpKTsgfQogCkBAIC0xNDM0
LDE5ICsxNDM0LDE5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldExpc3RTdHlsZVBvc2l0aW9uKEVM
aXN0U3R5bGVQb3NpdGlvbiB2KSB7IGluaGVyaXRlZF9mbGFncy5fbGlzdF9zdHlsZV9wb3NpdGlv
biA9IHY7IH0KIAogICAgIHZvaWQgcmVzZXRNYXJnaW4oKSB7IFNFVF9WQVIoc3Vycm91bmQsIG1h
cmdpbiwgTGVuZ3RoQm94KEZpeGVkKSk7IH0KLSAgICB2b2lkIHNldE1hcmdpblRvcChMZW5ndGgg
bGVuZ3RoKSB7IFNFVF9WQVIoc3Vycm91bmQsIG1hcmdpbi5tX3RvcCwgV1RGOjptb3ZlKGxlbmd0
aCkpOyB9Ci0gICAgdm9pZCBzZXRNYXJnaW5Cb3R0b20oTGVuZ3RoIGxlbmd0aCkgeyBTRVRfVkFS
KHN1cnJvdW5kLCBtYXJnaW4ubV9ib3R0b20sIFdURjo6bW92ZShsZW5ndGgpKTsgfQotICAgIHZv
aWQgc2V0TWFyZ2luTGVmdChMZW5ndGggbGVuZ3RoKSB7IFNFVF9WQVIoc3Vycm91bmQsIG1hcmdp
bi5tX2xlZnQsIFdURjo6bW92ZShsZW5ndGgpKTsgfQotICAgIHZvaWQgc2V0TWFyZ2luUmlnaHQo
TGVuZ3RoIGxlbmd0aCkgeyBTRVRfVkFSKHN1cnJvdW5kLCBtYXJnaW4ubV9yaWdodCwgV1RGOjpt
b3ZlKGxlbmd0aCkpOyB9CisgICAgdm9pZCBzZXRNYXJnaW5Ub3AoTGVuZ3RoIGxlbmd0aCkgeyBT
RVRfVkFSKHN1cnJvdW5kLCBtYXJnaW4udG9wKCksIFdURjo6bW92ZShsZW5ndGgpKTsgfQorICAg
IHZvaWQgc2V0TWFyZ2luQm90dG9tKExlbmd0aCBsZW5ndGgpIHsgU0VUX1ZBUihzdXJyb3VuZCwg
bWFyZ2luLmJvdHRvbSgpLCBXVEY6Om1vdmUobGVuZ3RoKSk7IH0KKyAgICB2b2lkIHNldE1hcmdp
bkxlZnQoTGVuZ3RoIGxlbmd0aCkgeyBTRVRfVkFSKHN1cnJvdW5kLCBtYXJnaW4ubGVmdCgpLCBX
VEY6Om1vdmUobGVuZ3RoKSk7IH0KKyAgICB2b2lkIHNldE1hcmdpblJpZ2h0KExlbmd0aCBsZW5n
dGgpIHsgU0VUX1ZBUihzdXJyb3VuZCwgbWFyZ2luLnJpZ2h0KCksIFdURjo6bW92ZShsZW5ndGgp
KTsgfQogICAgIHZvaWQgc2V0TWFyZ2luU3RhcnQoTGVuZ3RoKTsKICAgICB2b2lkIHNldE1hcmdp
bkVuZChMZW5ndGgpOwogCiAgICAgdm9pZCByZXNldFBhZGRpbmcoKSB7IFNFVF9WQVIoc3Vycm91
bmQsIHBhZGRpbmcsIExlbmd0aEJveChBdXRvKSk7IH0KICAgICB2b2lkIHNldFBhZGRpbmdCb3go
TGVuZ3RoQm94IGJveCkgeyBTRVRfVkFSKHN1cnJvdW5kLCBwYWRkaW5nLCBXVEY6Om1vdmUoYm94
KSk7IH0KLSAgICB2b2lkIHNldFBhZGRpbmdUb3AoTGVuZ3RoIGxlbmd0aCkgeyBTRVRfVkFSKHN1
cnJvdW5kLCBwYWRkaW5nLm1fdG9wLCBXVEY6Om1vdmUobGVuZ3RoKSk7IH0KLSAgICB2b2lkIHNl
dFBhZGRpbmdCb3R0b20oTGVuZ3RoIGxlbmd0aCkgeyBTRVRfVkFSKHN1cnJvdW5kLCBwYWRkaW5n
Lm1fYm90dG9tLCBXVEY6Om1vdmUobGVuZ3RoKSk7IH0KLSAgICB2b2lkIHNldFBhZGRpbmdMZWZ0
KExlbmd0aCBsZW5ndGgpIHsgU0VUX1ZBUihzdXJyb3VuZCwgcGFkZGluZy5tX2xlZnQsIFdURjo6
bW92ZShsZW5ndGgpKTsgfQotICAgIHZvaWQgc2V0UGFkZGluZ1JpZ2h0KExlbmd0aCBsZW5ndGgp
IHsgU0VUX1ZBUihzdXJyb3VuZCwgcGFkZGluZy5tX3JpZ2h0LCBXVEY6Om1vdmUobGVuZ3RoKSk7
IH0KKyAgICB2b2lkIHNldFBhZGRpbmdUb3AoTGVuZ3RoIGxlbmd0aCkgeyBTRVRfVkFSKHN1cnJv
dW5kLCBwYWRkaW5nLnRvcCgpLCBXVEY6Om1vdmUobGVuZ3RoKSk7IH0KKyAgICB2b2lkIHNldFBh
ZGRpbmdCb3R0b20oTGVuZ3RoIGxlbmd0aCkgeyBTRVRfVkFSKHN1cnJvdW5kLCBwYWRkaW5nLmJv
dHRvbSgpLCBXVEY6Om1vdmUobGVuZ3RoKSk7IH0KKyAgICB2b2lkIHNldFBhZGRpbmdMZWZ0KExl
bmd0aCBsZW5ndGgpIHsgU0VUX1ZBUihzdXJyb3VuZCwgcGFkZGluZy5sZWZ0KCksIFdURjo6bW92
ZShsZW5ndGgpKTsgfQorICAgIHZvaWQgc2V0UGFkZGluZ1JpZ2h0KExlbmd0aCBsZW5ndGgpIHsg
U0VUX1ZBUihzdXJyb3VuZCwgcGFkZGluZy5yaWdodCgpLCBXVEY6Om1vdmUobGVuZ3RoKSk7IH0K
IAogICAgIHZvaWQgc2V0Q3Vyc29yKEVDdXJzb3IgYykgeyBpbmhlcml0ZWRfZmxhZ3MuX2N1cnNv
cl9zdHlsZSA9IGM7IH0KICAgICB2b2lkIGFkZEN1cnNvcihQYXNzUmVmUHRyPFN0eWxlSW1hZ2U+
LCBjb25zdCBJbnRQb2ludCYgaG90U3BvdCA9IEludFBvaW50KCkpOwpJbmRleDogTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNp
b24gMTg0NjgwKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMjEgQEAKKzIwMTUtMDUtMjAgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdh
QGFwcGxlLmNvbT4KKworICAgICAgICBBbiBTVkcgd2l0aCBubyBpbnRyaW5zaWMgc2l6ZSBkb2Vz
IG5vdCBkcmF3IGNvcnJlY3Qgc2xpY2VzIHdoZW4gdXNlZCBhcyBhIGJvcmRlci1pbWFnZSBmb3Ig
YW4gSFRNTCBlbGVtZW50LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTM5NDA1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBmYXN0L2JvcmRlcnMvYm9yZGVyLWltYWdlLWZpbGwtbm8taW50cmluc2ljLXNp
emUtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ib3JkZXJzL2JvcmRlci1p
bWFnZS1maWxsLW5vLWludHJpbnNpYy1zaXplLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
Ym9yZGVycy9yZXNvdXJjZXMvc3ZnLWJvcmRlci0xMDB4MTAwLWludHJpbnNpYy5zdmc6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvYm9yZGVycy9yZXNvdXJjZXMvc3ZnLWJvcmRlci0xNDB4MTQwLWlu
dHJpbnNpYy5zdmc6IEFkZGVkLgorICAgICAgICAqIGZhc3QvYm9yZGVycy9yZXNvdXJjZXMvc3Zn
LWJvcmRlci1uby1pbnRyaW5zaWMuc3ZnOiBBZGRlZC4KKyAgICAgICAgTWFrZSBzdXJlIHRoZSBz
bGljZXMgb2YgdGhlIGJvcmRlci1pbWFnZSBhcmUgZHJhd24gY29ycmVjdGx5LiBXaGVuIHVzaW5n
IGFuCisgICAgICAgIGltYWdlIHdpdGggbm8gaW50cmluc2ljIHNpemUsIGFsbCB0aGUgc2xpY2Vz
IGhhcyB0byBiZSBnb3R0ZW4gZnJvbSAoMCwgMCkKKyAgICAgICAgb2YgdGhlIHNvdXJjZSBpbWFn
ZS4KKyAgICAgICAgCisgICAgICAgICogVGVzdEV4cGVjdGF0aW9uczogUmVtb3ZlZCBwcmV2aW91
c2x5LWZhaWxpbmcgdGVzdC4KKwogMjAxNS0wNS0yMCAgQ2hyaXMgRmxlaXphY2ggIDxjZmxlaXph
Y2hAYXBwbGUuY29tPgogCiAgICAgICAgIEFYOiBpbXByb3ZlIGxpc3QgaGV1cmlzdGljcyAocHJl
c2VudGF0aW9uYWwgdXNlIHZlcnN1cyBhY3R1YWwgbGlzdHMpCkluZGV4OiBMYXlvdXRUZXN0cy9U
ZXN0RXhwZWN0YXRpb25zCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlv
bnMJKHJldmlzaW9uIDE4NDY1NSkKKysrIExheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMJKHdv
cmtpbmcgY29weSkKQEAgLTQzMyw3ICs0MzMsNiBAQCB3ZWJraXQub3JnL2IvMTM5MjY2IGltcG9y
dGVkL21vemlsbGEvc3ZnCiB3ZWJraXQub3JnL2IvMTM5MjgyIGltcG9ydGVkL21vemlsbGEvc3Zn
L2ltYWdlL2ltYWdlLWZpbHRlci0wMS5zdmcgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5v
cmcvYi8xMzkzMjIgaW1wb3J0ZWQvbW96aWxsYS9zdmcvdGV4dC9keW5hbWljLW5vbi1zY2FsaW5n
LXN0cm9rZS5zdmcgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xMzk0MDcgaW1w
b3J0ZWQvbW96aWxsYS9zdmcvYXMtaW1hZ2UvYm9yZGVyLWltYWdlLXNpbXBsZS0xLmh0bWwgWyBJ
bWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8xMzk0MDUgaW1wb3J0ZWQvbW96aWxsYS9z
dmcvYXMtaW1hZ2UvYm9yZGVyLWltYWdlLXNpbXBsZS0yLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJl
IF0KIHdlYmtpdC5vcmcvYi8xMzk0MTIgaW1wb3J0ZWQvbW96aWxsYS9zdmcvZmlsdGVycy9zdmct
ZmlsdGVyLWNoYWlucy9jbGlwLWlucHV0LnN2ZyBbIEltYWdlT25seUZhaWx1cmUgXQogd2Via2l0
Lm9yZy9iLzEzOTQxMiBpbXBvcnRlZC9tb3ppbGxhL3N2Zy9maWx0ZXJzL3N2Zy1maWx0ZXItY2hh
aW5zL2NsaXAtb3V0cHV0LnN2ZyBbIEltYWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzEz
OTQxNCBpbXBvcnRlZC9tb3ppbGxhL3N2Zy9maWx0ZXJzL2ZlQ29sb3JNYXRyaXgtMS5zdmcgWyBJ
bWFnZU9ubHlGYWlsdXJlIF0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvYm9yZGVycy9ib3JkZXIt
aW1hZ2UtZmlsbC1uby1pbnRyaW5zaWMtc2l6ZS1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvYm9yZGVycy9ib3JkZXItaW1hZ2UtZmlsbC1uby1pbnRyaW5zaWMt
c2l6ZS1leHBlY3RlZC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9ib3Jk
ZXJzL2JvcmRlci1pbWFnZS1maWxsLW5vLWludHJpbnNpYy1zaXplLWV4cGVjdGVkLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwzOCBAQAorPCFET0NUWVBFIEhUTUw+Cis8aGVhZD4KKyAg
PHN0eWxlPgorICAgIC5ib3ggeworICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgIHdpZHRoOiAx
MDBweDsKKyAgICAgIG1hcmdpbjogMTBweDsKKyAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsK
KyAgICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKKyAgICB9CisgICAgLmJvcmRlciB7CisgICAg
ICBib3JkZXI6IDIwcHggc29saWQ7CisgICAgfQorICAgIC5uby1ib3JkZXIgeworICAgICAgYm9y
ZGVyOiAwcHggbm9uZTsKKyAgICB9CisgICAgLmJvcmRlci1pbWFnZS0xMDAtaW50cmluc2ljIHsK
KyAgICAgICBib3JkZXItaW1hZ2U6IHVybCgncmVzb3VyY2VzL3N2Zy1ib3JkZXItMTAweDEwMC1p
bnRyaW5zaWMuc3ZnJykgMCBmaWxsOworICAgIH0KKyAgICAuYm9yZGVyLWltYWdlLTEwMC1pbnRy
aW5zaWMtc2xpY2UgeworICAgICAgIGJvcmRlci1pbWFnZTogdXJsKCdyZXNvdXJjZXMvc3ZnLWJv
cmRlci0xMDB4MTAwLWludHJpbnNpYy5zdmcnKSAyMCBmaWxsOworICAgIH0KKyAgICAuYm9yZGVy
LWltYWdlLTE0MC1pbnRyaW5zaWMtc2xpY2UgeworICAgICAgIGJvcmRlci1pbWFnZTogdXJsKCdy
ZXNvdXJjZXMvc3ZnLWJvcmRlci0xNDB4MTQwLWludHJpbnNpYy5zdmcnKSAyMCBmaWxsOworICAg
IH0KKyAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICA8ZGl2IGNsYXNzPSJib3ggbm8tYm9y
ZGVyIGJvcmRlci1pbWFnZS0xMDAtaW50cmluc2ljIj48L2Rpdj4KKyAgPGRpdiBjbGFzcz0iYm94
IGJvcmRlciAgICBib3JkZXItaW1hZ2UtMTAwLWludHJpbnNpYyI+PC9kaXY+CisgIDxkaXYgY2xh
c3M9ImJveCBuby1ib3JkZXIgYm9yZGVyLWltYWdlLTEwMC1pbnRyaW5zaWMtc2xpY2UiPjwvZGl2
PgorICA8ZGl2IGNsYXNzPSJib3ggYm9yZGVyICAgIGJvcmRlci1pbWFnZS0xMDAtaW50cmluc2lj
LXNsaWNlIj48L2Rpdj4KKyAgPGJyPgorICA8ZGl2IGNsYXNzPSJib3ggbm8tYm9yZGVyIGJvcmRl
ci1pbWFnZS0xMDAtaW50cmluc2ljIj48L2Rpdj4KKyAgPGRpdiBjbGFzcz0iYm94IGJvcmRlciAg
ICBib3JkZXItaW1hZ2UtMTAwLWludHJpbnNpYyI+PC9kaXY+CisgIDxkaXYgY2xhc3M9ImJveCBu
by1ib3JkZXIgYm9yZGVyLWltYWdlLTEwMC1pbnRyaW5zaWMiPjwvZGl2PgorICA8ZGl2IGNsYXNz
PSJib3ggYm9yZGVyICAgIGJvcmRlci1pbWFnZS0xNDAtaW50cmluc2ljLXNsaWNlIj48L2Rpdj4K
KzwvYm9keT4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvYm9yZGVycy9ib3JkZXItaW1hZ2UtZmls
bC1uby1pbnRyaW5zaWMtc2l6ZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
Ym9yZGVycy9ib3JkZXItaW1hZ2UtZmlsbC1uby1pbnRyaW5zaWMtc2l6ZS5odG1sCShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9ib3JkZXJzL2JvcmRlci1pbWFnZS1maWxsLW5vLWlu
dHJpbnNpYy1zaXplLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0MSBAQAorPCFET0NU
WVBFIEhUTUw+Cis8aGVhZD4KKyAgPHN0eWxlPgorICAgIC5ib3ggeworICAgICAgaGVpZ2h0OiAx
MDBweDsKKyAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgIG1hcmdpbjogMTBweDsKKyAgICAgIGRp
c3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKKyAgICB9
CisgICAgLmJvcmRlciB7CisgICAgICBib3JkZXI6IDIwcHggc29saWQ7CisgICAgfQorICAgIC5u
by1ib3JkZXIgeworICAgICAgYm9yZGVyOiAwcHggbm9uZTsKKyAgICB9CisgICAgLmJvcmRlci1p
bWFnZS0xMDAtaW50cmluc2ljIHsKKyAgICAgICBib3JkZXItaW1hZ2U6IHVybCgncmVzb3VyY2Vz
L3N2Zy1ib3JkZXItMTAweDEwMC1pbnRyaW5zaWMuc3ZnJykgMCBmaWxsOworICAgIH0KKyAgICAu
Ym9yZGVyLWltYWdlLTEwMC1pbnRyaW5zaWMtc2xpY2UgeworICAgICAgIGJvcmRlci1pbWFnZTog
dXJsKCdyZXNvdXJjZXMvc3ZnLWJvcmRlci0xMDB4MTAwLWludHJpbnNpYy5zdmcnKSAyMCBmaWxs
OworICAgIH0KKyAgICAuYm9yZGVyLWltYWdlLW5vLWludHJpbnNpYyB7CisgICAgICAgYm9yZGVy
LWltYWdlOiB1cmwoJ3Jlc291cmNlcy9zdmctYm9yZGVyLW5vLWludHJpbnNpYy5zdmcnKSAwIGZp
bGw7CisgICAgfQorICAgIC5ib3JkZXItaW1hZ2Utbm8taW50cmluc2ljLXNsaWNlIHsKKyAgICAg
ICBib3JkZXItaW1hZ2U6IHVybCgncmVzb3VyY2VzL3N2Zy1ib3JkZXItbm8taW50cmluc2ljLnN2
ZycpIDIwIGZpbGw7CisgICAgfQorICA8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisgIDxkaXYg
Y2xhc3M9ImJveCBuby1ib3JkZXIgYm9yZGVyLWltYWdlLTEwMC1pbnRyaW5zaWMiPjwvZGl2Pgor
ICA8ZGl2IGNsYXNzPSJib3ggYm9yZGVyICAgIGJvcmRlci1pbWFnZS0xMDAtaW50cmluc2ljIj48
L2Rpdj4KKyAgPGRpdiBjbGFzcz0iYm94IG5vLWJvcmRlciBib3JkZXItaW1hZ2UtMTAwLWludHJp
bnNpYy1zbGljZSI+PC9kaXY+CisgIDxkaXYgY2xhc3M9ImJveCBib3JkZXIgICAgYm9yZGVyLWlt
YWdlLTEwMC1pbnRyaW5zaWMtc2xpY2UiPjwvZGl2PgorICA8YnI+CisgIDxkaXYgY2xhc3M9ImJv
eCBuby1ib3JkZXIgYm9yZGVyLWltYWdlLW5vLWludHJpbnNpYyI+PC9kaXY+CisgIDxkaXYgY2xh
c3M9ImJveCBib3JkZXIgICAgYm9yZGVyLWltYWdlLW5vLWludHJpbnNpYyI+PC9kaXY+CisgIDxk
aXYgY2xhc3M9ImJveCBuby1ib3JkZXIgYm9yZGVyLWltYWdlLW5vLWludHJpbnNpYy1zbGljZSI+
PC9kaXY+CisgIDxkaXYgY2xhc3M9ImJveCBib3JkZXIgICAgYm9yZGVyLWltYWdlLW5vLWludHJp
bnNpYy1zbGljZSI+PC9kaXY+Cis8L2JvZHk+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2JvcmRl
cnMvcmVzb3VyY2VzL3N2Zy1ib3JkZXItMTAweDEwMC1pbnRyaW5zaWMuc3ZnCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvYm9yZGVycy9yZXNvdXJjZXMvc3ZnLWJvcmRlci0xMDB4MTAw
LWludHJpbnNpYy5zdmcJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2JvcmRlcnMv
cmVzb3VyY2VzL3N2Zy1ib3JkZXItMTAweDEwMC1pbnRyaW5zaWMuc3ZnCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsNCBAQAorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmci
IHZlcnNpb249IjEuMSIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiPgorICA8cmVjdCB3aWR0aD0i
MTAwIiBoZWlnaHQ9IjEwMCIgZmlsbD0ibGltZSIvPgorICA8cmVjdCB4PSIxMCIgeT0iMTAiIHdp
ZHRoPSI4MCIgaGVpZ2h0PSI4MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLXdp
ZHRoPSI0cHgiLz4KKzwvc3ZnPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvYm9yZGVycy9yZXNvdXJjZXMvc3ZnLWJvcmRlci0xNDB4MTQwLWludHJp
bnNpYy5zdmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ib3JkZXJzL3Jlc291cmNl
cy9zdmctYm9yZGVyLTE0MHgxNDAtaW50cmluc2ljLnN2ZwkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL2Zhc3QvYm9yZGVycy9yZXNvdXJjZXMvc3ZnLWJvcmRlci0xNDB4MTQwLWludHJpbnNp
Yy5zdmcJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1MiBAQAorPHN2ZyB4bWxucz0iaHR0cDov
L3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5
L3hsaW5rIiB2ZXJzaW9uPSIxLjEiIHdpZHRoPSIxNDAiIGhlaWdodD0iMTQwIj4KKyAgPGRlZnM+
CisgICAgPGcgaWQ9ImJvcmRlci1pbWFnZSI+CisgICAgICA8cmVjdCB3aWR0aD0iMTAwIiBoZWln
aHQ9IjEwMCIgZmlsbD0ibGltZSIvPgorICAgICAgPHJlY3QgeD0iMTAiIHk9IjEwIiB3aWR0aD0i
ODAiIGhlaWdodD0iODAiIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmxhY2siIHN0cm9rZS13aWR0aD0i
NHB4Ii8+CisgICAgPC9nPgorICAgIDxjbGlwUGF0aCBpZD0idG9wLWxlZnQiPgorICAgICAgPHJl
Y3QgeD0iMCIgeT0iMCIgd2lkdGg9IjIwIiBoZWlnaHQ9IjIwIi8+CisgICAgPC9jbGlwUGF0aD4K
KyAgICA8Y2xpcFBhdGggaWQ9ImxlZnQiPgorICAgICAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9
IjIwIiBoZWlnaHQ9IjEwMCIvPgorICAgIDwvY2xpcFBhdGg+CisgICAgPGNsaXBQYXRoIGlkPSJi
b3R0b20tbGVmdCI+CisgICAgICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMjAiIGhlaWdodD0i
MjAiLz4KKyAgICA8L2NsaXBQYXRoPgorICAgIDxjbGlwUGF0aCBpZD0idG9wLXJpZ2h0Ij4KKyAg
ICAgIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIvPgorICAgIDwvY2xp
cFBhdGg+CisgICAgPGNsaXBQYXRoIGlkPSJyaWdodCI+CisgICAgICA8cmVjdCB4PSIwIiB5PSIw
IiB3aWR0aD0iMjAiIGhlaWdodD0iMTAwIi8+CisgICAgPC9jbGlwUGF0aD4KKyAgICA8Y2xpcFBh
dGggaWQ9ImJvdHRvbS1yaWdodCI+CisgICAgICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMjAi
IGhlaWdodD0iMjAiLz4KKyAgICA8L2NsaXBQYXRoPgorICAgIDxjbGlwUGF0aCBpZD0idG9wIj4K
KyAgICAgIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAiIGhlaWdodD0iMjAiLz4KKyAgICA8
L2NsaXBQYXRoPgorICAgIDxjbGlwUGF0aCBpZD0iYm90dG9tIj4KKyAgICAgIDxyZWN0IHg9IjAi
IHk9IjAiIHdpZHRoPSIxMDAiIGhlaWdodD0iMjAiLz4KKyAgICA8L2NsaXBQYXRoPgorICAgIDxj
bGlwUGF0aCBpZD0ibWlkZGxlIj4KKyAgICAgIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAi
IGhlaWdodD0iMTAwIi8+CisgICAgPC9jbGlwUGF0aD4KKyAgPC9kZWZzPgorICAKKyAgPCEtLSBk
cmF3IGxlZnQgc2lkZSAtLT4KKyAgPHVzZSB4PSIwIiB5PSIwIiB4bGluazpocmVmPSIjYm9yZGVy
LWltYWdlIiBjbGlwLXBhdGg9InVybCgjdG9wLWxlZnQpIi8+CisgIDx1c2UgeD0iMCIgeT0iMjAi
IHhsaW5rOmhyZWY9IiNib3JkZXItaW1hZ2UiIGNsaXAtcGF0aD0idXJsKCNsZWZ0KSIvPgorICA8
dXNlIHg9IjAiIHk9IjEyMCIgeGxpbms6aHJlZj0iI2JvcmRlci1pbWFnZSIgY2xpcC1wYXRoPSJ1
cmwoI2JvdHRvbS1sZWZ0KSIvPgorICAKKyAgPCEtLSBkcmF3IHJpZ2h0IHNpZGUgLS0+CisgIDx1
c2UgeD0iMTIwIiB5PSIwIiB4bGluazpocmVmPSIjYm9yZGVyLWltYWdlIiBjbGlwLXBhdGg9InVy
bCgjdG9wLXJpZ2h0KSIvPgorICA8dXNlIHg9IjEyMCIgeT0iMjAiIHhsaW5rOmhyZWY9IiNib3Jk
ZXItaW1hZ2UiIGNsaXAtcGF0aD0idXJsKCNyaWdodCkiLz4KKyAgPHVzZSB4PSIxMjAiIHk9IjEy
MCIgeGxpbms6aHJlZj0iI2JvcmRlci1pbWFnZSIgY2xpcC1wYXRoPSJ1cmwoI2JvdHRvbS1yaWdo
dCkiLz4KKyAgCisgIDwhLS0gZHJhdyB0b3AgYW5kIGJvdHRvbSBzaWRlcyAtLT4KKyAgPHVzZSB4
PSIyMCIgeT0iMCIgeGxpbms6aHJlZj0iI2JvcmRlci1pbWFnZSIgY2xpcC1wYXRoPSJ1cmwoI3Rv
cCkiLz4KKyAgPHVzZSB4PSIyMCIgeT0iMTIwIiB4bGluazpocmVmPSIjYm9yZGVyLWltYWdlIiBj
bGlwLXBhdGg9InVybCgjYm90dG9tKSIvPgorICAKKyAgPCEtLSBkcmF3IG1pZGRsZSAtLT4KKyAg
PHVzZSB4PSIyMCIgeT0iMjAiIHhsaW5rOmhyZWY9IiNib3JkZXItaW1hZ2UiIGNsaXAtcGF0aD0i
dXJsKCNtaWRkbGUpIi8+Cis8L3N2Zz4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2JvcmRlcnMvcmVzb3VyY2VzL3N2Zy1ib3JkZXItbm8taW50cmlu
c2ljLnN2Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2JvcmRlcnMvcmVzb3VyY2Vz
L3N2Zy1ib3JkZXItbm8taW50cmluc2ljLnN2ZwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L2Zhc3QvYm9yZGVycy9yZXNvdXJjZXMvc3ZnLWJvcmRlci1uby1pbnRyaW5zaWMuc3ZnCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsNCBAQAorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
MjAwMC9zdmciIHZlcnNpb249IjEuMSI+CisgIDxyZWN0IHdpZHRoPSIxMDAiIGhlaWdodD0iMTAw
IiBmaWxsPSJsaW1lIi8+CisgIDxyZWN0IHg9IjEwIiB5PSIxMCIgd2lkdGg9IjgwIiBoZWlnaHQ9
IjgwIiBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjRweCIvPgorPC9z
dmc+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRleDogTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvbW96aWxsYS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
bW96aWxsYS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4NDY4MCkKKysrIExheW91dFRlc3RzL2ltcG9y
dGVkL21vemlsbGEvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIw
MTUtMDUtMjAgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KKwor
ICAgICAgICBBbiBTVkcgd2l0aCBubyBpbnRyaW5zaWMgc2l6ZSBkb2VzIG5vdCBkcmF3IGNvcnJl
Y3Qgc2xpY2VzIHdoZW4gdXNlZCBhcyBhIGJvcmRlci1pbWFnZSBmb3IgYW4gSFRNTCBlbGVtZW50
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5NDA1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdmcv
YXMtaW1hZ2UvYm9yZGVyLWltYWdlLXNpbXBsZS0yLmh0bWw6IEFkZCAiYm9yZGVyOiAwcHggbm9u
ZTsiIHRvCisgICAgICAgIHN0eWxlIG9mIHRoZSA8ZGl2PiBhbHRob3VnaCB0aGUgc3R5bGUgaGFz
ICJib3JkZXItaW1hZ2U6IHVybCgpIDAgZmlsbDsiLgorICAgICAgICBJZiB0aGUgYm9yZGVyIHdp
ZHRoIGlzIG5vdCBzZXQgdG8gemVybyBpbiB0aGUgc3R5bGUsIHRoZSA8ZGl2PiB3aWxsIGhhdmUK
KyAgICAgICAgYSAzcHggYm9yZGVyLiBUaGlzIHNlZW1zIHRvIGJlIGEgYnVnIGluIFdlYktpdCBi
dXQgc2hvdWxkIGJlIHVucmVsYXRlZCB0bworICAgICAgICB0aGUgbm9uLWludHJpbnNpYy1zaXpl
ZCBpbWFnZXMgd2l0aCBib3JkZXItaW1hZ2UuCisKIDIwMTQtMTItMDkgIFNhaWQgQWJvdS1IYWxs
YXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBvcnQgTW96aWxsYSB0
ZXN0IHN1aXRlIGZvciBTVkcuCkluZGV4OiBMYXlvdXRUZXN0cy9pbXBvcnRlZC9tb3ppbGxhL3N2
Zy9hcy1pbWFnZS9ib3JkZXItaW1hZ2Utc2ltcGxlLTIuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9pbXBvcnRlZC9tb3ppbGxhL3N2Zy9hcy1pbWFnZS9ib3JkZXItaW1hZ2Utc2ltcGxl
LTIuaHRtbAkocmV2aXNpb24gMTg0NjU1KQorKysgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvbW96aWxs
YS9zdmcvYXMtaW1hZ2UvYm9yZGVyLWltYWdlLXNpbXBsZS0yLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTEsNiArMSw2IEBACiA8aHRtbD4KIDxib2R5PgotICA8ZGl2IHN0eWxlPSJoZWlnaHQ6IDEw
MHB4OyB3aWR0aDogMTAwcHg7CisgIDxkaXYgc3R5bGU9ImhlaWdodDogMTAwcHg7IHdpZHRoOiAx
MDBweDsgYm9yZGVyOiAwcHggbm9uZTsKICAgICAgICAgICAgICAgYm9yZGVyLWltYWdlOiB1cmwo
J3Jlc291cmNlcy9saW1lMTAweDEwMC1ub1NWR0RpbWVuc2lvbnMuc3ZnJykgMCBmaWxsOyIvPgog
PC9ib2R5PgogPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253500</attachid>
            <date>2015-05-20 20:18:52 -0700</date>
            <delta_ts>2015-05-26 19:30:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139405-20150520201848.patch</filename>
            <type>text/plain</type>
            <size>109484</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4NDY1NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2NyBAQAorMjAxNS0wNS0yMCAgU2FpZCBB
Ym91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIEFuIFNWRyB3
aXRoIG5vIGludHJpbnNpYyBzaXplIGRvZXMgbm90IGRyYXcgY29ycmVjdCBzbGljZXMgd2hlbiB1
c2VkIGFzIGEgYm9yZGVyLWltYWdlIGZvciBhbiBIVE1MIGVsZW1lbnQuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk0MDUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIFdoZW4gdXNpbmcgYSBu
b24taW50cmluc2ljLXNpemVkIGltYWdlIGFzIGFuIGltYWdlLWJvcmRlciwgYWxsIHRoZSBzb3Vy
Y2UKKyAgICAgICAgc2xpY2VzIGhhdmUgdG8gYmUgZXh0cmFjdGVkIGZyb20gdGhlIHRvcC1sZWZ0
IGNvcm5lciBvZiB0aGUgc291cmNlIGltYWdlLgorICAgICAgICBUaGlzIGlzIGJlY2F1c2UgdGhl
IHJpZ2h0IGFuZCBib3R0b20gc2lkZXMgb2YgdGhlIGltYWdlIGNhbiBub3QgYmUga25vd24uCisg
ICAgICAgIEFsc28gYWxsIHRoZSBzbGljZXMgc2hvdWxkIG5vdCBiZSBzdHJldGNoZWQuIEluIG90
aGVyIHdvcmRzLCB0aGUgc2l6ZXMgb2YKKyAgICAgICAgc291cmNlIHNsaWNlcyBmb3IgYSBub24t
aW50cmluc2ljLXNpemVkIGltYWdlIHNob3VsZCBiZSBlcXVhbCB0byB0aGUgc2l6ZXMKKyAgICAg
ICAgb2YgdGhlIGRlc3RpbmF0aW9uIGNvbnRhaW5lciBzbGljZXMuCisKKyAgICAgICAgVGhpcyBp
cyBub3QgY29tcGxpYW50IHdpdGggdGhlIGNzczMgdzNjIHNwZWNzLiBJIHRoaW5rIHRoZSBzcGVj
cyBtYWtlcyBpdAorICAgICAgICBoYXJkZXIgdG8gcHJlZGljdCB3aGF0IGV4YWN0bHkgd2lsbCBi
ZSBkcmF3biBmb3IgdGhlIGltYWdlLWJvcmRlciBpbiB0aGlzCisgICAgICAgIGNhc2UuIFNlZSBo
dHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLWJhY2tncm91bmQvI2JvcmRlci1pbWFnZS1zbGljZS4g
VGhpcworICAgICAgICBhcHByb2FjaCBpcyBpbXBsZW1lbnRlZCBieSBGaXJlRm94LiBBbmQgSSB0
aGluayBpdCBnaXZlcyBhIG1vcmUgcHJlZGljdGFibGUgCisgICAgICAgIHJlbmRlcmluZyBmb3Ig
aW1hZ2UtYm9yZGVyIGluIHRoZSBjYXNlIG9mIG5vbi1pbnRyaW5zaWMtc2l6ZWQgaW1hZ2VzLgor
ICAgICAgICAKKyAgICAgICAgVGVzdDogZmFzdC9ib3JkZXJzL2JvcmRlci1pbWFnZS1maWxsLW5v
LWludHJpbnNpYy1zaXplLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAg
ICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2o6CisgICAgICAgICogV2ViQ29yZS52
Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9MZW5ndGhCb3guY3BwOiBS
ZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0xheW91dEJveEV4dGVudC5jcHA6
IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTGF5b3V0Qm94RXh0ZW50Lmg6
IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTGF5b3V0UmVjdC5oOgorICAg
ICAgICBEZWxldGUgTGVuZ3RoQm94LmNwcCBhbmQgbW92ZSBhbGwgdGhlIGZ1bmN0aW9uYWxpdGll
cyB0byBMZW5ndGhCb3guaC4KKyAgICAgICAgRGVsZXRlIExheW91dEJveEV4dGVudC5jcHAgc2lu
Y2UgaXQgaXMgdGhlIHNhbWUgY2xhc3MgYXMgTGVuZ3RoQm94LgorICAgICAgICAKKyAgICAgICAg
KiBjc3MvQ1NTUHJvcGVydHkuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvV3JpdGluZ01v
ZGUuaDoKKyAgICAgICAgTW92ZSB0aGUgZW51bXMgTG9naWNhbEJveFNpZGUgYW5kIFBoeXNpY2Fs
Qm94U2lkZQorICAgICAgICBmcm9tIENTU1Byb3BlcnR5LmNwcCB0byBXcml0aW5nTW9kZS5oIHNv
IGl0IGNhbiBiZSB1c2VkIGJ5IG90aGVyIGNsYXNzZXMuCisgICAgICAgIAorICAgICAgICAqIGNz
cy9DU1NUb1N0eWxlTWFwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1RvU3R5bGVNYXA6Om1h
cE5pbmVQaWVjZUltYWdlU2xpY2UpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVG9TdHlsZU1hcDo6
bWFwTmluZVBpZWNlSW1hZ2VRdWFkKToKKyAgICAgICAgKiBjc3MvQ1NTVG9TdHlsZU1hcC5oOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmJ1aWxkUmVuZGVyZXJIaWdobGlnaHQpOgorICAgICAgICAqIHJlbmRlcmluZy9JbmxpbmVG
bG93Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUZsb3dCb3g6OmFkZEJvcmRlck91
dHNldFZpc3VhbE92ZXJmbG93KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94Lmg6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6Om1hcmdpbkxvZ2ljYWxMZWZ0KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckJveDo6bWFyZ2luTG9naWNhbFJpZ2h0KToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckJveDo6c2V0TWFyZ2luQmVmb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckJveDo6c2V0TWFyZ2luQWZ0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpzZXRN
YXJnaW5TdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OnNldE1hcmdpbkVuZCk6
CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclN0eWxlOjpzZXRDbGlwKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0
eWxlOjpub25lRGFzaGJvYXJkUmVnaW9ucyk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlLmg6CisgICAgICAgIFVzZSB0aGUgbmV3IEJveEV4dGVudCBhY2Nlc3MgbWV0aG9k
cyBmb3IgZ2V0dGluZyBhbmQgc2V0dGluZ3MgdGhlIHNpZGVzIG9mCisgICAgICAgIExlbmd0aEJv
eCBhbmQgTGF5b3V0Qm94RXh0ZW50LgorICAgICAgICAKKyAgICAgICAgKiBwbGF0Zm9ybS9MZW5n
dGhCb3guaDoKKyAgICAgICAgKFdlYkNvcmU6OkJveEV4dGVudDo6Qm94RXh0ZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OkJveEV4dGVudDo6YXQpOgorICAgICAgICAoV2ViQ29yZTo6Qm94RXh0ZW50
Ojp0b3ApOgorICAgICAgICAoV2ViQ29yZTo6Qm94RXh0ZW50OjpyaWdodCk6CisgICAgICAgIChX
ZWJDb3JlOjpCb3hFeHRlbnQ6OmJvdHRvbSk6CisgICAgICAgIChXZWJDb3JlOjpCb3hFeHRlbnQ6
OmxlZnQpOgorICAgICAgICAoV2ViQ29yZTo6Qm94RXh0ZW50OjpzZXRBdCk6CisgICAgICAgIChX
ZWJDb3JlOjpCb3hFeHRlbnQ6OnNldFRvcCk6CisgICAgICAgIChXZWJDb3JlOjpCb3hFeHRlbnQ6
OnNldFJpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkJveEV4dGVudDo6c2V0Qm90dG9tKToKKyAg
ICAgICAgKFdlYkNvcmU6OkJveEV4dGVudDo6c2V0TGVmdCk6CisgICAgICAgIChXZWJDb3JlOjpC
b3hFeHRlbnQ6OmJlZm9yZSk6CisgICAgICAgIChXZWJDb3JlOjpCb3hFeHRlbnQ6OmVuZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpCb3hFeHRlbnQ6OmFmdGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkJv
eEV4dGVudDo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6Qm94RXh0ZW50OjpzZXRCZWZvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6Qm94RXh0ZW50OjpzZXRFbmQpOgorICAgICAgICAoV2ViQ29y
ZTo6Qm94RXh0ZW50OjpzZXRBZnRlcik6CisgICAgICAgIChXZWJDb3JlOjpCb3hFeHRlbnQ6OnNl
dFN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkJveEV4dGVudDo6b3BlcmF0b3I9PSk6CisgICAg
ICAgIChXZWJDb3JlOjpCb3hFeHRlbnQ6Om9wZXJhdG9yIT0pOgorICAgICAgICAoV2ViQ29yZTo6
TGVuZ3RoQm94OjpMZW5ndGhCb3gpOgorICAgICAgICAoV2ViQ29yZTo6TGVuZ3RoQm94Ojppc1pl
cm8pOgorICAgICAgICAoV2ViQ29yZTo6TGVuZ3RoQm94OjpsZWZ0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6Okxlbmd0aEJveDo6cmlnaHQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6TGVuZ3RoQm94Ojp0b3ApOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGVuZ3RoQm94
Ojpib3R0b20pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGVuZ3RoQm94OjpvcGVyYXRv
cj09KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okxlbmd0aEJveDo6b3BlcmF0b3IhPSk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMZW5ndGhCb3g6Om5vblplcm8pOiBEZWxldGVk
LgorICAgICAgICBEZWZpbmUgYSBuZXcgdGVtcGxhdGUgY2xhc3MgZm9yICdCb3hFeHRlbnQnLiBB
ICdCb3hFeHRlbnQnIHJlcHJlc2VudHMgdGhlCisgICAgICAgIGV4dGVudCBvZiBmb3VyIHNpZGVz
IG9mIGEgYm94LiBVc2UgdGhpcyBjbGFzcyB0ZW1wbGF0ZSB0byBkZWZpbmUgdGhlIGV4aXRpbmcg
CisgICAgICAgIGNsYXNzZXMgJ0xlbmd0aEJveCcgYW5kICdMYXlvdXRCb3hFeHRlbnQnLiBVc2Ug
aXQgYWxzbyB0byBhbmQgZGVmaW5lIHRoZQorICAgICAgICBuZXcgY2xhc3MgRmxvYXRCb3hFeHRl
bnQKKyAgICAgICAgICAgIAorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVj
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6Y2FsY3VsYXRl
SW1hZ2VJbnRyaW5zaWNEaW1lbnNpb25zKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94
TW9kZWxPYmplY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveE1vZGVsT2JqZWN0Ojpj
YWxjdWxhdGVGaWxsVGlsZVNpemUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaXN0TWFy
a2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxpc3RNYXJrZXI6OnVwZGF0ZUNvbnRl
bnQpOgorICAgICAgICAqIHJlbmRlcmluZy9zaGFwZXMvU2hhcGVPdXRzaWRlSW5mby5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTaGFwZU91dHNpZGVJbmZvOjpjcmVhdGVTaGFwZUZvckltYWdlKToK
KyAgICAgICAgQ2hhbmdlIHRoZSByZXR1cm4gdmFsdWUgb2YgY2FsY3VsYXRlSW1hZ2VJbnRyaW5z
aWNEaW1lbnNpb25zKCkgdG8gYmUgYQorICAgICAgICBib29sIHdoaWNoIGluZGljYXRlcyB3aGV0
aGVyIHRoZSBpbWFnZSBoYXMgYW4gaW50cmluc2ljIHNpemUgb3Igbm90LiBBZGQKKyAgICAgICAg
YSBuZXcgcmVmZXJlbmNlIGFyZ3VtZW50IHRvIHRoaXMgZnVuY3Rpb24gcmVjZWl2ZSB0aGUgcmVz
b2x2ZWQgaW1hZ2Ugc2l6ZS4KKyAgICAgICAgCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3hN
b2RlbE9iamVjdDo6cGFpbnROaW5lUGllY2VJbWFnZSk6IE1vdmUgYWxsIHRoZSBwYWludGluZwor
ICAgICAgICBjb2RlIG9mIHRoaXMgZnVuY3Rpb24gdG8gTmluZVBpZWNlSW1hZ2U6OnBhaW50KCkK
KyAgICAgICAgCisgICAgICAgIChXZWJDb3JlOjpjb21wdXRlQm9yZGVySW1hZ2VTaWRlKTogRGVs
ZXRlZC4KKyAgICAgICAgUmVuYW1lZCB0byBiZSBOaW5lUGllY2VJbWFnZTo6Y29tcHV0ZVNsaWNl
KCkuCisgICAgICAgIAorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9Cb3JkZXJEYXRhLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpCb3JkZXJEYXRhOjpib3JkZXJXaWR0aCk6IEFkZCBhIG5ldyBtZXRo
b2QgdG8gcmV0dXJuIHRoZSBleHRlbnRzCisgICAgICAgIG9mIHRoZSBib3JkZXIgaW4gYSBGbG9h
dEJveEV4dGVudC4KKyAgICAgICAgCisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL05pbmVQaWVj
ZUltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5pbmVQaWVjZUltYWdlOjpjb21wdXRlU2xp
Y2UpOiBNb3ZlZCBmcm9tIE5pbmVQaWVjZUltYWdlOjpjb21wdXRlU2xpY2UoKS4KKyAgICAgICAg
CisgICAgICAgIChXZWJDb3JlOjpOaW5lUGllY2VJbWFnZTo6Y29tcHV0ZVNsaWNlcyk6IFRoZSBm
aXJzdCB2ZXJzaW9uIG9mIHRoaXMgZnVuY3Rpb24KKyAgICAgICAgY29tcHV0ZXMgdGhlIHNsaWNl
cyBnaXZlbiB0aGVpciBsZW5ndGhzLiBUaGUgc2xpY2VzIGhhdmUgdG8gYmUgY2xhbXBlZCB0bwor
ICAgICAgICB0aGUgY29udGFpbmVyIHNpemUuIFRoZSBzZWNvbmQgdmVyc2lvbiBvZiB0aGlzIGZ1
bmN0aW9uIGNvbXB1dGVzIHRoZSBzbGljZXMKKyAgICAgICAgZ2l2ZW4gdGhlaXIgbGVuZ3Rocywg
dGhlaXIgYWN0dWFsIGV4dGVudHMgYW5kIHRoZWlyIHNvdXJjZSBzbGljZXMuCisgICAgICAgIAor
ICAgICAgICAoV2ViQ29yZTo6TmluZVBpZWNlSW1hZ2U6OnNjYWxlU2xpY2VzSWZOZWVkZWQpOiAg
UmVkdWNlIHRoZSBzbGljZXMgaWYgdGhleQorICAgICAgICBhcmUgdG9vIGxhcmdlLgorICAgICAg
ICAKKyAgICAgICAgKFdlYkNvcmU6Ok5pbmVQaWVjZUltYWdlOjppc0VtcHR5UGllY2VSZWN0KTog
UmV0dXJucyB0cnVlIGlmIGFuIEltYWdlUGllY2UKKyAgICAgICAgc2hvdWxkIG5vdCBiZSBkcmF3
bi4KKyAgICAgICAgCisgICAgICAgIChXZWJDb3JlOjpOaW5lUGllY2VJbWFnZTo6aG9yaXpvbnRh
bFRpbGVSdWxlcyk6CisgICAgICAgIChXZWJDb3JlOjpOaW5lUGllY2VJbWFnZTo6dmVydGljYWxU
aWxlUnVsZXMpOgorICAgICAgICBGaWxsIHZlY3RvcnMgb2YgdGlsaW5nIHJ1bGVzIHRvIGJlIHBh
c3NlZCB0byBHcmFwaGljc0NvbnRleHQ6OmRyYXdUaWxlZEltYWdlKCkKKyAgICAgICAgCisgICAg
ICAgIChXZWJDb3JlOjpOaW5lUGllY2VJbWFnZTo6Y29tcHV0ZUludHJpbnNpY1JlY3RzKTogQ29t
cHV0ZXMgdGhlIG5pbmUgcGllY2VzCisgICAgICAgIHJlY3RhbmdsZXMgZm9yIGFuIGludHJpbnNp
Yy1zaXplZCBjb250YWluZXIuCisgICAgICAgIAorICAgICAgICAoV2ViQ29yZTo6TmluZVBpZWNl
SW1hZ2U6OmNvbXB1dGVOb25JbnRyaW5zaWNSZWN0cyk6IENvbXB1dGVzIHRoZSBuaW5lCisgICAg
ICAgIHBpZWNlcyByZWN0YW5nbGVzIGZvciBhbiBub24taW50cmluc2ljLXNpemVkIHNvdXJjZSBp
bWFnZS4gVGhlIGNvbXB1dGVkCisgICAgICAgIHJlY3RhbmdsZXMgaGF2ZSB0byBzdGFydCBhdCAo
MCwgMCkgYW5kIHRoZWlyIHNpemVzIHNob3VsZCBiZSBlcXVhbCB0bworICAgICAgICB0aGUgc2l6
ZXMgb2YgdGhlIG5pbmUgcGllY2VzIHJlY3RhbmdsZXMgb2YgdGhlIGRlc3RpbmF0aW9uIGNvbnRh
aW5lci4KKyAgICAgICAgCisgICAgICAgIChXZWJDb3JlOjpOaW5lUGllY2VJbWFnZTo6Y29tcHV0
ZUludHJpbnNpY1NpZGVUaWxlU2NhbGUpOgorICAgICAgICAoV2ViQ29yZTo6TmluZVBpZWNlSW1h
Z2U6OmNvbXB1dGVJbnRyaW5zaWNNaWRkbGVUaWxlU2NhbGUpOgorICAgICAgICAoV2ViQ29yZTo6
TmluZVBpZWNlSW1hZ2U6OmNvbXB1dGVJbnRyaW5zaWNUaWxlU2NhbGVzKToKKyAgICAgICAgKFdl
YkNvcmU6Ok5pbmVQaWVjZUltYWdlOjpjb21wdXRlTm9uSW50cmluc2ljVGlsZVNjYWxlcyk6Cisg
ICAgICAgIENvbXB1dGVzIHRoZSBzY2FsaW5nIGZhY3RvcnMgZm9yIGRyYXdpbmcgdGhlIHRpbGVz
LiBGb3Igbm9uLWludHJpbnNpYyBzb3VyY2UKKyAgICAgICAgaW1hZ2VzLCB0aGVyZSBzaG91bGQg
bm90IGJlIGFueSBzY2FsaW5nIGZhY3RvcnMuIAorICAgICAgICAKKyAgICAgICAgKFdlYkNvcmU6
Ok5pbmVQaWVjZUltYWdlOjpwYWludCk6IE1vdmVkIGZyb20gUmVuZGVyQm94TW9kZWxPYmplY3Q6
OnBhaW50TmluZVBpZWNlSW1hZ2UoKQorICAgICAgICBidXQgc2ltcGxpZmllZCBhbmQgcmVzdHJ1
Y3R1cmVkLgorICAgICAgICAKKyAgICAgICAgKFdlYkNvcmU6Ok5pbmVQaWVjZUltYWdlRGF0YTo6
TmluZVBpZWNlSW1hZ2VEYXRhKTogVXNlIG51bGxwdHIgaW5zdGVhZCBvZiAwLgorICAgICAgICAK
KyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvTmluZVBpZWNlSW1hZ2UuaDoKKyAgICAgICAgKFdl
YkNvcmU6Om9wZXJhdG9yKyspOgorICAgICAgICAoV2ViQ29yZTo6aXNDb3JuZXJQaWVjZSk6IAor
ICAgICAgICAoV2ViQ29yZTo6aXNNaWRkbGVQaWVjZSk6CisgICAgICAgIChXZWJDb3JlOjppbWFn
ZVBpZWNlSG9yaXpvbnRhbFNpZGUpOgorICAgICAgICAoV2ViQ29yZTo6aW1hZ2VQaWVjZVZlcnRp
Y2FsU2lkZSk6CisgICAgICAgIEFkZCBoZWxwZXIgZnVuY3Rpb25zIGZvciB0aGUgZW51bSBJbWFn
ZVBpZWNlLgorCiAyMDE1LTA1LTIwICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUu
Y29tPgogCiAgICAgICAgIEFkZCBhIG1lY2hhbmlzbSB0byBvcHQtb3V0IG9mIHRoZSBhdXRvbWF0
aWMgc2NhbGluZyBhcHBsaWVkIHRvIG5vdC1yZWFsbHktcmVzcG9uc2l2ZSBzaXRlcwpJbmRleDog
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDE4NDY1NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yMDQ0LDcgKzIwNDQsNiBAQCBzZXQoV2Vi
Q29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0vS2lsbFJpbmdOb25lLmNwcAogICAgIHBsYXRmb3Jt
L0xhbmd1YWdlLmNwcAogICAgIHBsYXRmb3JtL0xlbmd0aC5jcHAKLSAgICBwbGF0Zm9ybS9MZW5n
dGhCb3guY3BwCiAgICAgcGxhdGZvcm0vTGlua0hhc2guY3BwCiAgICAgcGxhdGZvcm0vTG9nZ2lu
Zy5jcHAKICAgICBwbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmNwcApAQCAtMjE1MSw3ICsyMTUw
LDYgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ludFJlY3Qu
Y3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvSW50U2l6ZS5jcHAKICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9JU09WVFRDdWUuY3BwCi0gICAgcGxhdGZvcm0vZ3JhcGhpY3MvTGF5b3V0Qm94RXh0ZW50
LmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0xheW91dFJlY3QuY3BwCiAgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvTWFza0ltYWdlT3BlcmF0aW9uLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL01l
ZGlhUGxheWVyLmNwcApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNv
cmUudmN4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ov
V2ViQ29yZS52Y3hwcm9qCShyZXZpc2lvbiAxODQ2NTUpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC03OTk2LDcgKzc5
OTYsNiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cVVJMLmNwcCIgLz4K
ICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXExhbmd1YWdlLmNwcCIgLz4KICAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXExlbmd0aC5jcHAiIC8+Ci0gICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxMZW5ndGhCb3guY3BwIiAvPgogICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cTGlua0hhc2guY3BwIiAvPgogICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cTG9jYWxpemVkU3RyaW5ncy5jcHAiIC8+CiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxMb2dnaW5nLmNwcCIgLz4KQEAgLTgyMTUsNyAr
ODIxNCw2IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xJ
bnRQb2ludC5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFw
aGljc1xJbnRSZWN0LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3Jt
XGdyYXBoaWNzXEludFNpemUuY3BwIiAvPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxh
dGZvcm1cZ3JhcGhpY3NcTGF5b3V0Qm94RXh0ZW50LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXExheW91dFJlY3QuY3BwIiAvPgogICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcTWVkaWFQbGF5ZXIuY3BwIiAvPgog
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcUGF0aC5jcHAiIC8+
CkBAIC0yMDAxMSw3ICsyMDAwOSw2IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0
Zm9ybVxncmFwaGljc1xJbnRTaXplLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxw
bGF0Zm9ybVxncmFwaGljc1xJbnRTaXplSGFzaC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcSVNPVlRUQ3VlLmgiIC8+Ci0gICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xMYXlvdXRCb3hFeHRlbnQuaCIgLz4KICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXExheW91dFBvaW50LmgiIC8+
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xMYXlvdXRSZWN0
LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xMYXlv
dXRTaXplLmgiIC8+CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29y
ZS52Y3hwcm9qLmZpbHRlcnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCShyZXZpc2lvbiAxODQ2NTUpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMJKHdvcmtp
bmcgY29weSkKQEAgLTExMTMsOSArMTExMyw2IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlxwbGF0Zm9ybVxMZW5ndGguY3BwIj4KICAgICAgIDxGaWx0ZXI+cGxhdGZvcm08L0ZpbHRlcj4K
ICAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXExl
bmd0aEJveC5jcHAiPgotICAgICAgPEZpbHRlcj5wbGF0Zm9ybTwvRmlsdGVyPgotICAgIDwvQ2xD
b21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cTGlua0hhc2guY3Bw
Ij4KICAgICAgIDxGaWx0ZXI+cGxhdGZvcm08L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAg
LTEzNzEsOSArMTM2OCw2IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxn
cmFwaGljc1xJbnRTaXplLmNwcCI+CiAgICAgICA8RmlsdGVyPnBsYXRmb3JtXGdyYXBoaWNzPC9G
aWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0
Zm9ybVxncmFwaGljc1xMYXlvdXRCb3hFeHRlbnQuY3BwIj4KLSAgICAgIDxGaWx0ZXI+cGxhdGZv
cm1cZ3JhcGhpY3M8L0ZpbHRlcj4KLSAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIElu
Y2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXExheW91dFJlY3QuY3BwIj4KICAgICAgIDxGaWx0
ZXI+cGxhdGZvcm1cZ3JhcGhpY3M8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTg0OTYs
OSArODQ5MCw2IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGlj
c1xJbnRTaXplSGFzaC5oIj4KICAgICAgIDxGaWx0ZXI+cGxhdGZvcm1cZ3JhcGhpY3M8L0ZpbHRl
cj4KICAgICA8L0NsSW5jbHVkZT4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBsYXRmb3Jt
XGdyYXBoaWNzXExheW91dEJveEV4dGVudC5oIj4KLSAgICAgIDxGaWx0ZXI+cGxhdGZvcm1cZ3Jh
cGhpY3M8L0ZpbHRlcj4KLSAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXExheW91dFBvaW50LmgiPgogICAgICAgPEZpbHRlcj5wbGF0
Zm9ybVxncmFwaGljczwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpJbmRleDogU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24g
MTg0NjU1KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCSh3b3JraW5nIGNvcHkpCkBAIC01OTAsOCArNTkwLDYgQEAKIAkJMTQxMTVCNzMwOUY4NENE
NjAwQ0E0RkMxIC8qIEpTTm9kZUZpbHRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMTQxMTVCNzEwOUY4NENENjAwQ0E0RkMxIC8qIEpTTm9kZUZpbHRl
ci5oICovOyB9OwogCQkxNDExRENCMTE2NEMzOUE4MDBENDlCQzEgLyogV2lkdGhDYWNoZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQxMURDQjAxNjRD
MzlBODAwRDQ5QkMxIC8qIFdpZHRoQ2FjaGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQkxNDFEQzA0ODE2NDgzNDhGMDAzNzFFNUEgLyogTGF5b3V0
VW5pdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQx
REMwNDcxNjQ4MzQ4RjAwMzcxRTVBIC8qIExheW91dFVuaXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkxNDFEQzA0RjE2NDgzNEI5MDAzNzFFNUEg
LyogTGF5b3V0Qm94RXh0ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDE0MURDMDQ5MTY0ODM0QjkwMDM3MUU1QSAvKiBMYXlvdXRCb3hFeHRlbnQu
Y3BwICovOyB9OwotCQkxNDFEQzA1MDE2NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0Qm94RXh0ZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDFEQzA0
QTE2NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0Qm94RXh0ZW50LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMTQxREMwNTExNjQ4MzRCOTAwMzcxRTVB
IC8qIExheW91dFBvaW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxNDFEQzA0QjE2NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0UG9pbnQuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxNDFEQzA1MjE2NDgz
NEI5MDAzNzFFNUEgLyogTGF5b3V0UmVjdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxNDFEQzA0QzE2NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0UmVj
dC5jcHAgKi87IH07CiAJCTE0MURDMDUzMTY0ODM0QjkwMDM3MUU1QSAvKiBMYXlvdXRSZWN0Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDFEQzA0RDE2
NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0UmVjdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CkBAIC02MDUsNyArNjAzLDYgQEAKIAkJMTQ0NzZBQTgxNURD
NEJCMTAwMzA1REIyIC8qIFdyaXRpbmdNb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxNDQ3NkFBNzE1REM0QkIxMDAzMDVEQjIgLyogV3JpdGluZ01v
ZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkx
NDQ5RTI0QzEwN0Q0QTg0MDBCNTc5M0YgLyogSlNDYWxsYmFja0RhdGEuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0NDlFMjRBMTA3RDRBODQwMEI1Nzkz
RiAvKiBKU0NhbGxiYWNrRGF0YS5oICovOyB9OwogCQkxNDQ5RTI4NzEwN0Q0REI0MDBCNTc5M0Yg
LyogSlNDYWxsYmFja0RhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMTQ0OUUyODYxMDdENERCNDAwQjU3OTNGIC8qIEpTQ2FsbGJhY2tEYXRhLmNw
cCAqLzsgfTsKLQkJMTQ2Q0MxMTUxNTY5ODhFNDAwMTA5RTM3IC8qIExlbmd0aEJveC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDZDQzExMzE1Njk4
OEJEMDAxMDlFMzcgLyogTGVuZ3RoQm94LmNwcCAqLzsgfTsKIAkJMTQ3N0U3NzYwQkY0MTM0QTAw
MTUyODcyIC8qIFBhZ2VDYWNoZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxNDc3RTc3NDBCRjQxMzRBMDAxNTI4NzIgLyogUGFnZUNhY2hlLmNwcCAq
LzsgfTsKIAkJMTQ3N0U3NzcwQkY0MTM0QTAwMTUyODcyIC8qIFBhZ2VDYWNoZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ3N0U3NzUwQkY0MTM0QTAw
MTUyODcyIC8qIFBhZ2VDYWNoZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTE0NzlGQUVEMTA5QUUzNzUwMERFRDY1NSAvKiBSZW5kZXJSdWJ5LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0NzlGQUU1
MTA5QUUzNzUwMERFRDY1NSAvKiBSZW5kZXJSdWJ5LmNwcCAqLzsgfTsKQEAgLTc2NjQsOCArNzY2
MSw2IEBACiAJCTE0MUI5NEU1MDlFQzQyMjMwMDBFOTQxMyAvKiBNb3VzZUV2ZW50LmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gTW91c2VFdmVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTE0MUI5NEVFMDlFQzQyNUEwMDBFOTQxMyAvKiBVSUV2ZW50LmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gVUlFdmVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTE0MURDMDQ3MTY0ODM0OEYwMDM3MUU1QSAvKiBMYXlvdXRVbml0LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExheW91dFVuaXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJMTQxREMwNDkxNjQ4MzRCOTAwMzcxRTVBIC8qIExheW91dEJveEV4dGVudC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMYXlvdXRCb3hFeHRlbnQuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxNDFEQzA0QTE2NDgzNEI5MDAzNzFFNUEg
LyogTGF5b3V0Qm94RXh0ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExh
eW91dEJveEV4dGVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNDFEQzA0QjE2
NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0UG9pbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTGF5b3V0UG9pbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQx
REMwNEMxNjQ4MzRCOTAwMzcxRTVBIC8qIExheW91dFJlY3QuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gTGF5b3V0UmVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTE0MURDMDREMTY0ODM0QjkwMDM3MUU1QSAvKiBMYXlvdXRSZWN0LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExheW91dFJlY3QuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTc2ODAsNyArNzY3NSw2IEBACiAJCTE0NDc2QUE3MTVEQzRCQjEwMDMw
NURCMiAvKiBXcml0aW5nTW9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
cml0aW5nTW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNDQ5RTI0QTEwN0Q0
QTg0MDBCNTc5M0YgLyogSlNDYWxsYmFja0RhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSlNDYWxsYmFja0RhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MTQ0OUUyODYxMDdENERCNDAwQjU3OTNGIC8qIEpTQ2FsbGJhY2tEYXRhLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ2FsbGJhY2tEYXRhLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMTQ2Q0MxMTMxNTY5ODhCRDAwMTA5RTM3IC8qIExlbmd0aEJv
eC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMZW5ndGhCb3guY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNDc3RTc3NDBCRjQxMzRBMDAxNTI4NzIg
LyogUGFnZUNhY2hlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQ
YWdlQ2FjaGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNDc3RTc3NTBCRjQx
MzRBMDAxNTI4NzIgLyogUGFnZUNhY2hlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBQYWdlQ2FjaGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQ3OUZBRTUx
MDlBRTM3NTAwREVENjU1IC8qIFJlbmRlclJ1YnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUmVuZGVyUnVieS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0yMDg3OCw4ICsyMDg3Miw2IEBACiAJCQkJMDdBQzQ2RkYxOTUyMTAyMTAwRUU5NzIzIC8q
IElTT1ZUVEN1ZS5jcHAgKi8sCiAJCQkJMDdBQzQ3MDAxOTUyMTAyMTAwRUU5NzIzIC8qIElTT1ZU
VEN1ZS5oICovLAogCQkJCTY1Q0M2QkVEMTYwMTRFQzAwMDBFRDI3RCAvKiBMYXRpbjFUZXh0SXRl
cmF0b3IuaCAqLywKLQkJCQkxNDFEQzA0OTE2NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0Qm94RXh0
ZW50LmNwcCAqLywKLQkJCQkxNDFEQzA0QTE2NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0Qm94RXh0
ZW50LmggKi8sCiAJCQkJMTQxREMwNEIxNjQ4MzRCOTAwMzcxRTVBIC8qIExheW91dFBvaW50Lmgg
Ki8sCiAJCQkJMTQxREMwNEMxNjQ4MzRCOTAwMzcxRTVBIC8qIExheW91dFJlY3QuY3BwICovLAog
CQkJCTE0MURDMDREMTY0ODM0QjkwMDM3MUU1QSAvKiBMYXlvdXRSZWN0LmggKi8sCkBAIC0yMTc2
NCw3ICsyMTc1Niw2IEBACiAJCQkJMTQxREMwNDcxNjQ4MzQ4RjAwMzcxRTVBIC8qIExheW91dFVu
aXQuaCAqLywKIAkJCQlCQ0U2NUJFODBFQUNERjE2MDA3RTQ1MzMgLyogTGVuZ3RoLmNwcCAqLywK
IAkJCQlCQ0U2NUJFOTBFQUNERjE2MDA3RTQ1MzMgLyogTGVuZ3RoLmggKi8sCi0JCQkJMTQ2Q0Mx
MTMxNTY5ODhCRDAwMTA5RTM3IC8qIExlbmd0aEJveC5jcHAgKi8sCiAJCQkJQkNGRjY0OEYwRUFE
MTVDMjAwQzFENkY3IC8qIExlbmd0aEJveC5oICovLAogCQkJCUJDRkY2NDkwMEVBRDE1QzIwMEMx
RDZGNyAvKiBMZW5ndGhTaXplLmggKi8sCiAJCQkJQTdBRDJGODUwRUM4OUQwNzAwOEFCMDAyIC8q
IExpbmtIYXNoLmNwcCAqLywKQEAgLTI1NzA0LDcgKzI1Njk1LDYgQEAKIAkJCQlFNDkxNkZGNzE5
NURGNkEwMDA1QUIzNDkgLyogTGF5ZXJGbHVzaFRocm90dGxlU3RhdGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCTU4MDM3MTY0MUE2NkYxRDMwMEJBRjUxOSAvKiBMYXllckZyYWdtZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk3QUEzQTZBMDE5NEI1OUI2MDAxQ0JEMjQgLyogTGF5ZXJQb29sLmggaW4g
SGVhZGVycyAqLywKLQkJCQkxNDFEQzA1MDE2NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0Qm94RXh0
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzFENzJGNjE1RkU2OTUzMDBDNEMwN0UgLyogTGF5
b3V0TWlsZXN0b25lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQxREMwNTExNjQ4MzRCOTAwMzcx
RTVBIC8qIExheW91dFBvaW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDFEQzA1MzE2NDgzNEI5
MDAzNzFFNUEgLyogTGF5b3V0UmVjdC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yOTMwMCw3ICsyOTI5
MCw2IEBACiAJCQkJMjkxN0I1NjExNDczNDk2QzAwNTJDOUQwIC8qIExheWVyRmx1c2hTY2hlZHVs
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMjkxN0I1NjYxNDczNDk5NTAwNTJDOUQwIC8qIExh
eWVyRmx1c2hTY2hlZHVsZXJNYWMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0FBM0E2OUYxOTRC
NTlCNjAwMUNCRDI0IC8qIExheWVyUG9vbC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkxNDFEQzA0
RjE2NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0Qm94RXh0ZW50LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTE0MURDMDUyMTY0ODM0QjkwMDM3MUU1QSAvKiBMYXlvdXRSZWN0LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUExMjBBQ0E0MTNGOTk4Q0EwMEZFNEFDNyAvKiBMYXlvdXRSZXBhaW50ZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5MDY2MDYwQkUxNDFENDAwOTU2OTk4IC8qIExheW91dFN0
YXRlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjkzMTIsNyArMjkzMDEsNiBAQAogCQkJCTUxMkRE
OEY0MEQ5MUU2QUYwMDBGODlFRSAvKiBMZWdhY3lXZWJBcmNoaXZlLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTUxQjI0MTdCMEQ5MzFGM0YwMEU4M0Y1QyAvKiBMZWdhY3lXZWJBcmNoaXZlTWFjLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJQkNFNjVCRUEwRUFDREYxNjAwN0U0NTMzIC8qIExlbmd0aC5j
cHAgaW4gU291cmNlcyAqLywKLQkJCQkxNDZDQzExNTE1Njk4OEU0MDAxMDlFMzcgLyogTGVuZ3Ro
Qm94LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUU1NUY0OTdBMTUxQjg4ODAwMEJCNjdEQiAvKiBM
ZW5ndGhGdW5jdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkZCNjk4Q0MxODMzRUUwRDAw
MTU4QTMxIC8qIExpbmVCcmVha2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg5QjVFQUExMTFF
ODAwM0QwMEYyMzY3RSAvKiBMaW5lRW5kaW5nLmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogU291
cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUHJvcGVydHkuY3BwCShyZXZpc2lvbiAxODQ2NTUpCisrKyBTb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUHJvcGVydHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NCw5ICs1NCw2IEBA
IHZvaWQgQ1NTUHJvcGVydHk6OndyYXBWYWx1ZUluQ29tbWFTZXBhcmEKICAgICBtX3ZhbHVlID0g
V1RGOjptb3ZlKGxpc3QpOwogfQogCi1lbnVtIExvZ2ljYWxCb3hTaWRlIHsgQmVmb3JlU2lkZSwg
RW5kU2lkZSwgQWZ0ZXJTaWRlLCBTdGFydFNpZGUgfTsKLWVudW0gUGh5c2ljYWxCb3hTaWRlIHsg
VG9wU2lkZSwgUmlnaHRTaWRlLCBCb3R0b21TaWRlLCBMZWZ0U2lkZSB9OwotCiBzdGF0aWMgQ1NT
UHJvcGVydHlJRCByZXNvbHZlVG9QaHlzaWNhbFByb3BlcnR5KFRleHREaXJlY3Rpb24gZGlyZWN0
aW9uLCBXcml0aW5nTW9kZSB3cml0aW5nTW9kZSwgTG9naWNhbEJveFNpZGUgbG9naWNhbFNpZGUs
IGNvbnN0IFN0eWxlUHJvcGVydHlTaG9ydGhhbmQmIHNob3J0aGFuZCkKIHsKICAgICBpZiAoZGly
ZWN0aW9uID09IExUUikgewpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1RvU3R5bGVNYXAu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUb1N0eWxlTWFwLmNwcAko
cmV2aXNpb24gMTg0NjU1KQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU1RvU3R5bGVNYXAuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC02MTgsMjEgKzYxOCwyMSBAQCB2b2lkIENTU1RvU3R5bGVNYXA6
Om1hcE5pbmVQaWVjZUltYWdlU2xpCiAgICAgTGVuZ3RoQm94IGJveDsKICAgICBRdWFkKiBzbGlj
ZXMgPSBib3JkZXJJbWFnZVNsaWNlLnNsaWNlcygpOwogICAgIGlmIChzbGljZXMtPnRvcCgpLT5p
c1BlcmNlbnRhZ2UoKSkKLSAgICAgICAgYm94Lm1fdG9wID0gTGVuZ3RoKHNsaWNlcy0+dG9wKCkt
PmdldERvdWJsZVZhbHVlKCksIFBlcmNlbnQpOworICAgICAgICBib3gudG9wKCkgPSBMZW5ndGgo
c2xpY2VzLT50b3AoKS0+Z2V0RG91YmxlVmFsdWUoKSwgUGVyY2VudCk7CiAgICAgZWxzZQotICAg
ICAgICBib3gubV90b3AgPSBMZW5ndGgoc2xpY2VzLT50b3AoKS0+Z2V0SW50VmFsdWUoQ1NTUHJp
bWl0aXZlVmFsdWU6OkNTU19OVU1CRVIpLCBGaXhlZCk7CisgICAgICAgIGJveC50b3AoKSA9IExl
bmd0aChzbGljZXMtPnRvcCgpLT5nZXRJbnRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05V
TUJFUiksIEZpeGVkKTsKICAgICBpZiAoc2xpY2VzLT5ib3R0b20oKS0+aXNQZXJjZW50YWdlKCkp
Ci0gICAgICAgIGJveC5tX2JvdHRvbSA9IExlbmd0aChzbGljZXMtPmJvdHRvbSgpLT5nZXREb3Vi
bGVWYWx1ZSgpLCBQZXJjZW50KTsKKyAgICAgICAgYm94LmJvdHRvbSgpID0gTGVuZ3RoKHNsaWNl
cy0+Ym90dG9tKCktPmdldERvdWJsZVZhbHVlKCksIFBlcmNlbnQpOwogICAgIGVsc2UKLSAgICAg
ICAgYm94Lm1fYm90dG9tID0gTGVuZ3RoKChpbnQpc2xpY2VzLT5ib3R0b20oKS0+Z2V0RmxvYXRW
YWx1ZShDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUiksIEZpeGVkKTsKKyAgICAgICAgYm94
LmJvdHRvbSgpID0gTGVuZ3RoKChpbnQpc2xpY2VzLT5ib3R0b20oKS0+Z2V0RmxvYXRWYWx1ZShD
U1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUiksIEZpeGVkKTsKICAgICBpZiAoc2xpY2VzLT5s
ZWZ0KCktPmlzUGVyY2VudGFnZSgpKQotICAgICAgICBib3gubV9sZWZ0ID0gTGVuZ3RoKHNsaWNl
cy0+bGVmdCgpLT5nZXREb3VibGVWYWx1ZSgpLCBQZXJjZW50KTsKKyAgICAgICAgYm94LmxlZnQo
KSA9IExlbmd0aChzbGljZXMtPmxlZnQoKS0+Z2V0RG91YmxlVmFsdWUoKSwgUGVyY2VudCk7CiAg
ICAgZWxzZQotICAgICAgICBib3gubV9sZWZ0ID0gTGVuZ3RoKHNsaWNlcy0+bGVmdCgpLT5nZXRJ
bnRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUiksIEZpeGVkKTsKKyAgICAgICAg
Ym94LmxlZnQoKSA9IExlbmd0aChzbGljZXMtPmxlZnQoKS0+Z2V0SW50VmFsdWUoQ1NTUHJpbWl0
aXZlVmFsdWU6OkNTU19OVU1CRVIpLCBGaXhlZCk7CiAgICAgaWYgKHNsaWNlcy0+cmlnaHQoKS0+
aXNQZXJjZW50YWdlKCkpCi0gICAgICAgIGJveC5tX3JpZ2h0ID0gTGVuZ3RoKHNsaWNlcy0+cmln
aHQoKS0+Z2V0RG91YmxlVmFsdWUoKSwgUGVyY2VudCk7CisgICAgICAgIGJveC5yaWdodCgpID0g
TGVuZ3RoKHNsaWNlcy0+cmlnaHQoKS0+Z2V0RG91YmxlVmFsdWUoKSwgUGVyY2VudCk7CiAgICAg
ZWxzZQotICAgICAgICBib3gubV9yaWdodCA9IExlbmd0aChzbGljZXMtPnJpZ2h0KCktPmdldElu
dFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfTlVNQkVSKSwgRml4ZWQpOworICAgICAgICBi
b3gucmlnaHQoKSA9IExlbmd0aChzbGljZXMtPnJpZ2h0KCktPmdldEludFZhbHVlKENTU1ByaW1p
dGl2ZVZhbHVlOjpDU1NfTlVNQkVSKSwgRml4ZWQpOwogICAgIGltYWdlLnNldEltYWdlU2xpY2Vz
KGJveCk7CiAKICAgICAvLyBTZXQgb3VyIGZpbGwgbW9kZS4KQEAgLTY1NCwzMiArNjU0LDMyIEBA
IExlbmd0aEJveCBDU1NUb1N0eWxlTWFwOjptYXBOaW5lUGllY2VJbWEKICAgICBMZW5ndGhCb3gg
Ym94OyAvLyBEZWZhdWx0cyB0byAnYXV0bycgc28gd2UgZG9uJ3QgaGF2ZSB0byBoYW5kbGUgdGhh
dCBleHBsaWNpdGx5IGJlbG93LgogICAgIFF1YWQqIHNsaWNlcyA9IGJvcmRlcldpZHRocy5nZXRR
dWFkVmFsdWUoKTsKICAgICBpZiAoc2xpY2VzLT50b3AoKS0+aXNOdW1iZXIoKSkKLSAgICAgICAg
Ym94Lm1fdG9wID0gTGVuZ3RoKHNsaWNlcy0+dG9wKCktPmdldEludFZhbHVlKCksIFJlbGF0aXZl
KTsKKyAgICAgICAgYm94LnRvcCgpID0gTGVuZ3RoKHNsaWNlcy0+dG9wKCktPmdldEludFZhbHVl
KCksIFJlbGF0aXZlKTsKICAgICBlbHNlIGlmIChzbGljZXMtPnRvcCgpLT5pc1BlcmNlbnRhZ2Uo
KSkKLSAgICAgICAgYm94Lm1fdG9wID0gTGVuZ3RoKHNsaWNlcy0+dG9wKCktPmdldERvdWJsZVZh
bHVlKENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUEVSQ0VOVEFHRSksIFBlcmNlbnQpOworICAgICAg
ICBib3gudG9wKCkgPSBMZW5ndGgoc2xpY2VzLT50b3AoKS0+Z2V0RG91YmxlVmFsdWUoQ1NTUHJp
bWl0aXZlVmFsdWU6OkNTU19QRVJDRU5UQUdFKSwgUGVyY2VudCk7CiAgICAgZWxzZSBpZiAoc2xp
Y2VzLT50b3AoKS0+Z2V0VmFsdWVJRCgpICE9IENTU1ZhbHVlQXV0bykKLSAgICAgICAgYm94Lm1f
dG9wID0gc2xpY2VzLT50b3AoKS0+Y29tcHV0ZUxlbmd0aDxMZW5ndGg+KGNvbnZlcnNpb25EYXRh
KTsKKyAgICAgICAgYm94LnRvcCgpID0gc2xpY2VzLT50b3AoKS0+Y29tcHV0ZUxlbmd0aDxMZW5n
dGg+KGNvbnZlcnNpb25EYXRhKTsKIAogICAgIGlmIChzbGljZXMtPnJpZ2h0KCktPmlzTnVtYmVy
KCkpCi0gICAgICAgIGJveC5tX3JpZ2h0ID0gTGVuZ3RoKHNsaWNlcy0+cmlnaHQoKS0+Z2V0SW50
VmFsdWUoKSwgUmVsYXRpdmUpOworICAgICAgICBib3gucmlnaHQoKSA9IExlbmd0aChzbGljZXMt
PnJpZ2h0KCktPmdldEludFZhbHVlKCksIFJlbGF0aXZlKTsKICAgICBlbHNlIGlmIChzbGljZXMt
PnJpZ2h0KCktPmlzUGVyY2VudGFnZSgpKQotICAgICAgICBib3gubV9yaWdodCA9IExlbmd0aChz
bGljZXMtPnJpZ2h0KCktPmdldERvdWJsZVZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUEVS
Q0VOVEFHRSksIFBlcmNlbnQpOworICAgICAgICBib3gucmlnaHQoKSA9IExlbmd0aChzbGljZXMt
PnJpZ2h0KCktPmdldERvdWJsZVZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUEVSQ0VOVEFH
RSksIFBlcmNlbnQpOwogICAgIGVsc2UgaWYgKHNsaWNlcy0+cmlnaHQoKS0+Z2V0VmFsdWVJRCgp
ICE9IENTU1ZhbHVlQXV0bykKLSAgICAgICAgYm94Lm1fcmlnaHQgPSBzbGljZXMtPnJpZ2h0KCkt
PmNvbXB1dGVMZW5ndGg8TGVuZ3RoPihjb252ZXJzaW9uRGF0YSk7CisgICAgICAgIGJveC5yaWdo
dCgpID0gc2xpY2VzLT5yaWdodCgpLT5jb21wdXRlTGVuZ3RoPExlbmd0aD4oY29udmVyc2lvbkRh
dGEpOwogCiAgICAgaWYgKHNsaWNlcy0+Ym90dG9tKCktPmlzTnVtYmVyKCkpCi0gICAgICAgIGJv
eC5tX2JvdHRvbSA9IExlbmd0aChzbGljZXMtPmJvdHRvbSgpLT5nZXRJbnRWYWx1ZSgpLCBSZWxh
dGl2ZSk7CisgICAgICAgIGJveC5ib3R0b20oKSA9IExlbmd0aChzbGljZXMtPmJvdHRvbSgpLT5n
ZXRJbnRWYWx1ZSgpLCBSZWxhdGl2ZSk7CiAgICAgZWxzZSBpZiAoc2xpY2VzLT5ib3R0b20oKS0+
aXNQZXJjZW50YWdlKCkpCi0gICAgICAgIGJveC5tX2JvdHRvbSA9IExlbmd0aChzbGljZXMtPmJv
dHRvbSgpLT5nZXREb3VibGVWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BFUkNFTlRBR0Up
LCBQZXJjZW50KTsKKyAgICAgICAgYm94LmJvdHRvbSgpID0gTGVuZ3RoKHNsaWNlcy0+Ym90dG9t
KCktPmdldERvdWJsZVZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUEVSQ0VOVEFHRSksIFBl
cmNlbnQpOwogICAgIGVsc2UgaWYgKHNsaWNlcy0+Ym90dG9tKCktPmdldFZhbHVlSUQoKSAhPSBD
U1NWYWx1ZUF1dG8pCi0gICAgICAgIGJveC5tX2JvdHRvbSA9IHNsaWNlcy0+Ym90dG9tKCktPmNv
bXB1dGVMZW5ndGg8TGVuZ3RoPihjb252ZXJzaW9uRGF0YSk7CisgICAgICAgIGJveC5ib3R0b20o
KSA9IHNsaWNlcy0+Ym90dG9tKCktPmNvbXB1dGVMZW5ndGg8TGVuZ3RoPihjb252ZXJzaW9uRGF0
YSk7CiAKICAgICBpZiAoc2xpY2VzLT5sZWZ0KCktPmlzTnVtYmVyKCkpCi0gICAgICAgIGJveC5t
X2xlZnQgPSBMZW5ndGgoc2xpY2VzLT5sZWZ0KCktPmdldEludFZhbHVlKCksIFJlbGF0aXZlKTsK
KyAgICAgICAgYm94LmxlZnQoKSA9IExlbmd0aChzbGljZXMtPmxlZnQoKS0+Z2V0SW50VmFsdWUo
KSwgUmVsYXRpdmUpOwogICAgIGVsc2UgaWYgKHNsaWNlcy0+bGVmdCgpLT5pc1BlcmNlbnRhZ2Uo
KSkKLSAgICAgICAgYm94Lm1fbGVmdCA9IExlbmd0aChzbGljZXMtPmxlZnQoKS0+Z2V0RG91Ymxl
VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QRVJDRU5UQUdFKSwgUGVyY2VudCk7CisgICAg
ICAgIGJveC5sZWZ0KCkgPSBMZW5ndGgoc2xpY2VzLT5sZWZ0KCktPmdldERvdWJsZVZhbHVlKENT
U1ByaW1pdGl2ZVZhbHVlOjpDU1NfUEVSQ0VOVEFHRSksIFBlcmNlbnQpOwogICAgIGVsc2UgaWYg
KHNsaWNlcy0+bGVmdCgpLT5nZXRWYWx1ZUlEKCkgIT0gQ1NTVmFsdWVBdXRvKQotICAgICAgICBi
b3gubV9sZWZ0ID0gc2xpY2VzLT5sZWZ0KCktPmNvbXB1dGVMZW5ndGg8TGVuZ3RoPihjb252ZXJz
aW9uRGF0YSk7CisgICAgICAgIGJveC5sZWZ0KCkgPSBzbGljZXMtPmxlZnQoKS0+Y29tcHV0ZUxl
bmd0aDxMZW5ndGg+KGNvbnZlcnNpb25EYXRhKTsKIAogICAgIHJldHVybiBib3g7CiB9CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVG9TdHlsZU1hcC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NUb1N0eWxlTWFwLmgJKHJldmlzaW9uIDE4NDY1NSkKKysrIFNvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NUb1N0eWxlTWFwLmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2
LDcgQEAgY2xhc3MgU3R5bGVJbWFnZTsKIGNsYXNzIFN0eWxlUmVzb2x2ZXI7CiBjbGFzcyBOaW5l
UGllY2VJbWFnZTsKIAotc3RydWN0IExlbmd0aEJveDsKK2NsYXNzIExlbmd0aEJveDsKIAogY2xh
c3MgQ1NTVG9TdHlsZU1hcCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQ1NTVG9TdHlsZU1h
cCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXku
Y3BwCShyZXZpc2lvbiAxODQ2NTUpCisrKyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yT3ZlcmxheS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExMSw4ICsxMTEsOCBAQCBzdGF0aWMg
dm9pZCBidWlsZFJlbmRlcmVySGlnaGxpZ2h0KFJlbmRlCiAgICAgICAgICAgICBpZiAoIXJlbmRl
ckJveC5pc091dE9mRmxvd1Bvc2l0aW9uZWQoKSAmJiByZWdpb24pIHsKICAgICAgICAgICAgICAg
ICBSZW5kZXJCb3g6OkxvZ2ljYWxFeHRlbnRDb21wdXRlZFZhbHVlcyBjb21wdXRlZFZhbHVlczsK
ICAgICAgICAgICAgICAgICByZW5kZXJCb3guY29tcHV0ZUxvZ2ljYWxXaWR0aEluUmVnaW9uKGNv
bXB1dGVkVmFsdWVzLCByZWdpb24pOwotICAgICAgICAgICAgICAgIG1hcmdpbnMubXV0YWJsZUxv
Z2ljYWxMZWZ0KHJlbmRlckJveC5zdHlsZSgpLndyaXRpbmdNb2RlKCkpID0gY29tcHV0ZWRWYWx1
ZXMubV9tYXJnaW5zLm1fc3RhcnQ7Ci0gICAgICAgICAgICAgICAgbWFyZ2lucy5tdXRhYmxlTG9n
aWNhbFJpZ2h0KHJlbmRlckJveC5zdHlsZSgpLndyaXRpbmdNb2RlKCkpID0gY29tcHV0ZWRWYWx1
ZXMubV9tYXJnaW5zLm1fZW5kOworICAgICAgICAgICAgICAgIG1hcmdpbnMuc3RhcnQocmVuZGVy
Qm94LnN0eWxlKCkud3JpdGluZ01vZGUoKSkgPSBjb21wdXRlZFZhbHVlcy5tX21hcmdpbnMubV9z
dGFydDsKKyAgICAgICAgICAgICAgICBtYXJnaW5zLmVuZChyZW5kZXJCb3guc3R5bGUoKS53cml0
aW5nTW9kZSgpKSA9IGNvbXB1dGVkVmFsdWVzLm1fbWFyZ2lucy5tX2VuZDsKICAgICAgICAgICAg
IH0KIAogICAgICAgICAgICAgcGFkZGluZ0JveCA9IHJlbmRlckJveC5jbGllbnRCb3hSZWN0SW5S
ZWdpb24ocmVnaW9uKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xlbmd0aEJveC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGVuZ3RoQm94LmNwcAko
cmV2aXNpb24gMTg0NjU1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGVuZ3RoQm94LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMSw5MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAy
MDEyLCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
Ci0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICog
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
Ci0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNp
bmNsdWRlICJMZW5ndGhCb3guaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jb25zdCBMZW5n
dGgmIExlbmd0aEJveDo6bG9naWNhbExlZnQoV3JpdGluZ01vZGUgd3JpdGluZ01vZGUpIGNvbnN0
Ci17Ci0gICAgcmV0dXJuIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKHdyaXRpbmdNb2RlKSA/IG1f
bGVmdCA6IG1fdG9wOwotfQotCi1jb25zdCBMZW5ndGgmIExlbmd0aEJveDo6bG9naWNhbFJpZ2h0
KFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlKSBjb25zdAotewotICAgIHJldHVybiBpc0hvcml6b250
YWxXcml0aW5nTW9kZSh3cml0aW5nTW9kZSkgPyBtX3JpZ2h0IDogbV9ib3R0b207Ci19Ci0KLWNv
bnN0IExlbmd0aCYgTGVuZ3RoQm94OjpiZWZvcmUoV3JpdGluZ01vZGUgd3JpdGluZ01vZGUpIGNv
bnN0Ci17Ci0gICAgc3dpdGNoICh3cml0aW5nTW9kZSkgewotICAgIGNhc2UgVG9wVG9Cb3R0b21X
cml0aW5nTW9kZToKLSAgICAgICAgcmV0dXJuIG1fdG9wOwotICAgIGNhc2UgQm90dG9tVG9Ub3BX
cml0aW5nTW9kZToKLSAgICAgICAgcmV0dXJuIG1fYm90dG9tOwotICAgIGNhc2UgTGVmdFRvUmln
aHRXcml0aW5nTW9kZToKLSAgICAgICAgcmV0dXJuIG1fbGVmdDsKLSAgICBjYXNlIFJpZ2h0VG9M
ZWZ0V3JpdGluZ01vZGU6Ci0gICAgICAgIHJldHVybiBtX3JpZ2h0OwotICAgIH0KLSAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gbV90b3A7Ci19Ci0KLWNvbnN0IExlbmd0aCYg
TGVuZ3RoQm94OjphZnRlcihXcml0aW5nTW9kZSB3cml0aW5nTW9kZSkgY29uc3QKLXsKLSAgICBz
d2l0Y2ggKHdyaXRpbmdNb2RlKSB7Ci0gICAgY2FzZSBUb3BUb0JvdHRvbVdyaXRpbmdNb2RlOgot
ICAgICAgICByZXR1cm4gbV9ib3R0b207Ci0gICAgY2FzZSBCb3R0b21Ub1RvcFdyaXRpbmdNb2Rl
OgotICAgICAgICByZXR1cm4gbV90b3A7Ci0gICAgY2FzZSBMZWZ0VG9SaWdodFdyaXRpbmdNb2Rl
OgotICAgICAgICByZXR1cm4gbV9yaWdodDsKLSAgICBjYXNlIFJpZ2h0VG9MZWZ0V3JpdGluZ01v
ZGU6Ci0gICAgICAgIHJldHVybiBtX2xlZnQ7Ci0gICAgfQotICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwotICAgIHJldHVybiBtX2JvdHRvbTsKLX0KLQotY29uc3QgTGVuZ3RoJiBMZW5ndGhCb3g6
OnN0YXJ0KFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlLCBUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbikg
Y29uc3QKLXsKLSAgICBpZiAoaXNIb3Jpem9udGFsV3JpdGluZ01vZGUod3JpdGluZ01vZGUpKQot
ICAgICAgICByZXR1cm4gaXNMZWZ0VG9SaWdodERpcmVjdGlvbihkaXJlY3Rpb24pID8gbV9sZWZ0
IDogbV9yaWdodDsKLSAgICByZXR1cm4gaXNMZWZ0VG9SaWdodERpcmVjdGlvbihkaXJlY3Rpb24p
ID8gbV90b3AgOiBtX2JvdHRvbTsKLX0KLQotY29uc3QgTGVuZ3RoJiBMZW5ndGhCb3g6OmVuZChX
cml0aW5nTW9kZSB3cml0aW5nTW9kZSwgVGV4dERpcmVjdGlvbiBkaXJlY3Rpb24pIGNvbnN0Ci17
Ci0gICAgaWYgKGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKHdyaXRpbmdNb2RlKSkKLSAgICAgICAg
cmV0dXJuIGlzTGVmdFRvUmlnaHREaXJlY3Rpb24oZGlyZWN0aW9uKSA/IG1fcmlnaHQgOiBtX2xl
ZnQ7Ci0gICAgcmV0dXJuIGlzTGVmdFRvUmlnaHREaXJlY3Rpb24oZGlyZWN0aW9uKSA/IG1fYm90
dG9tIDogbV90b3A7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0xlbmd0aEJveC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0xlbmd0aEJveC5oCShyZXZpc2lvbiAxODQ2NTUpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9MZW5ndGhCb3guaAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDYgQEAKIC8q
CiAgICAgQ29weXJpZ2h0IChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCi0gICAg
Q29weXJpZ2h0IChDKSAyMDA2LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAgICBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDgsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICAgIENvcHlyaWdodCAoYykgMjAxMiwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KIAogICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTI1LDgwICsyNSwxNTEgQEAKICNpbmNsdWRlICJM
ZW5ndGguaCIKICNpbmNsdWRlICJUZXh0RmxhZ3MuaCIKICNpbmNsdWRlICJXcml0aW5nTW9kZS5o
IgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdHJ1
Y3QgTGVuZ3RoQm94IHsKLSAgICBMZW5ndGhCb3goKQordGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xh
c3MgQm94RXh0ZW50IHsKK3B1YmxpYzoKKyAgICBCb3hFeHRlbnQoKQorICAgICAgICA6IG1fc2lk
ZXMoeyBUKDApLCBUKDApLCBUKDApLCBUKDApIH0pCiAgICAgewogICAgIH0KIAotICAgIGV4cGxp
Y2l0IExlbmd0aEJveChMZW5ndGhUeXBlIHR5cGUpCi0gICAgICAgIDogbV9sZWZ0KHR5cGUpCi0g
ICAgICAgICwgbV9yaWdodCh0eXBlKQotICAgICAgICAsIG1fdG9wKHR5cGUpCi0gICAgICAgICwg
bV9ib3R0b20odHlwZSkKKyAgICBCb3hFeHRlbnQoY29uc3QgVCYgdG9wLCBjb25zdCBUJiByaWdo
dCwgY29uc3QgVCYgYm90dG9tLCBjb25zdCBUJiBsZWZ0KQorICAgICAgICA6IG1fc2lkZXMoeyB0
b3AsIHJpZ2h0LCBib3R0b20sIGxlZnQgfSkKICAgICB7CiAgICAgfQogCi0gICAgZXhwbGljaXQg
TGVuZ3RoQm94KGludCB2KQotICAgICAgICA6IG1fbGVmdChMZW5ndGgodiwgRml4ZWQpKQotICAg
ICAgICAsIG1fcmlnaHQoTGVuZ3RoKHYsIEZpeGVkKSkKLSAgICAgICAgLCBtX3RvcChMZW5ndGgo
diwgRml4ZWQpKQotICAgICAgICAsIG1fYm90dG9tKExlbmd0aCh2LCBGaXhlZCkpCisgICAgVCYg
YXQoUGh5c2ljYWxCb3hTaWRlIHNpZGUpIHsgcmV0dXJuIG1fc2lkZXNbc2lkZV07IH0KKyAgICBU
JiB0b3AoKSB7IHJldHVybiBhdChUb3BTaWRlKTsgfQorICAgIFQmIHJpZ2h0KCkgeyByZXR1cm4g
YXQoUmlnaHRTaWRlKTsgfQorICAgIFQmIGJvdHRvbSgpIHsgcmV0dXJuIGF0KEJvdHRvbVNpZGUp
OyB9CisgICAgVCYgbGVmdCgpIHsgcmV0dXJuIGF0KExlZnRTaWRlKTsgfQorCisgICAgY29uc3Qg
VCYgYXQoUGh5c2ljYWxCb3hTaWRlIHNpZGUpIGNvbnN0IHsgcmV0dXJuIG1fc2lkZXNbc2lkZV07
IH0KKyAgICBjb25zdCBUJiB0b3AoKSBjb25zdCB7IHJldHVybiBhdChUb3BTaWRlKTsgfQorICAg
IGNvbnN0IFQmIHJpZ2h0KCkgY29uc3QgeyByZXR1cm4gYXQoUmlnaHRTaWRlKTsgfQorICAgIGNv
bnN0IFQmIGJvdHRvbSgpIGNvbnN0IHsgcmV0dXJuIGF0KEJvdHRvbVNpZGUpOyB9CisgICAgY29u
c3QgVCYgbGVmdCgpIGNvbnN0IHsgcmV0dXJuIGF0KExlZnRTaWRlKTsgfQorCisgICAgdm9pZCBz
ZXRBdChQaHlzaWNhbEJveFNpZGUgc2lkZSwgY29uc3QgVCYgdikgeyBhdChzaWRlKSA9IHY7IH0K
KyAgICB2b2lkIHNldFRvcChjb25zdCBUJiB0b3ApIHsgc2V0QXQoVG9wU2lkZSwgdG9wKTsgfQor
ICAgIHZvaWQgc2V0UmlnaHQoY29uc3QgVCYgcmlnaHQpIHsgc2V0QXQoUmlnaHRTaWRlLCByaWdo
dCk7IH0KKyAgICB2b2lkIHNldEJvdHRvbShjb25zdCBUJiBib3R0b20pIHsgc2V0QXQoQm90dG9t
U2lkZSwgYm90dG9tKTsgfQorICAgIHZvaWQgc2V0TGVmdChjb25zdCBUJiBsZWZ0KSB7IHNldEF0
KExlZnRTaWRlLCBsZWZ0KTsgfQorCisgICAgVCYgYmVmb3JlKFdyaXRpbmdNb2RlIHdyaXRpbmdN
b2RlKQogICAgIHsKKyAgICAgICAgcmV0dXJuIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKHdyaXRp
bmdNb2RlKSA/CisgICAgICAgICAgICAoaXNGbGlwcGVkQmxvY2tzV3JpdGluZ01vZGUod3JpdGlu
Z01vZGUpID8gYm90dG9tKCkgOiB0b3AoKSkgOgorICAgICAgICAgICAgKGlzRmxpcHBlZEJsb2Nr
c1dyaXRpbmdNb2RlKHdyaXRpbmdNb2RlKSA/IHJpZ2h0KCkgOiBsZWZ0KCkpOwogICAgIH0KIAot
ICAgIExlbmd0aEJveChMZW5ndGggdG9wLCBMZW5ndGggcmlnaHQsIExlbmd0aCBib3R0b20sIExl
bmd0aCBsZWZ0KQotICAgICAgICA6IG1fbGVmdChXVEY6Om1vdmUobGVmdCkpCi0gICAgICAgICwg
bV9yaWdodChXVEY6Om1vdmUocmlnaHQpKQotICAgICAgICAsIG1fdG9wKFdURjo6bW92ZSh0b3Ap
KQotICAgICAgICAsIG1fYm90dG9tKFdURjo6bW92ZShib3R0b20pKQorICAgIFQmIGFmdGVyKFdy
aXRpbmdNb2RlIHdyaXRpbmdNb2RlKQogICAgIHsKKyAgICAgICAgcmV0dXJuIGlzSG9yaXpvbnRh
bFdyaXRpbmdNb2RlKHdyaXRpbmdNb2RlKSA/CisgICAgICAgICAgICAoaXNGbGlwcGVkQmxvY2tz
V3JpdGluZ01vZGUod3JpdGluZ01vZGUpID8gdG9wKCkgOiBib3R0b20oKSkgOgorICAgICAgICAg
ICAgKGlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdNb2RlKHdyaXRpbmdNb2RlKSA/IGxlZnQoKSA6IHJp
Z2h0KCkpOwogICAgIH0KIAotICAgIExlbmd0aEJveChpbnQgdG9wLCBpbnQgcmlnaHQsIGludCBi
b3R0b20sIGludCBsZWZ0KQotICAgICAgICA6IG1fbGVmdChMZW5ndGgobGVmdCwgRml4ZWQpKQot
ICAgICAgICAsIG1fcmlnaHQoTGVuZ3RoKHJpZ2h0LCBGaXhlZCkpCi0gICAgICAgICwgbV90b3Ao
TGVuZ3RoKHRvcCwgRml4ZWQpKQotICAgICAgICAsIG1fYm90dG9tKExlbmd0aChib3R0b20sIEZp
eGVkKSkKKyAgICBUJiBzdGFydChXcml0aW5nTW9kZSB3cml0aW5nTW9kZSwgVGV4dERpcmVjdGlv
biBkaXJlY3Rpb24gPSBMVFIpCiAgICAgeworICAgICAgICByZXR1cm4gaXNIb3Jpem9udGFsV3Jp
dGluZ01vZGUod3JpdGluZ01vZGUpID8KKyAgICAgICAgICAgIChpc0xlZnRUb1JpZ2h0RGlyZWN0
aW9uKGRpcmVjdGlvbikgPyBsZWZ0KCkgOiByaWdodCgpKSA6CisgICAgICAgICAgICAoaXNMZWZ0
VG9SaWdodERpcmVjdGlvbihkaXJlY3Rpb24pID8gdG9wKCkgOiBib3R0b20oKSk7CiAgICAgfQog
Ci0gICAgY29uc3QgTGVuZ3RoJiBsZWZ0KCkgY29uc3QgeyByZXR1cm4gbV9sZWZ0OyB9Ci0gICAg
Y29uc3QgTGVuZ3RoJiByaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1fcmlnaHQ7IH0KLSAgICBjb25z
dCBMZW5ndGgmIHRvcCgpIGNvbnN0IHsgcmV0dXJuIG1fdG9wOyB9Ci0gICAgY29uc3QgTGVuZ3Ro
JiBib3R0b20oKSBjb25zdCB7IHJldHVybiBtX2JvdHRvbTsgfQorICAgIFQmIGVuZChXcml0aW5n
TW9kZSB3cml0aW5nTW9kZSwgVGV4dERpcmVjdGlvbiBkaXJlY3Rpb24gPSBMVFIpCisgICAgewor
ICAgICAgICByZXR1cm4gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUod3JpdGluZ01vZGUpID8KKyAg
ICAgICAgICAgIChpc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKGRpcmVjdGlvbikgPyByaWdodCgpIDog
bGVmdCgpKSA6CisgICAgICAgICAgICAoaXNMZWZ0VG9SaWdodERpcmVjdGlvbihkaXJlY3Rpb24p
ID8gYm90dG9tKCkgOiB0b3AoKSk7CisgICAgfQogCi0gICAgY29uc3QgTGVuZ3RoJiBsb2dpY2Fs
TGVmdChXcml0aW5nTW9kZSkgY29uc3Q7Ci0gICAgY29uc3QgTGVuZ3RoJiBsb2dpY2FsUmlnaHQo
V3JpdGluZ01vZGUpIGNvbnN0OworICAgIGNvbnN0IFQmIGJlZm9yZShXcml0aW5nTW9kZSB3cml0
aW5nTW9kZSkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBpc0hvcml6b250YWxXcml0aW5n
TW9kZSh3cml0aW5nTW9kZSkgPworICAgICAgICAgICAgKGlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdN
b2RlKHdyaXRpbmdNb2RlKSA/IGJvdHRvbSgpIDogdG9wKCkpIDoKKyAgICAgICAgICAgIChpc0Zs
aXBwZWRCbG9ja3NXcml0aW5nTW9kZSh3cml0aW5nTW9kZSkgPyByaWdodCgpIDogbGVmdCgpKTsK
KyAgICB9CiAKLSAgICBjb25zdCBMZW5ndGgmIGJlZm9yZShXcml0aW5nTW9kZSkgY29uc3Q7Ci0g
ICAgY29uc3QgTGVuZ3RoJiBhZnRlcihXcml0aW5nTW9kZSkgY29uc3Q7Ci0gICAgY29uc3QgTGVu
Z3RoJiBzdGFydChXcml0aW5nTW9kZSwgVGV4dERpcmVjdGlvbikgY29uc3Q7Ci0gICAgY29uc3Qg
TGVuZ3RoJiBlbmQoV3JpdGluZ01vZGUsIFRleHREaXJlY3Rpb24pIGNvbnN0OworICAgIGNvbnN0
IFQmIGFmdGVyKFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlKSBjb25zdAorICAgIHsKKyAgICAgICAg
cmV0dXJuIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKHdyaXRpbmdNb2RlKSA/CisgICAgICAgICAg
ICAoaXNGbGlwcGVkQmxvY2tzV3JpdGluZ01vZGUod3JpdGluZ01vZGUpID8gdG9wKCkgOiBib3R0
b20oKSkgOgorICAgICAgICAgICAgKGlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdNb2RlKHdyaXRpbmdN
b2RlKSA/IGxlZnQoKSA6IHJpZ2h0KCkpOworICAgIH0KKworICAgIGNvbnN0IFQmIHN0YXJ0KFdy
aXRpbmdNb2RlIHdyaXRpbmdNb2RlLCBUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbiA9IExUUikgY29u
c3QKKyAgICB7CisgICAgICAgIHJldHVybiBpc0hvcml6b250YWxXcml0aW5nTW9kZSh3cml0aW5n
TW9kZSkgPworICAgICAgICAgICAgKGlzTGVmdFRvUmlnaHREaXJlY3Rpb24oZGlyZWN0aW9uKSA/
IGxlZnQoKSA6IHJpZ2h0KCkpIDoKKyAgICAgICAgICAgIChpc0xlZnRUb1JpZ2h0RGlyZWN0aW9u
KGRpcmVjdGlvbikgPyB0b3AoKSA6IGJvdHRvbSgpKTsKKyAgICB9CiAKLSAgICBib29sIG9wZXJh
dG9yPT0oY29uc3QgTGVuZ3RoQm94JiBvdGhlcikgY29uc3QKKyAgICBjb25zdCBUJiBlbmQoV3Jp
dGluZ01vZGUgd3JpdGluZ01vZGUsIFRleHREaXJlY3Rpb24gZGlyZWN0aW9uID0gTFRSKSBjb25z
dAogICAgIHsKLSAgICAgICAgcmV0dXJuIG1fbGVmdCA9PSBvdGhlci5tX2xlZnQgJiYgbV9yaWdo
dCA9PSBvdGhlci5tX3JpZ2h0ICYmIG1fdG9wID09IG90aGVyLm1fdG9wICYmIG1fYm90dG9tID09
IG90aGVyLm1fYm90dG9tOworICAgICAgICByZXR1cm4gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUo
d3JpdGluZ01vZGUpID8KKyAgICAgICAgICAgIChpc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKGRpcmVj
dGlvbikgPyByaWdodCgpIDogbGVmdCgpKSA6CisgICAgICAgICAgICAoaXNMZWZ0VG9SaWdodERp
cmVjdGlvbihkaXJlY3Rpb24pID8gYm90dG9tKCkgOiB0b3AoKSk7CiAgICAgfQogCi0gICAgYm9v
bCBvcGVyYXRvciE9KGNvbnN0IExlbmd0aEJveCYgb3RoZXIpIGNvbnN0CisgICAgdm9pZCBzZXRC
ZWZvcmUoY29uc3QgVCYgYmVmb3JlLCBXcml0aW5nTW9kZSB3cml0aW5nTW9kZSkgeyB0aGlzLT5i
ZWZvcmUod3JpdGluZ01vZGUpID0gYmVmb3JlOyB9CisgICAgdm9pZCBzZXRBZnRlcihjb25zdCBU
JiBhZnRlciwgV3JpdGluZ01vZGUgd3JpdGluZ01vZGUpIHsgdGhpcy0+YWZ0ZXIod3JpdGluZ01v
ZGUpID0gYWZ0ZXI7IH0KKyAgICB2b2lkIHNldFN0YXJ0KGNvbnN0IFQmIHN0YXJ0LCBXcml0aW5n
TW9kZSB3cml0aW5nTW9kZSwgVGV4dERpcmVjdGlvbiBkaXJlY3Rpb24gPSBMVFIpIHsgdGhpcy0+
c3RhcnQod3JpdGluZ01vZGUsIGRpcmVjdGlvbikgPSBzdGFydDsgfQorICAgIHZvaWQgc2V0RW5k
KGNvbnN0IFQmIGVuZCwgV3JpdGluZ01vZGUgd3JpdGluZ01vZGUsIFRleHREaXJlY3Rpb24gZGly
ZWN0aW9uID0gTFRSKSB7IHRoaXMtPmVuZCh3cml0aW5nTW9kZSwgZGlyZWN0aW9uKSA9IGVuZDsg
fQorCisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEJveEV4dGVudCYgb3RoZXIpIGNvbnN0CiAg
ICAgewotICAgICAgICByZXR1cm4gISgqdGhpcyA9PSBvdGhlcik7CisgICAgICAgIHJldHVybiBt
X3NpZGVzID09IG90aGVyLm1fc2lkZXM7CiAgICAgfQogCi0gICAgYm9vbCBub25aZXJvKCkgY29u
c3QKKyAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgQm94RXh0ZW50JiBvdGhlcikgY29uc3QKICAg
ICB7Ci0gICAgICAgIHJldHVybiAhKG1fbGVmdC5pc1plcm8oKSAmJiBtX3JpZ2h0LmlzWmVybygp
ICYmIG1fdG9wLmlzWmVybygpICYmIG1fYm90dG9tLmlzWmVybygpKTsKKyAgICAgICAgcmV0dXJu
IG1fc2lkZXMgIT0gb3RoZXIubV9zaWRlczsKICAgICB9CiAKLSAgICBMZW5ndGggbV9sZWZ0Owot
ICAgIExlbmd0aCBtX3JpZ2h0OwotICAgIExlbmd0aCBtX3RvcDsKLSAgICBMZW5ndGggbV9ib3R0
b207Citwcm90ZWN0ZWQ6CisgICAgVmVjdG9yPFQsIDQ+IG1fc2lkZXM7CiB9OwogCitjbGFzcyBM
ZW5ndGhCb3ggOiBwdWJsaWMgQm94RXh0ZW50PExlbmd0aD4geworcHVibGljOgorICAgIExlbmd0
aEJveCgpCisgICAgICAgIDogTGVuZ3RoQm94KEF1dG8pCisgICAgeworICAgIH0KKworICAgIGV4
cGxpY2l0IExlbmd0aEJveChMZW5ndGhUeXBlIHR5cGUpCisgICAgICAgIDogQm94RXh0ZW50KExl
bmd0aCh0eXBlKSwgTGVuZ3RoKHR5cGUpLCBMZW5ndGgodHlwZSksIExlbmd0aCh0eXBlKSkKKyAg
ICB7CisgICAgfQorCisgICAgZXhwbGljaXQgTGVuZ3RoQm94KGludCB2KQorICAgICAgICA6IEJv
eEV4dGVudChMZW5ndGgodiwgRml4ZWQpLCBMZW5ndGgodiwgRml4ZWQpLCBMZW5ndGgodiwgRml4
ZWQpLCBMZW5ndGgodiwgRml4ZWQpKQorICAgIHsKKyAgICB9CisKKyAgICBMZW5ndGhCb3goaW50
IHRvcCwgaW50IHJpZ2h0LCBpbnQgYm90dG9tLCBpbnQgbGVmdCkKKyAgICAgICAgOiBCb3hFeHRl
bnQoTGVuZ3RoKHRvcCwgRml4ZWQpLCBMZW5ndGgocmlnaHQsIEZpeGVkKSwgTGVuZ3RoKGJvdHRv
bSwgRml4ZWQpLCBMZW5ndGgobGVmdCwgRml4ZWQpKQorICAgIHsKKyAgICB9CisKKyAgICBMZW5n
dGhCb3goY29uc3QgTGVuZ3RoJiB0b3AsIGNvbnN0IExlbmd0aCYgcmlnaHQsIGNvbnN0IExlbmd0
aCYgYm90dG9tLCBjb25zdCBMZW5ndGgmIGxlZnQpCisgICAgICAgIDogQm94RXh0ZW50KHRvcCwg
cmlnaHQsIGJvdHRvbSwgbGVmdCkKKyAgICB7CisgICAgfQorCisgICAgYm9vbCBpc1plcm8oKSBj
b25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIHRvcCgpLmlzWmVybygpICYmIHJpZ2h0KCkuaXNa
ZXJvKCkgJiYgYm90dG9tKCkuaXNaZXJvKCkgJiYgbGVmdCgpLmlzWmVybygpOworICAgIH0KK307
CisKK3R5cGVkZWYgQm94RXh0ZW50PExheW91dFVuaXQ+IExheW91dEJveEV4dGVudDsKK3R5cGVk
ZWYgQm94RXh0ZW50PGZsb2F0PiBGbG9hdEJveEV4dGVudDsKKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCiAjZW5kaWYgLy8gTGVuZ3RoQm94X2gKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0xheW91dEJveEV4dGVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTGF5b3V0Qm94RXh0ZW50LmNwcAkocmV2aXNpb24gMTg0
NjU1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTGF5b3V0Qm94RXh0ZW50
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSwxOTYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
YykgMjAxMiwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgot
ICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
LSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgi
Ci0jaW5jbHVkZSAiTGF5b3V0Qm94RXh0ZW50LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQot
TGF5b3V0VW5pdCBMYXlvdXRCb3hFeHRlbnQ6OmxvZ2ljYWxUb3AoV3JpdGluZ01vZGUgd3JpdGlu
Z01vZGUpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKHdyaXRp
bmdNb2RlKSA/IG1fdG9wIDogbV9sZWZ0OwotfQotCi1MYXlvdXRVbml0IExheW91dEJveEV4dGVu
dDo6bG9naWNhbEJvdHRvbShXcml0aW5nTW9kZSB3cml0aW5nTW9kZSkgY29uc3QKLXsKLSAgICBy
ZXR1cm4gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUod3JpdGluZ01vZGUpID8gbV9ib3R0b20gOiBt
X3JpZ2h0OwotfQotCi1MYXlvdXRVbml0IExheW91dEJveEV4dGVudDo6bG9naWNhbExlZnQoV3Jp
dGluZ01vZGUgd3JpdGluZ01vZGUpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGlzSG9yaXpvbnRhbFdy
aXRpbmdNb2RlKHdyaXRpbmdNb2RlKSA/IG1fbGVmdCA6IG1fdG9wOwotfQotCi1MYXlvdXRVbml0
IExheW91dEJveEV4dGVudDo6bG9naWNhbFJpZ2h0KFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlKSBj
b25zdAotewotICAgIHJldHVybiBpc0hvcml6b250YWxXcml0aW5nTW9kZSh3cml0aW5nTW9kZSkg
PyBtX3JpZ2h0IDogbV9ib3R0b207Ci19Ci0KLUxheW91dFVuaXQgTGF5b3V0Qm94RXh0ZW50Ojpi
ZWZvcmUoV3JpdGluZ01vZGUgd3JpdGluZ01vZGUpIGNvbnN0Ci17Ci0gICAgc3dpdGNoICh3cml0
aW5nTW9kZSkgewotICAgIGNhc2UgVG9wVG9Cb3R0b21Xcml0aW5nTW9kZToKLSAgICAgICAgcmV0
dXJuIG1fdG9wOwotICAgIGNhc2UgQm90dG9tVG9Ub3BXcml0aW5nTW9kZToKLSAgICAgICAgcmV0
dXJuIG1fYm90dG9tOwotICAgIGNhc2UgTGVmdFRvUmlnaHRXcml0aW5nTW9kZToKLSAgICAgICAg
cmV0dXJuIG1fbGVmdDsKLSAgICBjYXNlIFJpZ2h0VG9MZWZ0V3JpdGluZ01vZGU6Ci0gICAgICAg
IHJldHVybiBtX3JpZ2h0OwotICAgIH0KLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICBy
ZXR1cm4gbV90b3A7Ci19Ci0KLUxheW91dFVuaXQgTGF5b3V0Qm94RXh0ZW50OjphZnRlcihXcml0
aW5nTW9kZSB3cml0aW5nTW9kZSkgY29uc3QKLXsKLSAgICBzd2l0Y2ggKHdyaXRpbmdNb2RlKSB7
Ci0gICAgY2FzZSBUb3BUb0JvdHRvbVdyaXRpbmdNb2RlOgotICAgICAgICByZXR1cm4gbV9ib3R0
b207Ci0gICAgY2FzZSBCb3R0b21Ub1RvcFdyaXRpbmdNb2RlOgotICAgICAgICByZXR1cm4gbV90
b3A7Ci0gICAgY2FzZSBMZWZ0VG9SaWdodFdyaXRpbmdNb2RlOgotICAgICAgICByZXR1cm4gbV9y
aWdodDsKLSAgICBjYXNlIFJpZ2h0VG9MZWZ0V3JpdGluZ01vZGU6Ci0gICAgICAgIHJldHVybiBt
X2xlZnQ7Ci0gICAgfQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBtX2Jv
dHRvbTsKLX0KLQotTGF5b3V0VW5pdCBMYXlvdXRCb3hFeHRlbnQ6OnN0YXJ0KFdyaXRpbmdNb2Rl
IHdyaXRpbmdNb2RlLCBUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbikgY29uc3QKLXsKLSAgICBpZiAo
aXNIb3Jpem9udGFsV3JpdGluZ01vZGUod3JpdGluZ01vZGUpKQotICAgICAgICByZXR1cm4gaXNM
ZWZ0VG9SaWdodERpcmVjdGlvbihkaXJlY3Rpb24pID8gbV9sZWZ0IDogbV9yaWdodDsKLSAgICBy
ZXR1cm4gaXNMZWZ0VG9SaWdodERpcmVjdGlvbihkaXJlY3Rpb24pID8gbV90b3AgOiBtX2JvdHRv
bTsKLX0KLQotTGF5b3V0VW5pdCBMYXlvdXRCb3hFeHRlbnQ6OmVuZChXcml0aW5nTW9kZSB3cml0
aW5nTW9kZSwgVGV4dERpcmVjdGlvbiBkaXJlY3Rpb24pIGNvbnN0Ci17Ci0gICAgaWYgKGlzSG9y
aXpvbnRhbFdyaXRpbmdNb2RlKHdyaXRpbmdNb2RlKSkKLSAgICAgICAgcmV0dXJuIGlzTGVmdFRv
UmlnaHREaXJlY3Rpb24oZGlyZWN0aW9uKSA/IG1fcmlnaHQgOiBtX2xlZnQ7Ci0gICAgcmV0dXJu
IGlzTGVmdFRvUmlnaHREaXJlY3Rpb24oZGlyZWN0aW9uKSA/IG1fYm90dG9tIDogbV90b3A7Ci19
Ci0KLXZvaWQgTGF5b3V0Qm94RXh0ZW50OjpzZXRCZWZvcmUoV3JpdGluZ01vZGUgd3JpdGluZ01v
ZGUsIExheW91dFVuaXQgdmFsdWUpCi17Ci0gICAgc3dpdGNoICh3cml0aW5nTW9kZSkgewotICAg
IGNhc2UgVG9wVG9Cb3R0b21Xcml0aW5nTW9kZToKLSAgICAgICAgbV90b3AgPSB2YWx1ZTsKLSAg
ICAgICAgYnJlYWs7Ci0gICAgY2FzZSBCb3R0b21Ub1RvcFdyaXRpbmdNb2RlOgotICAgICAgICBt
X2JvdHRvbSA9IHZhbHVlOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIExlZnRUb1JpZ2h0V3Jp
dGluZ01vZGU6Ci0gICAgICAgIG1fbGVmdCA9IHZhbHVlOwotICAgICAgICBicmVhazsKLSAgICBj
YXNlIFJpZ2h0VG9MZWZ0V3JpdGluZ01vZGU6Ci0gICAgICAgIG1fcmlnaHQgPSB2YWx1ZTsKLSAg
ICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
Ci0gICAgICAgIG1fdG9wID0gdmFsdWU7Ci0gICAgfQotfQotCi12b2lkIExheW91dEJveEV4dGVu
dDo6c2V0QWZ0ZXIoV3JpdGluZ01vZGUgd3JpdGluZ01vZGUsIExheW91dFVuaXQgdmFsdWUpCi17
Ci0gICAgc3dpdGNoICh3cml0aW5nTW9kZSkgewotICAgIGNhc2UgVG9wVG9Cb3R0b21Xcml0aW5n
TW9kZToKLSAgICAgICAgbV9ib3R0b20gPSB2YWx1ZTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBCb3R0b21Ub1RvcFdyaXRpbmdNb2RlOgotICAgICAgICBtX3RvcCA9IHZhbHVlOwotICAgICAg
ICBicmVhazsKLSAgICBjYXNlIExlZnRUb1JpZ2h0V3JpdGluZ01vZGU6Ci0gICAgICAgIG1fcmln
aHQgPSB2YWx1ZTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBSaWdodFRvTGVmdFdyaXRpbmdN
b2RlOgotICAgICAgICBtX2xlZnQgPSB2YWx1ZTsKLSAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVs
dDoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIG1fYm90dG9tID0gdmFs
dWU7Ci0gICAgfQotfQotCi12b2lkIExheW91dEJveEV4dGVudDo6c2V0U3RhcnQoV3JpdGluZ01v
ZGUgd3JpdGluZ01vZGUsIFRleHREaXJlY3Rpb24gZGlyZWN0aW9uLCBMYXlvdXRVbml0IHZhbHVl
KQotewotICAgIGlmIChpc0hvcml6b250YWxXcml0aW5nTW9kZSh3cml0aW5nTW9kZSkpIHsKLSAg
ICAgICAgaWYgKGlzTGVmdFRvUmlnaHREaXJlY3Rpb24oZGlyZWN0aW9uKSkKLSAgICAgICAgICAg
IG1fbGVmdCA9IHZhbHVlOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBtX3JpZ2h0ID0gdmFs
dWU7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKGlzTGVmdFRvUmlnaHREaXJlY3Rpb24oZGly
ZWN0aW9uKSkKLSAgICAgICAgICAgIG1fdG9wID0gdmFsdWU7Ci0gICAgICAgIGVsc2UKLSAgICAg
ICAgICAgIG1fYm90dG9tID0gdmFsdWU7Ci0gICAgfQotfQotCi12b2lkIExheW91dEJveEV4dGVu
dDo6c2V0RW5kKFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlLCBUZXh0RGlyZWN0aW9uIGRpcmVjdGlv
biwgTGF5b3V0VW5pdCB2YWx1ZSkKLXsKLSAgICBpZiAoaXNIb3Jpem9udGFsV3JpdGluZ01vZGUo
d3JpdGluZ01vZGUpKSB7Ci0gICAgICAgIGlmIChpc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKGRpcmVj
dGlvbikpCi0gICAgICAgICAgICBtX3JpZ2h0ID0gdmFsdWU7Ci0gICAgICAgIGVsc2UKLSAgICAg
ICAgICAgIG1fbGVmdCA9IHZhbHVlOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGlmIChpc0xlZnRU
b1JpZ2h0RGlyZWN0aW9uKGRpcmVjdGlvbikpCi0gICAgICAgICAgICBtX2JvdHRvbSA9IHZhbHVl
OwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBtX3RvcCA9IHZhbHVlOwotICAgIH0KLX0KLQot
TGF5b3V0VW5pdCYgTGF5b3V0Qm94RXh0ZW50OjptdXRhYmxlTG9naWNhbExlZnQoV3JpdGluZ01v
ZGUgd3JpdGluZ01vZGUpCi17Ci0gICAgcmV0dXJuIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKHdy
aXRpbmdNb2RlKSA/IG1fbGVmdCA6IG1fdG9wOwotfQotCi1MYXlvdXRVbml0JiBMYXlvdXRCb3hF
eHRlbnQ6Om11dGFibGVMb2dpY2FsUmlnaHQoV3JpdGluZ01vZGUgd3JpdGluZ01vZGUpCi17Ci0g
ICAgcmV0dXJuIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKHdyaXRpbmdNb2RlKSA/IG1fcmlnaHQg
OiBtX2JvdHRvbTsKLX0KLQotTGF5b3V0VW5pdCYgTGF5b3V0Qm94RXh0ZW50OjptdXRhYmxlQmVm
b3JlKFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlKQotewotICAgIHJldHVybiBpc0hvcml6b250YWxX
cml0aW5nTW9kZSh3cml0aW5nTW9kZSkgPyAoaXNGbGlwcGVkQmxvY2tzV3JpdGluZ01vZGUod3Jp
dGluZ01vZGUpID8gbV9ib3R0b20gOiBtX3RvcCkgOgotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAoaXNGbGlwcGVkQmxvY2tzV3JpdGluZ01vZGUod3Jp
dGluZ01vZGUpID8gbV9yaWdodDogbV9sZWZ0KTsKLX0KLQotTGF5b3V0VW5pdCYgTGF5b3V0Qm94
RXh0ZW50OjptdXRhYmxlQWZ0ZXIoV3JpdGluZ01vZGUgd3JpdGluZ01vZGUpCi17Ci0gICAgcmV0
dXJuIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKHdyaXRpbmdNb2RlKSA/IChpc0ZsaXBwZWRCbG9j
a3NXcml0aW5nTW9kZSh3cml0aW5nTW9kZSkgPyBtX3RvcCA6IG1fYm90dG9tKSA6Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpc0ZsaXBwZWRCbG9j
a3NXcml0aW5nTW9kZSh3cml0aW5nTW9kZSkgPyBtX2xlZnQ6IG1fcmlnaHQpOwotfQotCi19IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9MYXlvdXRCb3hFeHRlbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9MYXlvdXRCb3hFeHRlbnQuaAkocmV2aXNpb24gMTg0NjU1KQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTGF5b3V0Qm94RXh0ZW50LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTEsODYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMjAxMiwgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgot
ICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIExheW91dEJveEV4dGVudF9oCi0jZGVmaW5lIExh
eW91dEJveEV4dGVudF9oCi0KLSNpbmNsdWRlICJMYXlvdXRVbml0LmgiCi0jaW5jbHVkZSAiVGV4
dEZsYWdzLmgiCi0jaW5jbHVkZSAiV3JpdGluZ01vZGUuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUg
ewotCi1jbGFzcyBMYXlvdXRCb3hFeHRlbnQgewotcHVibGljOgotICAgIExheW91dEJveEV4dGVu
dCgpIDogbV90b3AoMCksIG1fcmlnaHQoMCksIG1fYm90dG9tKDApLCBtX2xlZnQoMCkgeyB9Ci0g
ICAgTGF5b3V0Qm94RXh0ZW50KExheW91dFVuaXQgdG9wLCBMYXlvdXRVbml0IHJpZ2h0LCBMYXlv
dXRVbml0IGJvdHRvbSwgTGF5b3V0VW5pdCBsZWZ0KQotICAgICAgICA6IG1fdG9wKHRvcCksIG1f
cmlnaHQocmlnaHQpLCBtX2JvdHRvbShib3R0b20pLCBtX2xlZnQobGVmdCkgeyB9Ci0KLSAgICBp
bmxpbmUgTGF5b3V0VW5pdCB0b3AoKSBjb25zdCB7IHJldHVybiBtX3RvcDsgfQotICAgIGlubGlu
ZSBMYXlvdXRVbml0IHJpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9yaWdodDsgfQotICAgIGlubGlu
ZSBMYXlvdXRVbml0IGJvdHRvbSgpIGNvbnN0IHsgcmV0dXJuIG1fYm90dG9tOyB9Ci0gICAgaW5s
aW5lIExheW91dFVuaXQgbGVmdCgpIGNvbnN0IHsgcmV0dXJuIG1fbGVmdDsgfQotCi0gICAgaW5s
aW5lIHZvaWQgc2V0VG9wKExheW91dFVuaXQgdmFsdWUpIHsgbV90b3AgPSB2YWx1ZTsgfQotICAg
IGlubGluZSB2b2lkIHNldFJpZ2h0KExheW91dFVuaXQgdmFsdWUpIHsgbV9yaWdodCA9IHZhbHVl
OyB9Ci0gICAgaW5saW5lIHZvaWQgc2V0Qm90dG9tKExheW91dFVuaXQgdmFsdWUpIHsgbV9ib3R0
b20gPSB2YWx1ZTsgfQotICAgIGlubGluZSB2b2lkIHNldExlZnQoTGF5b3V0VW5pdCB2YWx1ZSkg
eyBtX2xlZnQgPSB2YWx1ZTsgfQotCi0gICAgTGF5b3V0VW5pdCBsb2dpY2FsVG9wKFdyaXRpbmdN
b2RlKSBjb25zdDsKLSAgICBMYXlvdXRVbml0IGxvZ2ljYWxCb3R0b20oV3JpdGluZ01vZGUpIGNv
bnN0OwotICAgIExheW91dFVuaXQgbG9naWNhbExlZnQoV3JpdGluZ01vZGUpIGNvbnN0OwotICAg
IExheW91dFVuaXQgbG9naWNhbFJpZ2h0KFdyaXRpbmdNb2RlKSBjb25zdDsKLQotICAgIExheW91
dFVuaXQgYmVmb3JlKFdyaXRpbmdNb2RlKSBjb25zdDsKLSAgICBMYXlvdXRVbml0IGFmdGVyKFdy
aXRpbmdNb2RlKSBjb25zdDsKLSAgICBMYXlvdXRVbml0IHN0YXJ0KFdyaXRpbmdNb2RlLCBUZXh0
RGlyZWN0aW9uKSBjb25zdDsKLSAgICBMYXlvdXRVbml0IGVuZChXcml0aW5nTW9kZSwgVGV4dERp
cmVjdGlvbikgY29uc3Q7Ci0KLSAgICB2b2lkIHNldEJlZm9yZShXcml0aW5nTW9kZSwgTGF5b3V0
VW5pdCk7Ci0gICAgdm9pZCBzZXRBZnRlcihXcml0aW5nTW9kZSwgTGF5b3V0VW5pdCk7Ci0gICAg
dm9pZCBzZXRTdGFydChXcml0aW5nTW9kZSwgVGV4dERpcmVjdGlvbiwgTGF5b3V0VW5pdCk7Ci0g
ICAgdm9pZCBzZXRFbmQoV3JpdGluZ01vZGUsIFRleHREaXJlY3Rpb24sIExheW91dFVuaXQpOwot
Ci0gICAgTGF5b3V0VW5pdCYgbXV0YWJsZUxvZ2ljYWxMZWZ0KFdyaXRpbmdNb2RlKTsKLSAgICBM
YXlvdXRVbml0JiBtdXRhYmxlTG9naWNhbFJpZ2h0KFdyaXRpbmdNb2RlKTsKLQotICAgIExheW91
dFVuaXQmIG11dGFibGVCZWZvcmUoV3JpdGluZ01vZGUpOwotICAgIExheW91dFVuaXQmIG11dGFi
bGVBZnRlcihXcml0aW5nTW9kZSk7Ci0KLXByaXZhdGU6Ci0gICAgTGF5b3V0VW5pdCBtX3RvcDsK
LSAgICBMYXlvdXRVbml0IG1fcmlnaHQ7Ci0gICAgTGF5b3V0VW5pdCBtX2JvdHRvbTsKLSAgICBM
YXlvdXRVbml0IG1fbGVmdDsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlm
IC8vIExheW91dEJveEV4dGVudF9oCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9MYXlvdXRSZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTGF5b3V0UmVjdC5oCShyZXZpc2lvbiAxODQ2NTUpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9MYXlvdXRSZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDgg
KzMzLDggQEAKIAogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIK
LSNpbmNsdWRlICJMYXlvdXRCb3hFeHRlbnQuaCIKICNpbmNsdWRlICJMYXlvdXRQb2ludC5oIgor
I2luY2x1ZGUgIkxlbmd0aEJveC5oIgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Xcml0aW5n
TW9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvV3JpdGlu
Z01vZGUuaAkocmV2aXNpb24gMTg0NjU1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4
dC9Xcml0aW5nTW9kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01NSw2ICs1NSwyMSBAQCBpbmxpbmUg
Ym9vbCBpc0ZsaXBwZWRCbG9ja3NXcml0aW5nTW9kZShXCiAgICAgcmV0dXJuIHdyaXRpbmdNb2Rl
ID09IFJpZ2h0VG9MZWZ0V3JpdGluZ01vZGUgfHwgd3JpdGluZ01vZGUgPT0gQm90dG9tVG9Ub3BX
cml0aW5nTW9kZTsKIH0KIAorZW51bSBMb2dpY2FsQm94U2lkZSB7CisgICAgQmVmb3JlU2lkZSwK
KyAgICBFbmRTaWRlLAorICAgIEFmdGVyU2lkZSwKKyAgICBTdGFydFNpZGUKK307CisKK2VudW0g
UGh5c2ljYWxCb3hTaWRlIHsKKyAgICBOaWxTaWRlID0gLTEsCisgICAgVG9wU2lkZSwKKyAgICBS
aWdodFNpZGUsCisgICAgQm90dG9tU2lkZSwKKyAgICBMZWZ0U2lkZQorfTsKKwogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gV3JpdGluZ01vZGVfaApJbmRleDogU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcAkocmV2aXNpb24gMTg0NjU1KQorKysg
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC04NDMsMTAgKzg0MywxMCBAQCBpbmxpbmUgdm9pZCBJbmxpbmVGbG93Qm94OjphZGRCb3Jk
ZXJPdXRzCiAKICAgICBMYXlvdXRCb3hFeHRlbnQgYm9yZGVyT3V0c2V0cyA9IGxpbmVTdHlsZS5i
b3JkZXJJbWFnZU91dHNldHMoKTsKIAotICAgIExheW91dFVuaXQgYm9yZGVyT3V0c2V0TG9naWNh
bFRvcCA9IGJvcmRlck91dHNldHMubG9naWNhbFRvcChsaW5lU3R5bGUud3JpdGluZ01vZGUoKSk7
Ci0gICAgTGF5b3V0VW5pdCBib3JkZXJPdXRzZXRMb2dpY2FsQm90dG9tID0gYm9yZGVyT3V0c2V0
cy5sb2dpY2FsQm90dG9tKGxpbmVTdHlsZS53cml0aW5nTW9kZSgpKTsKLSAgICBMYXlvdXRVbml0
IGJvcmRlck91dHNldExvZ2ljYWxMZWZ0ID0gYm9yZGVyT3V0c2V0cy5sb2dpY2FsTGVmdChsaW5l
U3R5bGUud3JpdGluZ01vZGUoKSk7Ci0gICAgTGF5b3V0VW5pdCBib3JkZXJPdXRzZXRMb2dpY2Fs
UmlnaHQgPSBib3JkZXJPdXRzZXRzLmxvZ2ljYWxSaWdodChsaW5lU3R5bGUud3JpdGluZ01vZGUo
KSk7CisgICAgTGF5b3V0VW5pdCBib3JkZXJPdXRzZXRMb2dpY2FsVG9wID0gYm9yZGVyT3V0c2V0
cy5iZWZvcmUobGluZVN0eWxlLndyaXRpbmdNb2RlKCkpOworICAgIExheW91dFVuaXQgYm9yZGVy
T3V0c2V0TG9naWNhbEJvdHRvbSA9IGJvcmRlck91dHNldHMuYWZ0ZXIobGluZVN0eWxlLndyaXRp
bmdNb2RlKCkpOworICAgIExheW91dFVuaXQgYm9yZGVyT3V0c2V0TG9naWNhbExlZnQgPSBib3Jk
ZXJPdXRzZXRzLnN0YXJ0KGxpbmVTdHlsZS53cml0aW5nTW9kZSgpKTsKKyAgICBMYXlvdXRVbml0
IGJvcmRlck91dHNldExvZ2ljYWxSaWdodCA9IGJvcmRlck91dHNldHMuZW5kKGxpbmVTdHlsZS53
cml0aW5nTW9kZSgpKTsKIAogICAgIC8vIFNpbWlsYXIgdG8gaG93IGdseXBoIG92ZXJmbG93IHdv
cmtzLCBpZiBvdXIgbGluZXMgYXJlIGZsaXBwZWQsIHRoZW4gaXQncyBhY3R1YWxseSB0aGUgb3Bw
b3NpdGUgYm9yZGVyIHRoYXQgYXBwbGllcywgc2luY2UKICAgICAvLyB0aGUgbGluZSBpcyAidXBz
aWRlIGRvd24iIGluIHRlcm1zIG9mIGJsb2NrIGNvb3JkaW5hdGVzLiB2ZXJ0aWNhbC1ybCBhbmQg
aG9yaXpvbnRhbC1idCBhcmUgdGhlIGZsaXBwZWQgbGluZSBtb2Rlcy4KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgJKHJldmlzaW9uIDE4NDY1NSkKKysrIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAkod29ya2luZyBjb3B5KQpAQCAtMjYyLDggKzI2Miw4
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldE1hcmdpbkxlZnQoTGF5b3V0VW5pdCBtYXJnaW4pIHsg
bV9tYXJnaW5Cb3guc2V0TGVmdChtYXJnaW4pOyB9CiAgICAgdm9pZCBzZXRNYXJnaW5SaWdodChM
YXlvdXRVbml0IG1hcmdpbikgeyBtX21hcmdpbkJveC5zZXRSaWdodChtYXJnaW4pOyB9CiAKLSAg
ICBMYXlvdXRVbml0IG1hcmdpbkxvZ2ljYWxMZWZ0KCkgY29uc3QgeyByZXR1cm4gbV9tYXJnaW5C
b3gubG9naWNhbExlZnQoc3R5bGUoKS53cml0aW5nTW9kZSgpKTsgfQotICAgIExheW91dFVuaXQg
bWFyZ2luTG9naWNhbFJpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9tYXJnaW5Cb3gubG9naWNhbFJp
Z2h0KHN0eWxlKCkud3JpdGluZ01vZGUoKSk7IH0KKyAgICBMYXlvdXRVbml0IG1hcmdpbkxvZ2lj
YWxMZWZ0KCkgY29uc3QgeyByZXR1cm4gbV9tYXJnaW5Cb3guc3RhcnQoc3R5bGUoKS53cml0aW5n
TW9kZSgpKTsgfQorICAgIExheW91dFVuaXQgbWFyZ2luTG9naWNhbFJpZ2h0KCkgY29uc3QgeyBy
ZXR1cm4gbV9tYXJnaW5Cb3guZW5kKHN0eWxlKCkud3JpdGluZ01vZGUoKSk7IH0KICAgICAKICAg
ICB2aXJ0dWFsIExheW91dFVuaXQgbWFyZ2luQmVmb3JlKGNvbnN0IFJlbmRlclN0eWxlKiBvdmVy
cmlkZVN0eWxlID0gbnVsbHB0cikgY29uc3Qgb3ZlcnJpZGUgZmluYWwgeyByZXR1cm4gbV9tYXJn
aW5Cb3guYmVmb3JlKChvdmVycmlkZVN0eWxlID8gb3ZlcnJpZGVTdHlsZSA6ICZzdHlsZSgpKS0+
d3JpdGluZ01vZGUoKSk7IH0KICAgICB2aXJ0dWFsIExheW91dFVuaXQgbWFyZ2luQWZ0ZXIoY29u
c3QgUmVuZGVyU3R5bGUqIG92ZXJyaWRlU3R5bGUgPSBudWxscHRyKSBjb25zdCBvdmVycmlkZSBm
aW5hbCB7IHJldHVybiBtX21hcmdpbkJveC5hZnRlcigob3ZlcnJpZGVTdHlsZSA/IG92ZXJyaWRl
U3R5bGUgOiAmc3R5bGUoKSktPndyaXRpbmdNb2RlKCkpOyB9CkBAIC0yNzcsMTcgKzI3NywxNyBA
QCBwdWJsaWM6CiAgICAgICAgIGNvbnN0IFJlbmRlclN0eWxlKiBzdHlsZVRvVXNlID0gb3ZlcnJp
ZGVTdHlsZSA/IG92ZXJyaWRlU3R5bGUgOiAmc3R5bGUoKTsKICAgICAgICAgcmV0dXJuIG1fbWFy
Z2luQm94LmVuZChzdHlsZVRvVXNlLT53cml0aW5nTW9kZSgpLCBzdHlsZVRvVXNlLT5kaXJlY3Rp
b24oKSk7CiAgICAgfQotICAgIHZvaWQgc2V0TWFyZ2luQmVmb3JlKExheW91dFVuaXQgdmFsdWUs
IGNvbnN0IFJlbmRlclN0eWxlKiBvdmVycmlkZVN0eWxlID0gbnVsbHB0cikgeyBtX21hcmdpbkJv
eC5zZXRCZWZvcmUoKG92ZXJyaWRlU3R5bGUgPyBvdmVycmlkZVN0eWxlIDogJnN0eWxlKCkpLT53
cml0aW5nTW9kZSgpLCB2YWx1ZSk7IH0KLSAgICB2b2lkIHNldE1hcmdpbkFmdGVyKExheW91dFVu
aXQgdmFsdWUsIGNvbnN0IFJlbmRlclN0eWxlKiBvdmVycmlkZVN0eWxlID0gbnVsbHB0cikgeyBt
X21hcmdpbkJveC5zZXRBZnRlcigob3ZlcnJpZGVTdHlsZSA/IG92ZXJyaWRlU3R5bGUgOiAmc3R5
bGUoKSktPndyaXRpbmdNb2RlKCksIHZhbHVlKTsgfQorICAgIHZvaWQgc2V0TWFyZ2luQmVmb3Jl
KExheW91dFVuaXQgdmFsdWUsIGNvbnN0IFJlbmRlclN0eWxlKiBvdmVycmlkZVN0eWxlID0gbnVs
bHB0cikgeyBtX21hcmdpbkJveC5zZXRCZWZvcmUodmFsdWUsIChvdmVycmlkZVN0eWxlID8gb3Zl
cnJpZGVTdHlsZSA6ICZzdHlsZSgpKS0+d3JpdGluZ01vZGUoKSk7IH0KKyAgICB2b2lkIHNldE1h
cmdpbkFmdGVyKExheW91dFVuaXQgdmFsdWUsIGNvbnN0IFJlbmRlclN0eWxlKiBvdmVycmlkZVN0
eWxlID0gbnVsbHB0cikgeyBtX21hcmdpbkJveC5zZXRBZnRlcih2YWx1ZSwgKG92ZXJyaWRlU3R5
bGUgPyBvdmVycmlkZVN0eWxlIDogJnN0eWxlKCkpLT53cml0aW5nTW9kZSgpKTsgfQogICAgIHZv
aWQgc2V0TWFyZ2luU3RhcnQoTGF5b3V0VW5pdCB2YWx1ZSwgY29uc3QgUmVuZGVyU3R5bGUqIG92
ZXJyaWRlU3R5bGUgPSBudWxscHRyKQogICAgIHsKICAgICAgICAgY29uc3QgUmVuZGVyU3R5bGUq
IHN0eWxlVG9Vc2UgPSBvdmVycmlkZVN0eWxlID8gb3ZlcnJpZGVTdHlsZSA6ICZzdHlsZSgpOwot
ICAgICAgICBtX21hcmdpbkJveC5zZXRTdGFydChzdHlsZVRvVXNlLT53cml0aW5nTW9kZSgpLCBz
dHlsZVRvVXNlLT5kaXJlY3Rpb24oKSwgdmFsdWUpOworICAgICAgICBtX21hcmdpbkJveC5zZXRT
dGFydCh2YWx1ZSwgc3R5bGVUb1VzZS0+d3JpdGluZ01vZGUoKSwgc3R5bGVUb1VzZS0+ZGlyZWN0
aW9uKCkpOwogICAgIH0KICAgICB2b2lkIHNldE1hcmdpbkVuZChMYXlvdXRVbml0IHZhbHVlLCBj
b25zdCBSZW5kZXJTdHlsZSogb3ZlcnJpZGVTdHlsZSA9IG51bGxwdHIpCiAgICAgewogICAgICAg
ICBjb25zdCBSZW5kZXJTdHlsZSogc3R5bGVUb1VzZSA9IG92ZXJyaWRlU3R5bGUgPyBvdmVycmlk
ZVN0eWxlIDogJnN0eWxlKCk7Ci0gICAgICAgIG1fbWFyZ2luQm94LnNldEVuZChzdHlsZVRvVXNl
LT53cml0aW5nTW9kZSgpLCBzdHlsZVRvVXNlLT5kaXJlY3Rpb24oKSwgdmFsdWUpOworICAgICAg
ICBtX21hcmdpbkJveC5zZXRFbmQodmFsdWUsIHN0eWxlVG9Vc2UtPndyaXRpbmdNb2RlKCksIHN0
eWxlVG9Vc2UtPmRpcmVjdGlvbigpKTsKICAgICB9CiAKICAgICAvLyBUaGUgZm9sbG93aW5nIGZp
dmUgZnVuY3Rpb25zIGFyZSB1c2VkIHRvIGltcGxlbWVudCBjb2xsYXBzaW5nIG1hcmdpbnMuCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVj
dC5jcHAJKHJldmlzaW9uIDE4NDY1NSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCb3hNb2RlbE9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkyMSwxMSArOTIxLDEzIEBA
IHN0YXRpYyBpbmxpbmUgTGF5b3V0U2l6ZSByZXNvbHZlQWdhaW5zdEkKICAgICByZXR1cm4gTGF5
b3V0U2l6ZShzaXplLndpZHRoKCksIHNvbHV0aW9uSGVpZ2h0KTsKIH0KIAotTGF5b3V0U2l6ZSBS
ZW5kZXJCb3hNb2RlbE9iamVjdDo6Y2FsY3VsYXRlSW1hZ2VJbnRyaW5zaWNEaW1lbnNpb25zKFN0
eWxlSW1hZ2UqIGltYWdlLCBjb25zdCBMYXlvdXRTaXplJiBwb3NpdGlvbmluZ0FyZWFTaXplLCBT
Y2FsZUJ5RWZmZWN0aXZlWm9vbU9yTm90IHNob3VsZFNjYWxlT3JOb3QpIGNvbnN0Citib29sIFJl
bmRlckJveE1vZGVsT2JqZWN0OjpjYWxjdWxhdGVJbWFnZUludHJpbnNpY0RpbWVuc2lvbnMoU3R5
bGVJbWFnZSogaW1hZ2UsIGNvbnN0IExheW91dFNpemUmIHBvc2l0aW9uaW5nQXJlYVNpemUsIFNj
YWxlQnlFZmZlY3RpdmVab29tT3JOb3Qgc2hvdWxkU2NhbGVPck5vdCwgTGF5b3V0U2l6ZSYgaW1h
Z2VTaXplKSBjb25zdAogewogICAgIC8vIEEgZ2VuZXJhdGVkIGltYWdlIHdpdGhvdXQgYSBmaXhl
ZCBzaXplLCB3aWxsIGFsd2F5cyByZXR1cm4gdGhlIGNvbnRhaW5lciBzaXplIGFzIGludHJpbnNp
YyBzaXplLgotICAgIGlmIChpbWFnZS0+aXNHZW5lcmF0ZWRJbWFnZSgpICYmIGltYWdlLT51c2Vz
SW1hZ2VDb250YWluZXJTaXplKCkpCi0gICAgICAgIHJldHVybiBMYXlvdXRTaXplKHBvc2l0aW9u
aW5nQXJlYVNpemUud2lkdGgoKSwgcG9zaXRpb25pbmdBcmVhU2l6ZS5oZWlnaHQoKSk7CisgICAg
aWYgKGltYWdlLT5pc0dlbmVyYXRlZEltYWdlKCkgJiYgaW1hZ2UtPnVzZXNJbWFnZUNvbnRhaW5l
clNpemUoKSkgeworICAgICAgICBpbWFnZVNpemUgPSBMYXlvdXRTaXplKHBvc2l0aW9uaW5nQXJl
YVNpemUud2lkdGgoKSwgcG9zaXRpb25pbmdBcmVhU2l6ZS5oZWlnaHQoKSk7CisgICAgICAgIHJl
dHVybiB0cnVlOworICAgIH0KIAogICAgIExlbmd0aCBpbnRyaW5zaWNXaWR0aDsKICAgICBMZW5n
dGggaW50cmluc2ljSGVpZ2h0OwpAQCAtOTM1LDMxICs5MzcsMzYgQEAgTGF5b3V0U2l6ZSBSZW5k
ZXJCb3hNb2RlbE9iamVjdDo6Y2FsY3VsYQogICAgIEFTU0VSVCghaW50cmluc2ljV2lkdGguaXNQ
ZXJjZW50T3JDYWxjdWxhdGVkKCkpOwogICAgIEFTU0VSVCghaW50cmluc2ljSGVpZ2h0LmlzUGVy
Y2VudE9yQ2FsY3VsYXRlZCgpKTsKIAotICAgIExheW91dFNpemUgcmVzb2x2ZWRTaXplKGludHJp
bnNpY1dpZHRoLnZhbHVlKCksIGludHJpbnNpY0hlaWdodC52YWx1ZSgpKTsKLSAgICBMYXlvdXRT
aXplIG1pbmltdW1TaXplKHJlc29sdmVkU2l6ZS53aWR0aCgpID4gMCA/IDEgOiAwLCByZXNvbHZl
ZFNpemUuaGVpZ2h0KCkgPiAwID8gMSA6IDApOworICAgIGltYWdlU2l6ZSA9IExheW91dFNpemUo
aW50cmluc2ljV2lkdGgudmFsdWUoKSwgaW50cmluc2ljSGVpZ2h0LnZhbHVlKCkpOworICAgIExh
eW91dFNpemUgbWluaW11bVNpemUoaW1hZ2VTaXplLndpZHRoKCkgPiAwID8gMSA6IDAsIGltYWdl
U2l6ZS5oZWlnaHQoKSA+IDAgPyAxIDogMCk7CiAgICAgaWYgKHNob3VsZFNjYWxlT3JOb3QgPT0g
U2NhbGVCeUVmZmVjdGl2ZVpvb20pCi0gICAgICAgIHJlc29sdmVkU2l6ZS5zY2FsZShzdHlsZSgp
LmVmZmVjdGl2ZVpvb20oKSk7Ci0gICAgcmVzb2x2ZWRTaXplLmNsYW1wVG9NaW5pbXVtU2l6ZSht
aW5pbXVtU2l6ZSk7CisgICAgICAgIGltYWdlU2l6ZS5zY2FsZShzdHlsZSgpLmVmZmVjdGl2ZVpv
b20oKSk7CisgICAgaW1hZ2VTaXplLmNsYW1wVG9NaW5pbXVtU2l6ZShtaW5pbXVtU2l6ZSk7CiAK
LSAgICBpZiAoIXJlc29sdmVkU2l6ZS5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiByZXNvbHZl
ZFNpemU7CisgICAgaWYgKCFpbWFnZVNpemUuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gdHJ1
ZTsKIAogICAgIC8vIElmIHRoZSBpbWFnZSBoYXMgb25lIG9mIGVpdGhlciBhbiBpbnRyaW5zaWMg
d2lkdGggb3IgYW4gaW50cmluc2ljIGhlaWdodDoKICAgICAvLyAqIGFuZCBhbiBpbnRyaW5zaWMg
YXNwZWN0IHJhdGlvLCB0aGVuIHRoZSBtaXNzaW5nIGRpbWVuc2lvbiBpcyBjYWxjdWxhdGVkIGZy
b20gdGhlIGdpdmVuIGRpbWVuc2lvbiBhbmQgdGhlIHJhdGlvLgogICAgIC8vICogYW5kIG5vIGlu
dHJpbnNpYyBhc3BlY3QgcmF0aW8sIHRoZW4gdGhlIG1pc3NpbmcgZGltZW5zaW9uIGlzIGFzc3Vt
ZWQgdG8gYmUgdGhlIHNpemUgb2YgdGhlIHJlY3RhbmdsZSB0aGF0CiAgICAgLy8gICBlc3RhYmxp
c2hlcyB0aGUgY29vcmRpbmF0ZSBzeXN0ZW0gZm9yIHRoZSAnYmFja2dyb3VuZC1wb3NpdGlvbicg
cHJvcGVydHkuCi0gICAgaWYgKHJlc29sdmVkU2l6ZS53aWR0aCgpID4gMCB8fCByZXNvbHZlZFNp
emUuaGVpZ2h0KCkgPiAwKQotICAgICAgICByZXR1cm4gcmVzb2x2ZUFnYWluc3RJbnRyaW5zaWNX
aWR0aE9ySGVpZ2h0QW5kUmF0aW8ocG9zaXRpb25pbmdBcmVhU2l6ZSwgaW50cmluc2ljUmF0aW8s
IHJlc29sdmVkU2l6ZS53aWR0aCgpLCByZXNvbHZlZFNpemUuaGVpZ2h0KCkpOworICAgIGlmIChp
bWFnZVNpemUud2lkdGgoKSA+IDAgfHwgaW1hZ2VTaXplLmhlaWdodCgpID4gMCkgeworICAgICAg
ICBpbWFnZVNpemUgPSByZXNvbHZlQWdhaW5zdEludHJpbnNpY1dpZHRoT3JIZWlnaHRBbmRSYXRp
byhwb3NpdGlvbmluZ0FyZWFTaXplLCBpbnRyaW5zaWNSYXRpbywgaW1hZ2VTaXplLndpZHRoKCks
IGltYWdlU2l6ZS5oZWlnaHQoKSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KIAogICAg
IC8vIElmIHRoZSBpbWFnZSBoYXMgbm8gaW50cmluc2ljIGRpbWVuc2lvbnMgYW5kIGhhcyBhbiBp
bnRyaW5zaWMgcmF0aW8gdGhlIGRpbWVuc2lvbnMgbXVzdCBiZSBhc3N1bWVkIHRvIGJlIHRoZQog
ICAgIC8vIGxhcmdlc3QgZGltZW5zaW9ucyBhdCB0aGF0IHJhdGlvIHN1Y2ggdGhhdCBuZWl0aGVy
IGRpbWVuc2lvbiBleGNlZWRzIHRoZSBkaW1lbnNpb25zIG9mIHRoZSByZWN0YW5nbGUgdGhhdAog
ICAgIC8vIGVzdGFibGlzaGVzIHRoZSBjb29yZGluYXRlIHN5c3RlbSBmb3IgdGhlICdiYWNrZ3Jv
dW5kLXBvc2l0aW9uJyBwcm9wZXJ0eS4KLSAgICBpZiAoIWludHJpbnNpY1JhdGlvLmlzRW1wdHko
KSkKLSAgICAgICAgcmV0dXJuIHJlc29sdmVBZ2FpbnN0SW50cmluc2ljUmF0aW8ocG9zaXRpb25p
bmdBcmVhU2l6ZSwgaW50cmluc2ljUmF0aW8pOworICAgIGlmICghaW50cmluc2ljUmF0aW8uaXNF
bXB0eSgpKSB7CisgICAgICAgIGltYWdlU2l6ZSA9IHJlc29sdmVBZ2FpbnN0SW50cmluc2ljUmF0
aW8ocG9zaXRpb25pbmdBcmVhU2l6ZSwgaW50cmluc2ljUmF0aW8pOworICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgfQogCiAgICAgLy8gSWYgdGhlIGltYWdlIGhhcyBubyBpbnRyaW5zaWMgcmF0
aW8gZWl0aGVyLCB0aGVuIHRoZSBkaW1lbnNpb25zIG11c3QgYmUgYXNzdW1lZCB0byBiZSB0aGUg
cmVjdGFuZ2xlIHRoYXQKICAgICAvLyBlc3RhYmxpc2hlcyB0aGUgY29vcmRpbmF0ZSBzeXN0ZW0g
Zm9yIHRoZSAnYmFja2dyb3VuZC1wb3NpdGlvbicgcHJvcGVydHkuCi0gICAgcmV0dXJuIHBvc2l0
aW9uaW5nQXJlYVNpemU7CisgICAgaW1hZ2VTaXplID0gcG9zaXRpb25pbmdBcmVhU2l6ZTsKKyAg
ICByZXR1cm4gZmFsc2U7CiB9CiAKIExheW91dFNpemUgUmVuZGVyQm94TW9kZWxPYmplY3Q6OmNh
bGN1bGF0ZUZpbGxUaWxlU2l6ZShjb25zdCBGaWxsTGF5ZXImIGZpbGxMYXllciwgY29uc3QgTGF5
b3V0U2l6ZSYgcG9zaXRpb25pbmdBcmVhU2l6ZSkgY29uc3QKQEAgLTk2OSw3ICs5NzYsNyBAQCBM
YXlvdXRTaXplIFJlbmRlckJveE1vZGVsT2JqZWN0OjpjYWxjdWxhCiAKICAgICBMYXlvdXRTaXpl
IGltYWdlSW50cmluc2ljU2l6ZTsKICAgICBpZiAoaW1hZ2UpIHsKLSAgICAgICAgaW1hZ2VJbnRy
aW5zaWNTaXplID0gY2FsY3VsYXRlSW1hZ2VJbnRyaW5zaWNEaW1lbnNpb25zKGltYWdlLCBwb3Np
dGlvbmluZ0FyZWFTaXplLCBTY2FsZUJ5RWZmZWN0aXZlWm9vbSk7CisgICAgICAgIGNhbGN1bGF0
ZUltYWdlSW50cmluc2ljRGltZW5zaW9ucyhpbWFnZSwgcG9zaXRpb25pbmdBcmVhU2l6ZSwgU2Nh
bGVCeUVmZmVjdGl2ZVpvb20sIGltYWdlSW50cmluc2ljU2l6ZSk7CiAgICAgICAgIGltYWdlSW50
cmluc2ljU2l6ZS5zY2FsZSgxIC8gaW1hZ2UtPmltYWdlU2NhbGVGYWN0b3IoKSwgMSAvIGltYWdl
LT5pbWFnZVNjYWxlRmFjdG9yKCkpOwogICAgIH0gZWxzZQogICAgICAgICBpbWFnZUludHJpbnNp
Y1NpemUgPSBwb3NpdGlvbmluZ0FyZWFTaXplOwpAQCAtMTIzOCwxNSArMTI0NSw2IEBAIHZvaWQg
UmVuZGVyQm94TW9kZWxPYmplY3Q6OmdldEdlb21ldHJ5Rm8KICAgICBkZXN0UmVjdCA9IGdlb21l
dHJ5LmRlc3RSZWN0KCk7CiB9CiAKLXN0YXRpYyBMYXlvdXRVbml0IGNvbXB1dGVCb3JkZXJJbWFn
ZVNpZGUoTGVuZ3RoIGJvcmRlclNsaWNlLCBMYXlvdXRVbml0IGJvcmRlclNpZGUsIExheW91dFVu
aXQgaW1hZ2VTaWRlLCBMYXlvdXRVbml0IGJveEV4dGVudCkKLXsKLSAgICBpZiAoYm9yZGVyU2xp
Y2UuaXNSZWxhdGl2ZSgpKQotICAgICAgICByZXR1cm4gYm9yZGVyU2xpY2UudmFsdWUoKSAqIGJv
cmRlclNpZGU7Ci0gICAgaWYgKGJvcmRlclNsaWNlLmlzQXV0bygpKQotICAgICAgICByZXR1cm4g
aW1hZ2VTaWRlOwotICAgIHJldHVybiB2YWx1ZUZvckxlbmd0aChib3JkZXJTbGljZSwgYm94RXh0
ZW50KTsKLX0KLQogYm9vbCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnROaW5lUGllY2VJbWFn
ZShHcmFwaGljc0NvbnRleHQqIGdyYXBoaWNzQ29udGV4dCwgY29uc3QgTGF5b3V0UmVjdCYgcmVj
dCwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBOaW5lUGllY2VJbWFnZSYgbmluZVBpZWNlSW1hZ2Us
IENvbXBvc2l0ZU9wZXJhdG9yIG9wKQogewpAQCAtMTI2MywxNTIgKzEyNjEsMTggQEAgYm9vbCBS
ZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnROaW5lUGllYwogICAgIC8vIEZJWE1FOiBib3JkZXIt
aW1hZ2UgaXMgYnJva2VuIHdpdGggZnVsbCBwYWdlIHpvb21pbmcgd2hlbiB0aWxpbmcgaGFzIHRv
IGhhcHBlbiwgc2luY2UgdGhlIHRpbGluZyBmdW5jdGlvbgogICAgIC8vIGRvZXNuJ3QgaGF2ZSBh
bnkgdW5kZXJzdGFuZGluZyBvZiB0aGUgem9vbSB0aGF0IGlzIGluIGVmZmVjdCBvbiB0aGUgdGls
ZS4KICAgICBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvciA9IGRvY3VtZW50KCkuZGV2aWNlU2NhbGVG
YWN0b3IoKTsKKwogICAgIExheW91dFJlY3QgcmVjdFdpdGhPdXRzZXRzID0gcmVjdDsKICAgICBy
ZWN0V2l0aE91dHNldHMuZXhwYW5kKHN0eWxlLmltYWdlT3V0c2V0cyhuaW5lUGllY2VJbWFnZSkp
OwotICAgIExheW91dFJlY3QgYm9yZGVySW1hZ2VSZWN0ID0gTGF5b3V0UmVjdChzbmFwUmVjdFRv
RGV2aWNlUGl4ZWxzKHJlY3RXaXRoT3V0c2V0cywgZGV2aWNlU2NhbGVGYWN0b3IpKTsKKyAgICBM
YXlvdXRSZWN0IGRlc3RpbmF0aW9uID0gTGF5b3V0UmVjdChzbmFwUmVjdFRvRGV2aWNlUGl4ZWxz
KHJlY3RXaXRoT3V0c2V0cywgZGV2aWNlU2NhbGVGYWN0b3IpKTsKIAotICAgIExheW91dFNpemUg
aW1hZ2VTaXplID0gY2FsY3VsYXRlSW1hZ2VJbnRyaW5zaWNEaW1lbnNpb25zKHN0eWxlSW1hZ2Us
IGJvcmRlckltYWdlUmVjdC5zaXplKCksIERvTm90U2NhbGVCeUVmZmVjdGl2ZVpvb20pOworICAg
IExheW91dFNpemUgc291cmNlOworICAgIGJvb2wgaW50cmluc2ljU291cmNlID0gY2FsY3VsYXRl
SW1hZ2VJbnRyaW5zaWNEaW1lbnNpb25zKHN0eWxlSW1hZ2UsIGRlc3RpbmF0aW9uLnNpemUoKSwg
RG9Ob3RTY2FsZUJ5RWZmZWN0aXZlWm9vbSwgc291cmNlKTsKIAogICAgIC8vIElmIGJvdGggdmFs
dWVzIGFyZSDigJhhdXRv4oCZIHRoZW4gdGhlIGludHJpbnNpYyB3aWR0aCBhbmQvb3IgaGVpZ2h0
IG9mIHRoZSBpbWFnZSBzaG91bGQgYmUgdXNlZCwgaWYgYW55LgotICAgIHN0eWxlSW1hZ2UtPnNl
dENvbnRhaW5lclNpemVGb3JSZW5kZXJlcih0aGlzLCBpbWFnZVNpemUsIHN0eWxlLmVmZmVjdGl2
ZVpvb20oKSk7Ci0KLSAgICBMYXlvdXRVbml0IGltYWdlV2lkdGggPSBpbWFnZVNpemUud2lkdGgo
KTsKLSAgICBMYXlvdXRVbml0IGltYWdlSGVpZ2h0ID0gaW1hZ2VTaXplLmhlaWdodCgpOwotCi0g
ICAgZmxvYXQgaW1hZ2VTY2FsZUZhY3RvciA9IHN0eWxlSW1hZ2UtPmltYWdlU2NhbGVGYWN0b3Io
KTsKLSAgICBMYXlvdXRVbml0IHRvcFNsaWNlID0gc3RkOjptaW48TGF5b3V0VW5pdD4oaW1hZ2VI
ZWlnaHQsIHZhbHVlRm9yTGVuZ3RoKG5pbmVQaWVjZUltYWdlLmltYWdlU2xpY2VzKCkudG9wKCks
IGltYWdlSGVpZ2h0KSkgKiBpbWFnZVNjYWxlRmFjdG9yOwotICAgIExheW91dFVuaXQgcmlnaHRT
bGljZSA9IHN0ZDo6bWluPExheW91dFVuaXQ+KGltYWdlV2lkdGgsIHZhbHVlRm9yTGVuZ3RoKG5p
bmVQaWVjZUltYWdlLmltYWdlU2xpY2VzKCkucmlnaHQoKSwgaW1hZ2VXaWR0aCkpICogaW1hZ2VT
Y2FsZUZhY3RvcjsKLSAgICBMYXlvdXRVbml0IGJvdHRvbVNsaWNlID0gc3RkOjptaW48TGF5b3V0
VW5pdD4oaW1hZ2VIZWlnaHQsIHZhbHVlRm9yTGVuZ3RoKG5pbmVQaWVjZUltYWdlLmltYWdlU2xp
Y2VzKCkuYm90dG9tKCksIGltYWdlSGVpZ2h0KSkgKiBpbWFnZVNjYWxlRmFjdG9yOwotICAgIExh
eW91dFVuaXQgbGVmdFNsaWNlID0gc3RkOjptaW48TGF5b3V0VW5pdD4oaW1hZ2VXaWR0aCwgdmFs
dWVGb3JMZW5ndGgobmluZVBpZWNlSW1hZ2UuaW1hZ2VTbGljZXMoKS5sZWZ0KCksIGltYWdlV2lk
dGgpKSAqIGltYWdlU2NhbGVGYWN0b3I7Ci0KLSAgICBFTmluZVBpZWNlSW1hZ2VSdWxlIGhSdWxl
ID0gbmluZVBpZWNlSW1hZ2UuaG9yaXpvbnRhbFJ1bGUoKTsKLSAgICBFTmluZVBpZWNlSW1hZ2VS
dWxlIHZSdWxlID0gbmluZVBpZWNlSW1hZ2UudmVydGljYWxSdWxlKCk7Ci0KLSAgICBMYXlvdXRV
bml0IHRvcFdpZHRoID0gY29tcHV0ZUJvcmRlckltYWdlU2lkZShuaW5lUGllY2VJbWFnZS5ib3Jk
ZXJTbGljZXMoKS50b3AoKSwgc3R5bGUuYm9yZGVyVG9wV2lkdGgoKSwgdG9wU2xpY2UsIGJvcmRl
ckltYWdlUmVjdC5oZWlnaHQoKSk7Ci0gICAgTGF5b3V0VW5pdCByaWdodFdpZHRoID0gY29tcHV0
ZUJvcmRlckltYWdlU2lkZShuaW5lUGllY2VJbWFnZS5ib3JkZXJTbGljZXMoKS5yaWdodCgpLCBz
dHlsZS5ib3JkZXJSaWdodFdpZHRoKCksIHJpZ2h0U2xpY2UsIGJvcmRlckltYWdlUmVjdC53aWR0
aCgpKTsKLSAgICBMYXlvdXRVbml0IGJvdHRvbVdpZHRoID0gY29tcHV0ZUJvcmRlckltYWdlU2lk
ZShuaW5lUGllY2VJbWFnZS5ib3JkZXJTbGljZXMoKS5ib3R0b20oKSwgc3R5bGUuYm9yZGVyQm90
dG9tV2lkdGgoKSwgYm90dG9tU2xpY2UsIGJvcmRlckltYWdlUmVjdC5oZWlnaHQoKSk7Ci0gICAg
TGF5b3V0VW5pdCBsZWZ0V2lkdGggPSBjb21wdXRlQm9yZGVySW1hZ2VTaWRlKG5pbmVQaWVjZUlt
YWdlLmJvcmRlclNsaWNlcygpLmxlZnQoKSwgc3R5bGUuYm9yZGVyTGVmdFdpZHRoKCksIGxlZnRT
bGljZSwgYm9yZGVySW1hZ2VSZWN0LndpZHRoKCkpOwotCi0gICAgLy8gUmVkdWNlIHRoZSB3aWR0
aHMgaWYgdGhleSdyZSB0b28gbGFyZ2UuCi0gICAgLy8gVGhlIHNwZWMgc2F5czogR2l2ZW4gTHdp
ZHRoIGFzIHRoZSB3aWR0aCBvZiB0aGUgYm9yZGVyIGltYWdlIGFyZWEsIExoZWlnaHQgYXMgaXRz
IGhlaWdodCwgYW5kIFdzaWRlIGFzIHRoZSBib3JkZXIgaW1hZ2Ugd2lkdGgKLSAgICAvLyBvZmZz
ZXQgZm9yIHRoZSBzaWRlLCBsZXQgZiA9IG1pbihMd2lkdGgvKFdsZWZ0K1dyaWdodCksIExoZWln
aHQvKFd0b3ArV2JvdHRvbSkpLiBJZiBmIDwgMSwgdGhlbiBhbGwgVyBhcmUgcmVkdWNlZCBieQot
ICAgIC8vIG11bHRpcGx5aW5nIHRoZW0gYnkgZi4KLSAgICBMYXlvdXRVbml0IGJvcmRlclNpZGVX
aWR0aCA9IHN0ZDo6bWF4PExheW91dFVuaXQ+KDEgLyBkZXZpY2VTY2FsZUZhY3RvciwgbGVmdFdp
ZHRoICsgcmlnaHRXaWR0aCk7Ci0gICAgTGF5b3V0VW5pdCBib3JkZXJTaWRlSGVpZ2h0ID0gc3Rk
OjptYXg8TGF5b3V0VW5pdD4oMSAvIGRldmljZVNjYWxlRmFjdG9yLCB0b3BXaWR0aCArIGJvdHRv
bVdpZHRoKTsKLSAgICBmbG9hdCBib3JkZXJTaWRlU2NhbGVGYWN0b3IgPSBzdGQ6Om1pbigoZmxv
YXQpYm9yZGVySW1hZ2VSZWN0LndpZHRoKCkgLyBib3JkZXJTaWRlV2lkdGgsIChmbG9hdClib3Jk
ZXJJbWFnZVJlY3QuaGVpZ2h0KCkgLyBib3JkZXJTaWRlSGVpZ2h0KTsKLSAgICBpZiAoYm9yZGVy
U2lkZVNjYWxlRmFjdG9yIDwgMSkgewotICAgICAgICB0b3BXaWR0aCAqPSBib3JkZXJTaWRlU2Nh
bGVGYWN0b3I7Ci0gICAgICAgIHJpZ2h0V2lkdGggKj0gYm9yZGVyU2lkZVNjYWxlRmFjdG9yOwot
ICAgICAgICBib3R0b21XaWR0aCAqPSBib3JkZXJTaWRlU2NhbGVGYWN0b3I7Ci0gICAgICAgIGxl
ZnRXaWR0aCAqPSBib3JkZXJTaWRlU2NhbGVGYWN0b3I7Ci0gICAgfQotCi0gICAgYm9vbCBkcmF3
TGVmdCA9IGxlZnRTbGljZSA+IDAgJiYgbGVmdFdpZHRoID4gMDsKLSAgICBib29sIGRyYXdUb3Ag
PSB0b3BTbGljZSA+IDAgJiYgdG9wV2lkdGggPiAwOwotICAgIGJvb2wgZHJhd1JpZ2h0ID0gcmln
aHRTbGljZSA+IDAgJiYgcmlnaHRXaWR0aCA+IDA7Ci0gICAgYm9vbCBkcmF3Qm90dG9tID0gYm90
dG9tU2xpY2UgPiAwICYmIGJvdHRvbVdpZHRoID4gMDsKLSAgICBib29sIGRyYXdNaWRkbGUgPSBu
aW5lUGllY2VJbWFnZS5maWxsKCkgJiYgKGltYWdlV2lkdGggLSBsZWZ0U2xpY2UgLSByaWdodFNs
aWNlKSA+IDAgJiYgKGJvcmRlckltYWdlUmVjdC53aWR0aCgpIC0gbGVmdFdpZHRoIC0gcmlnaHRX
aWR0aCkgPiAwCi0gICAgICAgICAgICAgICAgICAgICAgJiYgKGltYWdlSGVpZ2h0IC0gdG9wU2xp
Y2UgLSBib3R0b21TbGljZSkgPiAwICYmIChib3JkZXJJbWFnZVJlY3QuaGVpZ2h0KCkgLSB0b3BX
aWR0aCAtIGJvdHRvbVdpZHRoKSA+IDA7Ci0KLSAgICBSZWZQdHI8SW1hZ2U+IGltYWdlID0gc3R5
bGVJbWFnZS0+aW1hZ2UodGhpcywgaW1hZ2VTaXplKTsKLSAgICBDb2xvclNwYWNlIGNvbG9yU3Bh
Y2UgPSBzdHlsZS5jb2xvclNwYWNlKCk7Ci0gICAgCi0gICAgZmxvYXQgZGVzdGluYXRpb25XaWR0
aCA9IGJvcmRlckltYWdlUmVjdC53aWR0aCgpIC0gbGVmdFdpZHRoIC0gcmlnaHRXaWR0aDsKLSAg
ICBmbG9hdCBkZXN0aW5hdGlvbkhlaWdodCA9IGJvcmRlckltYWdlUmVjdC5oZWlnaHQoKSAtIHRv
cFdpZHRoIC0gYm90dG9tV2lkdGg7Ci0gICAgCi0gICAgZmxvYXQgc291cmNlV2lkdGggPSBpbWFn
ZVdpZHRoIC0gbGVmdFNsaWNlIC0gcmlnaHRTbGljZTsKLSAgICBmbG9hdCBzb3VyY2VIZWlnaHQg
PSBpbWFnZUhlaWdodCAtIHRvcFNsaWNlIC0gYm90dG9tU2xpY2U7Ci0gICAgCi0gICAgZmxvYXQg
bGVmdFNpZGVTY2FsZSA9IGRyYXdMZWZ0ID8gKGZsb2F0KWxlZnRXaWR0aCAvIGxlZnRTbGljZSA6
IDE7Ci0gICAgZmxvYXQgcmlnaHRTaWRlU2NhbGUgPSBkcmF3UmlnaHQgPyAoZmxvYXQpcmlnaHRX
aWR0aCAvIHJpZ2h0U2xpY2UgOiAxOwotICAgIGZsb2F0IHRvcFNpZGVTY2FsZSA9IGRyYXdUb3Ag
PyAoZmxvYXQpdG9wV2lkdGggLyB0b3BTbGljZSA6IDE7Ci0gICAgZmxvYXQgYm90dG9tU2lkZVNj
YWxlID0gZHJhd0JvdHRvbSA/IChmbG9hdClib3R0b21XaWR0aCAvIGJvdHRvbVNsaWNlIDogMTsK
LQotICAgIGZsb2F0IHggPSBib3JkZXJJbWFnZVJlY3QubG9jYXRpb24oKS54KCk7Ci0gICAgZmxv
YXQgeSA9IGJvcmRlckltYWdlUmVjdC5sb2NhdGlvbigpLnkoKTsKLSAgICBpZiAoZHJhd0xlZnQp
IHsKLSAgICAgICAgLy8gUGFpbnQgdGhlIHRvcCBhbmQgYm90dG9tIGxlZnQgY29ybmVycy4KLQot
ICAgICAgICAvLyBUaGUgdG9wIGxlZnQgY29ybmVyIHJlY3QgaXMgKHR4LCB0eSwgbGVmdFdpZHRo
LCB0b3BXaWR0aCkKLSAgICAgICAgLy8gVGhlIHJlY3QgdG8gdXNlIGZyb20gd2l0aGluIHRoZSBp
bWFnZSBpcyBvYnRhaW5lZCBmcm9tIG91ciBzbGljZSwgYW5kIGlzICgwLCAwLCBsZWZ0U2xpY2Us
IHRvcFNsaWNlKQotICAgICAgICBpZiAoZHJhd1RvcCkKLSAgICAgICAgICAgIGdyYXBoaWNzQ29u
dGV4dC0+ZHJhd0ltYWdlKGltYWdlLmdldCgpLCBjb2xvclNwYWNlLCBzbmFwUmVjdFRvRGV2aWNl
UGl4ZWxzKHgsIHksIGxlZnRXaWR0aCwgdG9wV2lkdGgsIGRldmljZVNjYWxlRmFjdG9yKSwKLSAg
ICAgICAgICAgICAgICBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKDAsIDAsIGxlZnRTbGljZSwgdG9w
U2xpY2UsIGRldmljZVNjYWxlRmFjdG9yKSwgb3ApOwotCi0gICAgICAgIC8vIFRoZSBib3R0b20g
bGVmdCBjb3JuZXIgcmVjdCBpcyAodHgsIHR5ICsgaCAtIGJvdHRvbVdpZHRoLCBsZWZ0V2lkdGgs
IGJvdHRvbVdpZHRoKQotICAgICAgICAvLyBUaGUgcmVjdCB0byB1c2UgZnJvbSB3aXRoaW4gdGhl
IGltYWdlIGlzICgwLCBpbWFnZUhlaWdodCAtIGJvdHRvbVNsaWNlLCBsZWZ0U2xpY2UsIGJvdG9t
U2xpY2UpCi0gICAgICAgIGlmIChkcmF3Qm90dG9tKQotICAgICAgICAgICAgZ3JhcGhpY3NDb250
ZXh0LT5kcmF3SW1hZ2UoaW1hZ2UuZ2V0KCksIGNvbG9yU3BhY2UsIHNuYXBSZWN0VG9EZXZpY2VQ
aXhlbHMoeCwgYm9yZGVySW1hZ2VSZWN0Lm1heFkoKSAtIGJvdHRvbVdpZHRoLCBsZWZ0V2lkdGgs
IGJvdHRvbVdpZHRoLCBkZXZpY2VTY2FsZUZhY3RvciksCi0gICAgICAgICAgICAgICAgc25hcFJl
Y3RUb0RldmljZVBpeGVscygwLCBpbWFnZUhlaWdodCAtIGJvdHRvbVNsaWNlLCBsZWZ0U2xpY2Us
IGJvdHRvbVNsaWNlLCBkZXZpY2VTY2FsZUZhY3RvciksIG9wKTsKLQotICAgICAgICAvLyBQYWlu
dCB0aGUgbGVmdCBlZGdlLgotICAgICAgICAvLyBIYXZlIHRvIHNjYWxlIGFuZCB0aWxlIGludG8g
dGhlIGJvcmRlciByZWN0LgotICAgICAgICBpZiAoc291cmNlSGVpZ2h0ID4gMCkKLSAgICAgICAg
ICAgIGdyYXBoaWNzQ29udGV4dC0+ZHJhd1RpbGVkSW1hZ2UoaW1hZ2UuZ2V0KCksIGNvbG9yU3Bh
Y2UsIHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMoeCwgeSArIHRvcFdpZHRoLCBsZWZ0V2lkdGgsIGRl
c3RpbmF0aW9uSGVpZ2h0LCBkZXZpY2VTY2FsZUZhY3RvciksCi0gICAgICAgICAgICAgICAgc25h
cFJlY3RUb0RldmljZVBpeGVscygwLCB0b3BTbGljZSwgbGVmdFNsaWNlLCBzb3VyY2VIZWlnaHQs
IGRldmljZVNjYWxlRmFjdG9yKSwgRmxvYXRTaXplKGxlZnRTaWRlU2NhbGUsIGxlZnRTaWRlU2Nh
bGUpLCBJbWFnZTo6U3RyZXRjaFRpbGUsIChJbWFnZTo6VGlsZVJ1bGUpdlJ1bGUsIG9wKTsKLSAg
ICB9Ci0KLSAgICBpZiAoZHJhd1JpZ2h0KSB7Ci0gICAgICAgIC8vIFBhaW50IHRoZSB0b3AgYW5k
IGJvdHRvbSByaWdodCBjb3JuZXJzCi0gICAgICAgIC8vIFRoZSB0b3AgcmlnaHQgY29ybmVyIHJl
Y3QgaXMgKHR4ICsgdyAtIHJpZ2h0V2lkdGgsIHR5LCByaWdodFdpZHRoLCB0b3BXaWR0aCkKLSAg
ICAgICAgLy8gVGhlIHJlY3QgdG8gdXNlIGZyb20gd2l0aGluIHRoZSBpbWFnZSBpcyBvYnRhaW5l
ZCBmcm9tIG91ciBzbGljZSwgYW5kIGlzIChpbWFnZVdpZHRoIC0gcmlnaHRTbGljZSwgMCwgcmln
aHRTbGljZSwgdG9wU2xpY2UpCi0gICAgICAgIGlmIChkcmF3VG9wKQotICAgICAgICAgICAgZ3Jh
cGhpY3NDb250ZXh0LT5kcmF3SW1hZ2UoaW1hZ2UuZ2V0KCksIGNvbG9yU3BhY2UsIHNuYXBSZWN0
VG9EZXZpY2VQaXhlbHMoYm9yZGVySW1hZ2VSZWN0Lm1heFgoKSAtIHJpZ2h0V2lkdGgsIHksIHJp
Z2h0V2lkdGgsIHRvcFdpZHRoLCBkZXZpY2VTY2FsZUZhY3RvciksCi0gICAgICAgICAgICAgICAg
c25hcFJlY3RUb0RldmljZVBpeGVscyhpbWFnZVdpZHRoIC0gcmlnaHRTbGljZSwgMCwgcmlnaHRT
bGljZSwgdG9wU2xpY2UsIGRldmljZVNjYWxlRmFjdG9yKSwgb3ApOwotCi0gICAgICAgIC8vIFRo
ZSBib3R0b20gcmlnaHQgY29ybmVyIHJlY3QgaXMgKHR4ICsgdyAtIHJpZ2h0V2lkdGgsIHR5ICsg
aCAtIGJvdHRvbVdpZHRoLCByaWdodFdpZHRoLCBib3R0b21XaWR0aCkKLSAgICAgICAgLy8gVGhl
IHJlY3QgdG8gdXNlIGZyb20gd2l0aGluIHRoZSBpbWFnZSBpcyAoaW1hZ2VXaWR0aCAtIHJpZ2h0
U2xpY2UsIGltYWdlSGVpZ2h0IC0gYm90dG9tU2xpY2UsIHJpZ2h0U2xpY2UsIGJvdHRvbVNsaWNl
KQotICAgICAgICBpZiAoZHJhd0JvdHRvbSkKLSAgICAgICAgICAgIGdyYXBoaWNzQ29udGV4dC0+
ZHJhd0ltYWdlKGltYWdlLmdldCgpLCBjb2xvclNwYWNlLCBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxz
KGJvcmRlckltYWdlUmVjdC5tYXhYKCkgLSByaWdodFdpZHRoLCBib3JkZXJJbWFnZVJlY3QubWF4
WSgpIC0gYm90dG9tV2lkdGgsCi0gICAgICAgICAgICAgICAgcmlnaHRXaWR0aCwgYm90dG9tV2lk
dGgsIGRldmljZVNjYWxlRmFjdG9yKSwgc25hcFJlY3RUb0RldmljZVBpeGVscyhpbWFnZVdpZHRo
IC0gcmlnaHRTbGljZSwgaW1hZ2VIZWlnaHQgLSBib3R0b21TbGljZSwgcmlnaHRTbGljZSwgYm90
dG9tU2xpY2UsIGRldmljZVNjYWxlRmFjdG9yKSwKLSAgICAgICAgICAgICAgICBvcCk7Ci0KLSAg
ICAgICAgLy8gUGFpbnQgdGhlIHJpZ2h0IGVkZ2UuCi0gICAgICAgIGlmIChzb3VyY2VIZWlnaHQg
PiAwKQotICAgICAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5kcmF3VGlsZWRJbWFnZShpbWFnZS5n
ZXQoKSwgY29sb3JTcGFjZSwgc25hcFJlY3RUb0RldmljZVBpeGVscyhib3JkZXJJbWFnZVJlY3Qu
bWF4WCgpIC0gcmlnaHRXaWR0aCwgeSArIHRvcFdpZHRoLCByaWdodFdpZHRoLCBkZXN0aW5hdGlv
bkhlaWdodCwgZGV2aWNlU2NhbGVGYWN0b3IpLAotICAgICAgICAgICAgICAgIHNuYXBSZWN0VG9E
ZXZpY2VQaXhlbHMoaW1hZ2VXaWR0aCAtIHJpZ2h0U2xpY2UsIHRvcFNsaWNlLCByaWdodFNsaWNl
LCBzb3VyY2VIZWlnaHQsIGRldmljZVNjYWxlRmFjdG9yKSwgRmxvYXRTaXplKHJpZ2h0U2lkZVNj
YWxlLCByaWdodFNpZGVTY2FsZSksCi0gICAgICAgICAgICAgICAgSW1hZ2U6OlN0cmV0Y2hUaWxl
LCAoSW1hZ2U6OlRpbGVSdWxlKXZSdWxlLCBvcCk7Ci0gICAgfQotCi0gICAgLy8gUGFpbnQgdGhl
IHRvcCBlZGdlLgotICAgIGlmIChkcmF3VG9wICYmIHNvdXJjZVdpZHRoID4gMCkKLSAgICAgICAg
Z3JhcGhpY3NDb250ZXh0LT5kcmF3VGlsZWRJbWFnZShpbWFnZS5nZXQoKSwgY29sb3JTcGFjZSwg
c25hcFJlY3RUb0RldmljZVBpeGVscyh4ICsgbGVmdFdpZHRoLCB5LCBkZXN0aW5hdGlvbldpZHRo
LCB0b3BXaWR0aCwgZGV2aWNlU2NhbGVGYWN0b3IpLAotICAgICAgICAgICAgc25hcFJlY3RUb0Rl
dmljZVBpeGVscyhsZWZ0U2xpY2UsIDAsIHNvdXJjZVdpZHRoLCB0b3BTbGljZSwgZGV2aWNlU2Nh
bGVGYWN0b3IpLCBGbG9hdFNpemUodG9wU2lkZVNjYWxlLCB0b3BTaWRlU2NhbGUpLCAoSW1hZ2U6
OlRpbGVSdWxlKWhSdWxlLCBJbWFnZTo6U3RyZXRjaFRpbGUsIG9wKTsKLQotICAgIC8vIFBhaW50
IHRoZSBib3R0b20gZWRnZS4KLSAgICBpZiAoZHJhd0JvdHRvbSAmJiBzb3VyY2VXaWR0aCA+IDAp
Ci0gICAgICAgIGdyYXBoaWNzQ29udGV4dC0+ZHJhd1RpbGVkSW1hZ2UoaW1hZ2UuZ2V0KCksIGNv
bG9yU3BhY2UsIHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMoeCArIGxlZnRXaWR0aCwgYm9yZGVySW1h
Z2VSZWN0Lm1heFkoKSAtIGJvdHRvbVdpZHRoLCBkZXN0aW5hdGlvbldpZHRoLCBib3R0b21XaWR0
aCwgZGV2aWNlU2NhbGVGYWN0b3IpLAotICAgICAgICAgICAgc25hcFJlY3RUb0RldmljZVBpeGVs
cyhsZWZ0U2xpY2UsIGltYWdlSGVpZ2h0IC0gYm90dG9tU2xpY2UsIHNvdXJjZVdpZHRoLCBib3R0
b21TbGljZSwgZGV2aWNlU2NhbGVGYWN0b3IpLCBGbG9hdFNpemUoYm90dG9tU2lkZVNjYWxlLCBi
b3R0b21TaWRlU2NhbGUpLAotICAgICAgICAgICAgKEltYWdlOjpUaWxlUnVsZSloUnVsZSwgSW1h
Z2U6OlN0cmV0Y2hUaWxlLCBvcCk7Ci0KLSAgICAvLyBQYWludCB0aGUgbWlkZGxlLgotICAgIGlm
IChkcmF3TWlkZGxlKSB7Ci0gICAgICAgIEZsb2F0U2l6ZSBtaWRkbGVTY2FsZUZhY3RvcigxLCAx
KTsKLSAgICAgICAgaWYgKGRyYXdUb3ApCi0gICAgICAgICAgICBtaWRkbGVTY2FsZUZhY3Rvci5z
ZXRXaWR0aCh0b3BTaWRlU2NhbGUpOwotICAgICAgICBlbHNlIGlmIChkcmF3Qm90dG9tKQotICAg
ICAgICAgICAgbWlkZGxlU2NhbGVGYWN0b3Iuc2V0V2lkdGgoYm90dG9tU2lkZVNjYWxlKTsKLSAg
ICAgICAgaWYgKGRyYXdMZWZ0KQotICAgICAgICAgICAgbWlkZGxlU2NhbGVGYWN0b3Iuc2V0SGVp
Z2h0KGxlZnRTaWRlU2NhbGUpOwotICAgICAgICBlbHNlIGlmIChkcmF3UmlnaHQpCi0gICAgICAg
ICAgICBtaWRkbGVTY2FsZUZhY3Rvci5zZXRIZWlnaHQocmlnaHRTaWRlU2NhbGUpOwotICAgICAg
ICAgICAgCi0gICAgICAgIC8vIEZvciAic3RyZXRjaCIgcnVsZXMsIGp1c3Qgb3ZlcnJpZGUgdGhl
IHNjYWxlIGZhY3RvciBhbmQgcmVwbGFjZS4gV2Ugb25seSBoYWQgdG8gZG8gdGhpcyBmb3IgdGhl
Ci0gICAgICAgIC8vIGNlbnRlciB0aWxlLCBzaW5jZSBzaWRlcyBkb24ndCBldmVuIHVzZSB0aGUg
c2NhbGUgZmFjdG9yIHVubGVzcyB0aGV5IGhhdmUgYSBydWxlIG90aGVyIHRoYW4gInN0cmV0Y2gi
LgotICAgICAgICAvLyBUaGUgbWlkZGxlIGhvd2V2ZXIgY2FuIGhhdmUgInN0cmV0Y2giIHNwZWNp
ZmllZCBpbiBvbmUgYXhpcyBidXQgbm90IHRoZSBvdGhlciwgc28gd2UgaGF2ZSB0bwotICAgICAg
ICAvLyBjb3JyZWN0IHRoZSBzY2FsZSBoZXJlLgotICAgICAgICBpZiAoaFJ1bGUgPT0gU3RyZXRj
aEltYWdlUnVsZSkKLSAgICAgICAgICAgIG1pZGRsZVNjYWxlRmFjdG9yLnNldFdpZHRoKGRlc3Rp
bmF0aW9uV2lkdGggLyBzb3VyY2VXaWR0aCk7Ci0gICAgICAgICAgICAKLSAgICAgICAgaWYgKHZS
dWxlID09IFN0cmV0Y2hJbWFnZVJ1bGUpCi0gICAgICAgICAgICBtaWRkbGVTY2FsZUZhY3Rvci5z
ZXRIZWlnaHQoZGVzdGluYXRpb25IZWlnaHQgLyBzb3VyY2VIZWlnaHQpOwotICAgICAgICAKLSAg
ICAgICAgZ3JhcGhpY3NDb250ZXh0LT5kcmF3VGlsZWRJbWFnZShpbWFnZS5nZXQoKSwgY29sb3JT
cGFjZSwKLSAgICAgICAgICAgIHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMoeCArIGxlZnRXaWR0aCwg
eSArIHRvcFdpZHRoLCBkZXN0aW5hdGlvbldpZHRoLCBkZXN0aW5hdGlvbkhlaWdodCwgZGV2aWNl
U2NhbGVGYWN0b3IpLAotICAgICAgICAgICAgc25hcFJlY3RUb0RldmljZVBpeGVscyhsZWZ0U2xp
Y2UsIHRvcFNsaWNlLCBzb3VyY2VXaWR0aCwgc291cmNlSGVpZ2h0LCBkZXZpY2VTY2FsZUZhY3Rv
ciksCi0gICAgICAgICAgICBtaWRkbGVTY2FsZUZhY3RvciwgKEltYWdlOjpUaWxlUnVsZSloUnVs
ZSwgKEltYWdlOjpUaWxlUnVsZSl2UnVsZSwgb3ApOwotICAgIH0KKyAgICBzdHlsZUltYWdlLT5z
ZXRDb250YWluZXJTaXplRm9yUmVuZGVyZXIodGhpcywgc291cmNlLCBzdHlsZS5lZmZlY3RpdmVa
b29tKCkpOwogCisgICAgbmluZVBpZWNlSW1hZ2UucGFpbnQoZ3JhcGhpY3NDb250ZXh0LCB0aGlz
LCBzdHlsZSwgZGVzdGluYXRpb24sIHNvdXJjZSwgaW50cmluc2ljU291cmNlLCBkZXZpY2VTY2Fs
ZUZhY3Rvciwgb3ApOwogICAgIHJldHVybiB0cnVlOwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaAkocmV2aXNpb24gMTg0NjU1
KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmgJKHdv
cmtpbmcgY29weSkKQEAgLTI4OSw3ICsyODksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBtb3ZlQ2hp
bGRyZW5UbyhSZW5kZXJCb3hNb2RlbE9iamVjdCogdG9Cb3hNb2RlbE9iamVjdCwgUmVuZGVyT2Jq
ZWN0KiBzdGFydENoaWxkLCBSZW5kZXJPYmplY3QqIGVuZENoaWxkLCBSZW5kZXJPYmplY3QqIGJl
Zm9yZUNoaWxkLCBib29sIGZ1bGxSZW1vdmVJbnNlcnQgPSBmYWxzZSk7CiAKICAgICBlbnVtIFNj
YWxlQnlFZmZlY3RpdmVab29tT3JOb3QgeyBTY2FsZUJ5RWZmZWN0aXZlWm9vbSwgRG9Ob3RTY2Fs
ZUJ5RWZmZWN0aXZlWm9vbSB9OwotICAgIExheW91dFNpemUgY2FsY3VsYXRlSW1hZ2VJbnRyaW5z
aWNEaW1lbnNpb25zKFN0eWxlSW1hZ2UqLCBjb25zdCBMYXlvdXRTaXplJiBzY2FsZWRQb3NpdGlv
bmluZ0FyZWFTaXplLCBTY2FsZUJ5RWZmZWN0aXZlWm9vbU9yTm90KSBjb25zdDsKKyAgICBib29s
IGNhbGN1bGF0ZUltYWdlSW50cmluc2ljRGltZW5zaW9ucyhTdHlsZUltYWdlKiwgY29uc3QgTGF5
b3V0U2l6ZSYgc2NhbGVkUG9zaXRpb25pbmdBcmVhU2l6ZSwgU2NhbGVCeUVmZmVjdGl2ZVpvb21P
ck5vdCwgTGF5b3V0U2l6ZSYgaW1hZ2VTaXplKSBjb25zdDsKIAogcHJpdmF0ZToKICAgICBMYXlv
dXRVbml0IGNvbXB1dGVkQ1NTUGFkZGluZyhjb25zdCBMZW5ndGgmKSBjb25zdDsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5jcHAJKHJldmlzaW9u
IDE4NDY1NSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTQyNiw3ICsxNDI2LDggQEAgdm9pZCBSZW5kZXJMaXN0TWFy
a2VyOjp1cGRhdGVDb250ZW50KCkKICAgICAgICAgLy8gdW50aWwgd2Ugc3VwcG9ydCB0aGUgQ1NT
MyBtYXJrZXIgcHNldWRvY2xhc3MgdG8gYWxsb3cgY29udHJvbCBvdmVyIHRoZSB3aWR0aCBhbmQg
aGVpZ2h0IG9mIHRoZSBtYXJrZXIgYm94LgogICAgICAgICBMYXlvdXRVbml0IGJ1bGxldFdpZHRo
ID0gc3R5bGUoKS5mb250TWV0cmljcygpLmFzY2VudCgpIC8gTGF5b3V0VW5pdCgyKTsKICAgICAg
ICAgTGF5b3V0U2l6ZSBkZWZhdWx0QnVsbGV0U2l6ZShidWxsZXRXaWR0aCwgYnVsbGV0V2lkdGgp
OwotICAgICAgICBMYXlvdXRTaXplIGltYWdlU2l6ZSA9IGNhbGN1bGF0ZUltYWdlSW50cmluc2lj
RGltZW5zaW9ucyhtX2ltYWdlLmdldCgpLCBkZWZhdWx0QnVsbGV0U2l6ZSwgRG9Ob3RTY2FsZUJ5
RWZmZWN0aXZlWm9vbSk7CisgICAgICAgIExheW91dFNpemUgaW1hZ2VTaXplOworICAgICAgICBj
YWxjdWxhdGVJbWFnZUludHJpbnNpY0RpbWVuc2lvbnMobV9pbWFnZS5nZXQoKSwgZGVmYXVsdEJ1
bGxldFNpemUsIERvTm90U2NhbGVCeUVmZmVjdGl2ZVpvb20sIGltYWdlU2l6ZSk7CiAgICAgICAg
IG1faW1hZ2UtPnNldENvbnRhaW5lclNpemVGb3JSZW5kZXJlcih0aGlzLCBpbWFnZVNpemUsIHN0
eWxlKCkuZWZmZWN0aXZlWm9vbSgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGVPdXRzaWRlSW5mby5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZU91dHNpZGVJbmZv
LmNwcAkocmV2aXNpb24gMTg0NjU1KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBl
cy9TaGFwZU91dHNpZGVJbmZvLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQ4LDcgKzE0OCw4IEBA
IHN0YXRpYyBMYXlvdXRSZWN0IGdldFNoYXBlSW1hZ2VNYXJnaW5SZWMKIAogc3RkOjp1bmlxdWVf
cHRyPFNoYXBlPiBTaGFwZU91dHNpZGVJbmZvOjpjcmVhdGVTaGFwZUZvckltYWdlKFN0eWxlSW1h
Z2UqIHN0eWxlSW1hZ2UsIGZsb2F0IHNoYXBlSW1hZ2VUaHJlc2hvbGQsIFdyaXRpbmdNb2RlIHdy
aXRpbmdNb2RlLCBmbG9hdCBtYXJnaW4pIGNvbnN0CiB7Ci0gICAgY29uc3QgTGF5b3V0U2l6ZSYg
aW1hZ2VTaXplID0gbV9yZW5kZXJlci5jYWxjdWxhdGVJbWFnZUludHJpbnNpY0RpbWVuc2lvbnMo
c3R5bGVJbWFnZSwgbV9yZWZlcmVuY2VCb3hMb2dpY2FsU2l6ZSwgUmVuZGVySW1hZ2U6OlNjYWxl
QnlFZmZlY3RpdmVab29tKTsKKyAgICBMYXlvdXRTaXplIGltYWdlU2l6ZTsKKyAgICBtX3JlbmRl
cmVyLmNhbGN1bGF0ZUltYWdlSW50cmluc2ljRGltZW5zaW9ucyhzdHlsZUltYWdlLCBtX3JlZmVy
ZW5jZUJveExvZ2ljYWxTaXplLCBSZW5kZXJJbWFnZTo6U2NhbGVCeUVmZmVjdGl2ZVpvb20sIGlt
YWdlU2l6ZSk7CiAgICAgc3R5bGVJbWFnZS0+c2V0Q29udGFpbmVyU2l6ZUZvclJlbmRlcmVyKCZt
X3JlbmRlcmVyLCBpbWFnZVNpemUsIG1fcmVuZGVyZXIuc3R5bGUoKS5lZmZlY3RpdmVab29tKCkp
OwogCiAgICAgY29uc3QgTGF5b3V0UmVjdCYgbWFyZ2luUmVjdCA9IGdldFNoYXBlSW1hZ2VNYXJn
aW5SZWN0KG1fcmVuZGVyZXIsIG1fcmVmZXJlbmNlQm94TG9naWNhbFNpemUpOwpJbmRleDogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0JvcmRlckRhdGEuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQm9yZGVyRGF0YS5oCShyZXZpc2lvbiAxODQ2
NTUpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQm9yZGVyRGF0YS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC05Miw2ICs5MiwxMSBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm4g
MDsKICAgICAgICAgcmV0dXJuIG1fYm90dG9tLndpZHRoKCk7CiAgICAgfQorCisgICAgRmxvYXRC
b3hFeHRlbnQgYm9yZGVyV2lkdGgoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIEZsb2F0
Qm94RXh0ZW50KGJvcmRlclRvcFdpZHRoKCksIGJvcmRlclJpZ2h0V2lkdGgoKSwgYm9yZGVyQm90
dG9tV2lkdGgoKSwgYm9yZGVyTGVmdFdpZHRoKCkpOworICAgIH0KICAgICAKICAgICBib29sIG9w
ZXJhdG9yPT0oY29uc3QgQm9yZGVyRGF0YSYgbykgY29uc3QKICAgICB7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvTmluZVBpZWNlSW1hZ2UuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9OaW5lUGllY2VJbWFnZS5jcHAJKHJldmlz
aW9uIDE4NDY1NSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9OaW5lUGllY2VJ
bWFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIsNyArMiw3IEBACiAgKiBDb3B5cmlnaHQgKEMp
IDIwMDAgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKICAqICAgICAgICAgICAoQykgMjAwMCBB
bnR0aSBLb2l2aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKICAqICAgICAgICAgICAoQykgMjAwMCBE
aXJrIE11ZWxsZXIgKG11ZWxsZXJAa2RlLm9yZykKLSAqIENvcHlyaWdodCAoQykgMjAwMywgMjAw
NSwgMjAwNiwgMjAwNywgMjAwOCwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMTMsIDIw
MTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBA
IC0yMyw2ICsyMywxMCBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiTmluZVBp
ZWNlSW1hZ2UuaCIKKworI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgorI2luY2x1ZGUgIkxl
bmd0aEZ1bmN0aW9ucy5oIgorI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSA8d3Rm
L05ldmVyRGVzdHJveWVkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTUwLDExICs1NCwy
MDUgQEAgTmluZVBpZWNlSW1hZ2U6Ok5pbmVQaWVjZUltYWdlKFBhc3NSZWZQdAogICAgIG1fZGF0
YS5hY2Nlc3MoKS0+dmVydGljYWxSdWxlID0gdmVydGljYWxSdWxlOwogfQogCitMYXlvdXRVbml0
IE5pbmVQaWVjZUltYWdlOjpjb21wdXRlU2xpY2UoTGVuZ3RoIGxlbmd0aCwgTGF5b3V0VW5pdCB3
aWR0aCwgTGF5b3V0VW5pdCBzbGljZSwgTGF5b3V0VW5pdCBleHRlbnQpCit7CisgICAgaWYgKGxl
bmd0aC5pc1JlbGF0aXZlKCkpCisgICAgICAgIHJldHVybiBsZW5ndGgudmFsdWUoKSAqIHdpZHRo
OworICAgIGlmIChsZW5ndGguaXNBdXRvKCkpCisgICAgICAgIHJldHVybiBzbGljZTsKKyAgICBy
ZXR1cm4gdmFsdWVGb3JMZW5ndGgobGVuZ3RoLCBleHRlbnQpOworfQorCitMYXlvdXRCb3hFeHRl
bnQgTmluZVBpZWNlSW1hZ2U6OmNvbXB1dGVTbGljZXMoY29uc3QgTGF5b3V0U2l6ZSYgc2l6ZSwg
Y29uc3QgTGVuZ3RoQm94JiBsZW5ndGhzLCBpbnQgc2NhbGVGYWN0b3IpCit7CisgICAgTGF5b3V0
VW5pdCB0b3AgICAgPSBzdGQ6Om1pbjxMYXlvdXRVbml0PihzaXplLmhlaWdodCgpLCB2YWx1ZUZv
ckxlbmd0aChsZW5ndGhzLnRvcCgpLCAgICBzaXplLmhlaWdodCgpKSkgKiBzY2FsZUZhY3RvcjsK
KyAgICBMYXlvdXRVbml0IHJpZ2h0ICA9IHN0ZDo6bWluPExheW91dFVuaXQ+KHNpemUud2lkdGgo
KSwgIHZhbHVlRm9yTGVuZ3RoKGxlbmd0aHMucmlnaHQoKSwgIHNpemUud2lkdGgoKSkpICAqIHNj
YWxlRmFjdG9yOworICAgIExheW91dFVuaXQgYm90dG9tID0gc3RkOjptaW48TGF5b3V0VW5pdD4o
c2l6ZS5oZWlnaHQoKSwgdmFsdWVGb3JMZW5ndGgobGVuZ3Rocy5ib3R0b20oKSwgc2l6ZS5oZWln
aHQoKSkpICogc2NhbGVGYWN0b3I7CisgICAgTGF5b3V0VW5pdCBsZWZ0ICAgPSBzdGQ6Om1pbjxM
YXlvdXRVbml0PihzaXplLndpZHRoKCksICB2YWx1ZUZvckxlbmd0aChsZW5ndGhzLmxlZnQoKSwg
ICBzaXplLndpZHRoKCkpKSAgKiBzY2FsZUZhY3RvcjsKKyAgICByZXR1cm4gTGF5b3V0Qm94RXh0
ZW50KHRvcCwgcmlnaHQsIGJvdHRvbSwgbGVmdCk7Cit9CisKK0xheW91dEJveEV4dGVudCBOaW5l
UGllY2VJbWFnZTo6Y29tcHV0ZVNsaWNlcyhjb25zdCBMYXlvdXRTaXplJiBzaXplLCBjb25zdCBM
ZW5ndGhCb3gmIGxlbmd0aHMsIGNvbnN0IEZsb2F0Qm94RXh0ZW50JiB3aWR0aHMsIGNvbnN0IExh
eW91dEJveEV4dGVudCYgc2xpY2VzKQoreworICAgIExheW91dFVuaXQgdG9wICAgID0gY29tcHV0
ZVNsaWNlKGxlbmd0aHMudG9wKCksICAgIHdpZHRocy50b3AoKSwgICAgc2xpY2VzLnRvcCgpLCAg
ICBzaXplLmhlaWdodCgpKTsKKyAgICBMYXlvdXRVbml0IHJpZ2h0ICA9IGNvbXB1dGVTbGljZShs
ZW5ndGhzLnJpZ2h0KCksICB3aWR0aHMucmlnaHQoKSwgIHNsaWNlcy5yaWdodCgpLCAgc2l6ZS53
aWR0aCgpKTsKKyAgICBMYXlvdXRVbml0IGJvdHRvbSA9IGNvbXB1dGVTbGljZShsZW5ndGhzLmJv
dHRvbSgpLCB3aWR0aHMuYm90dG9tKCksIHNsaWNlcy5ib3R0b20oKSwgc2l6ZS5oZWlnaHQoKSk7
CisgICAgTGF5b3V0VW5pdCBsZWZ0ICAgPSBjb21wdXRlU2xpY2UobGVuZ3Rocy5sZWZ0KCksICAg
d2lkdGhzLmxlZnQoKSwgICBzbGljZXMubGVmdCgpLCAgIHNpemUud2lkdGgoKSk7CisgICAgcmV0
dXJuIExheW91dEJveEV4dGVudCh0b3AsIHJpZ2h0LCBib3R0b20sIGxlZnQpOworfQorCit2b2lk
IE5pbmVQaWVjZUltYWdlOjpzY2FsZVNsaWNlc0lmTmVlZGVkKGNvbnN0IExheW91dFNpemUmIHNp
emUsIExheW91dEJveEV4dGVudCYgc2xpY2VzLCBpbnQgc2NhbGVGYWN0b3IpCit7CisgICAgTGF5
b3V0VW5pdCB3aWR0aCAgPSBzdGQ6Om1heDxMYXlvdXRVbml0PigxIC8gc2NhbGVGYWN0b3IsIHNs
aWNlcy5sZWZ0KCkgKyBzbGljZXMucmlnaHQoKSk7CisgICAgTGF5b3V0VW5pdCBoZWlnaHQgPSBz
dGQ6Om1heDxMYXlvdXRVbml0PigxIC8gc2NhbGVGYWN0b3IsIHNsaWNlcy50b3AoKSArIHNsaWNl
cy5ib3R0b20oKSk7CisKKyAgICBmbG9hdCBzbGljZVNjYWxlRmFjdG9yID0gc3RkOjptaW4oKGZs
b2F0KXNpemUud2lkdGgoKSAvIHdpZHRoLCAoZmxvYXQpc2l6ZS5oZWlnaHQoKSAvIGhlaWdodCk7
CisKKyAgICBpZiAoc2xpY2VTY2FsZUZhY3RvciA+PSAxKQorICAgICAgICByZXR1cm47CisKKyAg
ICAvLyBBbGwgc2xpY2VzIGFyZSByZWR1Y2VkIGJ5IG11bHRpcGx5aW5nIHRoZW0gYnkgc2xpY2VT
Y2FsZUZhY3Rvci4KKyAgICBzbGljZXMudG9wKCkgICAgKj0gc2xpY2VTY2FsZUZhY3RvcjsKKyAg
ICBzbGljZXMucmlnaHQoKSAgKj0gc2xpY2VTY2FsZUZhY3RvcjsKKyAgICBzbGljZXMuYm90dG9t
KCkgKj0gc2xpY2VTY2FsZUZhY3RvcjsKKyAgICBzbGljZXMubGVmdCgpICAgKj0gc2xpY2VTY2Fs
ZUZhY3RvcjsKK30KKworYm9vbCBOaW5lUGllY2VJbWFnZTo6aXNFbXB0eVBpZWNlUmVjdChJbWFn
ZVBpZWNlIHBpZWNlLCBjb25zdCBMYXlvdXRCb3hFeHRlbnQmIHNsaWNlcykKK3sKKyAgICBpZiAo
cGllY2UgPT0gTWlkZGxlUGllY2UpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIFBoeXNp
Y2FsQm94U2lkZSBob3Jpem9udGFsU2lkZSA9IGltYWdlUGllY2VIb3Jpem9udGFsU2lkZShwaWVj
ZSk7CisgICAgUGh5c2ljYWxCb3hTaWRlIHZlcnRpY2FsU2lkZSA9IGltYWdlUGllY2VWZXJ0aWNh
bFNpZGUocGllY2UpOworICAgIHJldHVybiAhKChob3Jpem9udGFsU2lkZSA9PSBOaWxTaWRlIHx8
IHNsaWNlcy5hdChob3Jpem9udGFsU2lkZSkpICYmICh2ZXJ0aWNhbFNpZGUgPT0gTmlsU2lkZSB8
fCBzbGljZXMuYXQodmVydGljYWxTaWRlKSkpOworfQorCitib29sIE5pbmVQaWVjZUltYWdlOjpp
c0VtcHR5UGllY2VSZWN0KEltYWdlUGllY2UgcGllY2UsIGNvbnN0IFZlY3RvcjxGbG9hdFJlY3Q+
JiBkZXN0aW5hdGlvblJlY3RzLCBjb25zdCBWZWN0b3I8RmxvYXRSZWN0PiYgc291cmNlUmVjdHMp
Cit7CisgICAgcmV0dXJuIGRlc3RpbmF0aW9uUmVjdHNbcGllY2VdLmlzRW1wdHkoKSB8fCBzb3Vy
Y2VSZWN0c1twaWVjZV0uaXNFbXB0eSgpOworfQorCitWZWN0b3I8RmxvYXRSZWN0PiBOaW5lUGll
Y2VJbWFnZTo6Y29tcHV0ZUludHJpbnNpY1JlY3RzKGNvbnN0IEZsb2F0UmVjdCYgb3V0ZXIsIGNv
bnN0IExheW91dEJveEV4dGVudCYgc2xpY2VzLCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcikKK3sK
KyAgICBGbG9hdFJlY3QgaW5uZXIgPSBvdXRlcjsKKyAgICBpbm5lci5tb3ZlKHNsaWNlcy5sZWZ0
KCksIHNsaWNlcy50b3AoKSk7CisgICAgaW5uZXIuY29udHJhY3Qoc2xpY2VzLmxlZnQoKSArIHNs
aWNlcy5yaWdodCgpLCBzbGljZXMudG9wKCkgKyBzbGljZXMuYm90dG9tKCkpOworICAgIEFTU0VS
VChvdXRlci5jb250YWlucyhpbm5lcikpOworCisgICAgVmVjdG9yPEZsb2F0UmVjdD4gcmVjdHMo
TWF4UGllY2UpOworCisgICAgcmVjdHNbVG9wTGVmdFBpZWNlXSAgICAgPSBzbmFwUmVjdFRvRGV2
aWNlUGl4ZWxzKG91dGVyLngoKSwgICAgb3V0ZXIueSgpLCAgICBzbGljZXMubGVmdCgpLCAgc2xp
Y2VzLnRvcCgpLCAgICBkZXZpY2VTY2FsZUZhY3Rvcik7CisgICAgcmVjdHNbQm90dG9tTGVmdFBp
ZWNlXSAgPSBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKG91dGVyLngoKSwgICAgaW5uZXIubWF4WSgp
LCBzbGljZXMubGVmdCgpLCAgc2xpY2VzLmJvdHRvbSgpLCBkZXZpY2VTY2FsZUZhY3Rvcik7Cisg
ICAgcmVjdHNbTGVmdFBpZWNlXSAgICAgICAgPSBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKG91dGVy
LngoKSwgICAgaW5uZXIueSgpLCAgICBzbGljZXMubGVmdCgpLCAgaW5uZXIuaGVpZ2h0KCksICBk
ZXZpY2VTY2FsZUZhY3Rvcik7CisKKyAgICByZWN0c1tUb3BSaWdodFBpZWNlXSAgICA9IHNuYXBS
ZWN0VG9EZXZpY2VQaXhlbHMoaW5uZXIubWF4WCgpLCBvdXRlci55KCksICAgIHNsaWNlcy5yaWdo
dCgpLCBzbGljZXMudG9wKCksICAgIGRldmljZVNjYWxlRmFjdG9yKTsKKyAgICByZWN0c1tCb3R0
b21SaWdodFBpZWNlXSA9IHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMoaW5uZXIubWF4WCgpLCBpbm5l
ci5tYXhZKCksIHNsaWNlcy5yaWdodCgpLCBzbGljZXMuYm90dG9tKCksIGRldmljZVNjYWxlRmFj
dG9yKTsKKyAgICByZWN0c1tSaWdodFBpZWNlXSAgICAgICA9IHNuYXBSZWN0VG9EZXZpY2VQaXhl
bHMoaW5uZXIubWF4WCgpLCBpbm5lci55KCksICAgIHNsaWNlcy5yaWdodCgpLCBpbm5lci5oZWln
aHQoKSwgIGRldmljZVNjYWxlRmFjdG9yKTsKKworICAgIHJlY3RzW1RvcFBpZWNlXSAgICAgICAg
ID0gc25hcFJlY3RUb0RldmljZVBpeGVscyhpbm5lci54KCksICAgIG91dGVyLnkoKSwgICAgaW5u
ZXIud2lkdGgoKSwgIHNsaWNlcy50b3AoKSwgICAgZGV2aWNlU2NhbGVGYWN0b3IpOworICAgIHJl
Y3RzW0JvdHRvbVBpZWNlXSAgICAgID0gc25hcFJlY3RUb0RldmljZVBpeGVscyhpbm5lci54KCks
ICAgIGlubmVyLm1heFkoKSwgaW5uZXIud2lkdGgoKSwgIHNsaWNlcy5ib3R0b20oKSwgZGV2aWNl
U2NhbGVGYWN0b3IpOworCisgICAgcmVjdHNbTWlkZGxlUGllY2VdICAgICAgPSBzbmFwUmVjdFRv
RGV2aWNlUGl4ZWxzKGlubmVyLngoKSwgICAgaW5uZXIueSgpLCAgICBpbm5lci53aWR0aCgpLCAg
aW5uZXIuaGVpZ2h0KCksICBkZXZpY2VTY2FsZUZhY3Rvcik7CisgICAgcmV0dXJuIHJlY3RzOwor
fQorCitWZWN0b3I8RmxvYXRSZWN0PiBOaW5lUGllY2VJbWFnZTo6Y29tcHV0ZU5vbkludHJpbnNp
Y1JlY3RzKGNvbnN0IFZlY3RvcjxGbG9hdFJlY3Q+JiBpbnRyaW5zaWNSZWN0cywgY29uc3QgTGF5
b3V0Qm94RXh0ZW50JiBzbGljZXMpCit7CisgICAgVmVjdG9yPEZsb2F0UmVjdD4gcmVjdHMoTWF4
UGllY2UpOworCisgICAgZm9yIChJbWFnZVBpZWNlIHBpZWNlID0gTWluUGllY2U7IHBpZWNlIDwg
TWF4UGllY2U7ICsrcGllY2UpIHsKKyAgICAgICAgaWYgKGlzRW1wdHlQaWVjZVJlY3QocGllY2Us
IHNsaWNlcykpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgcmVjdHNbcGllY2VdID0g
RmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgaW50cmluc2ljUmVjdHNbcGllY2VdLnNpemUoKSk7Cisg
ICAgfQorCisgICAgcmV0dXJuIHJlY3RzOworfQorCitGbG9hdFNpemUgTmluZVBpZWNlSW1hZ2U6
OmNvbXB1dGVJbnRyaW5zaWNTaWRlVGlsZVNjYWxlKEltYWdlUGllY2UgcGllY2UsIGNvbnN0IFZl
Y3RvcjxGbG9hdFJlY3Q+JiBkZXN0aW5hdGlvblJlY3RzLCBjb25zdCBWZWN0b3I8RmxvYXRSZWN0
PiYgc291cmNlUmVjdHMpCit7CisgICAgQVNTRVJUKCFpc0Nvcm5lclBpZWNlKHBpZWNlKSAmJiAh
aXNNaWRkbGVQaWVjZShwaWVjZSkpOworICAgIGlmIChpc0VtcHR5UGllY2VSZWN0KHBpZWNlLCBk
ZXN0aW5hdGlvblJlY3RzLCBzb3VyY2VSZWN0cykpCisgICAgICAgIHJldHVybiBGbG9hdFNpemUo
MSwgMSk7CisKKyAgICBmbG9hdCBzY2FsZTsKKyAgICBpZiAoaXNWZXJ0aWNhbFBpZWNlKHBpZWNl
KSkKKyAgICAgICAgc2NhbGUgPSBkZXN0aW5hdGlvblJlY3RzW3BpZWNlXS5oZWlnaHQoKSAvIHNv
dXJjZVJlY3RzW3BpZWNlXS5oZWlnaHQoKTsKKyAgICBlbHNlCisgICAgICAgIHNjYWxlID0gZGVz
dGluYXRpb25SZWN0c1twaWVjZV0ud2lkdGgoKSAvIHNvdXJjZVJlY3RzW3BpZWNlXS53aWR0aCgp
OworCisgICAgcmV0dXJuIEZsb2F0U2l6ZShzY2FsZSwgc2NhbGUpOworfQorCitGbG9hdFNpemUg
TmluZVBpZWNlSW1hZ2U6OmNvbXB1dGVJbnRyaW5zaWNNaWRkbGVUaWxlU2NhbGUoY29uc3QgVmVj
dG9yPEZsb2F0U2l6ZT4mIHNjYWxlcywgY29uc3QgVmVjdG9yPEZsb2F0UmVjdD4mIGRlc3RpbmF0
aW9uUmVjdHMsIGNvbnN0IFZlY3RvcjxGbG9hdFJlY3Q+JiBzb3VyY2VSZWN0cywgRU5pbmVQaWVj
ZUltYWdlUnVsZSBoUnVsZSwgRU5pbmVQaWVjZUltYWdlUnVsZSB2UnVsZSkKK3sKKyAgICBGbG9h
dFNpemUgc2NhbGUoMSwgMSk7CisgICAgaWYgKGlzRW1wdHlQaWVjZVJlY3QoTWlkZGxlUGllY2Us
IGRlc3RpbmF0aW9uUmVjdHMsIHNvdXJjZVJlY3RzKSkKKyAgICAgICAgcmV0dXJuIHNjYWxlOwor
CisgICAgLy8gVW5saWtlIHRoZSBzaWRlIHBpZWNlcywgdGhlIG1pZGRsZSBwaWVjZSBjYW4gaGF2
ZSAic3RyZXRjaCIgc3BlY2lmaWVkIGluIG9uZSBheGlzIGJ1dCBub3QgdGhlIG90aGVyLgorICAg
IC8vIEluIGZhY3QgdGhlIHNpZGUgcGllY2VzIGRvbid0IGV2ZW4gdXNlIHRoZSBzY2FsZSBmYWN0
b3IgdW5sZXNzIHRoZXkgaGF2ZSBhIHJ1bGUgb3RoZXIgdGhhbiAic3RyZXRjaCIuCisgICAgaWYg
KGhSdWxlID09IFN0cmV0Y2hJbWFnZVJ1bGUpCisgICAgICAgIHNjYWxlLnNldFdpZHRoKGRlc3Rp
bmF0aW9uUmVjdHNbTWlkZGxlUGllY2VdLndpZHRoKCkgLyBzb3VyY2VSZWN0c1tNaWRkbGVQaWVj
ZV0ud2lkdGgoKSk7CisgICAgZWxzZSBpZiAoIWlzRW1wdHlQaWVjZVJlY3QoVG9wUGllY2UsIGRl
c3RpbmF0aW9uUmVjdHMsIHNvdXJjZVJlY3RzKSkKKyAgICAgICAgc2NhbGUuc2V0V2lkdGgoc2Nh
bGVzW1RvcFBpZWNlXS53aWR0aCgpKTsKKyAgICBlbHNlIGlmICghaXNFbXB0eVBpZWNlUmVjdChC
b3R0b21QaWVjZSwgZGVzdGluYXRpb25SZWN0cywgc291cmNlUmVjdHMpKQorICAgICAgICBzY2Fs
ZS5zZXRXaWR0aChzY2FsZXNbQm90dG9tUGllY2VdLndpZHRoKCkpOworCisgICAgaWYgKHZSdWxl
ID09IFN0cmV0Y2hJbWFnZVJ1bGUpCisgICAgICAgIHNjYWxlLnNldEhlaWdodChkZXN0aW5hdGlv
blJlY3RzW01pZGRsZVBpZWNlXS5oZWlnaHQoKSAvIHNvdXJjZVJlY3RzW01pZGRsZVBpZWNlXS5o
ZWlnaHQoKSk7CisgICAgZWxzZSBpZiAoIWlzRW1wdHlQaWVjZVJlY3QoTGVmdFBpZWNlLCBkZXN0
aW5hdGlvblJlY3RzLCBzb3VyY2VSZWN0cykpCisgICAgICAgIHNjYWxlLnNldEhlaWdodChzY2Fs
ZXNbTGVmdFBpZWNlXS5oZWlnaHQoKSk7CisgICAgZWxzZSBpZiAoIWlzRW1wdHlQaWVjZVJlY3Qo
UmlnaHRQaWVjZSwgZGVzdGluYXRpb25SZWN0cywgc291cmNlUmVjdHMpKQorICAgICAgICBzY2Fs
ZS5zZXRIZWlnaHQoc2NhbGVzW1JpZ2h0UGllY2VdLmhlaWdodCgpKTsKKworICAgIHJldHVybiBz
Y2FsZTsKK30KKworVmVjdG9yPEZsb2F0U2l6ZT4gTmluZVBpZWNlSW1hZ2U6OmNvbXB1dGVJbnRy
aW5zaWNUaWxlU2NhbGVzKGNvbnN0IFZlY3RvcjxGbG9hdFJlY3Q+JiBkZXN0aW5hdGlvblJlY3Rz
LCBjb25zdCBWZWN0b3I8RmxvYXRSZWN0PiYgc291cmNlUmVjdHMsIEVOaW5lUGllY2VJbWFnZVJ1
bGUgaFJ1bGUsIEVOaW5lUGllY2VJbWFnZVJ1bGUgdlJ1bGUpCit7CisgICAgVmVjdG9yPEZsb2F0
U2l6ZT4gc2NhbGVzKE1heFBpZWNlLCBGbG9hdFNpemUoMSwgMSkpOworCisgICAgc2NhbGVzW1Rv
cFBpZWNlXSAgICA9IGNvbXB1dGVJbnRyaW5zaWNTaWRlVGlsZVNjYWxlKFRvcFBpZWNlLCAgICBk
ZXN0aW5hdGlvblJlY3RzLCBzb3VyY2VSZWN0cyk7CisgICAgc2NhbGVzW1JpZ2h0UGllY2VdICA9
IGNvbXB1dGVJbnRyaW5zaWNTaWRlVGlsZVNjYWxlKFJpZ2h0UGllY2UsICBkZXN0aW5hdGlvblJl
Y3RzLCBzb3VyY2VSZWN0cyk7CisgICAgc2NhbGVzW0JvdHRvbVBpZWNlXSA9IGNvbXB1dGVJbnRy
aW5zaWNTaWRlVGlsZVNjYWxlKEJvdHRvbVBpZWNlLCBkZXN0aW5hdGlvblJlY3RzLCBzb3VyY2VS
ZWN0cyk7CisgICAgc2NhbGVzW0xlZnRQaWVjZV0gICA9IGNvbXB1dGVJbnRyaW5zaWNTaWRlVGls
ZVNjYWxlKExlZnRQaWVjZSwgICBkZXN0aW5hdGlvblJlY3RzLCBzb3VyY2VSZWN0cyk7CisKKyAg
ICBzY2FsZXNbTWlkZGxlUGllY2VdID0gY29tcHV0ZUludHJpbnNpY01pZGRsZVRpbGVTY2FsZShz
Y2FsZXMsIGRlc3RpbmF0aW9uUmVjdHMsIHNvdXJjZVJlY3RzLCBoUnVsZSwgdlJ1bGUpOworICAg
IHJldHVybiBzY2FsZXM7Cit9CisKK1ZlY3RvcjxGbG9hdFNpemU+IE5pbmVQaWVjZUltYWdlOjpj
b21wdXRlTm9uSW50cmluc2ljVGlsZVNjYWxlcygpCit7CisgICAgcmV0dXJuIFZlY3RvcjxGbG9h
dFNpemU+KE1heFBpZWNlLCBGbG9hdFNpemUoMSwgMSkpOworfQorCit2b2lkIE5pbmVQaWVjZUlt
YWdlOjpwYWludChHcmFwaGljc0NvbnRleHQqIGdyYXBoaWNzQ29udGV4dCwgUmVuZGVyRWxlbWVu
dCogcmVuZGVyZXIsIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgY29uc3QgTGF5b3V0UmVjdCYg
ZGVzdGluYXRpb24sIGNvbnN0IExheW91dFNpemUmIHNvdXJjZSwgIGJvb2wgaW50cmluc2ljU291
cmNlLCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvciwgQ29tcG9zaXRlT3BlcmF0b3Igb3ApIGNvbnN0
Cit7CisgICAgU3R5bGVJbWFnZSogc3R5bGVJbWFnZSA9IGltYWdlKCk7CisgICAgQVNTRVJUKHN0
eWxlSW1hZ2UgJiYgc3R5bGVJbWFnZS0+aXNMb2FkZWQoKSk7CisKKyAgICBMYXlvdXRCb3hFeHRl
bnQgc291cmNlU2xpY2VzID0gY29tcHV0ZVNsaWNlcyhzb3VyY2UsIGltYWdlU2xpY2VzKCksIHN0
eWxlSW1hZ2UtPmltYWdlU2NhbGVGYWN0b3IoKSk7CisgICAgTGF5b3V0Qm94RXh0ZW50IGRlc3Rp
bmF0aW9uU2xpY2VzID0gY29tcHV0ZVNsaWNlcyhkZXN0aW5hdGlvbi5zaXplKCksIGJvcmRlclNs
aWNlcygpLCBzdHlsZS5ib3JkZXJXaWR0aCgpLCBzb3VyY2VTbGljZXMpOworCisgICAgc2NhbGVT
bGljZXNJZk5lZWRlZChkZXN0aW5hdGlvbi5zaXplKCksIGRlc3RpbmF0aW9uU2xpY2VzLCBkZXZp
Y2VTY2FsZUZhY3Rvcik7CisKKyAgICBWZWN0b3I8RmxvYXRSZWN0PiBkZXN0aW5hdGlvblJlY3Rz
ID0gY29tcHV0ZUludHJpbnNpY1JlY3RzKGRlc3RpbmF0aW9uLCBkZXN0aW5hdGlvblNsaWNlcywg
ZGV2aWNlU2NhbGVGYWN0b3IpOworICAgIFZlY3RvcjxGbG9hdFJlY3Q+IHNvdXJjZVJlY3RzOwor
ICAgIFZlY3RvcjxGbG9hdFNpemU+IHRpbGVTY2FsZXM7CisKKyAgICBpZiAoaW50cmluc2ljU291
cmNlKSB7CisgICAgICAgIHNvdXJjZVJlY3RzID0gY29tcHV0ZUludHJpbnNpY1JlY3RzKEZsb2F0
UmVjdChGbG9hdFBvaW50KCksIHNvdXJjZSksIHNvdXJjZVNsaWNlcywgZGV2aWNlU2NhbGVGYWN0
b3IpOworICAgICAgICB0aWxlU2NhbGVzID0gY29tcHV0ZUludHJpbnNpY1RpbGVTY2FsZXMoZGVz
dGluYXRpb25SZWN0cywgc291cmNlUmVjdHMsIGhvcml6b250YWxSdWxlKCksIHZlcnRpY2FsUnVs
ZSgpKTsKKyAgICB9IGVsc2UgeworICAgICAgICBzb3VyY2VSZWN0cyA9IGNvbXB1dGVOb25JbnRy
aW5zaWNSZWN0cyhkZXN0aW5hdGlvblJlY3RzLCBzb3VyY2VTbGljZXMpOworICAgICAgICB0aWxl
U2NhbGVzID0gY29tcHV0ZU5vbkludHJpbnNpY1RpbGVTY2FsZXMoKTsKKyAgICB9CisKKyAgICBS
ZWZQdHI8SW1hZ2U+IGltYWdlID0gc3R5bGVJbWFnZS0+aW1hZ2UocmVuZGVyZXIsIHNvdXJjZSk7
CisgICAgQ29sb3JTcGFjZSBjb2xvclNwYWNlID0gc3R5bGUuY29sb3JTcGFjZSgpOworCisgICAg
Zm9yIChJbWFnZVBpZWNlIHBpZWNlID0gTWluUGllY2U7IHBpZWNlIDwgTWF4UGllY2U7ICsrcGll
Y2UpIHsKKyAgICAgICAgaWYgKChwaWVjZSA9PSBNaWRkbGVQaWVjZSAmJiAhZmlsbCgpKSB8fCBp
c0VtcHR5UGllY2VSZWN0KHBpZWNlLCBkZXN0aW5hdGlvblJlY3RzLCBzb3VyY2VSZWN0cykpCisg
ICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBpZiAoaXNDb3JuZXJQaWVjZShwaWVjZSkp
IHsKKyAgICAgICAgICAgIGdyYXBoaWNzQ29udGV4dC0+ZHJhd0ltYWdlKGltYWdlLmdldCgpLCBj
b2xvclNwYWNlLCBkZXN0aW5hdGlvblJlY3RzW3BpZWNlXSwgc291cmNlUmVjdHNbcGllY2VdLCBv
cCk7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorCisgICAgICAgIEltYWdlOjpU
aWxlUnVsZSBoUnVsZSA9IGlzSG9yaXpvbnRhbFBpZWNlKHBpZWNlKSA/IHN0YXRpY19jYXN0PElt
YWdlOjpUaWxlUnVsZT4oaG9yaXpvbnRhbFJ1bGUoKSkgOiBJbWFnZTo6U3RyZXRjaFRpbGU7Cisg
ICAgICAgIEltYWdlOjpUaWxlUnVsZSB2UnVsZSA9IGlzVmVydGljYWxQaWVjZShwaWVjZSkgPyBz
dGF0aWNfY2FzdDxJbWFnZTo6VGlsZVJ1bGU+KHZlcnRpY2FsUnVsZSgpKSA6IEltYWdlOjpTdHJl
dGNoVGlsZTsKKyAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5kcmF3VGlsZWRJbWFnZShpbWFnZS5n
ZXQoKSwgY29sb3JTcGFjZSwgZGVzdGluYXRpb25SZWN0c1twaWVjZV0sIHNvdXJjZVJlY3RzW3Bp
ZWNlXSwgdGlsZVNjYWxlc1twaWVjZV0sIGhSdWxlLCB2UnVsZSwgb3ApOworICAgIH0KK30KKwog
TmluZVBpZWNlSW1hZ2VEYXRhOjpOaW5lUGllY2VJbWFnZURhdGEoKQogICAgIDogZmlsbChmYWxz
ZSkKICAgICAsIGhvcml6b250YWxSdWxlKFN0cmV0Y2hJbWFnZVJ1bGUpCiAgICAgLCB2ZXJ0aWNh
bFJ1bGUoU3RyZXRjaEltYWdlUnVsZSkKLSAgICAsIGltYWdlKDApCisgICAgLCBpbWFnZShudWxs
cHRyKQogICAgICwgaW1hZ2VTbGljZXMoTGVuZ3RoKDEwMCwgUGVyY2VudCksIExlbmd0aCgxMDAs
IFBlcmNlbnQpLCBMZW5ndGgoMTAwLCBQZXJjZW50KSwgTGVuZ3RoKDEwMCwgUGVyY2VudCkpCiAg
ICAgLCBib3JkZXJTbGljZXMoTGVuZ3RoKDEsIFJlbGF0aXZlKSwgTGVuZ3RoKDEsIFJlbGF0aXZl
KSwgTGVuZ3RoKDEsIFJlbGF0aXZlKSwgTGVuZ3RoKDEsIFJlbGF0aXZlKSkKICAgICAsIG91dHNl
dCgwKQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL05pbmVQaWVjZUltYWdl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL05pbmVQaWVj
ZUltYWdlLmgJKHJldmlzaW9uIDE4NDY1NSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9OaW5lUGllY2VJbWFnZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yLDcgKzIsNyBAQAogICog
Q29weXJpZ2h0IChDKSAyMDAwIExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCiAgKiAgICAgICAg
ICAgKEMpIDIwMDAgQW50dGkgS29pdmlzdG8gKGtvaXZpc3RvQGtkZS5vcmcpCiAgKiAgICAgICAg
ICAgKEMpIDIwMDAgRGlyayBNdWVsbGVyIChtdWVsbGVyQGtkZS5vcmcpCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMDMsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA1LCAyMDA2LCAyMDA3LCAy
MDA4LCAyMDEzLCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYwpAQCAtMjUsOSArMjUsMTIgQEAKICNkZWZpbmUgTmluZVBpZWNlSW1hZ2VfaAog
CiAjaW5jbHVkZSAiRGF0YVJlZi5oIgorI2luY2x1ZGUgIkxheW91dFJlY3QuaCIKKyNpbmNsdWRl
ICJMYXlvdXRTaXplLmgiCiAjaW5jbHVkZSAiTGF5b3V0VW5pdC5oIgogI2luY2x1ZGUgIkxlbmd0
aEJveC5oIgogI2luY2x1ZGUgIlN0eWxlSW1hZ2UuaCIKKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzUsNiArMzgsNzAgQEAgZW51bSBFTmluZVBp
ZWNlSW1hZ2VSdWxlIHsKICAgICBTdHJldGNoSW1hZ2VSdWxlLCBSb3VuZEltYWdlUnVsZSwgU3Bh
Y2VJbWFnZVJ1bGUsIFJlcGVhdEltYWdlUnVsZQogfTsKIAorZW51bSBJbWFnZVBpZWNlIHsKKyAg
ICBNaW5QaWVjZSA9IDAsCisgICAgVG9wTGVmdFBpZWNlID0gTWluUGllY2UsCisgICAgTGVmdFBp
ZWNlLAorICAgIEJvdHRvbUxlZnRQaWVjZSwKKyAgICBUb3BSaWdodFBpZWNlLAorICAgIFJpZ2h0
UGllY2UsCisgICAgQm90dG9tUmlnaHRQaWVjZSwKKyAgICBUb3BQaWVjZSwKKyAgICBCb3R0b21Q
aWVjZSwKKyAgICBNaWRkbGVQaWVjZSwKKyAgICBNYXhQaWVjZQorfTsKKworaW5saW5lIEltYWdl
UGllY2UmIG9wZXJhdG9yKysoSW1hZ2VQaWVjZSYgcGllY2UpCit7CisgICAgcGllY2UgPSBzdGF0
aWNfY2FzdDxJbWFnZVBpZWNlPihzdGF0aWNfY2FzdDxpbnQ+KHBpZWNlKSArIDEpOworICAgIHJl
dHVybiBwaWVjZTsKK30KKworaW5saW5lIGJvb2wgaXNDb3JuZXJQaWVjZShJbWFnZVBpZWNlIHBp
ZWNlKQoreworICAgIHJldHVybiBwaWVjZSA9PSBUb3BMZWZ0UGllY2UgfHwgcGllY2UgPT0gVG9w
UmlnaHRQaWVjZSB8fCBwaWVjZSA9PSBCb3R0b21MZWZ0UGllY2UgfHwgcGllY2UgPT0gQm90dG9t
UmlnaHRQaWVjZTsKK30KKworaW5saW5lIGJvb2wgaXNNaWRkbGVQaWVjZShJbWFnZVBpZWNlIHBp
ZWNlKQoreworICAgIHJldHVybiBwaWVjZSA9PSBNaWRkbGVQaWVjZTsKK30KKworaW5saW5lIGJv
b2wgaXNIb3Jpem9udGFsUGllY2UoSW1hZ2VQaWVjZSBwaWVjZSkKK3sKKyAgICByZXR1cm4gcGll
Y2UgPT0gVG9wUGllY2UgfHwgcGllY2UgPT0gQm90dG9tUGllY2UgfHwgcGllY2UgPT0gTWlkZGxl
UGllY2U7Cit9CisKK2lubGluZSBib29sIGlzVmVydGljYWxQaWVjZShJbWFnZVBpZWNlIHBpZWNl
KQoreworICAgIHJldHVybiBwaWVjZSA9PSBMZWZ0UGllY2UgfHwgcGllY2UgPT0gUmlnaHRQaWVj
ZSB8fCBwaWVjZSA9PSBNaWRkbGVQaWVjZTsKK30KKworaW5saW5lIFBoeXNpY2FsQm94U2lkZSBp
bWFnZVBpZWNlSG9yaXpvbnRhbFNpZGUoSW1hZ2VQaWVjZSBwaWVjZSkKK3sKKyAgICBpZiAocGll
Y2UgPT0gVG9wTGVmdFBpZWNlIHx8IHBpZWNlID09IFRvcFBpZWNlIHx8IHBpZWNlID09IFRvcFJp
Z2h0UGllY2UpCisgICAgICAgIHJldHVybiBUb3BTaWRlOworCisgICAgaWYgKHBpZWNlID09IEJv
dHRvbUxlZnRQaWVjZSB8fCBwaWVjZSA9PSBCb3R0b21QaWVjZSB8fCBwaWVjZSA9PSBCb3R0b21S
aWdodFBpZWNlKQorICAgICAgICByZXR1cm4gQm90dG9tU2lkZTsKKworICAgIHJldHVybiBOaWxT
aWRlOworfQorCitpbmxpbmUgUGh5c2ljYWxCb3hTaWRlIGltYWdlUGllY2VWZXJ0aWNhbFNpZGUo
SW1hZ2VQaWVjZSBwaWVjZSkKK3sKKyAgICBpZiAocGllY2UgPT0gVG9wTGVmdFBpZWNlIHx8IHBp
ZWNlID09IExlZnRQaWVjZSB8fCBwaWVjZSA9PSBCb3R0b21MZWZ0UGllY2UpCisgICAgICAgIHJl
dHVybiBMZWZ0U2lkZTsKKworICAgIGlmIChwaWVjZSA9PSBUb3BSaWdodFBpZWNlIHx8IHBpZWNl
ID09IFJpZ2h0UGllY2UgfHwgcGllY2UgPT0gQm90dG9tUmlnaHRQaWVjZSkKKyAgICAgICAgcmV0
dXJuIFJpZ2h0U2lkZTsKKworICAgIHJldHVybiBOaWxTaWRlOworfQorCitjbGFzcyBSZW5kZXJT
dHlsZTsKKwogY2xhc3MgTmluZVBpZWNlSW1hZ2VEYXRhIDogcHVibGljIFJlZkNvdW50ZWQ8Tmlu
ZVBpZWNlSW1hZ2VEYXRhPiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxOaW5lUGllY2VJbWFn
ZURhdGE+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTmluZVBpZWNlSW1hZ2VEYXRh
KTsgfQpAQCAtMTIyLDYgKzE4OSwyNSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBvdXRzZXRT
aWRlLnZhbHVlKCk7CiAgICAgfQogCisgICAgc3RhdGljIExheW91dFVuaXQgY29tcHV0ZVNsaWNl
KExlbmd0aCwgTGF5b3V0VW5pdCB3aWR0aCwgTGF5b3V0VW5pdCBzbGljZSwgTGF5b3V0VW5pdCBl
eHRlbnQpOworICAgIHN0YXRpYyBMYXlvdXRCb3hFeHRlbnQgY29tcHV0ZVNsaWNlcyhjb25zdCBM
YXlvdXRTaXplJiwgY29uc3QgTGVuZ3RoQm94JiBsZW5ndGhzLCBpbnQgc2NhbGVGYWN0b3IpOwor
ICAgIHN0YXRpYyBMYXlvdXRCb3hFeHRlbnQgY29tcHV0ZVNsaWNlcyhjb25zdCBMYXlvdXRTaXpl
JiwgY29uc3QgTGVuZ3RoQm94JiBsZW5ndGhzLCBjb25zdCBGbG9hdEJveEV4dGVudCYgd2lkdGhz
LCBjb25zdCBMYXlvdXRCb3hFeHRlbnQmIHNsaWNlcyk7CisKKyAgICBzdGF0aWMgYm9vbCBpc0Vt
cHR5UGllY2VSZWN0KEltYWdlUGllY2UsIGNvbnN0IExheW91dEJveEV4dGVudCYgc2xpY2VzKTsK
KyAgICBzdGF0aWMgYm9vbCBpc0VtcHR5UGllY2VSZWN0KEltYWdlUGllY2UsIGNvbnN0IFZlY3Rv
cjxGbG9hdFJlY3Q+JiBkZXN0aW5hdGlvblJlY3RzLCBjb25zdCBWZWN0b3I8RmxvYXRSZWN0PiYg
c291cmNlUmVjdHMpOworCisgICAgc3RhdGljIFZlY3RvcjxGbG9hdFJlY3Q+IGNvbXB1dGVJbnRy
aW5zaWNSZWN0cyhjb25zdCBGbG9hdFJlY3QmIG91dGVyLCBjb25zdCBMYXlvdXRCb3hFeHRlbnQm
IHNsaWNlcywgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpOworICAgIHN0YXRpYyBWZWN0b3I8Rmxv
YXRSZWN0PiBjb21wdXRlTm9uSW50cmluc2ljUmVjdHMoY29uc3QgVmVjdG9yPEZsb2F0UmVjdD4m
IGludHJpbnNpY1JlY3RzLCBjb25zdCBMYXlvdXRCb3hFeHRlbnQmIHNsaWNlcyk7CisKKyAgICBz
dGF0aWMgdm9pZCBzY2FsZVNsaWNlc0lmTmVlZGVkKGNvbnN0IExheW91dFNpemUmLCBMYXlvdXRC
b3hFeHRlbnQmIHNsaWNlcywgaW50IHNjYWxlRmFjdG9yKTsKKworICAgIHN0YXRpYyBGbG9hdFNp
emUgY29tcHV0ZUludHJpbnNpY1NpZGVUaWxlU2NhbGUoSW1hZ2VQaWVjZSwgY29uc3QgVmVjdG9y
PEZsb2F0UmVjdD4mIGRlc3RpbmF0aW9uUmVjdHMsIGNvbnN0IFZlY3RvcjxGbG9hdFJlY3Q+JiBz
b3VyY2VSZWN0cyk7CisgICAgc3RhdGljIEZsb2F0U2l6ZSBjb21wdXRlSW50cmluc2ljTWlkZGxl
VGlsZVNjYWxlKGNvbnN0IFZlY3RvcjxGbG9hdFNpemU+JiBzY2FsZXMsIGNvbnN0IFZlY3RvcjxG
bG9hdFJlY3Q+JiBkZXN0aW5hdGlvblJlY3RzLCBjb25zdCBWZWN0b3I8RmxvYXRSZWN0PiYgc291
cmNlUmVjdHMsIEVOaW5lUGllY2VJbWFnZVJ1bGUgaFJ1bGUsIEVOaW5lUGllY2VJbWFnZVJ1bGUg
dlJ1bGUpOworICAgIHN0YXRpYyBWZWN0b3I8RmxvYXRTaXplPiBjb21wdXRlSW50cmluc2ljVGls
ZVNjYWxlcyhjb25zdCBWZWN0b3I8RmxvYXRSZWN0PiYgZGVzdGluYXRpb25SZWN0cywgY29uc3Qg
VmVjdG9yPEZsb2F0UmVjdD4mIHNvdXJjZVJlY3RzLCBFTmluZVBpZWNlSW1hZ2VSdWxlIGhSdWxl
LCBFTmluZVBpZWNlSW1hZ2VSdWxlIHZSdWxlKTsKKyAgICBzdGF0aWMgVmVjdG9yPEZsb2F0U2l6
ZT4gY29tcHV0ZU5vbkludHJpbnNpY1RpbGVTY2FsZXMoKTsKKworICAgIHZvaWQgcGFpbnQoR3Jh
cGhpY3NDb250ZXh0KiwgUmVuZGVyRWxlbWVudCosIGNvbnN0IFJlbmRlclN0eWxlJiwgY29uc3Qg
TGF5b3V0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IExheW91dFNpemUmIHNvdXJjZSwgYm9vbCBp
bnRyaW5zaWNTb3VyY2UsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yLCBDb21wb3NpdGVPcGVyYXRv
cikgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgRGF0YVJlZjxOaW5lUGllY2VJbWFnZURhdGE+IG1f
ZGF0YTsKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5
bGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5jcHAJKHJldmlzaW9uIDE4NDY1NSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkyMSwxMCArOTIxLDEw
IEBAIHZvaWQgUmVuZGVyU3R5bGU6OnNldE1hc2tJbWFnZShjb25zdCBWZWMKIHZvaWQgUmVuZGVy
U3R5bGU6OnNldENsaXAoTGVuZ3RoIHRvcCwgTGVuZ3RoIHJpZ2h0LCBMZW5ndGggYm90dG9tLCBM
ZW5ndGggbGVmdCkKIHsKICAgICBTdHlsZVZpc3VhbERhdGEqIGRhdGEgPSB2aXN1YWwuYWNjZXNz
KCk7Ci0gICAgZGF0YS0+Y2xpcC5tX3RvcCA9IHRvcDsKLSAgICBkYXRhLT5jbGlwLm1fcmlnaHQg
PSByaWdodDsKLSAgICBkYXRhLT5jbGlwLm1fYm90dG9tID0gYm90dG9tOwotICAgIGRhdGEtPmNs
aXAubV9sZWZ0ID0gbGVmdDsKKyAgICBkYXRhLT5jbGlwLnRvcCgpID0gdG9wOworICAgIGRhdGEt
PmNsaXAucmlnaHQoKSA9IHJpZ2h0OworICAgIGRhdGEtPmNsaXAuYm90dG9tKCkgPSBib3R0b207
CisgICAgZGF0YS0+Y2xpcC5sZWZ0KCkgPSBsZWZ0OwogfQogCiB2b2lkIFJlbmRlclN0eWxlOjph
ZGRDdXJzb3IoUGFzc1JlZlB0cjxTdHlsZUltYWdlPiBpbWFnZSwgY29uc3QgSW50UG9pbnQmIGhv
dFNwb3QpCkBAIC0xMzA5LDEwICsxMzA5LDEwIEBAIGNvbnN0IFZlY3RvcjxTdHlsZURhc2hib2Fy
ZFJlZ2lvbj4mIFJlbmQKICAgICBpZiAoIW5vbmVMaXN0SW5pdGlhbGl6ZWQpIHsKICAgICAgICAg
U3R5bGVEYXNoYm9hcmRSZWdpb24gcmVnaW9uOwogICAgICAgICByZWdpb24ubGFiZWwgPSAiIjsK
LSAgICAgICAgcmVnaW9uLm9mZnNldC5tX3RvcCAgPSBMZW5ndGgoKTsKLSAgICAgICAgcmVnaW9u
Lm9mZnNldC5tX3JpZ2h0ID0gTGVuZ3RoKCk7Ci0gICAgICAgIHJlZ2lvbi5vZmZzZXQubV9ib3R0
b20gPSBMZW5ndGgoKTsKLSAgICAgICAgcmVnaW9uLm9mZnNldC5tX2xlZnQgPSBMZW5ndGgoKTsK
KyAgICAgICAgcmVnaW9uLm9mZnNldC50b3AoKSAgPSBMZW5ndGgoKTsKKyAgICAgICAgcmVnaW9u
Lm9mZnNldC5yaWdodCgpID0gTGVuZ3RoKCk7CisgICAgICAgIHJlZ2lvbi5vZmZzZXQuYm90dG9t
KCkgPSBMZW5ndGgoKTsKKyAgICAgICAgcmVnaW9uLm9mZnNldC5sZWZ0KCkgPSBMZW5ndGgoKTsK
ICAgICAgICAgcmVnaW9uLnR5cGUgPSBTdHlsZURhc2hib2FyZFJlZ2lvbjo6Tm9uZTsKICAgICAg
ICAgbm9uZUxpc3QuYXBwZW5kKHJlZ2lvbik7CiAgICAgICAgIG5vbmVMaXN0SW5pdGlhbGl6ZWQg
PSB0cnVlOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlLmgJKHJldmlzaW9uIDE4NDY1NSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9SZW5kZXJTdHlsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw2IEBACiAjaW5jbHVk
ZSAiRm9udEJhc2VsaW5lLmgiCiAjaW5jbHVkZSAiRm9udERlc2NyaXB0aW9uLmgiCiAjaW5jbHVk
ZSAiR3JhcGhpY3NUeXBlcy5oIgotI2luY2x1ZGUgIkxheW91dEJveEV4dGVudC5oIgogI2luY2x1
ZGUgIkxlbmd0aC5oIgogI2luY2x1ZGUgIkxlbmd0aEJveC5oIgogI2luY2x1ZGUgIkxlbmd0aEZ1
bmN0aW9ucy5oIgpAQCAtNTMxLDEyICs1MzAsMTIgQEAgcHVibGljOgogICAgIGJvb2wgb3BlcmF0
b3I9PShjb25zdCBSZW5kZXJTdHlsZSYgb3RoZXIpIGNvbnN0OwogICAgIGJvb2wgb3BlcmF0b3Ih
PShjb25zdCBSZW5kZXJTdHlsZSYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuICEoKnRoaXMgPT0gb3Ro
ZXIpOyB9CiAgICAgYm9vbCBpc0Zsb2F0aW5nKCkgY29uc3QgeyByZXR1cm4gbm9uaW5oZXJpdGVk
X2ZsYWdzLmlzRmxvYXRpbmcoKTsgfQotICAgIGJvb2wgaGFzTWFyZ2luKCkgY29uc3QgeyByZXR1
cm4gc3Vycm91bmQtPm1hcmdpbi5ub25aZXJvKCk7IH0KKyAgICBib29sIGhhc01hcmdpbigpIGNv
bnN0IHsgcmV0dXJuICFzdXJyb3VuZC0+bWFyZ2luLmlzWmVybygpOyB9CiAgICAgYm9vbCBoYXNC
b3JkZXIoKSBjb25zdCB7IHJldHVybiBzdXJyb3VuZC0+Ym9yZGVyLmhhc0JvcmRlcigpOyB9CiAg
ICAgYm9vbCBoYXNCb3JkZXJGaWxsKCkgY29uc3QgeyByZXR1cm4gc3Vycm91bmQtPmJvcmRlci5o
YXNGaWxsKCk7IH0KICAgICBib29sIGhhc0JvcmRlckRlY29yYXRpb24oKSBjb25zdCB7IHJldHVy
biBoYXNCb3JkZXIoKSB8fCBoYXNCb3JkZXJGaWxsKCk7IH0KLSAgICBib29sIGhhc1BhZGRpbmco
KSBjb25zdCB7IHJldHVybiBzdXJyb3VuZC0+cGFkZGluZy5ub25aZXJvKCk7IH0KLSAgICBib29s
IGhhc09mZnNldCgpIGNvbnN0IHsgcmV0dXJuIHN1cnJvdW5kLT5vZmZzZXQubm9uWmVybygpOyB9
CisgICAgYm9vbCBoYXNQYWRkaW5nKCkgY29uc3QgeyByZXR1cm4gIXN1cnJvdW5kLT5wYWRkaW5n
LmlzWmVybygpOyB9CisgICAgYm9vbCBoYXNPZmZzZXQoKSBjb25zdCB7IHJldHVybiAhc3Vycm91
bmQtPm9mZnNldC5pc1plcm8oKTsgfQogICAgIGJvb2wgaGFzTWFyZ2luQmVmb3JlUXVpcmsoKSBj
b25zdCB7IHJldHVybiBtYXJnaW5CZWZvcmUoKS5oYXNRdWlyaygpOyB9CiAgICAgYm9vbCBoYXNN
YXJnaW5BZnRlclF1aXJrKCkgY29uc3QgeyByZXR1cm4gbWFyZ2luQWZ0ZXIoKS5oYXNRdWlyaygp
OyB9CiAKQEAgLTU1OCw3ICs1NTcsNyBAQCBwdWJsaWM6CiAgICAgTGF5b3V0Qm94RXh0ZW50IGlt
YWdlT3V0c2V0cyhjb25zdCBOaW5lUGllY2VJbWFnZSYpIGNvbnN0OwogICAgIGJvb2wgaGFzQm9y
ZGVySW1hZ2VPdXRzZXRzKCkgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBib3JkZXJJbWFn
ZSgpLmhhc0ltYWdlKCkgJiYgYm9yZGVySW1hZ2UoKS5vdXRzZXQoKS5ub25aZXJvKCk7CisgICAg
ICAgIHJldHVybiBib3JkZXJJbWFnZSgpLmhhc0ltYWdlKCkgJiYgIWJvcmRlckltYWdlKCkub3V0
c2V0KCkuaXNaZXJvKCk7CiAgICAgfQogICAgIExheW91dEJveEV4dGVudCBib3JkZXJJbWFnZU91
dHNldHMoKSBjb25zdAogICAgIHsKQEAgLTU5NSw4ICs1OTQsOCBAQCBwdWJsaWM6CiAgICAgY29u
c3QgTGVuZ3RoJiBib3R0b20oKSBjb25zdCB7IHJldHVybiBzdXJyb3VuZC0+b2Zmc2V0LmJvdHRv
bSgpOyB9CiAKICAgICAvLyBBY2Nlc3NvcnMgZm9yIHBvc2l0aW9uZWQgb2JqZWN0IGVkZ2VzIHRo
YXQgdGFrZSBpbnRvIGFjY291bnQgd3JpdGluZyBtb2RlLgotICAgIGNvbnN0IExlbmd0aCYgbG9n
aWNhbExlZnQoKSBjb25zdCB7IHJldHVybiBzdXJyb3VuZC0+b2Zmc2V0LmxvZ2ljYWxMZWZ0KHdy
aXRpbmdNb2RlKCkpOyB9Ci0gICAgY29uc3QgTGVuZ3RoJiBsb2dpY2FsUmlnaHQoKSBjb25zdCB7
IHJldHVybiBzdXJyb3VuZC0+b2Zmc2V0LmxvZ2ljYWxSaWdodCh3cml0aW5nTW9kZSgpKTsgfQor
ICAgIGNvbnN0IExlbmd0aCYgbG9naWNhbExlZnQoKSBjb25zdCB7IHJldHVybiBzdXJyb3VuZC0+
b2Zmc2V0LnN0YXJ0KHdyaXRpbmdNb2RlKCkpOyB9CisgICAgY29uc3QgTGVuZ3RoJiBsb2dpY2Fs
UmlnaHQoKSBjb25zdCB7IHJldHVybiBzdXJyb3VuZC0+b2Zmc2V0LmVuZCh3cml0aW5nTW9kZSgp
KTsgfQogICAgIGNvbnN0IExlbmd0aCYgbG9naWNhbFRvcCgpIGNvbnN0IHsgcmV0dXJuIHN1cnJv
dW5kLT5vZmZzZXQuYmVmb3JlKHdyaXRpbmdNb2RlKCkpOyB9CiAgICAgY29uc3QgTGVuZ3RoJiBs
b2dpY2FsQm90dG9tKCkgY29uc3QgeyByZXR1cm4gc3Vycm91bmQtPm9mZnNldC5hZnRlcih3cml0
aW5nTW9kZSgpKTsgfQogCkBAIC02NjIsNyArNjYxLDggQEAgcHVibGljOgogICAgIGZsb2F0IGJv
cmRlckJvdHRvbVdpZHRoKCkgY29uc3QgeyByZXR1cm4gc3Vycm91bmQtPmJvcmRlci5ib3JkZXJC
b3R0b21XaWR0aCgpOyB9CiAgICAgRUJvcmRlclN0eWxlIGJvcmRlckJvdHRvbVN0eWxlKCkgY29u
c3QgeyByZXR1cm4gc3Vycm91bmQtPmJvcmRlci5ib3R0b20oKS5zdHlsZSgpOyB9CiAgICAgYm9v
bCBib3JkZXJCb3R0b21Jc1RyYW5zcGFyZW50KCkgY29uc3QgeyByZXR1cm4gc3Vycm91bmQtPmJv
cmRlci5ib3R0b20oKS5pc1RyYW5zcGFyZW50KCk7IH0KLSAgICAKKyAgICBGbG9hdEJveEV4dGVu
dCBib3JkZXJXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIHN1cnJvdW5kLT5ib3JkZXIuYm9yZGVyV2lk
dGgoKTsgfQorCiAgICAgZmxvYXQgYm9yZGVyQmVmb3JlV2lkdGgoKSBjb25zdDsKICAgICBmbG9h
dCBib3JkZXJBZnRlcldpZHRoKCkgY29uc3Q7CiAgICAgZmxvYXQgYm9yZGVyU3RhcnRXaWR0aCgp
IGNvbnN0OwpAQCAtMTIwMCwxMCArMTIwMCwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQb3Np
dGlvbihFUG9zaXRpb24gdikgeyBub25pbmhlcml0ZWRfZmxhZ3Muc2V0UG9zaXRpb24odik7IH0K
ICAgICB2b2lkIHNldEZsb2F0aW5nKEVGbG9hdCB2KSB7IG5vbmluaGVyaXRlZF9mbGFncy5zZXRG
bG9hdGluZyh2KTsgfQogCi0gICAgdm9pZCBzZXRMZWZ0KExlbmd0aCB2KSB7IFNFVF9WQVIoc3Vy
cm91bmQsIG9mZnNldC5tX2xlZnQsIFdURjo6bW92ZSh2KSk7IH0KLSAgICB2b2lkIHNldFJpZ2h0
KExlbmd0aCB2KSB7IFNFVF9WQVIoc3Vycm91bmQsIG9mZnNldC5tX3JpZ2h0LCBXVEY6Om1vdmUo
dikpOyB9Ci0gICAgdm9pZCBzZXRUb3AoTGVuZ3RoIHYpIHsgU0VUX1ZBUihzdXJyb3VuZCwgb2Zm
c2V0Lm1fdG9wLCBXVEY6Om1vdmUodikpOyB9Ci0gICAgdm9pZCBzZXRCb3R0b20oTGVuZ3RoIHYp
IHsgU0VUX1ZBUihzdXJyb3VuZCwgb2Zmc2V0Lm1fYm90dG9tLCBXVEY6Om1vdmUodikpOyB9Cisg
ICAgdm9pZCBzZXRMZWZ0KExlbmd0aCB2KSB7IFNFVF9WQVIoc3Vycm91bmQsIG9mZnNldC5sZWZ0
KCksIFdURjo6bW92ZSh2KSk7IH0KKyAgICB2b2lkIHNldFJpZ2h0KExlbmd0aCB2KSB7IFNFVF9W
QVIoc3Vycm91bmQsIG9mZnNldC5yaWdodCgpLCBXVEY6Om1vdmUodikpOyB9CisgICAgdm9pZCBz
ZXRUb3AoTGVuZ3RoIHYpIHsgU0VUX1ZBUihzdXJyb3VuZCwgb2Zmc2V0LnRvcCgpLCBXVEY6Om1v
dmUodikpOyB9CisgICAgdm9pZCBzZXRCb3R0b20oTGVuZ3RoIHYpIHsgU0VUX1ZBUihzdXJyb3Vu
ZCwgb2Zmc2V0LmJvdHRvbSgpLCBXVEY6Om1vdmUodikpOyB9CiAKICAgICB2b2lkIHNldFdpZHRo
KExlbmd0aCB2KSB7IFNFVF9WQVIobV9ib3gsIG1fd2lkdGgsIFdURjo6bW92ZSh2KSk7IH0KICAg
ICB2b2lkIHNldEhlaWdodChMZW5ndGggdikgeyBTRVRfVkFSKG1fYm94LCBtX2hlaWdodCwgV1RG
Ojptb3ZlKHYpKTsgfQpAQCAtMTIzOSwxMCArMTIzOSwxMCBAQCBwdWJsaWM6CiAgICAgewogICAg
ICAgICBTdHlsZURhc2hib2FyZFJlZ2lvbiByZWdpb247CiAgICAgICAgIHJlZ2lvbi5sYWJlbCA9
IGxhYmVsOwotICAgICAgICByZWdpb24ub2Zmc2V0Lm1fdG9wID0gV1RGOjptb3ZlKHQpOwotICAg
ICAgICByZWdpb24ub2Zmc2V0Lm1fcmlnaHQgPSBXVEY6Om1vdmUocik7Ci0gICAgICAgIHJlZ2lv
bi5vZmZzZXQubV9ib3R0b20gPSBXVEY6Om1vdmUoYik7Ci0gICAgICAgIHJlZ2lvbi5vZmZzZXQu
bV9sZWZ0ID0gV1RGOjptb3ZlKGwpOworICAgICAgICByZWdpb24ub2Zmc2V0LnRvcCgpID0gV1RG
Ojptb3ZlKHQpOworICAgICAgICByZWdpb24ub2Zmc2V0LnJpZ2h0KCkgPSBXVEY6Om1vdmUocik7
CisgICAgICAgIHJlZ2lvbi5vZmZzZXQuYm90dG9tKCkgPSBXVEY6Om1vdmUoYik7CisgICAgICAg
IHJlZ2lvbi5vZmZzZXQubGVmdCgpID0gV1RGOjptb3ZlKGwpOwogICAgICAgICByZWdpb24udHlw
ZSA9IHR5cGU7CiAgICAgICAgIGlmICghYXBwZW5kKQogICAgICAgICAgICAgcmFyZU5vbkluaGVy
aXRlZERhdGEuYWNjZXNzKCktPm1fZGFzaGJvYXJkUmVnaW9ucy5jbGVhcigpOwpAQCAtMTMyMywx
MCArMTMyMywxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRWZXJ0aWNhbEFsaWduTGVuZ3RoKExl
bmd0aCBsZW5ndGgpIHsgc2V0VmVydGljYWxBbGlnbihMRU5HVEgpOyBTRVRfVkFSKG1fYm94LCBt
X3ZlcnRpY2FsQWxpZ24sIFdURjo6bW92ZShsZW5ndGgpKTsgfQogCiAgICAgdm9pZCBzZXRIYXND
bGlwKGJvb2wgYiA9IHRydWUpIHsgU0VUX1ZBUih2aXN1YWwsIGhhc0NsaXAsIGIpOyB9Ci0gICAg
dm9pZCBzZXRDbGlwTGVmdChMZW5ndGggbGVuZ3RoKSB7IFNFVF9WQVIodmlzdWFsLCBjbGlwLm1f
bGVmdCwgV1RGOjptb3ZlKGxlbmd0aCkpOyB9Ci0gICAgdm9pZCBzZXRDbGlwUmlnaHQoTGVuZ3Ro
IGxlbmd0aCkgeyBTRVRfVkFSKHZpc3VhbCwgY2xpcC5tX3JpZ2h0LCBXVEY6Om1vdmUobGVuZ3Ro
KSk7IH0KLSAgICB2b2lkIHNldENsaXBUb3AoTGVuZ3RoIGxlbmd0aCkgeyBTRVRfVkFSKHZpc3Vh
bCwgY2xpcC5tX3RvcCwgV1RGOjptb3ZlKGxlbmd0aCkpOyB9Ci0gICAgdm9pZCBzZXRDbGlwQm90
dG9tKExlbmd0aCBsZW5ndGgpIHsgU0VUX1ZBUih2aXN1YWwsIGNsaXAubV9ib3R0b20sIFdURjo6
bW92ZShsZW5ndGgpKTsgfQorICAgIHZvaWQgc2V0Q2xpcExlZnQoTGVuZ3RoIGxlbmd0aCkgeyBT
RVRfVkFSKHZpc3VhbCwgY2xpcC5sZWZ0KCksIFdURjo6bW92ZShsZW5ndGgpKTsgfQorICAgIHZv
aWQgc2V0Q2xpcFJpZ2h0KExlbmd0aCBsZW5ndGgpIHsgU0VUX1ZBUih2aXN1YWwsIGNsaXAucmln
aHQoKSwgV1RGOjptb3ZlKGxlbmd0aCkpOyB9CisgICAgdm9pZCBzZXRDbGlwVG9wKExlbmd0aCBs
ZW5ndGgpIHsgU0VUX1ZBUih2aXN1YWwsIGNsaXAudG9wKCksIFdURjo6bW92ZShsZW5ndGgpKTsg
fQorICAgIHZvaWQgc2V0Q2xpcEJvdHRvbShMZW5ndGggbGVuZ3RoKSB7IFNFVF9WQVIodmlzdWFs
LCBjbGlwLmJvdHRvbSgpLCBXVEY6Om1vdmUobGVuZ3RoKSk7IH0KICAgICB2b2lkIHNldENsaXAo
TGVuZ3RoIHRvcCwgTGVuZ3RoIHJpZ2h0LCBMZW5ndGggYm90dG9tLCBMZW5ndGggbGVmdCk7CiAg
ICAgdm9pZCBzZXRDbGlwKExlbmd0aEJveCBib3gpIHsgU0VUX1ZBUih2aXN1YWwsIGNsaXAsIFdU
Rjo6bW92ZShib3gpKTsgfQogCkBAIC0xNDM0LDE5ICsxNDM0LDE5IEBAIHB1YmxpYzoKICAgICB2
b2lkIHNldExpc3RTdHlsZVBvc2l0aW9uKEVMaXN0U3R5bGVQb3NpdGlvbiB2KSB7IGluaGVyaXRl
ZF9mbGFncy5fbGlzdF9zdHlsZV9wb3NpdGlvbiA9IHY7IH0KIAogICAgIHZvaWQgcmVzZXRNYXJn
aW4oKSB7IFNFVF9WQVIoc3Vycm91bmQsIG1hcmdpbiwgTGVuZ3RoQm94KEZpeGVkKSk7IH0KLSAg
ICB2b2lkIHNldE1hcmdpblRvcChMZW5ndGggbGVuZ3RoKSB7IFNFVF9WQVIoc3Vycm91bmQsIG1h
cmdpbi5tX3RvcCwgV1RGOjptb3ZlKGxlbmd0aCkpOyB9Ci0gICAgdm9pZCBzZXRNYXJnaW5Cb3R0
b20oTGVuZ3RoIGxlbmd0aCkgeyBTRVRfVkFSKHN1cnJvdW5kLCBtYXJnaW4ubV9ib3R0b20sIFdU
Rjo6bW92ZShsZW5ndGgpKTsgfQotICAgIHZvaWQgc2V0TWFyZ2luTGVmdChMZW5ndGggbGVuZ3Ro
KSB7IFNFVF9WQVIoc3Vycm91bmQsIG1hcmdpbi5tX2xlZnQsIFdURjo6bW92ZShsZW5ndGgpKTsg
fQotICAgIHZvaWQgc2V0TWFyZ2luUmlnaHQoTGVuZ3RoIGxlbmd0aCkgeyBTRVRfVkFSKHN1cnJv
dW5kLCBtYXJnaW4ubV9yaWdodCwgV1RGOjptb3ZlKGxlbmd0aCkpOyB9CisgICAgdm9pZCBzZXRN
YXJnaW5Ub3AoTGVuZ3RoIGxlbmd0aCkgeyBTRVRfVkFSKHN1cnJvdW5kLCBtYXJnaW4udG9wKCks
IFdURjo6bW92ZShsZW5ndGgpKTsgfQorICAgIHZvaWQgc2V0TWFyZ2luQm90dG9tKExlbmd0aCBs
ZW5ndGgpIHsgU0VUX1ZBUihzdXJyb3VuZCwgbWFyZ2luLmJvdHRvbSgpLCBXVEY6Om1vdmUobGVu
Z3RoKSk7IH0KKyAgICB2b2lkIHNldE1hcmdpbkxlZnQoTGVuZ3RoIGxlbmd0aCkgeyBTRVRfVkFS
KHN1cnJvdW5kLCBtYXJnaW4ubGVmdCgpLCBXVEY6Om1vdmUobGVuZ3RoKSk7IH0KKyAgICB2b2lk
IHNldE1hcmdpblJpZ2h0KExlbmd0aCBsZW5ndGgpIHsgU0VUX1ZBUihzdXJyb3VuZCwgbWFyZ2lu
LnJpZ2h0KCksIFdURjo6bW92ZShsZW5ndGgpKTsgfQogICAgIHZvaWQgc2V0TWFyZ2luU3RhcnQo
TGVuZ3RoKTsKICAgICB2b2lkIHNldE1hcmdpbkVuZChMZW5ndGgpOwogCiAgICAgdm9pZCByZXNl
dFBhZGRpbmcoKSB7IFNFVF9WQVIoc3Vycm91bmQsIHBhZGRpbmcsIExlbmd0aEJveChBdXRvKSk7
IH0KICAgICB2b2lkIHNldFBhZGRpbmdCb3goTGVuZ3RoQm94IGJveCkgeyBTRVRfVkFSKHN1cnJv
dW5kLCBwYWRkaW5nLCBXVEY6Om1vdmUoYm94KSk7IH0KLSAgICB2b2lkIHNldFBhZGRpbmdUb3Ao
TGVuZ3RoIGxlbmd0aCkgeyBTRVRfVkFSKHN1cnJvdW5kLCBwYWRkaW5nLm1fdG9wLCBXVEY6Om1v
dmUobGVuZ3RoKSk7IH0KLSAgICB2b2lkIHNldFBhZGRpbmdCb3R0b20oTGVuZ3RoIGxlbmd0aCkg
eyBTRVRfVkFSKHN1cnJvdW5kLCBwYWRkaW5nLm1fYm90dG9tLCBXVEY6Om1vdmUobGVuZ3RoKSk7
IH0KLSAgICB2b2lkIHNldFBhZGRpbmdMZWZ0KExlbmd0aCBsZW5ndGgpIHsgU0VUX1ZBUihzdXJy
b3VuZCwgcGFkZGluZy5tX2xlZnQsIFdURjo6bW92ZShsZW5ndGgpKTsgfQotICAgIHZvaWQgc2V0
UGFkZGluZ1JpZ2h0KExlbmd0aCBsZW5ndGgpIHsgU0VUX1ZBUihzdXJyb3VuZCwgcGFkZGluZy5t
X3JpZ2h0LCBXVEY6Om1vdmUobGVuZ3RoKSk7IH0KKyAgICB2b2lkIHNldFBhZGRpbmdUb3AoTGVu
Z3RoIGxlbmd0aCkgeyBTRVRfVkFSKHN1cnJvdW5kLCBwYWRkaW5nLnRvcCgpLCBXVEY6Om1vdmUo
bGVuZ3RoKSk7IH0KKyAgICB2b2lkIHNldFBhZGRpbmdCb3R0b20oTGVuZ3RoIGxlbmd0aCkgeyBT
RVRfVkFSKHN1cnJvdW5kLCBwYWRkaW5nLmJvdHRvbSgpLCBXVEY6Om1vdmUobGVuZ3RoKSk7IH0K
KyAgICB2b2lkIHNldFBhZGRpbmdMZWZ0KExlbmd0aCBsZW5ndGgpIHsgU0VUX1ZBUihzdXJyb3Vu
ZCwgcGFkZGluZy5sZWZ0KCksIFdURjo6bW92ZShsZW5ndGgpKTsgfQorICAgIHZvaWQgc2V0UGFk
ZGluZ1JpZ2h0KExlbmd0aCBsZW5ndGgpIHsgU0VUX1ZBUihzdXJyb3VuZCwgcGFkZGluZy5yaWdo
dCgpLCBXVEY6Om1vdmUobGVuZ3RoKSk7IH0KIAogICAgIHZvaWQgc2V0Q3Vyc29yKEVDdXJzb3Ig
YykgeyBpbmhlcml0ZWRfZmxhZ3MuX2N1cnNvcl9zdHlsZSA9IGM7IH0KICAgICB2b2lkIGFkZEN1
cnNvcihQYXNzUmVmUHRyPFN0eWxlSW1hZ2U+LCBjb25zdCBJbnRQb2ludCYgaG90U3BvdCA9IElu
dFBvaW50KCkpOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTg0NjgwKQorKysgTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTUtMDUtMjAgIFNhaWQg
QWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KKworICAgICAgICBBbiBTVkcg
d2l0aCBubyBpbnRyaW5zaWMgc2l6ZSBkb2VzIG5vdCBkcmF3IGNvcnJlY3Qgc2xpY2VzIHdoZW4g
dXNlZCBhcyBhIGJvcmRlci1pbWFnZSBmb3IgYW4gSFRNTCBlbGVtZW50LgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5NDA1CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2JvcmRlcnMvYm9yZGVy
LWltYWdlLWZpbGwtbm8taW50cmluc2ljLXNpemUtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9ib3JkZXJzL2JvcmRlci1pbWFnZS1maWxsLW5vLWludHJpbnNpYy1zaXplLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvYm9yZGVycy9yZXNvdXJjZXMvc3ZnLWJvcmRlci0x
MDB4MTAwLWludHJpbnNpYy5zdmc6IEFkZGVkLgorICAgICAgICAqIGZhc3QvYm9yZGVycy9yZXNv
dXJjZXMvc3ZnLWJvcmRlci0xNDB4MTQwLWludHJpbnNpYy5zdmc6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvYm9yZGVycy9yZXNvdXJjZXMvc3ZnLWJvcmRlci1uby1pbnRyaW5zaWMuc3ZnOiBBZGRl
ZC4KKyAgICAgICAgTWFrZSBzdXJlIHRoZSBzbGljZXMgb2YgdGhlIGJvcmRlci1pbWFnZSBhcmUg
ZHJhd24gY29ycmVjdGx5LiBXaGVuIHVzaW5nIGFuCisgICAgICAgIGltYWdlIHdpdGggbm8gaW50
cmluc2ljIHNpemUsIGFsbCB0aGUgc2xpY2VzIGhhcyB0byBiZSBnb3R0ZW4gZnJvbSAoMCwgMCkK
KyAgICAgICAgb2YgdGhlIHNvdXJjZSBpbWFnZS4KKyAgICAgICAgCisgICAgICAgICogVGVzdEV4
cGVjdGF0aW9uczogUmVtb3ZlZCBwcmV2aW91c2x5LWZhaWxpbmcgdGVzdC4KKwogMjAxNS0wNS0y
MCAgQ2hyaXMgRmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPgogCiAgICAgICAgIEFYOiBp
bXByb3ZlIGxpc3QgaGV1cmlzdGljcyAocHJlc2VudGF0aW9uYWwgdXNlIHZlcnN1cyBhY3R1YWwg
bGlzdHMpCkluZGV4OiBMYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlzaW9uIDE4NDY1NSkKKysrIExheW91
dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMJKHdvcmtpbmcgY29weSkKQEAgLTQzMyw3ICs0MzMsNiBA
QCB3ZWJraXQub3JnL2IvMTM5MjY2IGltcG9ydGVkL21vemlsbGEvc3ZnCiB3ZWJraXQub3JnL2Iv
MTM5MjgyIGltcG9ydGVkL21vemlsbGEvc3ZnL2ltYWdlL2ltYWdlLWZpbHRlci0wMS5zdmcgWyBJ
bWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xMzkzMjIgaW1wb3J0ZWQvbW96aWxsYS9z
dmcvdGV4dC9keW5hbWljLW5vbi1zY2FsaW5nLXN0cm9rZS5zdmcgWyBJbWFnZU9ubHlGYWlsdXJl
IF0KIHdlYmtpdC5vcmcvYi8xMzk0MDcgaW1wb3J0ZWQvbW96aWxsYS9zdmcvYXMtaW1hZ2UvYm9y
ZGVyLWltYWdlLXNpbXBsZS0xLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcv
Yi8xMzk0MDUgaW1wb3J0ZWQvbW96aWxsYS9zdmcvYXMtaW1hZ2UvYm9yZGVyLWltYWdlLXNpbXBs
ZS0yLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xMzk0MTIgaW1wb3J0
ZWQvbW96aWxsYS9zdmcvZmlsdGVycy9zdmctZmlsdGVyLWNoYWlucy9jbGlwLWlucHV0LnN2ZyBb
IEltYWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzEzOTQxMiBpbXBvcnRlZC9tb3ppbGxh
L3N2Zy9maWx0ZXJzL3N2Zy1maWx0ZXItY2hhaW5zL2NsaXAtb3V0cHV0LnN2ZyBbIEltYWdlT25s
eUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzEzOTQxNCBpbXBvcnRlZC9tb3ppbGxhL3N2Zy9maWx0
ZXJzL2ZlQ29sb3JNYXRyaXgtMS5zdmcgWyBJbWFnZU9ubHlGYWlsdXJlIF0KSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvYm9yZGVycy9ib3JkZXItaW1hZ2UtZmlsbC1uby1pbnRyaW5zaWMtc2l6ZS1l
eHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYm9yZGVycy9ib3Jk
ZXItaW1hZ2UtZmlsbC1uby1pbnRyaW5zaWMtc2l6ZS1leHBlY3RlZC5odG1sCShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9ib3JkZXJzL2JvcmRlci1pbWFnZS1maWxsLW5vLWludHJp
bnNpYy1zaXplLWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzOCBAQAor
PCFET0NUWVBFIEhUTUw+Cis8aGVhZD4KKyAgPHN0eWxlPgorICAgIC5ib3ggeworICAgICAgaGVp
Z2h0OiAxMDBweDsKKyAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgIG1hcmdpbjogMTBweDsKKyAg
ICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsK
KyAgICB9CisgICAgLmJvcmRlciB7CisgICAgICBib3JkZXI6IDIwcHggc29saWQ7CisgICAgfQor
ICAgIC5uby1ib3JkZXIgeworICAgICAgYm9yZGVyOiAwcHggbm9uZTsKKyAgICB9CisgICAgLmJv
cmRlci1pbWFnZS0xMDAtaW50cmluc2ljIHsKKyAgICAgICBib3JkZXItaW1hZ2U6IHVybCgncmVz
b3VyY2VzL3N2Zy1ib3JkZXItMTAweDEwMC1pbnRyaW5zaWMuc3ZnJykgMCBmaWxsOworICAgIH0K
KyAgICAuYm9yZGVyLWltYWdlLTEwMC1pbnRyaW5zaWMtc2xpY2UgeworICAgICAgIGJvcmRlci1p
bWFnZTogdXJsKCdyZXNvdXJjZXMvc3ZnLWJvcmRlci0xMDB4MTAwLWludHJpbnNpYy5zdmcnKSAy
MCBmaWxsOworICAgIH0KKyAgICAuYm9yZGVyLWltYWdlLTE0MC1pbnRyaW5zaWMtc2xpY2Ugewor
ICAgICAgIGJvcmRlci1pbWFnZTogdXJsKCdyZXNvdXJjZXMvc3ZnLWJvcmRlci0xNDB4MTQwLWlu
dHJpbnNpYy5zdmcnKSAyMCBmaWxsOworICAgIH0KKyAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5
PgorICA8ZGl2IGNsYXNzPSJib3ggbm8tYm9yZGVyIGJvcmRlci1pbWFnZS0xMDAtaW50cmluc2lj
Ij48L2Rpdj4KKyAgPGRpdiBjbGFzcz0iYm94IGJvcmRlciAgICBib3JkZXItaW1hZ2UtMTAwLWlu
dHJpbnNpYyI+PC9kaXY+CisgIDxkaXYgY2xhc3M9ImJveCBuby1ib3JkZXIgYm9yZGVyLWltYWdl
LTEwMC1pbnRyaW5zaWMtc2xpY2UiPjwvZGl2PgorICA8ZGl2IGNsYXNzPSJib3ggYm9yZGVyICAg
IGJvcmRlci1pbWFnZS0xMDAtaW50cmluc2ljLXNsaWNlIj48L2Rpdj4KKyAgPGJyPgorICA8ZGl2
IGNsYXNzPSJib3ggbm8tYm9yZGVyIGJvcmRlci1pbWFnZS0xMDAtaW50cmluc2ljIj48L2Rpdj4K
KyAgPGRpdiBjbGFzcz0iYm94IGJvcmRlciAgICBib3JkZXItaW1hZ2UtMTAwLWludHJpbnNpYyI+
PC9kaXY+CisgIDxkaXYgY2xhc3M9ImJveCBuby1ib3JkZXIgYm9yZGVyLWltYWdlLTEwMC1pbnRy
aW5zaWMiPjwvZGl2PgorICA8ZGl2IGNsYXNzPSJib3ggYm9yZGVyICAgIGJvcmRlci1pbWFnZS0x
NDAtaW50cmluc2ljLXNsaWNlIj48L2Rpdj4KKzwvYm9keT4KSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvYm9yZGVycy9ib3JkZXItaW1hZ2UtZmlsbC1uby1pbnRyaW5zaWMtc2l6ZS5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYm9yZGVycy9ib3JkZXItaW1hZ2UtZmlsbC1uby1p
bnRyaW5zaWMtc2l6ZS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9ib3Jk
ZXJzL2JvcmRlci1pbWFnZS1maWxsLW5vLWludHJpbnNpYy1zaXplLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSw0MSBAQAorPCFET0NUWVBFIEhUTUw+Cis8aGVhZD4KKyAgPHN0eWxlPgor
ICAgIC5ib3ggeworICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgIHdpZHRoOiAxMDBweDsKKyAg
ICAgIG1hcmdpbjogMTBweDsKKyAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgIGJh
Y2tncm91bmQtY29sb3I6IHJlZDsKKyAgICB9CisgICAgLmJvcmRlciB7CisgICAgICBib3JkZXI6
IDIwcHggc29saWQ7CisgICAgfQorICAgIC5uby1ib3JkZXIgeworICAgICAgYm9yZGVyOiAwcHgg
bm9uZTsKKyAgICB9CisgICAgLmJvcmRlci1pbWFnZS0xMDAtaW50cmluc2ljIHsKKyAgICAgICBi
b3JkZXItaW1hZ2U6IHVybCgncmVzb3VyY2VzL3N2Zy1ib3JkZXItMTAweDEwMC1pbnRyaW5zaWMu
c3ZnJykgMCBmaWxsOworICAgIH0KKyAgICAuYm9yZGVyLWltYWdlLTEwMC1pbnRyaW5zaWMtc2xp
Y2UgeworICAgICAgIGJvcmRlci1pbWFnZTogdXJsKCdyZXNvdXJjZXMvc3ZnLWJvcmRlci0xMDB4
MTAwLWludHJpbnNpYy5zdmcnKSAyMCBmaWxsOworICAgIH0KKyAgICAuYm9yZGVyLWltYWdlLW5v
LWludHJpbnNpYyB7CisgICAgICAgYm9yZGVyLWltYWdlOiB1cmwoJ3Jlc291cmNlcy9zdmctYm9y
ZGVyLW5vLWludHJpbnNpYy5zdmcnKSAwIGZpbGw7CisgICAgfQorICAgIC5ib3JkZXItaW1hZ2Ut
bm8taW50cmluc2ljLXNsaWNlIHsKKyAgICAgICBib3JkZXItaW1hZ2U6IHVybCgncmVzb3VyY2Vz
L3N2Zy1ib3JkZXItbm8taW50cmluc2ljLnN2ZycpIDIwIGZpbGw7CisgICAgfQorICA8L3N0eWxl
PgorPC9oZWFkPgorPGJvZHk+CisgIDxkaXYgY2xhc3M9ImJveCBuby1ib3JkZXIgYm9yZGVyLWlt
YWdlLTEwMC1pbnRyaW5zaWMiPjwvZGl2PgorICA8ZGl2IGNsYXNzPSJib3ggYm9yZGVyICAgIGJv
cmRlci1pbWFnZS0xMDAtaW50cmluc2ljIj48L2Rpdj4KKyAgPGRpdiBjbGFzcz0iYm94IG5vLWJv
cmRlciBib3JkZXItaW1hZ2UtMTAwLWludHJpbnNpYy1zbGljZSI+PC9kaXY+CisgIDxkaXYgY2xh
c3M9ImJveCBib3JkZXIgICAgYm9yZGVyLWltYWdlLTEwMC1pbnRyaW5zaWMtc2xpY2UiPjwvZGl2
PgorICA8YnI+CisgIDxkaXYgY2xhc3M9ImJveCBuby1ib3JkZXIgYm9yZGVyLWltYWdlLW5vLWlu
dHJpbnNpYyI+PC9kaXY+CisgIDxkaXYgY2xhc3M9ImJveCBib3JkZXIgICAgYm9yZGVyLWltYWdl
LW5vLWludHJpbnNpYyI+PC9kaXY+CisgIDxkaXYgY2xhc3M9ImJveCBuby1ib3JkZXIgYm9yZGVy
LWltYWdlLW5vLWludHJpbnNpYy1zbGljZSI+PC9kaXY+CisgIDxkaXYgY2xhc3M9ImJveCBib3Jk
ZXIgICAgYm9yZGVyLWltYWdlLW5vLWludHJpbnNpYy1zbGljZSI+PC9kaXY+Cis8L2JvZHk+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2JvcmRlcnMvcmVzb3VyY2VzL3N2Zy1ib3JkZXItMTAweDEw
MC1pbnRyaW5zaWMuc3ZnCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYm9yZGVycy9y
ZXNvdXJjZXMvc3ZnLWJvcmRlci0xMDB4MTAwLWludHJpbnNpYy5zdmcJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2JvcmRlcnMvcmVzb3VyY2VzL3N2Zy1ib3JkZXItMTAweDEwMC1p
bnRyaW5zaWMuc3ZnCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNCBAQAorPHN2ZyB4bWxucz0i
aHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgd2lkdGg9IjEwMCIgaGVp
Z2h0PSIxMDAiPgorICA8cmVjdCB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgZmlsbD0ibGltZSIv
PgorICA8cmVjdCB4PSIxMCIgeT0iMTAiIHdpZHRoPSI4MCIgaGVpZ2h0PSI4MCIgZmlsbD0ibm9u
ZSIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLXdpZHRoPSI0cHgiLz4KKzwvc3ZnPgpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvYm9yZGVycy9yZXNvdXJj
ZXMvc3ZnLWJvcmRlci0xNDB4MTQwLWludHJpbnNpYy5zdmcKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9ib3JkZXJzL3Jlc291cmNlcy9zdmctYm9yZGVyLTE0MHgxNDAtaW50cmluc2lj
LnN2ZwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvYm9yZGVycy9yZXNvdXJjZXMv
c3ZnLWJvcmRlci0xNDB4MTQwLWludHJpbnNpYy5zdmcJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSw1MiBAQAorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhs
aW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2ZXJzaW9uPSIxLjEiIHdpZHRoPSIx
NDAiIGhlaWdodD0iMTQwIj4KKyAgPGRlZnM+CisgICAgPGcgaWQ9ImJvcmRlci1pbWFnZSI+Cisg
ICAgICA8cmVjdCB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgZmlsbD0ibGltZSIvPgorICAgICAg
PHJlY3QgeD0iMTAiIHk9IjEwIiB3aWR0aD0iODAiIGhlaWdodD0iODAiIGZpbGw9Im5vbmUiIHN0
cm9rZT0iYmxhY2siIHN0cm9rZS13aWR0aD0iNHB4Ii8+CisgICAgPC9nPgorICAgIDxjbGlwUGF0
aCBpZD0idG9wLWxlZnQiPgorICAgICAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjIwIiBoZWln
aHQ9IjIwIi8+CisgICAgPC9jbGlwUGF0aD4KKyAgICA8Y2xpcFBhdGggaWQ9ImxlZnQiPgorICAg
ICAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjIwIiBoZWlnaHQ9IjEwMCIvPgorICAgIDwvY2xp
cFBhdGg+CisgICAgPGNsaXBQYXRoIGlkPSJib3R0b20tbGVmdCI+CisgICAgICA8cmVjdCB4PSIw
IiB5PSIwIiB3aWR0aD0iMjAiIGhlaWdodD0iMjAiLz4KKyAgICA8L2NsaXBQYXRoPgorICAgIDxj
bGlwUGF0aCBpZD0idG9wLXJpZ2h0Ij4KKyAgICAgIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIy
MCIgaGVpZ2h0PSIyMCIvPgorICAgIDwvY2xpcFBhdGg+CisgICAgPGNsaXBQYXRoIGlkPSJyaWdo
dCI+CisgICAgICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMjAiIGhlaWdodD0iMTAwIi8+Cisg
ICAgPC9jbGlwUGF0aD4KKyAgICA8Y2xpcFBhdGggaWQ9ImJvdHRvbS1yaWdodCI+CisgICAgICA8
cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMjAiIGhlaWdodD0iMjAiLz4KKyAgICA8L2NsaXBQYXRo
PgorICAgIDxjbGlwUGF0aCBpZD0idG9wIj4KKyAgICAgIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRo
PSIxMDAiIGhlaWdodD0iMjAiLz4KKyAgICA8L2NsaXBQYXRoPgorICAgIDxjbGlwUGF0aCBpZD0i
Ym90dG9tIj4KKyAgICAgIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAiIGhlaWdodD0iMjAi
Lz4KKyAgICA8L2NsaXBQYXRoPgorICAgIDxjbGlwUGF0aCBpZD0ibWlkZGxlIj4KKyAgICAgIDxy
ZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIi8+CisgICAgPC9jbGlwUGF0
aD4KKyAgPC9kZWZzPgorICAKKyAgPCEtLSBkcmF3IGxlZnQgc2lkZSAtLT4KKyAgPHVzZSB4PSIw
IiB5PSIwIiB4bGluazpocmVmPSIjYm9yZGVyLWltYWdlIiBjbGlwLXBhdGg9InVybCgjdG9wLWxl
ZnQpIi8+CisgIDx1c2UgeD0iMCIgeT0iMjAiIHhsaW5rOmhyZWY9IiNib3JkZXItaW1hZ2UiIGNs
aXAtcGF0aD0idXJsKCNsZWZ0KSIvPgorICA8dXNlIHg9IjAiIHk9IjEyMCIgeGxpbms6aHJlZj0i
I2JvcmRlci1pbWFnZSIgY2xpcC1wYXRoPSJ1cmwoI2JvdHRvbS1sZWZ0KSIvPgorICAKKyAgPCEt
LSBkcmF3IHJpZ2h0IHNpZGUgLS0+CisgIDx1c2UgeD0iMTIwIiB5PSIwIiB4bGluazpocmVmPSIj
Ym9yZGVyLWltYWdlIiBjbGlwLXBhdGg9InVybCgjdG9wLXJpZ2h0KSIvPgorICA8dXNlIHg9IjEy
MCIgeT0iMjAiIHhsaW5rOmhyZWY9IiNib3JkZXItaW1hZ2UiIGNsaXAtcGF0aD0idXJsKCNyaWdo
dCkiLz4KKyAgPHVzZSB4PSIxMjAiIHk9IjEyMCIgeGxpbms6aHJlZj0iI2JvcmRlci1pbWFnZSIg
Y2xpcC1wYXRoPSJ1cmwoI2JvdHRvbS1yaWdodCkiLz4KKyAgCisgIDwhLS0gZHJhdyB0b3AgYW5k
IGJvdHRvbSBzaWRlcyAtLT4KKyAgPHVzZSB4PSIyMCIgeT0iMCIgeGxpbms6aHJlZj0iI2JvcmRl
ci1pbWFnZSIgY2xpcC1wYXRoPSJ1cmwoI3RvcCkiLz4KKyAgPHVzZSB4PSIyMCIgeT0iMTIwIiB4
bGluazpocmVmPSIjYm9yZGVyLWltYWdlIiBjbGlwLXBhdGg9InVybCgjYm90dG9tKSIvPgorICAK
KyAgPCEtLSBkcmF3IG1pZGRsZSAtLT4KKyAgPHVzZSB4PSIyMCIgeT0iMjAiIHhsaW5rOmhyZWY9
IiNib3JkZXItaW1hZ2UiIGNsaXAtcGF0aD0idXJsKCNtaWRkbGUpIi8+Cis8L3N2Zz4KXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2JvcmRlcnMvcmVz
b3VyY2VzL3N2Zy1ib3JkZXItbm8taW50cmluc2ljLnN2Zwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2JvcmRlcnMvcmVzb3VyY2VzL3N2Zy1ib3JkZXItbm8taW50cmluc2ljLnN2Zwko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvYm9yZGVycy9yZXNvdXJjZXMvc3ZnLWJv
cmRlci1uby1pbnRyaW5zaWMuc3ZnCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNCBAQAorPHN2
ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSI+CisgIDxy
ZWN0IHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIiBmaWxsPSJsaW1lIi8+CisgIDxyZWN0IHg9IjEw
IiB5PSIxMCIgd2lkdGg9IjgwIiBoZWlnaHQ9IjgwIiBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNr
IiBzdHJva2Utd2lkdGg9IjRweCIvPgorPC9zdmc+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpJbmRleDogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvbW96aWxsYS9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvbW96aWxsYS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4
NDY4MCkKKysrIExheW91dFRlc3RzL2ltcG9ydGVkL21vemlsbGEvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTUtMDUtMjAgIFNhaWQgQWJvdS1IYWxsYXdhICA8
c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KKworICAgICAgICBBbiBTVkcgd2l0aCBubyBpbnRyaW5z
aWMgc2l6ZSBkb2VzIG5vdCBkcmF3IGNvcnJlY3Qgc2xpY2VzIHdoZW4gdXNlZCBhcyBhIGJvcmRl
ci1pbWFnZSBmb3IgYW4gSFRNTCBlbGVtZW50LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5NDA1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBzdmcvYXMtaW1hZ2UvYm9yZGVyLWltYWdlLXNpbXBsZS0y
Lmh0bWw6IEFkZCAiYm9yZGVyOiAwcHggbm9uZTsiIHRvCisgICAgICAgIHN0eWxlIG9mIHRoZSA8
ZGl2PiBhbHRob3VnaCB0aGUgc3R5bGUgaGFzICJib3JkZXItaW1hZ2U6IHVybCgpIDAgZmlsbDsi
LgorICAgICAgICBJZiB0aGUgYm9yZGVyIHdpZHRoIGlzIG5vdCBzZXQgdG8gemVybyBpbiB0aGUg
c3R5bGUsIHRoZSA8ZGl2PiB3aWxsIGhhdmUKKyAgICAgICAgYSAzcHggYm9yZGVyLiBUaGlzIHNl
ZW1zIHRvIGJlIGEgYnVnIGluIFdlYktpdCBidXQgc2hvdWxkIGJlIHVucmVsYXRlZCB0bworICAg
ICAgICB0aGUgbm9uLWludHJpbnNpYy1zaXplZCBpbWFnZXMgd2l0aCBib3JkZXItaW1hZ2UuCisK
IDIwMTQtMTItMDkgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4K
IAogICAgICAgICBJbXBvcnQgTW96aWxsYSB0ZXN0IHN1aXRlIGZvciBTVkcuCkluZGV4OiBMYXlv
dXRUZXN0cy9pbXBvcnRlZC9tb3ppbGxhL3N2Zy9hcy1pbWFnZS9ib3JkZXItaW1hZ2Utc2ltcGxl
LTIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbXBvcnRlZC9tb3ppbGxhL3N2Zy9h
cy1pbWFnZS9ib3JkZXItaW1hZ2Utc2ltcGxlLTIuaHRtbAkocmV2aXNpb24gMTg0NjU1KQorKysg
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvbW96aWxsYS9zdmcvYXMtaW1hZ2UvYm9yZGVyLWltYWdlLXNp
bXBsZS0yLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw2IEBACiA8aHRtbD4KIDxib2R5
PgotICA8ZGl2IHN0eWxlPSJoZWlnaHQ6IDEwMHB4OyB3aWR0aDogMTAwcHg7CisgIDxkaXYgc3R5
bGU9ImhlaWdodDogMTAwcHg7IHdpZHRoOiAxMDBweDsgYm9yZGVyOiAwcHggbm9uZTsKICAgICAg
ICAgICAgICAgYm9yZGVyLWltYWdlOiB1cmwoJ3Jlc291cmNlcy9saW1lMTAweDEwMC1ub1NWR0Rp
bWVuc2lvbnMuc3ZnJykgMCBmaWxsOyIvPgogPC9ib2R5PgogPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253772</attachid>
            <date>2015-05-26 19:31:02 -0700</date>
            <delta_ts>2015-05-26 21:18:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139405-20150526193051.patch</filename>
            <type>text/plain</type>
            <size>109441</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4NDg4OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2NyBAQAorMjAxNS0wNS0yNiAgU2FpZCBB
Ym91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIEFuIFNWRyB3
aXRoIG5vIGludHJpbnNpYyBzaXplIGRvZXMgbm90IGRyYXcgY29ycmVjdCBzbGljZXMgd2hlbiB1
c2VkIGFzIGEgYm9yZGVyLWltYWdlIGZvciBhbiBIVE1MIGVsZW1lbnQuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk0MDUKKworICAgICAgICBSZXZp
ZXdlZCBieSBEYXJpbiBBZGxlci4KKyAgICAgICAgCisgICAgICAgIFdoZW4gdXNpbmcgYSBub24t
aW50cmluc2ljLXNpemVkIGltYWdlIGFzIGFuIGltYWdlLWJvcmRlciwgYWxsIHRoZSBzb3VyY2UK
KyAgICAgICAgc2xpY2VzIGhhdmUgdG8gYmUgZXh0cmFjdGVkIGZyb20gdGhlIHRvcC1sZWZ0IGNv
cm5lciBvZiB0aGUgc291cmNlIGltYWdlLgorICAgICAgICBUaGlzIGlzIGJlY2F1c2UgdGhlIHJp
Z2h0IGFuZCBib3R0b20gc2lkZXMgb2YgdGhlIGltYWdlIGNhbiBub3QgYmUga25vd24uCisgICAg
ICAgIEFsc28gYWxsIHRoZSBzbGljZXMgc2hvdWxkIG5vdCBiZSBzdHJldGNoZWQuIEluIG90aGVy
IHdvcmRzLCB0aGUgc2l6ZXMgb2YKKyAgICAgICAgc291cmNlIHNsaWNlcyBmb3IgYSBub24taW50
cmluc2ljLXNpemVkIGltYWdlIHNob3VsZCBiZSBlcXVhbCB0byB0aGUgc2l6ZXMKKyAgICAgICAg
b2YgdGhlIGRlc3RpbmF0aW9uIGNvbnRhaW5lciBzbGljZXMuCisKKyAgICAgICAgVGhpcyBpcyBu
b3QgY29tcGxpYW50IHdpdGggdGhlIGNzczMgdzNjIHNwZWNzLiBJIHRoaW5rIHRoZSBzcGVjcyBt
YWtlcyBpdAorICAgICAgICBoYXJkZXIgdG8gcHJlZGljdCB3aGF0IGV4YWN0bHkgd2lsbCBiZSBk
cmF3biBmb3IgdGhlIGltYWdlLWJvcmRlciBpbiB0aGlzCisgICAgICAgIGNhc2UuIFNlZSBodHRw
Oi8vd3d3LnczLm9yZy9UUi9jc3MzLWJhY2tncm91bmQvI2JvcmRlci1pbWFnZS1zbGljZS4gVGhp
cworICAgICAgICBhcHByb2FjaCBpcyBpbXBsZW1lbnRlZCBieSBGaXJlRm94LiBBbmQgSSB0aGlu
ayBpdCBnaXZlcyBhIG1vcmUgcHJlZGljdGFibGUgCisgICAgICAgIHJlbmRlcmluZyBmb3IgaW1h
Z2UtYm9yZGVyIGluIHRoZSBjYXNlIG9mIG5vbi1pbnRyaW5zaWMtc2l6ZWQgaW1hZ2VzLgorICAg
ICAgICAKKyAgICAgICAgVGVzdDogZmFzdC9ib3JkZXJzL2JvcmRlci1pbWFnZS1maWxsLW5vLWlu
dHJpbnNpYy1zaXplLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAq
IFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2o6CisgICAgICAgICogV2ViQ29yZS52Y3hw
cm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9MZW5ndGhCb3guY3BwOiBSZW1v
dmVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0xheW91dEJveEV4dGVudC5jcHA6IFJl
bW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTGF5b3V0Qm94RXh0ZW50Lmg6IFJl
bW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTGF5b3V0UmVjdC5oOgorICAgICAg
ICBEZWxldGUgTGVuZ3RoQm94LmNwcCBhbmQgbW92ZSBhbGwgdGhlIGZ1bmN0aW9uYWxpdGllcyB0
byBMZW5ndGhCb3guaC4KKyAgICAgICAgRGVsZXRlIExheW91dEJveEV4dGVudC5jcHAgc2luY2Ug
aXQgaXMgdGhlIHNhbWUgY2xhc3MgYXMgTGVuZ3RoQm94LgorICAgICAgICAKKyAgICAgICAgKiBj
c3MvQ1NTUHJvcGVydHkuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvV3JpdGluZ01vZGUu
aDoKKyAgICAgICAgTW92ZSB0aGUgZW51bXMgTG9naWNhbEJveFNpZGUgYW5kIFBoeXNpY2FsQm94
U2lkZQorICAgICAgICBmcm9tIENTU1Byb3BlcnR5LmNwcCB0byBXcml0aW5nTW9kZS5oIHNvIGl0
IGNhbiBiZSB1c2VkIGJ5IG90aGVyIGNsYXNzZXMuCisgICAgICAgIAorICAgICAgICAqIGNzcy9D
U1NUb1N0eWxlTWFwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1RvU3R5bGVNYXA6Om1hcE5p
bmVQaWVjZUltYWdlU2xpY2UpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVG9TdHlsZU1hcDo6bWFw
TmluZVBpZWNlSW1hZ2VRdWFkKToKKyAgICAgICAgKiBjc3MvQ1NTVG9TdHlsZU1hcC5oOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmJ1aWxkUmVuZGVyZXJIaWdobGlnaHQpOgorICAgICAgICAqIHJlbmRlcmluZy9JbmxpbmVGbG93
Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklubGluZUZsb3dCb3g6OmFkZEJvcmRlck91dHNl
dFZpc3VhbE92ZXJmbG93KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94Lmg6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6Om1hcmdpbkxvZ2ljYWxMZWZ0KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckJveDo6bWFyZ2luTG9naWNhbFJpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckJveDo6c2V0TWFyZ2luQmVmb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJv
eDo6c2V0TWFyZ2luQWZ0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpzZXRNYXJn
aW5TdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OnNldE1hcmdpbkVuZCk6Cisg
ICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclN0eWxlOjpzZXRDbGlwKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxl
Ojpub25lRGFzaGJvYXJkUmVnaW9ucyk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlLmg6CisgICAgICAgIFVzZSB0aGUgbmV3IEJveEV4dGVudCBhY2Nlc3MgbWV0aG9kcyBm
b3IgZ2V0dGluZyBhbmQgc2V0dGluZ3MgdGhlIHNpZGVzIG9mCisgICAgICAgIExlbmd0aEJveCBh
bmQgTGF5b3V0Qm94RXh0ZW50LgorICAgICAgICAKKyAgICAgICAgKiBwbGF0Zm9ybS9MZW5ndGhC
b3guaDoKKyAgICAgICAgKFdlYkNvcmU6OkJveEV4dGVudDo6Qm94RXh0ZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkJveEV4dGVudDo6YXQpOgorICAgICAgICAoV2ViQ29yZTo6Qm94RXh0ZW50Ojp0
b3ApOgorICAgICAgICAoV2ViQ29yZTo6Qm94RXh0ZW50OjpyaWdodCk6CisgICAgICAgIChXZWJD
b3JlOjpCb3hFeHRlbnQ6OmJvdHRvbSk6CisgICAgICAgIChXZWJDb3JlOjpCb3hFeHRlbnQ6Omxl
ZnQpOgorICAgICAgICAoV2ViQ29yZTo6Qm94RXh0ZW50OjpzZXRBdCk6CisgICAgICAgIChXZWJD
b3JlOjpCb3hFeHRlbnQ6OnNldFRvcCk6CisgICAgICAgIChXZWJDb3JlOjpCb3hFeHRlbnQ6OnNl
dFJpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkJveEV4dGVudDo6c2V0Qm90dG9tKToKKyAgICAg
ICAgKFdlYkNvcmU6OkJveEV4dGVudDo6c2V0TGVmdCk6CisgICAgICAgIChXZWJDb3JlOjpCb3hF
eHRlbnQ6OmJlZm9yZSk6CisgICAgICAgIChXZWJDb3JlOjpCb3hFeHRlbnQ6OmVuZCk6CisgICAg
ICAgIChXZWJDb3JlOjpCb3hFeHRlbnQ6OmFmdGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkJveEV4
dGVudDo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6Qm94RXh0ZW50OjpzZXRCZWZvcmUpOgor
ICAgICAgICAoV2ViQ29yZTo6Qm94RXh0ZW50OjpzZXRFbmQpOgorICAgICAgICAoV2ViQ29yZTo6
Qm94RXh0ZW50OjpzZXRBZnRlcik6CisgICAgICAgIChXZWJDb3JlOjpCb3hFeHRlbnQ6OnNldFN0
YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkJveEV4dGVudDo6b3BlcmF0b3I9PSk6CisgICAgICAg
IChXZWJDb3JlOjpCb3hFeHRlbnQ6Om9wZXJhdG9yIT0pOgorICAgICAgICAoV2ViQ29yZTo6TGVu
Z3RoQm94OjpMZW5ndGhCb3gpOgorICAgICAgICAoV2ViQ29yZTo6TGVuZ3RoQm94Ojppc1plcm8p
OgorICAgICAgICAoV2ViQ29yZTo6TGVuZ3RoQm94OjpsZWZ0KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6Okxlbmd0aEJveDo6cmlnaHQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
TGVuZ3RoQm94Ojp0b3ApOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGVuZ3RoQm94Ojpi
b3R0b20pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGVuZ3RoQm94OjpvcGVyYXRvcj09
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okxlbmd0aEJveDo6b3BlcmF0b3IhPSk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMZW5ndGhCb3g6Om5vblplcm8pOiBEZWxldGVkLgor
ICAgICAgICBEZWZpbmUgYSBuZXcgdGVtcGxhdGUgY2xhc3MgZm9yICdCb3hFeHRlbnQnLiBBICdC
b3hFeHRlbnQnIHJlcHJlc2VudHMgdGhlCisgICAgICAgIGV4dGVudCBvZiBmb3VyIHNpZGVzIG9m
IGEgYm94LiBVc2UgdGhpcyBjbGFzcyB0ZW1wbGF0ZSB0byBkZWZpbmUgdGhlIGV4aXRpbmcgCisg
ICAgICAgIGNsYXNzZXMgJ0xlbmd0aEJveCcgYW5kICdMYXlvdXRCb3hFeHRlbnQnLiBVc2UgaXQg
YWxzbyB0byBhbmQgZGVmaW5lIHRoZQorICAgICAgICBuZXcgY2xhc3MgRmxvYXRCb3hFeHRlbnQK
KyAgICAgICAgICAgIAorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6Y2FsY3VsYXRlSW1h
Z2VJbnRyaW5zaWNEaW1lbnNpb25zKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94TW9k
ZWxPYmplY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveE1vZGVsT2JqZWN0OjpjYWxj
dWxhdGVGaWxsVGlsZVNpemUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaXN0TWFya2Vy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxpc3RNYXJrZXI6OnVwZGF0ZUNvbnRlbnQp
OgorICAgICAgICAqIHJlbmRlcmluZy9zaGFwZXMvU2hhcGVPdXRzaWRlSW5mby5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTaGFwZU91dHNpZGVJbmZvOjpjcmVhdGVTaGFwZUZvckltYWdlKToKKyAg
ICAgICAgQ2hhbmdlIHRoZSByZXR1cm4gdmFsdWUgb2YgY2FsY3VsYXRlSW1hZ2VJbnRyaW5zaWNE
aW1lbnNpb25zKCkgdG8gYmUgYQorICAgICAgICBib29sIHdoaWNoIGluZGljYXRlcyB3aGV0aGVy
IHRoZSBpbWFnZSBoYXMgYW4gaW50cmluc2ljIHNpemUgb3Igbm90LiBBZGQKKyAgICAgICAgYSBu
ZXcgcmVmZXJlbmNlIGFyZ3VtZW50IHRvIHRoaXMgZnVuY3Rpb24gcmVjZWl2ZSB0aGUgcmVzb2x2
ZWQgaW1hZ2Ugc2l6ZS4KKyAgICAgICAgCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3hNb2Rl
bE9iamVjdDo6cGFpbnROaW5lUGllY2VJbWFnZSk6IE1vdmUgYWxsIHRoZSBwYWludGluZworICAg
ICAgICBjb2RlIG9mIHRoaXMgZnVuY3Rpb24gdG8gTmluZVBpZWNlSW1hZ2U6OnBhaW50KCkKKyAg
ICAgICAgCisgICAgICAgIChXZWJDb3JlOjpjb21wdXRlQm9yZGVySW1hZ2VTaWRlKTogRGVsZXRl
ZC4KKyAgICAgICAgUmVuYW1lZCB0byBiZSBOaW5lUGllY2VJbWFnZTo6Y29tcHV0ZVNsaWNlKCku
CisgICAgICAgIAorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9Cb3JkZXJEYXRhLmg6CisgICAg
ICAgIChXZWJDb3JlOjpCb3JkZXJEYXRhOjpib3JkZXJXaWR0aCk6IEFkZCBhIG5ldyBtZXRob2Qg
dG8gcmV0dXJuIHRoZSBleHRlbnRzCisgICAgICAgIG9mIHRoZSBib3JkZXIgaW4gYSBGbG9hdEJv
eEV4dGVudC4KKyAgICAgICAgCisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL05pbmVQaWVjZUlt
YWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5pbmVQaWVjZUltYWdlOjpjb21wdXRlU2xpY2Up
OiBNb3ZlZCBmcm9tIE5pbmVQaWVjZUltYWdlOjpjb21wdXRlU2xpY2UoKS4KKyAgICAgICAgCisg
ICAgICAgIChXZWJDb3JlOjpOaW5lUGllY2VJbWFnZTo6Y29tcHV0ZVNsaWNlcyk6IFRoZSBmaXJz
dCB2ZXJzaW9uIG9mIHRoaXMgZnVuY3Rpb24KKyAgICAgICAgY29tcHV0ZXMgdGhlIHNsaWNlcyBn
aXZlbiB0aGVpciBsZW5ndGhzLiBUaGUgc2xpY2VzIGhhdmUgdG8gYmUgY2xhbXBlZCB0bworICAg
ICAgICB0aGUgY29udGFpbmVyIHNpemUuIFRoZSBzZWNvbmQgdmVyc2lvbiBvZiB0aGlzIGZ1bmN0
aW9uIGNvbXB1dGVzIHRoZSBzbGljZXMKKyAgICAgICAgZ2l2ZW4gdGhlaXIgbGVuZ3RocywgdGhl
aXIgYWN0dWFsIGV4dGVudHMgYW5kIHRoZWlyIHNvdXJjZSBzbGljZXMuCisgICAgICAgIAorICAg
ICAgICAoV2ViQ29yZTo6TmluZVBpZWNlSW1hZ2U6OnNjYWxlU2xpY2VzSWZOZWVkZWQpOiAgUmVk
dWNlIHRoZSBzbGljZXMgaWYgdGhleQorICAgICAgICBhcmUgdG9vIGxhcmdlLgorICAgICAgICAK
KyAgICAgICAgKFdlYkNvcmU6Ok5pbmVQaWVjZUltYWdlOjppc0VtcHR5UGllY2VSZWN0KTogUmV0
dXJucyB0cnVlIGlmIGFuIEltYWdlUGllY2UKKyAgICAgICAgc2hvdWxkIG5vdCBiZSBkcmF3bi4K
KyAgICAgICAgCisgICAgICAgIChXZWJDb3JlOjpOaW5lUGllY2VJbWFnZTo6aG9yaXpvbnRhbFRp
bGVSdWxlcyk6CisgICAgICAgIChXZWJDb3JlOjpOaW5lUGllY2VJbWFnZTo6dmVydGljYWxUaWxl
UnVsZXMpOgorICAgICAgICBGaWxsIHZlY3RvcnMgb2YgdGlsaW5nIHJ1bGVzIHRvIGJlIHBhc3Nl
ZCB0byBHcmFwaGljc0NvbnRleHQ6OmRyYXdUaWxlZEltYWdlKCkKKyAgICAgICAgCisgICAgICAg
IChXZWJDb3JlOjpOaW5lUGllY2VJbWFnZTo6Y29tcHV0ZUludHJpbnNpY1JlY3RzKTogQ29tcHV0
ZXMgdGhlIG5pbmUgcGllY2VzCisgICAgICAgIHJlY3RhbmdsZXMgZm9yIGFuIGludHJpbnNpYy1z
aXplZCBjb250YWluZXIuCisgICAgICAgIAorICAgICAgICAoV2ViQ29yZTo6TmluZVBpZWNlSW1h
Z2U6OmNvbXB1dGVOb25JbnRyaW5zaWNSZWN0cyk6IENvbXB1dGVzIHRoZSBuaW5lCisgICAgICAg
IHBpZWNlcyByZWN0YW5nbGVzIGZvciBhbiBub24taW50cmluc2ljLXNpemVkIHNvdXJjZSBpbWFn
ZS4gVGhlIGNvbXB1dGVkCisgICAgICAgIHJlY3RhbmdsZXMgaGF2ZSB0byBzdGFydCBhdCAoMCwg
MCkgYW5kIHRoZWlyIHNpemVzIHNob3VsZCBiZSBlcXVhbCB0bworICAgICAgICB0aGUgc2l6ZXMg
b2YgdGhlIG5pbmUgcGllY2VzIHJlY3RhbmdsZXMgb2YgdGhlIGRlc3RpbmF0aW9uIGNvbnRhaW5l
ci4KKyAgICAgICAgCisgICAgICAgIChXZWJDb3JlOjpOaW5lUGllY2VJbWFnZTo6Y29tcHV0ZUlu
dHJpbnNpY1NpZGVUaWxlU2NhbGUpOgorICAgICAgICAoV2ViQ29yZTo6TmluZVBpZWNlSW1hZ2U6
OmNvbXB1dGVJbnRyaW5zaWNNaWRkbGVUaWxlU2NhbGUpOgorICAgICAgICAoV2ViQ29yZTo6Tmlu
ZVBpZWNlSW1hZ2U6OmNvbXB1dGVJbnRyaW5zaWNUaWxlU2NhbGVzKToKKyAgICAgICAgKFdlYkNv
cmU6Ok5pbmVQaWVjZUltYWdlOjpjb21wdXRlTm9uSW50cmluc2ljVGlsZVNjYWxlcyk6CisgICAg
ICAgIENvbXB1dGVzIHRoZSBzY2FsaW5nIGZhY3RvcnMgZm9yIGRyYXdpbmcgdGhlIHRpbGVzLiBG
b3Igbm9uLWludHJpbnNpYyBzb3VyY2UKKyAgICAgICAgaW1hZ2VzLCB0aGVyZSBzaG91bGQgbm90
IGJlIGFueSBzY2FsaW5nIGZhY3RvcnMuIAorICAgICAgICAKKyAgICAgICAgKFdlYkNvcmU6Ok5p
bmVQaWVjZUltYWdlOjpwYWludCk6IE1vdmVkIGZyb20gUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBh
aW50TmluZVBpZWNlSW1hZ2UoKQorICAgICAgICBidXQgc2ltcGxpZmllZCBhbmQgcmVzdHJ1Y3R1
cmVkLgorICAgICAgICAKKyAgICAgICAgKFdlYkNvcmU6Ok5pbmVQaWVjZUltYWdlRGF0YTo6Tmlu
ZVBpZWNlSW1hZ2VEYXRhKTogVXNlIG51bGxwdHIgaW5zdGVhZCBvZiAwLgorICAgICAgICAKKyAg
ICAgICAgKiByZW5kZXJpbmcvc3R5bGUvTmluZVBpZWNlSW1hZ2UuaDoKKyAgICAgICAgKFdlYkNv
cmU6Om9wZXJhdG9yKyspOgorICAgICAgICAoV2ViQ29yZTo6aXNDb3JuZXJQaWVjZSk6IAorICAg
ICAgICAoV2ViQ29yZTo6aXNNaWRkbGVQaWVjZSk6CisgICAgICAgIChXZWJDb3JlOjppbWFnZVBp
ZWNlSG9yaXpvbnRhbFNpZGUpOgorICAgICAgICAoV2ViQ29yZTo6aW1hZ2VQaWVjZVZlcnRpY2Fs
U2lkZSk6CisgICAgICAgIEFkZCBoZWxwZXIgZnVuY3Rpb25zIGZvciB0aGUgZW51bSBJbWFnZVBp
ZWNlLgorCiAyMDE1LTA1LTI2ICBSb2dlciBGb25nICA8cm9nZXJfZm9uZ0BhcHBsZS5jb20+CiAK
ICAgICAgICAgRW5hYmxlIGVsZW1lbnQgdW5zaWduZWQgaW5kZXggaW4gV2ViR0wyIGFnYWluLgpJ
bmRleDogU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDE4NDg4OSkKKysrIFNvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yMDQ0LDcgKzIwNDQsNiBAQCBz
ZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0vS2lsbFJpbmdOb25lLmNwcAogICAgIHBs
YXRmb3JtL0xhbmd1YWdlLmNwcAogICAgIHBsYXRmb3JtL0xlbmd0aC5jcHAKLSAgICBwbGF0Zm9y
bS9MZW5ndGhCb3guY3BwCiAgICAgcGxhdGZvcm0vTGlua0hhc2guY3BwCiAgICAgcGxhdGZvcm0v
TG9nZ2luZy5jcHAKICAgICBwbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmNwcApAQCAtMjE1MSw3
ICsyMTUwLDYgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0lu
dFJlY3QuY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvSW50U2l6ZS5jcHAKICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9JU09WVFRDdWUuY3BwCi0gICAgcGxhdGZvcm0vZ3JhcGhpY3MvTGF5b3V0Qm94
RXh0ZW50LmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0xheW91dFJlY3QuY3BwCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvTWFza0ltYWdlT3BlcmF0aW9uLmNwcAogICAgIHBsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyLmNwcApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9q
L1dlYkNvcmUudmN4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
eHByb2ovV2ViQ29yZS52Y3hwcm9qCShyZXZpc2lvbiAxODQ4ODkpCisrKyBTb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC03OTk2
LDcgKzc5OTYsNiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cVVJMLmNw
cCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXExhbmd1YWdlLmNwcCIg
Lz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXExlbmd0aC5jcHAiIC8+Ci0g
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxMZW5ndGhCb3guY3BwIiAvPgogICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cTGlua0hhc2guY3BwIiAvPgogICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cTG9jYWxpemVkU3RyaW5ncy5jcHAiIC8+CiAg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxMb2dnaW5nLmNwcCIgLz4KQEAgLTgy
MTUsNyArODIxNCw2IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFw
aGljc1xJbnRQb2ludC5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9y
bVxncmFwaGljc1xJbnRSZWN0LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBs
YXRmb3JtXGdyYXBoaWNzXEludFNpemUuY3BwIiAvPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5ccGxhdGZvcm1cZ3JhcGhpY3NcTGF5b3V0Qm94RXh0ZW50LmNwcCIgLz4KICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXExheW91dFJlY3QuY3BwIiAvPgogICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcTWVkaWFQbGF5ZXIuY3Bw
IiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcUGF0aC5j
cHAiIC8+CkBAIC0yMDAxMSw3ICsyMDAwOSw2IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxwbGF0Zm9ybVxncmFwaGljc1xJbnRTaXplLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxwbGF0Zm9ybVxncmFwaGljc1xJbnRTaXplSGFzaC5oIiAvPgogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcSVNPVlRUQ3VlLmgiIC8+Ci0gICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xMYXlvdXRCb3hFeHRlbnQuaCIgLz4K
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXExheW91dFBvaW50
LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xMYXlv
dXRSZWN0LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGlj
c1xMYXlvdXRTaXplLmgiIC8+CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ov
V2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCShyZXZpc2lvbiAxODQ4ODkpCisr
KyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMJ
KHdvcmtpbmcgY29weSkKQEAgLTExMTMsOSArMTExMyw2IEBACiAgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxwbGF0Zm9ybVxMZW5ndGguY3BwIj4KICAgICAgIDxGaWx0ZXI+cGxhdGZvcm08L0Zp
bHRlcj4KICAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRm
b3JtXExlbmd0aEJveC5jcHAiPgotICAgICAgPEZpbHRlcj5wbGF0Zm9ybTwvRmlsdGVyPgotICAg
IDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cTGlua0hh
c2guY3BwIj4KICAgICAgIDxGaWx0ZXI+cGxhdGZvcm08L0ZpbHRlcj4KICAgICA8L0NsQ29tcGls
ZT4KQEAgLTEzNzEsOSArMTM2OCw2IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0
Zm9ybVxncmFwaGljc1xJbnRTaXplLmNwcCI+CiAgICAgICA8RmlsdGVyPnBsYXRmb3JtXGdyYXBo
aWNzPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIu
LlxwbGF0Zm9ybVxncmFwaGljc1xMYXlvdXRCb3hFeHRlbnQuY3BwIj4KLSAgICAgIDxGaWx0ZXI+
cGxhdGZvcm1cZ3JhcGhpY3M8L0ZpbHRlcj4KLSAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXExheW91dFJlY3QuY3BwIj4KICAgICAg
IDxGaWx0ZXI+cGxhdGZvcm1cZ3JhcGhpY3M8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAg
LTg0OTYsOSArODQ5MCw2IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxn
cmFwaGljc1xJbnRTaXplSGFzaC5oIj4KICAgICAgIDxGaWx0ZXI+cGxhdGZvcm1cZ3JhcGhpY3M8
L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBs
YXRmb3JtXGdyYXBoaWNzXExheW91dEJveEV4dGVudC5oIj4KLSAgICAgIDxGaWx0ZXI+cGxhdGZv
cm1cZ3JhcGhpY3M8L0ZpbHRlcj4KLSAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXExheW91dFBvaW50LmgiPgogICAgICAgPEZpbHRl
cj5wbGF0Zm9ybVxncmFwaGljczwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpJbmRleDogU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2
aXNpb24gMTg0ODg5KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC01OTAsOCArNTkwLDYgQEAKIAkJMTQxMTVCNzMw
OUY4NENENjAwQ0E0RkMxIC8qIEpTTm9kZUZpbHRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQxMTVCNzEwOUY4NENENjAwQ0E0RkMxIC8qIEpTTm9k
ZUZpbHRlci5oICovOyB9OwogCQkxNDExRENCMTE2NEMzOUE4MDBENDlCQzEgLyogV2lkdGhDYWNo
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQxMURD
QjAxNjRDMzlBODAwRDQ5QkMxIC8qIFdpZHRoQ2FjaGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxNDFEQzA0ODE2NDgzNDhGMDAzNzFFNUEgLyog
TGF5b3V0VW5pdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMTQxREMwNDcxNjQ4MzQ4RjAwMzcxRTVBIC8qIExheW91dFVuaXQuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkxNDFEQzA0RjE2NDgzNEI5MDAz
NzFFNUEgLyogTGF5b3V0Qm94RXh0ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDE0MURDMDQ5MTY0ODM0QjkwMDM3MUU1QSAvKiBMYXlvdXRCb3hF
eHRlbnQuY3BwICovOyB9OwotCQkxNDFEQzA1MDE2NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0Qm94
RXh0ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
NDFEQzA0QTE2NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0Qm94RXh0ZW50LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMTQxREMwNTExNjQ4MzRCOTAw
MzcxRTVBIC8qIExheW91dFBvaW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxNDFEQzA0QjE2NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0UG9pbnQuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxNDFEQzA1
MjE2NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0UmVjdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDFEQzA0QzE2NDgzNEI5MDAzNzFFNUEgLyogTGF5
b3V0UmVjdC5jcHAgKi87IH07CiAJCTE0MURDMDUzMTY0ODM0QjkwMDM3MUU1QSAvKiBMYXlvdXRS
ZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDFE
QzA0RDE2NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0UmVjdC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC02MDUsNyArNjAzLDYgQEAKIAkJMTQ0NzZB
QTgxNURDNEJCMTAwMzA1REIyIC8qIFdyaXRpbmdNb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDQ3NkFBNzE1REM0QkIxMDAzMDVEQjIgLyogV3Jp
dGluZ01vZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQkxNDQ5RTI0QzEwN0Q0QTg0MDBCNTc5M0YgLyogSlNDYWxsYmFja0RhdGEuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0NDlFMjRBMTA3RDRBODQw
MEI1NzkzRiAvKiBKU0NhbGxiYWNrRGF0YS5oICovOyB9OwogCQkxNDQ5RTI4NzEwN0Q0REI0MDBC
NTc5M0YgLyogSlNDYWxsYmFja0RhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMTQ0OUUyODYxMDdENERCNDAwQjU3OTNGIC8qIEpTQ2FsbGJhY2tE
YXRhLmNwcCAqLzsgfTsKLQkJMTQ2Q0MxMTUxNTY5ODhFNDAwMTA5RTM3IC8qIExlbmd0aEJveC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDZDQzEx
MzE1Njk4OEJEMDAxMDlFMzcgLyogTGVuZ3RoQm94LmNwcCAqLzsgfTsKIAkJMTQ3N0U3NzYwQkY0
MTM0QTAwMTUyODcyIC8qIFBhZ2VDYWNoZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxNDc3RTc3NDBCRjQxMzRBMDAxNTI4NzIgLyogUGFnZUNhY2hl
LmNwcCAqLzsgfTsKIAkJMTQ3N0U3NzcwQkY0MTM0QTAwMTUyODcyIC8qIFBhZ2VDYWNoZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ3N0U3NzUwQkY0
MTM0QTAwMTUyODcyIC8qIFBhZ2VDYWNoZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTE0NzlGQUVEMTA5QUUzNzUwMERFRDY1NSAvKiBSZW5kZXJS
dWJ5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0
NzlGQUU1MTA5QUUzNzUwMERFRDY1NSAvKiBSZW5kZXJSdWJ5LmNwcCAqLzsgfTsKQEAgLTc2NjUs
OCArNzY2Miw2IEBACiAJCTE0MUI5NEU1MDlFQzQyMjMwMDBFOTQxMyAvKiBNb3VzZUV2ZW50Lmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTW91c2VFdmVudC5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTE0MUI5NEVFMDlFQzQyNUEwMDBFOTQxMyAvKiBVSUV2ZW50LmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gVUlFdmVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTE0MURDMDQ3MTY0ODM0OEYwMDM3MUU1QSAvKiBMYXlvdXRVbml0LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExheW91dFVuaXQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJMTQxREMwNDkxNjQ4MzRCOTAwMzcxRTVBIC8qIExheW91dEJveEV4dGVu
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMYXlvdXRCb3hFeHRl
bnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxNDFEQzA0QTE2NDgzNEI5MDAz
NzFFNUEgLyogTGF5b3V0Qm94RXh0ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IExheW91dEJveEV4dGVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNDFE
QzA0QjE2NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0UG9pbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTGF5b3V0UG9pbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMTQxREMwNEMxNjQ4MzRCOTAwMzcxRTVBIC8qIExheW91dFJlY3QuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGF5b3V0UmVjdC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTE0MURDMDREMTY0ODM0QjkwMDM3MUU1QSAvKiBMYXlvdXRSZWN0Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExheW91dFJlY3QuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTc2ODEsNyArNzY3Niw2IEBACiAJCTE0NDc2QUE3MTVEQzRC
QjEwMDMwNURCMiAvKiBXcml0aW5nTW9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXcml0aW5nTW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNDQ5RTI0
QTEwN0Q0QTg0MDBCNTc5M0YgLyogSlNDYWxsYmFja0RhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSlNDYWxsYmFja0RhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMTQ0OUUyODYxMDdENERCNDAwQjU3OTNGIC8qIEpTQ2FsbGJhY2tEYXRhLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ2FsbGJhY2tEYXRhLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMTQ2Q0MxMTMxNTY5ODhCRDAwMTA5RTM3IC8qIExl
bmd0aEJveC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMZW5ndGhC
b3guY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNDc3RTc3NDBCRjQxMzRBMDAx
NTI4NzIgLyogUGFnZUNhY2hlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBQYWdlQ2FjaGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNDc3RTc3
NTBCRjQxMzRBMDAxNTI4NzIgLyogUGFnZUNhY2hlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBQYWdlQ2FjaGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQ3
OUZBRTUxMDlBRTM3NTAwREVENjU1IC8qIFJlbmRlclJ1YnkuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyUnVieS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0yMDg4MCw4ICsyMDg3NCw2IEBACiAJCQkJMDdBQzQ2RkYxOTUyMTAyMTAwRUU5
NzIzIC8qIElTT1ZUVEN1ZS5jcHAgKi8sCiAJCQkJMDdBQzQ3MDAxOTUyMTAyMTAwRUU5NzIzIC8q
IElTT1ZUVEN1ZS5oICovLAogCQkJCTY1Q0M2QkVEMTYwMTRFQzAwMDBFRDI3RCAvKiBMYXRpbjFU
ZXh0SXRlcmF0b3IuaCAqLywKLQkJCQkxNDFEQzA0OTE2NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0
Qm94RXh0ZW50LmNwcCAqLywKLQkJCQkxNDFEQzA0QTE2NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0
Qm94RXh0ZW50LmggKi8sCiAJCQkJMTQxREMwNEIxNjQ4MzRCOTAwMzcxRTVBIC8qIExheW91dFBv
aW50LmggKi8sCiAJCQkJMTQxREMwNEMxNjQ4MzRCOTAwMzcxRTVBIC8qIExheW91dFJlY3QuY3Bw
ICovLAogCQkJCTE0MURDMDREMTY0ODM0QjkwMDM3MUU1QSAvKiBMYXlvdXRSZWN0LmggKi8sCkBA
IC0yMTc2Nyw3ICsyMTc1OSw2IEBACiAJCQkJMTQxREMwNDcxNjQ4MzQ4RjAwMzcxRTVBIC8qIExh
eW91dFVuaXQuaCAqLywKIAkJCQlCQ0U2NUJFODBFQUNERjE2MDA3RTQ1MzMgLyogTGVuZ3RoLmNw
cCAqLywKIAkJCQlCQ0U2NUJFOTBFQUNERjE2MDA3RTQ1MzMgLyogTGVuZ3RoLmggKi8sCi0JCQkJ
MTQ2Q0MxMTMxNTY5ODhCRDAwMTA5RTM3IC8qIExlbmd0aEJveC5jcHAgKi8sCiAJCQkJQkNGRjY0
OEYwRUFEMTVDMjAwQzFENkY3IC8qIExlbmd0aEJveC5oICovLAogCQkJCUJDRkY2NDkwMEVBRDE1
QzIwMEMxRDZGNyAvKiBMZW5ndGhTaXplLmggKi8sCiAJCQkJQTdBRDJGODUwRUM4OUQwNzAwOEFC
MDAyIC8qIExpbmtIYXNoLmNwcCAqLywKQEAgLTI1NzA4LDcgKzI1Njk5LDYgQEAKIAkJCQlFNDkx
NkZGNzE5NURGNkEwMDA1QUIzNDkgLyogTGF5ZXJGbHVzaFRocm90dGxlU3RhdGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTU4MDM3MTY0MUE2NkYxRDMwMEJBRjUxOSAvKiBMYXllckZyYWdtZW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk3QUEzQTZBMDE5NEI1OUI2MDAxQ0JEMjQgLyogTGF5ZXJQb29s
LmggaW4gSGVhZGVycyAqLywKLQkJCQkxNDFEQzA1MDE2NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0
Qm94RXh0ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzFENzJGNjE1RkU2OTUzMDBDNEMwN0Ug
LyogTGF5b3V0TWlsZXN0b25lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQxREMwNTExNjQ4MzRC
OTAwMzcxRTVBIC8qIExheW91dFBvaW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDFEQzA1MzE2
NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0UmVjdC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yOTMwNCw3
ICsyOTI5NCw2IEBACiAJCQkJMjkxN0I1NjExNDczNDk2QzAwNTJDOUQwIC8qIExheWVyRmx1c2hT
Y2hlZHVsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMjkxN0I1NjYxNDczNDk5NTAwNTJDOUQw
IC8qIExheWVyRmx1c2hTY2hlZHVsZXJNYWMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0FBM0E2
OUYxOTRCNTlCNjAwMUNCRDI0IC8qIExheWVyUG9vbC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkx
NDFEQzA0RjE2NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0Qm94RXh0ZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTE0MURDMDUyMTY0ODM0QjkwMDM3MUU1QSAvKiBMYXlvdXRSZWN0LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUExMjBBQ0E0MTNGOTk4Q0EwMEZFNEFDNyAvKiBMYXlvdXRSZXBhaW50
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5MDY2MDYwQkUxNDFENDAwOTU2OTk4IC8qIExh
eW91dFN0YXRlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjkzMTYsNyArMjkzMDUsNiBAQAogCQkJ
CTUxMkREOEY0MEQ5MUU2QUYwMDBGODlFRSAvKiBMZWdhY3lXZWJBcmNoaXZlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTUxQjI0MTdCMEQ5MzFGM0YwMEU4M0Y1QyAvKiBMZWdhY3lXZWJBcmNoaXZl
TWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNFNjVCRUEwRUFDREYxNjAwN0U0NTMzIC8qIExl
bmd0aC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkxNDZDQzExNTE1Njk4OEU0MDAxMDlFMzcgLyog
TGVuZ3RoQm94LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUU1NUY0OTdBMTUxQjg4ODAwMEJCNjdE
QiAvKiBMZW5ndGhGdW5jdGlvbnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkZCNjk4Q0MxODMz
RUUwRDAwMTU4QTMxIC8qIExpbmVCcmVha2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg5QjVF
QUExMTFFODAwM0QwMEYyMzY3RSAvKiBMaW5lRW5kaW5nLmNwcCBpbiBTb3VyY2VzICovLApJbmRl
eDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHkuY3BwCShyZXZpc2lvbiAxODQ4ODkpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NCw5ICs1
NCw2IEBAIHZvaWQgQ1NTUHJvcGVydHk6OndyYXBWYWx1ZUluQ29tbWFTZXBhcmEKICAgICBtX3Zh
bHVlID0gV1RGOjptb3ZlKGxpc3QpOwogfQogCi1lbnVtIExvZ2ljYWxCb3hTaWRlIHsgQmVmb3Jl
U2lkZSwgRW5kU2lkZSwgQWZ0ZXJTaWRlLCBTdGFydFNpZGUgfTsKLWVudW0gUGh5c2ljYWxCb3hT
aWRlIHsgVG9wU2lkZSwgUmlnaHRTaWRlLCBCb3R0b21TaWRlLCBMZWZ0U2lkZSB9OwotCiBzdGF0
aWMgQ1NTUHJvcGVydHlJRCByZXNvbHZlVG9QaHlzaWNhbFByb3BlcnR5KFRleHREaXJlY3Rpb24g
ZGlyZWN0aW9uLCBXcml0aW5nTW9kZSB3cml0aW5nTW9kZSwgTG9naWNhbEJveFNpZGUgbG9naWNh
bFNpZGUsIGNvbnN0IFN0eWxlUHJvcGVydHlTaG9ydGhhbmQmIHNob3J0aGFuZCkKIHsKICAgICBp
ZiAoZGlyZWN0aW9uID09IExUUikgewpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1RvU3R5
bGVNYXAuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUb1N0eWxlTWFw
LmNwcAkocmV2aXNpb24gMTg0ODg5KQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU1RvU3R5bGVN
YXAuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MTgsMjEgKzYxOCwyMSBAQCB2b2lkIENTU1RvU3R5
bGVNYXA6Om1hcE5pbmVQaWVjZUltYWdlU2xpCiAgICAgTGVuZ3RoQm94IGJveDsKICAgICBRdWFk
KiBzbGljZXMgPSBib3JkZXJJbWFnZVNsaWNlLnNsaWNlcygpOwogICAgIGlmIChzbGljZXMtPnRv
cCgpLT5pc1BlcmNlbnRhZ2UoKSkKLSAgICAgICAgYm94Lm1fdG9wID0gTGVuZ3RoKHNsaWNlcy0+
dG9wKCktPmdldERvdWJsZVZhbHVlKCksIFBlcmNlbnQpOworICAgICAgICBib3gudG9wKCkgPSBM
ZW5ndGgoc2xpY2VzLT50b3AoKS0+Z2V0RG91YmxlVmFsdWUoKSwgUGVyY2VudCk7CiAgICAgZWxz
ZQotICAgICAgICBib3gubV90b3AgPSBMZW5ndGgoc2xpY2VzLT50b3AoKS0+Z2V0SW50VmFsdWUo
Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVIpLCBGaXhlZCk7CisgICAgICAgIGJveC50b3Ao
KSA9IExlbmd0aChzbGljZXMtPnRvcCgpLT5nZXRJbnRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTX05VTUJFUiksIEZpeGVkKTsKICAgICBpZiAoc2xpY2VzLT5ib3R0b20oKS0+aXNQZXJjZW50
YWdlKCkpCi0gICAgICAgIGJveC5tX2JvdHRvbSA9IExlbmd0aChzbGljZXMtPmJvdHRvbSgpLT5n
ZXREb3VibGVWYWx1ZSgpLCBQZXJjZW50KTsKKyAgICAgICAgYm94LmJvdHRvbSgpID0gTGVuZ3Ro
KHNsaWNlcy0+Ym90dG9tKCktPmdldERvdWJsZVZhbHVlKCksIFBlcmNlbnQpOwogICAgIGVsc2UK
LSAgICAgICAgYm94Lm1fYm90dG9tID0gTGVuZ3RoKChpbnQpc2xpY2VzLT5ib3R0b20oKS0+Z2V0
RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUiksIEZpeGVkKTsKKyAgICAg
ICAgYm94LmJvdHRvbSgpID0gTGVuZ3RoKChpbnQpc2xpY2VzLT5ib3R0b20oKS0+Z2V0RmxvYXRW
YWx1ZShDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUiksIEZpeGVkKTsKICAgICBpZiAoc2xp
Y2VzLT5sZWZ0KCktPmlzUGVyY2VudGFnZSgpKQotICAgICAgICBib3gubV9sZWZ0ID0gTGVuZ3Ro
KHNsaWNlcy0+bGVmdCgpLT5nZXREb3VibGVWYWx1ZSgpLCBQZXJjZW50KTsKKyAgICAgICAgYm94
LmxlZnQoKSA9IExlbmd0aChzbGljZXMtPmxlZnQoKS0+Z2V0RG91YmxlVmFsdWUoKSwgUGVyY2Vu
dCk7CiAgICAgZWxzZQotICAgICAgICBib3gubV9sZWZ0ID0gTGVuZ3RoKHNsaWNlcy0+bGVmdCgp
LT5nZXRJbnRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUiksIEZpeGVkKTsKKyAg
ICAgICAgYm94LmxlZnQoKSA9IExlbmd0aChzbGljZXMtPmxlZnQoKS0+Z2V0SW50VmFsdWUoQ1NT
UHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVIpLCBGaXhlZCk7CiAgICAgaWYgKHNsaWNlcy0+cmln
aHQoKS0+aXNQZXJjZW50YWdlKCkpCi0gICAgICAgIGJveC5tX3JpZ2h0ID0gTGVuZ3RoKHNsaWNl
cy0+cmlnaHQoKS0+Z2V0RG91YmxlVmFsdWUoKSwgUGVyY2VudCk7CisgICAgICAgIGJveC5yaWdo
dCgpID0gTGVuZ3RoKHNsaWNlcy0+cmlnaHQoKS0+Z2V0RG91YmxlVmFsdWUoKSwgUGVyY2VudCk7
CiAgICAgZWxzZQotICAgICAgICBib3gubV9yaWdodCA9IExlbmd0aChzbGljZXMtPnJpZ2h0KCkt
PmdldEludFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfTlVNQkVSKSwgRml4ZWQpOworICAg
ICAgICBib3gucmlnaHQoKSA9IExlbmd0aChzbGljZXMtPnJpZ2h0KCktPmdldEludFZhbHVlKENT
U1ByaW1pdGl2ZVZhbHVlOjpDU1NfTlVNQkVSKSwgRml4ZWQpOwogICAgIGltYWdlLnNldEltYWdl
U2xpY2VzKGJveCk7CiAKICAgICAvLyBTZXQgb3VyIGZpbGwgbW9kZS4KQEAgLTY1NCwzMiArNjU0
LDMyIEBAIExlbmd0aEJveCBDU1NUb1N0eWxlTWFwOjptYXBOaW5lUGllY2VJbWEKICAgICBMZW5n
dGhCb3ggYm94OyAvLyBEZWZhdWx0cyB0byAnYXV0bycgc28gd2UgZG9uJ3QgaGF2ZSB0byBoYW5k
bGUgdGhhdCBleHBsaWNpdGx5IGJlbG93LgogICAgIFF1YWQqIHNsaWNlcyA9IGJvcmRlcldpZHRo
cy5nZXRRdWFkVmFsdWUoKTsKICAgICBpZiAoc2xpY2VzLT50b3AoKS0+aXNOdW1iZXIoKSkKLSAg
ICAgICAgYm94Lm1fdG9wID0gTGVuZ3RoKHNsaWNlcy0+dG9wKCktPmdldEludFZhbHVlKCksIFJl
bGF0aXZlKTsKKyAgICAgICAgYm94LnRvcCgpID0gTGVuZ3RoKHNsaWNlcy0+dG9wKCktPmdldElu
dFZhbHVlKCksIFJlbGF0aXZlKTsKICAgICBlbHNlIGlmIChzbGljZXMtPnRvcCgpLT5pc1BlcmNl
bnRhZ2UoKSkKLSAgICAgICAgYm94Lm1fdG9wID0gTGVuZ3RoKHNsaWNlcy0+dG9wKCktPmdldERv
dWJsZVZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUEVSQ0VOVEFHRSksIFBlcmNlbnQpOwor
ICAgICAgICBib3gudG9wKCkgPSBMZW5ndGgoc2xpY2VzLT50b3AoKS0+Z2V0RG91YmxlVmFsdWUo
Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QRVJDRU5UQUdFKSwgUGVyY2VudCk7CiAgICAgZWxzZSBp
ZiAoc2xpY2VzLT50b3AoKS0+Z2V0VmFsdWVJRCgpICE9IENTU1ZhbHVlQXV0bykKLSAgICAgICAg
Ym94Lm1fdG9wID0gc2xpY2VzLT50b3AoKS0+Y29tcHV0ZUxlbmd0aDxMZW5ndGg+KGNvbnZlcnNp
b25EYXRhKTsKKyAgICAgICAgYm94LnRvcCgpID0gc2xpY2VzLT50b3AoKS0+Y29tcHV0ZUxlbmd0
aDxMZW5ndGg+KGNvbnZlcnNpb25EYXRhKTsKIAogICAgIGlmIChzbGljZXMtPnJpZ2h0KCktPmlz
TnVtYmVyKCkpCi0gICAgICAgIGJveC5tX3JpZ2h0ID0gTGVuZ3RoKHNsaWNlcy0+cmlnaHQoKS0+
Z2V0SW50VmFsdWUoKSwgUmVsYXRpdmUpOworICAgICAgICBib3gucmlnaHQoKSA9IExlbmd0aChz
bGljZXMtPnJpZ2h0KCktPmdldEludFZhbHVlKCksIFJlbGF0aXZlKTsKICAgICBlbHNlIGlmIChz
bGljZXMtPnJpZ2h0KCktPmlzUGVyY2VudGFnZSgpKQotICAgICAgICBib3gubV9yaWdodCA9IExl
bmd0aChzbGljZXMtPnJpZ2h0KCktPmdldERvdWJsZVZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlOjpD
U1NfUEVSQ0VOVEFHRSksIFBlcmNlbnQpOworICAgICAgICBib3gucmlnaHQoKSA9IExlbmd0aChz
bGljZXMtPnJpZ2h0KCktPmdldERvdWJsZVZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUEVS
Q0VOVEFHRSksIFBlcmNlbnQpOwogICAgIGVsc2UgaWYgKHNsaWNlcy0+cmlnaHQoKS0+Z2V0VmFs
dWVJRCgpICE9IENTU1ZhbHVlQXV0bykKLSAgICAgICAgYm94Lm1fcmlnaHQgPSBzbGljZXMtPnJp
Z2h0KCktPmNvbXB1dGVMZW5ndGg8TGVuZ3RoPihjb252ZXJzaW9uRGF0YSk7CisgICAgICAgIGJv
eC5yaWdodCgpID0gc2xpY2VzLT5yaWdodCgpLT5jb21wdXRlTGVuZ3RoPExlbmd0aD4oY29udmVy
c2lvbkRhdGEpOwogCiAgICAgaWYgKHNsaWNlcy0+Ym90dG9tKCktPmlzTnVtYmVyKCkpCi0gICAg
ICAgIGJveC5tX2JvdHRvbSA9IExlbmd0aChzbGljZXMtPmJvdHRvbSgpLT5nZXRJbnRWYWx1ZSgp
LCBSZWxhdGl2ZSk7CisgICAgICAgIGJveC5ib3R0b20oKSA9IExlbmd0aChzbGljZXMtPmJvdHRv
bSgpLT5nZXRJbnRWYWx1ZSgpLCBSZWxhdGl2ZSk7CiAgICAgZWxzZSBpZiAoc2xpY2VzLT5ib3R0
b20oKS0+aXNQZXJjZW50YWdlKCkpCi0gICAgICAgIGJveC5tX2JvdHRvbSA9IExlbmd0aChzbGlj
ZXMtPmJvdHRvbSgpLT5nZXREb3VibGVWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BFUkNF
TlRBR0UpLCBQZXJjZW50KTsKKyAgICAgICAgYm94LmJvdHRvbSgpID0gTGVuZ3RoKHNsaWNlcy0+
Ym90dG9tKCktPmdldERvdWJsZVZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUEVSQ0VOVEFH
RSksIFBlcmNlbnQpOwogICAgIGVsc2UgaWYgKHNsaWNlcy0+Ym90dG9tKCktPmdldFZhbHVlSUQo
KSAhPSBDU1NWYWx1ZUF1dG8pCi0gICAgICAgIGJveC5tX2JvdHRvbSA9IHNsaWNlcy0+Ym90dG9t
KCktPmNvbXB1dGVMZW5ndGg8TGVuZ3RoPihjb252ZXJzaW9uRGF0YSk7CisgICAgICAgIGJveC5i
b3R0b20oKSA9IHNsaWNlcy0+Ym90dG9tKCktPmNvbXB1dGVMZW5ndGg8TGVuZ3RoPihjb252ZXJz
aW9uRGF0YSk7CiAKICAgICBpZiAoc2xpY2VzLT5sZWZ0KCktPmlzTnVtYmVyKCkpCi0gICAgICAg
IGJveC5tX2xlZnQgPSBMZW5ndGgoc2xpY2VzLT5sZWZ0KCktPmdldEludFZhbHVlKCksIFJlbGF0
aXZlKTsKKyAgICAgICAgYm94LmxlZnQoKSA9IExlbmd0aChzbGljZXMtPmxlZnQoKS0+Z2V0SW50
VmFsdWUoKSwgUmVsYXRpdmUpOwogICAgIGVsc2UgaWYgKHNsaWNlcy0+bGVmdCgpLT5pc1BlcmNl
bnRhZ2UoKSkKLSAgICAgICAgYm94Lm1fbGVmdCA9IExlbmd0aChzbGljZXMtPmxlZnQoKS0+Z2V0
RG91YmxlVmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QRVJDRU5UQUdFKSwgUGVyY2VudCk7
CisgICAgICAgIGJveC5sZWZ0KCkgPSBMZW5ndGgoc2xpY2VzLT5sZWZ0KCktPmdldERvdWJsZVZh
bHVlKENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUEVSQ0VOVEFHRSksIFBlcmNlbnQpOwogICAgIGVs
c2UgaWYgKHNsaWNlcy0+bGVmdCgpLT5nZXRWYWx1ZUlEKCkgIT0gQ1NTVmFsdWVBdXRvKQotICAg
ICAgICBib3gubV9sZWZ0ID0gc2xpY2VzLT5sZWZ0KCktPmNvbXB1dGVMZW5ndGg8TGVuZ3RoPihj
b252ZXJzaW9uRGF0YSk7CisgICAgICAgIGJveC5sZWZ0KCkgPSBzbGljZXMtPmxlZnQoKS0+Y29t
cHV0ZUxlbmd0aDxMZW5ndGg+KGNvbnZlcnNpb25EYXRhKTsKIAogICAgIHJldHVybiBib3g7CiB9
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVG9TdHlsZU1hcC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUb1N0eWxlTWFwLmgJKHJldmlzaW9uIDE4NDg4OSkKKysr
IFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUb1N0eWxlTWFwLmgJKHdvcmtpbmcgY29weSkKQEAgLTM2
LDcgKzM2LDcgQEAgY2xhc3MgU3R5bGVJbWFnZTsKIGNsYXNzIFN0eWxlUmVzb2x2ZXI7CiBjbGFz
cyBOaW5lUGllY2VJbWFnZTsKIAotc3RydWN0IExlbmd0aEJveDsKK2NsYXNzIExlbmd0aEJveDsK
IAogY2xhc3MgQ1NTVG9TdHlsZU1hcCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQ1NTVG9T
dHlsZU1hcCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3Zlcmxh
eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92
ZXJsYXkuY3BwCShyZXZpc2lvbiAxODQ4ODkpCisrKyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yT3ZlcmxheS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExMSw4ICsxMTEsOCBAQCBz
dGF0aWMgdm9pZCBidWlsZFJlbmRlcmVySGlnaGxpZ2h0KFJlbmRlCiAgICAgICAgICAgICBpZiAo
IXJlbmRlckJveC5pc091dE9mRmxvd1Bvc2l0aW9uZWQoKSAmJiByZWdpb24pIHsKICAgICAgICAg
ICAgICAgICBSZW5kZXJCb3g6OkxvZ2ljYWxFeHRlbnRDb21wdXRlZFZhbHVlcyBjb21wdXRlZFZh
bHVlczsKICAgICAgICAgICAgICAgICByZW5kZXJCb3guY29tcHV0ZUxvZ2ljYWxXaWR0aEluUmVn
aW9uKGNvbXB1dGVkVmFsdWVzLCByZWdpb24pOwotICAgICAgICAgICAgICAgIG1hcmdpbnMubXV0
YWJsZUxvZ2ljYWxMZWZ0KHJlbmRlckJveC5zdHlsZSgpLndyaXRpbmdNb2RlKCkpID0gY29tcHV0
ZWRWYWx1ZXMubV9tYXJnaW5zLm1fc3RhcnQ7Ci0gICAgICAgICAgICAgICAgbWFyZ2lucy5tdXRh
YmxlTG9naWNhbFJpZ2h0KHJlbmRlckJveC5zdHlsZSgpLndyaXRpbmdNb2RlKCkpID0gY29tcHV0
ZWRWYWx1ZXMubV9tYXJnaW5zLm1fZW5kOworICAgICAgICAgICAgICAgIG1hcmdpbnMuc3RhcnQo
cmVuZGVyQm94LnN0eWxlKCkud3JpdGluZ01vZGUoKSkgPSBjb21wdXRlZFZhbHVlcy5tX21hcmdp
bnMubV9zdGFydDsKKyAgICAgICAgICAgICAgICBtYXJnaW5zLmVuZChyZW5kZXJCb3guc3R5bGUo
KS53cml0aW5nTW9kZSgpKSA9IGNvbXB1dGVkVmFsdWVzLm1fbWFyZ2lucy5tX2VuZDsKICAgICAg
ICAgICAgIH0KIAogICAgICAgICAgICAgcGFkZGluZ0JveCA9IHJlbmRlckJveC5jbGllbnRCb3hS
ZWN0SW5SZWdpb24ocmVnaW9uKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xlbmd0
aEJveC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGVuZ3RoQm94
LmNwcAkocmV2aXNpb24gMTg0ODg5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGVuZ3Ro
Qm94LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw5MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChjKSAyMDEyLCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24u
Ci0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcu
aCIKLSNpbmNsdWRlICJMZW5ndGhCb3guaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jb25z
dCBMZW5ndGgmIExlbmd0aEJveDo6bG9naWNhbExlZnQoV3JpdGluZ01vZGUgd3JpdGluZ01vZGUp
IGNvbnN0Ci17Ci0gICAgcmV0dXJuIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKHdyaXRpbmdNb2Rl
KSA/IG1fbGVmdCA6IG1fdG9wOwotfQotCi1jb25zdCBMZW5ndGgmIExlbmd0aEJveDo6bG9naWNh
bFJpZ2h0KFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlKSBjb25zdAotewotICAgIHJldHVybiBpc0hv
cml6b250YWxXcml0aW5nTW9kZSh3cml0aW5nTW9kZSkgPyBtX3JpZ2h0IDogbV9ib3R0b207Ci19
Ci0KLWNvbnN0IExlbmd0aCYgTGVuZ3RoQm94OjpiZWZvcmUoV3JpdGluZ01vZGUgd3JpdGluZ01v
ZGUpIGNvbnN0Ci17Ci0gICAgc3dpdGNoICh3cml0aW5nTW9kZSkgewotICAgIGNhc2UgVG9wVG9C
b3R0b21Xcml0aW5nTW9kZToKLSAgICAgICAgcmV0dXJuIG1fdG9wOwotICAgIGNhc2UgQm90dG9t
VG9Ub3BXcml0aW5nTW9kZToKLSAgICAgICAgcmV0dXJuIG1fYm90dG9tOwotICAgIGNhc2UgTGVm
dFRvUmlnaHRXcml0aW5nTW9kZToKLSAgICAgICAgcmV0dXJuIG1fbGVmdDsKLSAgICBjYXNlIFJp
Z2h0VG9MZWZ0V3JpdGluZ01vZGU6Ci0gICAgICAgIHJldHVybiBtX3JpZ2h0OwotICAgIH0KLSAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gbV90b3A7Ci19Ci0KLWNvbnN0IExl
bmd0aCYgTGVuZ3RoQm94OjphZnRlcihXcml0aW5nTW9kZSB3cml0aW5nTW9kZSkgY29uc3QKLXsK
LSAgICBzd2l0Y2ggKHdyaXRpbmdNb2RlKSB7Ci0gICAgY2FzZSBUb3BUb0JvdHRvbVdyaXRpbmdN
b2RlOgotICAgICAgICByZXR1cm4gbV9ib3R0b207Ci0gICAgY2FzZSBCb3R0b21Ub1RvcFdyaXRp
bmdNb2RlOgotICAgICAgICByZXR1cm4gbV90b3A7Ci0gICAgY2FzZSBMZWZ0VG9SaWdodFdyaXRp
bmdNb2RlOgotICAgICAgICByZXR1cm4gbV9yaWdodDsKLSAgICBjYXNlIFJpZ2h0VG9MZWZ0V3Jp
dGluZ01vZGU6Ci0gICAgICAgIHJldHVybiBtX2xlZnQ7Ci0gICAgfQotICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwotICAgIHJldHVybiBtX2JvdHRvbTsKLX0KLQotY29uc3QgTGVuZ3RoJiBMZW5n
dGhCb3g6OnN0YXJ0KFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlLCBUZXh0RGlyZWN0aW9uIGRpcmVj
dGlvbikgY29uc3QKLXsKLSAgICBpZiAoaXNIb3Jpem9udGFsV3JpdGluZ01vZGUod3JpdGluZ01v
ZGUpKQotICAgICAgICByZXR1cm4gaXNMZWZ0VG9SaWdodERpcmVjdGlvbihkaXJlY3Rpb24pID8g
bV9sZWZ0IDogbV9yaWdodDsKLSAgICByZXR1cm4gaXNMZWZ0VG9SaWdodERpcmVjdGlvbihkaXJl
Y3Rpb24pID8gbV90b3AgOiBtX2JvdHRvbTsKLX0KLQotY29uc3QgTGVuZ3RoJiBMZW5ndGhCb3g6
OmVuZChXcml0aW5nTW9kZSB3cml0aW5nTW9kZSwgVGV4dERpcmVjdGlvbiBkaXJlY3Rpb24pIGNv
bnN0Ci17Ci0gICAgaWYgKGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKHdyaXRpbmdNb2RlKSkKLSAg
ICAgICAgcmV0dXJuIGlzTGVmdFRvUmlnaHREaXJlY3Rpb24oZGlyZWN0aW9uKSA/IG1fcmlnaHQg
OiBtX2xlZnQ7Ci0gICAgcmV0dXJuIGlzTGVmdFRvUmlnaHREaXJlY3Rpb24oZGlyZWN0aW9uKSA/
IG1fYm90dG9tIDogbV90b3A7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xlbmd0aEJveC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0xlbmd0aEJveC5oCShyZXZpc2lvbiAxODQ4ODkpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9MZW5ndGhCb3guaAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDYg
QEAKIC8qCiAgICAgQ29weXJpZ2h0IChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcp
Ci0gICAgQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAgICBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDgsIDIwMTUgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICAgIENvcHlyaWdodCAoYykgMjAxMiwgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KIAogICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTI1LDgwICsyNSwxNTEgQEAKICNpbmNs
dWRlICJMZW5ndGguaCIKICNpbmNsdWRlICJUZXh0RmxhZ3MuaCIKICNpbmNsdWRlICJXcml0aW5n
TW9kZS5oIgorI2luY2x1ZGUgPGFycmF5PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0cnVj
dCBMZW5ndGhCb3ggewotICAgIExlbmd0aEJveCgpCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFz
cyBCb3hFeHRlbnQgeworcHVibGljOgorICAgIEJveEV4dGVudCgpCisgICAgICAgIDogbV9zaWRl
cyh7eyBUKDApLCBUKDApLCBUKDApLCBUKDApIH19KQogICAgIHsKICAgICB9CiAKLSAgICBleHBs
aWNpdCBMZW5ndGhCb3goTGVuZ3RoVHlwZSB0eXBlKQotICAgICAgICA6IG1fbGVmdCh0eXBlKQot
ICAgICAgICAsIG1fcmlnaHQodHlwZSkKLSAgICAgICAgLCBtX3RvcCh0eXBlKQotICAgICAgICAs
IG1fYm90dG9tKHR5cGUpCisgICAgQm94RXh0ZW50KGNvbnN0IFQmIHRvcCwgY29uc3QgVCYgcmln
aHQsIGNvbnN0IFQmIGJvdHRvbSwgY29uc3QgVCYgbGVmdCkKKyAgICAgICAgOiBtX3NpZGVzKHt7
IHRvcCwgcmlnaHQsIGJvdHRvbSwgbGVmdCB9fSkKICAgICB7CiAgICAgfQogCi0gICAgZXhwbGlj
aXQgTGVuZ3RoQm94KGludCB2KQotICAgICAgICA6IG1fbGVmdChMZW5ndGgodiwgRml4ZWQpKQot
ICAgICAgICAsIG1fcmlnaHQoTGVuZ3RoKHYsIEZpeGVkKSkKLSAgICAgICAgLCBtX3RvcChMZW5n
dGgodiwgRml4ZWQpKQotICAgICAgICAsIG1fYm90dG9tKExlbmd0aCh2LCBGaXhlZCkpCisgICAg
VCYgYXQoUGh5c2ljYWxCb3hTaWRlIHNpZGUpIHsgcmV0dXJuIG1fc2lkZXNbc2lkZV07IH0KKyAg
ICBUJiB0b3AoKSB7IHJldHVybiBhdChUb3BTaWRlKTsgfQorICAgIFQmIHJpZ2h0KCkgeyByZXR1
cm4gYXQoUmlnaHRTaWRlKTsgfQorICAgIFQmIGJvdHRvbSgpIHsgcmV0dXJuIGF0KEJvdHRvbVNp
ZGUpOyB9CisgICAgVCYgbGVmdCgpIHsgcmV0dXJuIGF0KExlZnRTaWRlKTsgfQorCisgICAgY29u
c3QgVCYgYXQoUGh5c2ljYWxCb3hTaWRlIHNpZGUpIGNvbnN0IHsgcmV0dXJuIG1fc2lkZXNbc2lk
ZV07IH0KKyAgICBjb25zdCBUJiB0b3AoKSBjb25zdCB7IHJldHVybiBhdChUb3BTaWRlKTsgfQor
ICAgIGNvbnN0IFQmIHJpZ2h0KCkgY29uc3QgeyByZXR1cm4gYXQoUmlnaHRTaWRlKTsgfQorICAg
IGNvbnN0IFQmIGJvdHRvbSgpIGNvbnN0IHsgcmV0dXJuIGF0KEJvdHRvbVNpZGUpOyB9CisgICAg
Y29uc3QgVCYgbGVmdCgpIGNvbnN0IHsgcmV0dXJuIGF0KExlZnRTaWRlKTsgfQorCisgICAgdm9p
ZCBzZXRBdChQaHlzaWNhbEJveFNpZGUgc2lkZSwgY29uc3QgVCYgdikgeyBhdChzaWRlKSA9IHY7
IH0KKyAgICB2b2lkIHNldFRvcChjb25zdCBUJiB0b3ApIHsgc2V0QXQoVG9wU2lkZSwgdG9wKTsg
fQorICAgIHZvaWQgc2V0UmlnaHQoY29uc3QgVCYgcmlnaHQpIHsgc2V0QXQoUmlnaHRTaWRlLCBy
aWdodCk7IH0KKyAgICB2b2lkIHNldEJvdHRvbShjb25zdCBUJiBib3R0b20pIHsgc2V0QXQoQm90
dG9tU2lkZSwgYm90dG9tKTsgfQorICAgIHZvaWQgc2V0TGVmdChjb25zdCBUJiBsZWZ0KSB7IHNl
dEF0KExlZnRTaWRlLCBsZWZ0KTsgfQorCisgICAgVCYgYmVmb3JlKFdyaXRpbmdNb2RlIHdyaXRp
bmdNb2RlKQogICAgIHsKKyAgICAgICAgcmV0dXJuIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKHdy
aXRpbmdNb2RlKSA/CisgICAgICAgICAgICAoaXNGbGlwcGVkQmxvY2tzV3JpdGluZ01vZGUod3Jp
dGluZ01vZGUpID8gYm90dG9tKCkgOiB0b3AoKSkgOgorICAgICAgICAgICAgKGlzRmxpcHBlZEJs
b2Nrc1dyaXRpbmdNb2RlKHdyaXRpbmdNb2RlKSA/IHJpZ2h0KCkgOiBsZWZ0KCkpOwogICAgIH0K
IAotICAgIExlbmd0aEJveChMZW5ndGggdG9wLCBMZW5ndGggcmlnaHQsIExlbmd0aCBib3R0b20s
IExlbmd0aCBsZWZ0KQotICAgICAgICA6IG1fbGVmdChXVEY6Om1vdmUobGVmdCkpCi0gICAgICAg
ICwgbV9yaWdodChXVEY6Om1vdmUocmlnaHQpKQotICAgICAgICAsIG1fdG9wKFdURjo6bW92ZSh0
b3ApKQotICAgICAgICAsIG1fYm90dG9tKFdURjo6bW92ZShib3R0b20pKQorICAgIFQmIGFmdGVy
KFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlKQogICAgIHsKKyAgICAgICAgcmV0dXJuIGlzSG9yaXpv
bnRhbFdyaXRpbmdNb2RlKHdyaXRpbmdNb2RlKSA/CisgICAgICAgICAgICAoaXNGbGlwcGVkQmxv
Y2tzV3JpdGluZ01vZGUod3JpdGluZ01vZGUpID8gdG9wKCkgOiBib3R0b20oKSkgOgorICAgICAg
ICAgICAgKGlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdNb2RlKHdyaXRpbmdNb2RlKSA/IGxlZnQoKSA6
IHJpZ2h0KCkpOwogICAgIH0KIAotICAgIExlbmd0aEJveChpbnQgdG9wLCBpbnQgcmlnaHQsIGlu
dCBib3R0b20sIGludCBsZWZ0KQotICAgICAgICA6IG1fbGVmdChMZW5ndGgobGVmdCwgRml4ZWQp
KQotICAgICAgICAsIG1fcmlnaHQoTGVuZ3RoKHJpZ2h0LCBGaXhlZCkpCi0gICAgICAgICwgbV90
b3AoTGVuZ3RoKHRvcCwgRml4ZWQpKQotICAgICAgICAsIG1fYm90dG9tKExlbmd0aChib3R0b20s
IEZpeGVkKSkKKyAgICBUJiBzdGFydChXcml0aW5nTW9kZSB3cml0aW5nTW9kZSwgVGV4dERpcmVj
dGlvbiBkaXJlY3Rpb24gPSBMVFIpCiAgICAgeworICAgICAgICByZXR1cm4gaXNIb3Jpem9udGFs
V3JpdGluZ01vZGUod3JpdGluZ01vZGUpID8KKyAgICAgICAgICAgIChpc0xlZnRUb1JpZ2h0RGly
ZWN0aW9uKGRpcmVjdGlvbikgPyBsZWZ0KCkgOiByaWdodCgpKSA6CisgICAgICAgICAgICAoaXNM
ZWZ0VG9SaWdodERpcmVjdGlvbihkaXJlY3Rpb24pID8gdG9wKCkgOiBib3R0b20oKSk7CiAgICAg
fQogCi0gICAgY29uc3QgTGVuZ3RoJiBsZWZ0KCkgY29uc3QgeyByZXR1cm4gbV9sZWZ0OyB9Ci0g
ICAgY29uc3QgTGVuZ3RoJiByaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1fcmlnaHQ7IH0KLSAgICBj
b25zdCBMZW5ndGgmIHRvcCgpIGNvbnN0IHsgcmV0dXJuIG1fdG9wOyB9Ci0gICAgY29uc3QgTGVu
Z3RoJiBib3R0b20oKSBjb25zdCB7IHJldHVybiBtX2JvdHRvbTsgfQorICAgIFQmIGVuZChXcml0
aW5nTW9kZSB3cml0aW5nTW9kZSwgVGV4dERpcmVjdGlvbiBkaXJlY3Rpb24gPSBMVFIpCisgICAg
eworICAgICAgICByZXR1cm4gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUod3JpdGluZ01vZGUpID8K
KyAgICAgICAgICAgIChpc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKGRpcmVjdGlvbikgPyByaWdodCgp
IDogbGVmdCgpKSA6CisgICAgICAgICAgICAoaXNMZWZ0VG9SaWdodERpcmVjdGlvbihkaXJlY3Rp
b24pID8gYm90dG9tKCkgOiB0b3AoKSk7CisgICAgfQogCi0gICAgY29uc3QgTGVuZ3RoJiBsb2dp
Y2FsTGVmdChXcml0aW5nTW9kZSkgY29uc3Q7Ci0gICAgY29uc3QgTGVuZ3RoJiBsb2dpY2FsUmln
aHQoV3JpdGluZ01vZGUpIGNvbnN0OworICAgIGNvbnN0IFQmIGJlZm9yZShXcml0aW5nTW9kZSB3
cml0aW5nTW9kZSkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBpc0hvcml6b250YWxXcml0
aW5nTW9kZSh3cml0aW5nTW9kZSkgPworICAgICAgICAgICAgKGlzRmxpcHBlZEJsb2Nrc1dyaXRp
bmdNb2RlKHdyaXRpbmdNb2RlKSA/IGJvdHRvbSgpIDogdG9wKCkpIDoKKyAgICAgICAgICAgIChp
c0ZsaXBwZWRCbG9ja3NXcml0aW5nTW9kZSh3cml0aW5nTW9kZSkgPyByaWdodCgpIDogbGVmdCgp
KTsKKyAgICB9CiAKLSAgICBjb25zdCBMZW5ndGgmIGJlZm9yZShXcml0aW5nTW9kZSkgY29uc3Q7
Ci0gICAgY29uc3QgTGVuZ3RoJiBhZnRlcihXcml0aW5nTW9kZSkgY29uc3Q7Ci0gICAgY29uc3Qg
TGVuZ3RoJiBzdGFydChXcml0aW5nTW9kZSwgVGV4dERpcmVjdGlvbikgY29uc3Q7Ci0gICAgY29u
c3QgTGVuZ3RoJiBlbmQoV3JpdGluZ01vZGUsIFRleHREaXJlY3Rpb24pIGNvbnN0OworICAgIGNv
bnN0IFQmIGFmdGVyKFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlKSBjb25zdAorICAgIHsKKyAgICAg
ICAgcmV0dXJuIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKHdyaXRpbmdNb2RlKSA/CisgICAgICAg
ICAgICAoaXNGbGlwcGVkQmxvY2tzV3JpdGluZ01vZGUod3JpdGluZ01vZGUpID8gdG9wKCkgOiBi
b3R0b20oKSkgOgorICAgICAgICAgICAgKGlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdNb2RlKHdyaXRp
bmdNb2RlKSA/IGxlZnQoKSA6IHJpZ2h0KCkpOworICAgIH0KKworICAgIGNvbnN0IFQmIHN0YXJ0
KFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlLCBUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbiA9IExUUikg
Y29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBpc0hvcml6b250YWxXcml0aW5nTW9kZSh3cml0
aW5nTW9kZSkgPworICAgICAgICAgICAgKGlzTGVmdFRvUmlnaHREaXJlY3Rpb24oZGlyZWN0aW9u
KSA/IGxlZnQoKSA6IHJpZ2h0KCkpIDoKKyAgICAgICAgICAgIChpc0xlZnRUb1JpZ2h0RGlyZWN0
aW9uKGRpcmVjdGlvbikgPyB0b3AoKSA6IGJvdHRvbSgpKTsKKyAgICB9CiAKLSAgICBib29sIG9w
ZXJhdG9yPT0oY29uc3QgTGVuZ3RoQm94JiBvdGhlcikgY29uc3QKKyAgICBjb25zdCBUJiBlbmQo
V3JpdGluZ01vZGUgd3JpdGluZ01vZGUsIFRleHREaXJlY3Rpb24gZGlyZWN0aW9uID0gTFRSKSBj
b25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIG1fbGVmdCA9PSBvdGhlci5tX2xlZnQgJiYgbV9y
aWdodCA9PSBvdGhlci5tX3JpZ2h0ICYmIG1fdG9wID09IG90aGVyLm1fdG9wICYmIG1fYm90dG9t
ID09IG90aGVyLm1fYm90dG9tOworICAgICAgICByZXR1cm4gaXNIb3Jpem9udGFsV3JpdGluZ01v
ZGUod3JpdGluZ01vZGUpID8KKyAgICAgICAgICAgIChpc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKGRp
cmVjdGlvbikgPyByaWdodCgpIDogbGVmdCgpKSA6CisgICAgICAgICAgICAoaXNMZWZ0VG9SaWdo
dERpcmVjdGlvbihkaXJlY3Rpb24pID8gYm90dG9tKCkgOiB0b3AoKSk7CiAgICAgfQogCi0gICAg
Ym9vbCBvcGVyYXRvciE9KGNvbnN0IExlbmd0aEJveCYgb3RoZXIpIGNvbnN0CisgICAgdm9pZCBz
ZXRCZWZvcmUoY29uc3QgVCYgYmVmb3JlLCBXcml0aW5nTW9kZSB3cml0aW5nTW9kZSkgeyB0aGlz
LT5iZWZvcmUod3JpdGluZ01vZGUpID0gYmVmb3JlOyB9CisgICAgdm9pZCBzZXRBZnRlcihjb25z
dCBUJiBhZnRlciwgV3JpdGluZ01vZGUgd3JpdGluZ01vZGUpIHsgdGhpcy0+YWZ0ZXIod3JpdGlu
Z01vZGUpID0gYWZ0ZXI7IH0KKyAgICB2b2lkIHNldFN0YXJ0KGNvbnN0IFQmIHN0YXJ0LCBXcml0
aW5nTW9kZSB3cml0aW5nTW9kZSwgVGV4dERpcmVjdGlvbiBkaXJlY3Rpb24gPSBMVFIpIHsgdGhp
cy0+c3RhcnQod3JpdGluZ01vZGUsIGRpcmVjdGlvbikgPSBzdGFydDsgfQorICAgIHZvaWQgc2V0
RW5kKGNvbnN0IFQmIGVuZCwgV3JpdGluZ01vZGUgd3JpdGluZ01vZGUsIFRleHREaXJlY3Rpb24g
ZGlyZWN0aW9uID0gTFRSKSB7IHRoaXMtPmVuZCh3cml0aW5nTW9kZSwgZGlyZWN0aW9uKSA9IGVu
ZDsgfQorCisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEJveEV4dGVudCYgb3RoZXIpIGNvbnN0
CiAgICAgewotICAgICAgICByZXR1cm4gISgqdGhpcyA9PSBvdGhlcik7CisgICAgICAgIHJldHVy
biBtX3NpZGVzID09IG90aGVyLm1fc2lkZXM7CiAgICAgfQogCi0gICAgYm9vbCBub25aZXJvKCkg
Y29uc3QKKyAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgQm94RXh0ZW50JiBvdGhlcikgY29uc3QK
ICAgICB7Ci0gICAgICAgIHJldHVybiAhKG1fbGVmdC5pc1plcm8oKSAmJiBtX3JpZ2h0LmlzWmVy
bygpICYmIG1fdG9wLmlzWmVybygpICYmIG1fYm90dG9tLmlzWmVybygpKTsKKyAgICAgICAgcmV0
dXJuIG1fc2lkZXMgIT0gb3RoZXIubV9zaWRlczsKICAgICB9CiAKLSAgICBMZW5ndGggbV9sZWZ0
OwotICAgIExlbmd0aCBtX3JpZ2h0OwotICAgIExlbmd0aCBtX3RvcDsKLSAgICBMZW5ndGggbV9i
b3R0b207Citwcm90ZWN0ZWQ6CisgICAgc3RkOjphcnJheTxULCA0PiBtX3NpZGVzOwogfTsKIAor
Y2xhc3MgTGVuZ3RoQm94IDogcHVibGljIEJveEV4dGVudDxMZW5ndGg+IHsKK3B1YmxpYzoKKyAg
ICBMZW5ndGhCb3goKQorICAgICAgICA6IExlbmd0aEJveChBdXRvKQorICAgIHsKKyAgICB9CisK
KyAgICBleHBsaWNpdCBMZW5ndGhCb3goTGVuZ3RoVHlwZSB0eXBlKQorICAgICAgICA6IEJveEV4
dGVudChMZW5ndGgodHlwZSksIExlbmd0aCh0eXBlKSwgTGVuZ3RoKHR5cGUpLCBMZW5ndGgodHlw
ZSkpCisgICAgeworICAgIH0KKworICAgIGV4cGxpY2l0IExlbmd0aEJveChpbnQgdikKKyAgICAg
ICAgOiBCb3hFeHRlbnQoTGVuZ3RoKHYsIEZpeGVkKSwgTGVuZ3RoKHYsIEZpeGVkKSwgTGVuZ3Ro
KHYsIEZpeGVkKSwgTGVuZ3RoKHYsIEZpeGVkKSkKKyAgICB7CisgICAgfQorCisgICAgTGVuZ3Ro
Qm94KGludCB0b3AsIGludCByaWdodCwgaW50IGJvdHRvbSwgaW50IGxlZnQpCisgICAgICAgIDog
Qm94RXh0ZW50KExlbmd0aCh0b3AsIEZpeGVkKSwgTGVuZ3RoKHJpZ2h0LCBGaXhlZCksIExlbmd0
aChib3R0b20sIEZpeGVkKSwgTGVuZ3RoKGxlZnQsIEZpeGVkKSkKKyAgICB7CisgICAgfQorCisg
ICAgTGVuZ3RoQm94KGNvbnN0IExlbmd0aCYgdG9wLCBjb25zdCBMZW5ndGgmIHJpZ2h0LCBjb25z
dCBMZW5ndGgmIGJvdHRvbSwgY29uc3QgTGVuZ3RoJiBsZWZ0KQorICAgICAgICA6IEJveEV4dGVu
dCh0b3AsIHJpZ2h0LCBib3R0b20sIGxlZnQpCisgICAgeworICAgIH0KKworICAgIGJvb2wgaXNa
ZXJvKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiB0b3AoKS5pc1plcm8oKSAmJiByaWdo
dCgpLmlzWmVybygpICYmIGJvdHRvbSgpLmlzWmVybygpICYmIGxlZnQoKS5pc1plcm8oKTsKKyAg
ICB9Cit9OworCit0eXBlZGVmIEJveEV4dGVudDxMYXlvdXRVbml0PiBMYXlvdXRCb3hFeHRlbnQ7
Cit0eXBlZGVmIEJveEV4dGVudDxmbG9hdD4gRmxvYXRCb3hFeHRlbnQ7CisKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIExlbmd0aEJveF9oCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9MYXlvdXRCb3hFeHRlbnQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0xheW91dEJveEV4dGVudC5jcHAJKHJldmlz
aW9uIDE4NDg4OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0xheW91dEJv
eEV4dGVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsMTk2ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKGMpIDIwMTIsIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1
dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBu
YW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJB
UyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwK
LSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNv
bmZpZy5oIgotI2luY2x1ZGUgIkxheW91dEJveEV4dGVudC5oIgotCi1uYW1lc3BhY2UgV2ViQ29y
ZSB7Ci0KLUxheW91dFVuaXQgTGF5b3V0Qm94RXh0ZW50Ojpsb2dpY2FsVG9wKFdyaXRpbmdNb2Rl
IHdyaXRpbmdNb2RlKSBjb25zdAotewotICAgIHJldHVybiBpc0hvcml6b250YWxXcml0aW5nTW9k
ZSh3cml0aW5nTW9kZSkgPyBtX3RvcCA6IG1fbGVmdDsKLX0KLQotTGF5b3V0VW5pdCBMYXlvdXRC
b3hFeHRlbnQ6OmxvZ2ljYWxCb3R0b20oV3JpdGluZ01vZGUgd3JpdGluZ01vZGUpIGNvbnN0Ci17
Ci0gICAgcmV0dXJuIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKHdyaXRpbmdNb2RlKSA/IG1fYm90
dG9tIDogbV9yaWdodDsKLX0KLQotTGF5b3V0VW5pdCBMYXlvdXRCb3hFeHRlbnQ6OmxvZ2ljYWxM
ZWZ0KFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlKSBjb25zdAotewotICAgIHJldHVybiBpc0hvcml6
b250YWxXcml0aW5nTW9kZSh3cml0aW5nTW9kZSkgPyBtX2xlZnQgOiBtX3RvcDsKLX0KLQotTGF5
b3V0VW5pdCBMYXlvdXRCb3hFeHRlbnQ6OmxvZ2ljYWxSaWdodChXcml0aW5nTW9kZSB3cml0aW5n
TW9kZSkgY29uc3QKLXsKLSAgICByZXR1cm4gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUod3JpdGlu
Z01vZGUpID8gbV9yaWdodCA6IG1fYm90dG9tOwotfQotCi1MYXlvdXRVbml0IExheW91dEJveEV4
dGVudDo6YmVmb3JlKFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlKSBjb25zdAotewotICAgIHN3aXRj
aCAod3JpdGluZ01vZGUpIHsKLSAgICBjYXNlIFRvcFRvQm90dG9tV3JpdGluZ01vZGU6Ci0gICAg
ICAgIHJldHVybiBtX3RvcDsKLSAgICBjYXNlIEJvdHRvbVRvVG9wV3JpdGluZ01vZGU6Ci0gICAg
ICAgIHJldHVybiBtX2JvdHRvbTsKLSAgICBjYXNlIExlZnRUb1JpZ2h0V3JpdGluZ01vZGU6Ci0g
ICAgICAgIHJldHVybiBtX2xlZnQ7Ci0gICAgY2FzZSBSaWdodFRvTGVmdFdyaXRpbmdNb2RlOgot
ICAgICAgICByZXR1cm4gbV9yaWdodDsKLSAgICB9Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
Ci0gICAgcmV0dXJuIG1fdG9wOwotfQotCi1MYXlvdXRVbml0IExheW91dEJveEV4dGVudDo6YWZ0
ZXIoV3JpdGluZ01vZGUgd3JpdGluZ01vZGUpIGNvbnN0Ci17Ci0gICAgc3dpdGNoICh3cml0aW5n
TW9kZSkgewotICAgIGNhc2UgVG9wVG9Cb3R0b21Xcml0aW5nTW9kZToKLSAgICAgICAgcmV0dXJu
IG1fYm90dG9tOwotICAgIGNhc2UgQm90dG9tVG9Ub3BXcml0aW5nTW9kZToKLSAgICAgICAgcmV0
dXJuIG1fdG9wOwotICAgIGNhc2UgTGVmdFRvUmlnaHRXcml0aW5nTW9kZToKLSAgICAgICAgcmV0
dXJuIG1fcmlnaHQ7Ci0gICAgY2FzZSBSaWdodFRvTGVmdFdyaXRpbmdNb2RlOgotICAgICAgICBy
ZXR1cm4gbV9sZWZ0OwotICAgIH0KLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1
cm4gbV9ib3R0b207Ci19Ci0KLUxheW91dFVuaXQgTGF5b3V0Qm94RXh0ZW50OjpzdGFydChXcml0
aW5nTW9kZSB3cml0aW5nTW9kZSwgVGV4dERpcmVjdGlvbiBkaXJlY3Rpb24pIGNvbnN0Ci17Ci0g
ICAgaWYgKGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKHdyaXRpbmdNb2RlKSkKLSAgICAgICAgcmV0
dXJuIGlzTGVmdFRvUmlnaHREaXJlY3Rpb24oZGlyZWN0aW9uKSA/IG1fbGVmdCA6IG1fcmlnaHQ7
Ci0gICAgcmV0dXJuIGlzTGVmdFRvUmlnaHREaXJlY3Rpb24oZGlyZWN0aW9uKSA/IG1fdG9wIDog
bV9ib3R0b207Ci19Ci0KLUxheW91dFVuaXQgTGF5b3V0Qm94RXh0ZW50OjplbmQoV3JpdGluZ01v
ZGUgd3JpdGluZ01vZGUsIFRleHREaXJlY3Rpb24gZGlyZWN0aW9uKSBjb25zdAotewotICAgIGlm
IChpc0hvcml6b250YWxXcml0aW5nTW9kZSh3cml0aW5nTW9kZSkpCi0gICAgICAgIHJldHVybiBp
c0xlZnRUb1JpZ2h0RGlyZWN0aW9uKGRpcmVjdGlvbikgPyBtX3JpZ2h0IDogbV9sZWZ0OwotICAg
IHJldHVybiBpc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKGRpcmVjdGlvbikgPyBtX2JvdHRvbSA6IG1f
dG9wOwotfQotCi12b2lkIExheW91dEJveEV4dGVudDo6c2V0QmVmb3JlKFdyaXRpbmdNb2RlIHdy
aXRpbmdNb2RlLCBMYXlvdXRVbml0IHZhbHVlKQotewotICAgIHN3aXRjaCAod3JpdGluZ01vZGUp
IHsKLSAgICBjYXNlIFRvcFRvQm90dG9tV3JpdGluZ01vZGU6Ci0gICAgICAgIG1fdG9wID0gdmFs
dWU7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQm90dG9tVG9Ub3BXcml0aW5nTW9kZToKLSAg
ICAgICAgbV9ib3R0b20gPSB2YWx1ZTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBMZWZ0VG9S
aWdodFdyaXRpbmdNb2RlOgotICAgICAgICBtX2xlZnQgPSB2YWx1ZTsKLSAgICAgICAgYnJlYWs7
Ci0gICAgY2FzZSBSaWdodFRvTGVmdFdyaXRpbmdNb2RlOgotICAgICAgICBtX3JpZ2h0ID0gdmFs
dWU7Ci0gICAgICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwotICAgICAgICBtX3RvcCA9IHZhbHVlOwotICAgIH0KLX0KLQotdm9pZCBMYXlvdXRC
b3hFeHRlbnQ6OnNldEFmdGVyKFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlLCBMYXlvdXRVbml0IHZh
bHVlKQotewotICAgIHN3aXRjaCAod3JpdGluZ01vZGUpIHsKLSAgICBjYXNlIFRvcFRvQm90dG9t
V3JpdGluZ01vZGU6Ci0gICAgICAgIG1fYm90dG9tID0gdmFsdWU7Ci0gICAgICAgIGJyZWFrOwot
ICAgIGNhc2UgQm90dG9tVG9Ub3BXcml0aW5nTW9kZToKLSAgICAgICAgbV90b3AgPSB2YWx1ZTsK
LSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBMZWZ0VG9SaWdodFdyaXRpbmdNb2RlOgotICAgICAg
ICBtX3JpZ2h0ID0gdmFsdWU7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgUmlnaHRUb0xlZnRX
cml0aW5nTW9kZToKLSAgICAgICAgbV9sZWZ0ID0gdmFsdWU7Ci0gICAgICAgIGJyZWFrOwotICAg
IGRlZmF1bHQ6Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBtX2JvdHRv
bSA9IHZhbHVlOwotICAgIH0KLX0KLQotdm9pZCBMYXlvdXRCb3hFeHRlbnQ6OnNldFN0YXJ0KFdy
aXRpbmdNb2RlIHdyaXRpbmdNb2RlLCBUZXh0RGlyZWN0aW9uIGRpcmVjdGlvbiwgTGF5b3V0VW5p
dCB2YWx1ZSkKLXsKLSAgICBpZiAoaXNIb3Jpem9udGFsV3JpdGluZ01vZGUod3JpdGluZ01vZGUp
KSB7Ci0gICAgICAgIGlmIChpc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKGRpcmVjdGlvbikpCi0gICAg
ICAgICAgICBtX2xlZnQgPSB2YWx1ZTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgbV9yaWdo
dCA9IHZhbHVlOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGlmIChpc0xlZnRUb1JpZ2h0RGlyZWN0
aW9uKGRpcmVjdGlvbikpCi0gICAgICAgICAgICBtX3RvcCA9IHZhbHVlOwotICAgICAgICBlbHNl
Ci0gICAgICAgICAgICBtX2JvdHRvbSA9IHZhbHVlOwotICAgIH0KLX0KLQotdm9pZCBMYXlvdXRC
b3hFeHRlbnQ6OnNldEVuZChXcml0aW5nTW9kZSB3cml0aW5nTW9kZSwgVGV4dERpcmVjdGlvbiBk
aXJlY3Rpb24sIExheW91dFVuaXQgdmFsdWUpCi17Ci0gICAgaWYgKGlzSG9yaXpvbnRhbFdyaXRp
bmdNb2RlKHdyaXRpbmdNb2RlKSkgewotICAgICAgICBpZiAoaXNMZWZ0VG9SaWdodERpcmVjdGlv
bihkaXJlY3Rpb24pKQotICAgICAgICAgICAgbV9yaWdodCA9IHZhbHVlOwotICAgICAgICBlbHNl
Ci0gICAgICAgICAgICBtX2xlZnQgPSB2YWx1ZTsKLSAgICB9IGVsc2UgewotICAgICAgICBpZiAo
aXNMZWZ0VG9SaWdodERpcmVjdGlvbihkaXJlY3Rpb24pKQotICAgICAgICAgICAgbV9ib3R0b20g
PSB2YWx1ZTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgbV90b3AgPSB2YWx1ZTsKLSAgICB9
Ci19Ci0KLUxheW91dFVuaXQmIExheW91dEJveEV4dGVudDo6bXV0YWJsZUxvZ2ljYWxMZWZ0KFdy
aXRpbmdNb2RlIHdyaXRpbmdNb2RlKQotewotICAgIHJldHVybiBpc0hvcml6b250YWxXcml0aW5n
TW9kZSh3cml0aW5nTW9kZSkgPyBtX2xlZnQgOiBtX3RvcDsKLX0KLQotTGF5b3V0VW5pdCYgTGF5
b3V0Qm94RXh0ZW50OjptdXRhYmxlTG9naWNhbFJpZ2h0KFdyaXRpbmdNb2RlIHdyaXRpbmdNb2Rl
KQotewotICAgIHJldHVybiBpc0hvcml6b250YWxXcml0aW5nTW9kZSh3cml0aW5nTW9kZSkgPyBt
X3JpZ2h0IDogbV9ib3R0b207Ci19Ci0KLUxheW91dFVuaXQmIExheW91dEJveEV4dGVudDo6bXV0
YWJsZUJlZm9yZShXcml0aW5nTW9kZSB3cml0aW5nTW9kZSkKLXsKLSAgICByZXR1cm4gaXNIb3Jp
em9udGFsV3JpdGluZ01vZGUod3JpdGluZ01vZGUpID8gKGlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdN
b2RlKHdyaXRpbmdNb2RlKSA/IG1fYm90dG9tIDogbV90b3ApIDoKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdN
b2RlKHdyaXRpbmdNb2RlKSA/IG1fcmlnaHQ6IG1fbGVmdCk7Ci19Ci0KLUxheW91dFVuaXQmIExh
eW91dEJveEV4dGVudDo6bXV0YWJsZUFmdGVyKFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlKQotewot
ICAgIHJldHVybiBpc0hvcml6b250YWxXcml0aW5nTW9kZSh3cml0aW5nTW9kZSkgPyAoaXNGbGlw
cGVkQmxvY2tzV3JpdGluZ01vZGUod3JpdGluZ01vZGUpID8gbV90b3AgOiBtX2JvdHRvbSkgOgot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaXNGbGlw
cGVkQmxvY2tzV3JpdGluZ01vZGUod3JpdGluZ01vZGUpID8gbV9sZWZ0OiBtX3JpZ2h0KTsKLX0K
LQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTGF5b3V0Qm94RXh0ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvTGF5b3V0Qm94RXh0ZW50LmgJKHJldmlzaW9uIDE4NDg4OSkKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0xheW91dEJveEV4dGVudC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDg2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTIsIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
LSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBMYXlvdXRCb3hFeHRlbnRfaAotI2Rl
ZmluZSBMYXlvdXRCb3hFeHRlbnRfaAotCi0jaW5jbHVkZSAiTGF5b3V0VW5pdC5oIgotI2luY2x1
ZGUgIlRleHRGbGFncy5oIgotI2luY2x1ZGUgIldyaXRpbmdNb2RlLmgiCi0KLW5hbWVzcGFjZSBX
ZWJDb3JlIHsKLQotY2xhc3MgTGF5b3V0Qm94RXh0ZW50IHsKLXB1YmxpYzoKLSAgICBMYXlvdXRC
b3hFeHRlbnQoKSA6IG1fdG9wKDApLCBtX3JpZ2h0KDApLCBtX2JvdHRvbSgwKSwgbV9sZWZ0KDAp
IHsgfQotICAgIExheW91dEJveEV4dGVudChMYXlvdXRVbml0IHRvcCwgTGF5b3V0VW5pdCByaWdo
dCwgTGF5b3V0VW5pdCBib3R0b20sIExheW91dFVuaXQgbGVmdCkKLSAgICAgICAgOiBtX3RvcCh0
b3ApLCBtX3JpZ2h0KHJpZ2h0KSwgbV9ib3R0b20oYm90dG9tKSwgbV9sZWZ0KGxlZnQpIHsgfQot
Ci0gICAgaW5saW5lIExheW91dFVuaXQgdG9wKCkgY29uc3QgeyByZXR1cm4gbV90b3A7IH0KLSAg
ICBpbmxpbmUgTGF5b3V0VW5pdCByaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1fcmlnaHQ7IH0KLSAg
ICBpbmxpbmUgTGF5b3V0VW5pdCBib3R0b20oKSBjb25zdCB7IHJldHVybiBtX2JvdHRvbTsgfQot
ICAgIGlubGluZSBMYXlvdXRVbml0IGxlZnQoKSBjb25zdCB7IHJldHVybiBtX2xlZnQ7IH0KLQot
ICAgIGlubGluZSB2b2lkIHNldFRvcChMYXlvdXRVbml0IHZhbHVlKSB7IG1fdG9wID0gdmFsdWU7
IH0KLSAgICBpbmxpbmUgdm9pZCBzZXRSaWdodChMYXlvdXRVbml0IHZhbHVlKSB7IG1fcmlnaHQg
PSB2YWx1ZTsgfQotICAgIGlubGluZSB2b2lkIHNldEJvdHRvbShMYXlvdXRVbml0IHZhbHVlKSB7
IG1fYm90dG9tID0gdmFsdWU7IH0KLSAgICBpbmxpbmUgdm9pZCBzZXRMZWZ0KExheW91dFVuaXQg
dmFsdWUpIHsgbV9sZWZ0ID0gdmFsdWU7IH0KLQotICAgIExheW91dFVuaXQgbG9naWNhbFRvcChX
cml0aW5nTW9kZSkgY29uc3Q7Ci0gICAgTGF5b3V0VW5pdCBsb2dpY2FsQm90dG9tKFdyaXRpbmdN
b2RlKSBjb25zdDsKLSAgICBMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0KFdyaXRpbmdNb2RlKSBjb25z
dDsKLSAgICBMYXlvdXRVbml0IGxvZ2ljYWxSaWdodChXcml0aW5nTW9kZSkgY29uc3Q7Ci0KLSAg
ICBMYXlvdXRVbml0IGJlZm9yZShXcml0aW5nTW9kZSkgY29uc3Q7Ci0gICAgTGF5b3V0VW5pdCBh
ZnRlcihXcml0aW5nTW9kZSkgY29uc3Q7Ci0gICAgTGF5b3V0VW5pdCBzdGFydChXcml0aW5nTW9k
ZSwgVGV4dERpcmVjdGlvbikgY29uc3Q7Ci0gICAgTGF5b3V0VW5pdCBlbmQoV3JpdGluZ01vZGUs
IFRleHREaXJlY3Rpb24pIGNvbnN0OwotCi0gICAgdm9pZCBzZXRCZWZvcmUoV3JpdGluZ01vZGUs
IExheW91dFVuaXQpOwotICAgIHZvaWQgc2V0QWZ0ZXIoV3JpdGluZ01vZGUsIExheW91dFVuaXQp
OwotICAgIHZvaWQgc2V0U3RhcnQoV3JpdGluZ01vZGUsIFRleHREaXJlY3Rpb24sIExheW91dFVu
aXQpOwotICAgIHZvaWQgc2V0RW5kKFdyaXRpbmdNb2RlLCBUZXh0RGlyZWN0aW9uLCBMYXlvdXRV
bml0KTsKLQotICAgIExheW91dFVuaXQmIG11dGFibGVMb2dpY2FsTGVmdChXcml0aW5nTW9kZSk7
Ci0gICAgTGF5b3V0VW5pdCYgbXV0YWJsZUxvZ2ljYWxSaWdodChXcml0aW5nTW9kZSk7Ci0KLSAg
ICBMYXlvdXRVbml0JiBtdXRhYmxlQmVmb3JlKFdyaXRpbmdNb2RlKTsKLSAgICBMYXlvdXRVbml0
JiBtdXRhYmxlQWZ0ZXIoV3JpdGluZ01vZGUpOwotCi1wcml2YXRlOgotICAgIExheW91dFVuaXQg
bV90b3A7Ci0gICAgTGF5b3V0VW5pdCBtX3JpZ2h0OwotICAgIExheW91dFVuaXQgbV9ib3R0b207
Ci0gICAgTGF5b3V0VW5pdCBtX2xlZnQ7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0K
LSNlbmRpZiAvLyBMYXlvdXRCb3hFeHRlbnRfaApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTGF5b3V0UmVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0xheW91dFJlY3QuaAkocmV2aXNpb24gMTg0ODg5KQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTGF5b3V0UmVjdC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zMyw4ICszMyw4IEBACiAKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlICJJbnRS
ZWN0LmgiCi0jaW5jbHVkZSAiTGF5b3V0Qm94RXh0ZW50LmgiCiAjaW5jbHVkZSAiTGF5b3V0UG9p
bnQuaCIKKyNpbmNsdWRlICJMZW5ndGhCb3guaCIKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQv
V3JpdGluZ01vZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L1dyaXRpbmdNb2RlLmgJKHJldmlzaW9uIDE4NDg4OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvV3JpdGluZ01vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtNTUsNiArNTUsMjEgQEAg
aW5saW5lIGJvb2wgaXNGbGlwcGVkQmxvY2tzV3JpdGluZ01vZGUoVwogICAgIHJldHVybiB3cml0
aW5nTW9kZSA9PSBSaWdodFRvTGVmdFdyaXRpbmdNb2RlIHx8IHdyaXRpbmdNb2RlID09IEJvdHRv
bVRvVG9wV3JpdGluZ01vZGU7CiB9CiAKK2VudW0gTG9naWNhbEJveFNpZGUgeworICAgIEJlZm9y
ZVNpZGUsCisgICAgRW5kU2lkZSwKKyAgICBBZnRlclNpZGUsCisgICAgU3RhcnRTaWRlCit9Owor
CitlbnVtIFBoeXNpY2FsQm94U2lkZSB7CisgICAgTmlsU2lkZSA9IC0xLAorICAgIFRvcFNpZGUs
CisgICAgUmlnaHRTaWRlLAorICAgIEJvdHRvbVNpZGUsCisgICAgTGVmdFNpZGUKK307CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIFdyaXRpbmdNb2RlX2gKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lRmxvd0JveC5jcHAJKHJldmlzaW9uIDE4NDg4
OSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtODQzLDEwICs4NDMsMTAgQEAgaW5saW5lIHZvaWQgSW5saW5lRmxvd0JveDo6
YWRkQm9yZGVyT3V0cwogCiAgICAgTGF5b3V0Qm94RXh0ZW50IGJvcmRlck91dHNldHMgPSBsaW5l
U3R5bGUuYm9yZGVySW1hZ2VPdXRzZXRzKCk7CiAKLSAgICBMYXlvdXRVbml0IGJvcmRlck91dHNl
dExvZ2ljYWxUb3AgPSBib3JkZXJPdXRzZXRzLmxvZ2ljYWxUb3AobGluZVN0eWxlLndyaXRpbmdN
b2RlKCkpOwotICAgIExheW91dFVuaXQgYm9yZGVyT3V0c2V0TG9naWNhbEJvdHRvbSA9IGJvcmRl
ck91dHNldHMubG9naWNhbEJvdHRvbShsaW5lU3R5bGUud3JpdGluZ01vZGUoKSk7Ci0gICAgTGF5
b3V0VW5pdCBib3JkZXJPdXRzZXRMb2dpY2FsTGVmdCA9IGJvcmRlck91dHNldHMubG9naWNhbExl
ZnQobGluZVN0eWxlLndyaXRpbmdNb2RlKCkpOwotICAgIExheW91dFVuaXQgYm9yZGVyT3V0c2V0
TG9naWNhbFJpZ2h0ID0gYm9yZGVyT3V0c2V0cy5sb2dpY2FsUmlnaHQobGluZVN0eWxlLndyaXRp
bmdNb2RlKCkpOworICAgIExheW91dFVuaXQgYm9yZGVyT3V0c2V0TG9naWNhbFRvcCA9IGJvcmRl
ck91dHNldHMuYmVmb3JlKGxpbmVTdHlsZS53cml0aW5nTW9kZSgpKTsKKyAgICBMYXlvdXRVbml0
IGJvcmRlck91dHNldExvZ2ljYWxCb3R0b20gPSBib3JkZXJPdXRzZXRzLmFmdGVyKGxpbmVTdHls
ZS53cml0aW5nTW9kZSgpKTsKKyAgICBMYXlvdXRVbml0IGJvcmRlck91dHNldExvZ2ljYWxMZWZ0
ID0gYm9yZGVyT3V0c2V0cy5zdGFydChsaW5lU3R5bGUud3JpdGluZ01vZGUoKSk7CisgICAgTGF5
b3V0VW5pdCBib3JkZXJPdXRzZXRMb2dpY2FsUmlnaHQgPSBib3JkZXJPdXRzZXRzLmVuZChsaW5l
U3R5bGUud3JpdGluZ01vZGUoKSk7CiAKICAgICAvLyBTaW1pbGFyIHRvIGhvdyBnbHlwaCBvdmVy
ZmxvdyB3b3JrcywgaWYgb3VyIGxpbmVzIGFyZSBmbGlwcGVkLCB0aGVuIGl0J3MgYWN0dWFsbHkg
dGhlIG9wcG9zaXRlIGJvcmRlciB0aGF0IGFwcGxpZXMsIHNpbmNlCiAgICAgLy8gdGhlIGxpbmUg
aXMgInVwc2lkZSBkb3duIiBpbiB0ZXJtcyBvZiBibG9jayBjb29yZGluYXRlcy4gdmVydGljYWwt
cmwgYW5kIGhvcml6b250YWwtYnQgYXJlIHRoZSBmbGlwcGVkIGxpbmUgbW9kZXMuCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCShyZXZpc2lvbiAxODQ4ODkpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgJKHdvcmtpbmcgY29weSkKQEAgLTI2Miw4
ICsyNjIsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRNYXJnaW5MZWZ0KExheW91dFVuaXQgbWFy
Z2luKSB7IG1fbWFyZ2luQm94LnNldExlZnQobWFyZ2luKTsgfQogICAgIHZvaWQgc2V0TWFyZ2lu
UmlnaHQoTGF5b3V0VW5pdCBtYXJnaW4pIHsgbV9tYXJnaW5Cb3guc2V0UmlnaHQobWFyZ2luKTsg
fQogCi0gICAgTGF5b3V0VW5pdCBtYXJnaW5Mb2dpY2FsTGVmdCgpIGNvbnN0IHsgcmV0dXJuIG1f
bWFyZ2luQm94LmxvZ2ljYWxMZWZ0KHN0eWxlKCkud3JpdGluZ01vZGUoKSk7IH0KLSAgICBMYXlv
dXRVbml0IG1hcmdpbkxvZ2ljYWxSaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1fbWFyZ2luQm94Lmxv
Z2ljYWxSaWdodChzdHlsZSgpLndyaXRpbmdNb2RlKCkpOyB9CisgICAgTGF5b3V0VW5pdCBtYXJn
aW5Mb2dpY2FsTGVmdCgpIGNvbnN0IHsgcmV0dXJuIG1fbWFyZ2luQm94LnN0YXJ0KHN0eWxlKCku
d3JpdGluZ01vZGUoKSk7IH0KKyAgICBMYXlvdXRVbml0IG1hcmdpbkxvZ2ljYWxSaWdodCgpIGNv
bnN0IHsgcmV0dXJuIG1fbWFyZ2luQm94LmVuZChzdHlsZSgpLndyaXRpbmdNb2RlKCkpOyB9CiAg
ICAgCiAgICAgdmlydHVhbCBMYXlvdXRVbml0IG1hcmdpbkJlZm9yZShjb25zdCBSZW5kZXJTdHls
ZSogb3ZlcnJpZGVTdHlsZSA9IG51bGxwdHIpIGNvbnN0IG92ZXJyaWRlIGZpbmFsIHsgcmV0dXJu
IG1fbWFyZ2luQm94LmJlZm9yZSgob3ZlcnJpZGVTdHlsZSA/IG92ZXJyaWRlU3R5bGUgOiAmc3R5
bGUoKSktPndyaXRpbmdNb2RlKCkpOyB9CiAgICAgdmlydHVhbCBMYXlvdXRVbml0IG1hcmdpbkFm
dGVyKGNvbnN0IFJlbmRlclN0eWxlKiBvdmVycmlkZVN0eWxlID0gbnVsbHB0cikgY29uc3Qgb3Zl
cnJpZGUgZmluYWwgeyByZXR1cm4gbV9tYXJnaW5Cb3guYWZ0ZXIoKG92ZXJyaWRlU3R5bGUgPyBv
dmVycmlkZVN0eWxlIDogJnN0eWxlKCkpLT53cml0aW5nTW9kZSgpKTsgfQpAQCAtMjc3LDE3ICsy
NzcsMTcgQEAgcHVibGljOgogICAgICAgICBjb25zdCBSZW5kZXJTdHlsZSogc3R5bGVUb1VzZSA9
IG92ZXJyaWRlU3R5bGUgPyBvdmVycmlkZVN0eWxlIDogJnN0eWxlKCk7CiAgICAgICAgIHJldHVy
biBtX21hcmdpbkJveC5lbmQoc3R5bGVUb1VzZS0+d3JpdGluZ01vZGUoKSwgc3R5bGVUb1VzZS0+
ZGlyZWN0aW9uKCkpOwogICAgIH0KLSAgICB2b2lkIHNldE1hcmdpbkJlZm9yZShMYXlvdXRVbml0
IHZhbHVlLCBjb25zdCBSZW5kZXJTdHlsZSogb3ZlcnJpZGVTdHlsZSA9IG51bGxwdHIpIHsgbV9t
YXJnaW5Cb3guc2V0QmVmb3JlKChvdmVycmlkZVN0eWxlID8gb3ZlcnJpZGVTdHlsZSA6ICZzdHls
ZSgpKS0+d3JpdGluZ01vZGUoKSwgdmFsdWUpOyB9Ci0gICAgdm9pZCBzZXRNYXJnaW5BZnRlcihM
YXlvdXRVbml0IHZhbHVlLCBjb25zdCBSZW5kZXJTdHlsZSogb3ZlcnJpZGVTdHlsZSA9IG51bGxw
dHIpIHsgbV9tYXJnaW5Cb3guc2V0QWZ0ZXIoKG92ZXJyaWRlU3R5bGUgPyBvdmVycmlkZVN0eWxl
IDogJnN0eWxlKCkpLT53cml0aW5nTW9kZSgpLCB2YWx1ZSk7IH0KKyAgICB2b2lkIHNldE1hcmdp
bkJlZm9yZShMYXlvdXRVbml0IHZhbHVlLCBjb25zdCBSZW5kZXJTdHlsZSogb3ZlcnJpZGVTdHls
ZSA9IG51bGxwdHIpIHsgbV9tYXJnaW5Cb3guc2V0QmVmb3JlKHZhbHVlLCAob3ZlcnJpZGVTdHls
ZSA/IG92ZXJyaWRlU3R5bGUgOiAmc3R5bGUoKSktPndyaXRpbmdNb2RlKCkpOyB9CisgICAgdm9p
ZCBzZXRNYXJnaW5BZnRlcihMYXlvdXRVbml0IHZhbHVlLCBjb25zdCBSZW5kZXJTdHlsZSogb3Zl
cnJpZGVTdHlsZSA9IG51bGxwdHIpIHsgbV9tYXJnaW5Cb3guc2V0QWZ0ZXIodmFsdWUsIChvdmVy
cmlkZVN0eWxlID8gb3ZlcnJpZGVTdHlsZSA6ICZzdHlsZSgpKS0+d3JpdGluZ01vZGUoKSk7IH0K
ICAgICB2b2lkIHNldE1hcmdpblN0YXJ0KExheW91dFVuaXQgdmFsdWUsIGNvbnN0IFJlbmRlclN0
eWxlKiBvdmVycmlkZVN0eWxlID0gbnVsbHB0cikKICAgICB7CiAgICAgICAgIGNvbnN0IFJlbmRl
clN0eWxlKiBzdHlsZVRvVXNlID0gb3ZlcnJpZGVTdHlsZSA/IG92ZXJyaWRlU3R5bGUgOiAmc3R5
bGUoKTsKLSAgICAgICAgbV9tYXJnaW5Cb3guc2V0U3RhcnQoc3R5bGVUb1VzZS0+d3JpdGluZ01v
ZGUoKSwgc3R5bGVUb1VzZS0+ZGlyZWN0aW9uKCksIHZhbHVlKTsKKyAgICAgICAgbV9tYXJnaW5C
b3guc2V0U3RhcnQodmFsdWUsIHN0eWxlVG9Vc2UtPndyaXRpbmdNb2RlKCksIHN0eWxlVG9Vc2Ut
PmRpcmVjdGlvbigpKTsKICAgICB9CiAgICAgdm9pZCBzZXRNYXJnaW5FbmQoTGF5b3V0VW5pdCB2
YWx1ZSwgY29uc3QgUmVuZGVyU3R5bGUqIG92ZXJyaWRlU3R5bGUgPSBudWxscHRyKQogICAgIHsK
ICAgICAgICAgY29uc3QgUmVuZGVyU3R5bGUqIHN0eWxlVG9Vc2UgPSBvdmVycmlkZVN0eWxlID8g
b3ZlcnJpZGVTdHlsZSA6ICZzdHlsZSgpOwotICAgICAgICBtX21hcmdpbkJveC5zZXRFbmQoc3R5
bGVUb1VzZS0+d3JpdGluZ01vZGUoKSwgc3R5bGVUb1VzZS0+ZGlyZWN0aW9uKCksIHZhbHVlKTsK
KyAgICAgICAgbV9tYXJnaW5Cb3guc2V0RW5kKHZhbHVlLCBzdHlsZVRvVXNlLT53cml0aW5nTW9k
ZSgpLCBzdHlsZVRvVXNlLT5kaXJlY3Rpb24oKSk7CiAgICAgfQogCiAgICAgLy8gVGhlIGZvbGxv
d2luZyBmaXZlIGZ1bmN0aW9ucyBhcmUgdXNlZCB0byBpbXBsZW1lbnQgY29sbGFwc2luZyBtYXJn
aW5zLgpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9k
ZWxPYmplY3QuY3BwCShyZXZpc2lvbiAxODQ4ODkpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05MjEsMTEgKzky
MSwxMyBAQCBzdGF0aWMgaW5saW5lIExheW91dFNpemUgcmVzb2x2ZUFnYWluc3RJCiAgICAgcmV0
dXJuIExheW91dFNpemUoc2l6ZS53aWR0aCgpLCBzb2x1dGlvbkhlaWdodCk7CiB9CiAKLUxheW91
dFNpemUgUmVuZGVyQm94TW9kZWxPYmplY3Q6OmNhbGN1bGF0ZUltYWdlSW50cmluc2ljRGltZW5z
aW9ucyhTdHlsZUltYWdlKiBpbWFnZSwgY29uc3QgTGF5b3V0U2l6ZSYgcG9zaXRpb25pbmdBcmVh
U2l6ZSwgU2NhbGVCeUVmZmVjdGl2ZVpvb21Pck5vdCBzaG91bGRTY2FsZU9yTm90KSBjb25zdAor
Ym9vbCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6Y2FsY3VsYXRlSW1hZ2VJbnRyaW5zaWNEaW1lbnNp
b25zKFN0eWxlSW1hZ2UqIGltYWdlLCBjb25zdCBMYXlvdXRTaXplJiBwb3NpdGlvbmluZ0FyZWFT
aXplLCBTY2FsZUJ5RWZmZWN0aXZlWm9vbU9yTm90IHNob3VsZFNjYWxlT3JOb3QsIExheW91dFNp
emUmIGltYWdlU2l6ZSkgY29uc3QKIHsKICAgICAvLyBBIGdlbmVyYXRlZCBpbWFnZSB3aXRob3V0
IGEgZml4ZWQgc2l6ZSwgd2lsbCBhbHdheXMgcmV0dXJuIHRoZSBjb250YWluZXIgc2l6ZSBhcyBp
bnRyaW5zaWMgc2l6ZS4KLSAgICBpZiAoaW1hZ2UtPmlzR2VuZXJhdGVkSW1hZ2UoKSAmJiBpbWFn
ZS0+dXNlc0ltYWdlQ29udGFpbmVyU2l6ZSgpKQotICAgICAgICByZXR1cm4gTGF5b3V0U2l6ZShw
b3NpdGlvbmluZ0FyZWFTaXplLndpZHRoKCksIHBvc2l0aW9uaW5nQXJlYVNpemUuaGVpZ2h0KCkp
OworICAgIGlmIChpbWFnZS0+aXNHZW5lcmF0ZWRJbWFnZSgpICYmIGltYWdlLT51c2VzSW1hZ2VD
b250YWluZXJTaXplKCkpIHsKKyAgICAgICAgaW1hZ2VTaXplID0gTGF5b3V0U2l6ZShwb3NpdGlv
bmluZ0FyZWFTaXplLndpZHRoKCksIHBvc2l0aW9uaW5nQXJlYVNpemUuaGVpZ2h0KCkpOworICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CiAKICAgICBMZW5ndGggaW50cmluc2ljV2lkdGg7CiAg
ICAgTGVuZ3RoIGludHJpbnNpY0hlaWdodDsKQEAgLTkzNSwzMSArOTM3LDM2IEBAIExheW91dFNp
emUgUmVuZGVyQm94TW9kZWxPYmplY3Q6OmNhbGN1bGEKICAgICBBU1NFUlQoIWludHJpbnNpY1dp
ZHRoLmlzUGVyY2VudE9yQ2FsY3VsYXRlZCgpKTsKICAgICBBU1NFUlQoIWludHJpbnNpY0hlaWdo
dC5pc1BlcmNlbnRPckNhbGN1bGF0ZWQoKSk7CiAKLSAgICBMYXlvdXRTaXplIHJlc29sdmVkU2l6
ZShpbnRyaW5zaWNXaWR0aC52YWx1ZSgpLCBpbnRyaW5zaWNIZWlnaHQudmFsdWUoKSk7Ci0gICAg
TGF5b3V0U2l6ZSBtaW5pbXVtU2l6ZShyZXNvbHZlZFNpemUud2lkdGgoKSA+IDAgPyAxIDogMCwg
cmVzb2x2ZWRTaXplLmhlaWdodCgpID4gMCA/IDEgOiAwKTsKKyAgICBpbWFnZVNpemUgPSBMYXlv
dXRTaXplKGludHJpbnNpY1dpZHRoLnZhbHVlKCksIGludHJpbnNpY0hlaWdodC52YWx1ZSgpKTsK
KyAgICBMYXlvdXRTaXplIG1pbmltdW1TaXplKGltYWdlU2l6ZS53aWR0aCgpID4gMCA/IDEgOiAw
LCBpbWFnZVNpemUuaGVpZ2h0KCkgPiAwID8gMSA6IDApOwogICAgIGlmIChzaG91bGRTY2FsZU9y
Tm90ID09IFNjYWxlQnlFZmZlY3RpdmVab29tKQotICAgICAgICByZXNvbHZlZFNpemUuc2NhbGUo
c3R5bGUoKS5lZmZlY3RpdmVab29tKCkpOwotICAgIHJlc29sdmVkU2l6ZS5jbGFtcFRvTWluaW11
bVNpemUobWluaW11bVNpemUpOworICAgICAgICBpbWFnZVNpemUuc2NhbGUoc3R5bGUoKS5lZmZl
Y3RpdmVab29tKCkpOworICAgIGltYWdlU2l6ZS5jbGFtcFRvTWluaW11bVNpemUobWluaW11bVNp
emUpOwogCi0gICAgaWYgKCFyZXNvbHZlZFNpemUuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4g
cmVzb2x2ZWRTaXplOworICAgIGlmICghaW1hZ2VTaXplLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0
dXJuIHRydWU7CiAKICAgICAvLyBJZiB0aGUgaW1hZ2UgaGFzIG9uZSBvZiBlaXRoZXIgYW4gaW50
cmluc2ljIHdpZHRoIG9yIGFuIGludHJpbnNpYyBoZWlnaHQ6CiAgICAgLy8gKiBhbmQgYW4gaW50
cmluc2ljIGFzcGVjdCByYXRpbywgdGhlbiB0aGUgbWlzc2luZyBkaW1lbnNpb24gaXMgY2FsY3Vs
YXRlZCBmcm9tIHRoZSBnaXZlbiBkaW1lbnNpb24gYW5kIHRoZSByYXRpby4KICAgICAvLyAqIGFu
ZCBubyBpbnRyaW5zaWMgYXNwZWN0IHJhdGlvLCB0aGVuIHRoZSBtaXNzaW5nIGRpbWVuc2lvbiBp
cyBhc3N1bWVkIHRvIGJlIHRoZSBzaXplIG9mIHRoZSByZWN0YW5nbGUgdGhhdAogICAgIC8vICAg
ZXN0YWJsaXNoZXMgdGhlIGNvb3JkaW5hdGUgc3lzdGVtIGZvciB0aGUgJ2JhY2tncm91bmQtcG9z
aXRpb24nIHByb3BlcnR5LgotICAgIGlmIChyZXNvbHZlZFNpemUud2lkdGgoKSA+IDAgfHwgcmVz
b2x2ZWRTaXplLmhlaWdodCgpID4gMCkKLSAgICAgICAgcmV0dXJuIHJlc29sdmVBZ2FpbnN0SW50
cmluc2ljV2lkdGhPckhlaWdodEFuZFJhdGlvKHBvc2l0aW9uaW5nQXJlYVNpemUsIGludHJpbnNp
Y1JhdGlvLCByZXNvbHZlZFNpemUud2lkdGgoKSwgcmVzb2x2ZWRTaXplLmhlaWdodCgpKTsKKyAg
ICBpZiAoaW1hZ2VTaXplLndpZHRoKCkgPiAwIHx8IGltYWdlU2l6ZS5oZWlnaHQoKSA+IDApIHsK
KyAgICAgICAgaW1hZ2VTaXplID0gcmVzb2x2ZUFnYWluc3RJbnRyaW5zaWNXaWR0aE9ySGVpZ2h0
QW5kUmF0aW8ocG9zaXRpb25pbmdBcmVhU2l6ZSwgaW50cmluc2ljUmF0aW8sIGltYWdlU2l6ZS53
aWR0aCgpLCBpbWFnZVNpemUuaGVpZ2h0KCkpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9
CiAKICAgICAvLyBJZiB0aGUgaW1hZ2UgaGFzIG5vIGludHJpbnNpYyBkaW1lbnNpb25zIGFuZCBo
YXMgYW4gaW50cmluc2ljIHJhdGlvIHRoZSBkaW1lbnNpb25zIG11c3QgYmUgYXNzdW1lZCB0byBi
ZSB0aGUKICAgICAvLyBsYXJnZXN0IGRpbWVuc2lvbnMgYXQgdGhhdCByYXRpbyBzdWNoIHRoYXQg
bmVpdGhlciBkaW1lbnNpb24gZXhjZWVkcyB0aGUgZGltZW5zaW9ucyBvZiB0aGUgcmVjdGFuZ2xl
IHRoYXQKICAgICAvLyBlc3RhYmxpc2hlcyB0aGUgY29vcmRpbmF0ZSBzeXN0ZW0gZm9yIHRoZSAn
YmFja2dyb3VuZC1wb3NpdGlvbicgcHJvcGVydHkuCi0gICAgaWYgKCFpbnRyaW5zaWNSYXRpby5p
c0VtcHR5KCkpCi0gICAgICAgIHJldHVybiByZXNvbHZlQWdhaW5zdEludHJpbnNpY1JhdGlvKHBv
c2l0aW9uaW5nQXJlYVNpemUsIGludHJpbnNpY1JhdGlvKTsKKyAgICBpZiAoIWludHJpbnNpY1Jh
dGlvLmlzRW1wdHkoKSkgeworICAgICAgICBpbWFnZVNpemUgPSByZXNvbHZlQWdhaW5zdEludHJp
bnNpY1JhdGlvKHBvc2l0aW9uaW5nQXJlYVNpemUsIGludHJpbnNpY1JhdGlvKTsKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIH0KIAogICAgIC8vIElmIHRoZSBpbWFnZSBoYXMgbm8gaW50cmlu
c2ljIHJhdGlvIGVpdGhlciwgdGhlbiB0aGUgZGltZW5zaW9ucyBtdXN0IGJlIGFzc3VtZWQgdG8g
YmUgdGhlIHJlY3RhbmdsZSB0aGF0CiAgICAgLy8gZXN0YWJsaXNoZXMgdGhlIGNvb3JkaW5hdGUg
c3lzdGVtIGZvciB0aGUgJ2JhY2tncm91bmQtcG9zaXRpb24nIHByb3BlcnR5LgotICAgIHJldHVy
biBwb3NpdGlvbmluZ0FyZWFTaXplOworICAgIGltYWdlU2l6ZSA9IHBvc2l0aW9uaW5nQXJlYVNp
emU7CisgICAgcmV0dXJuIGZhbHNlOwogfQogCiBMYXlvdXRTaXplIFJlbmRlckJveE1vZGVsT2Jq
ZWN0OjpjYWxjdWxhdGVGaWxsVGlsZVNpemUoY29uc3QgRmlsbExheWVyJiBmaWxsTGF5ZXIsIGNv
bnN0IExheW91dFNpemUmIHBvc2l0aW9uaW5nQXJlYVNpemUpIGNvbnN0CkBAIC05NjksNyArOTc2
LDcgQEAgTGF5b3V0U2l6ZSBSZW5kZXJCb3hNb2RlbE9iamVjdDo6Y2FsY3VsYQogCiAgICAgTGF5
b3V0U2l6ZSBpbWFnZUludHJpbnNpY1NpemU7CiAgICAgaWYgKGltYWdlKSB7Ci0gICAgICAgIGlt
YWdlSW50cmluc2ljU2l6ZSA9IGNhbGN1bGF0ZUltYWdlSW50cmluc2ljRGltZW5zaW9ucyhpbWFn
ZSwgcG9zaXRpb25pbmdBcmVhU2l6ZSwgU2NhbGVCeUVmZmVjdGl2ZVpvb20pOworICAgICAgICBj
YWxjdWxhdGVJbWFnZUludHJpbnNpY0RpbWVuc2lvbnMoaW1hZ2UsIHBvc2l0aW9uaW5nQXJlYVNp
emUsIFNjYWxlQnlFZmZlY3RpdmVab29tLCBpbWFnZUludHJpbnNpY1NpemUpOwogICAgICAgICBp
bWFnZUludHJpbnNpY1NpemUuc2NhbGUoMSAvIGltYWdlLT5pbWFnZVNjYWxlRmFjdG9yKCksIDEg
LyBpbWFnZS0+aW1hZ2VTY2FsZUZhY3RvcigpKTsKICAgICB9IGVsc2UKICAgICAgICAgaW1hZ2VJ
bnRyaW5zaWNTaXplID0gcG9zaXRpb25pbmdBcmVhU2l6ZTsKQEAgLTEyMzgsMTUgKzEyNDUsNiBA
QCB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0OjpnZXRHZW9tZXRyeUZvCiAgICAgZGVzdFJlY3Qg
PSBnZW9tZXRyeS5kZXN0UmVjdCgpOwogfQogCi1zdGF0aWMgTGF5b3V0VW5pdCBjb21wdXRlQm9y
ZGVySW1hZ2VTaWRlKExlbmd0aCBib3JkZXJTbGljZSwgTGF5b3V0VW5pdCBib3JkZXJTaWRlLCBM
YXlvdXRVbml0IGltYWdlU2lkZSwgTGF5b3V0VW5pdCBib3hFeHRlbnQpCi17Ci0gICAgaWYgKGJv
cmRlclNsaWNlLmlzUmVsYXRpdmUoKSkKLSAgICAgICAgcmV0dXJuIGJvcmRlclNsaWNlLnZhbHVl
KCkgKiBib3JkZXJTaWRlOwotICAgIGlmIChib3JkZXJTbGljZS5pc0F1dG8oKSkKLSAgICAgICAg
cmV0dXJuIGltYWdlU2lkZTsKLSAgICByZXR1cm4gdmFsdWVGb3JMZW5ndGgoYm9yZGVyU2xpY2Us
IGJveEV4dGVudCk7Ci19Ci0KIGJvb2wgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50TmluZVBp
ZWNlSW1hZ2UoR3JhcGhpY3NDb250ZXh0KiBncmFwaGljc0NvbnRleHQsIGNvbnN0IExheW91dFJl
Y3QmIHJlY3QsIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgTmluZVBpZWNlSW1hZ2UmIG5pbmVQaWVj
ZUltYWdlLCBDb21wb3NpdGVPcGVyYXRvciBvcCkKIHsKQEAgLTEyNjMsMTUyICsxMjYxLDE4IEBA
IGJvb2wgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50TmluZVBpZWMKICAgICAvLyBGSVhNRTog
Ym9yZGVyLWltYWdlIGlzIGJyb2tlbiB3aXRoIGZ1bGwgcGFnZSB6b29taW5nIHdoZW4gdGlsaW5n
IGhhcyB0byBoYXBwZW4sIHNpbmNlIHRoZSB0aWxpbmcgZnVuY3Rpb24KICAgICAvLyBkb2Vzbid0
IGhhdmUgYW55IHVuZGVyc3RhbmRpbmcgb2YgdGhlIHpvb20gdGhhdCBpcyBpbiBlZmZlY3Qgb24g
dGhlIHRpbGUuCiAgICAgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IgPSBkb2N1bWVudCgpLmRldmlj
ZVNjYWxlRmFjdG9yKCk7CisKICAgICBMYXlvdXRSZWN0IHJlY3RXaXRoT3V0c2V0cyA9IHJlY3Q7
CiAgICAgcmVjdFdpdGhPdXRzZXRzLmV4cGFuZChzdHlsZS5pbWFnZU91dHNldHMobmluZVBpZWNl
SW1hZ2UpKTsKLSAgICBMYXlvdXRSZWN0IGJvcmRlckltYWdlUmVjdCA9IExheW91dFJlY3Qoc25h
cFJlY3RUb0RldmljZVBpeGVscyhyZWN0V2l0aE91dHNldHMsIGRldmljZVNjYWxlRmFjdG9yKSk7
CisgICAgTGF5b3V0UmVjdCBkZXN0aW5hdGlvbiA9IExheW91dFJlY3Qoc25hcFJlY3RUb0Rldmlj
ZVBpeGVscyhyZWN0V2l0aE91dHNldHMsIGRldmljZVNjYWxlRmFjdG9yKSk7CiAKLSAgICBMYXlv
dXRTaXplIGltYWdlU2l6ZSA9IGNhbGN1bGF0ZUltYWdlSW50cmluc2ljRGltZW5zaW9ucyhzdHls
ZUltYWdlLCBib3JkZXJJbWFnZVJlY3Quc2l6ZSgpLCBEb05vdFNjYWxlQnlFZmZlY3RpdmVab29t
KTsKKyAgICBMYXlvdXRTaXplIHNvdXJjZTsKKyAgICBib29sIGludHJpbnNpY1NvdXJjZSA9IGNh
bGN1bGF0ZUltYWdlSW50cmluc2ljRGltZW5zaW9ucyhzdHlsZUltYWdlLCBkZXN0aW5hdGlvbi5z
aXplKCksIERvTm90U2NhbGVCeUVmZmVjdGl2ZVpvb20sIHNvdXJjZSk7CiAKICAgICAvLyBJZiBi
b3RoIHZhbHVlcyBhcmUg4oCYYXV0b+KAmSB0aGVuIHRoZSBpbnRyaW5zaWMgd2lkdGggYW5kL29y
IGhlaWdodCBvZiB0aGUgaW1hZ2Ugc2hvdWxkIGJlIHVzZWQsIGlmIGFueS4KLSAgICBzdHlsZUlt
YWdlLT5zZXRDb250YWluZXJTaXplRm9yUmVuZGVyZXIodGhpcywgaW1hZ2VTaXplLCBzdHlsZS5l
ZmZlY3RpdmVab29tKCkpOwotCi0gICAgTGF5b3V0VW5pdCBpbWFnZVdpZHRoID0gaW1hZ2VTaXpl
LndpZHRoKCk7Ci0gICAgTGF5b3V0VW5pdCBpbWFnZUhlaWdodCA9IGltYWdlU2l6ZS5oZWlnaHQo
KTsKLQotICAgIGZsb2F0IGltYWdlU2NhbGVGYWN0b3IgPSBzdHlsZUltYWdlLT5pbWFnZVNjYWxl
RmFjdG9yKCk7Ci0gICAgTGF5b3V0VW5pdCB0b3BTbGljZSA9IHN0ZDo6bWluPExheW91dFVuaXQ+
KGltYWdlSGVpZ2h0LCB2YWx1ZUZvckxlbmd0aChuaW5lUGllY2VJbWFnZS5pbWFnZVNsaWNlcygp
LnRvcCgpLCBpbWFnZUhlaWdodCkpICogaW1hZ2VTY2FsZUZhY3RvcjsKLSAgICBMYXlvdXRVbml0
IHJpZ2h0U2xpY2UgPSBzdGQ6Om1pbjxMYXlvdXRVbml0PihpbWFnZVdpZHRoLCB2YWx1ZUZvckxl
bmd0aChuaW5lUGllY2VJbWFnZS5pbWFnZVNsaWNlcygpLnJpZ2h0KCksIGltYWdlV2lkdGgpKSAq
IGltYWdlU2NhbGVGYWN0b3I7Ci0gICAgTGF5b3V0VW5pdCBib3R0b21TbGljZSA9IHN0ZDo6bWlu
PExheW91dFVuaXQ+KGltYWdlSGVpZ2h0LCB2YWx1ZUZvckxlbmd0aChuaW5lUGllY2VJbWFnZS5p
bWFnZVNsaWNlcygpLmJvdHRvbSgpLCBpbWFnZUhlaWdodCkpICogaW1hZ2VTY2FsZUZhY3RvcjsK
LSAgICBMYXlvdXRVbml0IGxlZnRTbGljZSA9IHN0ZDo6bWluPExheW91dFVuaXQ+KGltYWdlV2lk
dGgsIHZhbHVlRm9yTGVuZ3RoKG5pbmVQaWVjZUltYWdlLmltYWdlU2xpY2VzKCkubGVmdCgpLCBp
bWFnZVdpZHRoKSkgKiBpbWFnZVNjYWxlRmFjdG9yOwotCi0gICAgRU5pbmVQaWVjZUltYWdlUnVs
ZSBoUnVsZSA9IG5pbmVQaWVjZUltYWdlLmhvcml6b250YWxSdWxlKCk7Ci0gICAgRU5pbmVQaWVj
ZUltYWdlUnVsZSB2UnVsZSA9IG5pbmVQaWVjZUltYWdlLnZlcnRpY2FsUnVsZSgpOwotCi0gICAg
TGF5b3V0VW5pdCB0b3BXaWR0aCA9IGNvbXB1dGVCb3JkZXJJbWFnZVNpZGUobmluZVBpZWNlSW1h
Z2UuYm9yZGVyU2xpY2VzKCkudG9wKCksIHN0eWxlLmJvcmRlclRvcFdpZHRoKCksIHRvcFNsaWNl
LCBib3JkZXJJbWFnZVJlY3QuaGVpZ2h0KCkpOwotICAgIExheW91dFVuaXQgcmlnaHRXaWR0aCA9
IGNvbXB1dGVCb3JkZXJJbWFnZVNpZGUobmluZVBpZWNlSW1hZ2UuYm9yZGVyU2xpY2VzKCkucmln
aHQoKSwgc3R5bGUuYm9yZGVyUmlnaHRXaWR0aCgpLCByaWdodFNsaWNlLCBib3JkZXJJbWFnZVJl
Y3Qud2lkdGgoKSk7Ci0gICAgTGF5b3V0VW5pdCBib3R0b21XaWR0aCA9IGNvbXB1dGVCb3JkZXJJ
bWFnZVNpZGUobmluZVBpZWNlSW1hZ2UuYm9yZGVyU2xpY2VzKCkuYm90dG9tKCksIHN0eWxlLmJv
cmRlckJvdHRvbVdpZHRoKCksIGJvdHRvbVNsaWNlLCBib3JkZXJJbWFnZVJlY3QuaGVpZ2h0KCkp
OwotICAgIExheW91dFVuaXQgbGVmdFdpZHRoID0gY29tcHV0ZUJvcmRlckltYWdlU2lkZShuaW5l
UGllY2VJbWFnZS5ib3JkZXJTbGljZXMoKS5sZWZ0KCksIHN0eWxlLmJvcmRlckxlZnRXaWR0aCgp
LCBsZWZ0U2xpY2UsIGJvcmRlckltYWdlUmVjdC53aWR0aCgpKTsKLQotICAgIC8vIFJlZHVjZSB0
aGUgd2lkdGhzIGlmIHRoZXkncmUgdG9vIGxhcmdlLgotICAgIC8vIFRoZSBzcGVjIHNheXM6IEdp
dmVuIEx3aWR0aCBhcyB0aGUgd2lkdGggb2YgdGhlIGJvcmRlciBpbWFnZSBhcmVhLCBMaGVpZ2h0
IGFzIGl0cyBoZWlnaHQsIGFuZCBXc2lkZSBhcyB0aGUgYm9yZGVyIGltYWdlIHdpZHRoCi0gICAg
Ly8gb2Zmc2V0IGZvciB0aGUgc2lkZSwgbGV0IGYgPSBtaW4oTHdpZHRoLyhXbGVmdCtXcmlnaHQp
LCBMaGVpZ2h0LyhXdG9wK1dib3R0b20pKS4gSWYgZiA8IDEsIHRoZW4gYWxsIFcgYXJlIHJlZHVj
ZWQgYnkKLSAgICAvLyBtdWx0aXBseWluZyB0aGVtIGJ5IGYuCi0gICAgTGF5b3V0VW5pdCBib3Jk
ZXJTaWRlV2lkdGggPSBzdGQ6Om1heDxMYXlvdXRVbml0PigxIC8gZGV2aWNlU2NhbGVGYWN0b3Is
IGxlZnRXaWR0aCArIHJpZ2h0V2lkdGgpOwotICAgIExheW91dFVuaXQgYm9yZGVyU2lkZUhlaWdo
dCA9IHN0ZDo6bWF4PExheW91dFVuaXQ+KDEgLyBkZXZpY2VTY2FsZUZhY3RvciwgdG9wV2lkdGgg
KyBib3R0b21XaWR0aCk7Ci0gICAgZmxvYXQgYm9yZGVyU2lkZVNjYWxlRmFjdG9yID0gc3RkOjpt
aW4oKGZsb2F0KWJvcmRlckltYWdlUmVjdC53aWR0aCgpIC8gYm9yZGVyU2lkZVdpZHRoLCAoZmxv
YXQpYm9yZGVySW1hZ2VSZWN0LmhlaWdodCgpIC8gYm9yZGVyU2lkZUhlaWdodCk7Ci0gICAgaWYg
KGJvcmRlclNpZGVTY2FsZUZhY3RvciA8IDEpIHsKLSAgICAgICAgdG9wV2lkdGggKj0gYm9yZGVy
U2lkZVNjYWxlRmFjdG9yOwotICAgICAgICByaWdodFdpZHRoICo9IGJvcmRlclNpZGVTY2FsZUZh
Y3RvcjsKLSAgICAgICAgYm90dG9tV2lkdGggKj0gYm9yZGVyU2lkZVNjYWxlRmFjdG9yOwotICAg
ICAgICBsZWZ0V2lkdGggKj0gYm9yZGVyU2lkZVNjYWxlRmFjdG9yOwotICAgIH0KLQotICAgIGJv
b2wgZHJhd0xlZnQgPSBsZWZ0U2xpY2UgPiAwICYmIGxlZnRXaWR0aCA+IDA7Ci0gICAgYm9vbCBk
cmF3VG9wID0gdG9wU2xpY2UgPiAwICYmIHRvcFdpZHRoID4gMDsKLSAgICBib29sIGRyYXdSaWdo
dCA9IHJpZ2h0U2xpY2UgPiAwICYmIHJpZ2h0V2lkdGggPiAwOwotICAgIGJvb2wgZHJhd0JvdHRv
bSA9IGJvdHRvbVNsaWNlID4gMCAmJiBib3R0b21XaWR0aCA+IDA7Ci0gICAgYm9vbCBkcmF3TWlk
ZGxlID0gbmluZVBpZWNlSW1hZ2UuZmlsbCgpICYmIChpbWFnZVdpZHRoIC0gbGVmdFNsaWNlIC0g
cmlnaHRTbGljZSkgPiAwICYmIChib3JkZXJJbWFnZVJlY3Qud2lkdGgoKSAtIGxlZnRXaWR0aCAt
IHJpZ2h0V2lkdGgpID4gMAotICAgICAgICAgICAgICAgICAgICAgICYmIChpbWFnZUhlaWdodCAt
IHRvcFNsaWNlIC0gYm90dG9tU2xpY2UpID4gMCAmJiAoYm9yZGVySW1hZ2VSZWN0LmhlaWdodCgp
IC0gdG9wV2lkdGggLSBib3R0b21XaWR0aCkgPiAwOwotCi0gICAgUmVmUHRyPEltYWdlPiBpbWFn
ZSA9IHN0eWxlSW1hZ2UtPmltYWdlKHRoaXMsIGltYWdlU2l6ZSk7Ci0gICAgQ29sb3JTcGFjZSBj
b2xvclNwYWNlID0gc3R5bGUuY29sb3JTcGFjZSgpOwotICAgIAotICAgIGZsb2F0IGRlc3RpbmF0
aW9uV2lkdGggPSBib3JkZXJJbWFnZVJlY3Qud2lkdGgoKSAtIGxlZnRXaWR0aCAtIHJpZ2h0V2lk
dGg7Ci0gICAgZmxvYXQgZGVzdGluYXRpb25IZWlnaHQgPSBib3JkZXJJbWFnZVJlY3QuaGVpZ2h0
KCkgLSB0b3BXaWR0aCAtIGJvdHRvbVdpZHRoOwotICAgIAotICAgIGZsb2F0IHNvdXJjZVdpZHRo
ID0gaW1hZ2VXaWR0aCAtIGxlZnRTbGljZSAtIHJpZ2h0U2xpY2U7Ci0gICAgZmxvYXQgc291cmNl
SGVpZ2h0ID0gaW1hZ2VIZWlnaHQgLSB0b3BTbGljZSAtIGJvdHRvbVNsaWNlOwotICAgIAotICAg
IGZsb2F0IGxlZnRTaWRlU2NhbGUgPSBkcmF3TGVmdCA/IChmbG9hdClsZWZ0V2lkdGggLyBsZWZ0
U2xpY2UgOiAxOwotICAgIGZsb2F0IHJpZ2h0U2lkZVNjYWxlID0gZHJhd1JpZ2h0ID8gKGZsb2F0
KXJpZ2h0V2lkdGggLyByaWdodFNsaWNlIDogMTsKLSAgICBmbG9hdCB0b3BTaWRlU2NhbGUgPSBk
cmF3VG9wID8gKGZsb2F0KXRvcFdpZHRoIC8gdG9wU2xpY2UgOiAxOwotICAgIGZsb2F0IGJvdHRv
bVNpZGVTY2FsZSA9IGRyYXdCb3R0b20gPyAoZmxvYXQpYm90dG9tV2lkdGggLyBib3R0b21TbGlj
ZSA6IDE7Ci0KLSAgICBmbG9hdCB4ID0gYm9yZGVySW1hZ2VSZWN0LmxvY2F0aW9uKCkueCgpOwot
ICAgIGZsb2F0IHkgPSBib3JkZXJJbWFnZVJlY3QubG9jYXRpb24oKS55KCk7Ci0gICAgaWYgKGRy
YXdMZWZ0KSB7Ci0gICAgICAgIC8vIFBhaW50IHRoZSB0b3AgYW5kIGJvdHRvbSBsZWZ0IGNvcm5l
cnMuCi0KLSAgICAgICAgLy8gVGhlIHRvcCBsZWZ0IGNvcm5lciByZWN0IGlzICh0eCwgdHksIGxl
ZnRXaWR0aCwgdG9wV2lkdGgpCi0gICAgICAgIC8vIFRoZSByZWN0IHRvIHVzZSBmcm9tIHdpdGhp
biB0aGUgaW1hZ2UgaXMgb2J0YWluZWQgZnJvbSBvdXIgc2xpY2UsIGFuZCBpcyAoMCwgMCwgbGVm
dFNsaWNlLCB0b3BTbGljZSkKLSAgICAgICAgaWYgKGRyYXdUb3ApCi0gICAgICAgICAgICBncmFw
aGljc0NvbnRleHQtPmRyYXdJbWFnZShpbWFnZS5nZXQoKSwgY29sb3JTcGFjZSwgc25hcFJlY3RU
b0RldmljZVBpeGVscyh4LCB5LCBsZWZ0V2lkdGgsIHRvcFdpZHRoLCBkZXZpY2VTY2FsZUZhY3Rv
ciksCi0gICAgICAgICAgICAgICAgc25hcFJlY3RUb0RldmljZVBpeGVscygwLCAwLCBsZWZ0U2xp
Y2UsIHRvcFNsaWNlLCBkZXZpY2VTY2FsZUZhY3RvciksIG9wKTsKLQotICAgICAgICAvLyBUaGUg
Ym90dG9tIGxlZnQgY29ybmVyIHJlY3QgaXMgKHR4LCB0eSArIGggLSBib3R0b21XaWR0aCwgbGVm
dFdpZHRoLCBib3R0b21XaWR0aCkKLSAgICAgICAgLy8gVGhlIHJlY3QgdG8gdXNlIGZyb20gd2l0
aGluIHRoZSBpbWFnZSBpcyAoMCwgaW1hZ2VIZWlnaHQgLSBib3R0b21TbGljZSwgbGVmdFNsaWNl
LCBib3RvbVNsaWNlKQotICAgICAgICBpZiAoZHJhd0JvdHRvbSkKLSAgICAgICAgICAgIGdyYXBo
aWNzQ29udGV4dC0+ZHJhd0ltYWdlKGltYWdlLmdldCgpLCBjb2xvclNwYWNlLCBzbmFwUmVjdFRv
RGV2aWNlUGl4ZWxzKHgsIGJvcmRlckltYWdlUmVjdC5tYXhZKCkgLSBib3R0b21XaWR0aCwgbGVm
dFdpZHRoLCBib3R0b21XaWR0aCwgZGV2aWNlU2NhbGVGYWN0b3IpLAotICAgICAgICAgICAgICAg
IHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMoMCwgaW1hZ2VIZWlnaHQgLSBib3R0b21TbGljZSwgbGVm
dFNsaWNlLCBib3R0b21TbGljZSwgZGV2aWNlU2NhbGVGYWN0b3IpLCBvcCk7Ci0KLSAgICAgICAg
Ly8gUGFpbnQgdGhlIGxlZnQgZWRnZS4KLSAgICAgICAgLy8gSGF2ZSB0byBzY2FsZSBhbmQgdGls
ZSBpbnRvIHRoZSBib3JkZXIgcmVjdC4KLSAgICAgICAgaWYgKHNvdXJjZUhlaWdodCA+IDApCi0g
ICAgICAgICAgICBncmFwaGljc0NvbnRleHQtPmRyYXdUaWxlZEltYWdlKGltYWdlLmdldCgpLCBj
b2xvclNwYWNlLCBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKHgsIHkgKyB0b3BXaWR0aCwgbGVmdFdp
ZHRoLCBkZXN0aW5hdGlvbkhlaWdodCwgZGV2aWNlU2NhbGVGYWN0b3IpLAotICAgICAgICAgICAg
ICAgIHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMoMCwgdG9wU2xpY2UsIGxlZnRTbGljZSwgc291cmNl
SGVpZ2h0LCBkZXZpY2VTY2FsZUZhY3RvciksIEZsb2F0U2l6ZShsZWZ0U2lkZVNjYWxlLCBsZWZ0
U2lkZVNjYWxlKSwgSW1hZ2U6OlN0cmV0Y2hUaWxlLCAoSW1hZ2U6OlRpbGVSdWxlKXZSdWxlLCBv
cCk7Ci0gICAgfQotCi0gICAgaWYgKGRyYXdSaWdodCkgewotICAgICAgICAvLyBQYWludCB0aGUg
dG9wIGFuZCBib3R0b20gcmlnaHQgY29ybmVycwotICAgICAgICAvLyBUaGUgdG9wIHJpZ2h0IGNv
cm5lciByZWN0IGlzICh0eCArIHcgLSByaWdodFdpZHRoLCB0eSwgcmlnaHRXaWR0aCwgdG9wV2lk
dGgpCi0gICAgICAgIC8vIFRoZSByZWN0IHRvIHVzZSBmcm9tIHdpdGhpbiB0aGUgaW1hZ2UgaXMg
b2J0YWluZWQgZnJvbSBvdXIgc2xpY2UsIGFuZCBpcyAoaW1hZ2VXaWR0aCAtIHJpZ2h0U2xpY2Us
IDAsIHJpZ2h0U2xpY2UsIHRvcFNsaWNlKQotICAgICAgICBpZiAoZHJhd1RvcCkKLSAgICAgICAg
ICAgIGdyYXBoaWNzQ29udGV4dC0+ZHJhd0ltYWdlKGltYWdlLmdldCgpLCBjb2xvclNwYWNlLCBz
bmFwUmVjdFRvRGV2aWNlUGl4ZWxzKGJvcmRlckltYWdlUmVjdC5tYXhYKCkgLSByaWdodFdpZHRo
LCB5LCByaWdodFdpZHRoLCB0b3BXaWR0aCwgZGV2aWNlU2NhbGVGYWN0b3IpLAotICAgICAgICAg
ICAgICAgIHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMoaW1hZ2VXaWR0aCAtIHJpZ2h0U2xpY2UsIDAs
IHJpZ2h0U2xpY2UsIHRvcFNsaWNlLCBkZXZpY2VTY2FsZUZhY3RvciksIG9wKTsKLQotICAgICAg
ICAvLyBUaGUgYm90dG9tIHJpZ2h0IGNvcm5lciByZWN0IGlzICh0eCArIHcgLSByaWdodFdpZHRo
LCB0eSArIGggLSBib3R0b21XaWR0aCwgcmlnaHRXaWR0aCwgYm90dG9tV2lkdGgpCi0gICAgICAg
IC8vIFRoZSByZWN0IHRvIHVzZSBmcm9tIHdpdGhpbiB0aGUgaW1hZ2UgaXMgKGltYWdlV2lkdGgg
LSByaWdodFNsaWNlLCBpbWFnZUhlaWdodCAtIGJvdHRvbVNsaWNlLCByaWdodFNsaWNlLCBib3R0
b21TbGljZSkKLSAgICAgICAgaWYgKGRyYXdCb3R0b20pCi0gICAgICAgICAgICBncmFwaGljc0Nv
bnRleHQtPmRyYXdJbWFnZShpbWFnZS5nZXQoKSwgY29sb3JTcGFjZSwgc25hcFJlY3RUb0Rldmlj
ZVBpeGVscyhib3JkZXJJbWFnZVJlY3QubWF4WCgpIC0gcmlnaHRXaWR0aCwgYm9yZGVySW1hZ2VS
ZWN0Lm1heFkoKSAtIGJvdHRvbVdpZHRoLAotICAgICAgICAgICAgICAgIHJpZ2h0V2lkdGgsIGJv
dHRvbVdpZHRoLCBkZXZpY2VTY2FsZUZhY3RvciksIHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMoaW1h
Z2VXaWR0aCAtIHJpZ2h0U2xpY2UsIGltYWdlSGVpZ2h0IC0gYm90dG9tU2xpY2UsIHJpZ2h0U2xp
Y2UsIGJvdHRvbVNsaWNlLCBkZXZpY2VTY2FsZUZhY3RvciksCi0gICAgICAgICAgICAgICAgb3Ap
OwotCi0gICAgICAgIC8vIFBhaW50IHRoZSByaWdodCBlZGdlLgotICAgICAgICBpZiAoc291cmNl
SGVpZ2h0ID4gMCkKLSAgICAgICAgICAgIGdyYXBoaWNzQ29udGV4dC0+ZHJhd1RpbGVkSW1hZ2Uo
aW1hZ2UuZ2V0KCksIGNvbG9yU3BhY2UsIHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMoYm9yZGVySW1h
Z2VSZWN0Lm1heFgoKSAtIHJpZ2h0V2lkdGgsIHkgKyB0b3BXaWR0aCwgcmlnaHRXaWR0aCwgZGVz
dGluYXRpb25IZWlnaHQsIGRldmljZVNjYWxlRmFjdG9yKSwKLSAgICAgICAgICAgICAgICBzbmFw
UmVjdFRvRGV2aWNlUGl4ZWxzKGltYWdlV2lkdGggLSByaWdodFNsaWNlLCB0b3BTbGljZSwgcmln
aHRTbGljZSwgc291cmNlSGVpZ2h0LCBkZXZpY2VTY2FsZUZhY3RvciksIEZsb2F0U2l6ZShyaWdo
dFNpZGVTY2FsZSwgcmlnaHRTaWRlU2NhbGUpLAotICAgICAgICAgICAgICAgIEltYWdlOjpTdHJl
dGNoVGlsZSwgKEltYWdlOjpUaWxlUnVsZSl2UnVsZSwgb3ApOwotICAgIH0KLQotICAgIC8vIFBh
aW50IHRoZSB0b3AgZWRnZS4KLSAgICBpZiAoZHJhd1RvcCAmJiBzb3VyY2VXaWR0aCA+IDApCi0g
ICAgICAgIGdyYXBoaWNzQ29udGV4dC0+ZHJhd1RpbGVkSW1hZ2UoaW1hZ2UuZ2V0KCksIGNvbG9y
U3BhY2UsIHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMoeCArIGxlZnRXaWR0aCwgeSwgZGVzdGluYXRp
b25XaWR0aCwgdG9wV2lkdGgsIGRldmljZVNjYWxlRmFjdG9yKSwKLSAgICAgICAgICAgIHNuYXBS
ZWN0VG9EZXZpY2VQaXhlbHMobGVmdFNsaWNlLCAwLCBzb3VyY2VXaWR0aCwgdG9wU2xpY2UsIGRl
dmljZVNjYWxlRmFjdG9yKSwgRmxvYXRTaXplKHRvcFNpZGVTY2FsZSwgdG9wU2lkZVNjYWxlKSwg
KEltYWdlOjpUaWxlUnVsZSloUnVsZSwgSW1hZ2U6OlN0cmV0Y2hUaWxlLCBvcCk7Ci0KLSAgICAv
LyBQYWludCB0aGUgYm90dG9tIGVkZ2UuCi0gICAgaWYgKGRyYXdCb3R0b20gJiYgc291cmNlV2lk
dGggPiAwKQotICAgICAgICBncmFwaGljc0NvbnRleHQtPmRyYXdUaWxlZEltYWdlKGltYWdlLmdl
dCgpLCBjb2xvclNwYWNlLCBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKHggKyBsZWZ0V2lkdGgsIGJv
cmRlckltYWdlUmVjdC5tYXhZKCkgLSBib3R0b21XaWR0aCwgZGVzdGluYXRpb25XaWR0aCwgYm90
dG9tV2lkdGgsIGRldmljZVNjYWxlRmFjdG9yKSwKLSAgICAgICAgICAgIHNuYXBSZWN0VG9EZXZp
Y2VQaXhlbHMobGVmdFNsaWNlLCBpbWFnZUhlaWdodCAtIGJvdHRvbVNsaWNlLCBzb3VyY2VXaWR0
aCwgYm90dG9tU2xpY2UsIGRldmljZVNjYWxlRmFjdG9yKSwgRmxvYXRTaXplKGJvdHRvbVNpZGVT
Y2FsZSwgYm90dG9tU2lkZVNjYWxlKSwKLSAgICAgICAgICAgIChJbWFnZTo6VGlsZVJ1bGUpaFJ1
bGUsIEltYWdlOjpTdHJldGNoVGlsZSwgb3ApOwotCi0gICAgLy8gUGFpbnQgdGhlIG1pZGRsZS4K
LSAgICBpZiAoZHJhd01pZGRsZSkgewotICAgICAgICBGbG9hdFNpemUgbWlkZGxlU2NhbGVGYWN0
b3IoMSwgMSk7Ci0gICAgICAgIGlmIChkcmF3VG9wKQotICAgICAgICAgICAgbWlkZGxlU2NhbGVG
YWN0b3Iuc2V0V2lkdGgodG9wU2lkZVNjYWxlKTsKLSAgICAgICAgZWxzZSBpZiAoZHJhd0JvdHRv
bSkKLSAgICAgICAgICAgIG1pZGRsZVNjYWxlRmFjdG9yLnNldFdpZHRoKGJvdHRvbVNpZGVTY2Fs
ZSk7Ci0gICAgICAgIGlmIChkcmF3TGVmdCkKLSAgICAgICAgICAgIG1pZGRsZVNjYWxlRmFjdG9y
LnNldEhlaWdodChsZWZ0U2lkZVNjYWxlKTsKLSAgICAgICAgZWxzZSBpZiAoZHJhd1JpZ2h0KQot
ICAgICAgICAgICAgbWlkZGxlU2NhbGVGYWN0b3Iuc2V0SGVpZ2h0KHJpZ2h0U2lkZVNjYWxlKTsK
LSAgICAgICAgICAgIAotICAgICAgICAvLyBGb3IgInN0cmV0Y2giIHJ1bGVzLCBqdXN0IG92ZXJy
aWRlIHRoZSBzY2FsZSBmYWN0b3IgYW5kIHJlcGxhY2UuIFdlIG9ubHkgaGFkIHRvIGRvIHRoaXMg
Zm9yIHRoZQotICAgICAgICAvLyBjZW50ZXIgdGlsZSwgc2luY2Ugc2lkZXMgZG9uJ3QgZXZlbiB1
c2UgdGhlIHNjYWxlIGZhY3RvciB1bmxlc3MgdGhleSBoYXZlIGEgcnVsZSBvdGhlciB0aGFuICJz
dHJldGNoIi4KLSAgICAgICAgLy8gVGhlIG1pZGRsZSBob3dldmVyIGNhbiBoYXZlICJzdHJldGNo
IiBzcGVjaWZpZWQgaW4gb25lIGF4aXMgYnV0IG5vdCB0aGUgb3RoZXIsIHNvIHdlIGhhdmUgdG8K
LSAgICAgICAgLy8gY29ycmVjdCB0aGUgc2NhbGUgaGVyZS4KLSAgICAgICAgaWYgKGhSdWxlID09
IFN0cmV0Y2hJbWFnZVJ1bGUpCi0gICAgICAgICAgICBtaWRkbGVTY2FsZUZhY3Rvci5zZXRXaWR0
aChkZXN0aW5hdGlvbldpZHRoIC8gc291cmNlV2lkdGgpOwotICAgICAgICAgICAgCi0gICAgICAg
IGlmICh2UnVsZSA9PSBTdHJldGNoSW1hZ2VSdWxlKQotICAgICAgICAgICAgbWlkZGxlU2NhbGVG
YWN0b3Iuc2V0SGVpZ2h0KGRlc3RpbmF0aW9uSGVpZ2h0IC8gc291cmNlSGVpZ2h0KTsKLSAgICAg
ICAgCi0gICAgICAgIGdyYXBoaWNzQ29udGV4dC0+ZHJhd1RpbGVkSW1hZ2UoaW1hZ2UuZ2V0KCks
IGNvbG9yU3BhY2UsCi0gICAgICAgICAgICBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKHggKyBsZWZ0
V2lkdGgsIHkgKyB0b3BXaWR0aCwgZGVzdGluYXRpb25XaWR0aCwgZGVzdGluYXRpb25IZWlnaHQs
IGRldmljZVNjYWxlRmFjdG9yKSwKLSAgICAgICAgICAgIHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMo
bGVmdFNsaWNlLCB0b3BTbGljZSwgc291cmNlV2lkdGgsIHNvdXJjZUhlaWdodCwgZGV2aWNlU2Nh
bGVGYWN0b3IpLAotICAgICAgICAgICAgbWlkZGxlU2NhbGVGYWN0b3IsIChJbWFnZTo6VGlsZVJ1
bGUpaFJ1bGUsIChJbWFnZTo6VGlsZVJ1bGUpdlJ1bGUsIG9wKTsKLSAgICB9CisgICAgc3R5bGVJ
bWFnZS0+c2V0Q29udGFpbmVyU2l6ZUZvclJlbmRlcmVyKHRoaXMsIHNvdXJjZSwgc3R5bGUuZWZm
ZWN0aXZlWm9vbSgpKTsKIAorICAgIG5pbmVQaWVjZUltYWdlLnBhaW50KGdyYXBoaWNzQ29udGV4
dCwgdGhpcywgc3R5bGUsIGRlc3RpbmF0aW9uLCBzb3VyY2UsIGludHJpbnNpY1NvdXJjZSwgZGV2
aWNlU2NhbGVGYWN0b3IsIG9wKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApJbmRleDogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmgJKHJldmlzaW9u
IDE4NDg4OSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVj
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yODksNyArMjg5LDcgQEAgcHVibGljOgogICAgIHZvaWQg
bW92ZUNoaWxkcmVuVG8oUmVuZGVyQm94TW9kZWxPYmplY3QqIHRvQm94TW9kZWxPYmplY3QsIFJl
bmRlck9iamVjdCogc3RhcnRDaGlsZCwgUmVuZGVyT2JqZWN0KiBlbmRDaGlsZCwgUmVuZGVyT2Jq
ZWN0KiBiZWZvcmVDaGlsZCwgYm9vbCBmdWxsUmVtb3ZlSW5zZXJ0ID0gZmFsc2UpOwogCiAgICAg
ZW51bSBTY2FsZUJ5RWZmZWN0aXZlWm9vbU9yTm90IHsgU2NhbGVCeUVmZmVjdGl2ZVpvb20sIERv
Tm90U2NhbGVCeUVmZmVjdGl2ZVpvb20gfTsKLSAgICBMYXlvdXRTaXplIGNhbGN1bGF0ZUltYWdl
SW50cmluc2ljRGltZW5zaW9ucyhTdHlsZUltYWdlKiwgY29uc3QgTGF5b3V0U2l6ZSYgc2NhbGVk
UG9zaXRpb25pbmdBcmVhU2l6ZSwgU2NhbGVCeUVmZmVjdGl2ZVpvb21Pck5vdCkgY29uc3Q7Cisg
ICAgYm9vbCBjYWxjdWxhdGVJbWFnZUludHJpbnNpY0RpbWVuc2lvbnMoU3R5bGVJbWFnZSosIGNv
bnN0IExheW91dFNpemUmIHNjYWxlZFBvc2l0aW9uaW5nQXJlYVNpemUsIFNjYWxlQnlFZmZlY3Rp
dmVab29tT3JOb3QsIExheW91dFNpemUmIGltYWdlU2l6ZSkgY29uc3Q7CiAKIHByaXZhdGU6CiAg
ICAgTGF5b3V0VW5pdCBjb21wdXRlZENTU1BhZGRpbmcoY29uc3QgTGVuZ3RoJikgY29uc3Q7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuY3BwCShy
ZXZpc2lvbiAxODQ4ODkpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1h
cmtlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0MjYsNyArMTQyNiw4IEBAIHZvaWQgUmVuZGVy
TGlzdE1hcmtlcjo6dXBkYXRlQ29udGVudCgpCiAgICAgICAgIC8vIHVudGlsIHdlIHN1cHBvcnQg
dGhlIENTUzMgbWFya2VyIHBzZXVkb2NsYXNzIHRvIGFsbG93IGNvbnRyb2wgb3ZlciB0aGUgd2lk
dGggYW5kIGhlaWdodCBvZiB0aGUgbWFya2VyIGJveC4KICAgICAgICAgTGF5b3V0VW5pdCBidWxs
ZXRXaWR0aCA9IHN0eWxlKCkuZm9udE1ldHJpY3MoKS5hc2NlbnQoKSAvIExheW91dFVuaXQoMik7
CiAgICAgICAgIExheW91dFNpemUgZGVmYXVsdEJ1bGxldFNpemUoYnVsbGV0V2lkdGgsIGJ1bGxl
dFdpZHRoKTsKLSAgICAgICAgTGF5b3V0U2l6ZSBpbWFnZVNpemUgPSBjYWxjdWxhdGVJbWFnZUlu
dHJpbnNpY0RpbWVuc2lvbnMobV9pbWFnZS5nZXQoKSwgZGVmYXVsdEJ1bGxldFNpemUsIERvTm90
U2NhbGVCeUVmZmVjdGl2ZVpvb20pOworICAgICAgICBMYXlvdXRTaXplIGltYWdlU2l6ZTsKKyAg
ICAgICAgY2FsY3VsYXRlSW1hZ2VJbnRyaW5zaWNEaW1lbnNpb25zKG1faW1hZ2UuZ2V0KCksIGRl
ZmF1bHRCdWxsZXRTaXplLCBEb05vdFNjYWxlQnlFZmZlY3RpdmVab29tLCBpbWFnZVNpemUpOwog
ICAgICAgICBtX2ltYWdlLT5zZXRDb250YWluZXJTaXplRm9yUmVuZGVyZXIodGhpcywgaW1hZ2VT
aXplLCBzdHlsZSgpLmVmZmVjdGl2ZVpvb20oKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlT3V0c2lkZUluZm8uY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGVPdXRz
aWRlSW5mby5jcHAJKHJldmlzaW9uIDE4NDg4OSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zaGFwZXMvU2hhcGVPdXRzaWRlSW5mby5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0OCw3ICsx
NDgsOCBAQCBzdGF0aWMgTGF5b3V0UmVjdCBnZXRTaGFwZUltYWdlTWFyZ2luUmVjCiAKIHN0ZDo6
dW5pcXVlX3B0cjxTaGFwZT4gU2hhcGVPdXRzaWRlSW5mbzo6Y3JlYXRlU2hhcGVGb3JJbWFnZShT
dHlsZUltYWdlKiBzdHlsZUltYWdlLCBmbG9hdCBzaGFwZUltYWdlVGhyZXNob2xkLCBXcml0aW5n
TW9kZSB3cml0aW5nTW9kZSwgZmxvYXQgbWFyZ2luKSBjb25zdAogewotICAgIGNvbnN0IExheW91
dFNpemUmIGltYWdlU2l6ZSA9IG1fcmVuZGVyZXIuY2FsY3VsYXRlSW1hZ2VJbnRyaW5zaWNEaW1l
bnNpb25zKHN0eWxlSW1hZ2UsIG1fcmVmZXJlbmNlQm94TG9naWNhbFNpemUsIFJlbmRlckltYWdl
OjpTY2FsZUJ5RWZmZWN0aXZlWm9vbSk7CisgICAgTGF5b3V0U2l6ZSBpbWFnZVNpemU7CisgICAg
bV9yZW5kZXJlci5jYWxjdWxhdGVJbWFnZUludHJpbnNpY0RpbWVuc2lvbnMoc3R5bGVJbWFnZSwg
bV9yZWZlcmVuY2VCb3hMb2dpY2FsU2l6ZSwgUmVuZGVySW1hZ2U6OlNjYWxlQnlFZmZlY3RpdmVa
b29tLCBpbWFnZVNpemUpOwogICAgIHN0eWxlSW1hZ2UtPnNldENvbnRhaW5lclNpemVGb3JSZW5k
ZXJlcigmbV9yZW5kZXJlciwgaW1hZ2VTaXplLCBtX3JlbmRlcmVyLnN0eWxlKCkuZWZmZWN0aXZl
Wm9vbSgpKTsKIAogICAgIGNvbnN0IExheW91dFJlY3QmIG1hcmdpblJlY3QgPSBnZXRTaGFwZUlt
YWdlTWFyZ2luUmVjdChtX3JlbmRlcmVyLCBtX3JlZmVyZW5jZUJveExvZ2ljYWxTaXplKTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9Cb3JkZXJEYXRhLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0JvcmRlckRhdGEuaAkocmV2aXNp
b24gMTg0ODg5KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0JvcmRlckRhdGEu
aAkod29ya2luZyBjb3B5KQpAQCAtOTIsNiArOTIsMTEgQEAgcHVibGljOgogICAgICAgICAgICAg
cmV0dXJuIDA7CiAgICAgICAgIHJldHVybiBtX2JvdHRvbS53aWR0aCgpOwogICAgIH0KKworICAg
IEZsb2F0Qm94RXh0ZW50IGJvcmRlcldpZHRoKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVy
biBGbG9hdEJveEV4dGVudChib3JkZXJUb3BXaWR0aCgpLCBib3JkZXJSaWdodFdpZHRoKCksIGJv
cmRlckJvdHRvbVdpZHRoKCksIGJvcmRlckxlZnRXaWR0aCgpKTsKKyAgICB9CiAgICAgCiAgICAg
Ym9vbCBvcGVyYXRvcj09KGNvbnN0IEJvcmRlckRhdGEmIG8pIGNvbnN0CiAgICAgewpJbmRleDog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL05pbmVQaWVjZUltYWdlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvTmluZVBpZWNlSW1hZ2UuY3Bw
CShyZXZpc2lvbiAxODQ4ODkpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvTmlu
ZVBpZWNlSW1hZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yLDcgKzIsNyBAQAogICogQ29weXJp
Z2h0IChDKSAyMDAwIExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMp
IDIwMDAgQW50dGkgS29pdmlzdG8gKGtvaXZpc3RvQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMp
IDIwMDAgRGlyayBNdWVsbGVyIChtdWVsbGVyQGtkZS5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MDMsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAy
MDEzLCAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAg
KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYwpAQCAtMjMsNiArMjMsMTAgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
Ik5pbmVQaWVjZUltYWdlLmgiCisKKyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKKyNpbmNs
dWRlICJMZW5ndGhGdW5jdGlvbnMuaCIKKyNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgogI2luY2x1
ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01MCwx
MSArNTQsMjA1IEBAIE5pbmVQaWVjZUltYWdlOjpOaW5lUGllY2VJbWFnZShQYXNzUmVmUHQKICAg
ICBtX2RhdGEuYWNjZXNzKCktPnZlcnRpY2FsUnVsZSA9IHZlcnRpY2FsUnVsZTsKIH0KIAorTGF5
b3V0VW5pdCBOaW5lUGllY2VJbWFnZTo6Y29tcHV0ZVNsaWNlKExlbmd0aCBsZW5ndGgsIExheW91
dFVuaXQgd2lkdGgsIExheW91dFVuaXQgc2xpY2UsIExheW91dFVuaXQgZXh0ZW50KQoreworICAg
IGlmIChsZW5ndGguaXNSZWxhdGl2ZSgpKQorICAgICAgICByZXR1cm4gbGVuZ3RoLnZhbHVlKCkg
KiB3aWR0aDsKKyAgICBpZiAobGVuZ3RoLmlzQXV0bygpKQorICAgICAgICByZXR1cm4gc2xpY2U7
CisgICAgcmV0dXJuIHZhbHVlRm9yTGVuZ3RoKGxlbmd0aCwgZXh0ZW50KTsKK30KKworTGF5b3V0
Qm94RXh0ZW50IE5pbmVQaWVjZUltYWdlOjpjb21wdXRlU2xpY2VzKGNvbnN0IExheW91dFNpemUm
IHNpemUsIGNvbnN0IExlbmd0aEJveCYgbGVuZ3RocywgaW50IHNjYWxlRmFjdG9yKQoreworICAg
IExheW91dFVuaXQgdG9wICAgID0gc3RkOjptaW48TGF5b3V0VW5pdD4oc2l6ZS5oZWlnaHQoKSwg
dmFsdWVGb3JMZW5ndGgobGVuZ3Rocy50b3AoKSwgICAgc2l6ZS5oZWlnaHQoKSkpICogc2NhbGVG
YWN0b3I7CisgICAgTGF5b3V0VW5pdCByaWdodCAgPSBzdGQ6Om1pbjxMYXlvdXRVbml0PihzaXpl
LndpZHRoKCksICB2YWx1ZUZvckxlbmd0aChsZW5ndGhzLnJpZ2h0KCksICBzaXplLndpZHRoKCkp
KSAgKiBzY2FsZUZhY3RvcjsKKyAgICBMYXlvdXRVbml0IGJvdHRvbSA9IHN0ZDo6bWluPExheW91
dFVuaXQ+KHNpemUuaGVpZ2h0KCksIHZhbHVlRm9yTGVuZ3RoKGxlbmd0aHMuYm90dG9tKCksIHNp
emUuaGVpZ2h0KCkpKSAqIHNjYWxlRmFjdG9yOworICAgIExheW91dFVuaXQgbGVmdCAgID0gc3Rk
OjptaW48TGF5b3V0VW5pdD4oc2l6ZS53aWR0aCgpLCAgdmFsdWVGb3JMZW5ndGgobGVuZ3Rocy5s
ZWZ0KCksICAgc2l6ZS53aWR0aCgpKSkgICogc2NhbGVGYWN0b3I7CisgICAgcmV0dXJuIExheW91
dEJveEV4dGVudCh0b3AsIHJpZ2h0LCBib3R0b20sIGxlZnQpOworfQorCitMYXlvdXRCb3hFeHRl
bnQgTmluZVBpZWNlSW1hZ2U6OmNvbXB1dGVTbGljZXMoY29uc3QgTGF5b3V0U2l6ZSYgc2l6ZSwg
Y29uc3QgTGVuZ3RoQm94JiBsZW5ndGhzLCBjb25zdCBGbG9hdEJveEV4dGVudCYgd2lkdGhzLCBj
b25zdCBMYXlvdXRCb3hFeHRlbnQmIHNsaWNlcykKK3sKKyAgICBMYXlvdXRVbml0IHRvcCAgICA9
IGNvbXB1dGVTbGljZShsZW5ndGhzLnRvcCgpLCAgICB3aWR0aHMudG9wKCksICAgIHNsaWNlcy50
b3AoKSwgICAgc2l6ZS5oZWlnaHQoKSk7CisgICAgTGF5b3V0VW5pdCByaWdodCAgPSBjb21wdXRl
U2xpY2UobGVuZ3Rocy5yaWdodCgpLCAgd2lkdGhzLnJpZ2h0KCksICBzbGljZXMucmlnaHQoKSwg
IHNpemUud2lkdGgoKSk7CisgICAgTGF5b3V0VW5pdCBib3R0b20gPSBjb21wdXRlU2xpY2UobGVu
Z3Rocy5ib3R0b20oKSwgd2lkdGhzLmJvdHRvbSgpLCBzbGljZXMuYm90dG9tKCksIHNpemUuaGVp
Z2h0KCkpOworICAgIExheW91dFVuaXQgbGVmdCAgID0gY29tcHV0ZVNsaWNlKGxlbmd0aHMubGVm
dCgpLCAgIHdpZHRocy5sZWZ0KCksICAgc2xpY2VzLmxlZnQoKSwgICBzaXplLndpZHRoKCkpOwor
ICAgIHJldHVybiBMYXlvdXRCb3hFeHRlbnQodG9wLCByaWdodCwgYm90dG9tLCBsZWZ0KTsKK30K
Kwordm9pZCBOaW5lUGllY2VJbWFnZTo6c2NhbGVTbGljZXNJZk5lZWRlZChjb25zdCBMYXlvdXRT
aXplJiBzaXplLCBMYXlvdXRCb3hFeHRlbnQmIHNsaWNlcywgaW50IHNjYWxlRmFjdG9yKQorewor
ICAgIExheW91dFVuaXQgd2lkdGggID0gc3RkOjptYXg8TGF5b3V0VW5pdD4oMSAvIHNjYWxlRmFj
dG9yLCBzbGljZXMubGVmdCgpICsgc2xpY2VzLnJpZ2h0KCkpOworICAgIExheW91dFVuaXQgaGVp
Z2h0ID0gc3RkOjptYXg8TGF5b3V0VW5pdD4oMSAvIHNjYWxlRmFjdG9yLCBzbGljZXMudG9wKCkg
KyBzbGljZXMuYm90dG9tKCkpOworCisgICAgZmxvYXQgc2xpY2VTY2FsZUZhY3RvciA9IHN0ZDo6
bWluKChmbG9hdClzaXplLndpZHRoKCkgLyB3aWR0aCwgKGZsb2F0KXNpemUuaGVpZ2h0KCkgLyBo
ZWlnaHQpOworCisgICAgaWYgKHNsaWNlU2NhbGVGYWN0b3IgPj0gMSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgLy8gQWxsIHNsaWNlcyBhcmUgcmVkdWNlZCBieSBtdWx0aXBseWluZyB0aGVtIGJ5
IHNsaWNlU2NhbGVGYWN0b3IuCisgICAgc2xpY2VzLnRvcCgpICAgICo9IHNsaWNlU2NhbGVGYWN0
b3I7CisgICAgc2xpY2VzLnJpZ2h0KCkgICo9IHNsaWNlU2NhbGVGYWN0b3I7CisgICAgc2xpY2Vz
LmJvdHRvbSgpICo9IHNsaWNlU2NhbGVGYWN0b3I7CisgICAgc2xpY2VzLmxlZnQoKSAgICo9IHNs
aWNlU2NhbGVGYWN0b3I7Cit9CisKK2Jvb2wgTmluZVBpZWNlSW1hZ2U6OmlzRW1wdHlQaWVjZVJl
Y3QoSW1hZ2VQaWVjZSBwaWVjZSwgY29uc3QgTGF5b3V0Qm94RXh0ZW50JiBzbGljZXMpCit7Cisg
ICAgaWYgKHBpZWNlID09IE1pZGRsZVBpZWNlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBQaHlzaWNhbEJveFNpZGUgaG9yaXpvbnRhbFNpZGUgPSBpbWFnZVBpZWNlSG9yaXpvbnRhbFNp
ZGUocGllY2UpOworICAgIFBoeXNpY2FsQm94U2lkZSB2ZXJ0aWNhbFNpZGUgPSBpbWFnZVBpZWNl
VmVydGljYWxTaWRlKHBpZWNlKTsKKyAgICByZXR1cm4gISgoaG9yaXpvbnRhbFNpZGUgPT0gTmls
U2lkZSB8fCBzbGljZXMuYXQoaG9yaXpvbnRhbFNpZGUpKSAmJiAodmVydGljYWxTaWRlID09IE5p
bFNpZGUgfHwgc2xpY2VzLmF0KHZlcnRpY2FsU2lkZSkpKTsKK30KKworYm9vbCBOaW5lUGllY2VJ
bWFnZTo6aXNFbXB0eVBpZWNlUmVjdChJbWFnZVBpZWNlIHBpZWNlLCBjb25zdCBWZWN0b3I8Rmxv
YXRSZWN0PiYgZGVzdGluYXRpb25SZWN0cywgY29uc3QgVmVjdG9yPEZsb2F0UmVjdD4mIHNvdXJj
ZVJlY3RzKQoreworICAgIHJldHVybiBkZXN0aW5hdGlvblJlY3RzW3BpZWNlXS5pc0VtcHR5KCkg
fHwgc291cmNlUmVjdHNbcGllY2VdLmlzRW1wdHkoKTsKK30KKworVmVjdG9yPEZsb2F0UmVjdD4g
TmluZVBpZWNlSW1hZ2U6OmNvbXB1dGVJbnRyaW5zaWNSZWN0cyhjb25zdCBGbG9hdFJlY3QmIG91
dGVyLCBjb25zdCBMYXlvdXRCb3hFeHRlbnQmIHNsaWNlcywgZmxvYXQgZGV2aWNlU2NhbGVGYWN0
b3IpCit7CisgICAgRmxvYXRSZWN0IGlubmVyID0gb3V0ZXI7CisgICAgaW5uZXIubW92ZShzbGlj
ZXMubGVmdCgpLCBzbGljZXMudG9wKCkpOworICAgIGlubmVyLmNvbnRyYWN0KHNsaWNlcy5sZWZ0
KCkgKyBzbGljZXMucmlnaHQoKSwgc2xpY2VzLnRvcCgpICsgc2xpY2VzLmJvdHRvbSgpKTsKKyAg
ICBBU1NFUlQob3V0ZXIuY29udGFpbnMoaW5uZXIpKTsKKworICAgIFZlY3RvcjxGbG9hdFJlY3Q+
IHJlY3RzKE1heFBpZWNlKTsKKworICAgIHJlY3RzW1RvcExlZnRQaWVjZV0gICAgID0gc25hcFJl
Y3RUb0RldmljZVBpeGVscyhvdXRlci54KCksICAgIG91dGVyLnkoKSwgICAgc2xpY2VzLmxlZnQo
KSwgIHNsaWNlcy50b3AoKSwgICAgZGV2aWNlU2NhbGVGYWN0b3IpOworICAgIHJlY3RzW0JvdHRv
bUxlZnRQaWVjZV0gID0gc25hcFJlY3RUb0RldmljZVBpeGVscyhvdXRlci54KCksICAgIGlubmVy
Lm1heFkoKSwgc2xpY2VzLmxlZnQoKSwgIHNsaWNlcy5ib3R0b20oKSwgZGV2aWNlU2NhbGVGYWN0
b3IpOworICAgIHJlY3RzW0xlZnRQaWVjZV0gICAgICAgID0gc25hcFJlY3RUb0RldmljZVBpeGVs
cyhvdXRlci54KCksICAgIGlubmVyLnkoKSwgICAgc2xpY2VzLmxlZnQoKSwgIGlubmVyLmhlaWdo
dCgpLCAgZGV2aWNlU2NhbGVGYWN0b3IpOworCisgICAgcmVjdHNbVG9wUmlnaHRQaWVjZV0gICAg
PSBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKGlubmVyLm1heFgoKSwgb3V0ZXIueSgpLCAgICBzbGlj
ZXMucmlnaHQoKSwgc2xpY2VzLnRvcCgpLCAgICBkZXZpY2VTY2FsZUZhY3Rvcik7CisgICAgcmVj
dHNbQm90dG9tUmlnaHRQaWVjZV0gPSBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKGlubmVyLm1heFgo
KSwgaW5uZXIubWF4WSgpLCBzbGljZXMucmlnaHQoKSwgc2xpY2VzLmJvdHRvbSgpLCBkZXZpY2VT
Y2FsZUZhY3Rvcik7CisgICAgcmVjdHNbUmlnaHRQaWVjZV0gICAgICAgPSBzbmFwUmVjdFRvRGV2
aWNlUGl4ZWxzKGlubmVyLm1heFgoKSwgaW5uZXIueSgpLCAgICBzbGljZXMucmlnaHQoKSwgaW5u
ZXIuaGVpZ2h0KCksICBkZXZpY2VTY2FsZUZhY3Rvcik7CisKKyAgICByZWN0c1tUb3BQaWVjZV0g
ICAgICAgICA9IHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMoaW5uZXIueCgpLCAgICBvdXRlci55KCks
ICAgIGlubmVyLndpZHRoKCksICBzbGljZXMudG9wKCksICAgIGRldmljZVNjYWxlRmFjdG9yKTsK
KyAgICByZWN0c1tCb3R0b21QaWVjZV0gICAgICA9IHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMoaW5u
ZXIueCgpLCAgICBpbm5lci5tYXhZKCksIGlubmVyLndpZHRoKCksICBzbGljZXMuYm90dG9tKCks
IGRldmljZVNjYWxlRmFjdG9yKTsKKworICAgIHJlY3RzW01pZGRsZVBpZWNlXSAgICAgID0gc25h
cFJlY3RUb0RldmljZVBpeGVscyhpbm5lci54KCksICAgIGlubmVyLnkoKSwgICAgaW5uZXIud2lk
dGgoKSwgIGlubmVyLmhlaWdodCgpLCAgZGV2aWNlU2NhbGVGYWN0b3IpOworICAgIHJldHVybiBy
ZWN0czsKK30KKworVmVjdG9yPEZsb2F0UmVjdD4gTmluZVBpZWNlSW1hZ2U6OmNvbXB1dGVOb25J
bnRyaW5zaWNSZWN0cyhjb25zdCBWZWN0b3I8RmxvYXRSZWN0PiYgaW50cmluc2ljUmVjdHMsIGNv
bnN0IExheW91dEJveEV4dGVudCYgc2xpY2VzKQoreworICAgIFZlY3RvcjxGbG9hdFJlY3Q+IHJl
Y3RzKE1heFBpZWNlKTsKKworICAgIGZvciAoSW1hZ2VQaWVjZSBwaWVjZSA9IE1pblBpZWNlOyBw
aWVjZSA8IE1heFBpZWNlOyArK3BpZWNlKSB7CisgICAgICAgIGlmIChpc0VtcHR5UGllY2VSZWN0
KHBpZWNlLCBzbGljZXMpKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIHJlY3RzW3Bp
ZWNlXSA9IEZsb2F0UmVjdChGbG9hdFBvaW50KCksIGludHJpbnNpY1JlY3RzW3BpZWNlXS5zaXpl
KCkpOworICAgIH0KKworICAgIHJldHVybiByZWN0czsKK30KKworRmxvYXRTaXplIE5pbmVQaWVj
ZUltYWdlOjpjb21wdXRlSW50cmluc2ljU2lkZVRpbGVTY2FsZShJbWFnZVBpZWNlIHBpZWNlLCBj
b25zdCBWZWN0b3I8RmxvYXRSZWN0PiYgZGVzdGluYXRpb25SZWN0cywgY29uc3QgVmVjdG9yPEZs
b2F0UmVjdD4mIHNvdXJjZVJlY3RzKQoreworICAgIEFTU0VSVCghaXNDb3JuZXJQaWVjZShwaWVj
ZSkgJiYgIWlzTWlkZGxlUGllY2UocGllY2UpKTsKKyAgICBpZiAoaXNFbXB0eVBpZWNlUmVjdChw
aWVjZSwgZGVzdGluYXRpb25SZWN0cywgc291cmNlUmVjdHMpKQorICAgICAgICByZXR1cm4gRmxv
YXRTaXplKDEsIDEpOworCisgICAgZmxvYXQgc2NhbGU7CisgICAgaWYgKGlzVmVydGljYWxQaWVj
ZShwaWVjZSkpCisgICAgICAgIHNjYWxlID0gZGVzdGluYXRpb25SZWN0c1twaWVjZV0uaGVpZ2h0
KCkgLyBzb3VyY2VSZWN0c1twaWVjZV0uaGVpZ2h0KCk7CisgICAgZWxzZQorICAgICAgICBzY2Fs
ZSA9IGRlc3RpbmF0aW9uUmVjdHNbcGllY2VdLndpZHRoKCkgLyBzb3VyY2VSZWN0c1twaWVjZV0u
d2lkdGgoKTsKKworICAgIHJldHVybiBGbG9hdFNpemUoc2NhbGUsIHNjYWxlKTsKK30KKworRmxv
YXRTaXplIE5pbmVQaWVjZUltYWdlOjpjb21wdXRlSW50cmluc2ljTWlkZGxlVGlsZVNjYWxlKGNv
bnN0IFZlY3RvcjxGbG9hdFNpemU+JiBzY2FsZXMsIGNvbnN0IFZlY3RvcjxGbG9hdFJlY3Q+JiBk
ZXN0aW5hdGlvblJlY3RzLCBjb25zdCBWZWN0b3I8RmxvYXRSZWN0PiYgc291cmNlUmVjdHMsIEVO
aW5lUGllY2VJbWFnZVJ1bGUgaFJ1bGUsIEVOaW5lUGllY2VJbWFnZVJ1bGUgdlJ1bGUpCit7Cisg
ICAgRmxvYXRTaXplIHNjYWxlKDEsIDEpOworICAgIGlmIChpc0VtcHR5UGllY2VSZWN0KE1pZGRs
ZVBpZWNlLCBkZXN0aW5hdGlvblJlY3RzLCBzb3VyY2VSZWN0cykpCisgICAgICAgIHJldHVybiBz
Y2FsZTsKKworICAgIC8vIFVubGlrZSB0aGUgc2lkZSBwaWVjZXMsIHRoZSBtaWRkbGUgcGllY2Ug
Y2FuIGhhdmUgInN0cmV0Y2giIHNwZWNpZmllZCBpbiBvbmUgYXhpcyBidXQgbm90IHRoZSBvdGhl
ci4KKyAgICAvLyBJbiBmYWN0IHRoZSBzaWRlIHBpZWNlcyBkb24ndCBldmVuIHVzZSB0aGUgc2Nh
bGUgZmFjdG9yIHVubGVzcyB0aGV5IGhhdmUgYSBydWxlIG90aGVyIHRoYW4gInN0cmV0Y2giLgor
ICAgIGlmIChoUnVsZSA9PSBTdHJldGNoSW1hZ2VSdWxlKQorICAgICAgICBzY2FsZS5zZXRXaWR0
aChkZXN0aW5hdGlvblJlY3RzW01pZGRsZVBpZWNlXS53aWR0aCgpIC8gc291cmNlUmVjdHNbTWlk
ZGxlUGllY2VdLndpZHRoKCkpOworICAgIGVsc2UgaWYgKCFpc0VtcHR5UGllY2VSZWN0KFRvcFBp
ZWNlLCBkZXN0aW5hdGlvblJlY3RzLCBzb3VyY2VSZWN0cykpCisgICAgICAgIHNjYWxlLnNldFdp
ZHRoKHNjYWxlc1tUb3BQaWVjZV0ud2lkdGgoKSk7CisgICAgZWxzZSBpZiAoIWlzRW1wdHlQaWVj
ZVJlY3QoQm90dG9tUGllY2UsIGRlc3RpbmF0aW9uUmVjdHMsIHNvdXJjZVJlY3RzKSkKKyAgICAg
ICAgc2NhbGUuc2V0V2lkdGgoc2NhbGVzW0JvdHRvbVBpZWNlXS53aWR0aCgpKTsKKworICAgIGlm
ICh2UnVsZSA9PSBTdHJldGNoSW1hZ2VSdWxlKQorICAgICAgICBzY2FsZS5zZXRIZWlnaHQoZGVz
dGluYXRpb25SZWN0c1tNaWRkbGVQaWVjZV0uaGVpZ2h0KCkgLyBzb3VyY2VSZWN0c1tNaWRkbGVQ
aWVjZV0uaGVpZ2h0KCkpOworICAgIGVsc2UgaWYgKCFpc0VtcHR5UGllY2VSZWN0KExlZnRQaWVj
ZSwgZGVzdGluYXRpb25SZWN0cywgc291cmNlUmVjdHMpKQorICAgICAgICBzY2FsZS5zZXRIZWln
aHQoc2NhbGVzW0xlZnRQaWVjZV0uaGVpZ2h0KCkpOworICAgIGVsc2UgaWYgKCFpc0VtcHR5UGll
Y2VSZWN0KFJpZ2h0UGllY2UsIGRlc3RpbmF0aW9uUmVjdHMsIHNvdXJjZVJlY3RzKSkKKyAgICAg
ICAgc2NhbGUuc2V0SGVpZ2h0KHNjYWxlc1tSaWdodFBpZWNlXS5oZWlnaHQoKSk7CisKKyAgICBy
ZXR1cm4gc2NhbGU7Cit9CisKK1ZlY3RvcjxGbG9hdFNpemU+IE5pbmVQaWVjZUltYWdlOjpjb21w
dXRlSW50cmluc2ljVGlsZVNjYWxlcyhjb25zdCBWZWN0b3I8RmxvYXRSZWN0PiYgZGVzdGluYXRp
b25SZWN0cywgY29uc3QgVmVjdG9yPEZsb2F0UmVjdD4mIHNvdXJjZVJlY3RzLCBFTmluZVBpZWNl
SW1hZ2VSdWxlIGhSdWxlLCBFTmluZVBpZWNlSW1hZ2VSdWxlIHZSdWxlKQoreworICAgIFZlY3Rv
cjxGbG9hdFNpemU+IHNjYWxlcyhNYXhQaWVjZSwgRmxvYXRTaXplKDEsIDEpKTsKKworICAgIHNj
YWxlc1tUb3BQaWVjZV0gICAgPSBjb21wdXRlSW50cmluc2ljU2lkZVRpbGVTY2FsZShUb3BQaWVj
ZSwgICAgZGVzdGluYXRpb25SZWN0cywgc291cmNlUmVjdHMpOworICAgIHNjYWxlc1tSaWdodFBp
ZWNlXSAgPSBjb21wdXRlSW50cmluc2ljU2lkZVRpbGVTY2FsZShSaWdodFBpZWNlLCAgZGVzdGlu
YXRpb25SZWN0cywgc291cmNlUmVjdHMpOworICAgIHNjYWxlc1tCb3R0b21QaWVjZV0gPSBjb21w
dXRlSW50cmluc2ljU2lkZVRpbGVTY2FsZShCb3R0b21QaWVjZSwgZGVzdGluYXRpb25SZWN0cywg
c291cmNlUmVjdHMpOworICAgIHNjYWxlc1tMZWZ0UGllY2VdICAgPSBjb21wdXRlSW50cmluc2lj
U2lkZVRpbGVTY2FsZShMZWZ0UGllY2UsICAgZGVzdGluYXRpb25SZWN0cywgc291cmNlUmVjdHMp
OworCisgICAgc2NhbGVzW01pZGRsZVBpZWNlXSA9IGNvbXB1dGVJbnRyaW5zaWNNaWRkbGVUaWxl
U2NhbGUoc2NhbGVzLCBkZXN0aW5hdGlvblJlY3RzLCBzb3VyY2VSZWN0cywgaFJ1bGUsIHZSdWxl
KTsKKyAgICByZXR1cm4gc2NhbGVzOworfQorCitWZWN0b3I8RmxvYXRTaXplPiBOaW5lUGllY2VJ
bWFnZTo6Y29tcHV0ZU5vbkludHJpbnNpY1RpbGVTY2FsZXMoKQoreworICAgIHJldHVybiBWZWN0
b3I8RmxvYXRTaXplPihNYXhQaWVjZSwgRmxvYXRTaXplKDEsIDEpKTsKK30KKwordm9pZCBOaW5l
UGllY2VJbWFnZTo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBncmFwaGljc0NvbnRleHQsIFJlbmRl
ckVsZW1lbnQqIHJlbmRlcmVyLCBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IExheW91
dFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBMYXlvdXRTaXplJiBzb3VyY2UsICBib29sIGludHJp
bnNpY1NvdXJjZSwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IsIENvbXBvc2l0ZU9wZXJhdG9yIG9w
KSBjb25zdAoreworICAgIFN0eWxlSW1hZ2UqIHN0eWxlSW1hZ2UgPSBpbWFnZSgpOworICAgIEFT
U0VSVChzdHlsZUltYWdlICYmIHN0eWxlSW1hZ2UtPmlzTG9hZGVkKCkpOworCisgICAgTGF5b3V0
Qm94RXh0ZW50IHNvdXJjZVNsaWNlcyA9IGNvbXB1dGVTbGljZXMoc291cmNlLCBpbWFnZVNsaWNl
cygpLCBzdHlsZUltYWdlLT5pbWFnZVNjYWxlRmFjdG9yKCkpOworICAgIExheW91dEJveEV4dGVu
dCBkZXN0aW5hdGlvblNsaWNlcyA9IGNvbXB1dGVTbGljZXMoZGVzdGluYXRpb24uc2l6ZSgpLCBi
b3JkZXJTbGljZXMoKSwgc3R5bGUuYm9yZGVyV2lkdGgoKSwgc291cmNlU2xpY2VzKTsKKworICAg
IHNjYWxlU2xpY2VzSWZOZWVkZWQoZGVzdGluYXRpb24uc2l6ZSgpLCBkZXN0aW5hdGlvblNsaWNl
cywgZGV2aWNlU2NhbGVGYWN0b3IpOworCisgICAgVmVjdG9yPEZsb2F0UmVjdD4gZGVzdGluYXRp
b25SZWN0cyA9IGNvbXB1dGVJbnRyaW5zaWNSZWN0cyhkZXN0aW5hdGlvbiwgZGVzdGluYXRpb25T
bGljZXMsIGRldmljZVNjYWxlRmFjdG9yKTsKKyAgICBWZWN0b3I8RmxvYXRSZWN0PiBzb3VyY2VS
ZWN0czsKKyAgICBWZWN0b3I8RmxvYXRTaXplPiB0aWxlU2NhbGVzOworCisgICAgaWYgKGludHJp
bnNpY1NvdXJjZSkgeworICAgICAgICBzb3VyY2VSZWN0cyA9IGNvbXB1dGVJbnRyaW5zaWNSZWN0
cyhGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBzb3VyY2UpLCBzb3VyY2VTbGljZXMsIGRldmljZVNj
YWxlRmFjdG9yKTsKKyAgICAgICAgdGlsZVNjYWxlcyA9IGNvbXB1dGVJbnRyaW5zaWNUaWxlU2Nh
bGVzKGRlc3RpbmF0aW9uUmVjdHMsIHNvdXJjZVJlY3RzLCBob3Jpem9udGFsUnVsZSgpLCB2ZXJ0
aWNhbFJ1bGUoKSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgc291cmNlUmVjdHMgPSBjb21wdXRl
Tm9uSW50cmluc2ljUmVjdHMoZGVzdGluYXRpb25SZWN0cywgc291cmNlU2xpY2VzKTsKKyAgICAg
ICAgdGlsZVNjYWxlcyA9IGNvbXB1dGVOb25JbnRyaW5zaWNUaWxlU2NhbGVzKCk7CisgICAgfQor
CisgICAgUmVmUHRyPEltYWdlPiBpbWFnZSA9IHN0eWxlSW1hZ2UtPmltYWdlKHJlbmRlcmVyLCBz
b3VyY2UpOworICAgIENvbG9yU3BhY2UgY29sb3JTcGFjZSA9IHN0eWxlLmNvbG9yU3BhY2UoKTsK
KworICAgIGZvciAoSW1hZ2VQaWVjZSBwaWVjZSA9IE1pblBpZWNlOyBwaWVjZSA8IE1heFBpZWNl
OyArK3BpZWNlKSB7CisgICAgICAgIGlmICgocGllY2UgPT0gTWlkZGxlUGllY2UgJiYgIWZpbGwo
KSkgfHwgaXNFbXB0eVBpZWNlUmVjdChwaWVjZSwgZGVzdGluYXRpb25SZWN0cywgc291cmNlUmVj
dHMpKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgaWYgKGlzQ29ybmVyUGllY2Uo
cGllY2UpKSB7CisgICAgICAgICAgICBncmFwaGljc0NvbnRleHQtPmRyYXdJbWFnZShpbWFnZS5n
ZXQoKSwgY29sb3JTcGFjZSwgZGVzdGluYXRpb25SZWN0c1twaWVjZV0sIHNvdXJjZVJlY3RzW3Bp
ZWNlXSwgb3ApOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKworICAgICAgICBJ
bWFnZTo6VGlsZVJ1bGUgaFJ1bGUgPSBpc0hvcml6b250YWxQaWVjZShwaWVjZSkgPyBzdGF0aWNf
Y2FzdDxJbWFnZTo6VGlsZVJ1bGU+KGhvcml6b250YWxSdWxlKCkpIDogSW1hZ2U6OlN0cmV0Y2hU
aWxlOworICAgICAgICBJbWFnZTo6VGlsZVJ1bGUgdlJ1bGUgPSBpc1ZlcnRpY2FsUGllY2UocGll
Y2UpID8gc3RhdGljX2Nhc3Q8SW1hZ2U6OlRpbGVSdWxlPih2ZXJ0aWNhbFJ1bGUoKSkgOiBJbWFn
ZTo6U3RyZXRjaFRpbGU7CisgICAgICAgIGdyYXBoaWNzQ29udGV4dC0+ZHJhd1RpbGVkSW1hZ2Uo
aW1hZ2UuZ2V0KCksIGNvbG9yU3BhY2UsIGRlc3RpbmF0aW9uUmVjdHNbcGllY2VdLCBzb3VyY2VS
ZWN0c1twaWVjZV0sIHRpbGVTY2FsZXNbcGllY2VdLCBoUnVsZSwgdlJ1bGUsIG9wKTsKKyAgICB9
Cit9CisKIE5pbmVQaWVjZUltYWdlRGF0YTo6TmluZVBpZWNlSW1hZ2VEYXRhKCkKICAgICA6IGZp
bGwoZmFsc2UpCiAgICAgLCBob3Jpem9udGFsUnVsZShTdHJldGNoSW1hZ2VSdWxlKQogICAgICwg
dmVydGljYWxSdWxlKFN0cmV0Y2hJbWFnZVJ1bGUpCi0gICAgLCBpbWFnZSgwKQorICAgICwgaW1h
Z2UobnVsbHB0cikKICAgICAsIGltYWdlU2xpY2VzKExlbmd0aCgxMDAsIFBlcmNlbnQpLCBMZW5n
dGgoMTAwLCBQZXJjZW50KSwgTGVuZ3RoKDEwMCwgUGVyY2VudCksIExlbmd0aCgxMDAsIFBlcmNl
bnQpKQogICAgICwgYm9yZGVyU2xpY2VzKExlbmd0aCgxLCBSZWxhdGl2ZSksIExlbmd0aCgxLCBS
ZWxhdGl2ZSksIExlbmd0aCgxLCBSZWxhdGl2ZSksIExlbmd0aCgxLCBSZWxhdGl2ZSkpCiAgICAg
LCBvdXRzZXQoMCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9OaW5lUGll
Y2VJbWFnZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9O
aW5lUGllY2VJbWFnZS5oCShyZXZpc2lvbiAxODQ4ODkpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvTmluZVBpZWNlSW1hZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtMiw3ICsyLDcg
QEAKICAqIENvcHlyaWdodCAoQykgMjAwMCBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQogICog
ICAgICAgICAgIChDKSAyMDAwIEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICog
ICAgICAgICAgIChDKSAyMDAwIERpcmsgTXVlbGxlciAobXVlbGxlckBrZGUub3JnKQotICogQ29w
eXJpZ2h0IChDKSAyMDAzLCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDEzIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwNSwgMjAwNiwg
MjAwNywgMjAwOCwgMjAxMywgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKQEAgLTI1LDkgKzI1LDEyIEBACiAjZGVmaW5lIE5pbmVQaWVjZUlt
YWdlX2gKIAogI2luY2x1ZGUgIkRhdGFSZWYuaCIKKyNpbmNsdWRlICJMYXlvdXRSZWN0LmgiCisj
aW5jbHVkZSAiTGF5b3V0U2l6ZS5oIgogI2luY2x1ZGUgIkxheW91dFVuaXQuaCIKICNpbmNsdWRl
ICJMZW5ndGhCb3guaCIKICNpbmNsdWRlICJTdHlsZUltYWdlLmgiCisjaW5jbHVkZSA8d3RmL1Zl
Y3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTM1LDYgKzM4LDcwIEBAIGVudW0g
RU5pbmVQaWVjZUltYWdlUnVsZSB7CiAgICAgU3RyZXRjaEltYWdlUnVsZSwgUm91bmRJbWFnZVJ1
bGUsIFNwYWNlSW1hZ2VSdWxlLCBSZXBlYXRJbWFnZVJ1bGUKIH07CiAKK2VudW0gSW1hZ2VQaWVj
ZSB7CisgICAgTWluUGllY2UgPSAwLAorICAgIFRvcExlZnRQaWVjZSA9IE1pblBpZWNlLAorICAg
IExlZnRQaWVjZSwKKyAgICBCb3R0b21MZWZ0UGllY2UsCisgICAgVG9wUmlnaHRQaWVjZSwKKyAg
ICBSaWdodFBpZWNlLAorICAgIEJvdHRvbVJpZ2h0UGllY2UsCisgICAgVG9wUGllY2UsCisgICAg
Qm90dG9tUGllY2UsCisgICAgTWlkZGxlUGllY2UsCisgICAgTWF4UGllY2UKK307CisKK2lubGlu
ZSBJbWFnZVBpZWNlJiBvcGVyYXRvcisrKEltYWdlUGllY2UmIHBpZWNlKQoreworICAgIHBpZWNl
ID0gc3RhdGljX2Nhc3Q8SW1hZ2VQaWVjZT4oc3RhdGljX2Nhc3Q8aW50PihwaWVjZSkgKyAxKTsK
KyAgICByZXR1cm4gcGllY2U7Cit9CisKK2lubGluZSBib29sIGlzQ29ybmVyUGllY2UoSW1hZ2VQ
aWVjZSBwaWVjZSkKK3sKKyAgICByZXR1cm4gcGllY2UgPT0gVG9wTGVmdFBpZWNlIHx8IHBpZWNl
ID09IFRvcFJpZ2h0UGllY2UgfHwgcGllY2UgPT0gQm90dG9tTGVmdFBpZWNlIHx8IHBpZWNlID09
IEJvdHRvbVJpZ2h0UGllY2U7Cit9CisKK2lubGluZSBib29sIGlzTWlkZGxlUGllY2UoSW1hZ2VQ
aWVjZSBwaWVjZSkKK3sKKyAgICByZXR1cm4gcGllY2UgPT0gTWlkZGxlUGllY2U7Cit9CisKK2lu
bGluZSBib29sIGlzSG9yaXpvbnRhbFBpZWNlKEltYWdlUGllY2UgcGllY2UpCit7CisgICAgcmV0
dXJuIHBpZWNlID09IFRvcFBpZWNlIHx8IHBpZWNlID09IEJvdHRvbVBpZWNlIHx8IHBpZWNlID09
IE1pZGRsZVBpZWNlOworfQorCitpbmxpbmUgYm9vbCBpc1ZlcnRpY2FsUGllY2UoSW1hZ2VQaWVj
ZSBwaWVjZSkKK3sKKyAgICByZXR1cm4gcGllY2UgPT0gTGVmdFBpZWNlIHx8IHBpZWNlID09IFJp
Z2h0UGllY2UgfHwgcGllY2UgPT0gTWlkZGxlUGllY2U7Cit9CisKK2lubGluZSBQaHlzaWNhbEJv
eFNpZGUgaW1hZ2VQaWVjZUhvcml6b250YWxTaWRlKEltYWdlUGllY2UgcGllY2UpCit7CisgICAg
aWYgKHBpZWNlID09IFRvcExlZnRQaWVjZSB8fCBwaWVjZSA9PSBUb3BQaWVjZSB8fCBwaWVjZSA9
PSBUb3BSaWdodFBpZWNlKQorICAgICAgICByZXR1cm4gVG9wU2lkZTsKKworICAgIGlmIChwaWVj
ZSA9PSBCb3R0b21MZWZ0UGllY2UgfHwgcGllY2UgPT0gQm90dG9tUGllY2UgfHwgcGllY2UgPT0g
Qm90dG9tUmlnaHRQaWVjZSkKKyAgICAgICAgcmV0dXJuIEJvdHRvbVNpZGU7CisKKyAgICByZXR1
cm4gTmlsU2lkZTsKK30KKworaW5saW5lIFBoeXNpY2FsQm94U2lkZSBpbWFnZVBpZWNlVmVydGlj
YWxTaWRlKEltYWdlUGllY2UgcGllY2UpCit7CisgICAgaWYgKHBpZWNlID09IFRvcExlZnRQaWVj
ZSB8fCBwaWVjZSA9PSBMZWZ0UGllY2UgfHwgcGllY2UgPT0gQm90dG9tTGVmdFBpZWNlKQorICAg
ICAgICByZXR1cm4gTGVmdFNpZGU7CisKKyAgICBpZiAocGllY2UgPT0gVG9wUmlnaHRQaWVjZSB8
fCBwaWVjZSA9PSBSaWdodFBpZWNlIHx8IHBpZWNlID09IEJvdHRvbVJpZ2h0UGllY2UpCisgICAg
ICAgIHJldHVybiBSaWdodFNpZGU7CisKKyAgICByZXR1cm4gTmlsU2lkZTsKK30KKworY2xhc3Mg
UmVuZGVyU3R5bGU7CisKIGNsYXNzIE5pbmVQaWVjZUltYWdlRGF0YSA6IHB1YmxpYyBSZWZDb3Vu
dGVkPE5pbmVQaWVjZUltYWdlRGF0YT4gewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8TmluZVBp
ZWNlSW1hZ2VEYXRhPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IE5pbmVQaWVjZUlt
YWdlRGF0YSk7IH0KQEAgLTEyMiw2ICsxODksMjUgQEAgcHVibGljOgogICAgICAgICByZXR1cm4g
b3V0c2V0U2lkZS52YWx1ZSgpOwogICAgIH0KIAorICAgIHN0YXRpYyBMYXlvdXRVbml0IGNvbXB1
dGVTbGljZShMZW5ndGgsIExheW91dFVuaXQgd2lkdGgsIExheW91dFVuaXQgc2xpY2UsIExheW91
dFVuaXQgZXh0ZW50KTsKKyAgICBzdGF0aWMgTGF5b3V0Qm94RXh0ZW50IGNvbXB1dGVTbGljZXMo
Y29uc3QgTGF5b3V0U2l6ZSYsIGNvbnN0IExlbmd0aEJveCYgbGVuZ3RocywgaW50IHNjYWxlRmFj
dG9yKTsKKyAgICBzdGF0aWMgTGF5b3V0Qm94RXh0ZW50IGNvbXB1dGVTbGljZXMoY29uc3QgTGF5
b3V0U2l6ZSYsIGNvbnN0IExlbmd0aEJveCYgbGVuZ3RocywgY29uc3QgRmxvYXRCb3hFeHRlbnQm
IHdpZHRocywgY29uc3QgTGF5b3V0Qm94RXh0ZW50JiBzbGljZXMpOworCisgICAgc3RhdGljIGJv
b2wgaXNFbXB0eVBpZWNlUmVjdChJbWFnZVBpZWNlLCBjb25zdCBMYXlvdXRCb3hFeHRlbnQmIHNs
aWNlcyk7CisgICAgc3RhdGljIGJvb2wgaXNFbXB0eVBpZWNlUmVjdChJbWFnZVBpZWNlLCBjb25z
dCBWZWN0b3I8RmxvYXRSZWN0PiYgZGVzdGluYXRpb25SZWN0cywgY29uc3QgVmVjdG9yPEZsb2F0
UmVjdD4mIHNvdXJjZVJlY3RzKTsKKworICAgIHN0YXRpYyBWZWN0b3I8RmxvYXRSZWN0PiBjb21w
dXRlSW50cmluc2ljUmVjdHMoY29uc3QgRmxvYXRSZWN0JiBvdXRlciwgY29uc3QgTGF5b3V0Qm94
RXh0ZW50JiBzbGljZXMsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKTsKKyAgICBzdGF0aWMgVmVj
dG9yPEZsb2F0UmVjdD4gY29tcHV0ZU5vbkludHJpbnNpY1JlY3RzKGNvbnN0IFZlY3RvcjxGbG9h
dFJlY3Q+JiBpbnRyaW5zaWNSZWN0cywgY29uc3QgTGF5b3V0Qm94RXh0ZW50JiBzbGljZXMpOwor
CisgICAgc3RhdGljIHZvaWQgc2NhbGVTbGljZXNJZk5lZWRlZChjb25zdCBMYXlvdXRTaXplJiwg
TGF5b3V0Qm94RXh0ZW50JiBzbGljZXMsIGludCBzY2FsZUZhY3Rvcik7CisKKyAgICBzdGF0aWMg
RmxvYXRTaXplIGNvbXB1dGVJbnRyaW5zaWNTaWRlVGlsZVNjYWxlKEltYWdlUGllY2UsIGNvbnN0
IFZlY3RvcjxGbG9hdFJlY3Q+JiBkZXN0aW5hdGlvblJlY3RzLCBjb25zdCBWZWN0b3I8RmxvYXRS
ZWN0PiYgc291cmNlUmVjdHMpOworICAgIHN0YXRpYyBGbG9hdFNpemUgY29tcHV0ZUludHJpbnNp
Y01pZGRsZVRpbGVTY2FsZShjb25zdCBWZWN0b3I8RmxvYXRTaXplPiYgc2NhbGVzLCBjb25zdCBW
ZWN0b3I8RmxvYXRSZWN0PiYgZGVzdGluYXRpb25SZWN0cywgY29uc3QgVmVjdG9yPEZsb2F0UmVj
dD4mIHNvdXJjZVJlY3RzLCBFTmluZVBpZWNlSW1hZ2VSdWxlIGhSdWxlLCBFTmluZVBpZWNlSW1h
Z2VSdWxlIHZSdWxlKTsKKyAgICBzdGF0aWMgVmVjdG9yPEZsb2F0U2l6ZT4gY29tcHV0ZUludHJp
bnNpY1RpbGVTY2FsZXMoY29uc3QgVmVjdG9yPEZsb2F0UmVjdD4mIGRlc3RpbmF0aW9uUmVjdHMs
IGNvbnN0IFZlY3RvcjxGbG9hdFJlY3Q+JiBzb3VyY2VSZWN0cywgRU5pbmVQaWVjZUltYWdlUnVs
ZSBoUnVsZSwgRU5pbmVQaWVjZUltYWdlUnVsZSB2UnVsZSk7CisgICAgc3RhdGljIFZlY3RvcjxG
bG9hdFNpemU+IGNvbXB1dGVOb25JbnRyaW5zaWNUaWxlU2NhbGVzKCk7CisKKyAgICB2b2lkIHBh
aW50KEdyYXBoaWNzQ29udGV4dCosIFJlbmRlckVsZW1lbnQqLCBjb25zdCBSZW5kZXJTdHlsZSYs
IGNvbnN0IExheW91dFJlY3QmIGRlc3RpbmF0aW9uLCBjb25zdCBMYXlvdXRTaXplJiBzb3VyY2Us
IGJvb2wgaW50cmluc2ljU291cmNlLCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvciwgQ29tcG9zaXRl
T3BlcmF0b3IpIGNvbnN0OworCiBwcml2YXRlOgogICAgIERhdGFSZWY8TmluZVBpZWNlSW1hZ2VE
YXRhPiBtX2RhdGE7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGUuY3BwCShyZXZpc2lvbiAxODQ4ODkpCisrKyBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05MjEsMTAg
KzkyMSwxMCBAQCB2b2lkIFJlbmRlclN0eWxlOjpzZXRNYXNrSW1hZ2UoY29uc3QgVmVjCiB2b2lk
IFJlbmRlclN0eWxlOjpzZXRDbGlwKExlbmd0aCB0b3AsIExlbmd0aCByaWdodCwgTGVuZ3RoIGJv
dHRvbSwgTGVuZ3RoIGxlZnQpCiB7CiAgICAgU3R5bGVWaXN1YWxEYXRhKiBkYXRhID0gdmlzdWFs
LmFjY2VzcygpOwotICAgIGRhdGEtPmNsaXAubV90b3AgPSB0b3A7Ci0gICAgZGF0YS0+Y2xpcC5t
X3JpZ2h0ID0gcmlnaHQ7Ci0gICAgZGF0YS0+Y2xpcC5tX2JvdHRvbSA9IGJvdHRvbTsKLSAgICBk
YXRhLT5jbGlwLm1fbGVmdCA9IGxlZnQ7CisgICAgZGF0YS0+Y2xpcC50b3AoKSA9IHRvcDsKKyAg
ICBkYXRhLT5jbGlwLnJpZ2h0KCkgPSByaWdodDsKKyAgICBkYXRhLT5jbGlwLmJvdHRvbSgpID0g
Ym90dG9tOworICAgIGRhdGEtPmNsaXAubGVmdCgpID0gbGVmdDsKIH0KIAogdm9pZCBSZW5kZXJT
dHlsZTo6YWRkQ3Vyc29yKFBhc3NSZWZQdHI8U3R5bGVJbWFnZT4gaW1hZ2UsIGNvbnN0IEludFBv
aW50JiBob3RTcG90KQpAQCAtMTMwOSwxMCArMTMwOSwxMCBAQCBjb25zdCBWZWN0b3I8U3R5bGVE
YXNoYm9hcmRSZWdpb24+JiBSZW5kCiAgICAgaWYgKCFub25lTGlzdEluaXRpYWxpemVkKSB7CiAg
ICAgICAgIFN0eWxlRGFzaGJvYXJkUmVnaW9uIHJlZ2lvbjsKICAgICAgICAgcmVnaW9uLmxhYmVs
ID0gIiI7Ci0gICAgICAgIHJlZ2lvbi5vZmZzZXQubV90b3AgID0gTGVuZ3RoKCk7Ci0gICAgICAg
IHJlZ2lvbi5vZmZzZXQubV9yaWdodCA9IExlbmd0aCgpOwotICAgICAgICByZWdpb24ub2Zmc2V0
Lm1fYm90dG9tID0gTGVuZ3RoKCk7Ci0gICAgICAgIHJlZ2lvbi5vZmZzZXQubV9sZWZ0ID0gTGVu
Z3RoKCk7CisgICAgICAgIHJlZ2lvbi5vZmZzZXQudG9wKCkgID0gTGVuZ3RoKCk7CisgICAgICAg
IHJlZ2lvbi5vZmZzZXQucmlnaHQoKSA9IExlbmd0aCgpOworICAgICAgICByZWdpb24ub2Zmc2V0
LmJvdHRvbSgpID0gTGVuZ3RoKCk7CisgICAgICAgIHJlZ2lvbi5vZmZzZXQubGVmdCgpID0gTGVu
Z3RoKCk7CiAgICAgICAgIHJlZ2lvbi50eXBlID0gU3R5bGVEYXNoYm9hcmRSZWdpb246Ok5vbmU7
CiAgICAgICAgIG5vbmVMaXN0LmFwcGVuZChyZWdpb24pOwogICAgICAgICBub25lTGlzdEluaXRp
YWxpemVkID0gdHJ1ZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9S
ZW5kZXJTdHlsZS5oCShyZXZpc2lvbiAxODQ4ODkpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzcsNyArMzcsNiBAQAog
I2luY2x1ZGUgIkZvbnRCYXNlbGluZS5oIgogI2luY2x1ZGUgIkZvbnREZXNjcmlwdGlvbi5oIgog
I2luY2x1ZGUgIkdyYXBoaWNzVHlwZXMuaCIKLSNpbmNsdWRlICJMYXlvdXRCb3hFeHRlbnQuaCIK
ICNpbmNsdWRlICJMZW5ndGguaCIKICNpbmNsdWRlICJMZW5ndGhCb3guaCIKICNpbmNsdWRlICJM
ZW5ndGhGdW5jdGlvbnMuaCIKQEAgLTUzMSwxMiArNTMwLDEyIEBAIHB1YmxpYzoKICAgICBib29s
IG9wZXJhdG9yPT0oY29uc3QgUmVuZGVyU3R5bGUmIG90aGVyKSBjb25zdDsKICAgICBib29sIG9w
ZXJhdG9yIT0oY29uc3QgUmVuZGVyU3R5bGUmIG90aGVyKSBjb25zdCB7IHJldHVybiAhKCp0aGlz
ID09IG90aGVyKTsgfQogICAgIGJvb2wgaXNGbG9hdGluZygpIGNvbnN0IHsgcmV0dXJuIG5vbmlu
aGVyaXRlZF9mbGFncy5pc0Zsb2F0aW5nKCk7IH0KLSAgICBib29sIGhhc01hcmdpbigpIGNvbnN0
IHsgcmV0dXJuIHN1cnJvdW5kLT5tYXJnaW4ubm9uWmVybygpOyB9CisgICAgYm9vbCBoYXNNYXJn
aW4oKSBjb25zdCB7IHJldHVybiAhc3Vycm91bmQtPm1hcmdpbi5pc1plcm8oKTsgfQogICAgIGJv
b2wgaGFzQm9yZGVyKCkgY29uc3QgeyByZXR1cm4gc3Vycm91bmQtPmJvcmRlci5oYXNCb3JkZXIo
KTsgfQogICAgIGJvb2wgaGFzQm9yZGVyRmlsbCgpIGNvbnN0IHsgcmV0dXJuIHN1cnJvdW5kLT5i
b3JkZXIuaGFzRmlsbCgpOyB9CiAgICAgYm9vbCBoYXNCb3JkZXJEZWNvcmF0aW9uKCkgY29uc3Qg
eyByZXR1cm4gaGFzQm9yZGVyKCkgfHwgaGFzQm9yZGVyRmlsbCgpOyB9Ci0gICAgYm9vbCBoYXNQ
YWRkaW5nKCkgY29uc3QgeyByZXR1cm4gc3Vycm91bmQtPnBhZGRpbmcubm9uWmVybygpOyB9Ci0g
ICAgYm9vbCBoYXNPZmZzZXQoKSBjb25zdCB7IHJldHVybiBzdXJyb3VuZC0+b2Zmc2V0Lm5vblpl
cm8oKTsgfQorICAgIGJvb2wgaGFzUGFkZGluZygpIGNvbnN0IHsgcmV0dXJuICFzdXJyb3VuZC0+
cGFkZGluZy5pc1plcm8oKTsgfQorICAgIGJvb2wgaGFzT2Zmc2V0KCkgY29uc3QgeyByZXR1cm4g
IXN1cnJvdW5kLT5vZmZzZXQuaXNaZXJvKCk7IH0KICAgICBib29sIGhhc01hcmdpbkJlZm9yZVF1
aXJrKCkgY29uc3QgeyByZXR1cm4gbWFyZ2luQmVmb3JlKCkuaGFzUXVpcmsoKTsgfQogICAgIGJv
b2wgaGFzTWFyZ2luQWZ0ZXJRdWlyaygpIGNvbnN0IHsgcmV0dXJuIG1hcmdpbkFmdGVyKCkuaGFz
UXVpcmsoKTsgfQogCkBAIC01NTgsNyArNTU3LDcgQEAgcHVibGljOgogICAgIExheW91dEJveEV4
dGVudCBpbWFnZU91dHNldHMoY29uc3QgTmluZVBpZWNlSW1hZ2UmKSBjb25zdDsKICAgICBib29s
IGhhc0JvcmRlckltYWdlT3V0c2V0cygpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gYm9y
ZGVySW1hZ2UoKS5oYXNJbWFnZSgpICYmIGJvcmRlckltYWdlKCkub3V0c2V0KCkubm9uWmVybygp
OworICAgICAgICByZXR1cm4gYm9yZGVySW1hZ2UoKS5oYXNJbWFnZSgpICYmICFib3JkZXJJbWFn
ZSgpLm91dHNldCgpLmlzWmVybygpOwogICAgIH0KICAgICBMYXlvdXRCb3hFeHRlbnQgYm9yZGVy
SW1hZ2VPdXRzZXRzKCkgY29uc3QKICAgICB7CkBAIC01OTUsOCArNTk0LDggQEAgcHVibGljOgog
ICAgIGNvbnN0IExlbmd0aCYgYm90dG9tKCkgY29uc3QgeyByZXR1cm4gc3Vycm91bmQtPm9mZnNl
dC5ib3R0b20oKTsgfQogCiAgICAgLy8gQWNjZXNzb3JzIGZvciBwb3NpdGlvbmVkIG9iamVjdCBl
ZGdlcyB0aGF0IHRha2UgaW50byBhY2NvdW50IHdyaXRpbmcgbW9kZS4KLSAgICBjb25zdCBMZW5n
dGgmIGxvZ2ljYWxMZWZ0KCkgY29uc3QgeyByZXR1cm4gc3Vycm91bmQtPm9mZnNldC5sb2dpY2Fs
TGVmdCh3cml0aW5nTW9kZSgpKTsgfQotICAgIGNvbnN0IExlbmd0aCYgbG9naWNhbFJpZ2h0KCkg
Y29uc3QgeyByZXR1cm4gc3Vycm91bmQtPm9mZnNldC5sb2dpY2FsUmlnaHQod3JpdGluZ01vZGUo
KSk7IH0KKyAgICBjb25zdCBMZW5ndGgmIGxvZ2ljYWxMZWZ0KCkgY29uc3QgeyByZXR1cm4gc3Vy
cm91bmQtPm9mZnNldC5zdGFydCh3cml0aW5nTW9kZSgpKTsgfQorICAgIGNvbnN0IExlbmd0aCYg
bG9naWNhbFJpZ2h0KCkgY29uc3QgeyByZXR1cm4gc3Vycm91bmQtPm9mZnNldC5lbmQod3JpdGlu
Z01vZGUoKSk7IH0KICAgICBjb25zdCBMZW5ndGgmIGxvZ2ljYWxUb3AoKSBjb25zdCB7IHJldHVy
biBzdXJyb3VuZC0+b2Zmc2V0LmJlZm9yZSh3cml0aW5nTW9kZSgpKTsgfQogICAgIGNvbnN0IExl
bmd0aCYgbG9naWNhbEJvdHRvbSgpIGNvbnN0IHsgcmV0dXJuIHN1cnJvdW5kLT5vZmZzZXQuYWZ0
ZXIod3JpdGluZ01vZGUoKSk7IH0KIApAQCAtNjYyLDcgKzY2MSw4IEBAIHB1YmxpYzoKICAgICBm
bG9hdCBib3JkZXJCb3R0b21XaWR0aCgpIGNvbnN0IHsgcmV0dXJuIHN1cnJvdW5kLT5ib3JkZXIu
Ym9yZGVyQm90dG9tV2lkdGgoKTsgfQogICAgIEVCb3JkZXJTdHlsZSBib3JkZXJCb3R0b21TdHls
ZSgpIGNvbnN0IHsgcmV0dXJuIHN1cnJvdW5kLT5ib3JkZXIuYm90dG9tKCkuc3R5bGUoKTsgfQog
ICAgIGJvb2wgYm9yZGVyQm90dG9tSXNUcmFuc3BhcmVudCgpIGNvbnN0IHsgcmV0dXJuIHN1cnJv
dW5kLT5ib3JkZXIuYm90dG9tKCkuaXNUcmFuc3BhcmVudCgpOyB9Ci0gICAgCisgICAgRmxvYXRC
b3hFeHRlbnQgYm9yZGVyV2lkdGgoKSBjb25zdCB7IHJldHVybiBzdXJyb3VuZC0+Ym9yZGVyLmJv
cmRlcldpZHRoKCk7IH0KKwogICAgIGZsb2F0IGJvcmRlckJlZm9yZVdpZHRoKCkgY29uc3Q7CiAg
ICAgZmxvYXQgYm9yZGVyQWZ0ZXJXaWR0aCgpIGNvbnN0OwogICAgIGZsb2F0IGJvcmRlclN0YXJ0
V2lkdGgoKSBjb25zdDsKQEAgLTEyMDAsMTAgKzEyMDAsMTAgQEAgcHVibGljOgogICAgIHZvaWQg
c2V0UG9zaXRpb24oRVBvc2l0aW9uIHYpIHsgbm9uaW5oZXJpdGVkX2ZsYWdzLnNldFBvc2l0aW9u
KHYpOyB9CiAgICAgdm9pZCBzZXRGbG9hdGluZyhFRmxvYXQgdikgeyBub25pbmhlcml0ZWRfZmxh
Z3Muc2V0RmxvYXRpbmcodik7IH0KIAotICAgIHZvaWQgc2V0TGVmdChMZW5ndGggdikgeyBTRVRf
VkFSKHN1cnJvdW5kLCBvZmZzZXQubV9sZWZ0LCBXVEY6Om1vdmUodikpOyB9Ci0gICAgdm9pZCBz
ZXRSaWdodChMZW5ndGggdikgeyBTRVRfVkFSKHN1cnJvdW5kLCBvZmZzZXQubV9yaWdodCwgV1RG
Ojptb3ZlKHYpKTsgfQotICAgIHZvaWQgc2V0VG9wKExlbmd0aCB2KSB7IFNFVF9WQVIoc3Vycm91
bmQsIG9mZnNldC5tX3RvcCwgV1RGOjptb3ZlKHYpKTsgfQotICAgIHZvaWQgc2V0Qm90dG9tKExl
bmd0aCB2KSB7IFNFVF9WQVIoc3Vycm91bmQsIG9mZnNldC5tX2JvdHRvbSwgV1RGOjptb3ZlKHYp
KTsgfQorICAgIHZvaWQgc2V0TGVmdChMZW5ndGggdikgeyBTRVRfVkFSKHN1cnJvdW5kLCBvZmZz
ZXQubGVmdCgpLCBXVEY6Om1vdmUodikpOyB9CisgICAgdm9pZCBzZXRSaWdodChMZW5ndGggdikg
eyBTRVRfVkFSKHN1cnJvdW5kLCBvZmZzZXQucmlnaHQoKSwgV1RGOjptb3ZlKHYpKTsgfQorICAg
IHZvaWQgc2V0VG9wKExlbmd0aCB2KSB7IFNFVF9WQVIoc3Vycm91bmQsIG9mZnNldC50b3AoKSwg
V1RGOjptb3ZlKHYpKTsgfQorICAgIHZvaWQgc2V0Qm90dG9tKExlbmd0aCB2KSB7IFNFVF9WQVIo
c3Vycm91bmQsIG9mZnNldC5ib3R0b20oKSwgV1RGOjptb3ZlKHYpKTsgfQogCiAgICAgdm9pZCBz
ZXRXaWR0aChMZW5ndGggdikgeyBTRVRfVkFSKG1fYm94LCBtX3dpZHRoLCBXVEY6Om1vdmUodikp
OyB9CiAgICAgdm9pZCBzZXRIZWlnaHQoTGVuZ3RoIHYpIHsgU0VUX1ZBUihtX2JveCwgbV9oZWln
aHQsIFdURjo6bW92ZSh2KSk7IH0KQEAgLTEyMzksMTAgKzEyMzksMTAgQEAgcHVibGljOgogICAg
IHsKICAgICAgICAgU3R5bGVEYXNoYm9hcmRSZWdpb24gcmVnaW9uOwogICAgICAgICByZWdpb24u
bGFiZWwgPSBsYWJlbDsKLSAgICAgICAgcmVnaW9uLm9mZnNldC5tX3RvcCA9IFdURjo6bW92ZSh0
KTsKLSAgICAgICAgcmVnaW9uLm9mZnNldC5tX3JpZ2h0ID0gV1RGOjptb3ZlKHIpOwotICAgICAg
ICByZWdpb24ub2Zmc2V0Lm1fYm90dG9tID0gV1RGOjptb3ZlKGIpOwotICAgICAgICByZWdpb24u
b2Zmc2V0Lm1fbGVmdCA9IFdURjo6bW92ZShsKTsKKyAgICAgICAgcmVnaW9uLm9mZnNldC50b3Ao
KSA9IFdURjo6bW92ZSh0KTsKKyAgICAgICAgcmVnaW9uLm9mZnNldC5yaWdodCgpID0gV1RGOjpt
b3ZlKHIpOworICAgICAgICByZWdpb24ub2Zmc2V0LmJvdHRvbSgpID0gV1RGOjptb3ZlKGIpOwor
ICAgICAgICByZWdpb24ub2Zmc2V0LmxlZnQoKSA9IFdURjo6bW92ZShsKTsKICAgICAgICAgcmVn
aW9uLnR5cGUgPSB0eXBlOwogICAgICAgICBpZiAoIWFwcGVuZCkKICAgICAgICAgICAgIHJhcmVO
b25Jbmhlcml0ZWREYXRhLmFjY2VzcygpLT5tX2Rhc2hib2FyZFJlZ2lvbnMuY2xlYXIoKTsKQEAg
LTEzMjMsMTAgKzEzMjMsMTAgQEAgcHVibGljOgogICAgIHZvaWQgc2V0VmVydGljYWxBbGlnbkxl
bmd0aChMZW5ndGggbGVuZ3RoKSB7IHNldFZlcnRpY2FsQWxpZ24oTEVOR1RIKTsgU0VUX1ZBUiht
X2JveCwgbV92ZXJ0aWNhbEFsaWduLCBXVEY6Om1vdmUobGVuZ3RoKSk7IH0KIAogICAgIHZvaWQg
c2V0SGFzQ2xpcChib29sIGIgPSB0cnVlKSB7IFNFVF9WQVIodmlzdWFsLCBoYXNDbGlwLCBiKTsg
fQotICAgIHZvaWQgc2V0Q2xpcExlZnQoTGVuZ3RoIGxlbmd0aCkgeyBTRVRfVkFSKHZpc3VhbCwg
Y2xpcC5tX2xlZnQsIFdURjo6bW92ZShsZW5ndGgpKTsgfQotICAgIHZvaWQgc2V0Q2xpcFJpZ2h0
KExlbmd0aCBsZW5ndGgpIHsgU0VUX1ZBUih2aXN1YWwsIGNsaXAubV9yaWdodCwgV1RGOjptb3Zl
KGxlbmd0aCkpOyB9Ci0gICAgdm9pZCBzZXRDbGlwVG9wKExlbmd0aCBsZW5ndGgpIHsgU0VUX1ZB
Uih2aXN1YWwsIGNsaXAubV90b3AsIFdURjo6bW92ZShsZW5ndGgpKTsgfQotICAgIHZvaWQgc2V0
Q2xpcEJvdHRvbShMZW5ndGggbGVuZ3RoKSB7IFNFVF9WQVIodmlzdWFsLCBjbGlwLm1fYm90dG9t
LCBXVEY6Om1vdmUobGVuZ3RoKSk7IH0KKyAgICB2b2lkIHNldENsaXBMZWZ0KExlbmd0aCBsZW5n
dGgpIHsgU0VUX1ZBUih2aXN1YWwsIGNsaXAubGVmdCgpLCBXVEY6Om1vdmUobGVuZ3RoKSk7IH0K
KyAgICB2b2lkIHNldENsaXBSaWdodChMZW5ndGggbGVuZ3RoKSB7IFNFVF9WQVIodmlzdWFsLCBj
bGlwLnJpZ2h0KCksIFdURjo6bW92ZShsZW5ndGgpKTsgfQorICAgIHZvaWQgc2V0Q2xpcFRvcChM
ZW5ndGggbGVuZ3RoKSB7IFNFVF9WQVIodmlzdWFsLCBjbGlwLnRvcCgpLCBXVEY6Om1vdmUobGVu
Z3RoKSk7IH0KKyAgICB2b2lkIHNldENsaXBCb3R0b20oTGVuZ3RoIGxlbmd0aCkgeyBTRVRfVkFS
KHZpc3VhbCwgY2xpcC5ib3R0b20oKSwgV1RGOjptb3ZlKGxlbmd0aCkpOyB9CiAgICAgdm9pZCBz
ZXRDbGlwKExlbmd0aCB0b3AsIExlbmd0aCByaWdodCwgTGVuZ3RoIGJvdHRvbSwgTGVuZ3RoIGxl
ZnQpOwogICAgIHZvaWQgc2V0Q2xpcChMZW5ndGhCb3ggYm94KSB7IFNFVF9WQVIodmlzdWFsLCBj
bGlwLCBXVEY6Om1vdmUoYm94KSk7IH0KIApAQCAtMTQzNCwxOSArMTQzNCwxOSBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzZXRMaXN0U3R5bGVQb3NpdGlvbihFTGlzdFN0eWxlUG9zaXRpb24gdikgeyBp
bmhlcml0ZWRfZmxhZ3MuX2xpc3Rfc3R5bGVfcG9zaXRpb24gPSB2OyB9CiAKICAgICB2b2lkIHJl
c2V0TWFyZ2luKCkgeyBTRVRfVkFSKHN1cnJvdW5kLCBtYXJnaW4sIExlbmd0aEJveChGaXhlZCkp
OyB9Ci0gICAgdm9pZCBzZXRNYXJnaW5Ub3AoTGVuZ3RoIGxlbmd0aCkgeyBTRVRfVkFSKHN1cnJv
dW5kLCBtYXJnaW4ubV90b3AsIFdURjo6bW92ZShsZW5ndGgpKTsgfQotICAgIHZvaWQgc2V0TWFy
Z2luQm90dG9tKExlbmd0aCBsZW5ndGgpIHsgU0VUX1ZBUihzdXJyb3VuZCwgbWFyZ2luLm1fYm90
dG9tLCBXVEY6Om1vdmUobGVuZ3RoKSk7IH0KLSAgICB2b2lkIHNldE1hcmdpbkxlZnQoTGVuZ3Ro
IGxlbmd0aCkgeyBTRVRfVkFSKHN1cnJvdW5kLCBtYXJnaW4ubV9sZWZ0LCBXVEY6Om1vdmUobGVu
Z3RoKSk7IH0KLSAgICB2b2lkIHNldE1hcmdpblJpZ2h0KExlbmd0aCBsZW5ndGgpIHsgU0VUX1ZB
UihzdXJyb3VuZCwgbWFyZ2luLm1fcmlnaHQsIFdURjo6bW92ZShsZW5ndGgpKTsgfQorICAgIHZv
aWQgc2V0TWFyZ2luVG9wKExlbmd0aCBsZW5ndGgpIHsgU0VUX1ZBUihzdXJyb3VuZCwgbWFyZ2lu
LnRvcCgpLCBXVEY6Om1vdmUobGVuZ3RoKSk7IH0KKyAgICB2b2lkIHNldE1hcmdpbkJvdHRvbShM
ZW5ndGggbGVuZ3RoKSB7IFNFVF9WQVIoc3Vycm91bmQsIG1hcmdpbi5ib3R0b20oKSwgV1RGOjpt
b3ZlKGxlbmd0aCkpOyB9CisgICAgdm9pZCBzZXRNYXJnaW5MZWZ0KExlbmd0aCBsZW5ndGgpIHsg
U0VUX1ZBUihzdXJyb3VuZCwgbWFyZ2luLmxlZnQoKSwgV1RGOjptb3ZlKGxlbmd0aCkpOyB9Cisg
ICAgdm9pZCBzZXRNYXJnaW5SaWdodChMZW5ndGggbGVuZ3RoKSB7IFNFVF9WQVIoc3Vycm91bmQs
IG1hcmdpbi5yaWdodCgpLCBXVEY6Om1vdmUobGVuZ3RoKSk7IH0KICAgICB2b2lkIHNldE1hcmdp
blN0YXJ0KExlbmd0aCk7CiAgICAgdm9pZCBzZXRNYXJnaW5FbmQoTGVuZ3RoKTsKIAogICAgIHZv
aWQgcmVzZXRQYWRkaW5nKCkgeyBTRVRfVkFSKHN1cnJvdW5kLCBwYWRkaW5nLCBMZW5ndGhCb3go
QXV0bykpOyB9CiAgICAgdm9pZCBzZXRQYWRkaW5nQm94KExlbmd0aEJveCBib3gpIHsgU0VUX1ZB
UihzdXJyb3VuZCwgcGFkZGluZywgV1RGOjptb3ZlKGJveCkpOyB9Ci0gICAgdm9pZCBzZXRQYWRk
aW5nVG9wKExlbmd0aCBsZW5ndGgpIHsgU0VUX1ZBUihzdXJyb3VuZCwgcGFkZGluZy5tX3RvcCwg
V1RGOjptb3ZlKGxlbmd0aCkpOyB9Ci0gICAgdm9pZCBzZXRQYWRkaW5nQm90dG9tKExlbmd0aCBs
ZW5ndGgpIHsgU0VUX1ZBUihzdXJyb3VuZCwgcGFkZGluZy5tX2JvdHRvbSwgV1RGOjptb3ZlKGxl
bmd0aCkpOyB9Ci0gICAgdm9pZCBzZXRQYWRkaW5nTGVmdChMZW5ndGggbGVuZ3RoKSB7IFNFVF9W
QVIoc3Vycm91bmQsIHBhZGRpbmcubV9sZWZ0LCBXVEY6Om1vdmUobGVuZ3RoKSk7IH0KLSAgICB2
b2lkIHNldFBhZGRpbmdSaWdodChMZW5ndGggbGVuZ3RoKSB7IFNFVF9WQVIoc3Vycm91bmQsIHBh
ZGRpbmcubV9yaWdodCwgV1RGOjptb3ZlKGxlbmd0aCkpOyB9CisgICAgdm9pZCBzZXRQYWRkaW5n
VG9wKExlbmd0aCBsZW5ndGgpIHsgU0VUX1ZBUihzdXJyb3VuZCwgcGFkZGluZy50b3AoKSwgV1RG
Ojptb3ZlKGxlbmd0aCkpOyB9CisgICAgdm9pZCBzZXRQYWRkaW5nQm90dG9tKExlbmd0aCBsZW5n
dGgpIHsgU0VUX1ZBUihzdXJyb3VuZCwgcGFkZGluZy5ib3R0b20oKSwgV1RGOjptb3ZlKGxlbmd0
aCkpOyB9CisgICAgdm9pZCBzZXRQYWRkaW5nTGVmdChMZW5ndGggbGVuZ3RoKSB7IFNFVF9WQVIo
c3Vycm91bmQsIHBhZGRpbmcubGVmdCgpLCBXVEY6Om1vdmUobGVuZ3RoKSk7IH0KKyAgICB2b2lk
IHNldFBhZGRpbmdSaWdodChMZW5ndGggbGVuZ3RoKSB7IFNFVF9WQVIoc3Vycm91bmQsIHBhZGRp
bmcucmlnaHQoKSwgV1RGOjptb3ZlKGxlbmd0aCkpOyB9CiAKICAgICB2b2lkIHNldEN1cnNvcihF
Q3Vyc29yIGMpIHsgaW5oZXJpdGVkX2ZsYWdzLl9jdXJzb3Jfc3R5bGUgPSBjOyB9CiAgICAgdm9p
ZCBhZGRDdXJzb3IoUGFzc1JlZlB0cjxTdHlsZUltYWdlPiwgY29uc3QgSW50UG9pbnQmIGhvdFNw
b3QgPSBJbnRQb2ludCgpKTsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4NDg4OSkKKysrIExheW91dFRl
c3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDE1LTA1LTI2
ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAg
QW4gU1ZHIHdpdGggbm8gaW50cmluc2ljIHNpemUgZG9lcyBub3QgZHJhdyBjb3JyZWN0IHNsaWNl
cyB3aGVuIHVzZWQgYXMgYSBib3JkZXItaW1hZ2UgZm9yIGFuIEhUTUwgZWxlbWVudC4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzOTQwNQorCisgICAg
ICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgICogZmFzdC9ib3JkZXJzL2Jv
cmRlci1pbWFnZS1maWxsLW5vLWludHJpbnNpYy1zaXplLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvYm9yZGVycy9ib3JkZXItaW1hZ2UtZmlsbC1uby1pbnRyaW5zaWMtc2l6
ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2JvcmRlcnMvcmVzb3VyY2VzL3N2Zy1ib3Jk
ZXItMTAweDEwMC1pbnRyaW5zaWMuc3ZnOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2JvcmRlcnMv
cmVzb3VyY2VzL3N2Zy1ib3JkZXItMTQweDE0MC1pbnRyaW5zaWMuc3ZnOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2JvcmRlcnMvcmVzb3VyY2VzL3N2Zy1ib3JkZXItbm8taW50cmluc2ljLnN2Zzog
QWRkZWQuCisgICAgICAgIE1ha2Ugc3VyZSB0aGUgc2xpY2VzIG9mIHRoZSBib3JkZXItaW1hZ2Ug
YXJlIGRyYXduIGNvcnJlY3RseS4gV2hlbiB1c2luZyBhbgorICAgICAgICBpbWFnZSB3aXRoIG5v
IGludHJpbnNpYyBzaXplLCBhbGwgdGhlIHNsaWNlcyBoYXMgdG8gYmUgZ290dGVuIGZyb20gKDAs
IDApCisgICAgICAgIG9mIHRoZSBzb3VyY2UgaW1hZ2UuCisgICAgICAgIAorICAgICAgICAqIFRl
c3RFeHBlY3RhdGlvbnM6IFJlbW92ZWQgcHJldmlvdXNseS1mYWlsaW5nIHRlc3QuCisKIDIwMTUt
MDUtMjYgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBPdmVyaGFu
Z2luZyBmbG9hdCBzZXRzIGFyZSBub3QgY2xlYW5lZCB1cCBwcm9wZXJseSB3aGVuIGZsb2F0aW5n
IHJlbmRlcmVyIGlzIGRlc3Ryb3llZC4KSW5kZXg6IExheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlv
bnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwkocmV2aXNpb24g
MTg0ODg5KQorKysgTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwkod29ya2luZyBjb3B5KQpA
QCAtNDMzLDcgKzQzMyw2IEBAIHdlYmtpdC5vcmcvYi8xMzkyNjYgaW1wb3J0ZWQvbW96aWxsYS9z
dmcKIHdlYmtpdC5vcmcvYi8xMzkyODIgaW1wb3J0ZWQvbW96aWxsYS9zdmcvaW1hZ2UvaW1hZ2Ut
ZmlsdGVyLTAxLnN2ZyBbIEltYWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzEzOTMyMiBp
bXBvcnRlZC9tb3ppbGxhL3N2Zy90ZXh0L2R5bmFtaWMtbm9uLXNjYWxpbmctc3Ryb2tlLnN2ZyBb
IEltYWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzEzOTQwNyBpbXBvcnRlZC9tb3ppbGxh
L3N2Zy9hcy1pbWFnZS9ib3JkZXItaW1hZ2Utc2ltcGxlLTEuaHRtbCBbIEltYWdlT25seUZhaWx1
cmUgXQotd2Via2l0Lm9yZy9iLzEzOTQwNSBpbXBvcnRlZC9tb3ppbGxhL3N2Zy9hcy1pbWFnZS9i
b3JkZXItaW1hZ2Utc2ltcGxlLTIuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9y
Zy9iLzEzOTQxMiBpbXBvcnRlZC9tb3ppbGxhL3N2Zy9maWx0ZXJzL3N2Zy1maWx0ZXItY2hhaW5z
L2NsaXAtaW5wdXQuc3ZnIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTM5NDEy
IGltcG9ydGVkL21vemlsbGEvc3ZnL2ZpbHRlcnMvc3ZnLWZpbHRlci1jaGFpbnMvY2xpcC1vdXRw
dXQuc3ZnIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTM5NDE0IGltcG9ydGVk
L21vemlsbGEvc3ZnL2ZpbHRlcnMvZmVDb2xvck1hdHJpeC0xLnN2ZyBbIEltYWdlT25seUZhaWx1
cmUgXQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9ib3JkZXJzL2JvcmRlci1pbWFnZS1maWxsLW5v
LWludHJpbnNpYy1zaXplLWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9ib3JkZXJzL2JvcmRlci1pbWFnZS1maWxsLW5vLWludHJpbnNpYy1zaXplLWV4cGVjdGVk
Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2JvcmRlcnMvYm9yZGVyLWlt
YWdlLWZpbGwtbm8taW50cmluc2ljLXNpemUtZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDM4IEBACis8IURPQ1RZUEUgSFRNTD4KKzxoZWFkPgorICA8c3R5bGU+CisgICAg
LmJveCB7CisgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgd2lkdGg6IDEwMHB4OworICAgICAg
bWFyZ2luOiAxMHB4OworICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOworICAgICAgYmFja2dy
b3VuZC1jb2xvcjogcmVkOworICAgIH0KKyAgICAuYm9yZGVyIHsKKyAgICAgIGJvcmRlcjogMjBw
eCBzb2xpZDsKKyAgICB9CisgICAgLm5vLWJvcmRlciB7CisgICAgICBib3JkZXI6IDBweCBub25l
OworICAgIH0KKyAgICAuYm9yZGVyLWltYWdlLTEwMC1pbnRyaW5zaWMgeworICAgICAgIGJvcmRl
ci1pbWFnZTogdXJsKCdyZXNvdXJjZXMvc3ZnLWJvcmRlci0xMDB4MTAwLWludHJpbnNpYy5zdmcn
KSAwIGZpbGw7CisgICAgfQorICAgIC5ib3JkZXItaW1hZ2UtMTAwLWludHJpbnNpYy1zbGljZSB7
CisgICAgICAgYm9yZGVyLWltYWdlOiB1cmwoJ3Jlc291cmNlcy9zdmctYm9yZGVyLTEwMHgxMDAt
aW50cmluc2ljLnN2ZycpIDIwIGZpbGw7CisgICAgfQorICAgIC5ib3JkZXItaW1hZ2UtMTQwLWlu
dHJpbnNpYy1zbGljZSB7CisgICAgICAgYm9yZGVyLWltYWdlOiB1cmwoJ3Jlc291cmNlcy9zdmct
Ym9yZGVyLTE0MHgxNDAtaW50cmluc2ljLnN2ZycpIDIwIGZpbGw7CisgICAgfQorICA8L3N0eWxl
PgorPC9oZWFkPgorPGJvZHk+CisgIDxkaXYgY2xhc3M9ImJveCBuby1ib3JkZXIgYm9yZGVyLWlt
YWdlLTEwMC1pbnRyaW5zaWMiPjwvZGl2PgorICA8ZGl2IGNsYXNzPSJib3ggYm9yZGVyICAgIGJv
cmRlci1pbWFnZS0xMDAtaW50cmluc2ljIj48L2Rpdj4KKyAgPGRpdiBjbGFzcz0iYm94IG5vLWJv
cmRlciBib3JkZXItaW1hZ2UtMTAwLWludHJpbnNpYy1zbGljZSI+PC9kaXY+CisgIDxkaXYgY2xh
c3M9ImJveCBib3JkZXIgICAgYm9yZGVyLWltYWdlLTEwMC1pbnRyaW5zaWMtc2xpY2UiPjwvZGl2
PgorICA8YnI+CisgIDxkaXYgY2xhc3M9ImJveCBuby1ib3JkZXIgYm9yZGVyLWltYWdlLTEwMC1p
bnRyaW5zaWMiPjwvZGl2PgorICA8ZGl2IGNsYXNzPSJib3ggYm9yZGVyICAgIGJvcmRlci1pbWFn
ZS0xMDAtaW50cmluc2ljIj48L2Rpdj4KKyAgPGRpdiBjbGFzcz0iYm94IG5vLWJvcmRlciBib3Jk
ZXItaW1hZ2UtMTAwLWludHJpbnNpYyI+PC9kaXY+CisgIDxkaXYgY2xhc3M9ImJveCBib3JkZXIg
ICAgYm9yZGVyLWltYWdlLTE0MC1pbnRyaW5zaWMtc2xpY2UiPjwvZGl2PgorPC9ib2R5PgpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9ib3JkZXJzL2JvcmRlci1pbWFnZS1maWxsLW5vLWludHJpbnNp
Yy1zaXplLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ib3JkZXJzL2JvcmRl
ci1pbWFnZS1maWxsLW5vLWludHJpbnNpYy1zaXplLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2JvcmRlcnMvYm9yZGVyLWltYWdlLWZpbGwtbm8taW50cmluc2ljLXNpemUu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQxIEBACis8IURPQ1RZUEUgSFRNTD4KKzxo
ZWFkPgorICA8c3R5bGU+CisgICAgLmJveCB7CisgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAg
d2lkdGg6IDEwMHB4OworICAgICAgbWFyZ2luOiAxMHB4OworICAgICAgZGlzcGxheTogaW5saW5l
LWJsb2NrOworICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmVkOworICAgIH0KKyAgICAuYm9yZGVy
IHsKKyAgICAgIGJvcmRlcjogMjBweCBzb2xpZDsKKyAgICB9CisgICAgLm5vLWJvcmRlciB7Cisg
ICAgICBib3JkZXI6IDBweCBub25lOworICAgIH0KKyAgICAuYm9yZGVyLWltYWdlLTEwMC1pbnRy
aW5zaWMgeworICAgICAgIGJvcmRlci1pbWFnZTogdXJsKCdyZXNvdXJjZXMvc3ZnLWJvcmRlci0x
MDB4MTAwLWludHJpbnNpYy5zdmcnKSAwIGZpbGw7CisgICAgfQorICAgIC5ib3JkZXItaW1hZ2Ut
MTAwLWludHJpbnNpYy1zbGljZSB7CisgICAgICAgYm9yZGVyLWltYWdlOiB1cmwoJ3Jlc291cmNl
cy9zdmctYm9yZGVyLTEwMHgxMDAtaW50cmluc2ljLnN2ZycpIDIwIGZpbGw7CisgICAgfQorICAg
IC5ib3JkZXItaW1hZ2Utbm8taW50cmluc2ljIHsKKyAgICAgICBib3JkZXItaW1hZ2U6IHVybCgn
cmVzb3VyY2VzL3N2Zy1ib3JkZXItbm8taW50cmluc2ljLnN2ZycpIDAgZmlsbDsKKyAgICB9Cisg
ICAgLmJvcmRlci1pbWFnZS1uby1pbnRyaW5zaWMtc2xpY2UgeworICAgICAgIGJvcmRlci1pbWFn
ZTogdXJsKCdyZXNvdXJjZXMvc3ZnLWJvcmRlci1uby1pbnRyaW5zaWMuc3ZnJykgMjAgZmlsbDsK
KyAgICB9CisgIDwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPGRpdiBjbGFzcz0iYm94IG5v
LWJvcmRlciBib3JkZXItaW1hZ2UtMTAwLWludHJpbnNpYyI+PC9kaXY+CisgIDxkaXYgY2xhc3M9
ImJveCBib3JkZXIgICAgYm9yZGVyLWltYWdlLTEwMC1pbnRyaW5zaWMiPjwvZGl2PgorICA8ZGl2
IGNsYXNzPSJib3ggbm8tYm9yZGVyIGJvcmRlci1pbWFnZS0xMDAtaW50cmluc2ljLXNsaWNlIj48
L2Rpdj4KKyAgPGRpdiBjbGFzcz0iYm94IGJvcmRlciAgICBib3JkZXItaW1hZ2UtMTAwLWludHJp
bnNpYy1zbGljZSI+PC9kaXY+CisgIDxicj4KKyAgPGRpdiBjbGFzcz0iYm94IG5vLWJvcmRlciBi
b3JkZXItaW1hZ2Utbm8taW50cmluc2ljIj48L2Rpdj4KKyAgPGRpdiBjbGFzcz0iYm94IGJvcmRl
ciAgICBib3JkZXItaW1hZ2Utbm8taW50cmluc2ljIj48L2Rpdj4KKyAgPGRpdiBjbGFzcz0iYm94
IG5vLWJvcmRlciBib3JkZXItaW1hZ2Utbm8taW50cmluc2ljLXNsaWNlIj48L2Rpdj4KKyAgPGRp
diBjbGFzcz0iYm94IGJvcmRlciAgICBib3JkZXItaW1hZ2Utbm8taW50cmluc2ljLXNsaWNlIj48
L2Rpdj4KKzwvYm9keT4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvYm9yZGVycy9yZXNvdXJjZXMv
c3ZnLWJvcmRlci0xMDB4MTAwLWludHJpbnNpYy5zdmcKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9ib3JkZXJzL3Jlc291cmNlcy9zdmctYm9yZGVyLTEwMHgxMDAtaW50cmluc2ljLnN2
ZwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvYm9yZGVycy9yZXNvdXJjZXMvc3Zn
LWJvcmRlci0xMDB4MTAwLWludHJpbnNpYy5zdmcJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0
IEBACis8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVyc2lvbj0iMS4x
IiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCI+CisgIDxyZWN0IHdpZHRoPSIxMDAiIGhlaWdodD0i
MTAwIiBmaWxsPSJsaW1lIi8+CisgIDxyZWN0IHg9IjEwIiB5PSIxMCIgd2lkdGg9IjgwIiBoZWln
aHQ9IjgwIiBmaWxsPSJub25lIiBzdHJva2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjRweCIvPgor
PC9zdmc+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9ib3JkZXJzL3Jlc291cmNlcy9zdmctYm9yZGVyLTE0MHgxNDAtaW50cmluc2ljLnN2Zwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2JvcmRlcnMvcmVzb3VyY2VzL3N2Zy1ib3JkZXIt
MTQweDE0MC1pbnRyaW5zaWMuc3ZnCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9i
b3JkZXJzL3Jlc291cmNlcy9zdmctYm9yZGVyLTE0MHgxNDAtaW50cmluc2ljLnN2Zwkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDUyIEBACis8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8y
MDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZlcnNp
b249IjEuMSIgd2lkdGg9IjE0MCIgaGVpZ2h0PSIxNDAiPgorICA8ZGVmcz4KKyAgICA8ZyBpZD0i
Ym9yZGVyLWltYWdlIj4KKyAgICAgIDxyZWN0IHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIiBmaWxs
PSJsaW1lIi8+CisgICAgICA8cmVjdCB4PSIxMCIgeT0iMTAiIHdpZHRoPSI4MCIgaGVpZ2h0PSI4
MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLXdpZHRoPSI0cHgiLz4KKyAgICA8
L2c+CisgICAgPGNsaXBQYXRoIGlkPSJ0b3AtbGVmdCI+CisgICAgICA8cmVjdCB4PSIwIiB5PSIw
IiB3aWR0aD0iMjAiIGhlaWdodD0iMjAiLz4KKyAgICA8L2NsaXBQYXRoPgorICAgIDxjbGlwUGF0
aCBpZD0ibGVmdCI+CisgICAgICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMjAiIGhlaWdodD0i
MTAwIi8+CisgICAgPC9jbGlwUGF0aD4KKyAgICA8Y2xpcFBhdGggaWQ9ImJvdHRvbS1sZWZ0Ij4K
KyAgICAgIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIvPgorICAgIDwv
Y2xpcFBhdGg+CisgICAgPGNsaXBQYXRoIGlkPSJ0b3AtcmlnaHQiPgorICAgICAgPHJlY3QgeD0i
MCIgeT0iMCIgd2lkdGg9IjIwIiBoZWlnaHQ9IjIwIi8+CisgICAgPC9jbGlwUGF0aD4KKyAgICA8
Y2xpcFBhdGggaWQ9InJpZ2h0Ij4KKyAgICAgIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIyMCIg
aGVpZ2h0PSIxMDAiLz4KKyAgICA8L2NsaXBQYXRoPgorICAgIDxjbGlwUGF0aCBpZD0iYm90dG9t
LXJpZ2h0Ij4KKyAgICAgIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIv
PgorICAgIDwvY2xpcFBhdGg+CisgICAgPGNsaXBQYXRoIGlkPSJ0b3AiPgorICAgICAgPHJlY3Qg
eD0iMCIgeT0iMCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIyMCIvPgorICAgIDwvY2xpcFBhdGg+Cisg
ICAgPGNsaXBQYXRoIGlkPSJib3R0b20iPgorICAgICAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9
IjEwMCIgaGVpZ2h0PSIyMCIvPgorICAgIDwvY2xpcFBhdGg+CisgICAgPGNsaXBQYXRoIGlkPSJt
aWRkbGUiPgorICAgICAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAi
Lz4KKyAgICA8L2NsaXBQYXRoPgorICA8L2RlZnM+CisgIAorICA8IS0tIGRyYXcgbGVmdCBzaWRl
IC0tPgorICA8dXNlIHg9IjAiIHk9IjAiIHhsaW5rOmhyZWY9IiNib3JkZXItaW1hZ2UiIGNsaXAt
cGF0aD0idXJsKCN0b3AtbGVmdCkiLz4KKyAgPHVzZSB4PSIwIiB5PSIyMCIgeGxpbms6aHJlZj0i
I2JvcmRlci1pbWFnZSIgY2xpcC1wYXRoPSJ1cmwoI2xlZnQpIi8+CisgIDx1c2UgeD0iMCIgeT0i
MTIwIiB4bGluazpocmVmPSIjYm9yZGVyLWltYWdlIiBjbGlwLXBhdGg9InVybCgjYm90dG9tLWxl
ZnQpIi8+CisgIAorICA8IS0tIGRyYXcgcmlnaHQgc2lkZSAtLT4KKyAgPHVzZSB4PSIxMjAiIHk9
IjAiIHhsaW5rOmhyZWY9IiNib3JkZXItaW1hZ2UiIGNsaXAtcGF0aD0idXJsKCN0b3AtcmlnaHQp
Ii8+CisgIDx1c2UgeD0iMTIwIiB5PSIyMCIgeGxpbms6aHJlZj0iI2JvcmRlci1pbWFnZSIgY2xp
cC1wYXRoPSJ1cmwoI3JpZ2h0KSIvPgorICA8dXNlIHg9IjEyMCIgeT0iMTIwIiB4bGluazpocmVm
PSIjYm9yZGVyLWltYWdlIiBjbGlwLXBhdGg9InVybCgjYm90dG9tLXJpZ2h0KSIvPgorICAKKyAg
PCEtLSBkcmF3IHRvcCBhbmQgYm90dG9tIHNpZGVzIC0tPgorICA8dXNlIHg9IjIwIiB5PSIwIiB4
bGluazpocmVmPSIjYm9yZGVyLWltYWdlIiBjbGlwLXBhdGg9InVybCgjdG9wKSIvPgorICA8dXNl
IHg9IjIwIiB5PSIxMjAiIHhsaW5rOmhyZWY9IiNib3JkZXItaW1hZ2UiIGNsaXAtcGF0aD0idXJs
KCNib3R0b20pIi8+CisgIAorICA8IS0tIGRyYXcgbWlkZGxlIC0tPgorICA8dXNlIHg9IjIwIiB5
PSIyMCIgeGxpbms6aHJlZj0iI2JvcmRlci1pbWFnZSIgY2xpcC1wYXRoPSJ1cmwoI21pZGRsZSki
Lz4KKzwvc3ZnPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvYm9yZGVycy9yZXNvdXJjZXMvc3ZnLWJvcmRlci1uby1pbnRyaW5zaWMuc3ZnCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYm9yZGVycy9yZXNvdXJjZXMvc3ZnLWJvcmRlci1u
by1pbnRyaW5zaWMuc3ZnCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9ib3JkZXJz
L3Jlc291cmNlcy9zdmctYm9yZGVyLW5vLWludHJpbnNpYy5zdmcJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSw0IEBACis8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmVy
c2lvbj0iMS4xIj4KKyAgPHJlY3Qgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiIGZpbGw9ImxpbWUi
Lz4KKyAgPHJlY3QgeD0iMTAiIHk9IjEwIiB3aWR0aD0iODAiIGhlaWdodD0iODAiIGZpbGw9Im5v
bmUiIHN0cm9rZT0iYmxhY2siIHN0cm9rZS13aWR0aD0iNHB4Ii8+Cis8L3N2Zz4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4OiBMYXlvdXRUZXN0cy9pbXBvcnRlZC9tb3ppbGxhL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbXBvcnRlZC9tb3ppbGxhL0NoYW5n
ZUxvZwkocmV2aXNpb24gMTg0ODg5KQorKysgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvbW96aWxsYS9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNiBAQAorMjAxNS0wNS0yNiAgU2Fp
ZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIEFuIFNW
RyB3aXRoIG5vIGludHJpbnNpYyBzaXplIGRvZXMgbm90IGRyYXcgY29ycmVjdCBzbGljZXMgd2hl
biB1c2VkIGFzIGEgYm9yZGVyLWltYWdlIGZvciBhbiBIVE1MIGVsZW1lbnQuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk0MDUKKworICAgICAgICBS
ZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICAqIHN2Zy9hcy1pbWFnZS9ib3JkZXIt
aW1hZ2Utc2ltcGxlLTIuaHRtbDogQWRkICJib3JkZXI6IDBweCBub25lOyIgdG8KKyAgICAgICAg
c3R5bGUgb2YgdGhlIDxkaXY+IGFsdGhvdWdoIHRoZSBzdHlsZSBoYXMgImJvcmRlci1pbWFnZTog
dXJsKCkgMCBmaWxsOyIuCisgICAgICAgIElmIHRoZSBib3JkZXIgd2lkdGggaXMgbm90IHNldCB0
byB6ZXJvIGluIHRoZSBzdHlsZSwgdGhlIDxkaXY+IHdpbGwgaGF2ZQorICAgICAgICBhIDNweCBi
b3JkZXIuIFRoaXMgc2VlbXMgdG8gYmUgYSBidWcgaW4gV2ViS2l0IGJ1dCBzaG91bGQgYmUgdW5y
ZWxhdGVkIHRvCisgICAgICAgIHRoZSBub24taW50cmluc2ljLXNpemVkIGltYWdlcyB3aXRoIGJv
cmRlci1pbWFnZS4KKwogMjAxNC0xMi0wOSAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxh
d2FAYXBwbGUuY29tPgogCiAgICAgICAgIEltcG9ydCBNb3ppbGxhIHRlc3Qgc3VpdGUgZm9yIFNW
Ry4KSW5kZXg6IExheW91dFRlc3RzL2ltcG9ydGVkL21vemlsbGEvc3ZnL2FzLWltYWdlL2JvcmRl
ci1pbWFnZS1zaW1wbGUtMi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2ltcG9ydGVk
L21vemlsbGEvc3ZnL2FzLWltYWdlL2JvcmRlci1pbWFnZS1zaW1wbGUtMi5odG1sCShyZXZpc2lv
biAxODQ4ODkpCisrKyBMYXlvdXRUZXN0cy9pbXBvcnRlZC9tb3ppbGxhL3N2Zy9hcy1pbWFnZS9i
b3JkZXItaW1hZ2Utc2ltcGxlLTIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDYgQEAK
IDxodG1sPgogPGJvZHk+Ci0gIDxkaXYgc3R5bGU9ImhlaWdodDogMTAwcHg7IHdpZHRoOiAxMDBw
eDsKKyAgPGRpdiBzdHlsZT0iaGVpZ2h0OiAxMDBweDsgd2lkdGg6IDEwMHB4OyBib3JkZXI6IDBw
eCBub25lOwogICAgICAgICAgICAgICBib3JkZXItaW1hZ2U6IHVybCgncmVzb3VyY2VzL2xpbWUx
MDB4MTAwLW5vU1ZHRGltZW5zaW9ucy5zdmcnKSAwIGZpbGw7Ii8+CiA8L2JvZHk+CiA8L2h0bWw+
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>255839</attachid>
            <date>2015-06-30 12:17:42 -0700</date>
            <delta_ts>2015-06-30 12:17:42 -0700</delta_ts>
            <desc>Chrome display</desc>
            <filename>Screen Shot 2015-06-30 at 12.15.57 PM.png</filename>
            <type>image/png</type>
            <size>39104</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">iVBORw0KGgoAAAANSUhEUgAAAZMAAAIMCAYAAAAwxEFqAAAAAXNSR0IArs4c6QAAAZ1pVFh0WE1M
OmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6
eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3
LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlv
biByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNv
bS9leGlmLzEuMC8iPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NDAzPC9leGlmOlBp
eGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjUyNDwvZXhpZjpQ
aXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+Cjwv
eDp4bXBtZXRhPgrxqBswAABAAElEQVR4AeydB4BV1bX+171zZwYGmBl6h0GKFEEsiAVUMDF2yIsV
0GhiTV4s0WfLP74kvhfbU2NMVMyzxEJiJEY0IlYsoBBFpCMd6SAI02du+/++debCzDgNJS/E3AN3
7rnn7LPL2nt/q+59QjktWyWNI5n0L53qR/DdhL+plKGqtKnf+qlr1X+nrum7oUPPpJ5NfddOX9f1
1LXUd/VndC111K5T6npD3/Xlmaqrnq1+Xv139fIayqeh8v9x96pqX70RjVXGx8/ePNBYhv+39xur
ud/nT810qV9VPZz6uU+rrkyrj+S6Mq+WRv3wheRcSM3v6vf2YX33ZLXnrK6afm2vqdnVafs1bGgo
9MUGhgoLC5MVFRVWXFzsTW7ZsqXl5ORYXYm/hjRJNylNgTQF0hRIU6CJFJDSUVpaWoNfZGdnWzgc
ttDmzZuTMBRr1qyZtW7d2mKxmCUSiZqaShMLSidLUyBNgTQF0hT4+lJASoYYRyQSsc8//9zKy8st
NzfXMjMzLSKtRDfz8vJM5+kjTYE0BdIUSFMgTYG6KCDNJB6P+0c8o7Ky0vlGRkZGwExatWrlF+t6
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
YII=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>255844</attachid>
            <date>2015-06-30 13:32:02 -0700</date>
            <delta_ts>2015-06-30 13:32:02 -0700</delta_ts>
            <desc>border-image-slicing</desc>
            <filename>border-image-slicing.png</filename>
            <type>image/png</type>
            <size>51907</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">iVBORw0KGgoAAAANSUhEUgAAA+gAAAPoCAYAAABNo9TkAAAEDWlDQ1BJQ0MgUHJvZmlsZQAAOI2N
VV1oHFUUPrtzZyMkzlNsNIV0qD8NJQ2TVjShtLp/3d02bpZJNtoi6GT27s6Yyc44M7v9oU9FUHwx
6psUxL+3gCAo9Q/bPrQvlQol2tQgKD60+INQ6Ium65k7M5lpurHeZe58853vnnvuuWfvBei5qliW
kRQBFpquLRcy4nOHj4g9K5CEh6AXBqFXUR0rXalMAjZPC3e1W99Dwntf2dXd/p+tt0YdFSBxH2Kz
5qgLiI8B8KdVy3YBevqRHz/qWh72Yui3MUDEL3q44WPXw3M+fo1pZuQs4tOIBVVTaoiXEI/MxfhG
DPsxsNZfoE1q66ro5aJim3XdoLFw72H+n23BaIXzbcOnz5mfPoTvYVz7KzUl5+FRxEuqkp9G/Aji
a219thzg25abkRE/BpDc3pqvphHvRFys2weqvp+krbWKIX7nhDbzLOItiM8358pTwdirqpPFnMF2
xLc1WvLyOwTAibpbmvHHcvttU57y5+XqNZrLe3lE/Pq8eUj2fXKfOe3pfOjzhJYtB/yll5SDFcSD
iH+hRkH25+L+sdxKEAMZahrlSX8ukqMOWy/jXW2m6M9LDBc31B9LFuv6gVKg/0Szi3KAr1kGq1GM
jU/aLbnq6/lRxc4XfJ98hTargX++DbMJBSiYMIe9Ck1YAxFkKEAG3xbYaKmDDgYyFK0UGYpfoWYX
G+fAPPI6tJnNwb7ClP7IyF+D+bjOtCpkhz6CFrIa/I6sFtNl8auFXGMTP34sNwI/JhkgEtmDz14y
SfaRcTIBInmKPE32kxyyE2Tv+thKbEVePDfW/byMM1Kmm0XdObS7oGD/MypMXFPXrCwOtoYjyyn7
BV29/MZfsVzpLDdRtuIZnbpXzvlf+ev8MvYr/Gqk4H/kV/G3csdazLuyTMPsbFhzd1UabQbjFvDR
mcWJxR3zcfHkVw9GfpbJmeev9F08WW8uDkaslwX6avlWGU6NRKz0g/SHtCy9J30o/ca9zX3Kfc19
zn3BXQKRO8ud477hLnAfc1/G9mrzGlrfexZ5GLdn6ZZrrEohI2wVHhZywjbhUWEy8icMCGNCUdiB
lq3r+xafL549HQ5jH+an+1y+LlYBifuxAvRN/lVVVOlwlCkdVm9NOL5BE4wkQ2SMlDZU97hX86Ei
lU/lUmkQUztTE6mx1EEPh7OmdqBtAvv8HdWpbrJS6tJj3n0CWdM6busNzRV3S9KTYhqvNiqWmuro
iKgYhshMjmhTh9ptWhsF7970j/SbMrsPE1suR5z7DMC+P/Hs+y7ijrQAlhyAgccjbhjPygfeBTjz
hNqy28EdkUh8C+DU9+z2v/oyeH791OncxHOs5y2AtTc7nb/f73TWPkD/qwBnjX8BoJ98VVBg/m8A
AEAASURBVHgB7N0JvCRXWSjwb7LJnpiwJSyGnUgwBCFA2MImIOKCyBKQXZRNEoHwhBCIgIGQxwRB
eAIPn7IoIpsYFgMStoRNRFCEQEhYZA8MyprAzJsvZdt9e+7t29X33qrTp/7Fb+be7lrOOf+vTpiv
v6rqbbt2L2EhQIAAAQIECBAgQIAAAQIEehXYq9fWNU6AAAECBAgQIECAAAECBAhcIiBBdyIQIECA
AAECBAgQIECAAIECBCToBQRBFwgQIECAAAECBAgQIECAgATdOUCAAAECBAgQIECAAAECBAoQkKAX
EARdIECAAAECBAgQIECAAAECEnTnAAECBAgQIECAAAECBAgQKEBAgl5AEHSBAAECBAgQIECAAAEC
BAhI0J0DBAgQIECAAAECBAgQIECgAAEJegFB0AUCBAgQIECAAAECBAgQICBBdw4QIECAAAECBAgQ
IECAAIECBCToBQRBFwgQIECAAAECBAgQIECAgATdOUCAAAECBAgQIECAAAECBAoQkKAXEARdIECA
AAECBAgQIECAAAECEnTnAAECBAgQIECAAAECBAgQKEBAgl5AEHSBAAECBAgQIECAAAECBAhI0J0D
BAgQIECAAAECBAgQIECgAAEJegFB0AUCBAgQIECAAAECBAgQICBBdw4QIECAAAECBAgQIECAAIEC
BCToBQRBFwgQIECAAAECBAgQIECAgATdOUCAAAECBAgQIECAAAECBAoQkKAXEARdIECAAAECBAgQ
IECAAAECEnTnAAECBAgQIECAAAECBAgQKEBAgl5AEHSBAAECBAgQIECAAAECBAhI0J0DBAgQIECA
AAECBAgQIECgAAEJegFB0AUCBAgQIECAAAECBAgQICBBdw4QIECAAAECBAgQIECAAIECBCToBQRB
FwgQIECAAAECBAgQIECAgATdOUCAAAECBAgQIECAAAECBAoQkKAXEARdIECAAAECBAgQIECAAAEC
EnTnAAECBAgQIECAAAECBAgQKEBAgl5AEHSBAAECBAgQIECAAAECBAhI0J0DBAgQIDBcgW3bhjt2
IydAgAABAgSKE9inuB7pEAECBAgQ6FKg9CR9164uNbRFgAABAgQI9Ciggt4jvqYJECBAoACB3Qnw
JXX0An+OdLb994cIfjZXPHDozmFkPToX/SRAgACBrRXYtmv3srVNODoBAgQIEChUYHfie8Bx5V7m
vuP0XUX3byuiumP7zq04rGMSIECAAIGlEFBBX4ow6SQBAgQIECBAoHsBFfTuzbVIgMCwBSTow46/
0RMgQIAAAQIE1hRwoeWaNFYQIEBgSwQk6FvC6qAECBAgQIAAgeUXUEFf/hgaAQECyyUgQV+ueOkt
AQIECBAgQKAzARX0zqg1RIAAgUsEJOhOBAIECBAgQIAAgVUFVNBXZfEmAQIEtkxAgr5ltA5MgAAB
AgQIEFhuARX05Y6f3hMgsHwCEvTli5keEyBAgAABAgQ6EVBB74RZIwQIEPgfAQn6/1D4hQABAgQI
ECBAYFJgoQr6D34QcdppEfe7X8Rd7xrxyEdGvOMdk4ed//ef/CTiRS+KeMQjIr785fn3m97y1FMj
PvjB6Xfnf719e8TZZ4+3b3u8ttuPW2r322Z5rdfqySdHnHPOelu1X99V/9v3zB4EOhOQoHdGrSEC
BAgQIECAwHIJtK6gf/vbEYcfHnHCCRHnnx9xlatEfPSjEXe7W8QDH9h+8C9/ecTjHhfxuc9F7NzZ
fv/RHiedFPHe945etf/5zGdGnHXWeL+2x2u7/bildr9tltd0q89+dsSJJ47fPeWUiA99aPx6s37b
qv5vVv8ch0AHAvt00IYmCBAgQIAAAQIEllCgdQX9Gc9oKt2f/WzEda4zHvGznhXxtKdF3Pe+Efe8
5/j99X772McibnjDlcnxevustj77c8ABq61Z7L22x2u7/WK9itgsr+n2P/KRiO99b/rdzX+9Vf3f
/J46IoEtE5CgbxmtAxMgQIAAAQIEllsgK+itkvQPfzjilrdcmZwnweMfH/GKV0Rkojq5fPObEe98
Z8RnPhNx1FERRx89TqTf/e6mcn7RRRGvf33Ene8csf/+EbP2yWO/9rURRx7ZbPvKV0Y87GFNFf9G
N4q4/OUnW1/5+3nnRbzxjRE/+lHEbW4TccwxK9dPvsqrAqaPl1X+N70p4jvfaa4YyLHsvXez1/T2
r351xK1u1ax761ub5PdOd4q4+c0nW4m44IKIt7894jKXaW4XyCT5q19t+rdyy4i1vPIYb35zc6wb
3CDi2GMjrnCF8d6reR144Hj9W94S8aUvRfz4xxHpmR+yjJZzz236l7c1ZHxudrPRmubnd78bccYZ
EbndEUc026wVg0X7n33Kdg87bNz2e94TkefNXe7SvLfeGEd7zophbrOI5dveNl+s17NaawxtztvR
OP0sWmDb7v/o7iq6hzpHgAABAgS2SmB38nHAcdu26ugbPu6O03cV3b8ND3CVA+zYvoHLmFc5nrc6
FviN32iSwUw687L2WcvrXtfcp56XwWdynklsJreZXGXClfed/93fRfzwh00y/KpXRfzzP8/eJ9vL
5DLvf/+Lv4jIe5r//d8jfv7nI/7oj5pL71fr04Me1PT7trdtPkTIhDK3z6p/LnnMJz4x4ilPaV5f
6lIrj5dJ7P3v31zSf/WrR7z//U2bed/7ZS8bMb19vr7XvZp787NvOfaLL24S/F/5laaNTGxzHD/z
M82HFv/xHxG3vnXEt74V8fGPN9tM/r2aV34gkse45jUjrn/95j783f/du+SZAPkBQy6reV372s26
/DtvTch4/vSnTRL8D/8QceUrR9z+9s2VDXmcT3+66X86jOL+b/8W8au/2lxRkR9W5Ouf/dkmYb/u
dcfHH/22aP9zPPmMgOOOGx0p4t73jtixo/nwJ99db4y5zXoxzER7EcuM73qxnsdqtTE84xmzz9sc
l2XpBPZauh7rMAECBAgQIECAQCcCre9Bf/rTm8r13e8eceihEQ95SMTLXtZUfad7nA+S+63faqqz
WXnORDoT10zEc8n7kTNZvfGNm8Qyk7r19mn2jHjpSyOe85ym2j6ZbI7WT/78/OebynD28+//vqnm
n356xPOf31RhJ7dd7ffvf795EF5WwLMCmx8w5CXhmXT99V+vtkfzXlbG//EfI973vmbsP/dzEa95
TbMuK+WZsOZD9r7xjeZDg1yXx15rmfY65JDmGL/8yxGf+ERzFUIm0le6UvP+5HFmeWU8bne7prqf
HziMqu85xrwkPf9kZfla12oc87hZ/3voQyMOOijiC18YV/fzSoBHP3qy5fHvG+n/+Chr/zZrjOvF
MK8QyHgsajkr1m2sJseQI82rBxY9b9eWsqZnAQl6zwHQPAECBAgQIECgVIHWF1re5CZNkppPXs/f
s/KaT3HPCu597rPyPua85D23G10GfuGFEZe7XFP5XAtk3n0yWc6Hy42SybWOl++PHj73l38Z8cUv
Nlvmvlmx3nffWXs26zL5+trXmgp7VnNzuelNm0v6Z3048OAHN5d95/aHHhqR1ftPfSpfNRXuPGbe
u7/X7n+u53Hz6oRf//Vm/Tx/Z8X3K19pLvEf9SsvL8+rBTLRzlsFRksbr9E+D3hAc2VDvs6K+i1u
0Xwoka8zec8/v//7EVe9ar7TxCKT3He9a3aMm60j2vR/tM+sn7PGuF4M2/RltXZmxbqN1eSxN3re
zrKyrleBfXptXeMECBAgQGCJBQ7aPsc/3jcyvtMvii1vYyP9W2PfC4+/eI013l42gdb3oOcAs2r6
mMc0f/J1JoNZ5cvkOi9x/rM/y3ebpC6rpn/zNxF5H23eMzxK1pst9vw7E8F59smK77xLVuaf97yI
fFJ5VrHzoXR5mfbv/m7z+3rHyb7nkpX+yeUhD5l8tefvV7vayvfyw4ms1OaSx9xn9z/TJx+0l+9f
73p73sef76+2ZDU/j5GXl08uo37mlQNZTc+ljVezR/Ohy+j3/JmX8o/6n88UyCVvEcgn4I+WXJ+J
ZV4VsN5D+9r0f3T80c/V7uCdNcb1Yvjc527Mclas21hNjmGj5+3Iys/iBCToxYVEhwgQIECAAAEC
ZQi0qqBn9TkT8yc/eeVDzPKhcfknHyCXDwIbLccc09y3/KQnNQ91y3t173jH0drVf867z6hivPpR
9nw37y9/7GMj8v7qM89sLk3PDwLyXu/pJHl670w4s728R7vNksnzWkt+UJFJZt5/P1nFzwfEtVny
GNP9ysvRc8kPUkZLW6/cb7Jfo+OMfo6Ol/fs56Xv08vBB0+/s/rrefs/vfeXv7znAwFHfZreNl/P
E8N5+7JaO7NiPdp+HqvRtqMxbOS8HR3Dz+IE9iquRzpEgAABAgQIECBQhECre9Czup2XAucTyldb
rnjFccU2q+p5OfcLXhDxO7/TPBQu7z8fVRNX23+RfVY7zvR755zTVMvzYWz5ULMXvrC51zvvA//A
B6a33vN1frCQydvk/eF5T3M+LC7vg19kyepoJtZnnTXeOx94d/bZ49fr/ZZPbJ8+Ru6Tjnnpf14t
sFXL6InqWTHPp7uP/uRVEvlwwKy2r7fM2//p2yLyafOzzqPV2l0vhvP2ZbVjr/feolYbPW/X65f1
vQlI0Huj1zABAgQIECBAoGyBVhX0TLCzCp0PssrLmvMS6nwyeT5J/IQTIt773uY+9BxyVlWzApsJ
Z26TVd28N/o//7P5mrPVWBbZZ7XjTL+XyVfef37yyRFf//r4aeS53ehJ59P7TL6+xz2aS+FPPbV5
4F3e93388c1l3JnwL7LkJfaZpD/1qc2T7POBcw9/eHPp+7zHy37lMU45pXlIX36IkFcw5Nd15b3h
syrg023k5ejnn9+Mb3Tv8/Q2k69/8Rcj7nCH5sOO/Iq8/MAijfMe9Ix33le/3jJv//Mr9f7f/2uc
8lL1dBpdar9eG6P168Vw3r6Mjtfm56JWGz1v2/TRtp0KzDE7Ou2PxggQIECAAAECBAoRaFVBzz7n
vbqZnObDzfLS8P32a77eKxOoTBTz+9Bzya9Wy+QzK+hZAc37vjMBz6e0/+3frv51aIvs07Q2++/8
+qoTT2z6nFXvvE8+LzfOe9IzeVpvycvR83vGMwnNh+Fd4xoRn/xkcyVBVmYXWbKan1/7lX3Lh8Pl
96Pn5e75ne7zVJ+zzUzA3/CG5oFs+UT3dM5bCPLhbqOvj5u3b/nd5/nhSY4vv75sniWfMJ6e+ZVn
+f312fd8CnrGfJ5l3v7nOfdf/xXxa7/WPJgw9/vt356nhfE268Vw3r6Mj9jut0WsNnretuuhrTsU
8D3oHWJrigABAgQKE9h9P99Gvgd9qx/gdt62i+I6u3YnOEu2bOQhcb4HfcmCvVZ38/vM8zLjfFJ4
JmlZic5kfXrJSmde6p4PLsukNJesQGcyudYT2BfZpzny7L/z/u78GrK8zzcT67xkv+2SVeYcRybE
m7VkYp52mUQee2yT7L7kJfMfPS9zz3HlU/IPP7xJ+uffe7xlXp6ecc0PSuZdsmqfV1LkV63lA+7y
w4u2yzz9z23ySo28bP/Sl27bwsrtZ8Vwnr6sPNr8rxa12ozzdv5e2rIDAQl6B8iaIECAAIFCBSTo
WxIYCfqWsPZy0IWe4t5LTytr9IILmg818n74rDznkk81P+qo5iqFvG/fQoBAlQJ7VTkqgyJAgAAB
AgQIENiwQKt70DfcmgP8j8Chhzb36+f91HmZ/d3v3vzM78F+6EP/ZzO/ECBQn4AEvb6YGhEBAgQI
ECBAYFMEWt+DvimtOsglAn/+583l4b/3exG/9EsRZ5wR8Vd/1XwfNyICBKoV2KfakRkYAQIECBAg
QIDAhgRU0DfEt/Gd88F5LmffuKMjEFgiAQn6EgVLVwkQIEBgOQU2ck/2RvbdbK2tfijeZvfX8TYu
4B70jRs6AgECBNoIuMS9jZZtCRAgQIAAAQIDElBBH1CwDZUAgSIEJOhFhEEnCBAgQIAAAQLlCbgH
vbyY6BEBAnULSNDrjq/RESBAgAABAgQWFli4gp4PNMuHnK22fPGLzfdyr7Yuv2f6S19abU379xZp
55/+KeK009q3ZQ8CBAhskoAEfZMgHYYAAQIECBAgUJvAQhX0//qviHzyeH5n9/TyzW9G3OIWEccd
t3LNrl0Rj398xMEHR1zzms3Pl7xk5TZtXi3azhFHRPzZn0V85CNtWrMtAQIENk1Agr5plA5EgAAB
AgQIEKhLYKEK+imnNN/ZfaMb7YmR3+H9ta/t+f6f/mlEJuTPfW7EZz4T8djHRjzmMRF/+7d7bjvP
O4u2s8/u5yf/wR9EPOpREfmhgYUAAQIdC0jQOwbXHAECBAgQIEBgWQRaV9C/852IF76wqaBPDzLf
//SnI25725VrfvjDiCc/OeL44yMysb7+9SOe+tSIo4+OeP7zm23f//6IV74yYseO8b7f/nbEa14T
8a//On4vf9tIO7n/b/92xKc+FfH2t+crCwECBDoVkKB3yq0xAgQIECBAgMDyCLSuoJ9zTsT3vhdx
m9usHOQnPhHxh38Y8apXRVzucivXfe5zET/4QcQ977ny/V/4hYjR8S572YiHP7ypbo+2yir7ox8d
sf/+o3ciNtpOHin7d9hhTfI/PrLfCBAg0ImA70HvhFkjBAgQIECAAIHlE2j9PeiZIF/lKiuT8KyQ
3//+EU96UsQtb7knQl7Snsu1rtX8HP2dlfRc8pL4I4+MOOmkiKc9LeJ+94vIY/7VXzUJ/zWu0Wy3
Ge1c97rNsW5wg4gzz2x+9zcBAgQ6FFBB7xBbUwQIECBAgACBZRJoXUH/5CcjRknuaKB5T3dWuU88
cfTOyp+f/3zzerISnu/kw+JyycQ7l6zA5wPmHvnI5hL6+9434gEPaNbl35vVTh7rhjeM+PrXI/Iy
egsBAgQ6FFBB7xBbUwQIECBAgACBZRJoXUHPBP0mNxkP8c1vjnj1qyM+/vGIvfdu3t+2LSL/jJa8
fD2XfPL65OXv+TT43Od612vW5+8vf3nEjW/cbDf5lPfNbCdbG7X5rW9FHHhg076/CRAg0IGABL0D
ZE0QIECAAAECBJZRoHUF/cc/jvjud8dDfdvbIr7//SapHr37ox81v2Vi/rKXNV+plu9kJX3yMves
YOdl7pe61GjPiL/5myZpz/vc89jHHtus2+x28vj5IcLVrjZu228ECBDoQECC3gGyJggQIECAAAEC
yyjQuoJ+6KHN16SNBpvfd37ve49eNT+f/vSIiy6KyK9jy69i23ff5s+HPhRxpzuNt33rWyPyQXGj
5cMfjvjjP4541rOah8flQ+Juf/smid7MdrK9886LuPa1I0bV/VEf/CRAgMAWC0jQtxjY4QkQIECA
AAECyyrQuoJ+u9tFnHxyxE9+EpHfKZ73cuefyeVFL4rIKvqd7zx+9z73aRL2o45q7jPPyvoHPhCR
SXoueR/6gx7UVOKf+MTmcvhM7h/2sIh3vGPz2mlai8gny09+ODB6308CBAhssYAEfYuBHZ4AAQIE
yhbYcfquxTt4+u4qoIVAxQKtK+h3vGPzMLisQOeT0OddMiHPe9Dvcpdmj7wX/bTTxq/ze9Izac4q
eyb+Bx8ccfrpEQ9+cMSLX9x83do8ba3XzugY554bca97jV75SYAAgc4Etu3+ZHQD/zLprJ8aIkCA
AAECWyJwwPGLf6HJQdt3X5o7x3Lh8RfPsVX5m3Qx3h3bd5YPoYezBY44oql2P+EJs7dbbe1XvhJx
wQURN7tZxH77rbbF5rw3q5382rd8EN2nP91c5r45LToKAQIE5hJY/F8lcx3eRgQIECBAoFyBrA5a
CBBYW2ChOZL3iWdVOy9zb7scckjE0UdvbXKefZrVzp/8SXPpfN6DbiFAgEDHAhL0jsE1R4AAAQLl
CLiIrJxY6EmZAgvNkXvcI+LIIyNe9aoyBzWrV1lZz69syw8ZLAQIEOhBQILeA7omCRAgQKAMgYWq
g2V0XS8IdCKw8Bx56UubJL2TXm5iI3lVzZln+u7zTSR1KAIE2glI0Nt52ZoAAQIEKhJYqDpY0fgN
hcB6AgvPkQMPjMh70ZdtyYfPHXbYsvVafwkQqEhAgl5RMA2FAAECBNoJLFwdbNeMrQksrYA5srSh
03ECBJZUQIK+pIHTbQIECBDYuMDC1cGNN+0IBJZCwBxZijDpJAECFQlI0CsKpqEQIECAQDsB1cF2
XrYenoA5MryYGzEBAv0KSND79dc6AQIECPQooDrYI76ml0LAHFmKMOkkAQIVCUjQKwqmoRAgQIBA
OwHVwXZeth6egDkyvJgbMQEC/QpI0Pv11zoBAgQI9CigOtgjvqaXQsAcWYow6SQBAhUJSNArCqah
ECBAgEA7AdXBdl62Hp6AOTK8mBsxAQL9CkjQ+/XXOgECBAj0KKA62CO+ppdCwBxZijDpJAECFQlI
0CsKpqEQIECAQDsB1cF2XrYenoA5MryYGzEBAv0KSND79dc6AQIECPQooDrYI76ml0LAHFmKMOkk
AQIVCUjQKwqmoRAgQIBAOwHVwXZeth6egDkyvJgbMQEC/QpI0Pv11zoBAgQI9CigOtgjvqaXQsAc
WYow6SQBAhUJSNArCqahECBAgEA7AdXBdl62Hp6AOTK8mBsxAQL9CkjQ+/XXOgECBAj0KKA62CO+
ppdCwBxZijDpJAECFQlI0CsKpqEQIECAQDsB1cF2XrYenoA5MryYGzEBAv0KSND79dc6AQIECPQo
oDrYI76ml0LAHFmKMOkkAQIVCUjQKwqmoRAgQIBAOwHVwXZeth6egDkyvJgbMQEC/QpI0Pv11zoB
AgQI9CigOtgjvqaXQsAcWYow6SQBAhUJSNArCqahECBAgEA7AdXBdl62Hp6AOTK8mBsxAQL9CkjQ
+/XXOgECBAj0KKA62CO+ppdCwBxZijDpJAECFQlI0CsKpqEQIECAQDsB1cF2XrYenoA5MryYGzEB
Av0KSND79dc6AQIECPQooDrYI76ml0LAHFmKMOkkAQIVCUjQKwqmoRAgQIBAOwHVwXZeth6egDky
vJgbMQEC/QpI0Pv11zoBAgQI9CigOtgjvqaXQsAcWYow6SQBAhUJSNArCqahECBAgEA7AdXBdl62
Hp6AOTK8mBsxAQL9CkjQ+/XXOgECBAj0KKA62CO+ppdCwBxZijDpJAECFQlI0CsKpqEQIECAQDsB
1cF2XrYenoA5MryYGzEBAv0KSND79dc6AQIECPQooDrYI76ml0LAHFmKMOkkAQIVCUjQKwqmoRAg
QIBAOwHVwXZeth6egDkyvJgbMQEC/QpI0Pv11zoBAgQI9CigOtgjvqaXQsAcWYow6SQBAhUJ7FPR
WAyFAAECBAi0Esjq4P7HbWu1zyIbH7R930V2sw+B3gVyjkjSew+DDhAgMCABFfQBBdtQCRAgQGCl
gMRjpYdXBKYFzJFpEa8JECCwtQIS9K31dXQCBAgQKFjA/bUFB0fXihAwR4oIg04QIDAgAQn6gIJt
qAQIECCwUkB1cKWHVwSmBcyRaRGvCRAgsLUCEvSt9XV0AgQIEChYQHWw4ODoWhEC5kgRYdAJAgQG
JCBBH1CwDZUAAQIEVgqoDq708IrAtIA5Mi3iNQECBLZWQIK+tb6OToAAAQIFC6gOFhwcXStCwBwp
Igw6QYDAgAQk6AMKtqESIECAwEoB1cGVHl4RmBYwR6ZFvCZAgMDWCkjQt9bX0QkQIECgYAHVwYKD
o2tFCJgjRYRBJwgQGJCABH1AwTZUAgQIEFgpoDq40sMrAtMC5si0iNcECBDYWoFtu//Du2trm3B0
AgQIECBQpkBWB/c/bluZnRtor3Zs3znQkZc57Jwj/qlYZmz0igCBOgVU0OuMq1ERIECAwBwCEo85
kGwyaAFzZNDhN3gCBHoQkKD3gK5JAgQIEChDwP21ZcRBL8oVMEfKjY2eESBQp4AEvc64GhUBAgQI
zCGgOjgHkk0GLWCODDr8Bk+AQA8CEvQe0DVJgAABAmUIqA6WEQe9KFfAHCk3NnpGgECdAhL0OuNq
VAQIECAwh4Dq4BxINhm0gDky6PAbPAECPQhI0HtA1yQBAgQIlCGgOlhGHPSiXAFzpNzY6BkBAnUK
SNDrjKtRESBAgMAcAqqDcyDZZNAC5sigw2/wBAj0ICBB7wFdkwQIECBQhoDqYBlx0ItyBcyRcmOj
ZwQI1CkgQa8zrkZFgAABAnMIqA7OgWSTQQuYI4MOv8ETINCDgAS9B3RNEiBAgEAZAqqDZcRBL8oV
MEfKjY2eESBQp4AEvc64GhUBAgQIzCGgOjgHkk0GLWCODDr8Bk+AQA8CEvQe0DVJgAABAmUIqA6W
EQe9KFfAHCk3NnpGgECdAhL0OuNqVAQIECAwh4Dq4BxINhm0gDky6PAbPAECPQhI0HtA1yQBAgQI
lCGgOlhGHPSiXAFzpNzY6BkBAnUK7FPnsIyKAAECBAisL6A6uL6RLYYtsHPnzmEDGD0BAgQ6FlBB
7xhccwQIECBQjoDqYDmx0JMyBfbea+8yO6ZXBAgQqFRAgl5pYA2LAAECBNYXUB1c38gWwxb46c6f
DhvA6AkQINCxgAS9Y3DNESBAgEA5AqqD5cRCT8oUMEfKjIteESBQr8C23fff7ap3eEZGgAABAgTW
Fsj/C3SZ+9o+1hAwR5wDBAgQ6FZABb1bb60RIECAQEECqoMFBUNXihQwR4oMi04RIFCxgAp6xcE1
NAIECBCYLaA6ONvHWgLmiHOAAAEC3QqooHfrrTUCBAgQKEhAdbCgYOhKkQLmSJFh0SkCBCoWUEGv
OLiGRoAAAQKzBVQHZ/tYS8AccQ4QIECgWwEV9G69tUaAAAECBQmoDhYUDF0pUsAcKTIsOkWAQMUC
KugVB9fQCBAgQGC2gOrgbB9rCZgjzgECBAh0K6CC3q231ggQIECgIAHVwYKCoStFCpgjRYZFpwgQ
qFhABb3i4BoaAQIECMwWUB2c7WMtAXPEOUCAAIFuBVTQu/XWGgECBAgUJKA6WFAwdKVIAXOkyLDo
FAECFQuooFccXEMjQIAAgdkCqoOzfawlYI44BwgQINCtgAp6t95aI0CAAIGCBFQHCwqGrhQpYI4U
GRadIkCgYgEV9IqDa2gECBAgMFtAdXC2j7UEzBHnAAECBLoVUEHv1ltrBAgQIFCQgOpgQcHQlSIF
zJEiw6JTBAhULKCCXnFwDY0AAQIEZguoDs72sZaAOeIcIECAQLcCKujdemuNAAECBAoSUB0sKBi6
UqSAOVJkWHSKAIGKBVTQKw6uoREgQIDAbAHVwdk+1hIwR5wDBAgQ6FZABb1bb60RIECAQEECqoMF
BUNXihQwR4oMi04RIFCxgAp6xcE1NAIECBCYLaA6ONvHWgLmiHOAAAEC3QqooHfrrTUCBAgQKEhA
dbCgYOhKkQLmSJFh0SkCBCoWUEGvOLiGRoAAAQKzBVQHZ/tYS8AccQ4QIECgWwEV9G69tUaAAAEC
BQmoDhYUDF0pUsAcKTIsOkWAQMUCKugVB9fQCBAgQGC2gOrgbB9rCZgjzgECBAh0K6CC3q231ggQ
IECgIAHVwYKCoStFCpgjRYZFpwgQqFhABb3i4BoaAQIECMwWUB2c7WMtAXPEOUCAAIFuBVTQu/XW
GgECBAgUJKA6WFAwdKVIAXOkyLDoFAECFQuooFccXEMjQIAAgdkCqoOzfawlYI44BwgQINCtgAp6
t95aI0CAAIGCBFQHCwqGrhQpYI4UGRadIkCgYgEV9IqDa2gECBAgMFtAdXC2j7UEzBHnAAECBLoV
UEHv1ltrBAgQIFCQgOpgQcHQlSIFzJEiw6JTBAhULKCCXnFwDY0AAQIEZguoDs72sZaAOeIcIECA
QLcCKujdemuNAAECBAoSUB0sKBi6UqSAOVJkWHSKAIGKBVTQKw6uoREgQIDAbAHVwdk+1hIwR5wD
BAgQ6FZABb1bb60RIECAQEECqoMFBUNXihQwR4oMi04RIFCxgAp6xcE1NAIECBCYLaA6ONvHWgLm
iHOAAAEC3QqooHfrrTUCBAgQKEhAdbCgYOhKkQLmSJFh0SkCBCoWUEGvOLiGRoAAAQKzBVQHZ/tY
S8AccQ4QIECgWwEV9G69tUaAAAECBQmoDhYUDF0pUsAcKTIsOkWAQMUCKugVB9fQCBAgQGC2gOrg
bB9rCZgjzgECBAh0K6CC3q231ggQIECgIAHVwYKCoStFCpgjRYZFpwgQqFhABb3i4BoaAQIECMwW
UB2c7WMtAXPEOUCAAIFuBVTQu/XWGgECBAgUJKA6WFAwdKVIAXOkyLDoFAECFQuooFccXEMjQIAA
gdkCqoOzfawlYI44BwgQINCtgAp6t95aI0CAAIGCBFQHCwqGrhQpYI4UGRadIkCgYgEV9IqDa2gE
CBAgMFtAdXC2j7UEzBHnAAECBLoVUEHv1ltrBAgQIFCQgOpgQcHQlSIFzJEiw6JTBAhULKCCXnFw
DY0AAQIEZguoDs72sZaAOeIcIECAQLcCKujdemuNAAECBAoSUB0sKBi6UqSAOVJkWHSKAIGKBVTQ
Kw6uoREgQIDAbAHVwdk+1hIwR5wDBAgQ6FZABb1bb60RIECAQEECqoMFBUNXihQwR4oMi04RIFCx
gAp6xcE1NAIECBCYLaA6ONvHWgLmiHOAAAEC3QqooHfrrTUCBAgQKEhAdbCgYOhKkQLmSJFh0SkC
BCoWUEGvOLiGRoAAAQKzBVQHZ/tYS8AccQ4QIECgWwEV9G69tUaAAAECBQmoDhYUDF0pUsAcKTIs
OkWAQMUCKugVB9fQCBAgQGC2gOrgbB9rCZgjzgECBAh0K6CC3q231ggQIECgIAHVwYKCoStFCpgj
RYZFpwgQqFhABb3i4BoaAQIECMwWUB2c7WMtAXPEOUCAAIFuBVTQu/XWGgECBAgUJKA6WFAwdKVI
AXOkyLDoFAECFQuooFccXEMjQIAAgdkCqoOzfawlYI44BwgQINCtgAp6t95aI0CAAIGCBFQHCwqG
rhQpYI4UGRadIkCgYgEV9IqDa2gECBAgMFtAdXC2j7UEzBHnAAECBLoVUEHv1ltrBAgQIFCQgOpg
QcHQlSIFzJEiw6JTBAhULKCCXnFwDY0AAQIEZguoDs72sZaAOeIcIECAQLcCKujdemuNAAECBAoS
UB0sKBi6UqSAOVJkWHSKAIGKBVTQKw6uoREgQIDAbAHVwdk+1hIwR5wDBAgQ6FZABb1bb60RIECA
QEECqoMFBUNXihQwR4oMi04RIFCxgAp6xcE1NAIECBCYLaA6ONvHWgLmiHOAAAEC3QqooHfrrTUC
BAgQKEhAdbCgYOhKkQLmSJFh0SkCBCoWUEGvOLiGRoAAAQKzBVQHZ/tYS8AccQ4QIECgWwEV9G69
tUaAAAECBQmoDhYUDF0pUsAcKTIsOkWAQMUCKugVB9fQCBAgQGC2gOrgbB9rCZgjzgECBAh0K6CC
3q231ggQIECgIAHVwYKCoStFCpgjRYZFpwgQqFhABb3i4BoaAQIECMwWUB2c7WMtAXPEOUCAAIFu
BVTQu/XWGgECBAgUJKA6WFAwdKVIAXOkyLDoFAECFQuooFccXEMjQIAAgdkCqoOzfawlYI44BwgQ
INCtgAp6t95aI0CAAIGCBFQHCwqGrhQpYI4UGRadIkCgYgEV9IqDa2gECBAgMFtAdXC2j7UEzBHn
AAECBLoVUEHv1ltrBAgQIFCQgOpgQcHQlSIFzJEiw6JTBAhULKCCXnFwDY0AAQIEZguoDs72sZaA
OeIcIECAQLcCKujdemuNAAECBAoSUB0sKBi6UqSAOVJkWHSKAIGKBVTQKw6uoREgQIDAbAHVwdk+
1hIwR5wDBAgQ6FZABb1bb60RIECAQEECqoMFBUNXihQwR4oMi04RIFCxgAp6xcE1NAIECBCYLaA6
ONvHWgLmiHOAAAEC3QqooHfrrTUCBAgQKEhAdbCgYOhKkQLmSJFh0SkCBCoWUEGvOLiGRoAAAQKz
BVQHZ/tYS8AccQ4QIECgWwEV9G69tUaAAAECBQmoDhYUDF0pUsAcKTIsOkWAQMUCKugVB9fQCBAg
QGC2gOrgbB9rCZgjzgECBAh0K6CC3q231ggQIECgIAHVwYKCoStFCpgjRYZFpwgQqFhABb3i4Boa
AQIECMwWUB2c7WMtAXPEOUCAAIFuBVTQu/XWGgECBAgUJKA6WFAwdKVIAXOkyLDoFAECFQuooFcc
XEMjQIAAgdkCqoOzfawlYI44BwgQINCtgAp6t95aI0CAAIGCBFQHCwqGrhQpYI4UGRadIkCgYgEV
9IqDa2gECBAgMFtAdXC2j7UEzBHnAAECBLoVUEHv1ltrBAgQIFCQgOpgQcHQlSIFzJEiw6JTBAhU
LKCCXnFwDY0AAQIEZguoDs72sZaAOeIcIECAQLcCKujdemuNAAECBAoS2Guv5v8GMwnJxU8OzoOV
82A0Ry6ZIP4iQIAAgS0XkKBvObEGCBAgQKB0gdFlvH7ufUmoOHDIEyHPg227/2chQIAAge4EXOLe
nbWWCBAgQIAAAQIECBAgQIDAmgIq6GvSWEGAAAECBAgQIECAAAECBLoTkKB3Z60lAgQIECBAgAAB
AgQIECCwpoAEfU0aKwgQIECAAAECBAgQIECAQHcCEvTurLVEgAABAgQIECBAgAABAgTWFJCgr0lj
BQECBAgQIECAAAECBAgQ6E5Agt6dtZYIECBAgAABAgQIECBAgMCaAhL0NWmsIECAAAECBAgQIECA
AAEC3QlI0Luz1hIBAgQIECBAgAABAgQIEFhTQIK+Jo0VBAgQIECAAAECBAgQIECgOwEJenfWWiJA
gAABAgQIECBAgAABAmsKSNDXpLGCAAECBAgQIECAAAECBAh0JyBB785aSwQIECBAgAABAgQIECBA
YE0BCfqaNFYQIECAAAECBAgQIECAAIHuBCTo3VlriQABAgQIECBAgAABAgQIrCkgQV+TxgoCBAgQ
IECAAAECBAgQINCdgAS9O2stESBAgAABAgQIECBAgACBNQUk6GvSWEGAAAECBAgQIECAAAECBLoT
kKB3Z60lAgQIECBAgAABAgQIECCwpoAEfU0aKwgQIECAAAECBAgQIECAQHcCEvTurLVEgAABAgQI
ECBAgAABAgTWFJCgr0ljBQECBAgQIECAAAECBAgQ6E5Agt6dtZYIECBAgAABAgQIECBAgMCaAhL0
NWmsIECAAAECBAgQIECAAAEC3QlI0Luz1hIBAgQIECBAgAABAgQIEFhTQIK+Jo0VBAgQIECAAAEC
BAgQIECgOwEJenfWWiJAgAABAgQIECBAgAABAmsKSNDXpLGCAAECBAgQIECAAAECBAh0JyBB785a
SwQIECBAgAABAgQIECBAYE0BCfqaNFYQIECAAAECBAgQIECAAIHuBCTo3VlriQABAgQIECBAgAAB
AgQIrCkgQV+TxgoCBAgQIECAAAECBAgQINCdgAS9O2stESBAgAABAgQIECBAgACBNQUk6GvSWEGA
AAECBAgQIECAAAECBLoTkKB3Z60lAgQIEChUYNu2bZf0zE8OeSI4D/Y8D0YmhU5h3SJAgEA1Att2
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
IFCpgAS90sAaFgECBAgQIEBgswRU0DdL0nEIECAwW0CCPtvHWgIECBAgQIDA4AVU0Ad/CgAgQKAj
AQl6R9CaIUCAAAECBAgsq8BCFfQzzojIh5xNLzt2RHz969Pvjl//6EcRn/hE853d43dX/pbfgf2l
L618b9FXX/xi8x3hq+2/Vjv/9E8Rp5222h7eI0CAwIYEPCRuQ3x2JkCAAAEC8wts5HvB529l67c8
aPu+W9+IFooSaP096P/1XxH55PG3v33PcTziERF77a4R/c3frFz3wx9GPPCBEW95S8TFFzfrbn/7
iFe+MuIa12he79oVcdxxEfkk829+M+KqV4046aSIRz1q5bHmfZXHuMUtIo44YmVf12snt7/f/SKy
fze/+byt2Y4AAQLrCqigr0tkAwIECBAgQIDAsAVaV9BPOaX5zu4b3aiB+8lPIs49N+JZz4p4wxtW
x8zE/cwzI1796ojzzot40YsiPv7xiAc8YLz9n/5pxEteEvHc50Z85jMRj31sxGMeE/G3fzveps1v
+X3iX/vannus184+u2tcf/AHzQcDmcxbCBAgsEkC23b/B9d/VTYJ02EIECBAYEkFtm2LA47btnDn
560oD62CvpHx7ti+c+F4xO54hn/eLO63yp6tKujf+U7ENa8Z8brXRdztbs3RnvOciD/8w/GRf+u3
VlbQM14HHRRxwgkR/+t/jbfLBDyT5S98IeJKV4q44hWbpDwT9NFym9tE7Nx9vpx9dsT73x9x/vkR
97xnxAEHNFt8+9tNdfwXfiHi8MNHe0W88IURL3hBxCGHRFzmMuMKelby12snj/K970Vc+coRr399
xN3vPj6u3wgQILABARX0DeDZlQABAgQIECAwBIFW9ZxzzmmS10ycR8vjH99ckp6XlF//+qN3xz+/
8pXm/WOOGb+Xv1396s3r738/4nOfi/jBD5rke3KrTLxHbV72shEPf3hT3R5tk0n+ox8dsf/+o3ea
e9zzA4NXvSricpcbv5+/zdNObpf7HXZYxGtek68sBAgQ2BSB3dfnWAgQIECAAAECBAisLdCqgp4P
eLvKVVYmvpe+dET+yWXvvZufk39f7WoRH/zg5DsR+TC5//N/Iq597SZ5f+Mbm/XXutbK7UYJf16q
fuSRzT3pT3tac494VsPzfvVMxEf3sed7979/xJOeFHHLW648Vr7KS+dzmdXOda/bbHODGzSX5Tev
/E2AAIENC6igb5jQAQgQIECAAAECdQu0qqB/8pMRowR2UZZ3vjMiK+P5sLmsUGdS//nPN0ebrITn
O3k5fS6ZeOeSlfF88NsjH9k8qO6+9115H3veO57HOPHEZvvpv+dtJ/e74Q2bJ9LnZfQWAgQIbIKA
BH0TEB2CAAECBAgQIFCzQKvvQc8EPaveiyz59Wu/+ZsJZefDAABAAElEQVQRd7lLxNFHR+SxMtnO
JS9fzyUvk59cMonPBP5612vezd9f/vLmvvW8TzwfKjda3vzm5iF0WVEfVfLzmQX5Z7TM205uP2rz
W98a7e0nAQIENiTgEvcN8dmZAAECBAgQIFC/QKsK+o9/HPHd77ZHySe250PlDjywedjbrW+98hgH
H9y8zgr35OXnmdTnZe6XutR4+/wKt0zAM0F/29sijj22WZe/5/3sN77xeNv83vVcMjF/2csi2rST
x8/kPi/RtxAgQGATBCTom4DoEAQIECBAgACBmgVa3YN+6KHj+7jboOT3iuf3mue96JPJ9ugYt7td
xL77RnzoQxF3utPo3Yi3vrW5HH70zoc/HPHHf9x8pVs+PC4fEpffV55JdH6H+r3vPdqy+fn0p0dc
dFFEfjVcfi1ctjFPO7l3fh1cXi0wqrqvPLJXBAgQaC0gQW9NZgcCBAgQIECAwLAEWlXQM5E++eSI
/O7z/L7weZZ8cno+nO0pT4k444w997jznZuvPrvPfZpE+qijmkvfs+L9gQ80SXrulfehP+hBTYX8
iU9sLofPpPthD4t4xzuae8bzvvHJJb9vPavo2cZoWa+d0XbZ77xX3kKAAIFNEpjzv5qb1JrDECBA
gACBQgV2nL77e5gXXU7fXX0b0tLFeE+fuCd4SLaFjrVVBf2Od2wewJbV5XzK+TzL+97XbJWV79WW
f/mXJhHOhDzvQc971HPJrzo77bTx6yc/ufmatKyy54cDebn66adHPPjBES9+cfN1a82es/9er53R
3ueeG3Gve41e+UmAAIENC2zb/YnoBv5FsuH2HYAAAQIECBQhcMDxey3cj4O2774kdo7lwuMvnmOr
8jfpYrw7tu8sH0IP1xY44oimkv2EJ6y9zUbW5PemX3BBxM1uFrHffhs50ux9Z7WTFf+8l/3Tn178
oXizW7eWAIEBCiz+r5EBYhkyAQIECNQp0OoJ1XUSGBWBmQKt50hWwrNinZe5b8VyyCHNU963MjnP
fs9q50/+pLl0ftEn1m+Fi2MSILD0AhL0pQ+hARAgQIDARgVcTLZRQfvXLtB6jtzjHhFHHhmRX2dW
45KV9fzKtrUuya9xzMZEgEAnAhL0Tpg1QoAAAQIlC7SuDpY8GH0jsAUCC82Rl760SdK3oD+9HzK/
Wu3MM5uvhOu9MzpAgEBNAhL0mqJpLAQIECCwkEDr6uBCrdiJwPIKLDRH8vvM8170Gpd8+Nxhh9U4
MmMiQKBnAQl6zwHQPAECBAj0L7BQdbD/busBgc4EzJHOqDVEgMDABSToAz8BDJ8AAQIEIhaqDoIj
MCABc2RAwTZUAgR6FZCg98qvcQIECBAoQUB1sIQo6EPJAuZIydHRNwIEahKQoNcUTWMhQIAAgYUE
VAcXYrPTgATMkQEF21AJEOhVQILeK7/GCRAgQKAEAdXBEqKgDyULmCMlR0ffCBCoSUCCXlM0jYUA
AQIEFhJQHVyIzU4DEjBHBhRsQyVAoFcBCXqv/BonQIAAgRIEVAdLiII+lCxgjpQcHX0jQKAmAQl6
TdE0FgIECBBYSEB1cCE2Ow1IwBwZULANlQCBXgUk6L3ya5wAAQIEShBQHSwhCvpQsoA5UnJ09I0A
gZoEJOg1RdNYCBAgQGAhAdXBhdjsNCABc2RAwTZUAgR6FZCg98qvcQIECBAoQUB1sIQo6EPJAuZI
ydHRNwIEahKQoNcUTWMhQIAAgYUEVAcXYrPTgATMkQEF21AJEOhVQILeK7/GCRAgQKAEAdXBEqKg
DyULmCMlR0ffCBCoSUCCXlM0jYUAAQIEFhJQHVyIzU4DEjBHBhRsQyVAoFcBCXqv/BonQIAAgRIE
VAdLiII+lCxgjpQcHX0jQKAmAQl6TdE0FgIECBBYSEB1cCE2Ow1IwBwZULANlQCBXgUk6L3ya5wA
AQIEShBQHSwhCvpQsoA5UnJ09I0AgZoEJOg1RdNYCBAgQGAhAdXBhdjsNCABc2RAwTZUAgR6FZCg
98qvcQIECBAoQUB1sIQo6EPJAuZIydHRNwIEahKQoNcUTWMhQIAAgYUEVAcXYrPTgATMkQEF21AJ
EOhVQILeK7/GCRAgQKAEAdXBEqKgDyULmCMlR0ffCBCoSUCCXlM0jYUAAQIEFhJQHVyIzU4DEjBH
BhRsQyVAoFcBCXqv/BonQIAAgRIEVAdLiII+lCxgjpQcHX0jQKAmAQl6TdE0FgIECBBYSEB1cCE2
Ow1IwBwZULANlQCBXgUk6L3ya5wAAQIEShBQHSwhCvpQsoA5UnJ09I0AgZoEJOg1RdNYCBAgQGAh
AdXBhdjsNCABc2RAwTZUAgR6FZCg98qvcQIECBAoQUB1sIQo6EPJAuZIydHRNwIEahKQoNcUTWMh
QIAAgYUEVAcXYrPTgATMkQEF21AJEOhVQILeK7/GCRAgQKAEAdXBEqKgDyULmCMlR0ffCBCoSUCC
XlM0jYUAAQIEFhJQHVyIzU4DEjBHBhRsQyVAoFcBCXqv/BonQIAAgRIEVAdLiII+lCxgjpQcHX0j
QKAmAQl6TdE0FgIECBBYSEB1cCE2Ow1IwBwZULANlQCBXgUk6L3ya5wAAQIEShBQHSwhCvpQsoA5
UnJ09I0AgZoEJOg1RdNYCBAgQGAhAdXBhdjsNCABc2RAwTZUAgR6Fdin19Y1ToAAAQIEChDI6uD+
x23b8p4ctH3fLW9DAwS2QiDniCR9K2QdkwABAisFVNBXenhFgAABAgMUkHgMMOiG3ErAHGnFZWMC
BAgsLCBBX5jOjgQIECBQi4D7a2uJpHFslYA5slWyjkuAAIGVAhL0lR5eESBAgMAABVQHBxh0Q24l
YI604rIxAQIEFhaQoC9MZ0cCBAgQqEVAdbCWSBrHVgmYI1sl67gECBBYKSBBX+nhFQECBAgMUEB1
cIBBN+RWAuZIKy4bEyBAYGEBCfrCdHYkQIAAgVoEVAdriaRxbJWAObJVso5LgACBlQIS9JUeXhEg
QIDAAAVUBwcYdENuJWCOtOKyMQECBBYWkKAvTGdHAgQIEKhFQHWwlkgax1YJmCNbJeu4BAgQWCkg
QV/p4VXNAv/+7xHPelbEve4Vcde7RjzucREf/eieIz755Ihzztnz/Zre2b494uyzxyM69dSID35w
/Hq939puv97xrCfQs4DqYM8B0HzxAuZI8SHSQQIEKhHYtvs/uLsqGYthEFhb4C//MuJRj4rYf/+I
o4+OuPjiiHe+M+JHP4p4+tMjTjppvO+lLhXxnOdEHHfc+L3afjvwwIgnPjHiKU9pRpZj/qM/ijjh
hPlG2nb7+Y5qKwK9CWR1cP/jtvXWvob3FNixfeeeb3qnN4GcI/7J2Bu/hgkQGJDAPgMaq6EOVeB9
74t48IMj7ne/iJe/POKyl20kMjn/vd9rEvRb3SriLncZqlDEZz8bccAB84+/7fbzH9mWBHoRyMTj
gONdVNYLvkaXQkByvhRh0kkCBCoQkKBXEERDWEfgyU+OuOpVI/7v/424zGXGG2cV+LTTIt72toi/
/us9E/Rzz414+9sjfvCDiDvfOeJmNxvv+9rXRhx5ZFORf+UrIx72sIisSl9wQcSb39z8vMENIo49
NuIKVxjv9+pXN8fJtv/u75p1v/IrEQcd1FT087Lza14z4jd/M+Lylx/v993vRpxxRkT26Ygjmv5M
rh9vOf7tvPMi3vjG5iqB29wm4phjxuumf8tL/W90o5Vtfu5zEW96U8R3vhNxt7s1Vx7svXez5/T2
Oa78kCOXt7414nvfi7jTnSJufvPmvdHf6ZOmGYe8zSC3++pXI7J/FgI9Cqig94iv6aUQUEFfijDp
JAECFQi4xL2CIBrCDIFMbLMynEl6XrY+z5LJ8+1vH3HWWU3S+ulPN5fEv+UtTaKax8hkPCvyf/EX
ET/5SUTe3/6ZzzTvZYJ9/es393TvviQw3vGO5ji5Xx47k91877rXjfi3f4v4uZ+LuMc9Iv7sz5rt
/vVfm2T4ve/NPZptfvVXI7785eb93Odnf7ZJ2PMYqy0PelDzQcFtb9tUxzOxz0vYn/a0Zuv1LnHP
sd7//hFXuUrE1a8e8f73R/z8zzdjyisQchyTl8Tn67y3P8eV22UCn7cRZIKfH0Dkkh8wpNnP/EwT
k//4j4hb3zriW9+K+PjHm238TaBHARX0HvFXadol7qugeIsAAQIEqhfYq/oRGuCwBfJS7Fyufe3m
57x/f+QjER/7WPMnq77XulZEVsonl5e+tEn6v/nNpkL/iEdE/PIvR3ziExGvf31EJvZXulJEvj+5
5CX3eexPfjLiDW9oqu2ZyGYCnonq6adH5DZf+lLsvuEv4qEPbSrsX/hCxLvfHZGV7axAP/rRk0cd
//75zzd9fdnLIv7+75sPDvKYz39+xEUXjbdb67fvfz/ikY9sKuDZ1nveE5Ee+cFAXmmw1pKV8X/8
x6bv+YFFfvDwmtc0W2elPB2yav6NbzQfGuS6PLaFQAECWR20ECCwtoA5sraNNQQIENhMAQn6Zmo6
VnkCP/xh06crXrFd3x7wgHHV+8pXjrjFLZoEdfIoeQl3Pgk+L2HPy+S/8pXmUvfRP/TzEvSsZOfT
0TOJHy157MMOa17lA+tyyepzVqtzyep9LpngZ2Kcf37/95sPAfL9bC+T3Xe9K2LHjnxn5bJzZ/M6
H4z3xS82v2c/s2K9774rt13tVSbaX/ta8xC50VhuetOIV7xi9gcdeZ9/Xn6fy6GHRmT1/lOfuuTl
JZX1PGY+RX+v3f/ZyeP+xm9E/PqvN+v9TaBnAffX9hwAzRcvYI4UHyIdJECgEgEJeiWBNIw1BPI+
8FyyOr3WklX2f/mXlWvzMvXJJS/rznvRJ5fb3W78KivN++zTXII+fjfixjduXmVVe7RMHnu//Zp3
J+9vHyXFeYl4XjafS16anmMZ/cnL9TMRz2r09JKXvT/veREf+EBTxc4PA57whCZZHx17ep/J13nv
ei6jvjevIh7ykIg73GH0as+fV7vayvcud7mxWR4zfa5znZXbXO96K197RaAnAdXBnuA1uzQC5sjS
hEpHCRBYcoHd/2K2EKhYIKvfeQ963kOdVejp5ac/bR6elglyPtxttMxTaZ5OdvNy9Dze5JKXx+eS
D4EbLZmozruM2sivQ8vL7KeXgw+efqd5nV+h9tjHRvzDP0SceWZzaXo+wT4voZ9OkqePkIl/tjs9
luntpl/PGlc+XC598oqGSdt8QJyFQAECnuJeQBB0oWgBFfSiw6NzBAhUJKCCXlEwDWUNgXzCet4T
/s//vOcGeU91Xpqel5hvZMnKdia0Z5218ih5eXtekp73Yy+yjC6FHz1JPp8mn3/yXvLXvW78lXGT
xz7nnIjf/d3mYWz5cLkXvrC51zvvA8+q+npLPuQtk+nJ+8PzvvR8WNy8D9qbbiOr+tM++XC9fGq9
hUABAqqDBQRBF4oWMEeKDo/OESBQkYAEvaJgGsoaAnnfcz4kLu/tfvGLI/Ip6fnAs/yKtXwAWya8
ea/4RpZ8Cnsmoaec0nxtWCa4+UC3/Dq2rNxPVo3btPOLv9hcVp5Jdn7IkIly3lue96DnJfB5P/f0
kh8W5DYnnxzx9a+Pn0Cf2+VXqa235FhueMOIU09tHlSXH2Acf3xzOX0m/Iss+eT69HnqU5uvl0v/
hz88YnQ5/SLHtA+BTRRQHdxETIeqUsAcqTKsBkWAQIECq/zrvsBe6hKBjQhc+tLNd4zf8Y4Rj3lM
c2/14YdH5GXjmXjm13+NLiVftJ1MwPOJ7PnQtkMOicj7r7O9fCDc6KvNFj12Pj0+q9f3vnfzvet5
RUA+Lf4FL1j9iPkVaiee2DyQLffLr2TLsT772RGZ8K+35OXoebl/fhiQ98tf4xrNE+fzu86zur7I
kl+tll/dln3Lh8Pl96Pn5e45lry/30KgZwHVwZ4DoPniBcyR4kOkgwQIVCLge9ArCaRhzClw4YXN
d5bnZedZJR49pG3O3dfdLC/jzqevZzv5IUAmpJuxZEU+HzSXX7WWD1bLpHm9Je/vzr7khw+ZWOf9
+G2X889vLpXPDx02a8nEPN3zg4Bjj20+dHjJSzbr6I5DYGEB34O+MN2W7Oh70LeE1UEJECBAoHAB
CXrhAdI9AlUIXHBBc3l9XqqfVfNc8sn3Rx0V8dznRvzO7zTv+ZtATwJZHdz/uN0fZlmKEZCgFxOK
SzqSc8Rl7mXFRG8IEKhTYK86h2VUBAgUJXDooRH3uU9z33leZn/3uzeX2+d3yedzACwEehaQePQc
AM0XL2COFB8iHSRAoBIBFfRKAmkYBJZCIC+Zf+c7I/KJ8nkf+i1v2Xw/+lJ0XidrFlBBLy+6Kuhl
xUQFvax46A0BAvUKSNDrja2RESBAgAABAgQ2RSAr6JmkWwgQIEBgawVc4r61vo5OgAABAksgIPFY
giDpYq8Ce++1+8GeFgIECBDYcgEJ+pYTa4AAAQIEShfYuXNn6V3UPwK9Cvx05+5vKbEQIECAwJYL
SNC3nFgDBAgQIFC6gOpg6RHSv74FzJG+I6B9AgSGIuAe9KFE2jgJECBAYE0B99euSWMFgUsEzBEn
AgECBLoRUEHvxlkrBAgQIFCwgOpgwcHRtSIEzJEiwqATBAgMQEAFfQBBNkQCBAgQmC2gOjjbx1oC
5ohzgAABAt0IqKB346wVAgQIEChYQHWw4ODoWhEC5kgRYdAJAgQGIKCCPoAgGyIBAgQIzBZQHZzt
Yy0Bc8Q5QIAAgW4EVNC7cdYKAQIECBQsoDpYcHB0rQgBc6SIMOgEAQIDEFBBH0CQDZEAAQIEZguo
Ds72sZaAOeIcIECAQDcCKujdOGuFAAECBAoWUB0sODi6VoSAOVJEGHSCAIEBCKigDyDIhkiAAAEC
swVUB2f7WEvAHHEOECBAoBsBFfRunLVCgAABAgULqA4WHBxdK0LAHCkiDDpBgMAABFTQBxBkQyRA
gACB2QKqg7N9rCVgjjgHCBAg0I2ACno3zlohQIAAgYIFVAcLDo6uFSFgjhQRBp0gQGAAAiroAwiy
IRIgQIDAbAHVwdk+1hIwR5wDBAgQ6EZABb0bZ60QIECAQMECqoMFB0fXihAwR4oIg04QIDAAARX0
AQTZEAkQIEBgtoDq4GwfawmYI84BAgQIdCOggt6Ns1YIECBAoGAB1cGCg6NrRQiYI0WEQScIEBiA
gAr6AIJsiAQIECAwW0B1cLaPtQTMEecAAQIEuhFQQe/GWSsECBAgULCA6mDBwdG1IgTMkSLCoBME
CAxAQAV9AEE2RAIECBCYLaA6ONvHWgLmiHOAAAEC3QiooHfjrBUCBAgQKFhAdbDg4OhaEQLmSBFh
0AkCBAYgoII+gCAbIgECBAjMFlAdnO1jLQFzxDlAgACBbgRU0Ltx1goBAgQIFCygOlhwcHStCAFz
pIgw6AQBAgMQUEEfQJANkQABAgRmC6gOzvaxloA54hwgQIBANwIq6N04a4UAAQIEChZQHSw4OLpW
hIA5UkQYdIIAgQEIqKAPIMiGSIAAAQKzBVQHZ/tYS8AccQ4QIECgGwEV9G6ctdKXwLZtfbWs3T4F
xL1P/aVsW3VwKcOm0x0KmCMdYmuKAIFBC0jQBx3+rRn8tv9OjvxsPhzgwCFn2uR5MPp9a2agoy4i
8NOdP11kN/sQGIyAOTKYUBsoAQI9C7jEvecA1Nr8AceX8dnPjtN3xQHHqaLv2L6z1lNt9XHlh0S7
dq2+zrsEVhHYa9tesXPXwObJKg7eIrCWgDmyloz3CRAgsLkCZWRRmzsmR+tZQHWw5wBovngBc6S8
EKkOlhcTPSpLwBwpKx56Q4BAvQIS9Hpj29vI8kEyFgIE1hYwR9a26WuN+2v7ktfusgiYI8sSKf0k
QGDZBSToyx7BAvuvOlhgUHSpKAFzpKhwXNIZ1cHyYqJHZQmYI2XFQ28IEKhXQIJeb2x7G5nqYG/0
Gl4SAXOkvECpDpYXEz0qS8AcKSseekOAQL0CEvR6Y9vbyFQHe6PX8JIImCPlBUp1sLyY6FFZAuZI
WfHQGwIE6hWQoNcb295GpjrYG72Gl0TAHCkvUKqD5cVEj8oSMEfKiofeECBQr4AEvd7Y9jYy1cHe
6DW8JALmSHmBUh0sLyZ6VJaAOVJWPPSGAIF6BSTo9ca2t5GpDvZGr+ElETBHyguU6mB5MdGjsgTM
kbLioTcECNQrIEGvN7a9jUx1sDd6DS+JgDlSXqBUB8uLiR6VJWCOlBUPvSFAoF4BCXq9se1tZKqD
vdFreEkEzJHyAqU6WF5M9KgsAXOkrHjoDQEC9QpI0OuNbW8jUx3sjV7DSyJgjpQXKNXB8mKiR2UJ
mCNlxUNvCBCoV0CCXm9sexuZ6mBv9BpeEgFzpLxAqQ6WFxM9KkvAHCkrHnpDgEC9AhL0emPb28hU
B3uj1/CSCJgj5QVKdbC8mOhRWQLmSFnx0BsCBOoVkKDXG9veRqY62Bu9hpdEwBwpL1Cqg+XFRI/K
EjBHyoqH3hAgUK/Att3/UNxV7/CMrA+BrA7uf9y2hZs+aPu+C+87veN52y6K6+zab/rtpXx94fEX
L9zvHdt3LrzvUu64+xyMgv/TlnPEf3rLOrMyHq5sKCsmelOWgDlSVjz0hgCBegVU0OuNbW8jk3j0
Rq/hJREwR8oLlOpgeTHRo7IEzJGy4qE3BAjUKyBBrze2vY1MFao3eg0viYA5Ul6g3F9bXkz0qCwB
c6SseOgNAQL1CkjQ641tbyNTHeyNXsNLImCOlBco1cHyYqJHZQmYI2XFQ28IEKhXQIJeb2x7G5nq
YG/0Gl4SAXOkvECpDpYXEz0qS8AcKSseekOAQL0CEvR6Y9vbyFQHe6PX8JIImCPlBUp1sLyY6FFZ
AuZIWfHQGwIE6hWQoNcb295GpjrYG72Gl0TAHCkvUKqD5cVEj8oSMEfKiofeECBQr4AEvd7Y9jYy
1cHe6DW8JALmSHmBUh0sLyZ6VJaAOVJWPPSGAIF6BSTo9ca2t5GpDvZGr+ElETBHyguU6mB5MdGj
sgTMkbLioTcECNQrIEGvN7a9jUx1sDd6DS+JgDlSXqBUB8uLiR6VJWCOlBUPvSFAoF6BfeodmpH1
JZDVwf2P27blzV94/MVztTHvdnMdbAs2Omj7vltwVIcsWSDniCS9rAipDpYVD70pT8AcKS8mekSA
QJ0CKuh1xrXXUUk8euXX+BIImCPlBUl1sLyY6FFZAuZIWfHQGwIE6hWQoNcb295G5v7a3ug1vCQC
5kh5gVIdLC8melSWgDlSVjz0hgCBegUk6PXGtreRqQ72Rq/hJREwR8oLlOpgeTHRo7IEzJGy4qE3
BAjUKyBBrze2vY1MdbA3eg0viYA5Ul6gVAfLi4kelSVgjpQVD70hQKBeAQl6vbHtbWSqg73Ra3hJ
BMyR8gKlOlheTPSoLAFzpKx46A0BAvUKSNDrjW1vI1Md7I1ew0siYI6UFyjVwfJiokdlCZgjZcVD
bwgQqFdAgl5vbHsbmepgb/QaXhIBc6S8QKkOlhcTPSpLwBwpKx56Q4BAvQIS9Hpj29vIVAd7o9fw
kgiYI+UFSnWwvJjoUVkC5khZ8dAbAgTqFZCg1xvb3kamOtgbvYaXRMAcKS9QqoPlxUSPyhIwR8qK
h94QIFCvgAS93tj2NjLVwd7oNbwkAuZIeYFSHSwvJnpUloA5UlY89IYAgXoFtu2u5Oyqd3hG1ovA
tm29NKtRAksl4D+9RYVrr217xc5dO4vqk84QKEnAHCkpGvpCgEDNAvvUPDhj60cg0/P9j1s8ST9o
+75zdfzC4y9ed7sdp++KAzbQl3Ub2IQNNnO8a3Vnx/aBJR75IVHBCXBW0H0yutbZ2s/7qoP9uGt1
eQTMkeWJlZ4SILDcAi5xX+74Fdl7F2UUGRadKkjAHCkoGP/dFffXlhcTPSpLwBwpKx56Q4BAvQIS
9Hpj29vI3F/bG72Gl0TAHCkvUKqD5cVEj8oSMEfKiofeECBQr4AEvd7Y9jYy1cHe6DW8JALmSHmB
Uh0sLyZ6VJaAOVJWPPSGAIF6BSTo9ca2t5GpDvZGr+ElETBHyguU6mB5MdGjsgTMkbLioTcECNQr
IEGvN7a9jUx1sDd6DS+JgDlSXqBUB8uLiR6VJWCOlBUPvSFAoF4BCXq9se1tZKqDvdFreEkEzJHy
AqU6WF5M9KgsAXOkrHjoDQEC9QpI0OuNbW8jUx3sjV7DSyJgjpQXKNXB8mKiR2UJmCNlxUNvCBCo
V0CCXm9sexuZ6mBv9BpeEgFzpLxAqQ6WFxM9KkvAHCkrHnpDgEC9AhL0emPb28hUB3uj1/CSCJgj
5QVKdbC8mOhRWQLmSFnx0BsCBOoVkKDXG9veRqY62Bu9hpdEwBwpL1Cqg+XFRI/KEjBHyoqH3hAg
UK+ABL3e2PY2MtXB3ug1vCQC5kh5gVIdLC8melSWgDlSVjz0hgCBegUk6PXGtreRqQ72Rq/hJREw
R8oLlOpgeTHRo7IEzJGy4qE3BAjUKyBBrze2vY1MdbA3eg0viYA5Ul6gVAfLi4kelSVgjpQVD70h
QKBeAQl6vbHtbWSqg73Ra3hJBMyR8gKlOlheTPSoLAFzpKx46A0BAvUKSNDrjW1vI1Md7I1ew0si
YI6UFyjVwfJiokdlCZgjZcVDbwgQqFdAgl5vbHsbmepgb/QaXhIBc6S8QKkOlhcTPSpLwBwpKx56
Q4BAvQIS9Hpj29vIVAd7o9fwkgiYI+UFSnWwvJjoUVkC5khZ8dAbAgTqFZCg1xvb3kamOtgbvYaX
RMAcKS9QqoPlxUSPyhIwR8qKh94QIFCvgAS93tj2NjLVwd7oNbwkAuZIeYFSHSwvJnpUloA5UlY8
9IYAgXoFJOj1xra3kakO9kav4SURMEfKC5TqYHkx0aOyBMyRsuKhNwQI1CsgQa83tr2NTHWwN3oN
L4mAOVJeoFQHy4uJHpUlYI6UFQ+9IUCgXgEJer2x7W1kqoO90Wt4SQTMkfICpTpYXkz0qCwBc6Ss
eOgNAQL1CkjQ641tbyNTHeyNXsNLImCOlBco1cHyYqJHZQmYI2XFQ28IEKhXQIJeb2x7G5nqYG/0
Gl4SAXOkvECpDpYXEz0qS8AcKSseekOAQL0CEvR6Y9vbyFQHe6PX8JIImCPlBUp1sLyY6FFZAuZI
WfHQGwIE6hWQoNcb295GpjrYG72Gl0TAHCkvUKqD5cVEj8oSMEfKiofeECBQr4AEvd7Y9jYy1cHe
6DW8JALmSHmBUh0sLyZ6VJaAOVJWPPSGAIF6BSTo9ca2t5GpDvZGr+ElETBHyguU6mB5MdGjsgTM
kbLioTcECNQrIEGvN7a9jUx1sDd6DS+JgDlSXqBUB8uLiR6VJWCOlBUPvSFAoF4BCXq9se1tZKqD
vdFreEkEzJHyAqU6WF5M9KgsAXOkrHjoDQEC9QpI0OuNbW8jUx3sjV7DSyJgjpQXqL32av7vcBQb
P3ddEiQOHPJEyPNgNEfKm716RIAAgboEJOh1xbOI0agOFhEGnShYwBwpNzijy3j93PuSIHHgkCdC
ngfbdv/PQoAAAQJbLyBB33rjwbUwqrgMbuAGTGBOAXNkTqgONxvFZOeunZe06ieHPBGcB+PzYGTR
4bTUFAECBAYpIEEfZNi3dtCqg1vr6+jLL2COLH8MjYAAAQIECBAgsBUCEvStUB34MUeVqIEzGD6B
NQXMkTVprCBAgAABAgQIDFpAgj7o8G/N4FUHt8bVUesRMEfqiaWRECBAgAABAgQ2U0CCvpmajnWJ
gOqgE4HAbAFzZLaPtQQIECBAgACBoQrsM9SBG/fWCWR1cP/jtv5prwdt33f9QZx+Ucy13fpHsgWB
TRPIOSJJ3zROByJAgAABAgQIVCOggl5NKMsZiMSjnFjoSZkC5kiZcdErAgQIECBAgEDfAhL0viNQ
Yfvur60wqIa0qQLmyKZyOhgBAgQIECBAoBoBCXo1oSxnIKqD5cRCT8oUMEfKjIteESBAgAABAgT6
FpCg9x2BCttXHawwqIa0qQLmyKZyOhgBAgQIECBAoBoBCXo1oSxnIKqD5cRCT8oUMEfKjIteESBA
gAABAgT6FpCg9x2BCttXHawwqIa0qQLmyKZyOhgBAgQIECBAoBoBCXo1oSxnIKqD5cRCT8oUMEfK
jIteESBAgAABAgT6FpCg9x2BCttXHawwqIa0qQLmyKZyOhgBAgQIECBAoBoBCXo1oSxnIKqD5cRC
T8oUMEfKjIteESBAgAABAgT6Ftin7w5ovz6BrA7uf9y2hQd24fEXL7zvajtu9vFWa8N7BNoI5ByR
pLcRsy0BAgQIECBAYBgCKujDiHOno5R4dMqtsSUUMEeWMGi6TIAAAQIECBDoQECC3gHy0Jpwf+3Q
Im68bQXMkbZitidAgAABAgQIDENAgj6MOHc6StXBTrk1toQC5sgSBk2XCRAgQIAAAQIdCEjQO0Ae
WhOqg0OLuPG2FTBH2orZngABAgQIECAwDAEJ+jDi3OkoVQc75dbYEgqYI0sYNF0mQIAAAQIECHQg
IEHvAHloTagODi3ixttWwBxpK2Z7AgQIECBAgMAwBCTow4hzp6NUHeyUW2NLKGCOLGHQdJkAAQIE
CBAg0IGABL0D5KE1oTo4tIgbb1sBc6StmO0JECBAgAABAsMQkKAPI86djlJ1sFNujS2hgDmyhEHT
ZQIECBAgQIBABwIS9A6Qh9aE6uDQIm68bQXMkbZitidAgAABAgQIDENAgj6MOHc6StXBTrk1toQC
5sgSBk2XCRAgQIAAAQIdCEjQO0AeWhOqg0OLuPG2FTBH2orZngABAgQIECAwDAEJ+jDi3OkoVQc7
5dbYEgqYI0sYNF0mQIAAAQIECHQgIEHvAHloTagODi3ixttWwBxpK2Z7AgQIECBAgMAwBLbtruTs
GsZQjXKQAtu2RTjFhxf6wuOe/9mVpA/vtDRiAgQIECBAgMB6Airo6wlZ31pA4tGazA4DE9h7r70H
NmLDJUCAAAECBAgQmEdAgj6Pkm1aCezcubPV9jYmMDSBn+786dCGbLwECBAgQIAAAQJzCEjQ50Cy
STsB1cF2XrYenoA5MryYGzEBAgQIECBAYB4BCfo8SrZpJaA62IrLxgMUMEcGGHRDJkCAAAECBAjM
ISBBnwPJJu0EVAfbedl6eALmyPBibsQECBAgQIAAgXkEJOjzKNmmlYDqYCsuGw9QwBwZYNANmQAB
AgQIECAwh4AEfQ4km7QTUB1s52Xr4QmYI8OLuRETIECAAAECBOYRkKDPo2SbVgKqg624bDxAAXNk
gEE3ZAIECBAgQIDAHAIS9DmQbNJOQHWwnZethydgjgwv5kZMgAABAgQIEJhHQII+j5JtWgmoDrbi
svEABcyRJQ36tm1L2nHdJkCAAAECBJZFQIK+LJFaon6qDi5RsHS1FwFzpBf2jTe6a9fGj+EIBAgQ
IECAAIEZAhL0GThWLSagOriYm72GI2COLF+st/139dzP5ioCDhxyFk+eB6Pfl2926zEBAgTKEti2
a/dSVpf0ZtkF9tq2V+zctbOMYeQ/qp3iZcSiy14UHvei5kiXcVn2tpbgEvcDjhvOZfg7thfy/zPL
fl7rPwECBAgUJbBPUb3RmSoEVAerCKNBbKGAObKFuFt06KwO5qfZJSfAO073efsWhd9h5xC4ZI74
QHwOKZsQIEBgtoBL3Gf7WLuAgPtrF0Czy6AEzJHlC7eLzZYvZnrcrYA50q231ggQqFdAgl5vbHsb
mepgb/QaXhIBc2RJAjXRTffXTmD4lcAqAubIKijeIkCAwAICEvQF0OwyW0B1cLaPtQTMkeU7B1QH
ly9metytgDnSrbfWCBCoV0CCXm9sexuZ6mBv9BpeEgFzZEkCNdFN1cEJDL8SWEXAHFkFxVsECBBY
QECCvgCaXWYLqA7O9rGWgDmyfOeA6uDyxUyPuxXY0Bz5wQ8iTjst4n73i7jrXSMe+ciId7xjsQH8
5CcRL3pRxCMeEfHlLy92jNzr1FMjPvjBxfffvj3i7LPH+7c9Xtvtxy21+22zvNZr9eSTI845Z72t
yl2/FfGYPkfajn6ePr373RGnn972yLbvWUCC3nMAamxedbDGqBrTZgqYI5up2c2xVAe7cdbK8gos
PEe+/e2Iww+POOGEiPPPj7jKVSI++tGIu90t4oEPbA/y8pdHPO5xEZ/7XMTODXwV30knRbz3ve3b
H+3xzGdGnHXW6FVE2+O13X7cUrvfNstrutVnPzvixBPH755ySsSHPjR+Xfpv0/3finhMnyNtTebp
03veE/HiF7c9su17FvA1az0HoMbmszpYzPeg1whsTEsvYI4sXwgvqQ4uwfegL5+sHtcisHAF/RnP
aCrdn/1sxHWuM+Z41rMinva0iPveN+Ke9xy/v95vH/tYxA1vuDI5Xm+f1dZnfw44YLU1i73X9nht
t1+sVxGb5TXd/kc+EvG9702/uzyvp/vfVTzaCJXYpzb9t+2aAhL0NWmsWFRAdXBROfsNRcAcWb5I
Z3XQt4wvX9z0uDuBS+bIIt+D/uEPR9zyliuT8+z24x8f8YpXRGQSMrl885sR73xnxGc+E3HUURFH
Hz1OpPNy3qycX3RRxOtfH3HnO0fsv3/ErH3y2K99bcSRRzbbvvKVEQ97WFPFv9GNIi5/+cnWV/5+
3nkRb3xjxI9+FHGb20Qcc8zK9ZOv8qqA6eNlX9/0pojvfKe5YiDHsvfezV7T27/61RG3ulWz7q1v
bZLfO90p4uY3n2wl4oILIt7+9ojLXKa5XSCT5K9+tenfyi0j1vLKY7z5zc2xbnCDiGOPjbjCFcZ7
r+Z14IHj9W95S8SXvhTx4x9HpGd+yDJazj236V/e1pDxudnNRmuan9/9bsQZZ0Tkdkcc0WyzVgyy
j/vtF3H3u688Ro4/P1DN2yVyWe+Y0+M55JA9+z8djzzurPjl+vXOu9xmvWXWObZanz7/+Yh3vSsi
5+Jd7rL60dfzyL1mtbv6Ub27iQIucd9ETIdqBNxf60wgMFvAHJntU+LahauDJQ5GnwhsgcDCc+Tg
gyPe//4maZvsVyZlmWz8wR+M333d6yKuetWIJzwh4uMfb+5Vv9rVmmQ6t8ok9l//NeIb34h43vOa
BGm9fXK/Rz2quU/32teOeOpTI3bsiLj//ZvkOdevtjzoQRE3vWlTqc8k9A53iMhLltdapo+XSexN
bhLxkpc048/kPl9///v/v707gbYlKwsD/L/XDUIggDTzZEMYBSREAoaxg2BQhKXMgmGWKIPQMooM
QUGGsGiUeViRKFOUIRiZbGKIzBANgjKFoYFAIEyNMg/v5f6vrHXvrXfuvefsqrqnTu2vWO/dW+fU
3mfv7z+7ef/5q+o0PXSPv899mlPGMyHPhDKv6c6E/c/+bPsVM7G99rWb4377tyNOPz3i3/27iAc+
cPuYnb8t8nrjG5vEOE99/8xnmjn9+I9H/N3fbbdc5LX9bDO+vFwhk/TnPKf5ACOfz75zfC95SUSO
L8efyXS75Wuk6b3uFZGnZufYM4HPRHjRlv3d4Q4Rmey3W34gcbvbbV/vvkyf3fmkb3f83XgcFL9l
3nftmPf6edB7rDumNv753vi932vOJMlkfee2jMdBr7uzP7+PInB0lF51WrWA6mDV4Tf5JQSskSWQ
JnZI8fW1E5uH4RAYS6B4jTz+8U3lOqugmVDe854RL3pRU/XtDjZvJHfHOzaJX1aeP/zhiPOdL+Kl
L22OzKTy53++SQLzBm9XvnJz87n92rSv8cIXRjzlKU1Sn4n6flt+cJBJeY4zE+Ss5ueNuJ7xjKZ6
v1/bfC6T8LwRXlbAM/nMZDRPqc7k6ZWv3Lt1JrN/8RcRb3tbM/cf+7GIl7+8OT4T07wxXlaN8wOK
PPMgn8u+99q6Xlk5zj5+7uciPvCB5iyEj3wk4uIXbx7f2c9+XhmPm960qe5nHNrqe84xT6nPP+ec
E3HFKzaO2W9WfDMxP+20iE9/eru6n2cC3P/+O195+/d73KNJzvOMgnb70z9tPhDI51bpc+d8sjK/
aPztaywTv4Peq21fe/1c9T327W83fje/efPhQr6Xco2kebst47Hq67Z9+zmogAR9UE6dpYDqoPcB
gf0FrJH9fab4bHF1cIqTMSYCIwgUr5GsGmeSmndez98z2crk9QpXiLjTnXZfx5ynvOdx7WngX/lK
xAUv2FS895rTsm0yWc6by7XJ5F795ePtzef+8A+bKnM+lm0/97mI85wn9/bfMtH+whciHvaw5lTs
PDorxznW/T4cyKQzT/vO7fTTI25yk4gPfejE7om73mefee3+0a1/3ucp3r/4ixG/8AvN88v8nRXp
z3++OcU/2+eWZzJkRTUT7Txlu91W8Wrb3O1uzWn+uX+JS0Tc4AbblflMJPPPr/96c5ZEHpOxyA8M
sgqcZzV0t6zAX+UqEa961fYzWf2+2c2a5H+VPleZzzLxW/Z9tz3y3b+t+h7LDxUyPnmmRfsezA+9
8sOpdlvGY9XXbfv2c1ABCfqgnDpLAdVB7wMC+wtYI/v7TPHZ4urgFCdjTARGEOi1RrJq+oAHNBW/
rP7m13FlUpinCefp7O2WSV1WfTOZzWvLr3GNiEzS99uWbZMV02W3rMznKfTveEdEVrFzHDnOPCW8
TWz36yuv780tT/feud3zns2p8jsf2/l7ns6/c8sPJ9rTu7PPU089+Vr+TGCX3fKDkuwjr4XfubXj
zOpqu63i1bbJD112bhe4wPb48yyE3PLGgHnde/snz2rIpDHfF4u2fJ/kqd15H4BM4jN5zkp8bqv0
ucp8lonfsu+7ZqQn/73qeyyv2c/YZQV953bVq27vLeOx6utu9+63AQW2ImkjMKxAVgfdxX1YU73N
S8Aa2bx4nqgOLvMP782bmhETGESgqIKeCW0m5o985O6bmOVN4/JP3kAub2TWbmecEfH970c8/OHN
Td3y2uhuQtIe2/5cts2q6zur33lt95//ecTZZzenpueHB3lt/M670bfj2PkzE858vR/+cOejB/+e
CdheW55VkKcw56nObQU1j80bxK2yZR/dceXp6LnlBynttqpXtts5rraf9mfb36Mf3VS/28fbn3mv
gkVbfhVfft1YJuZ5s70f+ZGI29++OXKVPttjF71G97Fl4rfs+67b9879Vd5jOf6MW66PndvOD1Xa
OR5kvMrr7nwtvw8msM9KH+w1dFSZgOpgZQE33ZUFrJGVydbeIKuDW/9sLd5OO2uJ016Le//Hhs/8
XhzK6/Qd5472Xzmz84/JHc/5dbMETqyRTO5W2bLKmKdVX+5yuxP0to+LXWz7mu48xTpP585T4Nu7
dmeilFXB/Fq1RVtJm0X9dB/LCv9LXhLx/OdH3Pa2zZ88xT2rvllVPyhBzw8W0iqvD88bmuWW1zVn
+0z6H/Wo5rFV/s7KZyZob31rM55s+4MfRLzznRHnP/9yPeXrd/vIlu115Hm2wFhbnoWQW3t392av
iXeevr3XBzGnn95cL56nuecp3nlKd1bmcyvts2m9998HxS+T81Xfq91XW/U9lnPtvqeyz7w8IO/T
kNsyHqu+btOzvwcWODpwf7oj4Bp07wECBwi4Bv0AoAk+XVQdnOA8DInAWAJFayQTh0xI8wZdeQf0
rPZlBTBvcPaIR0T85V8216HnoPOGYlmBzYQzjznnnOY0+L//++27hHcnV9Km28ei/Uxk8/rzvFv2
F7/YjCfv6p1bfpXaQdutb918qPC0pzU3vMvrvs88szmNOxP+ku1Wt2puipd3oc8bpeVNwvJ65PZ0
7GX6zHFlov/kJzeV90z48gyGvK47rw3frwLe7T+/Q769E3p+kHLQ9pM/2Zze/6xnNTenyw8s0jiv
Qc9453X1e215bX4m8XkDvfb09jy2T5/7jf+g+A3xvlv1PZbvm/xgKGOXZ6bkhzPPfW5zT4HWbRmP
VV+37dvPQQX2ebcP+jo6q0hAdbCiYJtqkYA1UsS21ka9rq9d68i9OIHDESheI099apOc5s3NMsHI
77XO62azQp3JRn4fem6XvGTzFWj59VF57XVWzTMRyrtlZ/U0E/ruVtKm28ei/fzO78c8prkhW1b/
f/RHI/K04Sc9qUkKF7XZ+Viejp4JZSaheV325S8f8cEPxomvicvqbMmWp3bnhwQ5trw5XH4dW57u
nt/p3laUD+o3E/DXvKa5ljvv6J7OWbnOm7vlteGrbPnd5/nhSc5v0Q3eFvWVd8ZPz/zqtLzHQI49
7yifMd9vy+PzQ4Cspuf30e/cSvvcb/wHxW+I992q77FcN69+dXNPhjzTIe9+n5dcdON2kMeqr7vT
2u+DCRzZ+sRz6+MxG4HhBI4eOTqda9Dzehtv8eGCuyk9TTzuk1ojmxLTKYxz6311kYds/TelYDuM
U88/ceR78c+Ob/0jbYO2Pqe4n3vW1j/IbfMRyOuH83T1PE05k7SsRGfS0d3yFOg8fThvXJZJaW5Z
gc5kcq87sJe0aXre/++8vju/hiz/PycT6zxlf9Utq8w5j0yIh9oyMU+7TCTvetcm2c3vW192y9Pc
c155A75rXatJ+pdtu/O4732vuS48E9Zlt/w3W55JkV+1lje4yw8v+m6lfS4z/v3iN8T7btX3WJ5t
kPdByLvvZzU835vdbRmPVV+3+xr2ewlI0HvxabxIID/zKf4kfVGHfR6beKLWZ2ra7iMw8bhPao3s
w+ipbYET19du7UrQt02G+E2CPoTiNPo4sUbyH/629Qicc07zoUaeIp6V59zyruzXv35EnqXwK7/S
POZvAgQmL3B08iM0wI0TcH3txoXMgA9ZwBo5ZPABXs7JZgMg6mLWAtbImsN7+unN9fp53Xlea5w3
0suf+f3eO6/LXvMwvTwBAgcLSNAPNnLEigKur10RzOHVCVgjmxfyyZwVtHl0RlyJgDUygUD/wR80
p4f/6q9G/MzPNN8P/opXNN+PPYHhGQIBAssJnLrcYY4isLyA73he3sqRdQpYI5sX9xPVwUXX8m3e
VIyYwCgCKuijsK7ead44z+nsq7tpQWBCAiroEwrGXIaiOjiXSJrHWALWyFiy4/WrOjierZ7nIWCN
zCOOZkGAwPoFJOjrj8HsRuD62tmF1IQGFrBGBgY9hO5UBw8B2UtstIA1stHhM3gCBCYk4BT3CQVj
LkNRHZxLJM1jLAFrZCzZ8frN6uBh3J+6z13Nc/Z92w8leBhfKzfUWPUzjMCJNeIu7sNg6oUAgaoF
VNCrDv84k1cdHMdVr/MRsEY2L5aqg5sXMyM+XIHea+T1r4/Im5wt2j7zmeZ7uRc9l9/Z/dnPLnpm
tcfOPTfii1/cu813vhPxgQ803w2+11F7jeWv/iri6U/fq5XHCRAgsEtAgr6Lw84QAqqDQyjqY84C
1sjmRdf1tZsXMyM+XIFea+Qf/iEi7zye39nd3b70pYgb3CDiIQ/Z/UxW6x/84IhLXzriCldofj7v
ebuPWWXvvveNeNCDTm7x7W9H3P72ERe6UMR1rhNxsYtFnHHG7g8FDhpLtnvBCyLe976T+/cIAQIE
OgIS9A6I3f4CqoP9DfUwbwFrZPPi27s6uHlTNmICKwn0WiNPfnLznd3XvObJr5nf4f2FL5z8+HOe
E5EJ+VOfGvHRj0Y88IERD3hAxKtedfKxez3ygx9EfOxjEU98YsRrXrP4qEzczz474mUvi/jEJyKe
/eyI978/4m532z7+oLGcunVF6W/8RsSv/VqEywC23fxGgMBCAQn6QhYP9hFQHeyjp20NAtbI5kW5
V3Vw86ZrxARWFiheI1/7WsSzntVU0Luvmo9/5CMRN7nJ7meyqv3IR0aceWZEJvBXvWrEb/1WxA1v
GPGMZzTHvv3tEX/0RxF56nq7ffWrES9/ecTf/m3zSJ52frWrRTz2sYsT50ym3/jGiEc/OuKOd4y4
0pWaDwF++Zcj3va2iDz1fpmx5Kv9238b8aEPRbzpTe1o/CRAgMBCAQn6QhYP9hFQHeyjp20NAtbI
5kW5V3Vw86ZrxARWFiheI+96V8Q3vhFx4xvvfs283vs3fzPipS+NuOAFdz/38Y9HfOtbEbe5ze7H
f+InItr+LnCBiPvcp6lct0dllf3+94+48IWbR/IU+TyFPv9kkt/dPv/55vEzztj9zOUu1+x/85sR
y4wlj845XOMazQcEu3uzR4AAgV0CW+fc2AgMK6A6OKyn3uYnYI1sXkyzOngYd3HfPBkjJtAInFgj
JadvZyJ+yUvuTsKzKv1LvxTx8IdH/NRPnUycp7TndsUrNj/bv9skO0+Jv+51Ix73uKY6fpe7NJXu
V7yiSfgvf/mmxfnPH5F/cjvllObnzr8ve9mId7975yNNRf75z2+q6fl6r31t8/x+Y7nylZtjslqf
p8vbCBAgsI+ACvo+OJ4qE1AdLHPTqh4Ba2TzYl1cHdy8qRoxgSKB4jXywQ9GtAls+8p5vXZWuR/z
mPaR3T8/+clmv62Et8/mzeJyywQ/t6zA5w3m7ne/5hT6O99597XjzVHL//2Wt0RklT5vapenymdS
v+xY8lWufvXmTvF5qr2NAAECewhI0PeA8XC5gOpguZ2WdQhYI5sX5+LrazdvqkZMoEigeI1kgp7X
drfb617X3JAtT21vq9pbZ7BE/mm3PH09tzw1feeWiXO2ucpVmkfz9xe/OOLTn25Ooy+9y3t+/Vre
yf2Wt2yuc88xZ+Kf27JjyWPbcX35y7lnI0CAwEIBp7gvZPFgH4GsDh47fqxPF9oSmLWANbJ54T1R
HdyZIGzeFIyYwKgCxRX073434utf3x5b3pQtr+2+9rW3H8vvIM8tk+EXvaj5SrXcz+r1zlPLM5HO
087Pd758ttn++I+bpD2vc8++73rX9pnlfuYd2291q4iLXjQibzx3oxvtbpdf85bbMmPJMeR/R/LU
eRsBAgT2EJCg7wHj4XIB1cFyOy3rELBGNi/OrkHfvJgZ8eEKFF+DfvrpzdektcPN7zu/wx3avebn
4x8f8b3vReTXseVXsZ3nPM2f97wn4qd/evvYN7yhOQW9feS974343d9tvkYtbx6XN4m72c1WS5Dz
+vVLXaq5Fn1n4t++xk1vutxY8vj8mrY8W6Cturd9+EmAAIEdAhL0HRh+HUZAdXAYR73MV8Aa2bzY
qqBvXsyM+HAFiivomeA+4QkR+Z3k+X3heZ12/tm55XePZxX9FrfYfvROd2oS9utfvzndPCvr73hH
RCbpueV16He/e1OJf9jDmtPhM7m/970j3vzm5piD/s47tOcN6fJr1l7/+pOPzvFc7GIRB42lbZn9
5TXsNgIECOwjIEHfB8dTZQKqg2VuWtUjYI1sXqxV0DcvZkZ8uALFFfSb37y5GVxWl/Mu58tumZDn
Neh5XXhu+TVm+b3m7X5+T3omxFllz8Q/T0V/5jMj7nGPiOc+t/m6tabl3n/nd53nllX4Rdvf/E2T
cB80lrbtxz4WcbvbtXt+EiBAYKHAka1PPH1zzEIaD5YKHD1ydDrXoOe1Xt7ipaHc3HYTj/uk1sjm
RvnwR771vrrIQ7b+m1KwnXbW1im5S2xfOfP7Sxy1+JBzn3m8eHyLeyx/9FDme9ax8gFqOS2B61yn
qXY/9KGrjyu/q/yccyKud72I85539fZDtthvLFmJz+vqP/KR3TfFG/L19UWAwCwEjs5iFiYxKQHV
wUmFw2AmKGCNTDAoBwwpq4M2AgT2Fui1RrJCnVXtPM191e0yl2nurL7u5DzHvd9Yfv/3m9Prd96x
ftW5Op4AgSoEJOhVhPlwJ5nX19oIENhbwBrZ22aqzzjZbKqRMa6pCPRaI7e+dcR1rxuRX602xy0r
6/n1cXudKj/HOZsTAQLFAq5BL6bTcC8B1cG9ZDxOoBGwRjbvneAa9M2LmREfrkDxNejtMF/4wojP
frbdm9fPPAPn7LObRWbJLAAAQABJREFUr2qb18zMhgCBEQQk6COg1t6lO1TX/g4w/4MErJGDhKb3
/InqoNPcpxcYI5qMQK8Kes4iv2c8/8xxyxvUtd+XPsf5mRMBAoMKOMV9UE6dpYDqoPcBgf0FrJH9
fab4bK/ra6c4IWMiMLCANTIwqO4IEKhWQIJebejHm7jra8ez1fM8BKyRzYtj7+rg5k3ZiAmsJGCN
rMTlYAIECOwpIEHfk8YTpQKqg6Vy2tUiYI1sXqRVBzcvZkZ8uALWyOF6ezUCBOYrIEGfb2zXNjPV
wbXRe+ENEbBGNiRQO4apOrgDw68EFghYIwtQPESAAIECAQl6AZom+wuoDu7v41kC1sjmvQdUBzcv
ZkZ8uALWyOF6ezUCBOYrIEGfb2zXNjPVwbXRe+ENEbBGNiRQO4apOrgDw68EFghYIwtQPESAAIEC
AQl6AZom+wuoDu7v41kC1sjmvQdUBzcvZkZ8uALWyOF6ezUCBOYrIEGfb2zXNjPVwbXRe+ENEbBG
NiRQO4apOrgDw68EFghYIwtQPESAAIECAQl6AZom+wuoDu7v41kC1sjmvQdUBzcvZkZ8uALWyOF6
ezUCBOYrIEGfb2zXNjPVwbXRe+ENEbBGNiRQO4apOrgDw68EFghYIwtQPESAAIECAQl6AZom+wuo
Du7v41kC1sjmvQdUBzcvZkZ8uALWyOF6ezUCBOYrcOp8p2Zm6xI4cnRin/scObIuCq+7ToEJx/2U
OBLHjh9bp47XXlHgRHVwwu+pFafjcAKDC6igD06qQwIEKhWQoFca+DGnffzYsZjMJ+n5D+rjx8ec
rr6nKDDxuP/Qe3KK75p9x5T/TfNfkn2JPFm5wIk14r9tlb8LTJ8AgSEEJlbqHGJK+li3gOtr1x0B
rz91AWtk6hE6eXyqgyebeITATgFrZKeG3wkQIFAuIEEvt9NyDwHX1+4B42EC/yhgjWzeW2EyZwVt
Hp0RVyJgjVQSaNMkQGB0AQn66MT1vYDqYH0xN+PVBKyR1bymcLTq4BSiYAxTFrBGphwdYyNAYJME
JOibFK0NGavq4IYEyjDXJmCNrI2++IVVB4vpNKxEwBqpJNCmSYDA6AIS9NGJ63sB1cH6Ym7GqwlY
I6t5TeFo1cEpRMEYpixgjUw5OsZGgMAmCUjQNylaGzJW1cENCZRhrk3AGlkbffELqw4W02lYiYA1
UkmgTZMAgdEFJOijE9f3AqqD9cXcjFcTsEZW85rC0aqDU4iCMUxZwBqZcnSMjQCBTRKQoG9StDZk
rKqDGxIow1ybgDWyNvriF1YdLKbTsBIBa6SSQJsmAQKjC0jQRyeu7wVUB+uLuRmvJmCNrOY1haNV
B6cQBWOYsoA1MuXoGBsBApskIEHfpGhtyFhVBzckUIa5NgFrZG30xS+sOlhMp2ElAtZIJYE2TQIE
RheQoI9OXN8LqA7WF3MzXk3AGlnNawpHqw5OIQrGMGUBa2TK0TE2AgQ2SUCCvknR2pCxqg5uSKAM
c20C1sja6ItfWHWwmE7DSgSskUoCbZoECIwuIEEfnbi+F1AdrC/mZryagDWymtcUjlYdnEIUjGHK
AtbIlKNjbAQIbJKABH2TorUhY1Ud3JBAGebaBKyRtdEXv7DqYDGdhpUIWCOVBNo0CRAYXUCCPjpx
fS+gOlhfzM14NQFrZDWvKRytOjiFKBjDlAWskSlHx9gIENgkAQn6JkVrQ8aqOrghgTLMtQlYI2uj
L35h1cFiOg0rEbBGKgm0aRIgMLqABH104vpeQHWwvpib8WoC1shqXlM4WnVwClEwhikLWCNTjo6x
ESCwSQIS9E2K1oaMVXVwQwJlmGsTsEbWRl/8wqqDxXQaViJgjVQSaNMkQGB0AQn66MT1vYDqYH0x
N+PVBKyR1bymcLTq4BSiYAxTFrBGphwdYyNAYJMETt2kwRrrZgioDm5GnIxyfQLWyPrsS185q4PH
Sxuv0O60s86zwtGdQ5/5vejVvtOdXQKrCJxYI8cPY5WsMirHEiBAYPMEVNA3L2aTH7Hq4ORDZIBr
FrBG1hyAgpdXHSxA06QqAWukqnCbLAECIwpI0EfErbVr1cFaI2/eywpYI8tKTec419dOJxZGMk0B
a2SacTEqAgQ2T0CCvnkxm/yIVQcnHyIDXLOANbLmABS8vOpgAZomVQlYI1WF22QJEBhRQII+Im6t
XasO1hp5815WwBpZVmo6x6kOTicWRjJNAWtkmnExKgIENk9Agr55MZv8iFUHJx8iA1yzgDWy5gAU
vLzqYAGaJlUJWCNVhdtkCRAYUUCCPiJurV2rDtYaefNeVsAaWVZqOsepDk4nFkYyTQFrZJpxMSoC
BDZPQIK+eTGb/IhVBycfIgNcs4A1suYAFLy86mABmiZVCVgjVYXbZAkQGFFAgj4ibq1dqw7WGnnz
XlbAGllWajrHqQ5OJxZGMk0Ba2SacTEqAgQ2T0CCvnkxm/yIVQcnHyIDXLOANbLmABS8vOpgAZom
VQlYI1WF22QJEBhR4NQR+9Z1pQKqg5UG3rSXFrBGlqaazIFZHTzeYzRfOfP7PVov3/SwXmf5ETmy
FoETa+R4n1VSi5R5EiBAYH8BFfT9fTxbIHD0aPO2aj9N97P5BwsHDrmc8n3QrpGC5aXJmgTa9bum
l/eyBCYvYI1MPkQGSIDAhghI0DckUJs4zPY0Xj9PORE+DhzyjZDvgyNb/7NtloDrazcrXkZ7+ALW
yOGbe0UCBOYp4BT3ecZ1rbNqP0U/dvzYiXGs/ec/aqx9HFPxqGEcW6cjTz3ea12kXnxlgRP/Xdt6
X9kIEFgs0P5//+JnPUqAAAECywqooC8r5TgCBAgQqFZAdbDa0Jv4kgLWyJJQDiNAgMABAhL0A4A8
TYDABgq4UdEGBm3aQ1YdnHZ8jG79AtbI+mNgBAQIzENAgj6POJoFAQIECIwooDo4Iq6uZyFgjcwi
jCZBgMAEBCToEwiCIRAgQIDAtAVUB6cdH6Nbv4A1sv4YGAEBAvMQkKDPI45mQYAAAQIjCqgOjoir
61kIWCOzCKNJECAwAQEJ+gSCYAgECBAgMG0B1cFpx8fo1i9gjaw/BkZAgMA8BCTo84ijWRAgQIDA
iAKqgyPi6noWAtbILMJoEgQITEBAgj6BIBgCAQIECExbQHVw2vExuvULWCPrj4ERECAwDwEJ+jzi
aBYECBAgMKKA6uCIuLqehYA1MoswmgQBAhMQkKBPIAiGQIAAAQLTFlAdnHZ8jG79AtbI+mNgBAQI
zENAgj6POJoFAQIECIwooDo4Iq6uZyFgjcwijCZBgMAEBI5sfeJ5fALjMAQCBAgQIDBtgSNHIqb8
f5lTH9+0o2t0PQXyn5OS9J6ImhMgQGBLQAXd24AAAQIECBwgIPE4AMjT1QuccvSU6g0AECBAYAgB
CfoQivogQIAAgVkLHDt2bNbzMzkCfQV+eOyHfbvQngABAgS2BCTo3gYECBAgQOAAAdXBA4A8Xb2A
NVL9WwAAAQIDCUjQB4LUDQECBAjMV0B1cL6xNbNhBKyRYRz1QoAAAQm69wABAgQIEDhAQHXwACBP
Vy9gjVT/FgBAgMBAAhL0gSB1Q4AAAQLzFVAdnG9szWwYAWtkGEe9ECBAQILuPUCAAAECBA4QUB08
AMjT1QtYI9W/BQAQIDCQgAR9IEjdECBAgMB8BVQH5xtbMxtGwBoZxlEvBAgQkKB7DxAgQIAAgQME
VAcPAPJ09QLWSPVvAQAECAwkIEEfCFI3BAgQIDBfAdXB+cbWzIYRsEaGcdQLAQIEJOjeAwQIECBA
4AAB1cEDgDxdvYA1Uv1bAAABAgMJSNAHgtQNAQIECMxXQHVwvrE1s2EErJFhHPVCgAABCbr3AAEC
BAgQOEBAdfAAIE9XL2CNVP8WAECAwEACEvSBIHVDgAABAvMVUB2cb2zNbBgBa2QYR70QIEBAgu49
QIAAAQIEDhBQHTwAyNPVC1gj1b8FABAgMJCABH0gSN0QIECAwHwFVAfnG1szG0bAGhnGUS8ECBCQ
oHsPECBAgACBAwRUBw8A8nT1AtZI9W8BAAQIDCRw5PjWNlBfuiFAgAABArMUyP+rPHJ0Az7T9n/p
s3z/bcKkTqyRI0c2YajGSIAAgUkLSNAnHR6DI0CAAIEpCBw9cjSOHT82haEYA4FJClgjkwyLQREg
sIECEvQNDJohEyBAgMDhCqgOHq63V9s8AWtk82JmxAQITFNgA87XmyacUREgQIBAPQKur60n1mZa
JmCNlLlpRYAAga6ACnpXxD4BAgQIEOgIqA52QOwS6AhYIx0QuwQIECgUUEEvhNOMAAECBOoRUB2s
J9ZmWiZgjZS5aUWAAIGugAp6V8Q+AQIECBDoCKgOdkDsEugIWCMdELsECBAoFFBBL4TTjAABAgTq
EVAdrCfWZlomYI2UuWlFgACBroAKelfEPgECBAgQ6AioDnZA7BLoCFgjHRC7BAgQKBRQQS+E04wA
AQIE6hFQHawn1mZaJmCNlLlpRYAAga6ACnpXxD4BAgQIEOgIqA52QOwS6AhYIx0QuwQIECgUUEEv
hNOMAAECBOoRUB2sJ9ZmWiZgjZS5aUWAAIGugAp6V8Q+AQIECBDoCKgOdkDsEugIWCMdELsECBAo
FFBBL4TTjAABAgTqEVAdrCfWZlomYI2UuWlFgACBroAKelfEPgECBAgQ6AioDnZA7BLoCFgjHRC7
BAgQKBRQQS+E04wAAQIE6hFQHawn1mZaJmCNlLlpRYAAga6ACnpXxD4BAgQIEOgIqA52QOwS6AhY
Ix0QuwQIECgUUEEvhNOMAAECBOoRUB2sJ9ZmWiZgjZS5aUWAAIGugAp6V8Q+AQIECBDoCKgOdkDs
EugIWCMdELsECBAoFFBBL4TTjAABAgTqEVAdrCfWZlomYI2UuWlFgACBroAKelfEPgECBAgQ6Aio
DnZA7BLoCFgjHRC7BAgQKBRQQS+E04wAAQIE6hFQHawn1mZaJmCNlLlpRYAAga6ACnpXxD4BAgQI
EOgIqA52QOwS6AhYIx0QuwQIECgUUEEvhNOMAAECBOoRUB2sJ9ZmWiZgjZS5aUWAAIGugAp6V8Q+
AQIECBDoCKgOdkDsEugIWCMdELsECBAoFFBBL4TTjAABAgTqEVAdrCfWZlomYI2UuWlFgACBroAK
elfEPgECBAgQ6AioDnZA7BLoCFgjHRC7BAgQKBRQQS+E04wAAQIE6hFQHawn1mZaJmCNlLlpRYAA
ga6ACnpXxD4BAgQIEOgIqA52QOwS6AhYIx0QuwQIECgUUEEvhNOMAAECBOoRUB2sJ9ZmWiZgjZS5
aUWAAIGugAp6V8Q+AQIECBDoCKgOdkDsEugIWCMdELsECBAoFFBBL4TTjAABAgTqEVAdrCfWZlom
YI2UuWlFgACBroAKelfEPgECBAgQ6AioDnZA7BLoCFgjHRC7BAgQKBRQQS+E04wAAQIE6hFQHawn
1mZaJmCNlLlpRYAAga6ACnpXxD4BAgQIEOgIqA52QOwS6AhYIx0QuwQIECgUUEEvhNOMAAECBOoR
UB2sJ9ZmWiZgjZS5aUWAAIGugAp6V8Q+AQIECBDoCKgOdkDsEugIWCMdELsECBAoFFBBL4TTjAAB
AgTqEVAdrCfWZlomYI2UuWlFgACBroAKelfEPgECBAgQ6AioDnZA7BLoCFgjHRC7BAgQKBRQQS+E
04wAAQIE6hFQHawn1mZaJmCNlLlpRYAAga6ACnpXxD4BAgQIEOgIqA52QOwS6AhYIx0QuwQIECgU
UEEvhNOMAAECBOoRUB2sJ9ZmWiZgjZS5aUWAAIGugAp6V8Q+AQIECBDoCKgOdkDsEugIWCMdELsE
CBAoFFBBL4TTjAABAgTqEVAdrCfWZlomYI2UuWlFgACBroAKelfEPgECBAgQ6AioDnZA7BLoCFgj
HRC7BAgQKBRQQS+E04wAAQIE6hFQHawn1mZaJmCNlLlpRYAAga6ACnpXxD4BAgQIEOgIqA52QOwS
6AhYIx0QuwQIECgUUEEvhNOMAAECBOoRUB2sJ9ZmWiZgjZS5aUWAAIGugAp6V8Q+AQIECBDoCKgO
dkDsEugIWCMdELsECBAoFFBBL4TTjAABAgTqEVAdrCfWZlomYI2UuWlFgACBroAKelfEPgECBAgQ
6AioDnZA7BLoCFgjHRC7BAgQKBRQQS+E04wAAQIE6hFQHawn1mZaJmCNlLlpRYAAga6ACnpXxD4B
AgQIEOgIqA52QOwS6AhYIx0QuwQIECgUUEEvhNOMAAECBOoRUB2sJ9ZmWiZgjZS5aUWAAIGugAp6
V8Q+AQIECBDoCKgOdkDsEugIWCMdELsECBAoFFBBL4TTjAABAgTqEVAdrCfWZlomYI2UuWlFgACB
roAKelfEPgECBAgQ6AioDnZA7BLoCFgjHRC7BAgQKBRQQS+E04wAAQIE6hFQHawn1mZaJmCNlLlp
RYAAga6ACnpXxD4BAgQIEOgIqA52QOwS6AhYIx0QuwQIECgUUEEvhNOMAAECBOoRUB2sJ9ZmWiZg
jZS5aUWAAIGugAp6V8Q+AQIECBDoCKgOdkDsEugIWCMdELsECBAoFFBBL4TTjAABAgTqEVAdrCfW
ZlomYI2UuWlFgACBroAKelfEPgECBAgQ6AioDnZA7BLoCFgjHRC7BAgQKBRQQS+E04wAAQIE6hFQ
Hawn1mZaJmCNlLlpRYAAga6ACnpXxD4BAgQIEOgIqA52QOwS6AhYIx0QuwQIECgUUEEvhNOMAAEC
BOoRUB2sJ9ZmWiZgjZS5aUWAAIGugAp6V8Q+AQIECBDoCKgOdkDsEugIWCMdELsECBAoFFBBL4TT
jAABAgTqEVAdrCfWZlomYI2UuWlFgACBroAKelfEPgECBAgQ6AioDnZA7BLoCFgjHRC7BAgQKBRQ
QS+E04wAAQIE6hFQHawn1mZaJmCNlLlpRYAAga6ACnpXxD4BAgQIEOgIqA52QOwS6AhYIx0QuwQI
ECgUUEEvhNOMAAECBOoRUB2sJ9ZmWiZgjZS5aUWAAIGugAp6V8Q+AQIECBDoCKgOdkDsEugIWCMd
ELsECBAoFFBBL4TTjAABAgTqEVAdrCfWZlomYI2UuWlFgACBroAKelfEPgECBAgQ6AioDnZA7BLo
CFgjHRC7BAgQKBRQQS+E04wAAQIE6hFQHawn1mZaJmCNlLlpRYAAga6ACnpXxD4BAgQIEOgIqA52
QOwS6AhYIx0QuwQIECgUUEEvhNOMAAECBOoRUB2sJ9ZmWiZgjZS5aUWAAIGugAp6V8Q+AQIECBDo
CKgOdkDsEugIWCMdELsECBAoFFBBL4TTjAABAgTqEVAdrCfWZlomYI2UuWlFgACBroAKelfEPgEC
BAgQ6AioDnZA7BLoCFgjHRC7BAgQKBRQQS+E04wAAQIE6hE4erT5v8tMQnLzk4P3we510K6REwvE
XwQIECBQLCBBL6bTkAABAgRqE2hP4/XzlBOh58Ah3wj5Pjiy9T8bAQIECPQXcIp7f0M9ECBAgAAB
AgQIECBAgACB3gIq6L0JdUCAAAECBAgQIECAAAECBPoLSND7G+qBAAECBAgQIECAAAECBAj0FpCg
9ybUAQECBAgQIECAAAECBAgQ6C8gQe9vqAcCBAgQIECAAAECBAgQINBbQILem1AHBAgQIECAAAEC
BAgQIECgv4AEvb+hHggQIECAAAECBAgQIECAQG8BCXpvQh0QIECAAAECBAgQIECAAIH+AhL0/oZ6
IECAAAECBAgQIECAAAECvQUk6L0JdUCAAAECBAgQIECAAAECBPoLSND7G+qBAAECBAgQIECAAAEC
BAj0FpCg9ybUAQECBAgQIECAAAECBAgQ6C8gQe9vqAcCBAgQIECAAAECBAgQINBbQILem1AHBAgQ
IECAAAECBAgQIECgv4AEvb+hHggQIECAAAECBAgQIECAQG8BCXpvQh0QIECAAAECBAgQIECAAIH+
AhL0/oZ6IECAAAECBAgQIECAAAECvQUk6L0JdUCAAAECBAgQIECAAAECBPoLSND7G+qBAAECBAgQ
IECAAAECBAj0FpCg9ybUAQECBAgQIECAAAECBAgQ6C8gQe9vqAcCBAgQIECAAAECBAgQINBbQILe
m1AHBAgQIECAAAECBAgQIECgv4AEvb+hHggQIECAAAECBAgQIECAQG8BCXpvQh0QIECAAAECBAgQ
IECAAIH+AhL0/oZ6IECAAAECBAgQIECAAAECvQUk6L0JdUCAAAECBAgQIECAAAECBPoLSND7G+qB
AAECBAgQIECAAAECBAj0FpCg9ybUAQECBAgQIECAAAECBAgQ6C8gQe9vqAcCBAgQIECAAAECBAgQ
INBbQILem1AHBAgQIECAAAECBAgQIECgv4AEvb+hHggQIECAAAECBAgQIECAQG8BCXpvQh0QIECA
AAECBAgQIECAAIH+AhL0/oZ6IECAAAECBAgQIECAAAECvQUk6L0JdUCAAAECBAgQIECAAAECBPoL
SND7G+qBAAECBAgQIECAAAECBAj0FpCg9ybUAQECBAgQIECAAAECBAgQ6C8gQe9vqAcCBAgQIECA
AAECBAgQINBbQILem1AHBAgQIECAAAECBAgQIECgv4AEvb+hHggQIECgEoEjR46cmKmfHPKN4H1w
8vugNankPwmmSYAAgcEFjhzf2gbvVYcECBAgQGCuAv+YpM91etXOyz+Hqg29iRMgQGBKAqdOaTDG
QoAAAQIEpiyQ1cH8VPsiD2kqh1Meay1jO/esY/2n6kOX/ob/2MOJNeLDjsE8dUSAQH0CTnGvL+Zm
TIAAAQKFAk46K4TTrBoBa6SaUJsoAQIjCUjQR4LVLQECBAjMT8D1tfOLqRkNK2CNDOupNwIE6hOQ
oNcXczMmQIAAgUIB1cFCOM2qEbBGqgm1iRIgMJKABH0kWN0SIECAwPwEVAfnF1MzGlbAGhnWU28E
CNQnIEGvL+ZmTIAAAQKFAqqDhXCaVSOw8hr51rcinv70iLvcJeLf/JuI+90v4s1vLvP6wQ8inv3s
iPveN+L//J+yPrLV054W8e53l7c/66yId75zu/2q/a16/PYrrfbbUF4HveoTnhDxrncddNThPL+M
7X//7xHPfOb+4+ke0435/q09S2BfAQn6vjyeJECAAAEC2wKqg9sWfiOwSGClNfLVr0Zc61oRj3hE
xKc+FXHJS0b8z/8ZcatbRfzyLy/qfv/HXvziiAc9KOLjH4841uPu/o97XMRf/uX+r7Xfs7/zOxFv
fev2Eav2t+rx26+02m9DeXVf9UlPinjMY7YfffKTI97znu39df62jO3/+B8Rz33u/qPsHtON+f6t
PUtgXwFfs7YvjycJECBAgMC2wInqoK/k2gbxG4GOwEoV9H//75tK9//+3xH/7J9t9/TEJ0Y89rER
d75zxG1us/34Qb/99V9HXP3qu5Pjg9osej7Hc5GLLHqm7LFV+1v1+LJRRQzl1X39970v4hvf6D46
jf3Dsp3GbI1iQwUk6BsaOMMmQIAAgcMXyOpgfg+6jQCBxQIn1siy34P+3vdG/NRP7U7Os9sHPzji
P/7HiEymdm5f+lLEW94S8dGPRlz/+hE3vOF2Ip2nHGfl/Hvfi3j1qyNucYuIC184Yr822fd//s8R
171uc+wf/VHEve/dVPGvec2If/pPd7767t8/8YmI17424jvfibjxjSPOOGP38zv38qyAbn851v/y
XyK+9rXmjIGcyymnNK26x7/sZRH/6l81z73hDU3y+9M/HfEv/+XOV4k455yIN70p4p/8k+ZygUyS
/+//bca3+8iIvbyyj9e9runraleLuOtdIy50oe3Wi7wuetHt5//rf4347GcjvvvdiPTMD1na7WMf
a8aXlzVkfK53vfaZ5ufXvx7x+tdH5HHXuU5zzH4xSJfs43zni/jTP23G+fM/H3Haac37JC8zuMIV
Im5/++1Ydm3zlT/5yYj/9t8i8n17y1vuHlO7t8wx7bHtz1Xn07bzs3qBI1ufdPq3RvVvAwAECBAg
sLTAVpJ+kYccWfpwB44rcO5Zx/q/QJ4V4Z9D/R1X7eEXf7FJBjPpzNPa99v+5E+a69TzNPhMzjPR
yuQ2TzXOJC2vO88k7dvfbpLhl7404n/9r/3b5OtlcpnXv/+n/xSR12R/+MMRP/7jEb/9282p94vG
dPe7N+O+yU2aDxEyoczjs+qfW/b5sIdFPPrRzX4mkDv7yyT2l36pOaX/cpeLePvbm9fM694vcIEm
4dx5fLa/3e2aa/NzbDn373+/SfAzIc0tE9ucx4/8SPOhxec+F3GjG0V8+csR739/c8zOvxd55Qci
2UcmtVe9anMdfq6NvCdAfsCQ2yKvK12peS7/zksTMp4//GHENa4R8ed/HnGJS0Tc7GbNmQ3Zz0c+
0ow/Hdq4/93fRdz2ts0ZFflhRe7/6I8287rylbf73/lbumT7HF8ek21+7Mcibn3riBe8oBnz3/5t
80FOe8lCNxbpdqc7Na+VH+jkByf5/vriF5sPCvL1ljmmG/OS+eycm9+rFjha9exNngABAgQIrCCw
0vW1K/TrUAJzEVhpjTz+8U3l+md/NuL00yPuec+IF72oqfp2QfJGcne8Y1OdzcpzJtKZbGUinlte
T53J6rWv3SSWmbAd1KZpGfHCF0Y85SlNtX1nstk+v/NnVlKzMpzj/LM/a6r5eUOxZzyjqd7vPHbR
79/8ZnMjvKyAZzKYHzDkKeGZ0L3ylYtaNI9lZfwv/iLibW9r5p6J6Mtf3jyXlfJMuPMme//v/zUf
GuRz2fdeW9frMpdp+vi5n4v4wAeasxAykb74xZvHd/azn1fG46Y3bar7+YFDW33POeYp9fknq/RX
vGLjmP3mh2P3uldT+f70p7er+3kmwP3vv/OVT/49PbLPD34w4jWvafrO90feJDA/mMjY5DFZ1e9u
+WFOvu7Nb97cAyFjkG1zrO22zDHtse3PPvNp+/CzagEJetXhN3kCBAgQWEXASWeraDm2RoGV1sg/
/+dNkpp3Xs/fs/Kad3HPCm5WNXdex5ynvOdx7WngX/lKxAUvGHHuuXszL9smk+W8uVybTO7d4/bN
5/7wDyM+85nmyGybFevznGe/ls1zmWh/4QtNhT2r07n9i3/RnNK/34cD97hHc9p3Hn/66RFZvf/Q
h3KvqSBnn3nt/tGtf9pnv3l2wi/8QvP8Mn+/8Y0Rn/98c4p/O648vTzPFshEOy8VaLdVvNo2d7vb
dhU+K+o3uEHzoUQ+nwlx/vn1X4+41KWaFhmL/NAhTz3fL8bZb1bqc8vKe255tkGeaZFbVu5zyw8b
ulueyp/zus99tmOXHxblB0Httswx7bHtzz7zafvws2oBCXrV4Td5AgQIEFhFYKXq4CodO5bATARW
XiN5vfADHtBULrP6m1/HlUlhntL+0Iduq2RSl1XfTGbzVORMyjJJ329btk1WfJfdsjL/H/5DxDve
0ZxOnePIcWay3ia2+/WV167nlpX+nds97xnxr//1zkd2/37Zy+7ezw8n8lru3LLPU089+Vr+q1yl
eX6Zv7Oan320SW7bph1nnjnQbqt4tW3yQ5edW57K344/7ymQW14ikNe9t3/yrIa8G3++L/badvZ7
3vM2R+28tr2NSV4S0N3y0oScc1bQd255en+7LXNMe2z7s8982j78rFpg611pI0CAAAECBJYROFEd
bP/Bt0wDxxCoTGDpCnomtJmYP/KRu29iljeNyz95A7m8kVm7nXFGc93ywx/e3NQtr8XuJlbtse3P
Zdusuqbz+vIHPrC5vvrss5tT0/PDgzyleufd6Ntx7PyZCWe+Xl6jvcqWieReW55VkKdV5+nYO6v4
eYO4VbbsozuuPB09t/wgpd1W9cp2O8fV9tP+bPvLa/bz1PfudulLdx/Z3t/PZfuoxb+1cegm7zs/
jFjmmG7vfebT7ct+lQL7rPYqPUyaAAECBAjsKZDVwa1/whZvp521xCmwxb1vbsOvnLmgurW506l6
5CfWSCZ6B21Z3c7TqvMmaXkX9O52sYttX9Odp1jn6dx5CnyegpxbJrpZqcyvVVu0lbRZ1E/3sazw
v+QlEc9/fnNTs7yxWZ7inlXfrKoflKDnBwvpk9eH56nYueV16dk+k/5HPap5bJW/s6qfifVb39qM
KdvmDe/yLubnP/9yPeXrd/vIlu115HnN+1hbe4p6e3f39nUy3nmK+UEfxLTHr/ozX7cbi+wjT6vP
+xvktswxzZHbf69rPtsj8NuGCxzd8PEbPgECBAgQODSBpauDhzYiL0RgWgJLr5FMgDIhzRuO/c7v
NF91lZXMvJP4Ix4RkXfdzuvQc8uqalZgM+HMY845pzkN/u//vvmasxMHdf4qadPpYuFuJrJ5/fkT
ntDc6TvHk3cjz62903mzt/jvvMN4fqjwtKc1Ny7L677PPLM5jTuT/ZIt72SeSfpv/VZzJ/u82Vle
V92eTr9Mnzmu7OPJT25u0peJa57BkF+rlteG71cB7/af3yH/qU8188sPUg7afvInm9P7n/Ws5uZ0
+YFFGuc16Omb19WPsaV3fqCSc84zOvJDjec+t7kWv329ZY5pj21/rms+7ev7ufECI73jN97FBAgQ
IECAwEkCK19fe1IPHiAwb4GV1shTn9okp3lzs0yU8hrivP43K9SZNOX3oeeWN/zK5PP3fq+5MVwm
uJmA513aX/WqxV+HVtKmebX9/86v03rMY5obsmX1P78KLE/NftKTIjIxO2jL09GzKpxJaF4/ffnL
N3cgz+/0zup6yZZfrZYfEuTY8uZw+f3oebp7fqd7Xuu9zJYJeN4FPW/Ilnd0z2vcs3KdN2Frvz5u
mX7ymPzu8/zwJOe33w3edvaXd8ZPzzvcobnHQI497yifMR9ry/fbq1/d3MsgzxDIu8bnpQo757vM
MYvGt475LBqHxzZSwPegb2TYDJoAAQIE1iawdZp76fegO8V9cdT6nOLue9AXm27Uo/l95nm6et5R
O5O0rERnYtTd8hToPNU9b1yWSWluWYHOZHKvO7CXtGl63v/vvL477wye1xtnYp2n7K+6ZZU555EJ
8VBbJuZplx8E3PWuTbL7vOct33ue5p7zyhvwXetaTdK/fOvtI7/3veZ76tu7qW8/s/dvWbXP67/z
q9byBnf54cVhbFmlz/sH5F3r8wyJ9hryna+9zDE7j8/f1zWf7jjsb5yABH3jQmbABAgQILAugfYa
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
qSMCBAgQIECAAAECBAgQIFAuIEEvt9OSAAECBAgQIECAAAECBAgMJiBBH4xSRwQIECBAgAABAgQI
ECBAoFxAgl5upyUBAgQIECBAgAABAgQIEBhMQII+GKWOCBAgQIAAAQIECBAgQIBAuYAEvdxOSwIE
CBAgQIAAAQIECBAgMJiABH0wSh0RIECAAAECBAgQIECAAIFyAQl6uZ2WBAgQIECAAAECBAgQIEBg
MAEJ+mCUOiJAgAABAgQIECBAgAABAuUCEvRyOy0JECBAgAABAgQIECBAgMBgAhL0wSh1RIAAAQIE
CBAgQIAAAQIEygUk6OV2WhIgQIAAAQIECBAgQIAAgcEEJOiDUeqIAAECBAgQIECAAAECBAiUC0jQ
y+20JECAAAECBAgQIECAAAECgwlI0Aej1BEBAgQIECBAgAABAgQIECgXkKCX22lJgAABAgQIECBA
gAABAgQGE5CgD0apIwIECBAgQIAAAQIECBAgUC4gQS+305IAAQIECBAgQIAAAQIECAwmIEEfjFJH
BAgQIECAAAECBAgQIECgXECCXm6nJQECBAgQIECAAAECBAgQGExAgj4YpY4IECBAgAABAgQIECBA
gEC5gAS93E5LAgQIECBAgAABAgQIECAwmIAEfTBKHREgQIAAAQIECBAgQIAAgXIBCXq5nZYECBAg
QIAAAQIECBAgQGAwAQn6YJQ6IkCAAAECBAgQIECAAAEC5QIS9HI7LQkQIECAAAECBAgQIECAwGAC
EvTBKHVEgAABAgQIECBAgAABAgTKBSTo5XZaEiBAgAABAgQIECBAgACBwQQk6INR6ogAAQIECBAg
QIAAAQIECJQLSNDL7bQkQIAAAQIECBAgQIAAAQKDCUjQB6PUEQECBAgQIECAAAECBAgQKBeQoJfb
aUmAAAECBAgQIECAAAECBAYTkKAPRqkjAgQIECBAgAABAgQIECBQLiBBL7fTkgABAgQIECBAgAAB
AgQIDCYgQR+MUkcECBAgQIAAAQIECBAgQKBcQIJebqclAQIECBAgQIAAAQIECBAYTECCPhiljggQ
IECAAAECBAgQIECAQLnA/wcNd+/bVmEpbAAAAABJRU5ErkJggg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>255866</attachid>
            <date>2015-06-30 15:29:34 -0700</date>
            <delta_ts>2015-06-30 15:29:34 -0700</delta_ts>
            <desc>Safari-Chrome-Comparison</desc>
            <filename>Screen Shot 2015-06-30 at 2.52.13 PM.png</filename>
            <type>image/png</type>
            <size>76223</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">iVBORw0KGgoAAAANSUhEUgAAAn4AAANICAYAAABZhOJkAAAAAXNSR0IArs4c6QAAAZ1pVFh0WE1M
OmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6
eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3
LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlv
biByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNv
bS9leGlmLzEuMC8iPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NjM4PC9leGlmOlBp
eGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjg0MDwvZXhpZjpQ
aXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+Cjwv
eDp4bXBtZXRhPgpdRQ+cAABAAElEQVR4AeydCXwURdrGn0km9wEJOSABwn1Jwi2iIknEA1YBV/EC
VBQ5PDjWT5DddQX3+0RQVNRFQBFWwQMQCa6CrBBQFFBEDoGgBAxHIIEkkARyTTJfvT0zySTkmBwT
JpOn8ptMd1fVW1X/6ul+uq7WpaWlGfPy8pCdnQ29Xo8mTZrA19cXLi4uoCMBEiABEiABEiABEmg4
BIqKijRNd/HiRRgMBk3TeXh4aLpOp9NBd/r0aaN4itgLDQ2F0WiERKIjARIgARIgARIgARJoeASk
8U5E3tmzZ3Hp0iWtUU8a9+S4S25uLtzc3BASEoLCwkKKvoZXv8wxCZAACZAACZAACRQTkAY80XTS
oCcaT7SeNOzJRxN+0r3LVr5iXtwgARIgARIgARIggQZPQLSdaDwRfrKtCb+CggKtm7fBl44FIAES
IAESIAESIAESKEVAhvKJ1pMWQE34yQYdCZAACZAACZAACZCAcxKwiD4pnQu7eJ2zklkqEiABEiAB
EiABEhAClm5eafHTyz+6mhPIycnRZszk5+drTag1t2SKKbNwZCCmNM16eXkVm6uvdIoTdPCNuubh
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
k3zGyNrIBqcGqMadrmTZnN3D/MweK5W7vLB9vCb85qklI9NqcUbW1sbdxlaaB9l60U27uRKsfZi/
ra9oedEsM5PinDcL09mueTeNhy0SLkZipOtI95q+j/Sdbb18qf9c47OcOsEe6dHestHXR3yYdgud
ws8ttkyFlmHvmuVDnvqOj2SKHD6t7R22dtNZsIrY091vnj52O5p4MnHQbmKE8S1uVIhZly0rz+e3
vZfXQNgs2oAJMgbLr93Gylkq9oc7j1Kg1YnENgoRg2ZdwDZuMINj4myfo/0oYigY3FhAihhzx7FM
H+NZN7Hl0U67fPQ0unGCjG9FOCllHibzIDopwnTct25ss8nGEFowR5mJHquTuQ9t7UFLayLWvJXW
DexenCxGYqTrSPcavxv0faTvbD3X9OxPdX3kBE7Cr6jiMZ1DQWbvlbV3yLWZi4feHOuKszFeNvHB
CSR6kyI812oijsdMRMW0F+Ubx5HRA2VdqSb0bIygjT1jZIoEG2tmopJeRHp52rltnh4TkX5zEbGr
1rxO7c7LxOM8lmFjBM31Y3qToqvNhJh5gJiu1fJxA/b4F1D8H+23dfhsVUA3To3nWSL3LAYFH1dm
tlfP2TgxFk8dyjIsbxu/x88O68+lgDVbLWtbnoaxmZK+BrIwkSlGYqTriPeT7jV9H+k7W8+1qN9F
z/4xoI+odDqD68GM733/e/8c39SnCIiACIiACIiACIhAGhC47LLLutWis6v3/vvv73ZCOyIgAiIg
AiIgAiIgAmObwGa+ajQxdHb1Jh7UtgiIgAiIgAiIgAiIQPoRkPBLvzZVjURABERABERABEQgKQEJ
v6RYdFAEREAEREAEREAE0o+AhF/6talqJAIiIAIiIAIiIAKdBBIXcZbw68SiDREQAREQAREQARFI
bwISfundvqqdCIiACIiACIiACHQSCJw4caJzRxsiIAIiIAIiIAIiIALpReDQoUN8uYUPwWCQr1Dl
680UREAEREAEREAEREAE0pPA7NmzkZOT44SfunrTs41VKxEQAREQAREQARE4g4CE3xlIdEAEREAE
REAEREAE0pOAhF96tqtqJQIiIAIiIAIiIAJnEJDwOwOJDoiACIiACIiACIhAehKQ8EvPdlWtREAE
REAEREAEROAMAhJ+ZyDRAREQAREQAREQARFITwISfunZrqqVCIiACIiACIiACJxBQMLvDCQ6IAIi
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
rBATf/M4ru8cevKONPsxPzuCU5zFS90H6j5M4Szf6ZzEYRNCbGygggiIgAiIgAiIgAiIwPARCLz2
zkFceOGFw1cCczZRl8txf/ajIAIiIAIiIAIiIAIiMDoE/Meb20enZJUqAiIgAiIgAiIgAiIwogT8
h443jmiBKkwEREAEREAEREAERGB0CPiPtL43OiWrVBEQAREQAREQAREQgREl4M/M1ayKESWuwkRA
BERABERABERglAj4g5l8zYaCCIiACIiACIiACIhA2hPwt+xrSvtKqoIiIAIiIAIiIAIiIAKA/7PX
rRQHERABERABERABERCBcUDAX11dPQ6qqSqKgAiIgAiIgAiIgAj4CwoKREEEREAEREAEREAERGAc
EOBL1RREQAREQAREQAREQATGAwEJv/HQyqqjCIiACIiACIiACJCAhJ8uAxEQAREQAREQAREYJwT8
+/btGydVVTVFQAREQAREQAREYHwT8M+dO3d8E1DtRUAEREAEREAERGCcEPCHw+FxUlVVUwREQARE
QAREQATGNwE/w/gmoNqLgAiIgAiIgAiIwDghIOE3Thpa1RQBERABERABERABCT9dAyIgAiIgAiIg
AiIwTghI+I2ThlY1RUAEREAEREAERMD/2jsHh41CY30D+ps60tjY2Gf5YZ7vL48+M9BJERABERAB
ERABERABR8B/vLl9WFCE6yuRvSAXRZV1SfOvq9qIQp8P2YVVyYVdYw1K8n2YnL0KdVJ+SRnqoAiI
gAiIgAiIgAgMhID/0PG+PW4DySwxbjBUhG0/fg7lRXmJhzu381atQ/mm5dwPdh4DGlBdXR/dz1qG
8opH3XZijITI2hQBERABERABERABERgAAf+R1vcGEH0gUbNQuKoIeVm9pwkGcxJOhrF1XS7WJbr3
gn0kTkipTREQAREQAREQAREQgf4J+DNzA/3HYozaihL48vNRWFyG2sYwastj+4UlqKw1r2EjqjYU
w+crY9dsGPW11agoK0RJRUJXb7geFSXMo2QdSopLsL78ScBpuzCq103GyoeBXeXFyC+0POJm5aCh
ditK2C3s409xeU3yruF4dH2KgAiIgAiIgAiIgAgkJeAPZk5NeqLnwfyS9bh31y40LqMwywoiv3Qj
HuL+9mUlKM439ZaFoqJlWP5oCfLYN9vYWIe1D25PEGmNKJ+8ANVFlaiu2IiKyvXI2h4vJYjCDTth
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
f+b5s3GA9q7eq6++2q2nZt3CminexU5bIiACIiACIjDUBCT8hpqo8juDgIk5+wPj8ssvh72Zw5bT
sFm/dszOxX/0R8gZ6HRABERABERABIaUgITfkOJUZr0RMFE3ceJETJgwwXn64su7mOcvPu6vt7Q6
LgIiIAIiIAIiMDQEJPyGhqNy8UhAQs8jKEUTAREQAREQgWEg4H/tnYPDkK2yFAEREAEREAEREAER
SDUC/uPN7almk+wRAREQAREQAREQAREYBgL+Q8cbhyFbZSkCIiACIiACIiACIpBqBPxHWt9LNZtk
jwiIgAiIgAiIgAiIwDAQ8GfmDvh1vcNghrIUAREQAREQAREQAREYbgL+YObU4S5D+YuACIiACIiA
CIiACKQAAX/LvqYUMEMmiIAIiIAIiIAIiIAIDDcB/2evWzncZSh/ERABERABERABERCBFCDgr66u
TgEzZIIIiIAIiIAIiIAIiMBwE/AXFBQMdxnKXwREQAREQAREQAREIAUI+FPA8ozzbAAAJ6BJREFU
BpkgAiIgAiIgAiIgAiIwAgQk/EYAsooQAREQAREQAREQgVQgIOGXCq0gG0RABERABERABERgBAj4
9+3bNwLFqAgREAEREAEREAEREIHRJuCfO3fuaNug8kVABERABERABERABEaAgD8cDo9AMSpCBERA
BERABERABERgtAn4GUbbBpUvAiIgAiIgAiIgAiIwAgQk/EYAsooQAREQAREQAREQgVQgIOGXCq0g
G0RABERABERABERgBAgMUPiF0dg4yDGB4UbUDzBtuLERgyxtBNCpCBEQAREQAREQAREYWwT8r71z
0IPFYdRUrIPPNxmFlXUe4veMEkZlUTYWZBehzouSa6xBSb4Pk7NXeYvfszjti4AIiIAIiIAIiIAI
nEHAf7y5/YyDZx4IYlnJemxaDGQFg2ee7vdIEEXl2/DjbeXI85I8axnKKx51ufYVvaG2WsKwX/aK
IAIiIAIiIAIiIAJRAv5Dxxs9sggimAV4jd0z06y8QqwqzOt5uPd9K6yPEK6vQu6SdX3E0CkREAER
EAEREAEREIFEAv4jre8l7ve7nRVuQHVFCbt9ffwpQXVDQt9tYx02FBcin920vvwSbK2LysRwYz2q
qypQzGO1CdEbaitRWFiMdSVMU1yGyq3V2MqfLnGZg4barShxZflQXF4THfPXsBWTF9xCW3eheFk+
ygbV/dxvVRVBBERABERABERABNKKgD8zN+C9QjnA9rtWoDZUhqMHduJuPIYVxVVRMRauQ0l2MZaV
V6O2NoJtxbVYeWkhqk3FcZJGfdVaPLkrjM6u28ZqeuzWYH1VJTZWbEUZHsSalSsQ04oxm57EitI6
lB09ip1b7saTdxWg0gYJ5hRh56bVjLMaFdW1FJsD8CR6r61iioAIiIAIiIAIiEBaEfAHM6d6r1AD
sHjTHqxjl21WTj5KNy3v7Put37oBjy0uBuqqUV1dg8YsE2O7KMzqEQzlo7Dozm7l1NdUcX81cpwS
5BjA0gfcfhE9hlmdMZdjT8065GVlIX9VKVhaZ4gPNYx/dp7QhgiIgAiIgAiIgAiIQFIC/pZ9TUlP
9HawS5QxhhNtFjOM2qrHgMIQJ39kISsriNCyMuzcuRPrC+kmdDHoqUsIWVkh7j2JBvMIMgRzQva7
K0s72CNEc+pxULsiIAIiIAIiIAIiIAKeCAQ+e91KTxH7ixSuZ4yiHI7vy+8vqjuflV+EBxbfgxVF
G7Czqhh1G9ZgNb2JoT5S0+GoIAIiIAIiIAIiIAIiMEgC/urq6kEmTUwWRF4xO2LvW4+amAcverYe
G8piYwATo9t2MA9F6+7FA2XL0FhXj7z1zagsse5hBREQAREQAREQAREQgeEg4C8oKPCYL9/asb17
1CDY+borqvTyikp5cjsKstehmkKuob4GZb4FyCkpct23nZ24se7hcF0llqzdSg9hCKE8dhGjgd2+
Cd3BnD3cLTCddfXGo4ToMXRdxZxVXF9TjfqEpN3SaUcEREAEREAEREAERMAR8HvlUFu5Hncx8va1
pZxZ20gvXRVK1jzJI3dxOZVaTuAoxp7nbILGw1hx6QLkLihAaNtelHDF5rrqSqwv5xhAjunbsKHK
LdcSzMnBYk7+WMm4CxZEf3Kz+WaQjTVUd7UoW3KPlYbS9ZUUe42oKitlauCeJWWopdYMcnKJzetd
sWAy1tdnIURhqCACIiACIiACIiACItA7Ad/9998fCYVCuO2223qPNZAzYXoG+RPkTNy+tFj91o3Y
2FiIDavyEGZ8C2FbB7CsDusrSxJm9vZRONPZAjGa2dsHI50SAREQAREQAREYtwQ2b96MAwcOIDc3
l3opiAEs4ueRGTPt97Vu4VqsWnkP1u1pdkaYIS64z85O4f4LZPy+xGX/GSiGCIiACIiACIiACIwf
AkMv/LywC4awjv20ay+djI3L70Thsiw0cpxebU4JKivWScx5Yag4IiACIiACIiACIjBAAqMj/NiR
W1LZjML1dai3hfy49l+obANCXP9PQQREQAREQAREQAREYHgIjJLws8pwkee8fP4MT8WUqwiIgAiI
gAiIgAiIQHcCnmf1dk+mPREQAREQAREQAREQgbFGQMJvrLWY7BUBERABERABERCBQRKQ8BskOCUT
AREQAREQAREQgbFGQMJvrLWY7BUBERABERABERCBQRKQ8BskOCUTAREQAREQAREQgbFGYBRn9Y41
VN3tffvtt7F7924cOnQIfr8fHR0dmD17NhYvXoz58+d3j6w9ERABERABERABEUgBAhJ+g2iEn/70
pzh16hQWLlyIq666CrNmzcLhw4fdz44dO/Dyyy/jU5/61CByVhIREAEREAEREAERGD4C6uodINvH
H38cM2fOxM0334yLL77YbUciEfdp+6tWrUJ2djZ++MMfDjBnRRcBERABERABERCB4SUg4TcAvlVV
Vbjoootw5ZVXulQm+Cz0/LTzoVAIzzzzjDuvXyIgAiIgAiIgAiKQCgQGLfza29tTwf4Rs+Gtt95C
c3Mz8vPzXZk2ps9Cb59Lly7FyZMnsXfvXhdPv0RABFKDwHj77koN6rJCBEQgVQgMeIzfa6+9Bhvj
duLECTQ1NaVKPYbdjqysrM5xez09fL3tX3rppdiyZQuOHj067PapABEQAW8EpkyZgszMTNx00034
8Ic/7C2RYomACIhAmhAYsPB74YUX3GSG8847z81m9fl8aYKi92qYsDtw4ICrd1zk9R6764zN8p06
darrHh4PnLpqri0RSE0Cdv+al76lpQXbtm2T8EvNZpJVIiACw0hgwMLPbLFZrNOnT0dGRsYwmpY6
WduD4oMPPnATOMwqe3iYkOvv0zgFAgHMmTPHieTUqZEsEYHxS8C6eq3HYv/+/eMXgmouAiIwbgkM
WPjl5OQ4wWfdJSZqxkOwB4V5CN59910ner3W2db4O336NIzVeBHJXtkongiMFoG2tja3HJN9lymI
gAiIwHgjMGDlZpMW3njjDbdmXTgcHhe8zONnwu3IkSNukeb+PH3x87a2n3kG33nnHXn8xsWVokqO
BQLBYBCTJk3CokWLxoK5slEEREAEhpTAgIWfvZVivL2ZwoTcnj17YIsz21p9Xrp5Lc2rr76KT3zi
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
s60AAAAASUVORK5CYII=
</data>

          </attachment>
      

    </bug>

</bugzilla>