<?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>101779</bug_id>
          
          <creation_ts>2012-11-09 11:35:01 -0800</creation_ts>
          <short_desc>Push pixel snapping logic into TransformState</short_desc>
          <delta_ts>2012-12-16 13:52:24 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>101874</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Levi Weintraub">leviw</reporter>
          <assigned_to name="Levi Weintraub">leviw</assigned_to>
          <cc>d-r</cc>
    
    <cc>eae</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>eric</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>fmalita</cc>
    
    <cc>gtk-ews</cc>
    
    <cc>gustavo</cc>
    
    <cc>mifenton</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>ojan</cc>
    
    <cc>pdr</cc>
    
    <cc>philn</cc>
    
    <cc>rafael.lobo</cc>
    
    <cc>schenney</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>763196</commentid>
    <comment_count>0</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2012-11-09 11:35:01 -0800</bug_when>
    <thetext>Instead of accumulating every offset generated in mapLocalToContainer in the TransformState, use a LayoutSize until we are at the end condition or have a transform. This allows us to snap sub-pixel offsets correctly (at the end) instead of the current solution, which incorrectly snaps as it goes up. This functionally incorrect behavior can lead to repaint artifacts, especially in Widgets that have their ultimate framerect incorrectly calculated when nested in multiple levels of sub-pixel containers. This should also improve performance since we only have to apply the transform to n+1 offsets where n is the number of transforms in the chain, whereas currently we have to apply it O(m) where m is the number of renderers in the chain, and some elements accumulate multiple offsets.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763291</commentid>
    <comment_count>1</comment_count>
      <attachid>173358</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2012-11-09 13:56:57 -0800</bug_when>
    <thetext>Created attachment 173358
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763300</commentid>
    <comment_count>2</comment_count>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2012-11-09 14:07:08 -0800</bug_when>
    <thetext>Merge failures, could you try to update and upload a new patch? I&apos;d like to see what the EWS bots think of it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763326</commentid>
    <comment_count>3</comment_count>
      <attachid>173366</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2012-11-09 14:31:33 -0800</bug_when>
    <thetext>Created attachment 173366
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763338</commentid>
    <comment_count>4</comment_count>
      <attachid>173369</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2012-11-09 14:36:12 -0800</bug_when>
    <thetext>Created attachment 173369
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763345</commentid>
    <comment_count>5</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2012-11-09 14:41:23 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; Created an attachment (id=173369) [details]
&gt; Patch

Now with 100% more applying!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763352</commentid>
    <comment_count>6</comment_count>
      <attachid>173366</attachid>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2012-11-09 14:45:20 -0800</bug_when>
    <thetext>Comment on attachment 173366
Patch

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

I like this change, simplifies things quite a bit and might even be a performance win.

&gt; Source/WebCore/rendering/RenderBox.cpp:1272
&gt; +void RenderBox::mapLocalToContainer(const RenderLayerModelObject* repaintContainer, TransformState&amp; transformState, MapCoordinatesFlags mode, bool* wasFixed, LayoutSize accumulatedOffset) const

Why are you passing this by value? To avoid having to create a local copy?

&gt; Source/WebCore/rendering/RenderBox.cpp:1278
&gt; +        return transformState.move((mode &amp; SnapOffsetForTransforms) ? roundedIntSize(accumulatedOffset) : accumulatedOffset, preserve3D ? TransformState::AccumulateTransform : TransformState::FlattenTransform);

This is pretty hard to follow with the nested ternary conditions. How about you make one of them an actual if statement or an inline function?

&gt; Source/WebCore/rendering/RenderBox.cpp:-1309
&gt; -    bool preserve3D = mode &amp; UseTransforms &amp;&amp; (o-&gt;style()-&gt;preserves3D() || style()-&gt;preserves3D());

Can you expand on why you don&apos;t need to special case preserve3d anymore?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763365</commentid>
    <comment_count>7</comment_count>
      <attachid>173366</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2012-11-09 14:55:43 -0800</bug_when>
    <thetext>Comment on attachment 173366
Patch

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

&gt;&gt; Source/WebCore/rendering/RenderBox.cpp:1272
&gt;&gt; +void RenderBox::mapLocalToContainer(const RenderLayerModelObject* repaintContainer, TransformState&amp; transformState, MapCoordinatesFlags mode, bool* wasFixed, LayoutSize accumulatedOffset) const
&gt; 
&gt; Why are you passing this by value? To avoid having to create a local copy?

That&apos;s right. We could alternatively create a local variable at the start of each implementation, or make all versions of this protected and a public version that instantiates a local variable and passes by reference.

&gt;&gt; Source/WebCore/rendering/RenderBox.cpp:1278
&gt;&gt; +        return transformState.move((mode &amp; SnapOffsetForTransforms) ? roundedIntSize(accumulatedOffset) : accumulatedOffset, preserve3D ? TransformState::AccumulateTransform : TransformState::FlattenTransform);
&gt; 
&gt; This is pretty hard to follow with the nested ternary conditions. How about you make one of them an actual if statement or an inline function?

I can&apos;t make the entire line an inline function as the virtual function is defined in RenderObject.h, but I could have the ternary resolution inlined there. I&apos;d prefer that to a slew of if/else in these implementations.

&gt;&gt; Source/WebCore/rendering/RenderBox.cpp:-1309
&gt;&gt; -    bool preserve3D = mode &amp; UseTransforms &amp;&amp; (o-&gt;style()-&gt;preserves3D() || style()-&gt;preserves3D());
&gt; 
&gt; Can you expand on why you don&apos;t need to special case preserve3d anymore?

Look up! It just moved higher in the function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763366</commentid>
    <comment_count>8</comment_count>
      <attachid>173369</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-11-09 14:56:11 -0800</bug_when>
    <thetext>Comment on attachment 173369
Patch

Attachment 173369 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/14792209</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763370</commentid>
    <comment_count>9</comment_count>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2012-11-09 14:58:56 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 173366 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=173366&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/rendering/RenderBox.cpp:1272
&gt; &gt;&gt; +void RenderBox::mapLocalToContainer(const RenderLayerModelObject* repaintContainer, TransformState&amp; transformState, MapCoordinatesFlags mode, bool* wasFixed, LayoutSize accumulatedOffset) const
&gt; &gt; 
&gt; &gt; Why are you passing this by value? To avoid having to create a local copy?
&gt; 
&gt; That&apos;s right. We could alternatively create a local variable at the start of each implementation, or make all versions of this protected and a public version that instantiates a local variable and passes by reference.

Makes sense, I prefer they way you have it over having a local copy.


&gt; &gt;&gt; Source/WebCore/rendering/RenderBox.cpp:1278
&gt; &gt;&gt; +        return transformState.move((mode &amp; SnapOffsetForTransforms) ? roundedIntSize(accumulatedOffset) : accumulatedOffset, preserve3D ? TransformState::AccumulateTransform : TransformState::FlattenTransform);
&gt; &gt; 
&gt; &gt; This is pretty hard to follow with the nested ternary conditions. How about you make one of them an actual if statement or an inline function?
&gt; 
&gt; I can&apos;t make the entire line an inline function as the virtual function is defined in RenderObject.h, but I could have the ternary resolution inlined there. I&apos;d prefer that to a slew of if/else in these implementations.

That would be great if you could make it work, there is quite a bit of repeated code as it is and it isn&apos;t terribly readable.

&gt; &gt;&gt; Source/WebCore/rendering/RenderBox.cpp:-1309
&gt; &gt;&gt; -    bool preserve3D = mode &amp; UseTransforms &amp;&amp; (o-&gt;style()-&gt;preserves3D() || style()-&gt;preserves3D());
&gt; &gt; 
&gt; &gt; Can you expand on why you don&apos;t need to special case preserve3d anymore?
&gt; 
&gt; Look up! It just moved higher in the function.

Ah, of course. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763374</commentid>
    <comment_count>10</comment_count>
      <attachid>173369</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-11-09 15:01:23 -0800</bug_when>
    <thetext>Comment on attachment 173369
Patch

Attachment 173369 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/14787312</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763387</commentid>
    <comment_count>11</comment_count>
      <attachid>173369</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-09 15:22:05 -0800</bug_when>
    <thetext>Comment on attachment 173369
Patch

Attachment 173369 did not pass win-ews (win):
Output: http://queues.webkit.org/results/14786339</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763388</commentid>
    <comment_count>12</comment_count>
      <attachid>173369</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-09 15:23:51 -0800</bug_when>
    <thetext>Comment on attachment 173369
Patch

Attachment 173369 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14792213</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763405</commentid>
    <comment_count>13</comment_count>
      <attachid>173369</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2012-11-09 15:49:05 -0800</bug_when>
    <thetext>Comment on attachment 173369
Patch

Attachment 173369 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/14787322</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763422</commentid>
    <comment_count>14</comment_count>
      <attachid>173369</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2012-11-09 16:08:36 -0800</bug_when>
    <thetext>Comment on attachment 173369
Patch

Attachment 173369 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/14777613</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763504</commentid>
    <comment_count>15</comment_count>
      <attachid>173418</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2012-11-09 17:47:47 -0800</bug_when>
    <thetext>Created attachment 173418
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763523</commentid>
    <comment_count>16</comment_count>
      <attachid>173418</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-11-09 18:11:16 -0800</bug_when>
    <thetext>Comment on attachment 173418
Patch

Why isn&apos;t the accumulated offset part of the TransformState?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763527</commentid>
    <comment_count>17</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2012-11-09 18:13:06 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; (From update of attachment 173418 [details])
&gt; Why isn&apos;t the accumulated offset part of the TransformState?

That would probably make for a cleaner change, you&apos;re right. I&apos;ll take a stab on Monday, thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763530</commentid>
    <comment_count>18</comment_count>
      <attachid>173418</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-11-09 18:14:36 -0800</bug_when>
    <thetext>Comment on attachment 173418
Patch

Maybe TransformState should work in LayoutUnits, and only use floats when it has to convert through transforms?

Note that there are pure-float clients of TransformState though (like GraphicsLayerCA).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763928</commentid>
    <comment_count>19</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-11-11 16:43:34 -0800</bug_when>
    <thetext>I&apos;m trying to use RenderGeometryMap in more places and running into cases where mapping via renderers and mapping via RenderGeometryMap don&apos;t match. Some of this is because of the SnapOffsetForTransforms confusion (bug 101864).

I&apos;d like to be able to use the same RenderGeometryMap to map both repaint rects and points. I&apos;m not sure if SnapOffsetForTransforms should be different for those two operations, but if so, then we somehow need to allow RenderGeometryMap to map with SnapOffsetForTransforms on or off.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763929</commentid>
    <comment_count>20</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-11-11 16:44:46 -0800</bug_when>
    <thetext>One important point here is that if you touch the mapToContainer methods, you probably also need to fix up RenderGeometryMap.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778304</commentid>
    <comment_count>21</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2012-11-28 13:55:32 -0800</bug_when>
    <thetext>(In reply to comment #20)
&gt; One important point here is that if you touch the mapToContainer methods, you probably also need to fix up RenderGeometryMap.

RenderGeometryMap indeed needed to be fixed as well. Sadly, making this change in TransformState results in a solution that&apos;s less clean, with consumers of that class needing more awareness of its state or a parallel data structure for accumulating and returning proper values.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778337</commentid>
    <comment_count>22</comment_count>
      <attachid>176578</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2012-11-28 14:19:48 -0800</bug_when>
    <thetext>Created attachment 176578
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778533</commentid>
    <comment_count>23</comment_count>
      <attachid>176578</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-11-28 17:30:02 -0800</bug_when>
    <thetext>Comment on attachment 176578
Patch

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

I don&apos;t see how this works correctly with RenderGeometryMap, since I&apos;d expect the pushMappingToContainer() methods to require similar changes to mapLocalToContainer() (ideally the code would be shared).

&gt; LayoutTests/ChangeLog:9
&gt; +        Update the sub-pixel-iframe-copy-on-scroll test to also test a deeply-nested iframe to ensure
&gt; +        we&apos;re properly pixel snapping mapped coordinates.

What a about a test with interleaved transforms and subpixel pushers?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779210</commentid>
    <comment_count>24</comment_count>
      <attachid>176578</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2012-11-29 11:16:41 -0800</bug_when>
    <thetext>Comment on attachment 176578
Patch

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

You&apos;re right about pushMappingToContainer. RenderBox and RenderInline&apos;s implementations both needed updates.

&gt;&gt; LayoutTests/ChangeLog:9
&gt;&gt; +        we&apos;re properly pixel snapping mapped coordinates.
&gt; 
&gt; What a about a test with interleaved transforms and subpixel pushers?

Will do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782904</commentid>
    <comment_count>25</comment_count>
      <attachid>177550</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2012-12-04 14:03:11 -0800</bug_when>
    <thetext>Created attachment 177550
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782932</commentid>
    <comment_count>26</comment_count>
      <attachid>177550</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-12-04 14:21:54 -0800</bug_when>
    <thetext>Comment on attachment 177550
Patch

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

A general problem I have with this code is that painting and coordinate mapping don&apos;t share a common function for pixel snapping, so it&apos;s really hard to know if they are doing the same thing, and whether RenderGeometryMap matches what they both do.

&gt; Source/WebCore/ChangeLog:66
&gt; +        * platform/graphics/LayoutSize.h:
&gt; +        (LayoutSize):
&gt; +        (WebCore::LayoutSize::expand):
&gt; +        * rendering/RenderBox.cpp:
&gt; +        (WebCore::RenderBox::mapLocalToContainer):
&gt; +        (WebCore::RenderBox::pushMappingToContainer):
&gt; +        * rendering/RenderBox.h:
&gt; +        (RenderBox):
&gt; +        * rendering/RenderGeometryMap.cpp:
&gt; +        (WebCore::RenderGeometryMap::mapToContainer):
&gt; +        * rendering/RenderInline.cpp:
&gt; +        (WebCore::RenderInline::mapLocalToContainer):
&gt; +        (WebCore::RenderInline::pushMappingToContainer):
&gt; +        * rendering/RenderInline.h:
&gt; +        (RenderInline):
&gt; +        * rendering/RenderObject.cpp:
&gt; +        (WebCore::RenderObject::mapLocalToContainer):
&gt; +        * rendering/RenderObject.h:
&gt; +        (RenderObject):
&gt; +        (WebCore::RenderObject::adjustOffsetForSnapping):
&gt; +        * rendering/RenderView.cpp:
&gt; +        (WebCore::RenderView::mapLocalToContainer):
&gt; +        * rendering/RenderView.h:
&gt; +        (RenderView):
&gt; +        * rendering/svg/RenderSVGForeignObject.cpp:
&gt; +        (WebCore::RenderSVGForeignObject::mapLocalToContainer):
&gt; +        * rendering/svg/RenderSVGForeignObject.h:
&gt; +        (RenderSVGForeignObject):
&gt; +        * rendering/svg/RenderSVGInline.cpp:
&gt; +        (WebCore::RenderSVGInline::mapLocalToContainer):
&gt; +        * rendering/svg/RenderSVGInline.h:
&gt; +        (RenderSVGInline):
&gt; +        * rendering/svg/RenderSVGModelObject.cpp:
&gt; +        (WebCore::RenderSVGModelObject::mapLocalToContainer):
&gt; +        * rendering/svg/RenderSVGModelObject.h:
&gt; +        (RenderSVGModelObject):
&gt; +        * rendering/svg/RenderSVGRoot.cpp:
&gt; +        (WebCore::RenderSVGRoot::mapLocalToContainer):
&gt; +        * rendering/svg/RenderSVGRoot.h:
&gt; +        (RenderSVGRoot):
&gt; +        * rendering/svg/RenderSVGText.cpp:
&gt; +        (WebCore::RenderSVGText::mapLocalToContainer):
&gt; +        * rendering/svg/RenderSVGText.h:
&gt; +        (RenderSVGText):
&gt; +        * rendering/svg/SVGRenderSupport.cpp:
&gt; +        (WebCore::SVGRenderSupport::mapLocalToContainer):
&gt; +        * rendering/svg/SVGRenderSupport.h:
&gt; +        (SVGRenderSupport):

Please clean up this list. Per-function comments are recommended.

&gt; Source/WebCore/rendering/RenderBox.cpp:1388
&gt; -        return;
&gt; +        return transformState.move(adjustOffsetForSnapping(mode, adjustedOffset), preserve3D ? TransformState::AccumulateTransform : TransformState::FlattenTransform);

It&apos;s a shame that all the implementations of mapLocalToContainer() have to handle this boundary condition. I think it would be better to push this out to functions that initiate calls to the recursive mapLocalToContainer() (there should be few). Those callers will always flatten, since they are the end of the mapping chain.

&gt; Source/WebCore/rendering/RenderBox.cpp:1422
&gt; +        transformState.move(adjustOffsetForSnapping(mode, adjustedOffset), preserve3D ? TransformState::AccumulateTransform : TransformState::FlattenTransform);

It&apos;s a shame to call move() when adjustOffsetForSnapping() might be zero. I think it would be better to get adjustOffsetForSnapping(), and multiply it into t, then just move once.

&gt; Source/WebCore/rendering/RenderBox.cpp:1479
&gt;      if (shouldUseTransformFromContainer(container)) {
&gt;          TransformationMatrix t;
&gt;          getTransformFromContainer(container, containerOffset, t);
&gt; +        adjustmentForSkippedAncestor = adjustOffsetForSnapping(geometryMap.mapCoordinatesFlags(), adjustmentForSkippedAncestor);
&gt;          t.translateRight(adjustmentForSkippedAncestor.width(), adjustmentForSkippedAncestor.height());

Why doesn&apos;t pushMappingToContainer() have all the other snapping logic that mapLocalToContainer() does, e.g. for the non-transform case?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782949</commentid>
    <comment_count>27</comment_count>
      <attachid>177550</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2012-12-04 14:34:37 -0800</bug_when>
    <thetext>Comment on attachment 177550
Patch

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

&gt;&gt; Source/WebCore/rendering/RenderBox.cpp:1388
&gt;&gt; +        return transformState.move(adjustOffsetForSnapping(mode, adjustedOffset), preserve3D ? TransformState::AccumulateTransform : TransformState::FlattenTransform);
&gt; 
&gt; It&apos;s a shame that all the implementations of mapLocalToContainer() have to handle this boundary condition. I think it would be better to push this out to functions that initiate calls to the recursive mapLocalToContainer() (there should be few). Those callers will always flatten, since they are the end of the mapping chain.

Okay. I didn&apos;t want to muddy the contract, but I&apos;m happy to make that change.

&gt;&gt; Source/WebCore/rendering/RenderBox.cpp:1422
&gt;&gt; +        transformState.move(adjustOffsetForSnapping(mode, adjustedOffset), preserve3D ? TransformState::AccumulateTransform : TransformState::FlattenTransform);
&gt; 
&gt; It&apos;s a shame to call move() when adjustOffsetForSnapping() might be zero. I think it would be better to get adjustOffsetForSnapping(), and multiply it into t, then just move once.

Okay.

&gt;&gt; Source/WebCore/rendering/RenderBox.cpp:1479
&gt;&gt;          t.translateRight(adjustmentForSkippedAncestor.width(), adjustmentForSkippedAncestor.height());
&gt; 
&gt; Why doesn&apos;t pushMappingToContainer() have all the other snapping logic that mapLocalToContainer() does, e.g. for the non-transform case?

We snap before transforms, or at the end, whichever comes first. You&apos;ll notice the snapping otherwise handled in RenderGeometryMap::mapToContainer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782956</commentid>
    <comment_count>28</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-12-04 14:37:10 -0800</bug_when>
    <thetext>(In reply to comment #27)
&gt; &gt;&gt; Source/WebCore/rendering/RenderBox.cpp:1479
&gt; &gt;&gt;          t.translateRight(adjustmentForSkippedAncestor.width(), adjustmentForSkippedAncestor.height());
&gt; &gt; 
&gt; &gt; Why doesn&apos;t pushMappingToContainer() have all the other snapping logic that mapLocalToContainer() does, e.g. for the non-transform case?
&gt; 
&gt; We snap before transforms, or at the end, whichever comes first. You&apos;ll notice the snapping otherwise handled in RenderGeometryMap::mapToContainer.

Do the fast paths in RGM do the right thing?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>786308</commentid>
    <comment_count>29</comment_count>
      <attachid>178306</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2012-12-07 16:55:37 -0800</bug_when>
    <thetext>Created attachment 178306
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>786316</commentid>
    <comment_count>30</comment_count>
      <attachid>178306</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-12-07 17:07:00 -0800</bug_when>
    <thetext>Comment on attachment 178306
Patch

Attachment 178306 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/15210327</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>786319</commentid>
    <comment_count>31</comment_count>
      <attachid>178306</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-12-07 17:10:29 -0800</bug_when>
    <thetext>Comment on attachment 178306
Patch

Attachment 178306 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/15175892</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>786323</commentid>
    <comment_count>32</comment_count>
      <attachid>178312</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2012-12-07 17:31:05 -0800</bug_when>
    <thetext>Created attachment 178312
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>786346</commentid>
    <comment_count>33</comment_count>
      <attachid>178312</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-12-07 18:31:27 -0800</bug_when>
    <thetext>Comment on attachment 178312
Patch

Attachment 178312 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/15185594</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>787561</commentid>
    <comment_count>34</comment_count>
      <attachid>178596</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2012-12-10 11:16:10 -0800</bug_when>
    <thetext>Created attachment 178596
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>788615</commentid>
    <comment_count>35</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2012-12-11 11:07:25 -0800</bug_when>
    <thetext>(In reply to comment #28)
&gt; Do the fast paths in RGM do the right thing?

They do now :) And we pass all tests in Debug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>788649</commentid>
    <comment_count>36</comment_count>
      <attachid>178596</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-12-11 11:58:17 -0800</bug_when>
    <thetext>Comment on attachment 178596
Patch

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

&gt; Source/WebCore/rendering/RenderBox.cpp:1418
&gt; +    bool preserve3D = mode &amp; UseTransforms &amp;&amp; ((o &amp;&amp; o-&gt;style()-&gt;preserves3D()) || style()-&gt;preserves3D());

|o| cannot be 0 here as we check it above. Please remove the added NULL check.

&gt; Source/WebCore/rendering/RenderBox.cpp:1427
&gt; +        applyAccumulatedOffset(transformState, accumulatedOffset, mode);
&gt; +        LayoutSize adjustedContainerOffset = adjustOffsetForSnapping(mode, containerOffset);
&gt; +        transformState.move(adjustedContainerOffset.width(), adjustedContainerOffset.height(), TransformState::AccumulateTransform);

Shouldn&apos;t this be simplified to applyAccumulatedOffset(transformState, accumulatedOffset + containerOffset, mode) ? (not sure if that&apos;s correct as the first line uses TransformState::FlattenTransform and the last one TransformState::AccumulateTransform)

&gt; Source/WebCore/rendering/RenderGeometryMap.cpp:51
&gt; +    accumulatedOffset = (mapCoordinatesFlags &amp; SnapOffsetForTransforms) ? roundedIntSize(accumulatedOffset) : accumulatedOffset;

Shouldn&apos;t this use adjustOffsetForSnapping?

&gt; Source/WebCore/rendering/RenderGeometryMap.cpp:109
&gt; +                applyAccumulatedOffset(transformState, accumulatedOffset, m_mapCoordinatesFlags);
&gt; +                LayoutSize containerOffset = adjustOffsetForSnapping(m_mapCoordinatesFlags, currentStep.m_offset);
&gt; +                transformState.move(containerOffset.width(), containerOffset.height(), accumulate);

Again could this be simplified to one applyAccumulatedOffset call?

&gt; Source/WebCore/rendering/RenderInline.cpp:1168
&gt; +            accumulatedOffset.expand(layoutState-&gt;m_paintOffset + accumulatedOffset);

Wouldn&apos;t that double the accumulated offset?

&gt; Source/WebCore/rendering/RenderObject.cpp:2067
&gt; +    accumulatedOffset = adjustOffsetForSnapping(mapCoordinatesFlags, accumulatedOffset);

Shouldn&apos;t this use adjustOffsetForSnapping?

&gt; Source/WebCore/rendering/RenderObject.cpp:2081
&gt; +void RenderObject::mapLocalToContainerInternal(const RenderLayerModelObject* repaintContainer, TransformState&amp; transformState, LayoutSize&amp; accumulatedOffset, MapCoordinatesFlags mode, bool* wasFixed) const

Not a huge fan of the name (&apos;internal&apos; is kinda pointless here). How about mapLocalToContainerAccumulatingOffset? (couldn&apos;t think of something better or shorter)

&gt; Source/WebCore/rendering/RenderObject.cpp:2088
&gt; -        return;
&gt; +        return transformState.move(adjustOffsetForSnapping(mode, accumulatedOffset));

How can this compile? mapLocalToContainerInternal is void.

&gt; Source/WebCore/rendering/RenderView.cpp:231
&gt; +        transformState.move(adjustOffsetForSnapping(mode, m_frameView-&gt;scrollOffsetForFixedPosition() + accumulatedOffset));
&gt; +        accumulatedOffset = LayoutSize();

Can&apos;t this be written:

accumulatedOffset.expand(m_frameView-&gt;scrollOffsetForFixedPosition())
applyAccumulatedOffset(transformState, accumulatedOffset, mode);

&gt; Source/WebCore/rendering/svg/RenderSVGText.cpp:116
&gt; -    SVGRenderSupport::mapLocalToContainer(this, repaintContainer, transformState, mode &amp; SnapOffsetForTransforms, wasFixed);
&gt; +    SVGRenderSupport::mapLocalToContainer(this, repaintContainer, transformState, accumulatedOffset, mode, wasFixed);

The ChangeLog should mention why it is fine to remove mode &amp; SnapOffsetForTransforms from all the SVG classes, along with keep the default value for MapCoordinatesFlags to ApplyContainerFlip | SnapOffsetForTransforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>788664</commentid>
    <comment_count>37</comment_count>
      <attachid>178596</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-12-11 12:24:35 -0800</bug_when>
    <thetext>Comment on attachment 178596
Patch

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

Why aren&apos;t the pixel results using mock scrollbars?

It&apos;s very hard for me to tell whether this patch is correct. I&apos;d feel more confident if you had a bunch of tests that hit assertions with the wrong version of the patch, but no longer do so. r- for the apparently incorrect flattening.

&gt; Source/WebCore/ChangeLog:42
&gt; +        (WebCore::RenderObject::mapLocalToContainer): Broke mapLocalToContainer into this public function and
&gt; +        mapLocalToContainerInternal. The internal flavors track an accumulated offset which is used to recreate the pixel
&gt; +        snapping that&apos;s performed during paint. This public function calls the internal one, then applies any leftover
&gt; +        accumulated offset before returning the TransformState to the caller.

mapLocalToContainer was already the &quot;internal&quot; method. I agree with Julian that some renaming might help.

&gt; Source/WebCore/rendering/RenderBox.cpp:1425
&gt; +        applyAccumulatedOffset(transformState, accumulatedOffset, mode);

applyAccumulatedOffset() is flattening here, since the default last param is &apos;false&apos;. How can that be correct?

&gt; Source/WebCore/rendering/RenderBox.cpp:1429
&gt; -        transformState.move(containerOffset.width(), containerOffset.height(), preserve3D ? TransformState::AccumulateTransform : TransformState::FlattenTransform);
&gt; +        accumulatedOffset.expand(containerOffset);

So it seems like you&apos;re carrying along all of the non-transform offsets in accumulatedOffset, which kinda defeats the purpose of TransformState. This seems like a cop-out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790834</commentid>
    <comment_count>38</comment_count>
      <attachid>179318</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2012-12-13 12:51:06 -0800</bug_when>
    <thetext>Created attachment 179318
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790836</commentid>
    <comment_count>39</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2012-12-13 12:53:08 -0800</bug_when>
    <thetext>Managed to simplify things greatly and move everything into TransformState. I&apos;d missed a couple things that prevented me from getting this solution right before. This also *removes* SnapOffsetForTransforms, which should make everyone pretty happy :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790872</commentid>
    <comment_count>40</comment_count>
      <attachid>179318</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-12-13 13:43:15 -0800</bug_when>
    <thetext>Comment on attachment 179318
Patch

Attachment 179318 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/15315386</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790882</commentid>
    <comment_count>41</comment_count>
      <attachid>179325</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2012-12-13 13:52:52 -0800</bug_when>
    <thetext>Created attachment 179325
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790997</commentid>
    <comment_count>42</comment_count>
      <attachid>179325</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-12-13 15:20:50 -0800</bug_when>
    <thetext>Comment on attachment 179325
Patch

Attachment 179325 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/15313424</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>791062</commentid>
    <comment_count>43</comment_count>
      <attachid>179366</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2012-12-13 16:09:43 -0800</bug_when>
    <thetext>Created attachment 179366
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>791131</commentid>
    <comment_count>44</comment_count>
      <attachid>179366</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-12-13 17:06:43 -0800</bug_when>
    <thetext>Comment on attachment 179366
Patch

I like this so much better!.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>791536</commentid>
    <comment_count>45</comment_count>
      <attachid>179366</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-12-14 04:32:18 -0800</bug_when>
    <thetext>Comment on attachment 179366
Patch

Attachment 179366 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/15315675

New failing tests:
fast/dom/Window/webkitConvertPoint.html
transforms/3d/point-mapping/3d-point-mapping-deep.html
accessibility/radio-button-group-members.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792366</commentid>
    <comment_count>46</comment_count>
      <attachid>179660</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2012-12-16 13:07:37 -0800</bug_when>
    <thetext>Created attachment 179660
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792374</commentid>
    <comment_count>47</comment_count>
      <attachid>179660</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-16 13:52:16 -0800</bug_when>
    <thetext>Comment on attachment 179660
Patch for landing

Clearing flags on attachment: 179660

Committed r137847: &lt;http://trac.webkit.org/changeset/137847&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792375</commentid>
    <comment_count>48</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-16 13:52:24 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173358</attachid>
            <date>2012-11-09 13:56:57 -0800</date>
            <delta_ts>2012-11-09 14:31:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101779-20121109135504.patch</filename>
            <type>text/plain</type>
            <size>56750</size>
            <attacher name="Levi Weintraub">leviw</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNDA5MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQyIEBACisyMDEyLTExLTA5ICBMZXZpIFdl
aW50cmF1YiAgPGxldml3QGNocm9taXVtLm9yZz4KKworICAgICAgICBBY2N1bXVsYXRlIHVzaW5n
IGEgTGF5b3V0U2l6ZSBpbiBtYXBMb2NhbFRvQ29udGFpbmVyIHdoZW4gcG9zc2libGUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTc3OQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1hcExvY2FsVG9Db250
YWluZXIgcHJldmlvdXNseSBhY2N1bXVsYXRlZCBvZmZzZXRzIGluIFRyYW5zZm9ybVN0YXRlLCB3
aGljaCBpcyBwb3RlbnRpYWxseSBleHBlbnNpdmUgd2hlbiB0aGVyZSBhcmUKKyAgICAgICAgdHJh
bnNmb3JtcywgYnV0IGFsc28gZnVuY3Rpb25hbGx5IGluY29ycmVjdCB3aGVuIHRoZXJlIGFyZSBt
dWx0aXBsZSBsZXZlbHMgb2YgY29udGFpbmVycyB3aXRoIHN1Yi1waXhlbCBvZmZzZXRzIGluCisg
ICAgICAgIHRoZSByZW5kZXJlciBjaGFpbiwgYXMgd2Ugd291bGQgcGl4ZWwgc25hcCBmcm9tIHRo
ZSBib3R0b20gdG93YXJkcyB0aGUgcm9vdCBpbnN0ZWFkIG9mIHZpY2UtdmVyc2EsIGFzIHdlIGRv
IHdoZW4KKyAgICAgICAgd2UgcGFpbnQuIFRoaXMgZnVuY3Rpb25hbGx5IGluY29ycmVjdCBiZWhh
dmlvciBsZWFkcyB0byByZXBhaW50IGFydGlmYWN0cywgZXNwZWNpYWxseSBpbiB3aWRnZXRzLiBU
aGlzIGNoYW5nZSB3aWxsCisgICAgICAgIGFsc28gaW1wcm92ZSBwZXJmb3JtYW5jZSBzaW5jZSB3
ZSBvbmx5IGhhdmUgdG8gYXBwbHkgdGhlIHRyYW5zZm9ybSB0byBuKzEgb2Zmc2V0cyB3aGVyZSBu
IGlzIHRoZSBudW1iZXIgb2YKKyAgICAgICAgdHJhbnNmb3JtcyBpbiB0aGUgY2hhaW4sIHdoZXJl
YXMgY3VycmVudGx5IHdlIGhhdmUgdG8gYXBwbHkgaXQgTyhtKSB3aGVyZSBtIGlzIHRoZSBudW1i
ZXIgb2YgcmVuZGVyZXJzIGluIHRoZSBjaGFpbiwKKyAgICAgICAgd2l0aCBzb21lIGVsZW1lbnRz
IGFjY3VtdWxhdGluZyBtdWx0aXBsZSBvZmZzZXRzLgorCisgICAgICAgIFJlZmFjdG9yZWQgYSBw
cmV2aW91cyB0ZXN0IHRvIGFsc28gY292ZXIgdGhpcy4KKworICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0xheW91dFNpemUuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlcklubGluZS5jcHA6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlcklubGluZS5oOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJPYmplY3QuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVmlldy5jcHA6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR0ZvcmVpZ25PYmplY3QuY3BwOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHRm9yZWlnbk9iamVjdC5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5s
aW5lLmNwcDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5oOgorICAg
ICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwOgorICAgICAgICAq
IHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuaDoKKyAgICAgICAgKiByZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHUm9vdC5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5jcHA6Cisg
ICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0Lmg6CisgICAgICAgICogcmVuZGVy
aW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1NW
R1JlbmRlclN1cHBvcnQuaDoKKwogMjAxMi0xMS0wOSAgSm9zaHVhIEJlbGwgIDxqc2JlbGxAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gVW5yZXZpZXdlZCBnYXJkZW5pbmcuIEZp
eCBjaHJvbWl1bS13aW4gYnVpbGRzIGZvbGxvd2luZyByMTM0MDgyCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9MYXlvdXRTaXplLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTGF5b3V0U2l6ZS5oCShyZXZpc2lvbiAxMzM4MzEp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9MYXlvdXRTaXplLmgJKHdvcmtp
bmcgY29weSkKQEAgLTcxLDcgKzcxLDEzIEBAIHB1YmxpYzoKICAgICAgICAgbV93aWR0aCArPSB3
aWR0aDsKICAgICAgICAgbV9oZWlnaHQgKz0gaGVpZ2h0OwogICAgIH0KLSAgICAKKworICAgIHZv
aWQgZXhwYW5kKGNvbnN0IExheW91dFNpemUmIHMpCisgICAgeworICAgICAgICBtX3dpZHRoICs9
IHMubV93aWR0aDsKKyAgICAgICAgbV9oZWlnaHQgKz0gcy5tX2hlaWdodDsKKyAgICB9CisKICAg
ICB2b2lkIHNjYWxlKGZsb2F0IHNjYWxlKQogICAgIHsKICAgICAgICAgbV93aWR0aCAqPSBzY2Fs
ZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCShyZXZpc2lvbiAx
MzM4MzEpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTI2OSwxMCArMTI2OSwxMyBAQCBMYXlvdXRVbml0IFJlbmRlckJveDo6cGVy
cGVuZGljdWxhckNvbnRhCiAgICAgcmV0dXJuIGNiLT5hZGp1c3RDb250ZW50Qm94TG9naWNhbEhl
aWdodEZvckJveFNpemluZyhsb2dpY2FsSGVpZ2h0TGVuZ3RoLnZhbHVlKCkpOwogfQogCi12b2lk
IFJlbmRlckJveDo6bWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBy
ZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIE1hcENvb3Jk
aW5hdGVzRmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQpIGNvbnN0Cit2b2lkIFJlbmRlckJveDo6
bWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFp
bmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIE1hcENvb3JkaW5hdGVzRmxhZ3Mg
bW9kZSwgYm9vbCogd2FzRml4ZWQsIExheW91dFNpemUgYWNjdW11bGF0ZWRPZmZzZXQpIGNvbnN0
CiB7CisgICAgYm9vbCBjb250YWluZXJTa2lwcGVkOworICAgIFJlbmRlck9iamVjdCogbyA9IGNv
bnRhaW5lcihyZXBhaW50Q29udGFpbmVyLCAmY29udGFpbmVyU2tpcHBlZCk7CisgICAgYm9vbCBw
cmVzZXJ2ZTNEID0gbW9kZSAmIFVzZVRyYW5zZm9ybXMgJiYgKChvICYmIG8tPnN0eWxlKCktPnBy
ZXNlcnZlczNEKCkpIHx8IHN0eWxlKCktPnByZXNlcnZlczNEKCkpOwogICAgIGlmIChyZXBhaW50
Q29udGFpbmVyID09IHRoaXMpCi0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJuIHRyYW5z
Zm9ybVN0YXRlLm1vdmUoKG1vZGUgJiBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcykgPyByb3VuZGVk
SW50U2l6ZShhY2N1bXVsYXRlZE9mZnNldCkgOiBhY2N1bXVsYXRlZE9mZnNldCwgcHJlc2VydmUz
RCA/IFRyYW5zZm9ybVN0YXRlOjpBY2N1bXVsYXRlVHJhbnNmb3JtIDogVHJhbnNmb3JtU3RhdGU6
OkZsYXR0ZW5UcmFuc2Zvcm0pOwogCiAgICAgaWYgKFJlbmRlclZpZXcqIHYgPSB2aWV3KCkpIHsK
ICAgICAgICAgaWYgKHYtPmxheW91dFN0YXRlRW5hYmxlZCgpICYmICFyZXBhaW50Q29udGFpbmVy
KSB7CkBAIC0xMjg1LDEwICsxMjg4LDkgQEAgdm9pZCBSZW5kZXJCb3g6Om1hcExvY2FsVG9Db250
YWluZXIoUmVuZAogICAgICAgICB9CiAgICAgfQogCi0gICAgYm9vbCBjb250YWluZXJTa2lwcGVk
OwotICAgIFJlbmRlck9iamVjdCogbyA9IGNvbnRhaW5lcihyZXBhaW50Q29udGFpbmVyLCAmY29u
dGFpbmVyU2tpcHBlZCk7CisKICAgICBpZiAoIW8pCi0gICAgICAgIHJldHVybjsKKyAgICAgICAg
cmV0dXJuIHRyYW5zZm9ybVN0YXRlLm1vdmUoKG1vZGUgJiBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jt
cykgPyByb3VuZGVkSW50U2l6ZShhY2N1bXVsYXRlZE9mZnNldCkgOiBhY2N1bXVsYXRlZE9mZnNl
dCwgcHJlc2VydmUzRCA/IFRyYW5zZm9ybVN0YXRlOjpBY2N1bXVsYXRlVHJhbnNmb3JtIDogVHJh
bnNmb3JtU3RhdGU6OkZsYXR0ZW5UcmFuc2Zvcm0pOwogCiAgICAgYm9vbCBpc0ZpeGVkUG9zID0g
c3R5bGUoKS0+cG9zaXRpb24oKSA9PSBGaXhlZFBvc2l0aW9uOwogICAgIGJvb2wgaGFzVHJhbnNm
b3JtID0gaGFzTGF5ZXIoKSAmJiBsYXllcigpLT50cmFuc2Zvcm0oKTsKQEAgLTEzMDIsMzYgKzEz
MDQsMzYgQEAgdm9pZCBSZW5kZXJCb3g6Om1hcExvY2FsVG9Db250YWluZXIoUmVuZAogICAgIGlm
ICh3YXNGaXhlZCkKICAgICAgICAgKndhc0ZpeGVkID0gbW9kZSAmIElzRml4ZWQ7CiAgICAgCi0g
ICAgTGF5b3V0U2l6ZSBjb250YWluZXJPZmZzZXQgPSBvZmZzZXRGcm9tQ29udGFpbmVyKG8sIHJv
dW5kZWRMYXlvdXRQb2ludCh0cmFuc2Zvcm1TdGF0ZS5tYXBwZWRQb2ludCgpKSk7Ci0gICAgaWYg
KG1vZGUgJiBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcykKLSAgICAgICAgY29udGFpbmVyT2Zmc2V0
ID0gcm91bmRlZEludFNpemUoY29udGFpbmVyT2Zmc2V0KTsKKyAgICBMYXlvdXRTaXplIGNvbnRh
aW5lck9mZnNldCA9IG9mZnNldEZyb21Db250YWluZXIobywgcm91bmRlZExheW91dFBvaW50KHRy
YW5zZm9ybVN0YXRlLm1hcHBlZFBvaW50KCkgKyBhY2N1bXVsYXRlZE9mZnNldCkpOwogICAgIAot
ICAgIGJvb2wgcHJlc2VydmUzRCA9IG1vZGUgJiBVc2VUcmFuc2Zvcm1zICYmIChvLT5zdHlsZSgp
LT5wcmVzZXJ2ZXMzRCgpIHx8IHN0eWxlKCktPnByZXNlcnZlczNEKCkpOwogICAgIGlmIChtb2Rl
ICYgVXNlVHJhbnNmb3JtcyAmJiBzaG91bGRVc2VUcmFuc2Zvcm1Gcm9tQ29udGFpbmVyKG8pKSB7
CiAgICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHQ7CiAgICAgICAgIGdldFRyYW5zZm9ybUZy
b21Db250YWluZXIobywgY29udGFpbmVyT2Zmc2V0LCB0KTsKKyAgICAgICAgdHJhbnNmb3JtU3Rh
dGUubW92ZSgobW9kZSAmIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKSA/IHJvdW5kZWRJbnRTaXpl
KGFjY3VtdWxhdGVkT2Zmc2V0KSA6IGFjY3VtdWxhdGVkT2Zmc2V0LCBwcmVzZXJ2ZTNEID8gVHJh
bnNmb3JtU3RhdGU6OkFjY3VtdWxhdGVUcmFuc2Zvcm0gOiBUcmFuc2Zvcm1TdGF0ZTo6RmxhdHRl
blRyYW5zZm9ybSk7CisgICAgICAgIGFjY3VtdWxhdGVkT2Zmc2V0ID0gTGF5b3V0U2l6ZSgpOwog
ICAgICAgICB0cmFuc2Zvcm1TdGF0ZS5hcHBseVRyYW5zZm9ybSh0LCBwcmVzZXJ2ZTNEID8gVHJh
bnNmb3JtU3RhdGU6OkFjY3VtdWxhdGVUcmFuc2Zvcm0gOiBUcmFuc2Zvcm1TdGF0ZTo6RmxhdHRl
blRyYW5zZm9ybSk7CiAgICAgfSBlbHNlCi0gICAgICAgIHRyYW5zZm9ybVN0YXRlLm1vdmUoY29u
dGFpbmVyT2Zmc2V0LndpZHRoKCksIGNvbnRhaW5lck9mZnNldC5oZWlnaHQoKSwgcHJlc2VydmUz
RCA/IFRyYW5zZm9ybVN0YXRlOjpBY2N1bXVsYXRlVHJhbnNmb3JtIDogVHJhbnNmb3JtU3RhdGU6
OkZsYXR0ZW5UcmFuc2Zvcm0pOworICAgICAgICBhY2N1bXVsYXRlZE9mZnNldC5leHBhbmQoY29u
dGFpbmVyT2Zmc2V0KTsKIAogICAgIGlmIChjb250YWluZXJTa2lwcGVkKSB7CiAgICAgICAgIC8v
IFRoZXJlIGNhbid0IGJlIGEgdHJhbnNmb3JtIGJldHdlZW4gcmVwYWludENvbnRhaW5lciBhbmQg
bywgYmVjYXVzZSB0cmFuc2Zvcm1zIGNyZWF0ZSBjb250YWluZXJzLCBzbyBpdCBzaG91bGQgYmUg
c2FmZQogICAgICAgICAvLyB0byBqdXN0IHN1YnRyYWN0IHRoZSBkZWx0YSBiZXR3ZWVuIHRoZSBy
ZXBhaW50Q29udGFpbmVyIGFuZCBvLgogICAgICAgICBMYXlvdXRTaXplIGNvbnRhaW5lck9mZnNl
dCA9IHJlcGFpbnRDb250YWluZXItPm9mZnNldEZyb21BbmNlc3RvckNvbnRhaW5lcihvKTsKLSAg
ICAgICAgdHJhbnNmb3JtU3RhdGUubW92ZSgtY29udGFpbmVyT2Zmc2V0LndpZHRoKCksIC1jb250
YWluZXJPZmZzZXQuaGVpZ2h0KCksIHByZXNlcnZlM0QgPyBUcmFuc2Zvcm1TdGF0ZTo6QWNjdW11
bGF0ZVRyYW5zZm9ybSA6IFRyYW5zZm9ybVN0YXRlOjpGbGF0dGVuVHJhbnNmb3JtKTsKLSAgICAg
ICAgcmV0dXJuOworICAgICAgICBhY2N1bXVsYXRlZE9mZnNldC5leHBhbmQoLWNvbnRhaW5lck9m
ZnNldCk7CisgICAgICAgIHJldHVybiB0cmFuc2Zvcm1TdGF0ZS5tb3ZlKChtb2RlICYgU25hcE9m
ZnNldEZvclRyYW5zZm9ybXMpID8gcm91bmRlZEludFNpemUoYWNjdW11bGF0ZWRPZmZzZXQpIDog
YWNjdW11bGF0ZWRPZmZzZXQsIHByZXNlcnZlM0QgPyBUcmFuc2Zvcm1TdGF0ZTo6QWNjdW11bGF0
ZVRyYW5zZm9ybSA6IFRyYW5zZm9ybVN0YXRlOjpGbGF0dGVuVHJhbnNmb3JtKTsKICAgICB9CiAK
ICAgICBtb2RlICY9IH5BcHBseUNvbnRhaW5lckZsaXA7CiAgICAgaWYgKG8tPmlzUmVuZGVyRmxv
d1RocmVhZCgpKSB7CiAgICAgICAgIC8vIFRyYW5zZm9ybSBmcm9tIHJlbmRlciBmbG93IGNvb3Jk
aW5hdGVzIGludG8gcmVnaW9uIGNvb3JkaW5hdGVzLgorICAgICAgICB0cmFuc2Zvcm1TdGF0ZS5t
b3ZlKChtb2RlICYgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpID8gcm91bmRlZEludFNpemUoYWNj
dW11bGF0ZWRPZmZzZXQpIDogYWNjdW11bGF0ZWRPZmZzZXQsIHByZXNlcnZlM0QgPyBUcmFuc2Zv
cm1TdGF0ZTo6QWNjdW11bGF0ZVRyYW5zZm9ybSA6IFRyYW5zZm9ybVN0YXRlOjpGbGF0dGVuVHJh
bnNmb3JtKTsKICAgICAgICAgUmVuZGVyUmVnaW9uKiByZWdpb24gPSB0b1JlbmRlckZsb3dUaHJl
YWQobyktPm1hcEZyb21GbG93VG9SZWdpb24odHJhbnNmb3JtU3RhdGUpOwogICAgICAgICBpZiAo
cmVnaW9uKQogICAgICAgICAgICAgcmVnaW9uLT5tYXBMb2NhbFRvQ29udGFpbmVyKHJlZ2lvbi0+
Y29udGFpbmVyRm9yUmVwYWludCgpLCB0cmFuc2Zvcm1TdGF0ZSwgbW9kZSwgd2FzRml4ZWQpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgby0+bWFwTG9jYWxUb0NvbnRhaW5lcihyZXBh
aW50Q29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwgbW9kZSwgd2FzRml4ZWQpOworICAgIG8tPm1h
cExvY2FsVG9Db250YWluZXIocmVwYWludENvbnRhaW5lciwgdHJhbnNmb3JtU3RhdGUsIG1vZGUs
IHdhc0ZpeGVkLCBhY2N1bXVsYXRlZE9mZnNldCk7CiB9CiAKIGNvbnN0IFJlbmRlck9iamVjdCog
UmVuZGVyQm94OjpwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxP
YmplY3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJiBnZW9tZXRyeU1hcCkg
Y29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgJKHJldmlzaW9uIDEz
MzgzMSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAkod29ya2luZyBj
b3B5KQpAQCAtNTc2LDcgKzU3Niw3IEBAIHByb3RlY3RlZDoKICAgICAKICAgICB2aXJ0dWFsIGJv
b2wgc2hvdWxkQ29tcHV0ZVNpemVBc1JlcGxhY2VkKCkgY29uc3QgeyByZXR1cm4gaXNSZXBsYWNl
ZCgpICYmICFpc0lubGluZUJsb2NrT3JJbmxpbmVUYWJsZSgpOyB9CiAKLSAgICB2aXJ0dWFsIHZv
aWQgbWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29u
dGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRh
aW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCogd2FzRml4ZWQgPSAwKSBj
b25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihSZW5k
ZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1h
cENvb3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5lckZsaXAsIGJvb2wqIHdhc0ZpeGVkID0g
MCwgTGF5b3V0U2l6ZSBhY2N1bXVsYXRlZE9mZnNldCA9IExheW91dFNpemUoKSkgY29uc3QgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBSZW5kZXJPYmplY3QqIHB1c2hNYXBwaW5nVG9Db250
YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCosIFJlbmRlckdlb21ldHJ5TWFwJikg
Y29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIG1hcEFic29sdXRlVG9Mb2NhbFBvaW50
KE1hcENvb3JkaW5hdGVzRmxhZ3MsIFRyYW5zZm9ybVN0YXRlJikgY29uc3Q7CiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCShyZXZpc2lvbiAxMzM4MzEp
CisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTExMiw1NiArMTExMiw1MyBAQCBMYXlvdXRTaXplIFJlbmRlcklubGluZTo6b2Zm
c2V0RnJvbUNvbnRhCiAgICAgcmV0dXJuIG9mZnNldDsKIH0KIAotdm9pZCBSZW5kZXJJbmxpbmU6
Om1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRh
aW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBDb29yZGluYXRlc0ZsYWdz
IG1vZGUsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAordm9pZCBSZW5kZXJJbmxpbmU6Om1hcExvY2Fs
VG9Db250YWluZXIoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJh
bnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUsIGJv
b2wqIHdhc0ZpeGVkLCBMYXlvdXRTaXplIGFjY3VtdWxhdGVkT2Zmc2V0KSBjb25zdAogeworICAg
IGJvb2wgY29udGFpbmVyU2tpcHBlZDsKKyAgICBSZW5kZXJPYmplY3QqIG8gPSBjb250YWluZXIo
cmVwYWludENvbnRhaW5lciwgJmNvbnRhaW5lclNraXBwZWQpOworICAgIGJvb2wgcHJlc2VydmUz
RCA9IG1vZGUgJiBVc2VUcmFuc2Zvcm1zICYmICgobyAmJiBvLT5zdHlsZSgpLT5wcmVzZXJ2ZXMz
RCgpKSB8fCBzdHlsZSgpLT5wcmVzZXJ2ZXMzRCgpKTsKICAgICBpZiAocmVwYWludENvbnRhaW5l
ciA9PSB0aGlzKQotICAgICAgICByZXR1cm47CisgICAgICAgIHJldHVybiB0cmFuc2Zvcm1TdGF0
ZS5tb3ZlKChtb2RlICYgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpID8gcm91bmRlZEludFNpemUo
YWNjdW11bGF0ZWRPZmZzZXQpIDogYWNjdW11bGF0ZWRPZmZzZXQsIHByZXNlcnZlM0QgPyBUcmFu
c2Zvcm1TdGF0ZTo6QWNjdW11bGF0ZVRyYW5zZm9ybSA6IFRyYW5zZm9ybVN0YXRlOjpGbGF0dGVu
VHJhbnNmb3JtKTs7CiAKICAgICBpZiAoUmVuZGVyVmlldyAqdiA9IHZpZXcoKSkgewogICAgICAg
ICBpZiAodi0+bGF5b3V0U3RhdGVFbmFibGVkKCkgJiYgIXJlcGFpbnRDb250YWluZXIpIHsKICAg
ICAgICAgICAgIExheW91dFN0YXRlKiBsYXlvdXRTdGF0ZSA9IHYtPmxheW91dFN0YXRlKCk7Ci0g
ICAgICAgICAgICBMYXlvdXRTaXplIG9mZnNldCA9IGxheW91dFN0YXRlLT5tX3BhaW50T2Zmc2V0
OworICAgICAgICAgICAgYWNjdW11bGF0ZWRPZmZzZXQuZXhwYW5kKGxheW91dFN0YXRlLT5tX3Bh
aW50T2Zmc2V0KTsKICAgICAgICAgICAgIGlmIChzdHlsZSgpLT5oYXNJbkZsb3dQb3NpdGlvbigp
ICYmIGxheWVyKCkpCi0gICAgICAgICAgICAgICAgb2Zmc2V0ICs9IGxheWVyKCktPm9mZnNldEZv
ckluRmxvd1Bvc2l0aW9uKCk7Ci0gICAgICAgICAgICB0cmFuc2Zvcm1TdGF0ZS5tb3ZlKG9mZnNl
dCk7CisgICAgICAgICAgICAgICAgYWNjdW11bGF0ZWRPZmZzZXQgKz0gbGF5ZXIoKS0+b2Zmc2V0
Rm9ySW5GbG93UG9zaXRpb24oKTsKKyAgICAgICAgICAgIHRyYW5zZm9ybVN0YXRlLm1vdmUoYWNj
dW11bGF0ZWRPZmZzZXQpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQog
Ci0gICAgYm9vbCBjb250YWluZXJTa2lwcGVkOwotICAgIFJlbmRlck9iamVjdCogbyA9IGNvbnRh
aW5lcihyZXBhaW50Q29udGFpbmVyLCAmY29udGFpbmVyU2tpcHBlZCk7CiAgICAgaWYgKCFvKQot
ICAgICAgICByZXR1cm47CisgICAgICAgIHJldHVybiB0cmFuc2Zvcm1TdGF0ZS5tb3ZlKChtb2Rl
ICYgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpID8gcm91bmRlZEludFNpemUoYWNjdW11bGF0ZWRP
ZmZzZXQpIDogYWNjdW11bGF0ZWRPZmZzZXQsIHByZXNlcnZlM0QgPyBUcmFuc2Zvcm1TdGF0ZTo6
QWNjdW11bGF0ZVRyYW5zZm9ybSA6IFRyYW5zZm9ybVN0YXRlOjpGbGF0dGVuVHJhbnNmb3JtKTsK
IAogICAgIGlmIChtb2RlICYgQXBwbHlDb250YWluZXJGbGlwICYmIG8tPmlzQm94KCkpIHsKICAg
ICAgICAgaWYgKG8tPnN0eWxlKCktPmlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdNb2RlKCkpIHsKLSAg
ICAgICAgICAgIEludFBvaW50IGNlbnRlclBvaW50ID0gcm91bmRlZEludFBvaW50KHRyYW5zZm9y
bVN0YXRlLm1hcHBlZFBvaW50KCkpOwotICAgICAgICAgICAgdHJhbnNmb3JtU3RhdGUubW92ZSh0
b1JlbmRlckJveChvKS0+ZmxpcEZvcldyaXRpbmdNb2RlSW5jbHVkaW5nQ29sdW1ucyhjZW50ZXJQ
b2ludCkgLSBjZW50ZXJQb2ludCk7CisgICAgICAgICAgICBJbnRQb2ludCBjZW50ZXJQb2ludCA9
IHJvdW5kZWRJbnRQb2ludCh0cmFuc2Zvcm1TdGF0ZS5tYXBwZWRQb2ludCgpICsgYWNjdW11bGF0
ZWRPZmZzZXQpOworICAgICAgICAgICAgYWNjdW11bGF0ZWRPZmZzZXQuZXhwYW5kKHRvUmVuZGVy
Qm94KG8pLT5mbGlwRm9yV3JpdGluZ01vZGVJbmNsdWRpbmdDb2x1bW5zKGNlbnRlclBvaW50KSAt
IGNlbnRlclBvaW50KTsKICAgICAgICAgfQogICAgICAgICBtb2RlICY9IH5BcHBseUNvbnRhaW5l
ckZsaXA7CiAgICAgfQogCi0gICAgTGF5b3V0U2l6ZSBjb250YWluZXJPZmZzZXQgPSBvZmZzZXRG
cm9tQ29udGFpbmVyKG8sIHJvdW5kZWRMYXlvdXRQb2ludCh0cmFuc2Zvcm1TdGF0ZS5tYXBwZWRQ
b2ludCgpKSk7Ci0gICAgaWYgKG1vZGUgJiBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcykKLSAgICAg
ICAgY29udGFpbmVyT2Zmc2V0ID0gcm91bmRlZEludFNpemUoY29udGFpbmVyT2Zmc2V0KTsKLQot
ICAgIGJvb2wgcHJlc2VydmUzRCA9IG1vZGUgJiBVc2VUcmFuc2Zvcm1zICYmIChvLT5zdHlsZSgp
LT5wcmVzZXJ2ZXMzRCgpIHx8IHN0eWxlKCktPnByZXNlcnZlczNEKCkpOworICAgIExheW91dFNp
emUgY29udGFpbmVyT2Zmc2V0ID0gb2Zmc2V0RnJvbUNvbnRhaW5lcihvLCByb3VuZGVkTGF5b3V0
UG9pbnQodHJhbnNmb3JtU3RhdGUubWFwcGVkUG9pbnQoKSArIGFjY3VtdWxhdGVkT2Zmc2V0KSk7
CiAgICAgaWYgKG1vZGUgJiBVc2VUcmFuc2Zvcm1zICYmIHNob3VsZFVzZVRyYW5zZm9ybUZyb21D
b250YWluZXIobykpIHsKICAgICAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggdDsKICAgICAgICAg
Z2V0VHJhbnNmb3JtRnJvbUNvbnRhaW5lcihvLCBjb250YWluZXJPZmZzZXQsIHQpOwogICAgICAg
ICB0cmFuc2Zvcm1TdGF0ZS5hcHBseVRyYW5zZm9ybSh0LCBwcmVzZXJ2ZTNEID8gVHJhbnNmb3Jt
U3RhdGU6OkFjY3VtdWxhdGVUcmFuc2Zvcm0gOiBUcmFuc2Zvcm1TdGF0ZTo6RmxhdHRlblRyYW5z
Zm9ybSk7CiAgICAgfSBlbHNlCi0gICAgICAgIHRyYW5zZm9ybVN0YXRlLm1vdmUoY29udGFpbmVy
T2Zmc2V0LndpZHRoKCksIGNvbnRhaW5lck9mZnNldC5oZWlnaHQoKSwgcHJlc2VydmUzRCA/IFRy
YW5zZm9ybVN0YXRlOjpBY2N1bXVsYXRlVHJhbnNmb3JtIDogVHJhbnNmb3JtU3RhdGU6OkZsYXR0
ZW5UcmFuc2Zvcm0pOworICAgICAgICBhY2N1bXVsYXRlZE9mZnNldC5leHBhbmQoY29udGFpbmVy
T2Zmc2V0KTsKIAogICAgIGlmIChjb250YWluZXJTa2lwcGVkKSB7CiAgICAgICAgIC8vIFRoZXJl
IGNhbid0IGJlIGEgdHJhbnNmb3JtIGJldHdlZW4gcmVwYWludENvbnRhaW5lciBhbmQgbywgYmVj
YXVzZSB0cmFuc2Zvcm1zIGNyZWF0ZSBjb250YWluZXJzLCBzbyBpdCBzaG91bGQgYmUgc2FmZQog
ICAgICAgICAvLyB0byBqdXN0IHN1YnRyYWN0IHRoZSBkZWx0YSBiZXR3ZWVuIHRoZSByZXBhaW50
Q29udGFpbmVyIGFuZCBvLgotICAgICAgICBMYXlvdXRTaXplIGNvbnRhaW5lck9mZnNldCA9IHJl
cGFpbnRDb250YWluZXItPm9mZnNldEZyb21BbmNlc3RvckNvbnRhaW5lcihvKTsKLSAgICAgICAg
dHJhbnNmb3JtU3RhdGUubW92ZSgtY29udGFpbmVyT2Zmc2V0LndpZHRoKCksIC1jb250YWluZXJP
ZmZzZXQuaGVpZ2h0KCksIHByZXNlcnZlM0QgPyBUcmFuc2Zvcm1TdGF0ZTo6QWNjdW11bGF0ZVRy
YW5zZm9ybSA6IFRyYW5zZm9ybVN0YXRlOjpGbGF0dGVuVHJhbnNmb3JtKTsKKyAgICAgICAgYWNj
dW11bGF0ZWRPZmZzZXQuZXhwYW5kKC1yZXBhaW50Q29udGFpbmVyLT5vZmZzZXRGcm9tQW5jZXN0
b3JDb250YWluZXIobykpOworICAgICAgICB0cmFuc2Zvcm1TdGF0ZS5tb3ZlKGFjY3VtdWxhdGVk
T2Zmc2V0LCBwcmVzZXJ2ZTNEID8gVHJhbnNmb3JtU3RhdGU6OkFjY3VtdWxhdGVUcmFuc2Zvcm0g
OiBUcmFuc2Zvcm1TdGF0ZTo6RmxhdHRlblRyYW5zZm9ybSk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKLSAgICBvLT5tYXBMb2NhbFRvQ29udGFpbmVyKHJlcGFpbnRDb250YWluZXIsIHRyYW5z
Zm9ybVN0YXRlLCBtb2RlLCB3YXNGaXhlZCk7CisgICAgby0+bWFwTG9jYWxUb0NvbnRhaW5lcihy
ZXBhaW50Q29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwgbW9kZSwgd2FzRml4ZWQsIGFjY3VtdWxh
dGVkT2Zmc2V0KTsKIH0KIAogY29uc3QgUmVuZGVyT2JqZWN0KiBSZW5kZXJJbmxpbmU6OnB1c2hN
YXBwaW5nVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0b3JU
b1N0b3BBdCwgUmVuZGVyR2VvbWV0cnlNYXAmIGdlb21ldHJ5TWFwKSBjb25zdApJbmRleDogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaAkocmV2aXNpb24gMTMzODMxKQorKysg
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xMzgsNyArMTM4LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIExheW91dFJlY3QgcmVjdFdp
dGhPdXRsaW5lRm9yUmVwYWludChSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFp
bmVyLCBMYXlvdXRVbml0IG91dGxpbmVXaWR0aCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCB2b2lkIGNvbXB1dGVSZWN0Rm9yUmVwYWludChSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBh
aW50Q29udGFpbmVyLCBMYXlvdXRSZWN0JiwgYm9vbCBmaXhlZCkgY29uc3QgT1ZFUlJJREU7CiAK
LSAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJMYXllck1vZGVsT2Jq
ZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxh
Z3MgPSBBcHBseUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCog
d2FzRml4ZWQgPSAwKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxU
b0NvbnRhaW5lcihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFu
c2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5lckZsaXAsIGJv
b2wqIHdhc0ZpeGVkID0gMCwgTGF5b3V0U2l6ZSBhY2N1bXVsYXRlZE9mZnNldCA9IExheW91dFNp
emUoKSkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBSZW5kZXJPYmplY3QqIHB1
c2hNYXBwaW5nVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0
b3JUb1N0b3BBdCwgUmVuZGVyR2VvbWV0cnlNYXAmKSBjb25zdCBPVkVSUklERTsKIAogICAgIHZp
cnR1YWwgVmlzaWJsZVBvc2l0aW9uIHBvc2l0aW9uRm9yUG9pbnQoY29uc3QgTGF5b3V0UG9pbnQm
KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCShyZXZp
c2lvbiAxMzM4MzEpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjAzMSwzMiArMjAzMSwzMiBAQCBGbG9hdFBvaW50IFJlbmRl
ck9iamVjdDo6YWJzb2x1dGVUb0xvY2FsCiAgICAgcmV0dXJuIHRyYW5zZm9ybVN0YXRlLmxhc3RQ
bGFuYXJQb2ludCgpOwogfQogCi12b2lkIFJlbmRlck9iamVjdDo6bWFwTG9jYWxUb0NvbnRhaW5l
cihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0
ZSYgdHJhbnNmb3JtU3RhdGUsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4
ZWQpIGNvbnN0Cit2b2lkIFJlbmRlck9iamVjdDo6bWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJM
YXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNm
b3JtU3RhdGUsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQsIExheW91
dFNpemUgYWNjdW11bGF0ZWRPZmZzZXQpIGNvbnN0CiB7CiAgICAgaWYgKHJlcGFpbnRDb250YWlu
ZXIgPT0gdGhpcykKLSAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1cm4gdHJhbnNmb3JtU3Rh
dGUubW92ZSgobW9kZSAmIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKSA/IHJvdW5kZWRJbnRTaXpl
KGFjY3VtdWxhdGVkT2Zmc2V0KSA6IGFjY3VtdWxhdGVkT2Zmc2V0KTsKIAogICAgIFJlbmRlck9i
amVjdCogbyA9IHBhcmVudCgpOwogICAgIGlmICghbykKLSAgICAgICAgcmV0dXJuOworICAgICAg
ICByZXR1cm4gdHJhbnNmb3JtU3RhdGUubW92ZSgobW9kZSAmIFNuYXBPZmZzZXRGb3JUcmFuc2Zv
cm1zKSA/IHJvdW5kZWRJbnRTaXplKGFjY3VtdWxhdGVkT2Zmc2V0KSA6IGFjY3VtdWxhdGVkT2Zm
c2V0KTsKIAogICAgIC8vIEZJWE1FOiB0aGlzIHNob3VsZCBjYWxsIG9mZnNldEZyb21Db250YWlu
ZXIgdG8gc2hhcmUgY29kZSwgYnV0IEknbSBub3Qgc3VyZSBpdCdzIGV2ZXIgY2FsbGVkLgogICAg
IExheW91dFBvaW50IGNlbnRlclBvaW50ID0gcm91bmRlZExheW91dFBvaW50KHRyYW5zZm9ybVN0
YXRlLm1hcHBlZFBvaW50KCkpOwogICAgIGlmIChtb2RlICYgQXBwbHlDb250YWluZXJGbGlwICYm
IG8tPmlzQm94KCkpIHsKICAgICAgICAgaWYgKG8tPnN0eWxlKCktPmlzRmxpcHBlZEJsb2Nrc1dy
aXRpbmdNb2RlKCkpCi0gICAgICAgICAgICB0cmFuc2Zvcm1TdGF0ZS5tb3ZlKHRvUmVuZGVyQm94
KG8pLT5mbGlwRm9yV3JpdGluZ01vZGVJbmNsdWRpbmdDb2x1bW5zKHJvdW5kZWRMYXlvdXRQb2lu
dCh0cmFuc2Zvcm1TdGF0ZS5tYXBwZWRQb2ludCgpKSkgLSBjZW50ZXJQb2ludCk7CisgICAgICAg
ICAgICBhY2N1bXVsYXRlZE9mZnNldC5leHBhbmQodG9SZW5kZXJCb3gobyktPmZsaXBGb3JXcml0
aW5nTW9kZUluY2x1ZGluZ0NvbHVtbnMocm91bmRlZExheW91dFBvaW50KHRyYW5zZm9ybVN0YXRl
Lm1hcHBlZFBvaW50KCkpICsgYWNjdW11bGF0ZWRPZmZzZXQpIC0gY2VudGVyUG9pbnQpOwogICAg
ICAgICBtb2RlICY9IH5BcHBseUNvbnRhaW5lckZsaXA7CiAgICAgfQogCiAgICAgTGF5b3V0U2l6
ZSBjb2x1bW5PZmZzZXQ7Ci0gICAgby0+YWRqdXN0Rm9yQ29sdW1ucyhjb2x1bW5PZmZzZXQsIHJv
dW5kZWRMYXlvdXRQb2ludCh0cmFuc2Zvcm1TdGF0ZS5tYXBwZWRQb2ludCgpKSk7CisgICAgby0+
YWRqdXN0Rm9yQ29sdW1ucyhjb2x1bW5PZmZzZXQsIHJvdW5kZWRMYXlvdXRQb2ludCh0cmFuc2Zv
cm1TdGF0ZS5tYXBwZWRQb2ludCgpKSArIGFjY3VtdWxhdGVkT2Zmc2V0KTsKICAgICBpZiAoIWNv
bHVtbk9mZnNldC5pc1plcm8oKSkKLSAgICAgICAgdHJhbnNmb3JtU3RhdGUubW92ZShjb2x1bW5P
ZmZzZXQpOworICAgICAgICBhY2N1bXVsYXRlZE9mZnNldC5leHBhbmQoY29sdW1uT2Zmc2V0KTsK
IAogICAgIGlmIChvLT5oYXNPdmVyZmxvd0NsaXAoKSkKLSAgICAgICAgdHJhbnNmb3JtU3RhdGUu
bW92ZSgtdG9SZW5kZXJCb3gobyktPnNjcm9sbGVkQ29udGVudE9mZnNldCgpKTsKKyAgICAgICAg
YWNjdW11bGF0ZWRPZmZzZXQuZXhwYW5kKC10b1JlbmRlckJveChvKS0+c2Nyb2xsZWRDb250ZW50
T2Zmc2V0KCkpOwogCi0gICAgby0+bWFwTG9jYWxUb0NvbnRhaW5lcihyZXBhaW50Q29udGFpbmVy
LCB0cmFuc2Zvcm1TdGF0ZSwgbW9kZSwgd2FzRml4ZWQpOworICAgIG8tPm1hcExvY2FsVG9Db250
YWluZXIocmVwYWludENvbnRhaW5lciwgdHJhbnNmb3JtU3RhdGUsIG1vZGUsIHdhc0ZpeGVkLCBh
Y2N1bXVsYXRlZE9mZnNldCk7CiB9CiAKIGNvbnN0IFJlbmRlck9iamVjdCogUmVuZGVyT2JqZWN0
OjpwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGFu
Y2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJiBnZW9tZXRyeU1hcCkgY29uc3QKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgJKHJldmlzaW9uIDEzMzgz
MSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAkod29ya2luZyBj
b3B5KQpAQCAtOTMyLDcgKzkzMiw3IEBAIHB1YmxpYzoKIAogICAgIC8vIE1hcCBwb2ludHMgYW5k
IHF1YWRzIHRocm91Z2ggZWxlbWVudHMsIHBvdGVudGlhbGx5IHZpYSAzZCB0cmFuc2Zvcm1zLiBZ
b3Ugc2hvdWxkIG5ldmVyIG5lZWQgdG8gY2FsbCB0aGVzZSBkaXJlY3RseTsgdXNlCiAgICAgLy8g
bG9jYWxUb0Fic29sdXRlL2Fic29sdXRlVG9Mb2NhbCBtZXRob2RzIGluc3RlYWQuCi0gICAgdmly
dHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVw
YWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBDb29yZGluYXRlc0ZsYWdzID0gQXBw
bHlDb250YWluZXJGbGlwLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0OworICAgIHZpcnR1YWwg
dm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRD
b250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29vcmRpbmF0ZXNGbGFncyA9IEFwcGx5Q29u
dGFpbmVyRmxpcCwgYm9vbCogd2FzRml4ZWQgPSAwLCBMYXlvdXRTaXplIGFjY3VtdWxhdGVkT2Zm
c2V0ID0gTGF5b3V0U2l6ZSgpKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgbWFwQWJzb2x1dGVU
b0xvY2FsUG9pbnQoTWFwQ29vcmRpbmF0ZXNGbGFncywgVHJhbnNmb3JtU3RhdGUmKSBjb25zdDsK
IAogICAgIC8vIFB1c2hlcyBzdGF0ZSBvbnRvIFJlbmRlckdlb21ldHJ5TWFwIGFib3V0IGhvdyB0
byBtYXAgY29vcmRpbmF0ZXMgZnJvbSB0aGlzIHJlbmRlcmVyIHRvIGl0cyBjb250YWluZXIsIG9y
IGFuY2VzdG9yVG9TdG9wQXQgKHdoaWNoZXZlciBpcyBlbmNvdW50ZXJlZCBmaXJzdCkuCkBAIC05
NTgsNiArOTU4LDggQEAgcHVibGljOgogICAgIFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uRW51bSBz
aG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbigpIGNvbnN0OwogCiBwcm90ZWN0ZWQ6CisgICAg
dm9pZCBhcHBseUxvY2FsVG9Db250YWluZXJTdGF0ZVRvVHJhbnNmb3JtKFRyYW5zZm9ybVN0YXRl
JikgY29uc3Q7CisKICAgICBpbmxpbmUgYm9vbCBsYXllckNyZWF0aW9uQWxsb3dlZEZvclN1YnRy
ZWUoKSBjb25zdDsKIAogICAgIC8vIE92ZXJyaWRlcyBzaG91bGQgY2FsbCB0aGUgc3VwZXJjbGFz
cyBhdCB0aGUgZW5kCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3Bw
CShyZXZpc2lvbiAxMzM4MzEpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmll
dy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxMCwxMyArMjEwLDE1IEBAIHZvaWQgUmVuZGVyVmll
dzo6bGF5b3V0KCkKICAgICBzZXROZWVkc0xheW91dChmYWxzZSk7CiB9CiAKLXZvaWQgUmVuZGVy
Vmlldzo6bWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50
Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIE1hcENvb3JkaW5hdGVz
RmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQpIGNvbnN0Cit2b2lkIFJlbmRlclZpZXc6Om1hcExv
Y2FsVG9Db250YWluZXIoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwg
VHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUs
IGJvb2wqIHdhc0ZpeGVkLCBMYXlvdXRTaXplIGFjY3VtdWxhdGVkT2Zmc2V0KSBjb25zdAogewog
ICAgIC8vIElmIGEgY29udGFpbmVyIHdhcyBzcGVjaWZpZWQsIGFuZCB3YXMgbm90IDAgb3IgdGhl
IFJlbmRlclZpZXcsCiAgICAgLy8gdGhlbiB3ZSBzaG91bGQgaGF2ZSBmb3VuZCBpdCBieSBub3cu
CiAgICAgQVNTRVJUX0FSRyhyZXBhaW50Q29udGFpbmVyLCAhcmVwYWludENvbnRhaW5lciB8fCBy
ZXBhaW50Q29udGFpbmVyID09IHRoaXMpOwogICAgIEFTU0VSVF9VTlVTRUQod2FzRml4ZWQsICF3
YXNGaXhlZCB8fCAqd2FzRml4ZWQgPT0gKG1vZGUgJiBJc0ZpeGVkKSk7CiAKKyAgICB0cmFuc2Zv
cm1TdGF0ZS5tb3ZlKChtb2RlICYgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpID8gcm91bmRlZElu
dFNpemUoYWNjdW11bGF0ZWRPZmZzZXQpIDogYWNjdW11bGF0ZWRPZmZzZXQpOworCiAgICAgaWYg
KCFyZXBhaW50Q29udGFpbmVyICYmIG1vZGUgJiBVc2VUcmFuc2Zvcm1zICYmIHNob3VsZFVzZVRy
YW5zZm9ybUZyb21Db250YWluZXIoMCkpIHsKICAgICAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXgg
dDsKICAgICAgICAgZ2V0VHJhbnNmb3JtRnJvbUNvbnRhaW5lcigwLCBMYXlvdXRTaXplKCksIHQp
OwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCShyZXZpc2lvbiAxMzM4
MzEpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yMjgsNyArMjI4LDcgQEAgcHVibGljOgogICAgIGJvb2wgaGFzUmVuZGVyQ291bnRl
cnMoKSB7IHJldHVybiBtX3JlbmRlckNvdW50ZXJDb3VudDsgfQogCiBwcm90ZWN0ZWQ6Ci0gICAg
dmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCog
cmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBDb29yZGluYXRlc0ZsYWdzID0g
QXBwbHlDb250YWluZXJGbGlwIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMsIGJvb2wqIHdhc0Zp
eGVkID0gMCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250
YWluZXIoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3Jt
U3RhdGUmLCBNYXBDb29yZGluYXRlc0ZsYWdzID0gQXBwbHlDb250YWluZXJGbGlwLCBib29sKiB3
YXNGaXhlZCA9IDAsIExheW91dFNpemUgYWNjdW11bGF0ZWRPZmZzZXQgPSBMYXlvdXRTaXplKCkp
IGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgUmVuZGVyT2JqZWN0KiBwdXNoTWFw
cGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGFuY2VzdG9yVG9T
dG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2
b2lkIG1hcEFic29sdXRlVG9Mb2NhbFBvaW50KE1hcENvb3JkaW5hdGVzRmxhZ3MsIFRyYW5zZm9y
bVN0YXRlJikgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIHJlcXVpcmVzQ29sdW1ucyhpbnQgZGVz
aXJlZENvbHVtbkNvdW50KSBjb25zdCBPVkVSUklERTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWduT2JqZWN0LmNwcAkocmV2
aXNpb24gMTMzODMxKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdG
b3JlaWduT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTkzLDkgKzE5Myw5IEBAIGJvb2wg
UmVuZGVyU1ZHRm9yZWlnbk9iamVjdDo6bm9kZUF0UG9pbnQKICAgICByZXR1cm4gZmFsc2U7CiB9
CiAKLXZvaWQgUmVuZGVyU1ZHRm9yZWlnbk9iamVjdDo6bWFwTG9jYWxUb0NvbnRhaW5lcihSZW5k
ZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJh
bnNmb3JtU3RhdGUsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQpIGNv
bnN0Cit2b2lkIFJlbmRlclNWR0ZvcmVpZ25PYmplY3Q6Om1hcExvY2FsVG9Db250YWluZXIoUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRy
YW5zZm9ybVN0YXRlLCBNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUsIGJvb2wqIHdhc0ZpeGVkLCBM
YXlvdXRTaXplIGFjY3VtdWxhdGVkT2Zmc2V0KSBjb25zdAogewotICAgIFNWR1JlbmRlclN1cHBv
cnQ6Om1hcExvY2FsVG9Db250YWluZXIodGhpcywgcmVwYWludENvbnRhaW5lciwgdHJhbnNmb3Jt
U3RhdGUsIG1vZGUgJiBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jtcywgd2FzRml4ZWQpOworICAgIFNW
R1JlbmRlclN1cHBvcnQ6Om1hcExvY2FsVG9Db250YWluZXIodGhpcywgcmVwYWludENvbnRhaW5l
ciwgdHJhbnNmb3JtU3RhdGUsIG1vZGUsIHdhc0ZpeGVkLCBhY2N1bXVsYXRlZE9mZnNldCk7CiB9
CiAKIGNvbnN0IFJlbmRlck9iamVjdCogUmVuZGVyU1ZHRm9yZWlnbk9iamVjdDo6cHVzaE1hcHBp
bmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBhbmNlc3RvclRvU3Rv
cEF0LCBSZW5kZXJHZW9tZXRyeU1hcCYgZ2VvbWV0cnlNYXApIGNvbnN0CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ZvcmVpZ25PYmplY3QuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ZvcmVpZ25PYmplY3Qu
aAkocmV2aXNpb24gMTMzODMxKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdGb3JlaWduT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTU0LDcgKzU0LDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgYm9vbCBub2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYs
IEhpdFRlc3RSZXN1bHQmLCBjb25zdCBIaXRUZXN0TG9jYXRpb24mIGxvY2F0aW9uSW5Db250YWlu
ZXIsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCwgSGl0VGVzdEFjdGlvbikg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGlzU1ZHRm9yZWlnbk9iamVjdCgpIGNvbnN0IHsg
cmV0dXJuIHRydWU7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKFJl
bmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwg
TWFwQ29vcmRpbmF0ZXNGbGFncyA9IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JU
cmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1
YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFp
bnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29vcmRpbmF0ZXNGbGFncyA9IEFwcGx5
Q29udGFpbmVyRmxpcCwgYm9vbCogd2FzRml4ZWQgPSAwLCBMYXlvdXRTaXplIGFjY3VtdWxhdGVk
T2Zmc2V0ID0gTGF5b3V0U2l6ZSgpKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGNvbnN0
IFJlbmRlck9iamVjdCogcHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1v
ZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1hcCYpIGNvbnN0IE9W
RVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc1RyYW5zZm9ybVVwZGF0ZSgpIHsgbV9u
ZWVkc1RyYW5zZm9ybVVwZGF0ZSA9IHRydWU7IH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmNwcAkocmV2aXNpb24gMTMzODMxKQor
KysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC03OSw5ICs3OSw5IEBAIHZvaWQgUmVuZGVyU1ZHSW5saW5lOjpjb21wdXRl
RmxvYXRSZWN0Rm8KICAgICBTVkdSZW5kZXJTdXBwb3J0Ojpjb21wdXRlRmxvYXRSZWN0Rm9yUmVw
YWludCh0aGlzLCByZXBhaW50Q29udGFpbmVyLCByZXBhaW50UmVjdCwgZml4ZWQpOwogfQogCi12
b2lkIFJlbmRlclNWR0lubGluZTo6bWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJMYXllck1vZGVs
T2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUs
IE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQpIGNvbnN0Cit2b2lkIFJl
bmRlclNWR0lubGluZTo6bWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJMYXllck1vZGVsT2JqZWN0
KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIE1hcENv
b3JkaW5hdGVzRmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQsIExheW91dFNpemUgYWNjdW11bGF0
ZWRPZmZzZXQpIGNvbnN0CiB7Ci0gICAgU1ZHUmVuZGVyU3VwcG9ydDo6bWFwTG9jYWxUb0NvbnRh
aW5lcih0aGlzLCByZXBhaW50Q29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwgbW9kZSAmIFNuYXBP
ZmZzZXRGb3JUcmFuc2Zvcm1zLCB3YXNGaXhlZCk7CisgICAgU1ZHUmVuZGVyU3VwcG9ydDo6bWFw
TG9jYWxUb0NvbnRhaW5lcih0aGlzLCByZXBhaW50Q29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwg
bW9kZSwgd2FzRml4ZWQsIGFjY3VtdWxhdGVkT2Zmc2V0KTsKIH0KIAogY29uc3QgUmVuZGVyT2Jq
ZWN0KiBSZW5kZXJTVkdJbmxpbmU6OnB1c2hNYXBwaW5nVG9Db250YWluZXIoY29uc3QgUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0b3JUb1N0b3BBdCwgUmVuZGVyR2VvbWV0cnlNYXAmIGdl
b21ldHJ5TWFwKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdJbmxpbmUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR0lubGluZS5oCShyZXZpc2lvbiAxMzM4MzEpCisrKyBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw3ICs0
Nyw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBjbGlwcGVkT3ZlcmZsb3dS
ZWN0Rm9yUmVwYWludChSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyKSBj
b25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZUZsb2F0UmVjdEZvclJlcGFp
bnQoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgRmxvYXRSZWN0Jiwg
Ym9vbCBmaXhlZCA9IGZhbHNlKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgbWFw
TG9jYWxUb0NvbnRhaW5lcihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVy
LCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5lckZs
aXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJMYXll
ck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3Jk
aW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5lckZsaXAsIGJvb2wqIHdhc0ZpeGVkID0gMCwgTGF5
b3V0U2l6ZSBhY2N1bXVsYXRlZE9mZnNldCA9IExheW91dFNpemUoKSkgY29uc3QgT1ZFUlJJREU7
CiAgICAgdmlydHVhbCBjb25zdCBSZW5kZXJPYmplY3QqIHB1c2hNYXBwaW5nVG9Db250YWluZXIo
Y29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0b3JUb1N0b3BBdCwgUmVuZGVyR2Vv
bWV0cnlNYXAmKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgYWJzb2x1dGVRdWFk
cyhWZWN0b3I8RmxvYXRRdWFkPiYsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdDsKIApJbmRleDogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVj
dC5jcHAJKHJldmlzaW9uIDEzMzgzMSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Niw5ICs1Niw5IEBA
IHZvaWQgUmVuZGVyU1ZHTW9kZWxPYmplY3Q6OmNvbXB1dGVGbG9hdFIKICAgICBTVkdSZW5kZXJT
dXBwb3J0Ojpjb21wdXRlRmxvYXRSZWN0Rm9yUmVwYWludCh0aGlzLCByZXBhaW50Q29udGFpbmVy
LCByZXBhaW50UmVjdCwgZml4ZWQpOwogfQogCi12b2lkIFJlbmRlclNWR01vZGVsT2JqZWN0Ojpt
YXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWlu
ZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFwQ29vcmRpbmF0ZXNGbGFncyBt
b2RlLCBib29sKiB3YXNGaXhlZCkgY29uc3QKK3ZvaWQgUmVuZGVyU1ZHTW9kZWxPYmplY3Q6Om1h
cExvY2FsVG9Db250YWluZXIoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5l
ciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBDb29yZGluYXRlc0ZsYWdzIG1v
ZGUsIGJvb2wqIHdhc0ZpeGVkLCBMYXlvdXRTaXplIGFjY3VtdWxhdGVkT2Zmc2V0KSBjb25zdAog
ewotICAgIFNWR1JlbmRlclN1cHBvcnQ6Om1hcExvY2FsVG9Db250YWluZXIodGhpcywgcmVwYWlu
dENvbnRhaW5lciwgdHJhbnNmb3JtU3RhdGUsIG1vZGUgJiBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jt
cywgd2FzRml4ZWQpOworICAgIFNWR1JlbmRlclN1cHBvcnQ6Om1hcExvY2FsVG9Db250YWluZXIo
dGhpcywgcmVwYWludENvbnRhaW5lciwgdHJhbnNmb3JtU3RhdGUsIG1vZGUsIHdhc0ZpeGVkLCBh
Y2N1bXVsYXRlZE9mZnNldCk7CiB9CiAKIGNvbnN0IFJlbmRlck9iamVjdCogUmVuZGVyU1ZHTW9k
ZWxPYmplY3Q6OnB1c2hNYXBwaW5nVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9i
amVjdCogYW5jZXN0b3JUb1N0b3BBdCwgUmVuZGVyR2VvbWV0cnlNYXAmIGdlb21ldHJ5TWFwKSBj
b25zdApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9i
amVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHTW9kZWxPYmplY3QuaAkocmV2aXNpb24gMTMzODMxKQorKysgU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC01OCw3
ICs1OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgYWJzb2x1dGVSZWN0cyhWZWN0b3I8
SW50UmVjdD4mLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQpIGNvbnN0Owog
ICAgIHZpcnR1YWwgdm9pZCBhYnNvbHV0ZVF1YWRzKFZlY3RvcjxGbG9hdFF1YWQ+JiwgYm9vbCog
d2FzRml4ZWQpIGNvbnN0OwogCi0gICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIo
UmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUm
LCBNYXBDb29yZGluYXRlc0ZsYWdzID0gQXBwbHlDb250YWluZXJGbGlwIHwgU25hcE9mZnNldEZv
clRyYW5zZm9ybXMsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmly
dHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVw
YWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBDb29yZGluYXRlc0ZsYWdzID0gQXBw
bHlDb250YWluZXJGbGlwLCBib29sKiB3YXNGaXhlZCA9IDAsIExheW91dFNpemUgYWNjdW11bGF0
ZWRPZmZzZXQgPSBMYXlvdXRTaXplKCkpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29u
c3QgUmVuZGVyT2JqZWN0KiBwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVy
TW9kZWxPYmplY3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJikgY29uc3Qg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHN0eWxlV2lsbENoYW5nZShTdHlsZURpZmZlcmVu
Y2UsIGNvbnN0IFJlbmRlclN0eWxlKiBuZXdTdHlsZSk7CiAgICAgdmlydHVhbCB2b2lkIHN0eWxl
RGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNw
cAkocmV2aXNpb24gMTMzODMxKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdSb290LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDAwLDEyICs0MDAsMTIgQEAgdm9pZCBS
ZW5kZXJTVkdSb290Ojpjb21wdXRlRmxvYXRSZWN0Rm9yUgogLy8gVGhpcyBtZXRob2QgZXhwZWN0
cyBsb2NhbCBDU1MgYm94IGNvb3JkaW5hdGVzLgogLy8gQ2FsbGVycyB3aXRoIGxvY2FsIFNWRyB2
aWV3cG9ydCBjb29yZGluYXRlcyBzaG91bGQgZmlyc3QgYXBwbHkgdGhlIGxvY2FsVG9Cb3JkZXJC
b3hUcmFuc2Zvcm0KIC8vIHRvIGNvbnZlcnQgZnJvbSBTVkcgdmlld3BvcnQgY29vcmRpbmF0ZXMg
dG8gbG9jYWwgQ1NTIGJveCBjb29yZGluYXRlcy4KLXZvaWQgUmVuZGVyU1ZHUm9vdDo6bWFwTG9j
YWxUb0NvbnRhaW5lcihSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBU
cmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwg
Ym9vbCogd2FzRml4ZWQpIGNvbnN0Cit2b2lkIFJlbmRlclNWR1Jvb3Q6Om1hcExvY2FsVG9Db250
YWluZXIoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3Jt
U3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUsIGJvb2wqIHdh
c0ZpeGVkLCBMYXlvdXRTaXplIGFjY3VtdWxhdGVkT2Zmc2V0KSBjb25zdAogewogICAgIEFTU0VS
VChtb2RlICYgfklzRml4ZWQpOyAvLyBXZSBzaG91bGQgaGF2ZSBubyBmaXhlZCBjb250ZW50IGlu
IHRoZSBTVkcgcmVuZGVyaW5nIHRyZWUuCiAgICAgQVNTRVJUKG1vZGUgJiBVc2VUcmFuc2Zvcm1z
KTsgLy8gbWFwcGluZyBhIHBvaW50IHRocm91Z2ggU1ZHIHcvbyByZXNwZWN0aW5nIHRyYXNuZm9y
bXMgaXMgdXNlbGVzcy4KIAotICAgIFJlbmRlclJlcGxhY2VkOjptYXBMb2NhbFRvQ29udGFpbmVy
KHJlcGFpbnRDb250YWluZXIsIHRyYW5zZm9ybVN0YXRlLCBtb2RlIHwgQXBwbHlDb250YWluZXJG
bGlwLCB3YXNGaXhlZCk7CisgICAgUmVuZGVyUmVwbGFjZWQ6Om1hcExvY2FsVG9Db250YWluZXIo
cmVwYWludENvbnRhaW5lciwgdHJhbnNmb3JtU3RhdGUsIG1vZGUgfCBBcHBseUNvbnRhaW5lckZs
aXAsIHdhc0ZpeGVkLCBhY2N1bXVsYXRlZE9mZnNldCk7CiB9CiAKIGNvbnN0IFJlbmRlck9iamVj
dCogUmVuZGVyU1ZHUm9vdDo6cHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXll
ck1vZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1hcCYgZ2VvbWV0
cnlNYXApIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R1Jvb3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1Jvb3QuaAkocmV2aXNpb24gMTMzODMxKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdSb290LmgJKHdvcmtpbmcgY29weSkKQEAgLTk5LDcgKzk5LDcgQEAgcHJp
dmF0ZToKICAgICB2aXJ0dWFsIExheW91dFJlY3QgY2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFp
bnQoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lcikgY29uc3QgT1ZFUlJJ
REU7CiAgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50KFJlbmRlckxh
eWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIEZsb2F0UmVjdCYgcmVwYWludFJlY3Qs
IGJvb2wgZml4ZWQpIGNvbnN0IE9WRVJSSURFOwogCi0gICAgdmlydHVhbCB2b2lkIG1hcExvY2Fs
VG9Db250YWluZXIoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJh
bnNmb3JtU3RhdGUmLCBNYXBDb29yZGluYXRlc0ZsYWdzID0gQXBwbHlDb250YWluZXJGbGlwIHwg
U25hcE9mZnNldEZvclRyYW5zZm9ybXMsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3QgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBDb29yZGluYXRl
c0ZsYWdzID0gQXBwbHlDb250YWluZXJGbGlwLCBib29sKiB3YXNGaXhlZCA9IDAsIExheW91dFNp
emUgYWNjdW11bGF0ZWRPZmZzZXQgPSBMYXlvdXRTaXplKCkpIGNvbnN0IE9WRVJSSURFOwogICAg
IHZpcnR1YWwgY29uc3QgUmVuZGVyT2JqZWN0KiBwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0
IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5
TWFwJikgY29uc3QgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIGJvb2wgY2FuQmVTZWxlY3Rpb25M
ZWFmKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmNwcAkocmV2aXNpb24gMTMzODMxKQorKysgU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTExLDkgKzExMSw5IEBAIHZvaWQgUmVuZGVyU1ZHVGV4dDo6Y29tcHV0ZUZsb2F0UmVj
dEZvclIKICAgICBTVkdSZW5kZXJTdXBwb3J0Ojpjb21wdXRlRmxvYXRSZWN0Rm9yUmVwYWludCh0
aGlzLCByZXBhaW50Q29udGFpbmVyLCByZXBhaW50UmVjdCwgZml4ZWQpOwogfQogCi12b2lkIFJl
bmRlclNWR1RleHQ6Om1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCog
cmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBDb29y
ZGluYXRlc0ZsYWdzIG1vZGUsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAordm9pZCBSZW5kZXJTVkdU
ZXh0OjptYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRD
b250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFwQ29vcmRpbmF0ZXNG
bGFncyBtb2RlLCBib29sKiB3YXNGaXhlZCwgTGF5b3V0U2l6ZSBhY2N1bXVsYXRlZE9mZnNldCkg
Y29uc3QKIHsKLSAgICBTVkdSZW5kZXJTdXBwb3J0OjptYXBMb2NhbFRvQ29udGFpbmVyKHRoaXMs
IHJlcGFpbnRDb250YWluZXIsIHRyYW5zZm9ybVN0YXRlLCBtb2RlICYgU25hcE9mZnNldEZvclRy
YW5zZm9ybXMsIHdhc0ZpeGVkKTsKKyAgICBTVkdSZW5kZXJTdXBwb3J0OjptYXBMb2NhbFRvQ29u
dGFpbmVyKHRoaXMsIHJlcGFpbnRDb250YWluZXIsIHRyYW5zZm9ybVN0YXRlLCBtb2RlLCB3YXNG
aXhlZCwgYWNjdW11bGF0ZWRPZmZzZXQpOwogfQogCiBjb25zdCBSZW5kZXJPYmplY3QqIFJlbmRl
clNWR1RleHQ6OnB1c2hNYXBwaW5nVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9i
amVjdCogYW5jZXN0b3JUb1N0b3BBdCwgUmVuZGVyR2VvbWV0cnlNYXAmIGdlb21ldHJ5TWFwKSBj
b25zdApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0
LmgJKHJldmlzaW9uIDEzMzgzMSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHVGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC03NSw3ICs3NSw3IEBAIHByaXZhdGU6CiAg
ICAgdmlydHVhbCB2b2lkIGNvbXB1dGVSZWN0Rm9yUmVwYWludChSZW5kZXJMYXllck1vZGVsT2Jq
ZWN0KiByZXBhaW50Q29udGFpbmVyLCBMYXlvdXRSZWN0JiwgYm9vbCBmaXhlZCA9IGZhbHNlKSBj
b25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZUZsb2F0UmVjdEZvclJlcGFp
bnQoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgRmxvYXRSZWN0Jiwg
Ym9vbCBmaXhlZCA9IGZhbHNlKSBjb25zdCBPVkVSUklERTsKIAotICAgIHZpcnR1YWwgdm9pZCBt
YXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWlu
ZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29vcmRpbmF0ZXNGbGFncyA9IEFwcGx5Q29udGFpbmVy
RmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0
IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckxh
eWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29v
cmRpbmF0ZXNGbGFncyA9IEFwcGx5Q29udGFpbmVyRmxpcCwgYm9vbCogd2FzRml4ZWQgPSAwLCBM
YXlvdXRTaXplIGFjY3VtdWxhdGVkT2Zmc2V0ID0gTGF5b3V0U2l6ZSgpKSBjb25zdCBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIGNvbnN0IFJlbmRlck9iamVjdCogcHVzaE1hcHBpbmdUb0NvbnRhaW5l
cihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5kZXJH
ZW9tZXRyeU1hcCYpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBhZGRDaGlsZChS
ZW5kZXJPYmplY3QqIGNoaWxkLCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkID0gMCk7CiAgICAg
dmlydHVhbCB2b2lkIHJlbW92ZUNoaWxkKFJlbmRlck9iamVjdCopIE9WRVJSSURFOwpJbmRleDog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuY3Bw
CShyZXZpc2lvbiAxMzM4MzEpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1Jl
bmRlclN1cHBvcnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MSw3ICs3MSw3IEBAIHZvaWQgU1ZH
UmVuZGVyU3VwcG9ydDo6Y29tcHV0ZUZsb2F0UmVjdEYKICAgICBvYmplY3QtPnBhcmVudCgpLT5j
b21wdXRlRmxvYXRSZWN0Rm9yUmVwYWludChyZXBhaW50Q29udGFpbmVyLCByZXBhaW50UmVjdCwg
Zml4ZWQpOwogfQogCi12b2lkIFNWR1JlbmRlclN1cHBvcnQ6Om1hcExvY2FsVG9Db250YWluZXIo
Y29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3QsIFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFp
bnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgYm9vbCBzbmFwT2Zm
c2V0Rm9yVHJhbnNmb3JtcywgYm9vbCogd2FzRml4ZWQpCit2b2lkIFNWR1JlbmRlclN1cHBvcnQ6
Om1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3QsIFJlbmRlckxh
eWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zv
cm1TdGF0ZSwgYm9vbCBzbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCogd2FzRml4ZWQsIExh
eW91dFNpemUgYWNjdW11bGF0ZWRPZmZzZXQpCiB7CiAgICAgdHJhbnNmb3JtU3RhdGUuYXBwbHlU
cmFuc2Zvcm0ob2JqZWN0LT5sb2NhbFRvUGFyZW50VHJhbnNmb3JtKCkpOwogCkBAIC04Niw3ICs4
Niw3IEBAIHZvaWQgU1ZHUmVuZGVyU3VwcG9ydDo6bWFwTG9jYWxUb0NvbnRhaW4KICAgICBNYXBD
b29yZGluYXRlc0ZsYWdzIG1vZGUgPSBVc2VUcmFuc2Zvcm1zOwogICAgIGlmIChzbmFwT2Zmc2V0
Rm9yVHJhbnNmb3JtcykKICAgICAgICAgbW9kZSB8PSBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtczsK
LSAgICBwYXJlbnQtPm1hcExvY2FsVG9Db250YWluZXIocmVwYWludENvbnRhaW5lciwgdHJhbnNm
b3JtU3RhdGUsIG1vZGUsIHdhc0ZpeGVkKTsKKyAgICBwYXJlbnQtPm1hcExvY2FsVG9Db250YWlu
ZXIocmVwYWludENvbnRhaW5lciwgdHJhbnNmb3JtU3RhdGUsIG1vZGUsIHdhc0ZpeGVkLCBhY2N1
bXVsYXRlZE9mZnNldCk7CiB9CiAKIGNvbnN0IFJlbmRlck9iamVjdCogU1ZHUmVuZGVyU3VwcG9y
dDo6cHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCwgY29u
c3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0b3JUb1N0b3BBdCwgUmVuZGVyR2VvbWV0
cnlNYXAmIGdlb21ldHJ5TWFwKQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9T
VkdSZW5kZXJTdXBwb3J0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmgJKHJldmlzaW9uIDEzMzgzMSkKKysrIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5oCSh3b3JraW5nIGNvcHkpCkBAIC02
NSw3ICs2NSw3IEBAIHB1YmxpYzoKICAgICAvLyBJbXBvcnRhbnQgZnVuY3Rpb25zIHVzZWQgYnkg
bmVhcmx5IGFsbCBTVkcgcmVuZGVyZXJzIGNlbnRyYWxpemluZyBjb29yZGluYXRlIHRyYW5zZm9y
bWF0aW9ucyAvIHJlcGFpbnQgcmVjdCBjYWxjdWxhdGlvbnMKICAgICBzdGF0aWMgTGF5b3V0UmVj
dCBjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJPYmplY3QqLCBSZW5k
ZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyKTsKICAgICBzdGF0aWMgdm9pZCBj
b21wdXRlRmxvYXRSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJPYmplY3QqLCBSZW5kZXJMYXll
ck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBGbG9hdFJlY3QmLCBib29sIGZpeGVkKTsK
LSAgICBzdGF0aWMgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlck9iamVjdCos
IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRl
JiwgYm9vbCBzbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcyA9IHRydWUsIGJvb2wqIHdhc0ZpeGVkID0g
MCk7CisgICAgc3RhdGljIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJPYmpl
Y3QqLCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1T
dGF0ZSYsIGJvb2wgc25hcE9mZnNldEZvclRyYW5zZm9ybXMgPSB0cnVlLCBib29sKiB3YXNGaXhl
ZCA9IDAsIExheW91dFNpemUgYWNjdW11bGF0ZWRPZmZzZXQgPSBMYXlvdXRTaXplKCkpOwogICAg
IHN0YXRpYyBjb25zdCBSZW5kZXJPYmplY3QqIHB1c2hNYXBwaW5nVG9Db250YWluZXIoY29uc3Qg
UmVuZGVyT2JqZWN0KiwgY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0b3JUb1N0
b3BBdCwgUmVuZGVyR2VvbWV0cnlNYXAmKTsKICAgICBzdGF0aWMgYm9vbCBjaGVja0ZvclNWR1Jl
cGFpbnREdXJpbmdMYXlvdXQoUmVuZGVyT2JqZWN0Kik7CiAKSW5kZXg6IExheW91dFRlc3RzL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDEz
NDA5MikKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDE3IEBACisyMDEyLTExLTA5ICBMZXZpIFdlaW50cmF1YiAgPGxldml3QGNocm9taXVtLm9yZz4K
KworICAgICAgICBBY2N1bXVsYXRlIHVzaW5nIGEgTGF5b3V0U2l6ZSBpbiBtYXBMb2NhbFRvQ29u
dGFpbmVyIHdoZW4gcG9zc2libGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwMTc3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFVwZGF0aW5nIHRoZSBzdWItcGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xs
Lmh0bWwgdGVzdCB0byBjb3ZlciBhbm90aGVyIGZhaWwgY2FzZSBwcmlvciB0byBwcm9wZXJseQor
ICAgICAgICBoYW5kbGluZyBwaXhlbCBzbmFwcGluZyBmb3IgY29udGVudHMgbmVzdGVkIGluIG11
bHRpcGxlIHN1Yi1waXhlbCBjb250YWluZXJzLgorCisgICAgICAgICogZmFzdC9zdWItcGl4ZWwv
c3ViLXBpeGVsLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC5odG1sOgorICAgICAgICAqIHBsYXRmb3Jt
L2Nocm9taXVtLWxpbnV4L2Zhc3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1pZnJhbWUtY29weS1vbi1z
Y3JvbGwtZXhwZWN0ZWQucG5nOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9mYXN0
L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLWV4cGVjdGVkLnR4dDoK
KwogMjAxMi0xMS0wOSAgWmFuIERvYmVyc2VrICA8emFuZG9iZXJzZWtAZ21haWwuY29tPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQgR1RLIGdhcmRlbmluZy4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
c3ViLXBpeGVsL3N1Yi1waXhlbC1pZnJhbWUtY29weS1vbi1zY3JvbGwuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNvcHktb24t
c2Nyb2xsLmh0bWwJKHJldmlzaW9uIDEzMzgzMSkKKysrIExheW91dFRlc3RzL2Zhc3Qvc3ViLXBp
eGVsL3N1Yi1waXhlbC1pZnJhbWUtY29weS1vbi1zY3JvbGwuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMiwxMCArMiwxMiBAQAogPGh0bWw+CiA8aGVhZD4KIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIg
bWVkaWE9InNjcmVlbiI+Ci0uY29udGFpbmVyIHsKLSAgICBwb3NpdGlvbjogYWJzb2x1dGU7Cisu
c3VicGl4ZWxQdXNoZXIgeworICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICB0b3A6IDAuNHB4
OwogICAgIHBhZGRpbmc6IDEwLjNweDsKICAgICB6LWluZGV4OiAxOworICAgIGRpc3BsYXk6IGlu
bGluZS1ibG9jazsKIH0KIDwvc3R5bGU+CiA8c2NyaXB0IHNyYz0iLi4vcmVwYWludC9yZXNvdXJj
ZXMvcmVwYWludC5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KQEAgLTEzLDI2
ICsxNSw0NiBAQAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICB0ZXN0UnVubmVyLndhaXRVbnRp
bERvbmUoKTsKIAotZnVuY3Rpb24gc2V0dXBJZnJhbWUoKSB7Ci0gIHZhciBzdWJEb2N1bWVudCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpZnJhbWUnKS5jb250ZW50V2luZG93LmRvY3VtZW50
OwotICBzdWJEb2N1bWVudC5vcGVuKCd0ZXh0L2h0bWwnLCAncmVwbGFjZScpOwotICBzdWJEb2N1
bWVudC53cml0ZSgiPCFET0NUWVBFIGh0bWw+XG48aHRtbD48Ym9keSBzdHlsZT1cImJhY2tncm91
bmQtY29sb3I6IHNpbHZlcjtoZWlnaHQ6IDEwMDBweDtcIj48L2JvZHk+IikKLSAgc3ViRG9jdW1l
bnQuY2xvc2UoKTsKK2Z1bmN0aW9uIHNldHVwSWZyYW1lcygpIHsKKyAgc2V0dXBJZnJhbWUoZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lmcmFtZTEnKS5jb250ZW50V2luZG93LmRvY3VtZW50KTsK
KyAgc2V0dXBJZnJhbWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lmcmFtZTInKS5jb250ZW50
V2luZG93LmRvY3VtZW50KTsKK30KKworZnVuY3Rpb24gc2V0dXBJZnJhbWUoaWZyYW1lKSB7Cisg
IGlmcmFtZS5vcGVuKCd0ZXh0L2h0bWwnLCAncmVwbGFjZScpOworICBpZnJhbWUud3JpdGUoIjwh
RE9DVFlQRSBodG1sPlxuPGh0bWw+PGJvZHkgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiBzaWx2
ZXI7aGVpZ2h0OiAxMDAwcHg7XCI+PC9ib2R5PiIpOworICBpZnJhbWUuY2xvc2UoKTsKIH0KIAog
ZnVuY3Rpb24gcmVwYWludFRlc3QoKSB7Ci0gIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpZnJh
bWUnKS5jb250ZW50V2luZG93LnNjcm9sbFRvKDAsIDEwKTsKKyAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2lmcmFtZTEnKS5jb250ZW50V2luZG93LnNjcm9sbFRvKDAsIDEwKTsKKyAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2lmcmFtZTInKS5jb250ZW50V2luZG93LnNjcm9sbFRvKDAsIDEw
KTsKICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgp
OwogfQogPC9zY3JpcHQ+CiA8L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InNldHVwSWZyYW1lKCk7cnVu
UmVwYWludFRlc3QoKSI+Ci0gIDxwPlRoZSBpZnJhbWUgYmVsb3cgc2hvdWxkIHJlbWFpbiBncmV5
IHdoZW4gc2Nyb2xsaW5nLjwvcD4KLSAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KLSAgICA8aWZy
YW1lIGlkPSJpZnJhbWUiICBzdHlsZT0id2lkdGg6IDMwMHB4OyBoZWlnaHQ6IDIwMHB4OyI+PC9p
ZnJhbWU+Cis8Ym9keSBvbmxvYWQ9InNldHVwSWZyYW1lcygpO3J1blJlcGFpbnRUZXN0KCkiPgor
ICA8cD5UaGUgaWZyYW1lcyBiZWxvdyBzaG91bGQgcmVtYWluIGdyZXkgd2hlbiBzY3JvbGxpbmcu
PC9wPgorICA8ZGl2PgorICAgIDxkaXYgY2xhc3M9InN1YnBpeGVsUHVzaGVyIj4KKyAgICAgIDxp
ZnJhbWUgaWQ9ImlmcmFtZTEiICBzdHlsZT0id2lkdGg6IDE1MHB4OyBoZWlnaHQ6IDIwMHB4OyI+
PC9pZnJhbWU+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0ic3VicGl4ZWxQdXNoZXIiPgor
ICAgICAgPGRpdiBjbGFzcz0ic3VicGl4ZWxQdXNoZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJz
dWJwaXhlbFB1c2hlciI+CisgICAgICAgICAgPGRpdiBjbGFzcz0ic3VicGl4ZWxQdXNoZXIiPgor
ICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3VicGl4ZWxQdXNoZXIiPgorICAgICAgICAgICAgICA8
ZGl2IGNsYXNzPSJzdWJwaXhlbFB1c2hlciI+CisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0i
c3VicGl4ZWxQdXNoZXIiPgorICAgICAgICAgICAgICAgICAgPGlmcmFtZSBpZD0iaWZyYW1lMiIg
IHN0eWxlPSJ3aWR0aDogMTUwcHg7IGhlaWdodDogMjAwcHg7Ij48L2lmcmFtZT4KKyAgICAgICAg
ICAgICAgICA8L2Rpdj4gICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgIDwvZGl2PgorICAg
ICAgICAgICAgPC9kaXY+CisgICAgICAgICAgPC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgICAg
PC9kaXY+CisgICAgPC9kaXY+CiAgIDwvZGl2PgotICA8L2Rpdj4KLQogPC9ib2R5PgogPC9odG1s
PgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvZmFzdC9zdWItcGl4
ZWwvc3ViLXBpeGVsLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC1leHBlY3RlZC5wbmcKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvZmFzdC9zdWItcGl4ZWwv
c3ViLXBpeGVsLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC1leHBlY3RlZC5wbmcJKHJldmlzaW9uIDEz
MzgzMSkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2Zhc3Qvc3ViLXBp
eGVsL3N1Yi1waXhlbC1pZnJhbWUtY29weS1vbi1zY3JvbGwtZXhwZWN0ZWQucG5nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDUgKzEsMTQgQEAKIIlQTkcNCiAaCi0AAAANSUhEUgAAAyAAAAJYCAIAAAAV
FBUnAAAAKXRFWHRjaGVja3N1bQA5MjJmN2Y0MTAwN2QxN2MzYTI0NWFhOGFmMTZlMmU5NYamPDUA
ABd3SURBVHic7d1bb1TnocfhBcYOYKBNiWxzigotBhwOISAKLYFEwW0jUUFDWrWpuOEj9WNwQ6um
rZJUKk1bUYmjLSABB0JiTDgZDJhDjB3CwftitGd7M7YZzB8Yque5QIO9Du96X0v+adayPWn79u0F
AAA5k5/3AAAA/tsILACAMIEFABAmsAAAwgQWAECYwAIACBNYAABhAgsAIExgAQCECSwAgDCBBQAQ
JrAAAMIEFgBAmMACAAgTWAAAYQILACBMYAEAhAksAIAwgQUAEDZlrE/s2rVrrE9t2rTpyJEjW7du
fdyT/fOf/3z33XeLonjw4MGxY8dOnz5dFMWKFSuWLl36uId6LL29vdUP+LE2ftqDeawjPO2RVyov
aM169nNSpfLARo6w9ucTgCqNGVhFUaxYsWL58uWTJ0/etWvX9u3bS1V08uTJQ4cOfffddxM4Wfmb
x/Hjx5uampYvX97b23vs2LGnHViPNeCOjo6hoaEaGcyoxhrhkx/5cdV+DTz7OalSeRFHrmbtzycA
VRrzFuGsWbPa2tomT/6/DSZPnrx8+fJZs2Zt27btCc/6zTffNDc319fXv/rqq7/85S+f8GiP9FgD
fu+9957eSIrHHMyoxhrhkx/5v0/Nzkl5EZ/21xsAz8WYgbVly5b6+vqHPlhfX79ly5aR1TUxg4OD
T36Q6j3WuZ7SwO7du5c6/lhHeJZT+qJ4GnNSXsonUR6YVQP4rzTeLcLxDQwM7N+//9atW6tXr25t
bS2K4v79+x0dHefPn58xY8bbb789c+bMkduXnzUpPd1V+rf0ONfSpUuPHz8+ffr0zZs3nz59+osv
vhgcHJw6deqyZcuWLFlS2rG9vX3//v03b95cs2bN7NmzDxw4MDAw8MYbbyxevPiRpy65cuVKZ2fn
0NDQ66+/vmTJktIHH7njuXPnDh8+/ODBg1WrVrW2tg4MDHzyySdFUbS1tS1evPiTTz6ZNGlSXV3d
2rVrr1692t3dXRTFBx98UFdXVz7C119/feTIkXnz5p07d2779u1jzV7lucqzVNpr5OuRzp8///nn
nw8NDa1bt67yqkuzN3KGKy+5mhkea13KTxFt2rTpwIEDN2/eLO8y0q1btw4ePHjjxo158+Zt3Lhx
0qRJjxzY9evX9+/fXxTFokWL1q1b19nZWZre3/72t1OmTCnNYTVrUeXXajVXUbmUw8PDn3/+eXd3
d11d3cqVK1tbWyuva9SVHWulxpnPyjkc9TgA1IKJB1Zvb+9Pf/rTq1evHjp0qPQ949ixYy0tLevX
r798+fLhw4fb29tHbl9+Gmb79u2lh7qKovjLX/5y586dadOm/frXvy5t1tXV9e67706bNu3q1at7
9uxZsmRJace+vr729vZLly51dHS8/vrrP/vZz/r7+/fv31/63jP+qUuGhoY2b948ODh48ODBqVOn
Lliw4JE79vf3d3d3b9mypb+/f9++fTNnzmxqanr//fd37969bNmyl156afv27X/9619/8YtfTJ06
tbm5+cKFC1u2bBlZV0VRfPbZZ1u3br1x48a5c+fGmb1Rz/Xee+99/PHHpV22bt36t7/97aGLunz5
8qlTp9rb2xsaGk6dOlV51QcPHnxohisvuZoZHmtdyivb29u7adOma9euHThwoDJN9u3bt3z58nnz
5p08efIPf/hDXV3dlClTxh/Ypk2bpk+f3tHRsWrVqqIofvKTn1y8ePGdd94p1VVRFDNmzKhyLar5
Wq3mKiqX8sSJEw0NDb/61a/Onj3b1dXV2tpaOeGjrmzlSj1yPivnsJSPANSgid+eWLJkSX19fUtL
S/kh4rNnzx48ePCPf/zjf/7znytXrjy0/ajPmrz//vtFUcybN6/8kW3btk2dOrWnp+fw4cP3798v
77hw4cL6+vr58+ffvXt3yZIlDQ0Nzc3N33//fTWnLnn11Vfr6upmzpy5fv36EydOVLPjkSNH1q1b
19DQ0NLSsmbNmsOHDxdFMW3atDlz5ly4cKEoiv7+/u+++670+uzZsz/+8Y8bGhoeOsj06dMvXbo0
d+7ckW8+Vc7eqOdqbGws7zLq23LHjx9ft25dY2NjfX39qD8rUDnDlZdczQyPtS7F/z7nVNqlpaWl
vMtIAwMD8+bNq6ure+2112bNmvXBBx88cmCTJk165ZVX5s6d29PTUxRFX19fY2Pjyy+/PPKwVa5F
NV+r1VxF5VJ2d3cvXry4rq5u4cKFpQmpvK5RV7bSI+ezcg5HPQ4AtWDi72CVjLxPcefOncobWGUP
va9TUvkAyvXr1zs7O+fOnfvWW2+V3rAZuePI01V/6ofMmDHj5s2b1ezY398/derU0usFCxZ0dnaW
Xs+fP//rr79etGjRV199tXTp0nPnzrW2tvb09Lz11luVB2lvb//ss89OnDixYcOGV155ZeSnRl7C
WOca3/Xr18sRVvnMXDHaDFdecjUzPM66jDzFWPetFi5c+OWXX7a1tV28ePHOnTtVDqwoisWLF+/Z
s+e111776quvyjd2R6p+Lcb/gqnmKiqXcmho6KFpr7yuKlf2kfNZOYcA1KzkA7azZs0qv/7mm28m
dpC9e/du2LBhxYoVL7300lM69a1bt37wgx9Us+OsWbN6e3tLr+/fv1/Oo+bm5mvXrg0MDFy7du2N
N964efPm5cuX6+rqRh6tbPr06Rs3bly/fn3piaJxLmHUcz3kwYMHI/87f/7869evl17fvXu3coNR
T1R+Xf0yTWxdylpbWy9evPjhhx8eO3Zsw4YN1Q+ssbGxsbHxzJkzV69enT9/fuVej7UW45/rkSqX
sr6+fnh4ePy9qlzZR6pmDgGoEY8OrNL37/7+/vI3ksHBwaIoSr+8p3TPpfR6zpw5Z86cuXfv3tmz
Zyu/aZX2GhwcLG1848aN8o4jm+D777+/devW0NDQmTNniqK4f//+WKcr/Vv67PinLoqirq6up6fn
3r173377bekZo9LHK3ccebq1a9cePXr02rVrd+7cOXz48OrVq8tHa25u3rt378KFCydPnjxnzpxD
hw4tXLhw1AnctWvXuXPnpk2bVvrps7EuZ6xzNTQ09Pb23r17t/SI1ccffzzyCKtXry7tde/eva6u
rqIoPvroo5Fnr5zh8S95rBkea10GBwdv37496u4j7du37+233/7d7363devWlpaWKgdWsnjx4o6O
jtJUj7qy46xF9V+r1VzFQ0tZFEVLS0tfX9/w8PCtW7dKT9xXXteoK1se2EMvxpnPyjkEoGbVrVy5
cpxP79q1q/TTWKdPn+7q6ipt/OGHHxZF8eWXX65cufJPf/pT+fXs2bO/+OKLjo6OgYGBdevWPfRW
R2mvU6dOffnll0VRdHd3d3V1lV739PS0tbWVNpsyZUpnZ2dfX9+aNWsuXLgwNDS0b9++UU9XPuAj
T10UxZw5c7q6uo4cOdLX17dy5cq5c+eWPl6548irmz59+uTJkw8dOnT69Om2trbm5ubyAYeHh0+f
Pr1x48bSnZ2enp4333xz1NugXV1dLS0te/fuXbVq1Y9+9KOxZm+sc9XV1XV2dvb29i5fvvzSpUtr
1679xz/+Ud5rypQps2fP3rdv36lTp9ra2q5du7Z27dqRT2uVTjdyhse/5LFmeKx1OXXqVKn8Kncf
OQlnz549cuRIV1dXadGnTp3673//+5EDK3185syZJ06cePPNN0e9Bzr+WlT/tfrnP//5kVfx0FIW
RdHU1HTkyJHOzs6rV68uW7bshz/8YeWEj7qy5YGVZ6/0Ypz5rJzDl19++dNPP120aNGo0wLAczSp
+keXYGJu3rx5586d0o/ODQ8P37x589NPP63+Ge0rV66cPHnynXfeeZpjrHVPOIcAPGN+ySFP3Z49
e7799tvST8PdvXu3r69vzpw5Ve774MGD0pPdT3OAL4AnmUMAnj3vYPHUnT9//uTJkzdu3Hjw4EFj
Y+PcuXNXrFhR+fssKv3973+/c+fO+vXrPXI04TkE4LkQWAAAYW4RAgCECSwAgDCBBQAQJrAAAMIE
FgBAmMACAAgTWAAAYQILACBMYAEAhAksAIAwgQUAECawAADCBBYAQJjAAgAIE1gAAGECCwAgTGAB
AIQJLACAMIEFABAmsAAAwgQWAECYwAIACBNYAABhAgsAIExgAQCECSwAgDCBBQAQNmViu3V3d2fH
AUxYa2vr8x4CAP+Pd7DgxbZgwYLnPQQAHjbBd7BKfv/736fGAZS0t7cXRbF79+6+vr6xtmlqatq8
eXNRFL/5zW+e3cgAqNoTBRbwNOzcuXPHjh1Pvg0Az4tbhFBbdu/eXU057dixY/fu3c9gPABMgMCC
2jLOncEJbwnAMyawAADCBBYAQJjAghfApEmTnvcQAHgMAgtqXamuNBbAC0RgQU0b2VUaC+BFIbCg
dlUWlcYCeCH4RaNQu4aHh5/3EACYCO9gAQCECSwAgDCBBQAQ5hksqDk7d+583kMA4Il4BwsAIMw7
WFBztm3bVvnB27dvP/SRf/3rX89kOAA8Nu9gAQCECSwAgDCBBQAQJrAAAMIEFgBAmMACAAgTWAAA
YQILACBMYAEAhAksAIAwgQUAECawAADC/LFnqGkfffTRyP/+/Oc/f14jAaB6Agtq2rZt20ovbt++
/XxHAkD13CIEAAjzDhbUNLcIAV5EAgtqmluEAC8itwgBAMK8gwU1zS1CgBeRwIKa5hYhwIvILUIA
gDCBBQAQJrAAAMIEFgBAmMACAAgTWAAAYQILACBMYAEAhAksAIAwgQUAECawAADC/C1CqDkP/YFn
AF44AgtqzurVq6vZ7OjRo097JABMjFuEAABhAgsAIExgAQCECSwAgDCBBQAQJrAAAMIEFgBAmMAC
AAgTWAAAYQILACBMYAEAhAksAIAwgQUAECawAADCBBYAQJjAAgAIE1gAAGECCwAgTGABAIQJLACA
MIEFABAmsAAAwgQWAECYwAIACBNYAABhAgsAIExgAQCECSwAgDCBBQAQJrAAAMIEFgBAmMACAAgT
WAAAYQILACBMYAEAhAksAIAwgQUAECawAADCBBYAQJjAAgAIE1gAAGECCwAgTGABAIQJLACAMIEF
ABAmsAAAwgQWAECYwAIACBNYAABhAgsAIExgAQCECSwAgDCBBQAQJrAAAMIEFgBAmMACAAgTWAAA
YQILACBMYAEAhAksAIAwgQUAECawAADCBBYAQJjAAgAIE1gAAGECCwAgTGABAIQJLACAMIEFABAm
sAAAwgQWAECYwAIACBNYAABhAgsAIExgAQCECSwAgDCBBQAQJrAAAMIEFgBAmMACAAgTWAAAYQIL
ACBMYAEAhAksAIAwgQUAECawAADCBBYAQJjAAgAIE1gAAGECCwAgTGABAIQJLACAMIEFABAmsAAA
wgQWAECYwAIACBNYAABhAgsAIExgAQCECSwAgDCBBQAQJrAAAMIEFgBAmMACAAgTWAAAYQILACBM
YAEAhAksAIAwgQUAECawAADCBBYAQJjAAgAIE1gAAGECCwAgTGABAIQJLACAMIEFABAmsAAAwgQW
AECYwAIACBNYAABhAgsAIExgAQCECSwAgDCBBQAQJrAAAMIEFgBAmMACAAgTWAAAYQILACBMYAEA
hAksAIAwgQUAECawAADCBBYAQNiU5z0A4GFHjx593kMA4IkILKg5O3bsqGaznTt3Pu2RADAxbhEC
AIQJLACAMIEFABAmsAAAwjzkDrVr0qRJlR8cHh5+9iMB4LF4BwtqV2VLqSuAF4LAgpo2sqjUFcCL
QmBBrSt1lboCeIEILHgBqCuAF4vAAgAIE1hQW5qamuJbAvCMCSyoLZs3b67mjwzu3Llz8+bNz2A8
AEyA34MFNWfHjh27d+/u6+sba4OmpqYq/yA0AM/FpO3bt09gt+7u7qIoFixYkB4P8NgaGhqe9xAA
+H8mfotQXQEAjGqCtwhbW1uz4wAA+K/hIXcAgDCBBQAQJrAAAMIEFgBAmMACAAgTWAAAYQILACBM
YAEAhAksAIAwgQUAECawAADCBBYAQJjAAgAIE1gAAGECCwAgTGABAIQJLACAMIEFABAmsAAAwgQW
AECYwAIACBNYAABhAgsAIExgAQCECSwAgDCBBQAQJrAAAMIEFgBAmMACAAgTWAAAYQILACBMYAEA
hAksAIAwgQUAECawAADCBBYAQJjAAgAIE1gAAGECCwAgTGABAIQJLACAMIEFABAmsAAAwgQWAECY
wAIACBNYAABhAgsAIExgAQCECSwAgDCBBQAQJrAAAMIEFgBAmMACAAgTWAAAYQILACBMYAEAhAks
AIAwgQUAECawAADCBBYAQJjAAgAIE1gAAGECCwAgTGABAIQJLACAMIEFABAmsAAAwgQWAECYwAIA
CBNYAABhAgsAIExgAQCECSwAgDCBBQAQJrAAAMIEFgBAmMACAAgTWAAAYQILACBMYAEAhAksAIAw
gQUAECawAADCBBYAQJjAAgAIE1gAAGECCwAgTGABAIQJLACAMIEFABAmsAAAwgQWAECYwAIACBNY
AABhAgsAIExgAQCECSwAgDCBBQAQJrAAAMIEFgBAmMACAAgTWAAAYQILACBMYAEAhAksAIAwgQUA
ECawAADCBBYAQJjAAgAIE1gAAGECCwAgTGABAIQJLACAMIEFABAmsAAAwgQWAECYwAIACBNYAABh
AgsAIExgAQCECSwAgDCBBQAQJrAAAMIEFgBAmMACAAgTWAAAYQILACBMYAEAhAksAIAwgQUAECaw
AADCBBYAQJjAAgAIE1gAAGECCwAgTGABAIQJLACAMIEFABAmsAAAwgQWAECYwAIACBNYAABhAgsA
IExgAQCECSwAgDCBBQAQJrAAAMIEFgBAmMACAAgTWAAAYQILACBMYAEAhAksAIAwgQUAECawAADC
BBYAQJjAAgAIE1gAAGECCwAgTGABAIQJLACAMIEFABAmsAAAwgQWAECYwAIACBNYAABhAgsAIExg
AQCECSwAgDCBBQAQJrAAAMIEFgBAmMACAAgTWAAAYQILACBMYAEAhAksAIAwgQUAECawAADCBBYA
QJjAAgAIE1gAAGECCwAgTGABAIQJLACAMIEFABAmsAAAwgQWAECYwAIACBNYAABhAgsAIExgAQCE
CSwAgDCBBQAQJrAAAMIEFgBAmMACAAgTWAAAYQILACBMYAEAhAksAIAwgQUAECawAADCBBYAQJjA
AgAIE1gAAGECCwAgTGABAIQJLACAMIEFABAmsAAAwgQWAECYwAIACBNYAABhAgsAIExgAQCECSwA
gDCBBQAQJrAAAMIEFgBAmMACAAgTWAAAYQILACBMYAEAhAksAIAwgQUAECawAADCBBYAQJjAAgAI
E1gAAGECCwAgTGABAIQJLACAMIEFABAmsAAAwgQWAECYwAIACBNYAABhAgsAIExgAQCECSwAgDCB
BQAQJrAAAMIEFgBAmMACAAgTWAAAYQILACBMYAEAhAksAIAwgQUAECawAADCBBYAQJjAAgAIE1gA
AGECCwAgTGABAIQJLACAMIEFABAmsAAAwgQWAECYwAIACBNYAABhAgsAIExgAQCECSwAgDCBBQAQ
JrAAAMIEFgBAmMACAAgTWAAAYQILACBMYAEAhAksAIAwgQUAECawAADCBBYAQJjAAgAIE1gAAGEC
CwAgTGABAIQJLACAMIEFABAmsAAAwgQWAECYwAIACBNYAABhAgsAIExgAQCECSwAgDCBBQAQJrAA
AMIEFgBAmMACAAgTWAAAYQILACBMYAEAhAksAIAwgQUAECawAADCBBYAQJjAAgAIE1gAAGECCwAg
TGABAIQJLACAMIEFABAmsAAAwgQWAECYwAIACBNYAABhAgsAIExgAQCECSwAgDCBBQAQJrAAAMIE
FgBAmMACAAgTWAAAYQILACBMYAEAhAksAIAwgQUAECawAADCBBYAQJjAAgAIE1gAAGECCwAgTGAB
AIQJLACAMIEFABAmsAAAwgQWAECYwAIACPsfYTwpEPf/4o0AAAAASUVORK5CYIIKXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCisAAAANSUhEUgAAAyAAAAJYCAIAAAAVFBUnAAAAKXRFWHRjaGVj
a3N1bQA4ODE2NzJmZTNhMzZhNzkxN2EwZDE2ODgxMWFhNDljZM0VoocAABh3SURBVHic7dzZb1Tn
4cfhY4wds7aUCMwWFcwSlhAQNYFEgbaRqKAhrdRU9II/qX9Apd5yQ6umrZK0Kk1bUYndAhJwWBID
YTOYnTg4hMW/i9FvajG2GeCL7THPcxFNhplz3vOekfzxOa+nbsuWLQUAADljhnsAAACjjcACAAgT
WAAAYQILACBMYAEAhAksAIAwgQUAECawAADCBBYAQJjAAgAIE1gAAGECCwAgTGABAIQJLACAMIEF
ABAmsAAAwgQWAECYwAIACBNYAABhYwf6h+3btw/0T+vWrTt06NCmTZuedGf/+te/3nnnnaIoHj58
eOTIkVOnThVFsXTp0oULFz7ppp5RZ2dn9YfwRC9+3oN5oi0875FXKp/iEWvo56RK5YH1HeHIn08A
+jVgYBVFsXTp0iVLlowZM2b79u1btmwpVdHx48f379//7bffPsXOyj8qjh49Om3atCVLlnR2dh45
cmToA+uJDuHAgQM9PT0jZDD9GmiEz77lJzXya2Do56RK5ZPY92yO/PkEoF8D3iKcPHnyokWLxoz5
3wvGjBmzZMmSyZMnb968+Rn3+tVXX02fPr2hoeGVV175+c9//oxbeworT3QI77777vMbSfGEg+nX
QCN89i2PPiN2Tson8Xl/3gAYAgMG1saNGxsaGh55sqGhYePGjX2r6+ncuXPn2TdSpfv371c++UR7
f05DLQ/s2bc/0BaGbJJryPOYk34/Y0+qPDBnDWAUGOwW4eC6u7v37Nlz+/btFStWtLS0FEXx4MGD
AwcOnD9/fuLEiW+99dakSZP6vr68sqS0uqv039JyroULFx49enT8+PEbNmw4derU559/fufOnaam
psWLFy9YsKD0xvXr1+/Zs+fWrVsrV66cOnXq3r17u7u7X3/99fnz5w+06y+//PLQoUOzZs06d+7c
li1bKg/hypUrbW1tPT09r7322oIFC0pPDn4URVGcO3fu4MGDDx8+XL58eUtLS3d398cff1wUxaJF
i+bPn//xxx/X1dXV19evWrXq6tWrHR0dRVG8//779fX15S30O7DK+azcV3neSu/q+7iv8+fPf/bZ
Zz09Pa2trZVHXZrPvnNeecjVzPlAZ6q8imjdunV79+69detW+S193b59e9++fTdv3pw1a9batWvr
6uoeO7AbN27s2bOnKIp58+a1tra2tbWVpvdXv/rV2LFjS3NYzbmo8tNbzVFUnsre3t7PPvuso6Oj
vr5+2bJlLS0tlcfV75kd6EwNMp+Vc9jvdgAYek8fWJ2dnT/+8Y+vXr26f//+0k+II0eONDc3r169
+vLlywcPHly/fn3f15fXvmzZsqW0qKsoir/85S93794dN27cL3/5y9LL2tvb33nnnXHjxl29enXn
zp0LFiwovbGrq2v9+vWXLl06cODAa6+99pOf/OT69et79uwp/aTpd9effvrppk2bbt68ee7cuX4P
oaenZ8OGDXfu3Nm3b19TU9OcOXMeexTXr1/v6OjYuHHj9evXd+/ePWnSpGnTpr333ns7duxYvHjx
Sy+9tGXLlr/+9a8/+9nPmpqapk+ffuHChY0bN/atq4EGVjmf/e7r3Xff/eijj0pv2bRp09/+9rdH
Dury5csnT55cv359Y2PjyZMnK4963759j8x55SFXM+cDnanyue7s7Fy3bt21a9f27t1bmSa7d+9e
smTJrFmzjh8//oc//KG+vn7s2LGDD2zdunXjx48/cODA8uXLi6L40Y9+dPHixbfffrtUV0VRTJw4
scpzUc2nt5qjqDyVx44da2xs/MUvfnH27Nn29vaWlpbKCe/3zFaeqcfOZ+UclvIRgGH39DcjFixY
0NDQ0NzcXF4yfPbs2X379v3xj3/873//e+XKlUde3+/Kkvfee68oilmzZpWf2bx5c1NT0+nTpw8e
PPjgwYPyG+fOndvQ0DB79ux79+4tWLCgsbFx+vTp33333SC7Hj9+/KVLl2bOnNnv5auiKF555ZX6
+vpJkyatXr362LFj1RzFoUOHWltbGxsbm5ubV65cefDgwaIoxo0bN2PGjAsXLhRFcf369W+//bb0
+OzZsz/84Q8bGxsf2Ui/A6ucz373NWHChPJbKq+uFUVx9OjR1tbWCRMmNDQ09PvXA5VzXnnI1cz5
QGeq+P91TqW3NDc3l9/SV3d396xZs+rr61999dXJkye///77jx1YXV3dyy+/PHPmzNOnTxdF0dXV
NWHChClTpvTdbJXnoppPbzVHUXkqOzo65s+fX19fP3fu3NKEVB5Xv2e20mPns3IO+90OAEPv6a9g
lfS9K3H37t2BUqYoikeu4pRULje5ceNGW1vbzJkz33zzzdLlmb5v7Lu7x+56/fr1n3766bFjx9as
WfPyyy8PchQTJ068detWNUdx/fr1pqam0uM5c+a0tbWVHs+ePfvLL7+cN2/eF198sXDhwnPnzrW0
tJw+ffrNN9+s3MggA+t7UAPta3A3btwoR1jlKrqivzmvPORq5nyQM9V3FwPdt5o7d+6JEycWLVp0
8eLFu3fvVjmwoijmz5+/c+fOV1999Ysvvijf2O2r+nMx+EeomqOoPJU9PT2PTHvlcVV5Zh87n5Vz
CMAIkVxOO3ny5PLjr7766uk2smvXrjVr1ixduvSll156xl2PHz9+7dq1q1evLi3cGcTt27e/973v
DbKpvjvq7OwsPX7w4EE5j6ZPn37t2rXu7u5r1669/vrrt27dunz5cn19fd+tlVU5sIH29YiHDx/2
/d/Zs2ffuHGj9PjevXuVL+h3R+XH1Z+4pztTZS0tLRcvXvzggw+OHDmyZs2a6gc2YcKECRMmnDlz
5urVq7Nnz6581xOdi8H39ViVp7KhoaG3t3fwd1V5Zh+rmjkEYFg8PrBKP62vX79e/rFx586doihK
X9VTusNSejxjxowzZ87cv3//7NmzlT+iSu+6c+dO6cU3b94sv7FvAXz33Xe3b9/u6ek5c+ZMURQP
HjwYaHel/5b+td9db9++/dy5c+PGjev3j7zq6+tPnz59//79r7/+urTGqPR85ab6DmDVqlWHDx++
du3a3bt3Dx48uGLFivLWpk+fvmvXrrlz544ZM2bGjBn79++fO3duv1P6yMAGOsCB9tXY2NjZ2Xnv
3r3SEquPPvqo7xZWrFhRetf9+/fb29uLovjwww/77r1yzgc/5IHmfKAzdefOnW+++abft/e1e/fu
t95669e//vWmTZuam5urHFjJ/PnzDxw4UJrqfs/sIOei+k9vNUdR+Rlrbm7u6urq7e29fft2acV9
5XH1e2bLA3vkwSDzWTmHAIwQ9cuWLRvkn7dv317626tTp061t7eXXvzBBx8URXHixIlly5b96U9/
Kj+eOnXq559/fuDAge7u7tbW1kcubJTedfLkyRMnThRF0dHR0d7eXnp8+vTpRYsWlV42duzYtra2
rq6ulStXXrhwoaenZ/fu3f3urrzBgXbd3t7e3Ny8a9eu5cuX/+AHP3jk0GbMmNHe3n7o0KGurq5l
y5bNnDmz9Hzlpvoe7/jx48eMGbN///5Tp04tWrRo+vTp5Q329vaeOnVq7dq1pTs7p0+ffuONN/q9
MfrIwAaaz4H2VV9f39bW1tnZuWTJkkuXLq1ateqf//xn+V1jx46dOnXq7t27T548uWjRomvXrq1a
tarvaq3S7vrO+eCHPNCcD3SmTp48WSq/yrf3nYSzZ88eOnSovb299DFoamr6z3/+89iBlZ6fNGnS
sWPH3njjjX7vgQ5+Lqr/9P75z39+7FFUfsamTZt26NChtra2q1evLl68+Pvf/37lhPd7ZssDK89e
6cEg81k5h1OmTPnkk0/mzZvX77QAMGTqBllvBM/JrVu37t69W/rTud7e3lu3bn3yySfVr9G+cuXK
8ePH33777ec5xpHuGecQgOfKVxoyDHbu3Pn111+X/hru3r17XV1dM2bMqPK9Dx8+LK3sfp4DrAHP
MocAPG+uYDEMzp8/f/z48Zs3bz58+HDChAkzZ85cunRp5fdZVPrHP/5x9+7d1atXW3L01HMIwBAQ
WAAAYW4RAgCECSwAgDCBBQAQJrAAAMIEFgBAmMACAAgTWAAAYQILACBMYAEAhAksAIAwgQUAECaw
AADCBBYAQJjAAgAIE1gAAGECCwAgTGABAIQJLACAMIEFABAmsAAAwgQWAECYwAIACBNYAABhAgsA
IExgAQCECSwAgDCBBQAQJrAAAMIEFgBAmMACAAgTWAAAYQILACBMYAEAhAksAIAwgQUAECawAADC
BBYAQJjAAgAIE1gAAGECCwAgTGABAIQJLACAMIEFABAmsAAAwgQWAECYwAIACBNYAABhAgsAIExg
AQCECSwAgDCBBQAQJrAAAMIEFgBAmMACAAgTWAAAYQILACBMYAEAhAksAIAwgQUAECawAADCBBYA
QJjAAgAIE1gAAGECCwAgTGABAIQJLACAMIEFABAmsAAAwgQWAECYwAIACBNYAABhAgsAIExgAQCE
CSwAgDCBBQAQJrAAAMIEFgBAmMACAAgTWAAAYQILACBMYAEAhAksAIAwgQUAECawAADCBBYAQJjA
AgAIE1gAAGECCwAgbOzTva2joyM7DoZRS0vLcA8BAEYVV7BedHPmzBnuIQDAaPOUV7BKfvvb36bG
Qcr69euLotixY0dXV9dAr5k2bdqGDRuKorhx40ZRFFOmTBmy4cFz8pvf/Ga4hwDwP88UWIxM27Zt
27p167O/BgB4OgJrtNmxY0c15bR169YdO3a0trYOwZBGuN///vfDPQQCSgtDLSgERghrsEabQe4M
PvUroSZYUAiMHK5gQVEUxcKFC4d7CDzqiRYU/v3vfx+6kQE8jsACRi4LCiuBGuUW4Quhrq5uuIcA
T+yJFhQOwXgAqiewRr9SXWksao4FhUDtElijXN+u0lgAMDQE1mhWWVQaCwCGgEXuo1lvb+9wDwHC
6urqfLCBkc8VLKBmWFAI1AorgQXUBgsKK4EaIrCAGmBBIVBbrMEahbZt2zbcQ4Aw666A2uIKKxYA
QJgrWKPQ5s2bK5/85ptvHnnm3//+95AMBwBeOK5gAQCEuYIFjFwWFAI1yhUsAIAwV7CAkcuCQqBG
uYIFABAmsAAAwgQWAECYwAIACBNYAABhAgsAIExgAQCECSwAgDBfNDrKffjhh33/96c//elwjQQA
XhwCa5QrfxF25ZdfAwDPiVuEAABhrmCNcm4RAsDQE1ijnFuEjBp+WwBqiMACaoPfFoAaIrBGOb/0
A8DQE1ijnF/6GTX8tgDUEIEF1Aa/LQA1xNc0AACEuYIF1Aa3CIEaIrCA2uAWIVBD3CIEAAgTWAAA
YQILACBMYAEAhAksAIAwgQUAECawAADCfA/WKPTI9zECAENMYI1CK1asqOZlhw8fft4jAYAXk1uE
AABhAgsAIMwtQmDksqAQqFECCxi5LCgEapRbhAAAYQILACBMYAEAhAksAIAwgQUAECawAADCBBYA
QJjAAgAIE1gAAGECCwAgTGABAIQJLACAMIEFABAmsAAAwgQWAECYwAIACBNYAABhAgsAIExgAQCE
CSwAgDCBBQAQJrAAAMIEFgBAmMACAAgTWAAAYQILACBMYAEAhAksAIAwgQUAECawAADCBBYAQJjA
AgAIE1gAAGECCwAgTGABAIQJLACAMIEFABAmsAAAwgQWAECYwAIACBNYAABhAgsAIExgAQCECSwA
gDCBBQAQJrAAAMIEFgBAmMACAAgTWAAAYQILACBMYAEAhAksAIAwgQUAECawAADCBBYAQJjAAgAI
E1gAAGECCwAgTGABAIQJLACAMIEFABAmsAAAwgQWAECYwAIACBNYAABhAgsAIExgAQCECSwAgDCB
BQAQJrAAAMIEFgBAmMACAAgTWAAAYQILACBMYAEAhAksAIAwgQUAECawAADCBBYAQJjAAgAIE1gA
AGECCwAgTGABAIQJLACAMIEFABAmsAAAwgQWAECYwAIACBNYAABhAgsAIExgAQCECSwAgDCBBQAQ
JrAAAMIEFgBAmMACAAgTWAAAYQILACBMYAEAhAksAIAwgQUAECawAADCBBYAQJjAAgAIE1gAAGEC
CwAgTGABAIQJLACAMIEFABAmsAAAwgQWAECYwAIACBNYAABhAgsAIExgAQCECSwAgDCBBQAQJrAA
AMIEFgBAmMACAAgTWAAAYQILACBMYAEAhAksAIAwgQUAECawAADCBBYAQJjAAgAIE1gAAGECCwAg
TGABAISNHe4BkHf48OHhHgIAvNAE1ii0devWal62bdu25z0SAHgxuUUIABAmsAAAwtwiBEYuCwor
gRolsICRy4JCoEYJrNGsrq6u8sne3t6hHwkAvFCswRrNKltKXQHAEBBYo1zfolJXADA0BNboV+oq
dQUAQ8YarBeCuqLWWVAI1BZXsIAaYEEhUFsE1mgzbdq0+CthJLCgEKghAmu02bBhQzXfCbRt27YN
GzYMwXggyIJCoFZYgzUKK23dunXHjh1dXV0DvWDatGlVfn8jjDTqCiuoCc8UWMuXL0+Ng5QbN24U
RdHa2lrNywCA5+HpbxHOmTMnOA6AR1hQCNSup7yC1dLSUhTFlClTooMB+J/SgsLH3s4uveZ3v/vd
0IwKK6Aa1mABI5cFhUCNqtuyZctwjwGGU0dHR+GW92jR2Ng43EMAKAorX9MAhboCIM0tQl50pQWF
ABDkCisWAECYwAIACBNYAABhAgsAIExgAQCECSwAgDCBBQAQJrAAAMIEFgBAmMACAAgTWAAAYQIL
ACBMYAEAhAksAIAwgQUAECawAADCBBYAQJjAAgAIE1gAAGECCwAgTGABAIQJLACAMIEFABAmsAAA
wgQWAECYwAIACBNYAABhAgsAIExgAQCECSwAgDCBBQAQJrAAAMIEFgBAmMACAAgTWAAAYQILACBM
YAEAhAksAIAwgQUAECawAADCBBYAQJjAAgAIE1gAAGECCwAgTGABAIQJLACAMIEFABAmsAAAwgQW
AECYwAIACBNYAABhAgsAIExgAQCECSwAgDCBBQAQJrAAAMIEFgBAmMACAAgTWAAAYQILACBMYAEA
hAksAIAwgQUAECawAADCBBYAQJjAAgAIE1gAAGECCwAgTGABAIQJLACAMIEFABAmsAAAwgQWAECY
wAIACBNYAABhAgsAIExgAQCECSwAgDCBBQAQJrAAAMIEFgBAmMACAAgTWAAAYQILACBMYAEAhAks
AIAwgQUAECawAADCBBYAQJjAAgAIE1gAAGECCwAgTGABAIQJLACAMIEFABAmsAAAwgQWAECYwAIA
CBNYAABhAgsAIExgAQCECSwAgDCBBQAQJrAAAMIEFgBAmMACAAgTWAAAYQILACBMYAEAhAksAIAw
gQUAECawAADCBBYAQJjAAgAIE1gAAGECCwAgTGABAIQJLACAMIEFABAmsAAAwgQWAECYwAIACBNY
AABhAgsAIExgAQCECSwAgDCBBQAQJrAAAMIEFgBAmMACAAgTWAAAYQILACBMYAEAhAksAIAwgQUA
ECawAADCBBYAQJjAAgAIE1gAAGECCwAgTGABAIQJLACAMIEFABAmsAAAwgQWAECYwAIACBNYAABh
AgsAIExgAQCECSwAgDCBBQAQJrAAAMIEFgBAmMACAAgTWAAAYQILACBMYAEAhAksAIAwgQUAECaw
AADCBBYAQJjAAgAIE1gAAGECCwAgTGABAIQJLACAMIEFABAmsAAAwgQWAECYwAIACBNYAABhAgsA
IExgAQCECSwAgDCBBQAQJrAAAMIEFgBAmMACAAgTWAAAYQILACBMYAEAhAksAIAwgQUAECawAADC
BBYAQJjAAgAIE1gAAGECCwAgTGABAIQJLACAMIEFABAmsAAAwgQWAECYwAIACBNYAABhAgsAIExg
AQCECSwAgDCBBQAQJrAAAMIEFgBAmMACAAgTWAAAYQILACBMYAEAhAksAIAwgQUAECawAADCBBYA
QJjAAgAIE1gAAGECCwAgTGABAIQJLACAMIEFABAmsAAAwgQWAECYwAIACBNYAABhAgsAIExgAQCE
CSwAgDCBBQAQJrAAAMIEFgBAmMACAAgTWAAAYQILACBMYAEAhAksAIAwgQUAECawAADCBBYAQJjA
AgAIE1gAAGECCwAgTGABAIQJLACAMIEFABAmsAAAwgQWAECYwAIACBNYAABhAgsAIExgAQCECSwA
gDCBBQAQJrAAAMIEFgBAmMACAAgTWAAAYQILACBMYAEAhAksAIAwgQUAECawAADCBBYAQJjAAgAI
E1gAAGECCwAgTGABAIQJLACAMIEFABAmsAAAwgQWAECYwAIACBNYAABhAgsAIOz/AFPT2rB2Oz0g
AAAAAElFTkSuQmCCClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRleDogTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2Zhc3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1pZnJhbWUt
Y29weS1vbi1zY3JvbGwtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtLXdpbi9mYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNvcHkt
b24tc2Nyb2xsLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTMzODMxKQorKysgTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0td2luL2Zhc3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1pZnJhbWUtY29w
eS1vbi1zY3JvbGwtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDE3ICsxLDQ4IEBA
CiBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXpl
IDgwMHg2MDAKLWxheWVyIGF0ICgwLDApIHNpemUgODAweDUyCi0gIFJlbmRlckJsb2NrIHtIVE1M
fSBhdCAoMCwwKSBzaXplIDgwMHg1MgotICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDE2KSBz
aXplIDc4NHgyMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NDA5CisgIFJlbmRlckJsb2NrIHtI
VE1MfSBhdCAoMCwwKSBzaXplIDgwMHg0MDkKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCwx
Nikgc2l6ZSA3ODR4Mzg1CiAgICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMCkgc2l6ZSA3ODR4
MjAKLSAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMzE1eDE5Ci0gICAg
ICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMzE1OiAiVGhlIGlmcmFtZSBiZWxvdyBzaG91
bGQgcmVtYWluIGdyZXkgd2hlbiBzY3JvbGxpbmcuIgotbGF5ZXIgYXQgKDgsNTIpIHNpemUgMzI1
eDIzMAotICBSZW5kZXJCbG9jayAocG9zaXRpb25lZCkgekk6IDEge0RJVn0gYXQgKDgsNTIpIHNp
emUgMzI1eDIzMAotICAgIFJlbmRlclBhcnRPYmplY3Qge0lGUkFNRX0gYXQgKDEwLDEwKSBzaXpl
IDMwNHgyMDUgW2JvcmRlcjogKDJweCBpbnNldCAjMDAwMDAwKV0KLSAgICAgIGxheWVyIGF0ICgw
LDApIHNpemUgMjg1eDEwMTYKLSAgICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDI4NXgy
MDAKLSAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMjg1eDEwMTYKLSAgICAgICAgUmVuZGVyQmxv
Y2sge0hUTUx9IGF0ICgwLDApIHNpemUgMjg1eDEwMTYKLSAgICAgICAgICBSZW5kZXJCb2R5IHtC
T0RZfSBhdCAoOCw4KSBzaXplIDI2OXgxMDAwIFtiZ2NvbG9yPSNDMEMwQzBdCisgICAgICAgIFJl
bmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDMyMXgxOQorICAgICAgICAgIHRleHQgcnVu
IGF0ICgwLDApIHdpZHRoIDMyMTogIlRoZSBpZnJhbWVzIGJlbG93IHNob3VsZCByZW1haW4gZ3Jl
eSB3aGVuIHNjcm9sbGluZy4iCisgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwzNikgc2l6
ZSA3ODR4MzQ5CisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTc0LDI1OSkgc2l6ZSA1
eDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDE3NCwyNTkpIHdpZHRoIDU6ICIgIgorICAgICAg
ICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKK2xheWVyIGF0ICg4LDExMikg
c2l6ZSAxNzV4MjMwCisgIFJlbmRlckJsb2NrIChyZWxhdGl2ZSBwb3NpdGlvbmVkKSB6STogMSB7
RElWfSBhdCAoMCw2MCkgc2l6ZSAxNzV4MjMwCisgICAgUmVuZGVyUGFydE9iamVjdCB7SUZSQU1F
fSBhdCAoMTAsMTApIHNpemUgMTU0eDIwNSBbYm9yZGVyOiAoMnB4IGluc2V0ICMwMDAwMDApXQor
ICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxMzV4MTAxNgorICAgICAgICBSZW5kZXJWaWV3IGF0
ICgwLDApIHNpemUgMTM1eDIwMAorICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxMzV4MTAxNgor
ICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAxMzV4MTAxNgorICAgICAg
ICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgMTE5eDEwMDAgW2JnY29sb3I9I0Mw
QzBDMF0KKyAgICBSZW5kZXJUZXh0IHpJOiAxIHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKK2xh
eWVyIGF0ICgxODcsNTIpIHNpemUgMjk4eDM1MAorICBSZW5kZXJCbG9jayAocmVsYXRpdmUgcG9z
aXRpb25lZCkgekk6IDEge0RJVn0gYXQgKDE3OCwwKSBzaXplIDI5OXgzNTAKKyAgICBSZW5kZXJU
ZXh0IHpJOiAxIHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKK2xheWVyIGF0ICgxOTcsNjMpIHNp
emUgMjc4eDMzMAorICBSZW5kZXJCbG9jayAocmVsYXRpdmUgcG9zaXRpb25lZCkgekk6IDEge0RJ
Vn0gYXQgKDEwLDEwKSBzaXplIDI3OHgzMzAKKyAgICBSZW5kZXJUZXh0IHpJOiAxIHsjdGV4dH0g
YXQgKDAsMCkgc2l6ZSAweDAKK2xheWVyIGF0ICgyMDcsNzQpIHNpemUgMjU3eDMxMAorICBSZW5k
ZXJCbG9jayAocmVsYXRpdmUgcG9zaXRpb25lZCkgekk6IDEge0RJVn0gYXQgKDEwLDEwKSBzaXpl
IDI1N3gzMTAKKyAgICBSZW5kZXJUZXh0IHpJOiAxIHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAK
K2xheWVyIGF0ICgyMTcsODQpIHNpemUgMjM2eDI5MAorICBSZW5kZXJCbG9jayAocmVsYXRpdmUg
cG9zaXRpb25lZCkgekk6IDEge0RJVn0gYXQgKDEwLDEwKSBzaXplIDIzN3gyOTAKKyAgICBSZW5k
ZXJUZXh0IHpJOiAxIHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKK2xheWVyIGF0ICgyMjcsOTUp
IHNpemUgMjE2eDI3MAorICBSZW5kZXJCbG9jayAocmVsYXRpdmUgcG9zaXRpb25lZCkgekk6IDEg
e0RJVn0gYXQgKDEwLDEwKSBzaXplIDIxNngyNzAKKyAgICBSZW5kZXJUZXh0IHpJOiAxIHsjdGV4
dH0gYXQgKDAsMCkgc2l6ZSAweDAKK2xheWVyIGF0ICgyMzcsMTA2KSBzaXplIDE5NXgyNTAKKyAg
UmVuZGVyQmxvY2sgKHJlbGF0aXZlIHBvc2l0aW9uZWQpIHpJOiAxIHtESVZ9IGF0ICgxMCwxMCkg
c2l6ZSAxOTZ4MjUwCisgICAgUmVuZGVyVGV4dCB6STogMSB7I3RleHR9IGF0ICgwLDApIHNpemUg
MHgwCitsYXllciBhdCAoMjQ3LDExNykgc2l6ZSAxNzV4MjMwCisgIFJlbmRlckJsb2NrIChyZWxh
dGl2ZSBwb3NpdGlvbmVkKSB6STogMSB7RElWfSBhdCAoMTAsMTApIHNpemUgMTc1eDIzMAorICAg
IFJlbmRlclBhcnRPYmplY3Qge0lGUkFNRX0gYXQgKDEwLDEwKSBzaXplIDE1NHgyMDUgW2JvcmRl
cjogKDJweCBpbnNldCAjMDAwMDAwKV0KKyAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTM1eDEw
MTYKKyAgICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDEzNXgyMDAKKyAgICAgIGxheWVy
IGF0ICgwLDApIHNpemUgMTM1eDEwMTYKKyAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgw
LDApIHNpemUgMTM1eDEwMTYKKyAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBz
aXplIDExOXgxMDAwIFtiZ2NvbG9yPSNDMEMwQzBdCiAgICAgUmVuZGVyVGV4dCB6STogMSB7I3Rl
eHR9IGF0ICgwLDApIHNpemUgMHgwCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS9UZXN0RXhwZWN0YXRpb25zCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlzaW9uIDEzMzgzMSkKKysrIExheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMJKHdvcmtpbmcgY29weSkKQEAgLTQx
MzEsNiArNDEzMSw5IEBAIEJ1ZyhkcHJhbmtlKSBbIFdpbiBdIHdlYmF1ZGlvL2NvZGVjLXRlc3QK
IAogd2Via2l0Lm9yZy9iLzEwMDAyMyBbIE1hYyBdIGZhc3Qvc3ViLXBpeGVsL2ZpbGUtdXBsb2Fk
LWNvbnRyb2wtYXQtZnJhY3Rpb25hbC1vZmZzZXQuaHRtbCBbIEZhaWx1cmUgSW1hZ2VPbmx5RmFp
bHVyZSBdCiAKKyMgTmVlZHMgcmViYXNlbGluZSBhZnRlciBib3RzIGN5Y2xlCitCdWcobGV2aXcp
IFsgV2luIE1hYyBdIGZhc3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1pZnJhbWUtY29weS1vbi1zY3Jv
bGwuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCisKIHdlYmtpdC5vcmcvYi8xMDA0NzggIFsgTWFjIF0g
Y3NzMy9maWx0ZXJzL2N1c3RvbS9lZmZlY3QtY3VzdG9tLmh0bWwgWyBQYXNzIEltYWdlT25seUZh
aWx1cmUgXQogCiB3ZWJraXQub3JnL2IvMTAwNDI0IGVkaXRpbmcvc2VsZWN0aW9uL3VzZXItc2Vs
ZWN0LWFsbC1zZWxlY3Rpb24uaHRtbCBbIEZhaWx1cmUgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173366</attachid>
            <date>2012-11-09 14:31:33 -0800</date>
            <delta_ts>2012-11-09 14:55:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101779-20121109142940.patch</filename>
            <type>text/plain</type>
            <size>57136</size>
            <attacher name="Levi Weintraub">leviw</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNDExMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQyIEBACisyMDEyLTExLTA5ICBMZXZpIFdl
aW50cmF1YiAgPGxldml3QGNocm9taXVtLm9yZz4KKworICAgICAgICBBY2N1bXVsYXRlIHVzaW5n
IGEgTGF5b3V0U2l6ZSBpbiBtYXBMb2NhbFRvQ29udGFpbmVyIHdoZW4gcG9zc2libGUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTc3OQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1hcExvY2FsVG9Db250
YWluZXIgcHJldmlvdXNseSBhY2N1bXVsYXRlZCBvZmZzZXRzIGluIFRyYW5zZm9ybVN0YXRlLCB3
aGljaCBpcyBwb3RlbnRpYWxseSBleHBlbnNpdmUgd2hlbiB0aGVyZSBhcmUKKyAgICAgICAgdHJh
bnNmb3JtcywgYnV0IGFsc28gZnVuY3Rpb25hbGx5IGluY29ycmVjdCB3aGVuIHRoZXJlIGFyZSBt
dWx0aXBsZSBsZXZlbHMgb2YgY29udGFpbmVycyB3aXRoIHN1Yi1waXhlbCBvZmZzZXRzIGluCisg
ICAgICAgIHRoZSByZW5kZXJlciBjaGFpbiwgYXMgd2Ugd291bGQgcGl4ZWwgc25hcCBmcm9tIHRo
ZSBib3R0b20gdG93YXJkcyB0aGUgcm9vdCBpbnN0ZWFkIG9mIHZpY2UtdmVyc2EsIGFzIHdlIGRv
IHdoZW4KKyAgICAgICAgd2UgcGFpbnQuIFRoaXMgZnVuY3Rpb25hbGx5IGluY29ycmVjdCBiZWhh
dmlvciBsZWFkcyB0byByZXBhaW50IGFydGlmYWN0cywgZXNwZWNpYWxseSBpbiB3aWRnZXRzLiBU
aGlzIGNoYW5nZSB3aWxsCisgICAgICAgIGFsc28gaW1wcm92ZSBwZXJmb3JtYW5jZSBzaW5jZSB3
ZSBvbmx5IGhhdmUgdG8gYXBwbHkgdGhlIHRyYW5zZm9ybSB0byBuKzEgb2Zmc2V0cyB3aGVyZSBu
IGlzIHRoZSBudW1iZXIgb2YKKyAgICAgICAgdHJhbnNmb3JtcyBpbiB0aGUgY2hhaW4sIHdoZXJl
YXMgY3VycmVudGx5IHdlIGhhdmUgdG8gYXBwbHkgaXQgTyhtKSB3aGVyZSBtIGlzIHRoZSBudW1i
ZXIgb2YgcmVuZGVyZXJzIGluIHRoZSBjaGFpbiwKKyAgICAgICAgd2l0aCBzb21lIGVsZW1lbnRz
IGFjY3VtdWxhdGluZyBtdWx0aXBsZSBvZmZzZXRzLgorCisgICAgICAgIFJlZmFjdG9yZWQgYSBw
cmV2aW91cyB0ZXN0IHRvIGFsc28gY292ZXIgdGhpcy4KKworICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0xheW91dFNpemUuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlcklubGluZS5jcHA6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlcklubGluZS5oOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJPYmplY3QuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVmlldy5jcHA6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR0ZvcmVpZ25PYmplY3QuY3BwOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHRm9yZWlnbk9iamVjdC5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5s
aW5lLmNwcDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5oOgorICAg
ICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwOgorICAgICAgICAq
IHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuaDoKKyAgICAgICAgKiByZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHUm9vdC5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5jcHA6Cisg
ICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0Lmg6CisgICAgICAgICogcmVuZGVy
aW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1NW
R1JlbmRlclN1cHBvcnQuaDoKKwogMjAxMi0xMS0wOSAgRGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIERlZmluZSBXRUJLSVRfSU1QTEVNRU5U
QVRJT04gZXZlcnl3aGVyZSBpbnNpZGUgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvTGF5b3V0U2l6ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0xheW91dFNpemUuaAkocmV2aXNpb24gMTM0MTEyKQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTGF5b3V0U2l6ZS5oCSh3b3JraW5nIGNvcHkp
CkBAIC03MSw3ICs3MSwxMyBAQCBwdWJsaWM6CiAgICAgICAgIG1fd2lkdGggKz0gd2lkdGg7CiAg
ICAgICAgIG1faGVpZ2h0ICs9IGhlaWdodDsKICAgICB9Ci0gICAgCisKKyAgICB2b2lkIGV4cGFu
ZChjb25zdCBMYXlvdXRTaXplJiBzKQorICAgIHsKKyAgICAgICAgbV93aWR0aCArPSBzLm1fd2lk
dGg7CisgICAgICAgIG1faGVpZ2h0ICs9IHMubV9oZWlnaHQ7CisgICAgfQorCiAgICAgdm9pZCBz
Y2FsZShmbG9hdCBzY2FsZSkKICAgICB7CiAgICAgICAgIG1fd2lkdGggKj0gc2NhbGU7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAkocmV2aXNpb24gMTM0MTEyKQor
KysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEyNjksMTAgKzEyNjksMTMgQEAgTGF5b3V0VW5pdCBSZW5kZXJCb3g6OnBlcnBlbmRpY3Vs
YXJDb250YQogICAgIHJldHVybiBjYi0+YWRqdXN0Q29udGVudEJveExvZ2ljYWxIZWlnaHRGb3JC
b3hTaXppbmcobG9naWNhbEhlaWdodExlbmd0aC52YWx1ZSgpKTsKIH0KIAotdm9pZCBSZW5kZXJC
b3g6Om1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVw
YWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBDb29yZGlu
YXRlc0ZsYWdzIG1vZGUsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAordm9pZCBSZW5kZXJCb3g6Om1h
cExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENv
bnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBDb29yZGluYXRlc0Zs
YWdzIG1vZGUsIGJvb2wqIHdhc0ZpeGVkLCBMYXlvdXRTaXplIGFjY3VtdWxhdGVkT2Zmc2V0KSBj
b25zdAogeworICAgIGJvb2wgY29udGFpbmVyU2tpcHBlZDsKKyAgICBSZW5kZXJPYmplY3QqIG8g
PSBjb250YWluZXIocmVwYWludENvbnRhaW5lciwgJmNvbnRhaW5lclNraXBwZWQpOworICAgIGJv
b2wgcHJlc2VydmUzRCA9IG1vZGUgJiBVc2VUcmFuc2Zvcm1zICYmICgobyAmJiBvLT5zdHlsZSgp
LT5wcmVzZXJ2ZXMzRCgpKSB8fCBzdHlsZSgpLT5wcmVzZXJ2ZXMzRCgpKTsKICAgICBpZiAocmVw
YWludENvbnRhaW5lciA9PSB0aGlzKQotICAgICAgICByZXR1cm47CisgICAgICAgIHJldHVybiB0
cmFuc2Zvcm1TdGF0ZS5tb3ZlKChtb2RlICYgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpID8gcm91
bmRlZEludFNpemUoYWNjdW11bGF0ZWRPZmZzZXQpIDogYWNjdW11bGF0ZWRPZmZzZXQsIHByZXNl
cnZlM0QgPyBUcmFuc2Zvcm1TdGF0ZTo6QWNjdW11bGF0ZVRyYW5zZm9ybSA6IFRyYW5zZm9ybVN0
YXRlOjpGbGF0dGVuVHJhbnNmb3JtKTsKIAogICAgIGlmIChSZW5kZXJWaWV3KiB2ID0gdmlldygp
KSB7CiAgICAgICAgIGlmICh2LT5sYXlvdXRTdGF0ZUVuYWJsZWQoKSAmJiAhcmVwYWludENvbnRh
aW5lcikgewpAQCAtMTI4NSwxMCArMTI4OCw5IEBAIHZvaWQgUmVuZGVyQm94OjptYXBMb2NhbFRv
Q29udGFpbmVyKGNvbnMKICAgICAgICAgfQogICAgIH0KIAotICAgIGJvb2wgY29udGFpbmVyU2tp
cHBlZDsKLSAgICBSZW5kZXJPYmplY3QqIG8gPSBjb250YWluZXIocmVwYWludENvbnRhaW5lciwg
JmNvbnRhaW5lclNraXBwZWQpOworCiAgICAgaWYgKCFvKQotICAgICAgICByZXR1cm47CisgICAg
ICAgIHJldHVybiB0cmFuc2Zvcm1TdGF0ZS5tb3ZlKChtb2RlICYgU25hcE9mZnNldEZvclRyYW5z
Zm9ybXMpID8gcm91bmRlZEludFNpemUoYWNjdW11bGF0ZWRPZmZzZXQpIDogYWNjdW11bGF0ZWRP
ZmZzZXQsIHByZXNlcnZlM0QgPyBUcmFuc2Zvcm1TdGF0ZTo6QWNjdW11bGF0ZVRyYW5zZm9ybSA6
IFRyYW5zZm9ybVN0YXRlOjpGbGF0dGVuVHJhbnNmb3JtKTsKIAogICAgIGJvb2wgaXNGaXhlZFBv
cyA9IHN0eWxlKCktPnBvc2l0aW9uKCkgPT0gRml4ZWRQb3NpdGlvbjsKICAgICBib29sIGhhc1Ry
YW5zZm9ybSA9IGhhc0xheWVyKCkgJiYgbGF5ZXIoKS0+dHJhbnNmb3JtKCk7CkBAIC0xMzAyLDM2
ICsxMzA0LDM2IEBAIHZvaWQgUmVuZGVyQm94OjptYXBMb2NhbFRvQ29udGFpbmVyKGNvbnMKICAg
ICBpZiAod2FzRml4ZWQpCiAgICAgICAgICp3YXNGaXhlZCA9IG1vZGUgJiBJc0ZpeGVkOwogICAg
IAotICAgIExheW91dFNpemUgY29udGFpbmVyT2Zmc2V0ID0gb2Zmc2V0RnJvbUNvbnRhaW5lcihv
LCByb3VuZGVkTGF5b3V0UG9pbnQodHJhbnNmb3JtU3RhdGUubWFwcGVkUG9pbnQoKSkpOwotICAg
IGlmIChtb2RlICYgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpCi0gICAgICAgIGNvbnRhaW5lck9m
ZnNldCA9IHJvdW5kZWRJbnRTaXplKGNvbnRhaW5lck9mZnNldCk7CisgICAgTGF5b3V0U2l6ZSBj
b250YWluZXJPZmZzZXQgPSBvZmZzZXRGcm9tQ29udGFpbmVyKG8sIHJvdW5kZWRMYXlvdXRQb2lu
dCh0cmFuc2Zvcm1TdGF0ZS5tYXBwZWRQb2ludCgpICsgYWNjdW11bGF0ZWRPZmZzZXQpKTsKICAg
ICAKLSAgICBib29sIHByZXNlcnZlM0QgPSBtb2RlICYgVXNlVHJhbnNmb3JtcyAmJiAoby0+c3R5
bGUoKS0+cHJlc2VydmVzM0QoKSB8fCBzdHlsZSgpLT5wcmVzZXJ2ZXMzRCgpKTsKICAgICBpZiAo
bW9kZSAmIFVzZVRyYW5zZm9ybXMgJiYgc2hvdWxkVXNlVHJhbnNmb3JtRnJvbUNvbnRhaW5lcihv
KSkgewogICAgICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCB0OwogICAgICAgICBnZXRUcmFuc2Zv
cm1Gcm9tQ29udGFpbmVyKG8sIGNvbnRhaW5lck9mZnNldCwgdCk7CisgICAgICAgIHRyYW5zZm9y
bVN0YXRlLm1vdmUoKG1vZGUgJiBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcykgPyByb3VuZGVkSW50
U2l6ZShhY2N1bXVsYXRlZE9mZnNldCkgOiBhY2N1bXVsYXRlZE9mZnNldCwgcHJlc2VydmUzRCA/
IFRyYW5zZm9ybVN0YXRlOjpBY2N1bXVsYXRlVHJhbnNmb3JtIDogVHJhbnNmb3JtU3RhdGU6OkZs
YXR0ZW5UcmFuc2Zvcm0pOworICAgICAgICBhY2N1bXVsYXRlZE9mZnNldCA9IExheW91dFNpemUo
KTsKICAgICAgICAgdHJhbnNmb3JtU3RhdGUuYXBwbHlUcmFuc2Zvcm0odCwgcHJlc2VydmUzRCA/
IFRyYW5zZm9ybVN0YXRlOjpBY2N1bXVsYXRlVHJhbnNmb3JtIDogVHJhbnNmb3JtU3RhdGU6OkZs
YXR0ZW5UcmFuc2Zvcm0pOwogICAgIH0gZWxzZQotICAgICAgICB0cmFuc2Zvcm1TdGF0ZS5tb3Zl
KGNvbnRhaW5lck9mZnNldC53aWR0aCgpLCBjb250YWluZXJPZmZzZXQuaGVpZ2h0KCksIHByZXNl
cnZlM0QgPyBUcmFuc2Zvcm1TdGF0ZTo6QWNjdW11bGF0ZVRyYW5zZm9ybSA6IFRyYW5zZm9ybVN0
YXRlOjpGbGF0dGVuVHJhbnNmb3JtKTsKKyAgICAgICAgYWNjdW11bGF0ZWRPZmZzZXQuZXhwYW5k
KGNvbnRhaW5lck9mZnNldCk7CiAKICAgICBpZiAoY29udGFpbmVyU2tpcHBlZCkgewogICAgICAg
ICAvLyBUaGVyZSBjYW4ndCBiZSBhIHRyYW5zZm9ybSBiZXR3ZWVuIHJlcGFpbnRDb250YWluZXIg
YW5kIG8sIGJlY2F1c2UgdHJhbnNmb3JtcyBjcmVhdGUgY29udGFpbmVycywgc28gaXQgc2hvdWxk
IGJlIHNhZmUKICAgICAgICAgLy8gdG8ganVzdCBzdWJ0cmFjdCB0aGUgZGVsdGEgYmV0d2VlbiB0
aGUgcmVwYWludENvbnRhaW5lciBhbmQgby4KICAgICAgICAgTGF5b3V0U2l6ZSBjb250YWluZXJP
ZmZzZXQgPSByZXBhaW50Q29udGFpbmVyLT5vZmZzZXRGcm9tQW5jZXN0b3JDb250YWluZXIobyk7
Ci0gICAgICAgIHRyYW5zZm9ybVN0YXRlLm1vdmUoLWNvbnRhaW5lck9mZnNldC53aWR0aCgpLCAt
Y29udGFpbmVyT2Zmc2V0LmhlaWdodCgpLCBwcmVzZXJ2ZTNEID8gVHJhbnNmb3JtU3RhdGU6OkFj
Y3VtdWxhdGVUcmFuc2Zvcm0gOiBUcmFuc2Zvcm1TdGF0ZTo6RmxhdHRlblRyYW5zZm9ybSk7Ci0g
ICAgICAgIHJldHVybjsKKyAgICAgICAgYWNjdW11bGF0ZWRPZmZzZXQuZXhwYW5kKC1jb250YWlu
ZXJPZmZzZXQpOworICAgICAgICByZXR1cm4gdHJhbnNmb3JtU3RhdGUubW92ZSgobW9kZSAmIFNu
YXBPZmZzZXRGb3JUcmFuc2Zvcm1zKSA/IHJvdW5kZWRJbnRTaXplKGFjY3VtdWxhdGVkT2Zmc2V0
KSA6IGFjY3VtdWxhdGVkT2Zmc2V0LCBwcmVzZXJ2ZTNEID8gVHJhbnNmb3JtU3RhdGU6OkFjY3Vt
dWxhdGVUcmFuc2Zvcm0gOiBUcmFuc2Zvcm1TdGF0ZTo6RmxhdHRlblRyYW5zZm9ybSk7CiAgICAg
fQogCiAgICAgbW9kZSAmPSB+QXBwbHlDb250YWluZXJGbGlwOwogICAgIGlmIChvLT5pc1JlbmRl
ckZsb3dUaHJlYWQoKSkgewogICAgICAgICAvLyBUcmFuc2Zvcm0gZnJvbSByZW5kZXIgZmxvdyBj
b29yZGluYXRlcyBpbnRvIHJlZ2lvbiBjb29yZGluYXRlcy4KKyAgICAgICAgdHJhbnNmb3JtU3Rh
dGUubW92ZSgobW9kZSAmIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKSA/IHJvdW5kZWRJbnRTaXpl
KGFjY3VtdWxhdGVkT2Zmc2V0KSA6IGFjY3VtdWxhdGVkT2Zmc2V0LCBwcmVzZXJ2ZTNEID8gVHJh
bnNmb3JtU3RhdGU6OkFjY3VtdWxhdGVUcmFuc2Zvcm0gOiBUcmFuc2Zvcm1TdGF0ZTo6RmxhdHRl
blRyYW5zZm9ybSk7CiAgICAgICAgIFJlbmRlclJlZ2lvbiogcmVnaW9uID0gdG9SZW5kZXJGbG93
VGhyZWFkKG8pLT5tYXBGcm9tRmxvd1RvUmVnaW9uKHRyYW5zZm9ybVN0YXRlKTsKICAgICAgICAg
aWYgKHJlZ2lvbikKICAgICAgICAgICAgIHJlZ2lvbi0+bWFwTG9jYWxUb0NvbnRhaW5lcihyZWdp
b24tPmNvbnRhaW5lckZvclJlcGFpbnQoKSwgdHJhbnNmb3JtU3RhdGUsIG1vZGUsIHdhc0ZpeGVk
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG8tPm1hcExvY2FsVG9Db250YWluZXIo
cmVwYWludENvbnRhaW5lciwgdHJhbnNmb3JtU3RhdGUsIG1vZGUsIHdhc0ZpeGVkKTsKKyAgICBv
LT5tYXBMb2NhbFRvQ29udGFpbmVyKHJlcGFpbnRDb250YWluZXIsIHRyYW5zZm9ybVN0YXRlLCBt
b2RlLCB3YXNGaXhlZCwgYWNjdW11bGF0ZWRPZmZzZXQpOwogfQogCiBjb25zdCBSZW5kZXJPYmpl
Y3QqIFJlbmRlckJveDo6cHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1v
ZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1hcCYgZ2VvbWV0cnlN
YXApIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCShyZXZpc2lv
biAxMzQxMTIpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgJKHdvcmtp
bmcgY29weSkKQEAgLTU3Niw3ICs1NzYsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgCiAgICAgdmlydHVh
bCBib29sIHNob3VsZENvbXB1dGVTaXplQXNSZXBsYWNlZCgpIGNvbnN0IHsgcmV0dXJuIGlzUmVw
bGFjZWQoKSAmJiAhaXNJbmxpbmVCbG9ja09ySW5saW5lVGFibGUoKTsgfQogCi0gICAgdmlydHVh
bCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCog
cmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBDb29yZGluYXRlc0ZsYWdzID0g
QXBwbHlDb250YWluZXJGbGlwIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMsIGJvb2wqIHdhc0Zp
eGVkID0gMCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250
YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJh
bnNmb3JtU3RhdGUmLCBNYXBDb29yZGluYXRlc0ZsYWdzID0gQXBwbHlDb250YWluZXJGbGlwIHwg
U25hcE9mZnNldEZvclRyYW5zZm9ybXMsIGJvb2wqIHdhc0ZpeGVkID0gMCwgTGF5b3V0U2l6ZSBh
Y2N1bXVsYXRlZE9mZnNldCA9IExheW91dFNpemUoKSkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmly
dHVhbCBjb25zdCBSZW5kZXJPYmplY3QqIHB1c2hNYXBwaW5nVG9Db250YWluZXIoY29uc3QgUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdCosIFJlbmRlckdlb21ldHJ5TWFwJikgY29uc3QgT1ZFUlJJREU7
CiAgICAgdmlydHVhbCB2b2lkIG1hcEFic29sdXRlVG9Mb2NhbFBvaW50KE1hcENvb3JkaW5hdGVz
RmxhZ3MsIFRyYW5zZm9ybVN0YXRlJikgY29uc3Q7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCShyZXZpc2lvbiAxMzQxMTIpCisrKyBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTExMiw1
NiArMTExMiw1MyBAQCBMYXlvdXRTaXplIFJlbmRlcklubGluZTo6b2Zmc2V0RnJvbUNvbnRhCiAg
ICAgcmV0dXJuIG9mZnNldDsKIH0KIAotdm9pZCBSZW5kZXJJbmxpbmU6Om1hcExvY2FsVG9Db250
YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJh
bnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUsIGJv
b2wqIHdhc0ZpeGVkKSBjb25zdAordm9pZCBSZW5kZXJJbmxpbmU6Om1hcExvY2FsVG9Db250YWlu
ZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNm
b3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUsIGJvb2wq
IHdhc0ZpeGVkLCBMYXlvdXRTaXplIGFjY3VtdWxhdGVkT2Zmc2V0KSBjb25zdAogeworICAgIGJv
b2wgY29udGFpbmVyU2tpcHBlZDsKKyAgICBSZW5kZXJPYmplY3QqIG8gPSBjb250YWluZXIocmVw
YWludENvbnRhaW5lciwgJmNvbnRhaW5lclNraXBwZWQpOworICAgIGJvb2wgcHJlc2VydmUzRCA9
IG1vZGUgJiBVc2VUcmFuc2Zvcm1zICYmICgobyAmJiBvLT5zdHlsZSgpLT5wcmVzZXJ2ZXMzRCgp
KSB8fCBzdHlsZSgpLT5wcmVzZXJ2ZXMzRCgpKTsKICAgICBpZiAocmVwYWludENvbnRhaW5lciA9
PSB0aGlzKQotICAgICAgICByZXR1cm47CisgICAgICAgIHJldHVybiB0cmFuc2Zvcm1TdGF0ZS5t
b3ZlKChtb2RlICYgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpID8gcm91bmRlZEludFNpemUoYWNj
dW11bGF0ZWRPZmZzZXQpIDogYWNjdW11bGF0ZWRPZmZzZXQsIHByZXNlcnZlM0QgPyBUcmFuc2Zv
cm1TdGF0ZTo6QWNjdW11bGF0ZVRyYW5zZm9ybSA6IFRyYW5zZm9ybVN0YXRlOjpGbGF0dGVuVHJh
bnNmb3JtKTs7CiAKICAgICBpZiAoUmVuZGVyVmlldyAqdiA9IHZpZXcoKSkgewogICAgICAgICBp
ZiAodi0+bGF5b3V0U3RhdGVFbmFibGVkKCkgJiYgIXJlcGFpbnRDb250YWluZXIpIHsKICAgICAg
ICAgICAgIExheW91dFN0YXRlKiBsYXlvdXRTdGF0ZSA9IHYtPmxheW91dFN0YXRlKCk7Ci0gICAg
ICAgICAgICBMYXlvdXRTaXplIG9mZnNldCA9IGxheW91dFN0YXRlLT5tX3BhaW50T2Zmc2V0Owor
ICAgICAgICAgICAgYWNjdW11bGF0ZWRPZmZzZXQuZXhwYW5kKGxheW91dFN0YXRlLT5tX3BhaW50
T2Zmc2V0KTsKICAgICAgICAgICAgIGlmIChzdHlsZSgpLT5oYXNJbkZsb3dQb3NpdGlvbigpICYm
IGxheWVyKCkpCi0gICAgICAgICAgICAgICAgb2Zmc2V0ICs9IGxheWVyKCktPm9mZnNldEZvcklu
Rmxvd1Bvc2l0aW9uKCk7Ci0gICAgICAgICAgICB0cmFuc2Zvcm1TdGF0ZS5tb3ZlKG9mZnNldCk7
CisgICAgICAgICAgICAgICAgYWNjdW11bGF0ZWRPZmZzZXQgKz0gbGF5ZXIoKS0+b2Zmc2V0Rm9y
SW5GbG93UG9zaXRpb24oKTsKKyAgICAgICAgICAgIHRyYW5zZm9ybVN0YXRlLm1vdmUoYWNjdW11
bGF0ZWRPZmZzZXQpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQogCi0g
ICAgYm9vbCBjb250YWluZXJTa2lwcGVkOwotICAgIFJlbmRlck9iamVjdCogbyA9IGNvbnRhaW5l
cihyZXBhaW50Q29udGFpbmVyLCAmY29udGFpbmVyU2tpcHBlZCk7CiAgICAgaWYgKCFvKQotICAg
ICAgICByZXR1cm47CisgICAgICAgIHJldHVybiB0cmFuc2Zvcm1TdGF0ZS5tb3ZlKChtb2RlICYg
U25hcE9mZnNldEZvclRyYW5zZm9ybXMpID8gcm91bmRlZEludFNpemUoYWNjdW11bGF0ZWRPZmZz
ZXQpIDogYWNjdW11bGF0ZWRPZmZzZXQsIHByZXNlcnZlM0QgPyBUcmFuc2Zvcm1TdGF0ZTo6QWNj
dW11bGF0ZVRyYW5zZm9ybSA6IFRyYW5zZm9ybVN0YXRlOjpGbGF0dGVuVHJhbnNmb3JtKTsKIAog
ICAgIGlmIChtb2RlICYgQXBwbHlDb250YWluZXJGbGlwICYmIG8tPmlzQm94KCkpIHsKICAgICAg
ICAgaWYgKG8tPnN0eWxlKCktPmlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdNb2RlKCkpIHsKLSAgICAg
ICAgICAgIEludFBvaW50IGNlbnRlclBvaW50ID0gcm91bmRlZEludFBvaW50KHRyYW5zZm9ybVN0
YXRlLm1hcHBlZFBvaW50KCkpOwotICAgICAgICAgICAgdHJhbnNmb3JtU3RhdGUubW92ZSh0b1Jl
bmRlckJveChvKS0+ZmxpcEZvcldyaXRpbmdNb2RlSW5jbHVkaW5nQ29sdW1ucyhjZW50ZXJQb2lu
dCkgLSBjZW50ZXJQb2ludCk7CisgICAgICAgICAgICBJbnRQb2ludCBjZW50ZXJQb2ludCA9IHJv
dW5kZWRJbnRQb2ludCh0cmFuc2Zvcm1TdGF0ZS5tYXBwZWRQb2ludCgpICsgYWNjdW11bGF0ZWRP
ZmZzZXQpOworICAgICAgICAgICAgYWNjdW11bGF0ZWRPZmZzZXQuZXhwYW5kKHRvUmVuZGVyQm94
KG8pLT5mbGlwRm9yV3JpdGluZ01vZGVJbmNsdWRpbmdDb2x1bW5zKGNlbnRlclBvaW50KSAtIGNl
bnRlclBvaW50KTsKICAgICAgICAgfQogICAgICAgICBtb2RlICY9IH5BcHBseUNvbnRhaW5lckZs
aXA7CiAgICAgfQogCi0gICAgTGF5b3V0U2l6ZSBjb250YWluZXJPZmZzZXQgPSBvZmZzZXRGcm9t
Q29udGFpbmVyKG8sIHJvdW5kZWRMYXlvdXRQb2ludCh0cmFuc2Zvcm1TdGF0ZS5tYXBwZWRQb2lu
dCgpKSk7Ci0gICAgaWYgKG1vZGUgJiBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcykKLSAgICAgICAg
Y29udGFpbmVyT2Zmc2V0ID0gcm91bmRlZEludFNpemUoY29udGFpbmVyT2Zmc2V0KTsKLQotICAg
IGJvb2wgcHJlc2VydmUzRCA9IG1vZGUgJiBVc2VUcmFuc2Zvcm1zICYmIChvLT5zdHlsZSgpLT5w
cmVzZXJ2ZXMzRCgpIHx8IHN0eWxlKCktPnByZXNlcnZlczNEKCkpOworICAgIExheW91dFNpemUg
Y29udGFpbmVyT2Zmc2V0ID0gb2Zmc2V0RnJvbUNvbnRhaW5lcihvLCByb3VuZGVkTGF5b3V0UG9p
bnQodHJhbnNmb3JtU3RhdGUubWFwcGVkUG9pbnQoKSArIGFjY3VtdWxhdGVkT2Zmc2V0KSk7CiAg
ICAgaWYgKG1vZGUgJiBVc2VUcmFuc2Zvcm1zICYmIHNob3VsZFVzZVRyYW5zZm9ybUZyb21Db250
YWluZXIobykpIHsKICAgICAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggdDsKICAgICAgICAgZ2V0
VHJhbnNmb3JtRnJvbUNvbnRhaW5lcihvLCBjb250YWluZXJPZmZzZXQsIHQpOwogICAgICAgICB0
cmFuc2Zvcm1TdGF0ZS5hcHBseVRyYW5zZm9ybSh0LCBwcmVzZXJ2ZTNEID8gVHJhbnNmb3JtU3Rh
dGU6OkFjY3VtdWxhdGVUcmFuc2Zvcm0gOiBUcmFuc2Zvcm1TdGF0ZTo6RmxhdHRlblRyYW5zZm9y
bSk7CiAgICAgfSBlbHNlCi0gICAgICAgIHRyYW5zZm9ybVN0YXRlLm1vdmUoY29udGFpbmVyT2Zm
c2V0LndpZHRoKCksIGNvbnRhaW5lck9mZnNldC5oZWlnaHQoKSwgcHJlc2VydmUzRCA/IFRyYW5z
Zm9ybVN0YXRlOjpBY2N1bXVsYXRlVHJhbnNmb3JtIDogVHJhbnNmb3JtU3RhdGU6OkZsYXR0ZW5U
cmFuc2Zvcm0pOworICAgICAgICBhY2N1bXVsYXRlZE9mZnNldC5leHBhbmQoY29udGFpbmVyT2Zm
c2V0KTsKIAogICAgIGlmIChjb250YWluZXJTa2lwcGVkKSB7CiAgICAgICAgIC8vIFRoZXJlIGNh
bid0IGJlIGEgdHJhbnNmb3JtIGJldHdlZW4gcmVwYWludENvbnRhaW5lciBhbmQgbywgYmVjYXVz
ZSB0cmFuc2Zvcm1zIGNyZWF0ZSBjb250YWluZXJzLCBzbyBpdCBzaG91bGQgYmUgc2FmZQogICAg
ICAgICAvLyB0byBqdXN0IHN1YnRyYWN0IHRoZSBkZWx0YSBiZXR3ZWVuIHRoZSByZXBhaW50Q29u
dGFpbmVyIGFuZCBvLgotICAgICAgICBMYXlvdXRTaXplIGNvbnRhaW5lck9mZnNldCA9IHJlcGFp
bnRDb250YWluZXItPm9mZnNldEZyb21BbmNlc3RvckNvbnRhaW5lcihvKTsKLSAgICAgICAgdHJh
bnNmb3JtU3RhdGUubW92ZSgtY29udGFpbmVyT2Zmc2V0LndpZHRoKCksIC1jb250YWluZXJPZmZz
ZXQuaGVpZ2h0KCksIHByZXNlcnZlM0QgPyBUcmFuc2Zvcm1TdGF0ZTo6QWNjdW11bGF0ZVRyYW5z
Zm9ybSA6IFRyYW5zZm9ybVN0YXRlOjpGbGF0dGVuVHJhbnNmb3JtKTsKKyAgICAgICAgYWNjdW11
bGF0ZWRPZmZzZXQuZXhwYW5kKC1yZXBhaW50Q29udGFpbmVyLT5vZmZzZXRGcm9tQW5jZXN0b3JD
b250YWluZXIobykpOworICAgICAgICB0cmFuc2Zvcm1TdGF0ZS5tb3ZlKGFjY3VtdWxhdGVkT2Zm
c2V0LCBwcmVzZXJ2ZTNEID8gVHJhbnNmb3JtU3RhdGU6OkFjY3VtdWxhdGVUcmFuc2Zvcm0gOiBU
cmFuc2Zvcm1TdGF0ZTo6RmxhdHRlblRyYW5zZm9ybSk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKLSAgICBvLT5tYXBMb2NhbFRvQ29udGFpbmVyKHJlcGFpbnRDb250YWluZXIsIHRyYW5zZm9y
bVN0YXRlLCBtb2RlLCB3YXNGaXhlZCk7CisgICAgby0+bWFwTG9jYWxUb0NvbnRhaW5lcihyZXBh
aW50Q29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwgbW9kZSwgd2FzRml4ZWQsIGFjY3VtdWxhdGVk
T2Zmc2V0KTsKIH0KIAogY29uc3QgUmVuZGVyT2JqZWN0KiBSZW5kZXJJbmxpbmU6OnB1c2hNYXBw
aW5nVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0b3JUb1N0
b3BBdCwgUmVuZGVyR2VvbWV0cnlNYXAmIGdlb21ldHJ5TWFwKSBjb25zdApJbmRleDogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaAkocmV2aXNpb24gMTM0MTEyKQorKysgU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
MzgsNyArMTM4LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIExheW91dFJlY3QgcmVjdFdpdGhP
dXRsaW5lRm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29u
dGFpbmVyLCBMYXlvdXRVbml0IG91dGxpbmVXaWR0aCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmly
dHVhbCB2b2lkIGNvbXB1dGVSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2Jq
ZWN0KiByZXBhaW50Q29udGFpbmVyLCBMYXlvdXRSZWN0JiwgYm9vbCBmaXhlZCkgY29uc3QgT1ZF
UlJJREU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5k
ZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1h
cENvb3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJh
bnNmb3JtcywgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBy
ZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBB
cHBseUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCogd2FzRml4
ZWQgPSAwLCBMYXlvdXRTaXplIGFjY3VtdWxhdGVkT2Zmc2V0ID0gTGF5b3V0U2l6ZSgpKSBjb25z
dCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGNvbnN0IFJlbmRlck9iamVjdCogcHVzaE1hcHBpbmdU
b0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0
LCBSZW5kZXJHZW9tZXRyeU1hcCYpIGNvbnN0IE9WRVJSSURFOwogCiAgICAgdmlydHVhbCBWaXNp
YmxlUG9zaXRpb24gcG9zaXRpb25Gb3JQb2ludChjb25zdCBMYXlvdXRQb2ludCYpOwpJbmRleDog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAJKHJldmlzaW9uIDEzNDEx
MikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yMDM5LDMyICsyMDM5LDMyIEBAIEZsb2F0UG9pbnQgUmVuZGVyT2JqZWN0Ojph
YnNvbHV0ZVRvTG9jYWwKICAgICByZXR1cm4gdHJhbnNmb3JtU3RhdGUubGFzdFBsYW5hclBvaW50
KCk7CiB9CiAKLXZvaWQgUmVuZGVyT2JqZWN0OjptYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJl
bmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0
cmFuc2Zvcm1TdGF0ZSwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBib29sKiB3YXNGaXhlZCkg
Y29uc3QKK3ZvaWQgUmVuZGVyT2JqZWN0OjptYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRl
ckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFu
c2Zvcm1TdGF0ZSwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBib29sKiB3YXNGaXhlZCwgTGF5
b3V0U2l6ZSBhY2N1bXVsYXRlZE9mZnNldCkgY29uc3QKIHsKICAgICBpZiAocmVwYWludENvbnRh
aW5lciA9PSB0aGlzKQotICAgICAgICByZXR1cm47CisgICAgICAgIHJldHVybiB0cmFuc2Zvcm1T
dGF0ZS5tb3ZlKChtb2RlICYgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpID8gcm91bmRlZEludFNp
emUoYWNjdW11bGF0ZWRPZmZzZXQpIDogYWNjdW11bGF0ZWRPZmZzZXQpOwogCiAgICAgUmVuZGVy
T2JqZWN0KiBvID0gcGFyZW50KCk7CiAgICAgaWYgKCFvKQotICAgICAgICByZXR1cm47CisgICAg
ICAgIHJldHVybiB0cmFuc2Zvcm1TdGF0ZS5tb3ZlKChtb2RlICYgU25hcE9mZnNldEZvclRyYW5z
Zm9ybXMpID8gcm91bmRlZEludFNpemUoYWNjdW11bGF0ZWRPZmZzZXQpIDogYWNjdW11bGF0ZWRP
ZmZzZXQpOwogCiAgICAgLy8gRklYTUU6IHRoaXMgc2hvdWxkIGNhbGwgb2Zmc2V0RnJvbUNvbnRh
aW5lciB0byBzaGFyZSBjb2RlLCBidXQgSSdtIG5vdCBzdXJlIGl0J3MgZXZlciBjYWxsZWQuCiAg
ICAgTGF5b3V0UG9pbnQgY2VudGVyUG9pbnQgPSByb3VuZGVkTGF5b3V0UG9pbnQodHJhbnNmb3Jt
U3RhdGUubWFwcGVkUG9pbnQoKSk7CiAgICAgaWYgKG1vZGUgJiBBcHBseUNvbnRhaW5lckZsaXAg
JiYgby0+aXNCb3goKSkgewogICAgICAgICBpZiAoby0+c3R5bGUoKS0+aXNGbGlwcGVkQmxvY2tz
V3JpdGluZ01vZGUoKSkKLSAgICAgICAgICAgIHRyYW5zZm9ybVN0YXRlLm1vdmUodG9SZW5kZXJC
b3gobyktPmZsaXBGb3JXcml0aW5nTW9kZUluY2x1ZGluZ0NvbHVtbnMocm91bmRlZExheW91dFBv
aW50KHRyYW5zZm9ybVN0YXRlLm1hcHBlZFBvaW50KCkpKSAtIGNlbnRlclBvaW50KTsKKyAgICAg
ICAgICAgIGFjY3VtdWxhdGVkT2Zmc2V0LmV4cGFuZCh0b1JlbmRlckJveChvKS0+ZmxpcEZvcldy
aXRpbmdNb2RlSW5jbHVkaW5nQ29sdW1ucyhyb3VuZGVkTGF5b3V0UG9pbnQodHJhbnNmb3JtU3Rh
dGUubWFwcGVkUG9pbnQoKSkgKyBhY2N1bXVsYXRlZE9mZnNldCkgLSBjZW50ZXJQb2ludCk7CiAg
ICAgICAgIG1vZGUgJj0gfkFwcGx5Q29udGFpbmVyRmxpcDsKICAgICB9CiAKICAgICBMYXlvdXRT
aXplIGNvbHVtbk9mZnNldDsKLSAgICBvLT5hZGp1c3RGb3JDb2x1bW5zKGNvbHVtbk9mZnNldCwg
cm91bmRlZExheW91dFBvaW50KHRyYW5zZm9ybVN0YXRlLm1hcHBlZFBvaW50KCkpKTsKKyAgICBv
LT5hZGp1c3RGb3JDb2x1bW5zKGNvbHVtbk9mZnNldCwgcm91bmRlZExheW91dFBvaW50KHRyYW5z
Zm9ybVN0YXRlLm1hcHBlZFBvaW50KCkpICsgYWNjdW11bGF0ZWRPZmZzZXQpOwogICAgIGlmICgh
Y29sdW1uT2Zmc2V0LmlzWmVybygpKQotICAgICAgICB0cmFuc2Zvcm1TdGF0ZS5tb3ZlKGNvbHVt
bk9mZnNldCk7CisgICAgICAgIGFjY3VtdWxhdGVkT2Zmc2V0LmV4cGFuZChjb2x1bW5PZmZzZXQp
OwogCiAgICAgaWYgKG8tPmhhc092ZXJmbG93Q2xpcCgpKQotICAgICAgICB0cmFuc2Zvcm1TdGF0
ZS5tb3ZlKC10b1JlbmRlckJveChvKS0+c2Nyb2xsZWRDb250ZW50T2Zmc2V0KCkpOworICAgICAg
ICBhY2N1bXVsYXRlZE9mZnNldC5leHBhbmQoLXRvUmVuZGVyQm94KG8pLT5zY3JvbGxlZENvbnRl
bnRPZmZzZXQoKSk7CiAKLSAgICBvLT5tYXBMb2NhbFRvQ29udGFpbmVyKHJlcGFpbnRDb250YWlu
ZXIsIHRyYW5zZm9ybVN0YXRlLCBtb2RlLCB3YXNGaXhlZCk7CisgICAgby0+bWFwTG9jYWxUb0Nv
bnRhaW5lcihyZXBhaW50Q29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwgbW9kZSwgd2FzRml4ZWQs
IGFjY3VtdWxhdGVkT2Zmc2V0KTsKIH0KIAogY29uc3QgUmVuZGVyT2JqZWN0KiBSZW5kZXJPYmpl
Y3Q6OnB1c2hNYXBwaW5nVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCog
YW5jZXN0b3JUb1N0b3BBdCwgUmVuZGVyR2VvbWV0cnlNYXAmIGdlb21ldHJ5TWFwKSBjb25zdApJ
bmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAkocmV2aXNpb24gMTM0
MTEyKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCSh3b3JraW5n
IGNvcHkpCkBAIC05MzIsNyArOTMyLDcgQEAgcHVibGljOgogCiAgICAgLy8gTWFwIHBvaW50cyBh
bmQgcXVhZHMgdGhyb3VnaCBlbGVtZW50cywgcG90ZW50aWFsbHkgdmlhIDNkIHRyYW5zZm9ybXMu
IFlvdSBzaG91bGQgbmV2ZXIgbmVlZCB0byBjYWxsIHRoZXNlIGRpcmVjdGx5OyB1c2UKICAgICAv
LyBsb2NhbFRvQWJzb2x1dGUvYWJzb2x1dGVUb0xvY2FsIG1ldGhvZHMgaW5zdGVhZC4KLSAgICB2
aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2Jq
ZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxh
Z3MgPSBBcHBseUNvbnRhaW5lckZsaXAsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3Q7CisgICAg
dmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9i
amVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBDb29yZGluYXRlc0Zs
YWdzID0gQXBwbHlDb250YWluZXJGbGlwLCBib29sKiB3YXNGaXhlZCA9IDAsIExheW91dFNpemUg
YWNjdW11bGF0ZWRPZmZzZXQgPSBMYXlvdXRTaXplKCkpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9p
ZCBtYXBBYnNvbHV0ZVRvTG9jYWxQb2ludChNYXBDb29yZGluYXRlc0ZsYWdzLCBUcmFuc2Zvcm1T
dGF0ZSYpIGNvbnN0OwogCiAgICAgLy8gUHVzaGVzIHN0YXRlIG9udG8gUmVuZGVyR2VvbWV0cnlN
YXAgYWJvdXQgaG93IHRvIG1hcCBjb29yZGluYXRlcyBmcm9tIHRoaXMgcmVuZGVyZXIgdG8gaXRz
IGNvbnRhaW5lciwgb3IgYW5jZXN0b3JUb1N0b3BBdCAod2hpY2hldmVyIGlzIGVuY291bnRlcmVk
IGZpcnN0KS4KQEAgLTk1OCw2ICs5NTgsOCBAQCBwdWJsaWM6CiAgICAgUmVzcGVjdEltYWdlT3Jp
ZW50YXRpb25FbnVtIHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKCkgY29uc3Q7CiAKIHBy
b3RlY3RlZDoKKyAgICB2b2lkIGFwcGx5TG9jYWxUb0NvbnRhaW5lclN0YXRlVG9UcmFuc2Zvcm0o
VHJhbnNmb3JtU3RhdGUmKSBjb25zdDsKKwogICAgIGlubGluZSBib29sIGxheWVyQ3JlYXRpb25B
bGxvd2VkRm9yU3VidHJlZSgpIGNvbnN0OwogCiAgICAgLy8gT3ZlcnJpZGVzIHNob3VsZCBjYWxs
IHRoZSBzdXBlcmNsYXNzIGF0IHRoZSBlbmQKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJWaWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVmlldy5jcHAJKHJldmlzaW9uIDEzNDExMikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJWaWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjEwLDEzICsyMTAsMTUgQEAg
dm9pZCBSZW5kZXJWaWV3OjpsYXlvdXQoKQogICAgIHNldE5lZWRzTGF5b3V0KGZhbHNlKTsKIH0K
IAotdm9pZCBSZW5kZXJWaWV3OjptYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVy
TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1T
dGF0ZSwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBib29sKiB3YXNGaXhlZCkgY29uc3QKK3Zv
aWQgUmVuZGVyVmlldzo6bWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVs
T2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUs
IE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQsIExheW91dFNpemUgYWNj
dW11bGF0ZWRPZmZzZXQpIGNvbnN0CiB7CiAgICAgLy8gSWYgYSBjb250YWluZXIgd2FzIHNwZWNp
ZmllZCwgYW5kIHdhcyBub3QgMCBvciB0aGUgUmVuZGVyVmlldywKICAgICAvLyB0aGVuIHdlIHNo
b3VsZCBoYXZlIGZvdW5kIGl0IGJ5IG5vdy4KICAgICBBU1NFUlRfQVJHKHJlcGFpbnRDb250YWlu
ZXIsICFyZXBhaW50Q29udGFpbmVyIHx8IHJlcGFpbnRDb250YWluZXIgPT0gdGhpcyk7CiAgICAg
QVNTRVJUX1VOVVNFRCh3YXNGaXhlZCwgIXdhc0ZpeGVkIHx8ICp3YXNGaXhlZCA9PSAobW9kZSAm
IElzRml4ZWQpKTsKIAorICAgIHRyYW5zZm9ybVN0YXRlLm1vdmUoKG1vZGUgJiBTbmFwT2Zmc2V0
Rm9yVHJhbnNmb3JtcykgPyByb3VuZGVkSW50U2l6ZShhY2N1bXVsYXRlZE9mZnNldCkgOiBhY2N1
bXVsYXRlZE9mZnNldCk7CisKICAgICBpZiAoIXJlcGFpbnRDb250YWluZXIgJiYgbW9kZSAmIFVz
ZVRyYW5zZm9ybXMgJiYgc2hvdWxkVXNlVHJhbnNmb3JtRnJvbUNvbnRhaW5lcigwKSkgewogICAg
ICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCB0OwogICAgICAgICBnZXRUcmFuc2Zvcm1Gcm9tQ29u
dGFpbmVyKDAsIExheW91dFNpemUoKSwgdCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJWaWV3LmgJKHJldmlzaW9uIDEzNDExMikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJWaWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTIyOCw3ICsyMjgsNyBAQCBwdWJsaWM6
CiAgICAgYm9vbCBoYXNSZW5kZXJDb3VudGVycygpIHsgcmV0dXJuIG1fcmVuZGVyQ291bnRlckNv
dW50OyB9CiAKIHByb3RlY3RlZDoKLSAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5l
cihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zv
cm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5lckZsaXAgfCBTbmFw
T2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1v
ZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5h
dGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jtcywg
Ym9vbCogd2FzRml4ZWQgPSAwLCBMYXlvdXRTaXplIGFjY3VtdWxhdGVkT2Zmc2V0ID0gTGF5b3V0
U2l6ZSgpKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGNvbnN0IFJlbmRlck9iamVjdCog
cHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBhbmNl
c3RvclRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1hcCYpIGNvbnN0IE9WRVJSSURFOwogICAgIHZp
cnR1YWwgdm9pZCBtYXBBYnNvbHV0ZVRvTG9jYWxQb2ludChNYXBDb29yZGluYXRlc0ZsYWdzLCBU
cmFuc2Zvcm1TdGF0ZSYpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc0NvbHVtbnMo
aW50IGRlc2lyZWRDb2x1bW5Db3VudCkgY29uc3QgT1ZFUlJJREU7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ZvcmVpZ25PYmplY3QuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9iamVjdC5j
cHAJKHJldmlzaW9uIDEzNDExMikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHRm9yZWlnbk9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE5Myw5ICsxOTMsOSBA
QCBib29sIFJlbmRlclNWR0ZvcmVpZ25PYmplY3Q6Om5vZGVBdFBvaW50CiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCi12b2lkIFJlbmRlclNWR0ZvcmVpZ25PYmplY3Q6Om1hcExvY2FsVG9Db250YWlu
ZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNm
b3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUsIGJvb2wq
IHdhc0ZpeGVkKSBjb25zdAordm9pZCBSZW5kZXJTVkdGb3JlaWduT2JqZWN0OjptYXBMb2NhbFRv
Q29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIs
IFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2Rl
LCBib29sKiB3YXNGaXhlZCwgTGF5b3V0U2l6ZSBhY2N1bXVsYXRlZE9mZnNldCkgY29uc3QKIHsK
LSAgICBTVkdSZW5kZXJTdXBwb3J0OjptYXBMb2NhbFRvQ29udGFpbmVyKHRoaXMsIHJlcGFpbnRD
b250YWluZXIsIHRyYW5zZm9ybVN0YXRlLCBtb2RlICYgU25hcE9mZnNldEZvclRyYW5zZm9ybXMs
IHdhc0ZpeGVkKTsKKyAgICBTVkdSZW5kZXJTdXBwb3J0OjptYXBMb2NhbFRvQ29udGFpbmVyKHRo
aXMsIHJlcGFpbnRDb250YWluZXIsIHRyYW5zZm9ybVN0YXRlLCBtb2RlLCB3YXNGaXhlZCwgYWNj
dW11bGF0ZWRPZmZzZXQpOwogfQogCiBjb25zdCBSZW5kZXJPYmplY3QqIFJlbmRlclNWR0ZvcmVp
Z25PYmplY3Q6OnB1c2hNYXBwaW5nVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9i
amVjdCogYW5jZXN0b3JUb1N0b3BBdCwgUmVuZGVyR2VvbWV0cnlNYXAmIGdlb21ldHJ5TWFwKSBj
b25zdApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWdu
T2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdGb3JlaWduT2JqZWN0LmgJKHJldmlzaW9uIDEzNDExMikKKysrIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBA
IC01NCw3ICs1NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgbm9kZUF0UG9pbnQoY29u
c3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgSGl0VGVzdExvY2F0aW9u
JiBsb2NhdGlvbkluQ29udGFpbmVyLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZz
ZXQsIEhpdFRlc3RBY3Rpb24pIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBpc1NWR0ZvcmVp
Z25PYmplY3QoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgbWFw
TG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29u
dGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRh
aW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCogd2FzRml4ZWQgPSAwKSBj
b25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25z
dCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0
ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0
Rm9yVHJhbnNmb3JtcywgYm9vbCogd2FzRml4ZWQgPSAwLCBMYXlvdXRTaXplIGFjY3VtdWxhdGVk
T2Zmc2V0ID0gTGF5b3V0U2l6ZSgpKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGNvbnN0
IFJlbmRlck9iamVjdCogcHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1v
ZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1hcCYpIGNvbnN0IE9W
RVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc1RyYW5zZm9ybVVwZGF0ZSgpIHsgbV9u
ZWVkc1RyYW5zZm9ybVVwZGF0ZSA9IHRydWU7IH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmNwcAkocmV2aXNpb24gMTM0MTEyKQor
KysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC03OSw5ICs3OSw5IEBAIHZvaWQgUmVuZGVyU1ZHSW5saW5lOjpjb21wdXRl
RmxvYXRSZWN0Rm8KICAgICBTVkdSZW5kZXJTdXBwb3J0Ojpjb21wdXRlRmxvYXRSZWN0Rm9yUmVw
YWludCh0aGlzLCByZXBhaW50Q29udGFpbmVyLCByZXBhaW50UmVjdCwgZml4ZWQpOwogfQogCi12
b2lkIFJlbmRlclNWR0lubGluZTo6bWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXll
ck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3Jt
U3RhdGUsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQpIGNvbnN0Cit2
b2lkIFJlbmRlclNWR0lubGluZTo6bWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXll
ck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3Jt
U3RhdGUsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQsIExheW91dFNp
emUgYWNjdW11bGF0ZWRPZmZzZXQpIGNvbnN0CiB7Ci0gICAgU1ZHUmVuZGVyU3VwcG9ydDo6bWFw
TG9jYWxUb0NvbnRhaW5lcih0aGlzLCByZXBhaW50Q29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwg
bW9kZSAmIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCB3YXNGaXhlZCk7CisgICAgU1ZHUmVuZGVy
U3VwcG9ydDo6bWFwTG9jYWxUb0NvbnRhaW5lcih0aGlzLCByZXBhaW50Q29udGFpbmVyLCB0cmFu
c2Zvcm1TdGF0ZSwgbW9kZSwgd2FzRml4ZWQsIGFjY3VtdWxhdGVkT2Zmc2V0KTsKIH0KIAogY29u
c3QgUmVuZGVyT2JqZWN0KiBSZW5kZXJTVkdJbmxpbmU6OnB1c2hNYXBwaW5nVG9Db250YWluZXIo
Y29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0b3JUb1N0b3BBdCwgUmVuZGVyR2Vv
bWV0cnlNYXAmIGdlb21ldHJ5TWFwKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5oCShyZXZpc2lvbiAxMzQxMTIpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5oCSh3b3JraW5nIGNvcHkp
CkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBjbGlw
cGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBy
ZXBhaW50Q29udGFpbmVyKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgY29tcHV0
ZUZsb2F0UmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWlu
dENvbnRhaW5lciwgRmxvYXRSZWN0JiwgYm9vbCBmaXhlZCA9IGZhbHNlKSBjb25zdCBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXll
ck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3Jk
aW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jt
cywgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQg
bWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50
Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNv
bnRhaW5lckZsaXAsIGJvb2wqIHdhc0ZpeGVkID0gMCwgTGF5b3V0U2l6ZSBhY2N1bXVsYXRlZE9m
ZnNldCA9IExheW91dFNpemUoKSkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBS
ZW5kZXJPYmplY3QqIHB1c2hNYXBwaW5nVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdCogYW5jZXN0b3JUb1N0b3BBdCwgUmVuZGVyR2VvbWV0cnlNYXAmKSBjb25zdCBPVkVS
UklERTsKICAgICB2aXJ0dWFsIHZvaWQgYWJzb2x1dGVRdWFkcyhWZWN0b3I8RmxvYXRRdWFkPiYs
IGJvb2wqIHdhc0ZpeGVkKSBjb25zdDsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5jcHAJKHJldmlzaW9uIDEzNDEx
MikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3Qu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw5ICs1Nyw5IEBAIHZvaWQgUmVuZGVyU1ZHTW9kZWxP
YmplY3Q6OmNvbXB1dGVGbG9hdFIKICAgICBTVkdSZW5kZXJTdXBwb3J0Ojpjb21wdXRlRmxvYXRS
ZWN0Rm9yUmVwYWludCh0aGlzLCByZXBhaW50Q29udGFpbmVyLCByZXBhaW50UmVjdCwgZml4ZWQp
OwogfQogCi12b2lkIFJlbmRlclNWR01vZGVsT2JqZWN0OjptYXBMb2NhbFRvQ29udGFpbmVyKGNv
bnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0
YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBib29sKiB3YXNG
aXhlZCkgY29uc3QKK3ZvaWQgUmVuZGVyU1ZHTW9kZWxPYmplY3Q6Om1hcExvY2FsVG9Db250YWlu
ZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNm
b3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUsIGJvb2wq
IHdhc0ZpeGVkLCBMYXlvdXRTaXplIGFjY3VtdWxhdGVkT2Zmc2V0KSBjb25zdAogewotICAgIFNW
R1JlbmRlclN1cHBvcnQ6Om1hcExvY2FsVG9Db250YWluZXIodGhpcywgcmVwYWludENvbnRhaW5l
ciwgdHJhbnNmb3JtU3RhdGUsIG1vZGUgJiBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jtcywgd2FzRml4
ZWQpOworICAgIFNWR1JlbmRlclN1cHBvcnQ6Om1hcExvY2FsVG9Db250YWluZXIodGhpcywgcmVw
YWludENvbnRhaW5lciwgdHJhbnNmb3JtU3RhdGUsIG1vZGUsIHdhc0ZpeGVkLCBhY2N1bXVsYXRl
ZE9mZnNldCk7CiB9CiAKIGNvbnN0IFJlbmRlck9iamVjdCogUmVuZGVyU1ZHTW9kZWxPYmplY3Q6
OnB1c2hNYXBwaW5nVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5j
ZXN0b3JUb1N0b3BBdCwgUmVuZGVyR2VvbWV0cnlNYXAmIGdlb21ldHJ5TWFwKSBjb25zdApJbmRl
eDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxP
YmplY3QuaAkocmV2aXNpb24gMTM0MTEyKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC01OCw3ICs1OCw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgYWJzb2x1dGVSZWN0cyhWZWN0b3I8SW50UmVjdD4m
LCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQpIGNvbnN0OwogICAgIHZpcnR1
YWwgdm9pZCBhYnNvbHV0ZVF1YWRzKFZlY3RvcjxGbG9hdFF1YWQ+JiwgYm9vbCogd2FzRml4ZWQp
IGNvbnN0OwogCi0gICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBN
YXBDb29yZGluYXRlc0ZsYWdzID0gQXBwbHlDb250YWluZXJGbGlwIHwgU25hcE9mZnNldEZvclRy
YW5zZm9ybXMsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVh
bCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCog
cmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBDb29yZGluYXRlc0ZsYWdzID0g
QXBwbHlDb250YWluZXJGbGlwIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMsIGJvb2wqIHdhc0Zp
eGVkID0gMCwgTGF5b3V0U2l6ZSBhY2N1bXVsYXRlZE9mZnNldCA9IExheW91dFNpemUoKSkgY29u
c3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBSZW5kZXJPYmplY3QqIHB1c2hNYXBwaW5n
VG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0b3JUb1N0b3BB
dCwgUmVuZGVyR2VvbWV0cnlNYXAmKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQg
c3R5bGVXaWxsQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG5ld1N0
eWxlKTsKICAgICB2aXJ0dWFsIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBj
b25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwCShyZXZpc2lvbiAxMzQxMTIpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC00MDEsMTIgKzQwMSwxMiBAQCB2b2lkIFJlbmRlclNWR1Jvb3Q6OmNvbXB1dGVGbG9hdFJl
Y3RGb3JSCiAvLyBUaGlzIG1ldGhvZCBleHBlY3RzIGxvY2FsIENTUyBib3ggY29vcmRpbmF0ZXMu
CiAvLyBDYWxsZXJzIHdpdGggbG9jYWwgU1ZHIHZpZXdwb3J0IGNvb3JkaW5hdGVzIHNob3VsZCBm
aXJzdCBhcHBseSB0aGUgbG9jYWxUb0JvcmRlckJveFRyYW5zZm9ybQogLy8gdG8gY29udmVydCBm
cm9tIFNWRyB2aWV3cG9ydCBjb29yZGluYXRlcyB0byBsb2NhbCBDU1MgYm94IGNvb3JkaW5hdGVz
Lgotdm9pZCBSZW5kZXJTVkdSb290OjptYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxh
eWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zv
cm1TdGF0ZSwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBib29sKiB3YXNGaXhlZCkgY29uc3QK
K3ZvaWQgUmVuZGVyU1ZHUm9vdDo6bWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXll
ck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3Jt
U3RhdGUsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQsIExheW91dFNp
emUgYWNjdW11bGF0ZWRPZmZzZXQpIGNvbnN0CiB7CiAgICAgQVNTRVJUKG1vZGUgJiB+SXNGaXhl
ZCk7IC8vIFdlIHNob3VsZCBoYXZlIG5vIGZpeGVkIGNvbnRlbnQgaW4gdGhlIFNWRyByZW5kZXJp
bmcgdHJlZS4KICAgICBBU1NFUlQobW9kZSAmIFVzZVRyYW5zZm9ybXMpOyAvLyBtYXBwaW5nIGEg
cG9pbnQgdGhyb3VnaCBTVkcgdy9vIHJlc3BlY3RpbmcgdHJhc25mb3JtcyBpcyB1c2VsZXNzLgog
Ci0gICAgUmVuZGVyUmVwbGFjZWQ6Om1hcExvY2FsVG9Db250YWluZXIocmVwYWludENvbnRhaW5l
ciwgdHJhbnNmb3JtU3RhdGUsIG1vZGUgfCBBcHBseUNvbnRhaW5lckZsaXAsIHdhc0ZpeGVkKTsK
KyAgICBSZW5kZXJSZXBsYWNlZDo6bWFwTG9jYWxUb0NvbnRhaW5lcihyZXBhaW50Q29udGFpbmVy
LCB0cmFuc2Zvcm1TdGF0ZSwgbW9kZSB8IEFwcGx5Q29udGFpbmVyRmxpcCwgd2FzRml4ZWQsIGFj
Y3VtdWxhdGVkT2Zmc2V0KTsKIH0KIAogY29uc3QgUmVuZGVyT2JqZWN0KiBSZW5kZXJTVkdSb290
OjpwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGFu
Y2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJiBnZW9tZXRyeU1hcCkgY29uc3QKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5oCShyZXZp
c2lvbiAxMzQxMTIpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jv
b3QuaAkod29ya2luZyBjb3B5KQpAQCAtMTAzLDYgKzEwMyw3IEBAIHByaXZhdGU6CiAgICAgdmly
dHVhbCBMYXlvdXRSZWN0IGNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRl
ckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIpIGNvbnN0IE9WRVJSSURFOwogICAg
IHZpcnR1YWwgdm9pZCBjb21wdXRlRmxvYXRSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXll
ck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBGbG9hdFJlY3QmIHJlcGFpbnRSZWN0LCBi
b29sIGZpeGVkKSBjb25zdCBPVkVSUklERTsKIAorICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRv
Q29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIs
IFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29vcmRpbmF0ZXNGbGFncyA9IEFwcGx5Q29udGFpbmVyRmxp
cCwgYm9vbCogd2FzRml4ZWQgPSAwLCBMYXlvdXRTaXplIGFjY3VtdWxhdGVkT2Zmc2V0ID0gTGF5
b3V0U2l6ZSgpKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0Nv
bnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBU
cmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5lckZsaXAg
fCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBPVkVS
UklERTsKICAgICB2aXJ0dWFsIGNvbnN0IFJlbmRlck9iamVjdCogcHVzaE1hcHBpbmdUb0NvbnRh
aW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5k
ZXJHZW9tZXRyeU1hcCYpIGNvbnN0IE9WRVJSSURFOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5jcHAJKHJldmlzaW9uIDEzNDExMikKKysr
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTExMSw5ICsxMTEsOSBAQCB2b2lkIFJlbmRlclNWR1RleHQ6OmNvbXB1dGVGbG9h
dFJlY3RGb3JSCiAgICAgU1ZHUmVuZGVyU3VwcG9ydDo6Y29tcHV0ZUZsb2F0UmVjdEZvclJlcGFp
bnQodGhpcywgcmVwYWludENvbnRhaW5lciwgcmVwYWludFJlY3QsIGZpeGVkKTsKIH0KIAotdm9p
ZCBSZW5kZXJTVkdUZXh0OjptYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9k
ZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0
ZSwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBib29sKiB3YXNGaXhlZCkgY29uc3QKK3ZvaWQg
UmVuZGVyU1ZHVGV4dDo6bWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVs
T2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUs
IE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQsIExheW91dFNpemUgYWNj
dW11bGF0ZWRPZmZzZXQpIGNvbnN0CiB7Ci0gICAgU1ZHUmVuZGVyU3VwcG9ydDo6bWFwTG9jYWxU
b0NvbnRhaW5lcih0aGlzLCByZXBhaW50Q29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwgbW9kZSAm
IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCB3YXNGaXhlZCk7CisgICAgU1ZHUmVuZGVyU3VwcG9y
dDo6bWFwTG9jYWxUb0NvbnRhaW5lcih0aGlzLCByZXBhaW50Q29udGFpbmVyLCB0cmFuc2Zvcm1T
dGF0ZSwgbW9kZSwgd2FzRml4ZWQsIGFjY3VtdWxhdGVkT2Zmc2V0KTsKIH0KIAogY29uc3QgUmVu
ZGVyT2JqZWN0KiBSZW5kZXJTVkdUZXh0OjpwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJl
bmRlckxheWVyTW9kZWxPYmplY3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFw
JiBnZW9tZXRyeU1hcCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHVGV4dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHVGV4dC5oCShyZXZpc2lvbiAxMzQxMTIpCisrKyBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuaAkod29ya2luZyBjb3B5KQpAQCAtNzUsNyArNzUs
NyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlUmVjdEZvclJlcGFpbnQoY29u
c3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgTGF5b3V0UmVjdCYs
IGJvb2wgZml4ZWQgPSBmYWxzZSkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGNv
bXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJl
cGFpbnRDb250YWluZXIsIEZsb2F0UmVjdCYsIGJvb2wgZml4ZWQgPSBmYWxzZSkgY29uc3QgT1ZF
UlJJREU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5k
ZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1h
cENvb3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJh
bnNmb3JtcywgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBy
ZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBB
cHBseUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCogd2FzRml4
ZWQgPSAwLCBMYXlvdXRTaXplIGFjY3VtdWxhdGVkT2Zmc2V0ID0gTGF5b3V0U2l6ZSgpKSBjb25z
dCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGNvbnN0IFJlbmRlck9iamVjdCogcHVzaE1hcHBpbmdU
b0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0
LCBSZW5kZXJHZW9tZXRyeU1hcCYpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBh
ZGRDaGlsZChSZW5kZXJPYmplY3QqIGNoaWxkLCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkID0g
MCk7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZUNoaWxkKFJlbmRlck9iamVjdCopIE9WRVJSSURF
OwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1
cHBvcnQuY3BwCShyZXZpc2lvbiAxMzQxMTIpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1NWR1JlbmRlclN1cHBvcnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04NCw3ICs4NCw3IEBA
IHZvaWQgU1ZHUmVuZGVyU3VwcG9ydDo6Y29tcHV0ZUZsb2F0UmVjdEYKICAgICBvYmplY3QtPnBh
cmVudCgpLT5jb21wdXRlRmxvYXRSZWN0Rm9yUmVwYWludChyZXBhaW50Q29udGFpbmVyLCByZXBh
aW50UmVjdCwgZml4ZWQpOwogfQogCi12b2lkIFNWR1JlbmRlclN1cHBvcnQ6Om1hcExvY2FsVG9D
b250YWluZXIoY29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3QsIGNvbnN0IFJlbmRlckxheWVyTW9k
ZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0
ZSwgYm9vbCBzbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCogd2FzRml4ZWQpCit2b2lkIFNW
R1JlbmRlclN1cHBvcnQ6Om1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyT2JqZWN0KiBv
YmplY3QsIGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRy
YW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgYm9vbCBzbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jt
cywgYm9vbCogd2FzRml4ZWQsIExheW91dFNpemUgYWNjdW11bGF0ZWRPZmZzZXQpCiB7CiAgICAg
dHJhbnNmb3JtU3RhdGUuYXBwbHlUcmFuc2Zvcm0ob2JqZWN0LT5sb2NhbFRvUGFyZW50VHJhbnNm
b3JtKCkpOwogCkBAIC05OSw3ICs5OSw3IEBAIHZvaWQgU1ZHUmVuZGVyU3VwcG9ydDo6bWFwTG9j
YWxUb0NvbnRhaW4KICAgICBNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUgPSBVc2VUcmFuc2Zvcm1z
OwogICAgIGlmIChzbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcykKICAgICAgICAgbW9kZSB8PSBTbmFw
T2Zmc2V0Rm9yVHJhbnNmb3JtczsKLSAgICBwYXJlbnQtPm1hcExvY2FsVG9Db250YWluZXIocmVw
YWludENvbnRhaW5lciwgdHJhbnNmb3JtU3RhdGUsIG1vZGUsIHdhc0ZpeGVkKTsKKyAgICBwYXJl
bnQtPm1hcExvY2FsVG9Db250YWluZXIocmVwYWludENvbnRhaW5lciwgdHJhbnNmb3JtU3RhdGUs
IG1vZGUsIHdhc0ZpeGVkLCBhY2N1bXVsYXRlZE9mZnNldCk7CiB9CiAKIGNvbnN0IFJlbmRlck9i
amVjdCogU1ZHUmVuZGVyU3VwcG9ydDo6cHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5k
ZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0b3JU
b1N0b3BBdCwgUmVuZGVyR2VvbWV0cnlNYXAmIGdlb21ldHJ5TWFwKQpJbmRleDogU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmgJKHJldmlzaW9uIDEz
NDExMikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5o
CSh3b3JraW5nIGNvcHkpCkBAIC02OCw3ICs2OCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgRmxv
YXRSZWN0IHJlcGFpbnRSZWN0Rm9yUmVuZGVyZXJJbkxvY2FsQ29vcmRpbmF0ZXNFeGNsdWRpbmdT
VkdTaGFkb3coY29uc3QgUmVuZGVyT2JqZWN0Kik7CiAgICAgc3RhdGljIExheW91dFJlY3QgY2xp
cHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyT2JqZWN0KiwgY29uc3QgUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lcik7CiAgICAgc3RhdGljIHZvaWQg
Y29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyT2JqZWN0KiwgY29uc3QgUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgRmxvYXRSZWN0JiwgYm9vbCBm
aXhlZCk7Ci0gICAgc3RhdGljIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJP
YmplY3QqLCBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBU
cmFuc2Zvcm1TdGF0ZSYsIGJvb2wgc25hcE9mZnNldEZvclRyYW5zZm9ybXMgPSB0cnVlLCBib29s
KiB3YXNGaXhlZCA9IDApOworICAgIHN0YXRpYyB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoY29u
c3QgUmVuZGVyT2JqZWN0KiwgY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENv
bnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBib29sIHNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zID0g
dHJ1ZSwgYm9vbCogd2FzRml4ZWQgPSAwLCBMYXlvdXRTaXplIGFjY3VtdWxhdGVkT2Zmc2V0ID0g
TGF5b3V0U2l6ZSgpKTsKICAgICBzdGF0aWMgY29uc3QgUmVuZGVyT2JqZWN0KiBwdXNoTWFwcGlu
Z1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlck9iamVjdCosIGNvbnN0IFJlbmRlckxheWVyTW9kZWxP
YmplY3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJik7CiAgICAgc3RhdGlj
IGJvb2wgY2hlY2tGb3JTVkdSZXBhaW50RHVyaW5nTGF5b3V0KFJlbmRlck9iamVjdCopOwogCklu
ZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxMzQxMTIpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0xMS0wOSAgTGV2aSBXZWludHJhdWIgIDxs
ZXZpd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQWNjdW11bGF0ZSB1c2luZyBhIExheW91dFNp
emUgaW4gbWFwTG9jYWxUb0NvbnRhaW5lciB3aGVuIHBvc3NpYmxlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE3NzkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGluZyB0aGUgc3ViLXBpeGVsLWlm
cmFtZS1jb3B5LW9uLXNjcm9sbC5odG1sIHRlc3QgdG8gY292ZXIgYW5vdGhlciBmYWlsIGNhc2Ug
cHJpb3IgdG8gcHJvcGVybHkKKyAgICAgICAgaGFuZGxpbmcgcGl4ZWwgc25hcHBpbmcgZm9yIGNv
bnRlbnRzIG5lc3RlZCBpbiBtdWx0aXBsZSBzdWItcGl4ZWwgY29udGFpbmVycy4KKworICAgICAg
ICAqIGZhc3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1pZnJhbWUtY29weS1vbi1zY3JvbGwuaHRtbDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9mYXN0L3N1Yi1waXhlbC9zdWItcGl4
ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLWV4cGVjdGVkLnBuZzoKKyAgICAgICAgKiBwbGF0Zm9y
bS9jaHJvbWl1bS13aW4vZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWlmcmFtZS1jb3B5LW9uLXNj
cm9sbC1leHBlY3RlZC50eHQ6CisKIDIwMTItMTEtMDkgIFNsYXZvbWlyIEthc2xldiAgPHNrYXNs
ZXZAZ29vZ2xlLmNvbT4KIAogICAgICAgICBbY2hyb21pdW1dIFJlYmFzZWxpbmluZyBzb2Z0d2Fy
ZSBjb21wb3NpdG9yIHRlc3RzLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9zdWItcGl4ZWwvc3Vi
LXBpeGVsLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1pZnJhbWUtY29weS1vbi1zY3JvbGwuaHRtbAko
cmV2aXNpb24gMTM0MTEyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVs
LWlmcmFtZS1jb3B5LW9uLXNjcm9sbC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yLDEwICsyLDEy
IEBACiA8aHRtbD4KIDxoZWFkPgogPHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVu
Ij4KLS5jb250YWluZXIgewotICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKy5zdWJwaXhlbFB1c2hl
ciB7CisgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgIHRvcDogMC40cHg7CiAgICAgcGFkZGlu
ZzogMTAuM3B4OwogICAgIHotaW5kZXg6IDE7CisgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwog
fQogPC9zdHlsZT4KIDxzY3JpcHQgc3JjPSIuLi9yZXBhaW50L3Jlc291cmNlcy9yZXBhaW50Lmpz
IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgpAQCAtMTMsMjYgKzE1LDQ2IEBACiBp
ZiAod2luZG93LnRlc3RSdW5uZXIpCiAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogCi1m
dW5jdGlvbiBzZXR1cElmcmFtZSgpIHsKLSAgdmFyIHN1YkRvY3VtZW50ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2lmcmFtZScpLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQ7Ci0gIHN1YkRvY3Vt
ZW50Lm9wZW4oJ3RleHQvaHRtbCcsICdyZXBsYWNlJyk7Ci0gIHN1YkRvY3VtZW50LndyaXRlKCI8
IURPQ1RZUEUgaHRtbD5cbjxodG1sPjxib2R5IHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogc2ls
dmVyO2hlaWdodDogMTAwMHB4O1wiPjwvYm9keT4iKQotICBzdWJEb2N1bWVudC5jbG9zZSgpOwor
ZnVuY3Rpb24gc2V0dXBJZnJhbWVzKCkgeworICBzZXR1cElmcmFtZShkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnaWZyYW1lMScpLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQpOworICBzZXR1cElmcmFt
ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaWZyYW1lMicpLmNvbnRlbnRXaW5kb3cuZG9jdW1l
bnQpOworfQorCitmdW5jdGlvbiBzZXR1cElmcmFtZShpZnJhbWUpIHsKKyAgaWZyYW1lLm9wZW4o
J3RleHQvaHRtbCcsICdyZXBsYWNlJyk7CisgIGlmcmFtZS53cml0ZSgiPCFET0NUWVBFIGh0bWw+
XG48aHRtbD48Ym9keSBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6IHNpbHZlcjtoZWlnaHQ6IDEw
MDBweDtcIj48L2JvZHk+Iik7CisgIGlmcmFtZS5jbG9zZSgpOwogfQogCiBmdW5jdGlvbiByZXBh
aW50VGVzdCgpIHsKLSAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lmcmFtZScpLmNvbnRlbnRX
aW5kb3cuc2Nyb2xsVG8oMCwgMTApOworICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaWZyYW1l
MScpLmNvbnRlbnRXaW5kb3cuc2Nyb2xsVG8oMCwgMTApOworICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnaWZyYW1lMicpLmNvbnRlbnRXaW5kb3cuc2Nyb2xsVG8oMCwgMTApOwogICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCiAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiB9CiA8L3Njcmlw
dD4KIDwvaGVhZD4KLTxib2R5IG9ubG9hZD0ic2V0dXBJZnJhbWUoKTtydW5SZXBhaW50VGVzdCgp
Ij4KLSAgPHA+VGhlIGlmcmFtZSBiZWxvdyBzaG91bGQgcmVtYWluIGdyZXkgd2hlbiBzY3JvbGxp
bmcuPC9wPgotICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgotICAgIDxpZnJhbWUgaWQ9ImlmcmFt
ZSIgIHN0eWxlPSJ3aWR0aDogMzAwcHg7IGhlaWdodDogMjAwcHg7Ij48L2lmcmFtZT4KKzxib2R5
IG9ubG9hZD0ic2V0dXBJZnJhbWVzKCk7cnVuUmVwYWludFRlc3QoKSI+CisgIDxwPlRoZSBpZnJh
bWVzIGJlbG93IHNob3VsZCByZW1haW4gZ3JleSB3aGVuIHNjcm9sbGluZy48L3A+CisgIDxkaXY+
CisgICAgPGRpdiBjbGFzcz0ic3VicGl4ZWxQdXNoZXIiPgorICAgICAgPGlmcmFtZSBpZD0iaWZy
YW1lMSIgIHN0eWxlPSJ3aWR0aDogMTUwcHg7IGhlaWdodDogMjAwcHg7Ij48L2lmcmFtZT4KKyAg
ICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJzdWJwaXhlbFB1c2hlciI+CisgICAgICA8ZGl2IGNs
YXNzPSJzdWJwaXhlbFB1c2hlciI+CisgICAgICAgIDxkaXYgY2xhc3M9InN1YnBpeGVsUHVzaGVy
Ij4KKyAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJwaXhlbFB1c2hlciI+CisgICAgICAgICAgICA8
ZGl2IGNsYXNzPSJzdWJwaXhlbFB1c2hlciI+CisgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1
YnBpeGVsUHVzaGVyIj4KKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJwaXhlbFB1c2hl
ciI+CisgICAgICAgICAgICAgICAgICA8aWZyYW1lIGlkPSJpZnJhbWUyIiAgc3R5bGU9IndpZHRo
OiAxNTBweDsgaGVpZ2h0OiAyMDBweDsiPjwvaWZyYW1lPgorICAgICAgICAgICAgICAgIDwvZGl2
PiAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgPC9kaXY+CisgICAgICAgICAgICA8L2Rp
dj4KKyAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgICA8L2Rpdj4KKyAgICA8
L2Rpdj4KICAgPC9kaXY+Ci0gIDwvZGl2PgotCiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9mYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwt
aWZyYW1lLWNvcHktb24tc2Nyb2xsLWV4cGVjdGVkLnBuZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9mYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZy
YW1lLWNvcHktb24tc2Nyb2xsLWV4cGVjdGVkLnBuZwkocmV2aXNpb24gMTM0MTEyKQorKysgTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVs
LWlmcmFtZS1jb3B5LW9uLXNjcm9sbC1leHBlY3RlZC5wbmcJKHdvcmtpbmcgY29weSkKQEAgLTEs
NSArMSwxNCBAQAogiVBORw0KIBoKLQAAAA1JSERSAAADIAAAAlgIAgAAABUUFScAAAApdEVYdGNo
ZWNrc3VtADkyMmY3ZjQxMDA3ZDE3YzNhMjQ1YWE4YWYxNmUyZTk1hqY8NQAAF3dJREFUeJzt3Vtv
VOehx+EFxg5goE2JbHOKCi0GHA4hIAotgUTBbSNRQUNatam44SP1Y3BDq6atklQqTVtRiaMtIAEH
QmJMOBkMmEOMHcLB+2K0Z3szthnMHxiq57lAg70O73pfS/5p1rI9afv27QUAADmTn/cAAAD+2wgs
AIAwgQUAECawAADCBBYAQJjAAgAIE1gAAGECCwAgTGABAIQJLACAMIEFABAmsAAAwgQWAECYwAIA
CBNYAABhAgsAIExgAQCECSwAgDCBBQAQNmWsT+zatWusT23atOnIkSNbt2593JP985//fPfdd4ui
ePDgwbFjx06fPl0UxYoVK5YuXfq4h3osvb291Q/4sTZ+2oN5rCM87ZFXKi9ozXr2c1Kl8sBGjrD2
5xOAKo0ZWEVRrFixYvny5ZMnT961a9f27dtLVXTy5MlDhw599913EzhZ+ZvH8ePHm5qali9f3tvb
e+zYsacdWI814I6OjqGhoRoZzKjGGuGTH/lx1X4NPPs5qVJ5EUeuZu3PJwBVGvMW4axZs9ra2iZP
/r8NJk+evHz58lmzZm3btu0Jz/rNN980NzfX19e/+uqrv/zlL5/waI/0WAN+7733nt5IiscczKjG
GuGTH/m/T83OSXkRn/bXGwDPxZiBtWXLlvr6+oc+WF9fv2XLlpHVNTGDg4NPfpDqPda5ntLA7t27
lzr+WEd4llP6ongac1JeyidRHphVA/ivNN4twvENDAzs37//1q1bq1evbm1tLYri/v37HR0d58+f
nzFjxttvvz1z5syR25efNSk93VX6t/Q419KlS48fPz59+vTNmzefPn36iy++GBwcnDp16rJly5Ys
WVLasb29ff/+/Tdv3lyzZs3s2bMPHDgwMDDwxhtvLF68+JGnLrly5UpnZ+fQ0NDrr7++ZMmS0gcf
ueO5c+cOHz784MGDVatWtba2DgwMfPLJJ0VRtLW1LV68+JNPPpk0aVJdXd3atWuvXr3a3d1dFMUH
H3xQV1dXPsLXX3995MiRefPmnTt3bvv27WPNXuW5yrNU2mvk65HOnz//+eefDw0NrVu3rvKqS7M3
coYrL7maGR5rXcpPEW3atOnAgQM3b94s7zLSrVu3Dh48eOPGjXnz5m3cuHHSpEmPHNj169f3799f
FMWiRYvWrVvX2dlZmt7f/va3U6ZMKc1hNWtR5ddqNVdRuZTDw8Off/55d3d3XV3dypUrW1tbK69r
1JUda6XGmc/KORz1OADUgokHVm9v709/+tOrV68eOnSo9D3j2LFjLS0t69evv3z58uHDh9vb20du
X34aZvv27aWHuoqi+Mtf/nLnzp1p06b9+te/Lm3W1dX17rvvTps27erVq3v27FmyZElpx76+vvb2
9kuXLnV0dLz++us/+9nP+vv79+/fX/reM/6pS4aGhjZv3jw4OHjw4MGpU6cuWLDgkTv29/d3d3dv
2bKlv79/3759M2fObGpqev/993fv3r1s2bKXXnpp+/btf/3rX3/xi19MnTq1ubn5woULW7ZsGVlX
RVF89tlnW7duvXHjxrlz58aZvVHP9d5773388celXbZu3fq3v/3toYu6fPnyqVOn2tvbGxoaTp06
VXnVBw8efGiGKy+5mhkea13KK9vb27tp06Zr164dOHCgMk327du3fPnyefPmnTx58g9/+ENdXd2U
KVPGH9imTZumT5/e0dGxatWqoih+8pOfXLx48Z133inVVVEUM2bMqHItqvlareYqKpfyxIkTDQ0N
v/rVr86ePdvV1dXa2lo54aOubOVKPXI+K+ewlI8A1KCJ355YsmRJfX19S0tL+SHis2fPHjx48I9/
/ON//vOfK1euPLT9qM+avP/++0VRzJs3r/yRbdu2TZ06taen5/Dhw/fv3y/vuHDhwvr6+vnz59+9
e3fJkiUNDQ3Nzc3ff/99NacuefXVV+vq6mbOnLl+/foTJ05Us+ORI0fWrVvX0NDQ0tKyZs2aw4cP
F0Uxbdq0OXPmXLhwoSiK/v7+7777rvT67NmzP/7xjxsaGh46yPTp0y9dujR37tyRbz5Vzt6o52ps
bCzvMurbcsePH1+3bl1jY2N9ff2oPytQOcOVl1zNDI+1LsX/PudU2qWlpaW8y0gDAwPz5s2rq6t7
7bXXZs2a9cEHHzxyYJMmTXrllVfmzp3b09NTFEVfX19jY+PLL7888rBVrkU1X6vVXEXlUnZ3dy9e
vLiurm7hwoWlCam8rlFXttIj57NyDkc9DgC1YOLvYJWMvE9x586dyhtYZQ+9r1NS+QDK9evXOzs7
586d+9Zbb5XesBm548jTVX/qh8yYMePmzZvV7Njf3z916tTS6wULFnR2dpZez58//+uvv160aNFX
X321dOnSc+fOtba29vT0vPXWW5UHaW9v/+yzz06cOLFhw4ZXXnll5KdGXsJY5xrf9evXyxFW+cxc
MdoMV15yNTM8zrqMPMVY960WLlz45ZdftrW1Xbx48c6dO1UOrCiKxYsX79mz57XXXvvqq6/KN3ZH
qn4txv+CqeYqKpdyaGjooWmvvK4qV/aR81k5hwDUrOQDtrNmzSq//uabbyZ2kL17927YsGHFihUv
vfTSUzr1rVu3fvCDH1Sz46xZs3p7e0uv79+/X86j5ubma9euDQwMXLt27Y033rh58+bly5fr6upG
Hq1s+vTpGzduXL9+femJonEuYdRzPeTBgwcj/zt//vzr16+XXt+9e7dyg1FPVH5d/TJNbF3KWltb
L168+OGHHx47dmzDhg3VD6yxsbGxsfHMmTNXr16dP39+5V6PtRbjn+uRKpeyvr5+eHh4/L2qXNlH
qmYOAagRjw6s0vfv/v7+8jeSwcHBoihKv7yndM+l9HrOnDlnzpy5d+/e2bNnK79plfYaHBwsbXzj
xo3yjiOb4Pvvv79169bQ0NCZM2eKorh///5Ypyv9W/rs+KcuiqKurq6np+fevXvffvtt6Rmj0scr
dxx5urVr1x49evTatWt37tw5fPjw6tWry0drbm7eu3fvwoULJ0+ePGfOnEOHDi1cuHDUCdy1a9e5
c+emTZtW+umzsS5nrHM1NDT09vbevXu39IjVxx9/PPIIq1evLu117969rq6uoig++uijkWevnOHx
L3msGR5rXQYHB2/fvj3q7iPt27fv7bff/t3vfrd169aWlpYqB1ayePHijo6O0lSPurLjrEX1X6vV
XMVDS1kURUtLS19f3/Dw8K1bt0pP3Fde16grWx7YQy/Gmc/KOQSgZtWtXLlynE/v2rWr9NNYp0+f
7urqKm384YcfFkXx5Zdfrly58k9/+lP59ezZs7/44ouOjo6BgYF169Y99FZHaa9Tp059+eWXRVF0
d3d3dXWVXvf09LS1tZU2mzJlSmdnZ19f35o1ay5cuDA0NLRv375RT1c+4CNPXRTFnDlzurq6jhw5
0tfXt3Llyrlz55Y+XrnjyKubPn365MmTDx06dPr06ba2tubm5vIBh4eHT58+vXHjxtKdnZ6enjff
fHPU26BdXV0tLS179+5dtWrVj370o7Fmb6xz1dXVdXZ29vb2Ll++/NKlS2vXrv3HP/5R3mvKlCmz
Z8/et2/fqVOn2trarl27tnbt2pFPa5VON3KGx7/ksWZ4rHU5depUqfwqdx85CWfPnj1y5EhXV1dp
0adOnfrvf//7kQMrfXzmzJknTpx48803R70HOv5aVP+1+uc///mRV/HQUhZF0dTUdOTIkc7OzqtX
ry5btuyHP/xh5YSPurLlgZVnr/RinPmsnMOXX375008/XbRo0ajTAsBzNKn6R5dgYm7evHnnzp3S
j84NDw/fvHnz008/rf4Z7StXrpw8efKdd955mmOsdU84hwA8Y37JIU/dnj17vv3229JPw929e7ev
r2/OnDlV7vvgwYPSk91Pc4AvgCeZQwCePe9g8dSdP3/+5MmTN27cePDgQWNj49y5c1esWFH5+ywq
/f3vf79z58769es9cjThOQTguRBYAABhbhECAIQJLACAMIEFABAmsAAAwgQWAECYwAIACBNYAABh
AgsAIExgAQCECSwAgDCBBQAQJrAAAMIEFgBAmMACAAgTWAAAYQILACBMYAEAhAksAIAwgQUAECaw
AADCBBYAQJjAAgAIE1gAAGECCwAgTGABAIQJLACAMIEFABA2ZWK7dXd3Z8cBTFhra+vzHgIA/493
sODFtmDBguc9BAAeNsF3sEp+//vfp8YBlLS3txdFsXv37r6+vrG2aWpq2rx5c1EUv/nNb57dyACo
2hMFFvA07Ny5c8eOHU++DQDPi1uEUFt2795dTTnt2LFj9+7dz2A8AEyAwILaMs6dwQlvCcAzJrAA
AMIEFgBAmMCCF8CkSZOe9xAAeAwCC2pdqa40FsALRGBBTRvZVRoL4EUhsKB2VRaVxgJ4IfhFo1C7
hoeHn/cQAJgI72ABAIQJLACAMIEFABDmGSyoOTt37nzeQwDgiXgHCwAgzDtYUHO2bdtW+cHbt28/
9JF//etfz2Q4ADw272ABAIQJLACAMIEFABAmsAAAwgQWAECYwAIACBNYAABhAgsAIExgAQCECSwA
gDCBBQAQJrAAAML8sWeoaR999NHI//785z9/XiMBoHoCC2ratm3bSi9u3779fEcCQPXcIgQACPMO
FtQ0twgBXkQCC2qaW4QALyK3CAEAwryDBTXNLUKAF5HAgprmFiHAi8gtQgCAMIEFABAmsAAAwgQW
AECYwAIACBNYAABhAgsAIExgAQCECSwAgDCBBQAQJrAAAML8LUKoOQ/9gWcAXjgCC2rO6tWrq9ns
6NGjT3skAEyMW4QAAGECCwAgTGABAIQJLACAMIEFABAmsAAAwgQWAECYwAIACBNYAABhAgsAIExg
AQCECSwAgDCBBQAQJrAAAMIEFgBAmMACAAgTWAAAYQILACBMYAEAhAksAIAwgQUAECawAADCBBYA
QJjAAgAIE1gAAGECCwAgTGABAIQJLACAMIEFABAmsAAAwgQWAECYwAIACBNYAABhAgsAIExgAQCE
CSwAgDCBBQAQJrAAAMIEFgBAmMACAAgTWAAAYQILACBMYAEAhAksAIAwgQUAECawAADCBBYAQJjA
AgAIE1gAAGECCwAgTGABAIQJLACAMIEFABAmsAAAwgQWAECYwAIACBNYAABhAgsAIExgAQCECSwA
gDCBBQAQJrAAAMIEFgBAmMACAAgTWAAAYQILACBMYAEAhAksAIAwgQUAECawAADCBBYAQJjAAgAI
E1gAAGECCwAgTGABAIQJLACAMIEFABAmsAAAwgQWAECYwAIACBNYAABhAgsAIExgAQCECSwAgDCB
BQAQJrAAAMIEFgBAmMACAAgTWAAAYQILACBMYAEAhAksAIAwgQUAECawAADCBBYAQJjAAgAIE1gA
AGECCwAgTGABAIQJLACAMIEFABAmsAAAwgQWAECYwAIACBNYAABhAgsAIExgAQCECSwAgDCBBQAQ
JrAAAMIEFgBAmMACAAgTWAAAYQILACBMYAEAhAksAIAwgQUAECawAADCBBYAQJjAAgAIE1gAAGEC
CwAgTGABAIQJLACAMIEFABAmsAAAwgQWAECYwAIACBNYAABhAgsAIExgAQCECSwAgDCBBQAQJrAA
AMIEFgBA2JTnPQDgYUePHn3eQwDgiQgsqDk7duyoZrOdO3c+7ZEAMDFuEQIAhAksAIAwgQUAECaw
AADCPOQOtWvSpEmVHxweHn72IwHgsXgHC2pXZUupK4AXgsCCmjayqNQVwItCYEGtK3WVugJ4gQgs
eAGoK4AXi8ACAAgTWFBbmpqa4lsC8IwJLKgtmzdvruaPDO7cuXPz5s3PYDwATIDfgwU1Z8eOHbt3
7+7r6xtrg6ampir/IDQAz8Wk7du3T2C37u7uoigWLFiQHg/w2BoaGp73EAD4fyZ+i1BdAQCMaoK3
CFtbW7PjAAD4r+EhdwCAMIEFABAmsAAAwgQWAECYwAIACBNYAABhAgsAIExgAQCECSwAgDCBBQAQ
JrAAAMIEFgBAmMACAAgTWAAAYQILACBMYAEAhAksAIAwgQUAECawAADCBBYAQJjAAgAIE1gAAGEC
CwAgTGABAIQJLACAMIEFABAmsAAAwgQWAECYwAIACBNYAABhAgsAIExgAQCECSwAgDCBBQAQJrAA
AMIEFgBAmMACAAgTWAAAYQILACBMYAEAhAksAIAwgQUAECawAADCBBYAQJjAAgAIE1gAAGECCwAg
TGABAIQJLACAMIEFABAmsAAAwgQWAECYwAIACBNYAABhAgsAIExgAQCECSwAgDCBBQAQJrAAAMIE
FgBAmMACAAgTWAAAYQILACBMYAEAhAksAIAwgQUAECawAADCBBYAQJjAAgAIE1gAAGECCwAgTGAB
AIQJLACAMIEFABAmsAAAwgQWAECYwAIACBNYAABhAgsAIExgAQCECSwAgDCBBQAQJrAAAMIEFgBA
mMACAAgTWAAAYQILACBMYAEAhAksAIAwgQUAECawAADCBBYAQJjAAgAIE1gAAGECCwAgTGABAIQJ
LACAMIEFABAmsAAAwgQWAECYwAIACBNYAABhAgsAIExgAQCECSwAgDCBBQAQJrAAAMIEFgBAmMAC
AAgTWAAAYQILACBMYAEAhAksAIAwgQUAECawAADCBBYAQJjAAgAIE1gAAGECCwAgTGABAIQJLACA
MIEFABAmsAAAwgQWAECYwAIACBNYAABhAgsAIExgAQCECSwAgDCBBQAQJrAAAMIEFgBAmMACAAgT
WAAAYQILACBMYAEAhAksAIAwgQUAECawAADCBBYAQJjAAgAIE1gAAGECCwAgTGABAIQJLACAMIEF
ABAmsAAAwgQWAECYwAIACBNYAABhAgsAIExgAQCECSwAgDCBBQAQJrAAAMIEFgBAmMACAAgTWAAA
YQILACBMYAEAhAksAIAwgQUAECawAADCBBYAQJjAAgAIE1gAAGECCwAgTGABAIQJLACAMIEFABAm
sAAAwgQWAECYwAIACBNYAABhAgsAIExgAQCECSwAgDCBBQAQJrAAAMIEFgBAmMACAAgTWAAAYQIL
ACBMYAEAhAksAIAwgQUAECawAADCBBYAQJjAAgAIE1gAAGECCwAgTGABAIQJLACAMIEFABAmsAAA
wgQWAECYwAIACBNYAABhAgsAIExgAQCECSwAgDCBBQAQJrAAAMIEFgBAmMACAAgTWAAAYQILACBM
YAEAhAksAIAwgQUAECawAADCBBYAQJjAAgAIE1gAAGECCwAgTGABAIQJLACAMIEFABAmsAAAwgQW
AECYwAIACBNYAABhAgsAIExgAQCECSwAgDCBBQAQJrAAAMIEFgBAmMACAAgTWAAAYQILACBMYAEA
hAksAIAwgQUAECawAADCBBYAQJjAAgAIE1gAAGECCwAgTGABAIQJLACAMIEFABAmsAAAwgQWAECY
wAIACBNYAABhAgsAIExgAQCECSwAgDCBBQAQJrAAAMIEFgBAmMACAAgTWAAAYQILACBMYAEAhAks
AIAwgQUAECawAADCBBYAQJjAAgAIE1gAAGECCwAgTGABAIQJLACAMIEFABAmsAAAwgQWAECYwAIA
CBNYAABhAgsAIExgAQCECSwAgDCBBQAQJrAAAMIEFgBAmMACAAgTWAAAYQILACBMYAEAhAksAIAw
gQUAECawAADCBBYAQJjAAgAIE1gAAGECCwAgTGABAIQJLACAMIEFABAmsAAAwgQWAECYwAIACBNY
AABhAgsAIExgAQCECSwAgDCBBQAQJrAAAMIEFgBAmMACAAgTWAAAYQILACBMYAEAhAksAIAwgQUA
ECawAADCBBYAQJjAAgAIE1gAAGECCwAgTGABAIQJLACAMIEFABAmsAAAwgQWAECYwAIACBNYAABh
AgsAIExgAQCECSwAgDCBBQAQJrAAAMIEFgBAmMACAAgTWAAAYQILACBMYAEAhAksAIAwgQUAECaw
AADCBBYAQJjAAgAI+x9hPCkQ9//ijQAAAABJRU5ErkJgggpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IGZpbGUKKwAAAA1JSERSAAADIAAAAlgIAgAAABUUFScAAAApdEVYdGNoZWNrc3VtADg4MTY3MmZl
M2EzNmE3OTE3YTBkMTY4ODExYWE0OWNkzRWihwAAGHdJREFUeJzt3NlvVOfhx+FjjB2ztpQIzBYV
zBKWEBA1gUSBtpGooCGt1FT0gj+pf0Cl3nJDq6atkrQqTVtRid0CEnBYEgNhM5idODiExb+L0W9q
MbYZ4IvtMc9zEU2GmXPe856R/PE5r6duy5YtBQAAOWOGewAAAKONwAIACBNYAABhAgsAIExgAQCE
CSwAgDCBBQAQJrAAAMIEFgBAmMACAAgTWAAAYQILACBMYAEAhAksAIAwgQUAECawAADCBBYAQJjA
AgAIE1gAAGFjB/qH7du3D/RP69atO3To0KZNm550Z//617/eeeedoigePnx45MiRU6dOFUWxdOnS
hQsXPummnlFnZ2f1h/BEL37eg3miLTzvkVcqn+IRa+jnpErlgfUd4cifTwD6NWBgFUWxdOnSJUuW
jBkzZvv27Vu2bClV0fHjx/fv3//tt98+xc7KPyqOHj06bdq0JUuWdHZ2HjlyZOgD64kO4cCBAz09
PSNkMP0aaITPvuUnNfJrYOjnpErlk9j3bI78+QSgXwPeIpw8efKiRYvGjPnfC8aMGbNkyZLJkydv
3rz5Gff61VdfTZ8+vaGh4ZVXXvn5z3/+jFt7CitPdAjvvvvu8xtJ8YSD6ddAI3z2LY8+I3ZOyifx
eX/eABgCAwbWxo0bGxoaHnmyoaFh48aNfavr6dy5c+fZN1Kl+/fvVz75RHt/TkMtD+zZtz/QFoZs
kmvI85iTfj9jT6o8MGcNYBQY7Bbh4Lq7u/fs2XP79u0VK1a0tLQURfHgwYMDBw6cP39+4sSJb731
1qRJk/q+vryypLS6q/Tf0nKuhQsXHj16dPz48Rs2bDh16tTnn39+586dpqamxYsXL1iwoPTG9evX
79mz59atWytXrpw6derevXu7u7tff/31+fPnD7TrL7/88tChQ7NmzTp37tyWLVsqD+HKlSttbW09
PT2vvfbaggULSk8OfhRFUZw7d+7gwYMPHz5cvnx5S0tLd3f3xx9/XBTFokWL5s+f//HHH9fV1dXX
169aterq1asdHR1FUbz//vv19fXlLfQ7sMr5rNxXed5K7+r7uK/z589/9tlnPT09ra2tlUddms++
c155yNXM+UBnqryKaN26dXv37r1161b5LX3dvn173759N2/enDVr1tq1a+vq6h47sBs3buzZs6co
innz5rW2tra1tZWm91e/+tXYsWNLc1jNuajy01vNUVSeyt7e3s8++6yjo6O+vn7ZsmUtLS2Vx9Xv
mR3oTA0yn5Vz2O92ABh6Tx9YnZ2dP/7xj69evbp///7ST4gjR440NzevXr368uXLBw8eXL9+fd/X
l9e+bNmypbSoqyiKv/zlL3fv3h03btwvf/nL0sva29vfeeedcePGXb16defOnQsWLCi9saura/36
9ZcuXTpw4MBrr732k5/85Pr163v27Cn9pOl3159++ummTZtu3rx57ty5fg+hp6dnw4YNd+7c2bdv
X1NT05w5cx57FNevX+/o6Ni4ceP169d37949adKkadOmvffeezt27Fi8ePFLL720ZcuWv/71rz/7
2c+ampqmT59+4cKFjRs39q2rgQZWOZ/97uvdd9/96KOPSm/ZtGnT3/72t0cO6vLlyydPnly/fn1j
Y+PJkycrj3rfvn2PzHnlIVcz5wOdqfK57uzsXLdu3bVr1/bu3VuZJrt3716yZMmsWbOOHz/+hz/8
ob6+fuzYsYMPbN26dePHjz9w4MDy5cuLovjRj3508eLFt99+u1RXRVFMnDixynNRzae3mqOoPJXH
jh1rbGz8xS9+cfbs2fb29paWlsoJ7/fMVp6px85n5RyW8hGAYff0NyMWLFjQ0NDQ3NxcXjJ89uzZ
ffv2/fGPf/zvf/975cqVR17f78qS9957ryiKWbNmlZ/ZvHlzU1PT6dOnDx48+ODBg/Ib586d29DQ
MHv27Hv37i1YsKCxsXH69OnffffdILseP378pUuXZs6c2e/lq6IoXnnllfr6+kmTJq1evfrYsWPV
HMWhQ4daW1sbGxubm5tXrlx58ODBoijGjRs3Y8aMCxcuFEVx/fr1b7/9tvT47NmzP/zhDxsbGx/Z
SL8Dq5zPfvc1YcKE8lsqr64VRXH06NHW1tYJEyY0NDT0+9cDlXNeecjVzPlAZ6r4/3VOpbc0NzeX
39JXd3f3rFmz6uvrX3311cmTJ7///vuPHVhdXd3LL788c+bM06dPF0XR1dU1YcKEKVOm9N1sleei
mk9vNUdReSo7Ojrmz59fX18/d+7c0oRUHle/Z7bSY+ezcg773Q4AQ+/pr2CV9L0rcffu3YFSpiiK
R67ilFQuN7lx40ZbW9vMmTPffPPN0uWZvm/su7vH7nr9+vWffvrpsWPH1qxZ8/LLLw9yFBMnTrx1
61Y1R3H9+vWmpqbS4zlz5rS1tZUez549+8svv5w3b94XX3yxcOHCc+fOtbS0nD59+s0336zcyCAD
63tQA+1rcDdu3ChHWOUquqK/Oa885GrmfJAz1XcXA923mjt37okTJxYtWnTx4sW7d+9WObCiKObP
n79z585XX331iy++KN/Y7av6czH4R6iao6g8lT09PY9Me+VxVXlmHzuflXMIwAiRXE47efLk8uOv
vvrq6Taya9euNWvWLF269KWXXnrGXY8fP37t2rWrV68uLdwZxO3bt7/3ve8Nsqm+O+rs7Cw9fvDg
QTmPpk+ffu3ate7u7mvXrr3++uu3bt26fPlyfX19362VVTmwgfb1iIcPH/b939mzZ9+4caP0+N69
e5Uv6HdH5cfVn7inO1NlLS0tFy9e/OCDD44cObJmzZrqBzZhwoQJEyacOXPm6tWrs2fPrnzXE52L
wff1WJWnsqGhobe3d/B3VXlmH6uaOQRgWDw+sEo/ra9fv17+sXHnzp2iKEpf1VO6w1J6PGPGjDNn
zty/f//s2bOVP6JK77pz507pxTdv3iy/sW8BfPfdd7dv3+7p6Tlz5kxRFA8ePBhod6X/lv61311v
37793Llz48aN6/ePvOrr60+fPn3//v2vv/66tMao9HzlpvoOYNWqVYcPH7527drdu3cPHjy4YsWK
8tamT5++a9euuXPnjhkzZsaMGfv37587d26/U/rIwAY6wIH21djY2NnZee/evdISq48++qjvFlas
WFF61/3799vb24ui+PDDD/vuvXLOBz/kgeZ8oDN1586db775pt+397V79+633nrr17/+9aZNm5qb
m6scWMn8+fMPHDhQmup+z+wg56L6T281R1H5GWtubu7q6urt7b19+3ZpxX3lcfV7ZssDe+TBIPNZ
OYcAjBD1y5YtG+Sft2/fXvrbq1OnTrW3t5de/MEHHxRFceLEiWXLlv3pT38qP546dernn39+4MCB
7u7u1tbWRy5slN518uTJEydOFEXR0dHR3t5eenz69OlFixaVXjZ27Ni2traurq6VK1deuHChp6dn
9+7d/e6uvMGBdt3e3t7c3Lxr167ly5f/4Ac/eOTQZsyY0d7efujQoa6urmXLls2cObP0fOWm+h7v
+PHjx4wZs3///lOnTi1atGj69OnlDfb29p46dWrt2rWlOzunT59+4403+r0x+sjABprPgfZVX1/f
1tbW2dm5ZMmSS5curVq16p///Gf5XWPHjp06deru3btPnjy5aNGia9eurVq1qu9qrdLu+s754Ic8
0JwPdKZOnjxZKr/Kt/edhLNnzx46dKi9vb30MWhqavrPf/7z2IGVnp80adKxY8feeOONfu+BDn4u
qv/0/vnPf37sUVR+xqZNm3bo0KG2trarV68uXrz4+9//fuWE93tmywMrz17pwSDzWTmHU6ZM+eST
T+bNm9fvtAAwZOoGWW8Ez8mtW7fu3r1b+tO53t7eW7duffLJJ9Wv0b5y5crx48fffvvt5znGke4Z
5xCA58pXGjIMdu7c+fXXX5f+Gu7evXtdXV0zZsyo8r0PHz4srex+ngOsAc8yhwA8b65gMQzOnz9/
/PjxmzdvPnz4cMKECTNnzly6dGnl91lU+sc//nH37t3Vq1dbcvTUcwjAEBBYAABhbhECAIQJLACA
MIEFABAmsAAAwgQWAECYwAIACBNYAABhAgsAIExgAQCECSwAgDCBBQAQJrAAAMIEFgBAmMACAAgT
WAAAYQILACBMYAEAhAksAIAwgQUAECawAADCBBYAQJjAAgAIE1gAAGECCwAgTGABAIQJLACAMIEF
ABAmsAAAwgQWAECYwAIACBNYAABhAgsAIExgAQCECSwAgDCBBQAQJrAAAMIEFgBAmMACAAgTWAAA
YQILACBMYAEAhAksAIAwgQUAECawAADCBBYAQJjAAgAIE1gAAGECCwAgTGABAIQJLACAMIEFABAm
sAAAwgQWAECYwAIACBNYAABhAgsAIExgAQCECSwAgDCBBQAQJrAAAMIEFgBAmMACAAgTWAAAYQIL
ACBMYAEAhAksAIAwgQUAECawAADCBBYAQJjAAgAIE1gAAGECCwAgTGABAIQJLACAMIEFABAmsAAA
wgQWAECYwAIACBNYAABhAgsAIExgAQCECSwAgDCBBQAQJrAAAMIEFgBAmMACAAgTWAAAYQILACBs
7NO9raOjIzsOhlFLS8twDwEARhVXsF50c+bMGe4hAMBo85RXsEp++9vfpsZByvr164ui2LFjR1dX
10CvmTZt2oYNG4qiuHHjRlEUU6ZMGbLhwXPym9/8ZriHAPA/zxRYjEzbtm3bunXrs78GAHg6Amu0
2bFjRzXltHXr1h07drS2tg7BkEa43//+98M9BAJKC0MtKARGCGuwRptB7gw+9SuhJlhQCIwcrmBB
URTFwoULh3sIPOqJFhT+/e9/H7qRATyOwAJGLgsKK4Ea5RbhC6Gurm64hwBP7IkWFA7BeACqJ7BG
v1JdaSxqjgWFQO0SWKNc367SWAAwNATWaFZZVBoLAIaARe6jWW9v73APAcLq6up8sIGRzxUsoGZY
UAjUCiuBBdQGCworgRoisIAaYEEhUFuswRqFtm3bNtxDgDDrroDa4gorFgBAmCtYo9DmzZsrn/zm
m28eeebf//73kAwHAF44rmABAIS5ggWMXBYUAjXKFSwAgDBXsICRy4JCoEa5ggUAECawAADCBBYA
QJjAAgAIE1gAAGECCwAgTGABAIQJLACAMF80Osp9+OGHff/3pz/96XCNBABeHAJrlCt/EXbll18D
AM+JW4QAAGGuYI1ybhECwNATWKOcW4SMGn5bAGqIwAJqg98WgBoisEY5v/QDwNATWKOcX/oZNfy2
ANQQgQXUBr8tADXE1zQAAIS5ggXUBrcIgRoisIDa4BYhUEPcIgQACBNYAABhAgsAIExgAQCECSwA
gDCBBQAQJrAAAMJ8D9Yo9Mj3MQIAQ0xgjUIrVqyo5mWHDx9+3iMBgBeTW4QAAGECCwAgzC1CYOSy
oBCoUQILGLksKARqlFuEAABhAgsAIExgAQCECSwAgDCBBQAQJrAAAMIEFgBAmMACAAgTWAAAYQIL
ACBMYAEAhAksAIAwgQUAECawAADCBBYAQJjAAgAIE1gAAGECCwAgTGABAIQJLACAMIEFABAmsAAA
wgQWAECYwAIACBNYAABhAgsAIExgAQCECSwAgDCBBQAQJrAAAMIEFgBAmMACAAgTWAAAYQILACBM
YAEAhAksAIAwgQUAECawAADCBBYAQJjAAgAIE1gAAGECCwAgTGABAIQJLACAMIEFABAmsAAAwgQW
AECYwAIACBNYAABhAgsAIExgAQCECSwAgDCBBQAQJrAAAMIEFgBAmMACAAgTWAAAYQILACBMYAEA
hAksAIAwgQUAECawAADCBBYAQJjAAgAIE1gAAGECCwAgTGABAIQJLACAMIEFABAmsAAAwgQWAECY
wAIACBNYAABhAgsAIExgAQCECSwAgDCBBQAQJrAAAMIEFgBAmMACAAgTWAAAYQILACBMYAEAhAks
AIAwgQUAECawAADCBBYAQJjAAgAIE1gAAGECCwAgTGABAIQJLACAMIEFABAmsAAAwgQWAECYwAIA
CBNYAABhAgsAIExgAQCECSwAgDCBBQAQJrAAAMIEFgBAmMACAAgTWAAAYQILACBMYAEAhAksAIAw
gQUAECawAADCBBYAQJjAAgAIE1gAAGECCwAgTGABAIQJLACAMIEFABAmsAAAwgQWAECYwAIACBNY
AABhAgsAIExgAQCECSwAgDCBBQAQJrAAAMIEFgBAmMACAAgTWAAAYQILACBMYAEAhI0d7gGQd/jw
4eEeAgC80ATWKLR169ZqXrZt27bnPRIAeDG5RQgAECawAADC3CIERi4LCiuBGiWwgJHLgkKgRgms
0ayurq7yyd7e3qEfCQC8UKzBGs0qW0pdAcAQEFijXN+iUlcAMDQE1uhX6ip1BQBDxhqsF4K6otZZ
UAjUFlewgBpgQSFQWwTWaDNt2rT4K2EksKAQqCECa7TZsGFDNd8JtG3btg0bNgzBeCDIgkKgVliD
NQorbd26dceOHV1dXQO9YNq0aVV+fyOMNOoKK6gJzxRYy5cvT42DlBs3bhRF0draWs3LAIDn4elv
Ec6ZMyc4DoBHWFAI1K6nvILV0tJSFMWUKVOigwH4n9KCwsfezi695ne/+93QjAoroBrWYAEjlwWF
QI2q27Jly3CPAYZTR0dH4Zb3aNHY2DjcQwAoCitf0wCFugIgzS1CXnSlBYUAEOQKKxYAQJjAAgAI
E1gAAGECCwAgTGABAIQJLACAMIEFABAmsAAAwgQWAECYwAIACBNYAABhAgsAIExgAQCECSwAgDCB
BQAQJrAAAMIEFgBAmMACAAgTWAAAYQILACBMYAEAhAksAIAwgQUAECawAADCBBYAQJjAAgAIE1gA
AGECCwAgTGABAIQJLACAMIEFABAmsAAAwgQWAECYwAIACBNYAABhAgsAIExgAQCECSwAgDCBBQAQ
JrAAAMIEFgBAmMACAAgTWAAAYQILACBMYAEAhAksAIAwgQUAECawAADCBBYAQJjAAgAIE1gAAGEC
CwAgTGABAIQJLACAMIEFABAmsAAAwgQWAECYwAIACBNYAABhAgsAIExgAQCECSwAgDCBBQAQJrAA
AMIEFgBAmMACAAgTWAAAYQILACBMYAEAhAksAIAwgQUAECawAADCBBYAQJjAAgAIE1gAAGECCwAg
TGABAIQJLACAMIEFABAmsAAAwgQWAECYwAIACBNYAABhAgsAIExgAQCECSwAgDCBBQAQJrAAAMIE
FgBAmMACAAgTWAAAYQILACBMYAEAhAksAIAwgQUAECawAADCBBYAQJjAAgAIE1gAAGECCwAgTGAB
AIQJLACAMIEFABAmsAAAwgQWAECYwAIACBNYAABhAgsAIExgAQCECSwAgDCBBQAQJrAAAMIEFgBA
mMACAAgTWAAAYQILACBMYAEAhAksAIAwgQUAECawAADCBBYAQJjAAgAIE1gAAGECCwAgTGABAIQJ
LACAMIEFABAmsAAAwgQWAECYwAIACBNYAABhAgsAIExgAQCECSwAgDCBBQAQJrAAAMIEFgBAmMAC
AAgTWAAAYQILACBMYAEAhAksAIAwgQUAECawAADCBBYAQJjAAgAIE1gAAGECCwAgTGABAIQJLACA
MIEFABAmsAAAwgQWAECYwAIACBNYAABhAgsAIExgAQCECSwAgDCBBQAQJrAAAMIEFgBAmMACAAgT
WAAAYQILACBMYAEAhAksAIAwgQUAECawAADCBBYAQJjAAgAIE1gAAGECCwAgTGABAIQJLACAMIEF
ABAmsAAAwgQWAECYwAIACBNYAABhAgsAIExgAQCECSwAgDCBBQAQJrAAAMIEFgBAmMACAAgTWAAA
YQILACBMYAEAhAksAIAwgQUAECawAADCBBYAQJjAAgAIE1gAAGECCwAgTGABAIQJLACAMIEFABAm
sAAAwgQWAECYwAIACBNYAABhAgsAIExgAQCECSwAgDCBBQAQJrAAAMIEFgBAmMACAAgTWAAAYQIL
ACBMYAEAhAksAIAwgQUAECawAADCBBYAQJjAAgAIE1gAAGECCwAgTGABAIQJLACAMIEFABAmsAAA
wgQWAECYwAIACBNYAABhAgsAIExgAQCECSwAgDCBBQAQJrAAAMIEFgBAmMACAAgTWAAAYQILACBM
YAEAhAksAIAwgQUAECawAADCBBYAQJjAAgAIE1gAAGECCwAgTGABAIQJLACAMIEFABAmsAAAwgQW
AECYwAIACBNYAABhAgsAIExgAQCECSwAgDCBBQAQJrAAAMIEFgBAmMACAAgTWAAAYQILACBMYAEA
hAksAIAwgQUAECawAADCBBYAQJjAAgAIE1gAAGECCwAg7P8AU9PasHY7PSAAAAAASUVORK5CYIIK
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS13aW4vZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWlmcmFtZS1jb3B5LW9uLXNjcm9s
bC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0td2luL2Zhc3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1pZnJhbWUtY29weS1vbi1zY3JvbGwtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAxMzQxMTIpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS13aW4vZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC1l
eHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMTcgKzEsNDggQEAKIGxheWVyIGF0ICgw
LDApIHNpemUgODAweDYwMAogICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAotbGF5
ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NTIKLSAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNp
emUgODAweDUyCi0gICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsMTYpIHNpemUgNzg0eDIwCits
YXllciBhdCAoMCwwKSBzaXplIDgwMHg0MDkKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDAp
IHNpemUgODAweDQwOQorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDE2KSBzaXplIDc4NHgz
ODUKICAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwwKSBzaXplIDc4NHgyMAotICAgICAgICBS
ZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAzMTV4MTkKLSAgICAgICAgICB0ZXh0IHJ1
biBhdCAoMCwwKSB3aWR0aCAzMTU6ICJUaGUgaWZyYW1lIGJlbG93IHNob3VsZCByZW1haW4gZ3Jl
eSB3aGVuIHNjcm9sbGluZy4iCi1sYXllciBhdCAoOCw1Mikgc2l6ZSAzMjV4MjMwCi0gIFJlbmRl
ckJsb2NrIChwb3NpdGlvbmVkKSB6STogMSB7RElWfSBhdCAoOCw1Mikgc2l6ZSAzMjV4MjMwCi0g
ICAgUmVuZGVyUGFydE9iamVjdCB7SUZSQU1FfSBhdCAoMTAsMTApIHNpemUgMzA0eDIwNSBbYm9y
ZGVyOiAoMnB4IGluc2V0ICMwMDAwMDApXQotICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAyODV4
MTAxNgotICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgMjg1eDIwMAotICAgICAgbGF5
ZXIgYXQgKDAsMCkgc2l6ZSAyODV4MTAxNgotICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQg
KDAsMCkgc2l6ZSAyODV4MTAxNgotICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgp
IHNpemUgMjY5eDEwMDAgW2JnY29sb3I9I0MwQzBDMF0KKyAgICAgICAgUmVuZGVyVGV4dCB7I3Rl
eHR9IGF0ICgwLDApIHNpemUgMzIxeDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lk
dGggMzIxOiAiVGhlIGlmcmFtZXMgYmVsb3cgc2hvdWxkIHJlbWFpbiBncmV5IHdoZW4gc2Nyb2xs
aW5nLiIKKyAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDM2KSBzaXplIDc4NHgzNDkKKyAg
ICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxNzQsMjU5KSBzaXplIDV4MTkKKyAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoMTc0LDI1OSkgd2lkdGggNTogIiAiCisgICAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAorbGF5ZXIgYXQgKDgsMTEyKSBzaXplIDE3NXgyMzAK
KyAgUmVuZGVyQmxvY2sgKHJlbGF0aXZlIHBvc2l0aW9uZWQpIHpJOiAxIHtESVZ9IGF0ICgwLDYw
KSBzaXplIDE3NXgyMzAKKyAgICBSZW5kZXJQYXJ0T2JqZWN0IHtJRlJBTUV9IGF0ICgxMCwxMCkg
c2l6ZSAxNTR4MjA1IFtib3JkZXI6ICgycHggaW5zZXQgIzAwMDAwMCldCisgICAgICBsYXllciBh
dCAoMCwwKSBzaXplIDEzNXgxMDE2CisgICAgICAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSAx
MzV4MjAwCisgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDEzNXgxMDE2CisgICAgICAgIFJlbmRl
ckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDEzNXgxMDE2CisgICAgICAgICAgUmVuZGVyQm9k
eSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSAxMTl4MTAwMCBbYmdjb2xvcj0jQzBDMEMwXQorICAgIFJl
bmRlclRleHQgekk6IDEgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAorbGF5ZXIgYXQgKDE4Nyw1
Mikgc2l6ZSAyOTh4MzUwCisgIFJlbmRlckJsb2NrIChyZWxhdGl2ZSBwb3NpdGlvbmVkKSB6STog
MSB7RElWfSBhdCAoMTc4LDApIHNpemUgMjk5eDM1MAorICAgIFJlbmRlclRleHQgekk6IDEgeyN0
ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAorbGF5ZXIgYXQgKDE5Nyw2Mykgc2l6ZSAyNzh4MzMwCisg
IFJlbmRlckJsb2NrIChyZWxhdGl2ZSBwb3NpdGlvbmVkKSB6STogMSB7RElWfSBhdCAoMTAsMTAp
IHNpemUgMjc4eDMzMAorICAgIFJlbmRlclRleHQgekk6IDEgeyN0ZXh0fSBhdCAoMCwwKSBzaXpl
IDB4MAorbGF5ZXIgYXQgKDIwNyw3NCkgc2l6ZSAyNTd4MzEwCisgIFJlbmRlckJsb2NrIChyZWxh
dGl2ZSBwb3NpdGlvbmVkKSB6STogMSB7RElWfSBhdCAoMTAsMTApIHNpemUgMjU3eDMxMAorICAg
IFJlbmRlclRleHQgekk6IDEgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAorbGF5ZXIgYXQgKDIx
Nyw4NCkgc2l6ZSAyMzZ4MjkwCisgIFJlbmRlckJsb2NrIChyZWxhdGl2ZSBwb3NpdGlvbmVkKSB6
STogMSB7RElWfSBhdCAoMTAsMTApIHNpemUgMjM3eDI5MAorICAgIFJlbmRlclRleHQgekk6IDEg
eyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAorbGF5ZXIgYXQgKDIyNyw5NSkgc2l6ZSAyMTZ4Mjcw
CisgIFJlbmRlckJsb2NrIChyZWxhdGl2ZSBwb3NpdGlvbmVkKSB6STogMSB7RElWfSBhdCAoMTAs
MTApIHNpemUgMjE2eDI3MAorICAgIFJlbmRlclRleHQgekk6IDEgeyN0ZXh0fSBhdCAoMCwwKSBz
aXplIDB4MAorbGF5ZXIgYXQgKDIzNywxMDYpIHNpemUgMTk1eDI1MAorICBSZW5kZXJCbG9jayAo
cmVsYXRpdmUgcG9zaXRpb25lZCkgekk6IDEge0RJVn0gYXQgKDEwLDEwKSBzaXplIDE5NngyNTAK
KyAgICBSZW5kZXJUZXh0IHpJOiAxIHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKK2xheWVyIGF0
ICgyNDcsMTE3KSBzaXplIDE3NXgyMzAKKyAgUmVuZGVyQmxvY2sgKHJlbGF0aXZlIHBvc2l0aW9u
ZWQpIHpJOiAxIHtESVZ9IGF0ICgxMCwxMCkgc2l6ZSAxNzV4MjMwCisgICAgUmVuZGVyUGFydE9i
amVjdCB7SUZSQU1FfSBhdCAoMTAsMTApIHNpemUgMTU0eDIwNSBbYm9yZGVyOiAoMnB4IGluc2V0
ICMwMDAwMDApXQorICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxMzV4MTAxNgorICAgICAgICBS
ZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgMTM1eDIwMAorICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6
ZSAxMzV4MTAxNgorICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAxMzV4
MTAxNgorICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgMTE5eDEwMDAg
W2JnY29sb3I9I0MwQzBDMF0KICAgICBSZW5kZXJUZXh0IHpJOiAxIHsjdGV4dH0gYXQgKDAsMCkg
c2l6ZSAweDAKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3Rh
dGlvbnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4
cGVjdGF0aW9ucwkocmV2aXNpb24gMTM0MTEyKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vVGVzdEV4cGVjdGF0aW9ucwkod29ya2luZyBjb3B5KQpAQCAtNDE3NSw2ICs0MTc1LDkg
QEAgQnVnKGRwcmFua2UpIFsgV2luIF0gd2ViYXVkaW8vY29kZWMtdGVzdAogCiB3ZWJraXQub3Jn
L2IvMTAwMDIzIFsgTWFjIF0gZmFzdC9zdWItcGl4ZWwvZmlsZS11cGxvYWQtY29udHJvbC1hdC1m
cmFjdGlvbmFsLW9mZnNldC5odG1sIFsgRmFpbHVyZSBJbWFnZU9ubHlGYWlsdXJlIF0KIAorIyBO
ZWVkcyByZWJhc2VsaW5lIGFmdGVyIGJvdHMgY3ljbGUKK0J1ZyhsZXZpdykgWyBXaW4gTWFjIF0g
ZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC5odG1sIFsgUGFz
cyBGYWlsdXJlIF0KKwogd2Via2l0Lm9yZy9iLzEwMDQ3OCAgWyBNYWMgXSBjc3MzL2ZpbHRlcnMv
Y3VzdG9tL2VmZmVjdC1jdXN0b20uaHRtbCBbIFBhc3MgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKIHdl
YmtpdC5vcmcvYi8xMDA0MjQgZWRpdGluZy9zZWxlY3Rpb24vdXNlci1zZWxlY3QtYWxsLXNlbGVj
dGlvbi5odG1sIFsgRmFpbHVyZSBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173369</attachid>
            <date>2012-11-09 14:36:12 -0800</date>
            <delta_ts>2012-11-09 17:47:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101779-20121109143419.patch</filename>
            <type>text/plain</type>
            <size>44164</size>
            <attacher name="Levi Weintraub">leviw</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNDExMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQyIEBACisyMDEyLTExLTA5ICBMZXZpIFdl
aW50cmF1YiAgPGxldml3QGNocm9taXVtLm9yZz4KKworICAgICAgICBBY2N1bXVsYXRlIHVzaW5n
IGEgTGF5b3V0U2l6ZSBpbiBtYXBMb2NhbFRvQ29udGFpbmVyIHdoZW4gcG9zc2libGUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTc3OQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1hcExvY2FsVG9Db250
YWluZXIgcHJldmlvdXNseSBhY2N1bXVsYXRlZCBvZmZzZXRzIGluIFRyYW5zZm9ybVN0YXRlLCB3
aGljaCBpcyBwb3RlbnRpYWxseSBleHBlbnNpdmUgd2hlbiB0aGVyZSBhcmUKKyAgICAgICAgdHJh
bnNmb3JtcywgYnV0IGFsc28gZnVuY3Rpb25hbGx5IGluY29ycmVjdCB3aGVuIHRoZXJlIGFyZSBt
dWx0aXBsZSBsZXZlbHMgb2YgY29udGFpbmVycyB3aXRoIHN1Yi1waXhlbCBvZmZzZXRzIGluCisg
ICAgICAgIHRoZSByZW5kZXJlciBjaGFpbiwgYXMgd2Ugd291bGQgcGl4ZWwgc25hcCBmcm9tIHRo
ZSBib3R0b20gdG93YXJkcyB0aGUgcm9vdCBpbnN0ZWFkIG9mIHZpY2UtdmVyc2EsIGFzIHdlIGRv
IHdoZW4KKyAgICAgICAgd2UgcGFpbnQuIFRoaXMgZnVuY3Rpb25hbGx5IGluY29ycmVjdCBiZWhh
dmlvciBsZWFkcyB0byByZXBhaW50IGFydGlmYWN0cywgZXNwZWNpYWxseSBpbiB3aWRnZXRzLiBU
aGlzIGNoYW5nZSB3aWxsCisgICAgICAgIGFsc28gaW1wcm92ZSBwZXJmb3JtYW5jZSBzaW5jZSB3
ZSBvbmx5IGhhdmUgdG8gYXBwbHkgdGhlIHRyYW5zZm9ybSB0byBuKzEgb2Zmc2V0cyB3aGVyZSBu
IGlzIHRoZSBudW1iZXIgb2YKKyAgICAgICAgdHJhbnNmb3JtcyBpbiB0aGUgY2hhaW4sIHdoZXJl
YXMgY3VycmVudGx5IHdlIGhhdmUgdG8gYXBwbHkgaXQgTyhtKSB3aGVyZSBtIGlzIHRoZSBudW1i
ZXIgb2YgcmVuZGVyZXJzIGluIHRoZSBjaGFpbiwKKyAgICAgICAgd2l0aCBzb21lIGVsZW1lbnRz
IGFjY3VtdWxhdGluZyBtdWx0aXBsZSBvZmZzZXRzLgorCisgICAgICAgIFJlZmFjdG9yZWQgYSBw
cmV2aW91cyB0ZXN0IHRvIGFsc28gY292ZXIgdGhpcy4KKworICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0xheW91dFNpemUuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlcklubGluZS5jcHA6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlcklubGluZS5oOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJPYmplY3QuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVmlldy5jcHA6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR0ZvcmVpZ25PYmplY3QuY3BwOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHRm9yZWlnbk9iamVjdC5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5s
aW5lLmNwcDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5oOgorICAg
ICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwOgorICAgICAgICAq
IHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuaDoKKyAgICAgICAgKiByZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHUm9vdC5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5jcHA6Cisg
ICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0Lmg6CisgICAgICAgICogcmVuZGVy
aW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1NW
R1JlbmRlclN1cHBvcnQuaDoKKwogMjAxMi0xMS0wOSAgRGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIERlZmluZSBXRUJLSVRfSU1QTEVNRU5U
QVRJT04gZXZlcnl3aGVyZSBpbnNpZGUgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvTGF5b3V0U2l6ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0xheW91dFNpemUuaAkocmV2aXNpb24gMTM0MTEyKQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTGF5b3V0U2l6ZS5oCSh3b3JraW5nIGNvcHkp
CkBAIC03MSw3ICs3MSwxMyBAQCBwdWJsaWM6CiAgICAgICAgIG1fd2lkdGggKz0gd2lkdGg7CiAg
ICAgICAgIG1faGVpZ2h0ICs9IGhlaWdodDsKICAgICB9Ci0gICAgCisKKyAgICB2b2lkIGV4cGFu
ZChjb25zdCBMYXlvdXRTaXplJiBzKQorICAgIHsKKyAgICAgICAgbV93aWR0aCArPSBzLm1fd2lk
dGg7CisgICAgICAgIG1faGVpZ2h0ICs9IHMubV9oZWlnaHQ7CisgICAgfQorCiAgICAgdm9pZCBz
Y2FsZShmbG9hdCBzY2FsZSkKICAgICB7CiAgICAgICAgIG1fd2lkdGggKj0gc2NhbGU7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAkocmV2aXNpb24gMTM0MTEyKQor
KysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEyNjksMTAgKzEyNjksMTMgQEAgTGF5b3V0VW5pdCBSZW5kZXJCb3g6OnBlcnBlbmRpY3Vs
YXJDb250YQogICAgIHJldHVybiBjYi0+YWRqdXN0Q29udGVudEJveExvZ2ljYWxIZWlnaHRGb3JC
b3hTaXppbmcobG9naWNhbEhlaWdodExlbmd0aC52YWx1ZSgpKTsKIH0KIAotdm9pZCBSZW5kZXJC
b3g6Om1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVw
YWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBDb29yZGlu
YXRlc0ZsYWdzIG1vZGUsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAordm9pZCBSZW5kZXJCb3g6Om1h
cExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENv
bnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBDb29yZGluYXRlc0Zs
YWdzIG1vZGUsIGJvb2wqIHdhc0ZpeGVkLCBMYXlvdXRTaXplIGFjY3VtdWxhdGVkT2Zmc2V0KSBj
b25zdAogeworICAgIGJvb2wgY29udGFpbmVyU2tpcHBlZDsKKyAgICBSZW5kZXJPYmplY3QqIG8g
PSBjb250YWluZXIocmVwYWludENvbnRhaW5lciwgJmNvbnRhaW5lclNraXBwZWQpOworICAgIGJv
b2wgcHJlc2VydmUzRCA9IG1vZGUgJiBVc2VUcmFuc2Zvcm1zICYmICgobyAmJiBvLT5zdHlsZSgp
LT5wcmVzZXJ2ZXMzRCgpKSB8fCBzdHlsZSgpLT5wcmVzZXJ2ZXMzRCgpKTsKICAgICBpZiAocmVw
YWludENvbnRhaW5lciA9PSB0aGlzKQotICAgICAgICByZXR1cm47CisgICAgICAgIHJldHVybiB0
cmFuc2Zvcm1TdGF0ZS5tb3ZlKChtb2RlICYgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpID8gcm91
bmRlZEludFNpemUoYWNjdW11bGF0ZWRPZmZzZXQpIDogYWNjdW11bGF0ZWRPZmZzZXQsIHByZXNl
cnZlM0QgPyBUcmFuc2Zvcm1TdGF0ZTo6QWNjdW11bGF0ZVRyYW5zZm9ybSA6IFRyYW5zZm9ybVN0
YXRlOjpGbGF0dGVuVHJhbnNmb3JtKTsKIAogICAgIGlmIChSZW5kZXJWaWV3KiB2ID0gdmlldygp
KSB7CiAgICAgICAgIGlmICh2LT5sYXlvdXRTdGF0ZUVuYWJsZWQoKSAmJiAhcmVwYWludENvbnRh
aW5lcikgewpAQCAtMTI4NSwxMCArMTI4OCw5IEBAIHZvaWQgUmVuZGVyQm94OjptYXBMb2NhbFRv
Q29udGFpbmVyKGNvbnMKICAgICAgICAgfQogICAgIH0KIAotICAgIGJvb2wgY29udGFpbmVyU2tp
cHBlZDsKLSAgICBSZW5kZXJPYmplY3QqIG8gPSBjb250YWluZXIocmVwYWludENvbnRhaW5lciwg
JmNvbnRhaW5lclNraXBwZWQpOworCiAgICAgaWYgKCFvKQotICAgICAgICByZXR1cm47CisgICAg
ICAgIHJldHVybiB0cmFuc2Zvcm1TdGF0ZS5tb3ZlKChtb2RlICYgU25hcE9mZnNldEZvclRyYW5z
Zm9ybXMpID8gcm91bmRlZEludFNpemUoYWNjdW11bGF0ZWRPZmZzZXQpIDogYWNjdW11bGF0ZWRP
ZmZzZXQsIHByZXNlcnZlM0QgPyBUcmFuc2Zvcm1TdGF0ZTo6QWNjdW11bGF0ZVRyYW5zZm9ybSA6
IFRyYW5zZm9ybVN0YXRlOjpGbGF0dGVuVHJhbnNmb3JtKTsKIAogICAgIGJvb2wgaXNGaXhlZFBv
cyA9IHN0eWxlKCktPnBvc2l0aW9uKCkgPT0gRml4ZWRQb3NpdGlvbjsKICAgICBib29sIGhhc1Ry
YW5zZm9ybSA9IGhhc0xheWVyKCkgJiYgbGF5ZXIoKS0+dHJhbnNmb3JtKCk7CkBAIC0xMzAyLDM2
ICsxMzA0LDM2IEBAIHZvaWQgUmVuZGVyQm94OjptYXBMb2NhbFRvQ29udGFpbmVyKGNvbnMKICAg
ICBpZiAod2FzRml4ZWQpCiAgICAgICAgICp3YXNGaXhlZCA9IG1vZGUgJiBJc0ZpeGVkOwogICAg
IAotICAgIExheW91dFNpemUgY29udGFpbmVyT2Zmc2V0ID0gb2Zmc2V0RnJvbUNvbnRhaW5lcihv
LCByb3VuZGVkTGF5b3V0UG9pbnQodHJhbnNmb3JtU3RhdGUubWFwcGVkUG9pbnQoKSkpOwotICAg
IGlmIChtb2RlICYgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpCi0gICAgICAgIGNvbnRhaW5lck9m
ZnNldCA9IHJvdW5kZWRJbnRTaXplKGNvbnRhaW5lck9mZnNldCk7CisgICAgTGF5b3V0U2l6ZSBj
b250YWluZXJPZmZzZXQgPSBvZmZzZXRGcm9tQ29udGFpbmVyKG8sIHJvdW5kZWRMYXlvdXRQb2lu
dCh0cmFuc2Zvcm1TdGF0ZS5tYXBwZWRQb2ludCgpICsgYWNjdW11bGF0ZWRPZmZzZXQpKTsKICAg
ICAKLSAgICBib29sIHByZXNlcnZlM0QgPSBtb2RlICYgVXNlVHJhbnNmb3JtcyAmJiAoby0+c3R5
bGUoKS0+cHJlc2VydmVzM0QoKSB8fCBzdHlsZSgpLT5wcmVzZXJ2ZXMzRCgpKTsKICAgICBpZiAo
bW9kZSAmIFVzZVRyYW5zZm9ybXMgJiYgc2hvdWxkVXNlVHJhbnNmb3JtRnJvbUNvbnRhaW5lcihv
KSkgewogICAgICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCB0OwogICAgICAgICBnZXRUcmFuc2Zv
cm1Gcm9tQ29udGFpbmVyKG8sIGNvbnRhaW5lck9mZnNldCwgdCk7CisgICAgICAgIHRyYW5zZm9y
bVN0YXRlLm1vdmUoKG1vZGUgJiBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcykgPyByb3VuZGVkSW50
U2l6ZShhY2N1bXVsYXRlZE9mZnNldCkgOiBhY2N1bXVsYXRlZE9mZnNldCwgcHJlc2VydmUzRCA/
IFRyYW5zZm9ybVN0YXRlOjpBY2N1bXVsYXRlVHJhbnNmb3JtIDogVHJhbnNmb3JtU3RhdGU6OkZs
YXR0ZW5UcmFuc2Zvcm0pOworICAgICAgICBhY2N1bXVsYXRlZE9mZnNldCA9IExheW91dFNpemUo
KTsKICAgICAgICAgdHJhbnNmb3JtU3RhdGUuYXBwbHlUcmFuc2Zvcm0odCwgcHJlc2VydmUzRCA/
IFRyYW5zZm9ybVN0YXRlOjpBY2N1bXVsYXRlVHJhbnNmb3JtIDogVHJhbnNmb3JtU3RhdGU6OkZs
YXR0ZW5UcmFuc2Zvcm0pOwogICAgIH0gZWxzZQotICAgICAgICB0cmFuc2Zvcm1TdGF0ZS5tb3Zl
KGNvbnRhaW5lck9mZnNldC53aWR0aCgpLCBjb250YWluZXJPZmZzZXQuaGVpZ2h0KCksIHByZXNl
cnZlM0QgPyBUcmFuc2Zvcm1TdGF0ZTo6QWNjdW11bGF0ZVRyYW5zZm9ybSA6IFRyYW5zZm9ybVN0
YXRlOjpGbGF0dGVuVHJhbnNmb3JtKTsKKyAgICAgICAgYWNjdW11bGF0ZWRPZmZzZXQuZXhwYW5k
KGNvbnRhaW5lck9mZnNldCk7CiAKICAgICBpZiAoY29udGFpbmVyU2tpcHBlZCkgewogICAgICAg
ICAvLyBUaGVyZSBjYW4ndCBiZSBhIHRyYW5zZm9ybSBiZXR3ZWVuIHJlcGFpbnRDb250YWluZXIg
YW5kIG8sIGJlY2F1c2UgdHJhbnNmb3JtcyBjcmVhdGUgY29udGFpbmVycywgc28gaXQgc2hvdWxk
IGJlIHNhZmUKICAgICAgICAgLy8gdG8ganVzdCBzdWJ0cmFjdCB0aGUgZGVsdGEgYmV0d2VlbiB0
aGUgcmVwYWludENvbnRhaW5lciBhbmQgby4KICAgICAgICAgTGF5b3V0U2l6ZSBjb250YWluZXJP
ZmZzZXQgPSByZXBhaW50Q29udGFpbmVyLT5vZmZzZXRGcm9tQW5jZXN0b3JDb250YWluZXIobyk7
Ci0gICAgICAgIHRyYW5zZm9ybVN0YXRlLm1vdmUoLWNvbnRhaW5lck9mZnNldC53aWR0aCgpLCAt
Y29udGFpbmVyT2Zmc2V0LmhlaWdodCgpLCBwcmVzZXJ2ZTNEID8gVHJhbnNmb3JtU3RhdGU6OkFj
Y3VtdWxhdGVUcmFuc2Zvcm0gOiBUcmFuc2Zvcm1TdGF0ZTo6RmxhdHRlblRyYW5zZm9ybSk7Ci0g
ICAgICAgIHJldHVybjsKKyAgICAgICAgYWNjdW11bGF0ZWRPZmZzZXQuZXhwYW5kKC1jb250YWlu
ZXJPZmZzZXQpOworICAgICAgICByZXR1cm4gdHJhbnNmb3JtU3RhdGUubW92ZSgobW9kZSAmIFNu
YXBPZmZzZXRGb3JUcmFuc2Zvcm1zKSA/IHJvdW5kZWRJbnRTaXplKGFjY3VtdWxhdGVkT2Zmc2V0
KSA6IGFjY3VtdWxhdGVkT2Zmc2V0LCBwcmVzZXJ2ZTNEID8gVHJhbnNmb3JtU3RhdGU6OkFjY3Vt
dWxhdGVUcmFuc2Zvcm0gOiBUcmFuc2Zvcm1TdGF0ZTo6RmxhdHRlblRyYW5zZm9ybSk7CiAgICAg
fQogCiAgICAgbW9kZSAmPSB+QXBwbHlDb250YWluZXJGbGlwOwogICAgIGlmIChvLT5pc1JlbmRl
ckZsb3dUaHJlYWQoKSkgewogICAgICAgICAvLyBUcmFuc2Zvcm0gZnJvbSByZW5kZXIgZmxvdyBj
b29yZGluYXRlcyBpbnRvIHJlZ2lvbiBjb29yZGluYXRlcy4KKyAgICAgICAgdHJhbnNmb3JtU3Rh
dGUubW92ZSgobW9kZSAmIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKSA/IHJvdW5kZWRJbnRTaXpl
KGFjY3VtdWxhdGVkT2Zmc2V0KSA6IGFjY3VtdWxhdGVkT2Zmc2V0LCBwcmVzZXJ2ZTNEID8gVHJh
bnNmb3JtU3RhdGU6OkFjY3VtdWxhdGVUcmFuc2Zvcm0gOiBUcmFuc2Zvcm1TdGF0ZTo6RmxhdHRl
blRyYW5zZm9ybSk7CiAgICAgICAgIFJlbmRlclJlZ2lvbiogcmVnaW9uID0gdG9SZW5kZXJGbG93
VGhyZWFkKG8pLT5tYXBGcm9tRmxvd1RvUmVnaW9uKHRyYW5zZm9ybVN0YXRlKTsKICAgICAgICAg
aWYgKHJlZ2lvbikKICAgICAgICAgICAgIHJlZ2lvbi0+bWFwTG9jYWxUb0NvbnRhaW5lcihyZWdp
b24tPmNvbnRhaW5lckZvclJlcGFpbnQoKSwgdHJhbnNmb3JtU3RhdGUsIG1vZGUsIHdhc0ZpeGVk
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG8tPm1hcExvY2FsVG9Db250YWluZXIo
cmVwYWludENvbnRhaW5lciwgdHJhbnNmb3JtU3RhdGUsIG1vZGUsIHdhc0ZpeGVkKTsKKyAgICBv
LT5tYXBMb2NhbFRvQ29udGFpbmVyKHJlcGFpbnRDb250YWluZXIsIHRyYW5zZm9ybVN0YXRlLCBt
b2RlLCB3YXNGaXhlZCwgYWNjdW11bGF0ZWRPZmZzZXQpOwogfQogCiBjb25zdCBSZW5kZXJPYmpl
Y3QqIFJlbmRlckJveDo6cHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1v
ZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1hcCYgZ2VvbWV0cnlN
YXApIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCShyZXZpc2lv
biAxMzQxMTIpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgJKHdvcmtp
bmcgY29weSkKQEAgLTU3Niw3ICs1NzYsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgCiAgICAgdmlydHVh
bCBib29sIHNob3VsZENvbXB1dGVTaXplQXNSZXBsYWNlZCgpIGNvbnN0IHsgcmV0dXJuIGlzUmVw
bGFjZWQoKSAmJiAhaXNJbmxpbmVCbG9ja09ySW5saW5lVGFibGUoKTsgfQogCi0gICAgdmlydHVh
bCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCog
cmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBDb29yZGluYXRlc0ZsYWdzID0g
QXBwbHlDb250YWluZXJGbGlwIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMsIGJvb2wqIHdhc0Zp
eGVkID0gMCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250
YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJh
bnNmb3JtU3RhdGUmLCBNYXBDb29yZGluYXRlc0ZsYWdzID0gQXBwbHlDb250YWluZXJGbGlwIHwg
U25hcE9mZnNldEZvclRyYW5zZm9ybXMsIGJvb2wqIHdhc0ZpeGVkID0gMCwgTGF5b3V0U2l6ZSBh
Y2N1bXVsYXRlZE9mZnNldCA9IExheW91dFNpemUoKSkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmly
dHVhbCBjb25zdCBSZW5kZXJPYmplY3QqIHB1c2hNYXBwaW5nVG9Db250YWluZXIoY29uc3QgUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdCosIFJlbmRlckdlb21ldHJ5TWFwJikgY29uc3QgT1ZFUlJJREU7
CiAgICAgdmlydHVhbCB2b2lkIG1hcEFic29sdXRlVG9Mb2NhbFBvaW50KE1hcENvb3JkaW5hdGVz
RmxhZ3MsIFRyYW5zZm9ybVN0YXRlJikgY29uc3Q7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCShyZXZpc2lvbiAxMzQxMTIpCisrKyBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTExMiw1
NiArMTExMiw1MyBAQCBMYXlvdXRTaXplIFJlbmRlcklubGluZTo6b2Zmc2V0RnJvbUNvbnRhCiAg
ICAgcmV0dXJuIG9mZnNldDsKIH0KIAotdm9pZCBSZW5kZXJJbmxpbmU6Om1hcExvY2FsVG9Db250
YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJh
bnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUsIGJv
b2wqIHdhc0ZpeGVkKSBjb25zdAordm9pZCBSZW5kZXJJbmxpbmU6Om1hcExvY2FsVG9Db250YWlu
ZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNm
b3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUsIGJvb2wq
IHdhc0ZpeGVkLCBMYXlvdXRTaXplIGFjY3VtdWxhdGVkT2Zmc2V0KSBjb25zdAogeworICAgIGJv
b2wgY29udGFpbmVyU2tpcHBlZDsKKyAgICBSZW5kZXJPYmplY3QqIG8gPSBjb250YWluZXIocmVw
YWludENvbnRhaW5lciwgJmNvbnRhaW5lclNraXBwZWQpOworICAgIGJvb2wgcHJlc2VydmUzRCA9
IG1vZGUgJiBVc2VUcmFuc2Zvcm1zICYmICgobyAmJiBvLT5zdHlsZSgpLT5wcmVzZXJ2ZXMzRCgp
KSB8fCBzdHlsZSgpLT5wcmVzZXJ2ZXMzRCgpKTsKICAgICBpZiAocmVwYWludENvbnRhaW5lciA9
PSB0aGlzKQotICAgICAgICByZXR1cm47CisgICAgICAgIHJldHVybiB0cmFuc2Zvcm1TdGF0ZS5t
b3ZlKChtb2RlICYgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpID8gcm91bmRlZEludFNpemUoYWNj
dW11bGF0ZWRPZmZzZXQpIDogYWNjdW11bGF0ZWRPZmZzZXQsIHByZXNlcnZlM0QgPyBUcmFuc2Zv
cm1TdGF0ZTo6QWNjdW11bGF0ZVRyYW5zZm9ybSA6IFRyYW5zZm9ybVN0YXRlOjpGbGF0dGVuVHJh
bnNmb3JtKTs7CiAKICAgICBpZiAoUmVuZGVyVmlldyAqdiA9IHZpZXcoKSkgewogICAgICAgICBp
ZiAodi0+bGF5b3V0U3RhdGVFbmFibGVkKCkgJiYgIXJlcGFpbnRDb250YWluZXIpIHsKICAgICAg
ICAgICAgIExheW91dFN0YXRlKiBsYXlvdXRTdGF0ZSA9IHYtPmxheW91dFN0YXRlKCk7Ci0gICAg
ICAgICAgICBMYXlvdXRTaXplIG9mZnNldCA9IGxheW91dFN0YXRlLT5tX3BhaW50T2Zmc2V0Owor
ICAgICAgICAgICAgYWNjdW11bGF0ZWRPZmZzZXQuZXhwYW5kKGxheW91dFN0YXRlLT5tX3BhaW50
T2Zmc2V0KTsKICAgICAgICAgICAgIGlmIChzdHlsZSgpLT5oYXNJbkZsb3dQb3NpdGlvbigpICYm
IGxheWVyKCkpCi0gICAgICAgICAgICAgICAgb2Zmc2V0ICs9IGxheWVyKCktPm9mZnNldEZvcklu
Rmxvd1Bvc2l0aW9uKCk7Ci0gICAgICAgICAgICB0cmFuc2Zvcm1TdGF0ZS5tb3ZlKG9mZnNldCk7
CisgICAgICAgICAgICAgICAgYWNjdW11bGF0ZWRPZmZzZXQgKz0gbGF5ZXIoKS0+b2Zmc2V0Rm9y
SW5GbG93UG9zaXRpb24oKTsKKyAgICAgICAgICAgIHRyYW5zZm9ybVN0YXRlLm1vdmUoYWNjdW11
bGF0ZWRPZmZzZXQpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQogCi0g
ICAgYm9vbCBjb250YWluZXJTa2lwcGVkOwotICAgIFJlbmRlck9iamVjdCogbyA9IGNvbnRhaW5l
cihyZXBhaW50Q29udGFpbmVyLCAmY29udGFpbmVyU2tpcHBlZCk7CiAgICAgaWYgKCFvKQotICAg
ICAgICByZXR1cm47CisgICAgICAgIHJldHVybiB0cmFuc2Zvcm1TdGF0ZS5tb3ZlKChtb2RlICYg
U25hcE9mZnNldEZvclRyYW5zZm9ybXMpID8gcm91bmRlZEludFNpemUoYWNjdW11bGF0ZWRPZmZz
ZXQpIDogYWNjdW11bGF0ZWRPZmZzZXQsIHByZXNlcnZlM0QgPyBUcmFuc2Zvcm1TdGF0ZTo6QWNj
dW11bGF0ZVRyYW5zZm9ybSA6IFRyYW5zZm9ybVN0YXRlOjpGbGF0dGVuVHJhbnNmb3JtKTsKIAog
ICAgIGlmIChtb2RlICYgQXBwbHlDb250YWluZXJGbGlwICYmIG8tPmlzQm94KCkpIHsKICAgICAg
ICAgaWYgKG8tPnN0eWxlKCktPmlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdNb2RlKCkpIHsKLSAgICAg
ICAgICAgIEludFBvaW50IGNlbnRlclBvaW50ID0gcm91bmRlZEludFBvaW50KHRyYW5zZm9ybVN0
YXRlLm1hcHBlZFBvaW50KCkpOwotICAgICAgICAgICAgdHJhbnNmb3JtU3RhdGUubW92ZSh0b1Jl
bmRlckJveChvKS0+ZmxpcEZvcldyaXRpbmdNb2RlSW5jbHVkaW5nQ29sdW1ucyhjZW50ZXJQb2lu
dCkgLSBjZW50ZXJQb2ludCk7CisgICAgICAgICAgICBJbnRQb2ludCBjZW50ZXJQb2ludCA9IHJv
dW5kZWRJbnRQb2ludCh0cmFuc2Zvcm1TdGF0ZS5tYXBwZWRQb2ludCgpICsgYWNjdW11bGF0ZWRP
ZmZzZXQpOworICAgICAgICAgICAgYWNjdW11bGF0ZWRPZmZzZXQuZXhwYW5kKHRvUmVuZGVyQm94
KG8pLT5mbGlwRm9yV3JpdGluZ01vZGVJbmNsdWRpbmdDb2x1bW5zKGNlbnRlclBvaW50KSAtIGNl
bnRlclBvaW50KTsKICAgICAgICAgfQogICAgICAgICBtb2RlICY9IH5BcHBseUNvbnRhaW5lckZs
aXA7CiAgICAgfQogCi0gICAgTGF5b3V0U2l6ZSBjb250YWluZXJPZmZzZXQgPSBvZmZzZXRGcm9t
Q29udGFpbmVyKG8sIHJvdW5kZWRMYXlvdXRQb2ludCh0cmFuc2Zvcm1TdGF0ZS5tYXBwZWRQb2lu
dCgpKSk7Ci0gICAgaWYgKG1vZGUgJiBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcykKLSAgICAgICAg
Y29udGFpbmVyT2Zmc2V0ID0gcm91bmRlZEludFNpemUoY29udGFpbmVyT2Zmc2V0KTsKLQotICAg
IGJvb2wgcHJlc2VydmUzRCA9IG1vZGUgJiBVc2VUcmFuc2Zvcm1zICYmIChvLT5zdHlsZSgpLT5w
cmVzZXJ2ZXMzRCgpIHx8IHN0eWxlKCktPnByZXNlcnZlczNEKCkpOworICAgIExheW91dFNpemUg
Y29udGFpbmVyT2Zmc2V0ID0gb2Zmc2V0RnJvbUNvbnRhaW5lcihvLCByb3VuZGVkTGF5b3V0UG9p
bnQodHJhbnNmb3JtU3RhdGUubWFwcGVkUG9pbnQoKSArIGFjY3VtdWxhdGVkT2Zmc2V0KSk7CiAg
ICAgaWYgKG1vZGUgJiBVc2VUcmFuc2Zvcm1zICYmIHNob3VsZFVzZVRyYW5zZm9ybUZyb21Db250
YWluZXIobykpIHsKICAgICAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggdDsKICAgICAgICAgZ2V0
VHJhbnNmb3JtRnJvbUNvbnRhaW5lcihvLCBjb250YWluZXJPZmZzZXQsIHQpOwogICAgICAgICB0
cmFuc2Zvcm1TdGF0ZS5hcHBseVRyYW5zZm9ybSh0LCBwcmVzZXJ2ZTNEID8gVHJhbnNmb3JtU3Rh
dGU6OkFjY3VtdWxhdGVUcmFuc2Zvcm0gOiBUcmFuc2Zvcm1TdGF0ZTo6RmxhdHRlblRyYW5zZm9y
bSk7CiAgICAgfSBlbHNlCi0gICAgICAgIHRyYW5zZm9ybVN0YXRlLm1vdmUoY29udGFpbmVyT2Zm
c2V0LndpZHRoKCksIGNvbnRhaW5lck9mZnNldC5oZWlnaHQoKSwgcHJlc2VydmUzRCA/IFRyYW5z
Zm9ybVN0YXRlOjpBY2N1bXVsYXRlVHJhbnNmb3JtIDogVHJhbnNmb3JtU3RhdGU6OkZsYXR0ZW5U
cmFuc2Zvcm0pOworICAgICAgICBhY2N1bXVsYXRlZE9mZnNldC5leHBhbmQoY29udGFpbmVyT2Zm
c2V0KTsKIAogICAgIGlmIChjb250YWluZXJTa2lwcGVkKSB7CiAgICAgICAgIC8vIFRoZXJlIGNh
bid0IGJlIGEgdHJhbnNmb3JtIGJldHdlZW4gcmVwYWludENvbnRhaW5lciBhbmQgbywgYmVjYXVz
ZSB0cmFuc2Zvcm1zIGNyZWF0ZSBjb250YWluZXJzLCBzbyBpdCBzaG91bGQgYmUgc2FmZQogICAg
ICAgICAvLyB0byBqdXN0IHN1YnRyYWN0IHRoZSBkZWx0YSBiZXR3ZWVuIHRoZSByZXBhaW50Q29u
dGFpbmVyIGFuZCBvLgotICAgICAgICBMYXlvdXRTaXplIGNvbnRhaW5lck9mZnNldCA9IHJlcGFp
bnRDb250YWluZXItPm9mZnNldEZyb21BbmNlc3RvckNvbnRhaW5lcihvKTsKLSAgICAgICAgdHJh
bnNmb3JtU3RhdGUubW92ZSgtY29udGFpbmVyT2Zmc2V0LndpZHRoKCksIC1jb250YWluZXJPZmZz
ZXQuaGVpZ2h0KCksIHByZXNlcnZlM0QgPyBUcmFuc2Zvcm1TdGF0ZTo6QWNjdW11bGF0ZVRyYW5z
Zm9ybSA6IFRyYW5zZm9ybVN0YXRlOjpGbGF0dGVuVHJhbnNmb3JtKTsKKyAgICAgICAgYWNjdW11
bGF0ZWRPZmZzZXQuZXhwYW5kKC1yZXBhaW50Q29udGFpbmVyLT5vZmZzZXRGcm9tQW5jZXN0b3JD
b250YWluZXIobykpOworICAgICAgICB0cmFuc2Zvcm1TdGF0ZS5tb3ZlKGFjY3VtdWxhdGVkT2Zm
c2V0LCBwcmVzZXJ2ZTNEID8gVHJhbnNmb3JtU3RhdGU6OkFjY3VtdWxhdGVUcmFuc2Zvcm0gOiBU
cmFuc2Zvcm1TdGF0ZTo6RmxhdHRlblRyYW5zZm9ybSk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKLSAgICBvLT5tYXBMb2NhbFRvQ29udGFpbmVyKHJlcGFpbnRDb250YWluZXIsIHRyYW5zZm9y
bVN0YXRlLCBtb2RlLCB3YXNGaXhlZCk7CisgICAgby0+bWFwTG9jYWxUb0NvbnRhaW5lcihyZXBh
aW50Q29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwgbW9kZSwgd2FzRml4ZWQsIGFjY3VtdWxhdGVk
T2Zmc2V0KTsKIH0KIAogY29uc3QgUmVuZGVyT2JqZWN0KiBSZW5kZXJJbmxpbmU6OnB1c2hNYXBw
aW5nVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0b3JUb1N0
b3BBdCwgUmVuZGVyR2VvbWV0cnlNYXAmIGdlb21ldHJ5TWFwKSBjb25zdApJbmRleDogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaAkocmV2aXNpb24gMTM0MTEyKQorKysgU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
MzgsNyArMTM4LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIExheW91dFJlY3QgcmVjdFdpdGhP
dXRsaW5lRm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29u
dGFpbmVyLCBMYXlvdXRVbml0IG91dGxpbmVXaWR0aCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmly
dHVhbCB2b2lkIGNvbXB1dGVSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2Jq
ZWN0KiByZXBhaW50Q29udGFpbmVyLCBMYXlvdXRSZWN0JiwgYm9vbCBmaXhlZCkgY29uc3QgT1ZF
UlJJREU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5k
ZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1h
cENvb3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJh
bnNmb3JtcywgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBy
ZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBB
cHBseUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCogd2FzRml4
ZWQgPSAwLCBMYXlvdXRTaXplIGFjY3VtdWxhdGVkT2Zmc2V0ID0gTGF5b3V0U2l6ZSgpKSBjb25z
dCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGNvbnN0IFJlbmRlck9iamVjdCogcHVzaE1hcHBpbmdU
b0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0
LCBSZW5kZXJHZW9tZXRyeU1hcCYpIGNvbnN0IE9WRVJSSURFOwogCiAgICAgdmlydHVhbCBWaXNp
YmxlUG9zaXRpb24gcG9zaXRpb25Gb3JQb2ludChjb25zdCBMYXlvdXRQb2ludCYpOwpJbmRleDog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAJKHJldmlzaW9uIDEzNDEx
MikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yMDM5LDMyICsyMDM5LDMyIEBAIEZsb2F0UG9pbnQgUmVuZGVyT2JqZWN0Ojph
YnNvbHV0ZVRvTG9jYWwKICAgICByZXR1cm4gdHJhbnNmb3JtU3RhdGUubGFzdFBsYW5hclBvaW50
KCk7CiB9CiAKLXZvaWQgUmVuZGVyT2JqZWN0OjptYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJl
bmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0
cmFuc2Zvcm1TdGF0ZSwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBib29sKiB3YXNGaXhlZCkg
Y29uc3QKK3ZvaWQgUmVuZGVyT2JqZWN0OjptYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRl
ckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFu
c2Zvcm1TdGF0ZSwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBib29sKiB3YXNGaXhlZCwgTGF5
b3V0U2l6ZSBhY2N1bXVsYXRlZE9mZnNldCkgY29uc3QKIHsKICAgICBpZiAocmVwYWludENvbnRh
aW5lciA9PSB0aGlzKQotICAgICAgICByZXR1cm47CisgICAgICAgIHJldHVybiB0cmFuc2Zvcm1T
dGF0ZS5tb3ZlKChtb2RlICYgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpID8gcm91bmRlZEludFNp
emUoYWNjdW11bGF0ZWRPZmZzZXQpIDogYWNjdW11bGF0ZWRPZmZzZXQpOwogCiAgICAgUmVuZGVy
T2JqZWN0KiBvID0gcGFyZW50KCk7CiAgICAgaWYgKCFvKQotICAgICAgICByZXR1cm47CisgICAg
ICAgIHJldHVybiB0cmFuc2Zvcm1TdGF0ZS5tb3ZlKChtb2RlICYgU25hcE9mZnNldEZvclRyYW5z
Zm9ybXMpID8gcm91bmRlZEludFNpemUoYWNjdW11bGF0ZWRPZmZzZXQpIDogYWNjdW11bGF0ZWRP
ZmZzZXQpOwogCiAgICAgLy8gRklYTUU6IHRoaXMgc2hvdWxkIGNhbGwgb2Zmc2V0RnJvbUNvbnRh
aW5lciB0byBzaGFyZSBjb2RlLCBidXQgSSdtIG5vdCBzdXJlIGl0J3MgZXZlciBjYWxsZWQuCiAg
ICAgTGF5b3V0UG9pbnQgY2VudGVyUG9pbnQgPSByb3VuZGVkTGF5b3V0UG9pbnQodHJhbnNmb3Jt
U3RhdGUubWFwcGVkUG9pbnQoKSk7CiAgICAgaWYgKG1vZGUgJiBBcHBseUNvbnRhaW5lckZsaXAg
JiYgby0+aXNCb3goKSkgewogICAgICAgICBpZiAoby0+c3R5bGUoKS0+aXNGbGlwcGVkQmxvY2tz
V3JpdGluZ01vZGUoKSkKLSAgICAgICAgICAgIHRyYW5zZm9ybVN0YXRlLm1vdmUodG9SZW5kZXJC
b3gobyktPmZsaXBGb3JXcml0aW5nTW9kZUluY2x1ZGluZ0NvbHVtbnMocm91bmRlZExheW91dFBv
aW50KHRyYW5zZm9ybVN0YXRlLm1hcHBlZFBvaW50KCkpKSAtIGNlbnRlclBvaW50KTsKKyAgICAg
ICAgICAgIGFjY3VtdWxhdGVkT2Zmc2V0LmV4cGFuZCh0b1JlbmRlckJveChvKS0+ZmxpcEZvcldy
aXRpbmdNb2RlSW5jbHVkaW5nQ29sdW1ucyhyb3VuZGVkTGF5b3V0UG9pbnQodHJhbnNmb3JtU3Rh
dGUubWFwcGVkUG9pbnQoKSkgKyBhY2N1bXVsYXRlZE9mZnNldCkgLSBjZW50ZXJQb2ludCk7CiAg
ICAgICAgIG1vZGUgJj0gfkFwcGx5Q29udGFpbmVyRmxpcDsKICAgICB9CiAKICAgICBMYXlvdXRT
aXplIGNvbHVtbk9mZnNldDsKLSAgICBvLT5hZGp1c3RGb3JDb2x1bW5zKGNvbHVtbk9mZnNldCwg
cm91bmRlZExheW91dFBvaW50KHRyYW5zZm9ybVN0YXRlLm1hcHBlZFBvaW50KCkpKTsKKyAgICBv
LT5hZGp1c3RGb3JDb2x1bW5zKGNvbHVtbk9mZnNldCwgcm91bmRlZExheW91dFBvaW50KHRyYW5z
Zm9ybVN0YXRlLm1hcHBlZFBvaW50KCkpICsgYWNjdW11bGF0ZWRPZmZzZXQpOwogICAgIGlmICgh
Y29sdW1uT2Zmc2V0LmlzWmVybygpKQotICAgICAgICB0cmFuc2Zvcm1TdGF0ZS5tb3ZlKGNvbHVt
bk9mZnNldCk7CisgICAgICAgIGFjY3VtdWxhdGVkT2Zmc2V0LmV4cGFuZChjb2x1bW5PZmZzZXQp
OwogCiAgICAgaWYgKG8tPmhhc092ZXJmbG93Q2xpcCgpKQotICAgICAgICB0cmFuc2Zvcm1TdGF0
ZS5tb3ZlKC10b1JlbmRlckJveChvKS0+c2Nyb2xsZWRDb250ZW50T2Zmc2V0KCkpOworICAgICAg
ICBhY2N1bXVsYXRlZE9mZnNldC5leHBhbmQoLXRvUmVuZGVyQm94KG8pLT5zY3JvbGxlZENvbnRl
bnRPZmZzZXQoKSk7CiAKLSAgICBvLT5tYXBMb2NhbFRvQ29udGFpbmVyKHJlcGFpbnRDb250YWlu
ZXIsIHRyYW5zZm9ybVN0YXRlLCBtb2RlLCB3YXNGaXhlZCk7CisgICAgby0+bWFwTG9jYWxUb0Nv
bnRhaW5lcihyZXBhaW50Q29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwgbW9kZSwgd2FzRml4ZWQs
IGFjY3VtdWxhdGVkT2Zmc2V0KTsKIH0KIAogY29uc3QgUmVuZGVyT2JqZWN0KiBSZW5kZXJPYmpl
Y3Q6OnB1c2hNYXBwaW5nVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCog
YW5jZXN0b3JUb1N0b3BBdCwgUmVuZGVyR2VvbWV0cnlNYXAmIGdlb21ldHJ5TWFwKSBjb25zdApJ
bmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAkocmV2aXNpb24gMTM0
MTEyKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCSh3b3JraW5n
IGNvcHkpCkBAIC05MzIsNyArOTMyLDcgQEAgcHVibGljOgogCiAgICAgLy8gTWFwIHBvaW50cyBh
bmQgcXVhZHMgdGhyb3VnaCBlbGVtZW50cywgcG90ZW50aWFsbHkgdmlhIDNkIHRyYW5zZm9ybXMu
IFlvdSBzaG91bGQgbmV2ZXIgbmVlZCB0byBjYWxsIHRoZXNlIGRpcmVjdGx5OyB1c2UKICAgICAv
LyBsb2NhbFRvQWJzb2x1dGUvYWJzb2x1dGVUb0xvY2FsIG1ldGhvZHMgaW5zdGVhZC4KLSAgICB2
aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2Jq
ZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxh
Z3MgPSBBcHBseUNvbnRhaW5lckZsaXAsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3Q7CisgICAg
dmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9i
amVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBDb29yZGluYXRlc0Zs
YWdzID0gQXBwbHlDb250YWluZXJGbGlwLCBib29sKiB3YXNGaXhlZCA9IDAsIExheW91dFNpemUg
YWNjdW11bGF0ZWRPZmZzZXQgPSBMYXlvdXRTaXplKCkpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9p
ZCBtYXBBYnNvbHV0ZVRvTG9jYWxQb2ludChNYXBDb29yZGluYXRlc0ZsYWdzLCBUcmFuc2Zvcm1T
dGF0ZSYpIGNvbnN0OwogCiAgICAgLy8gUHVzaGVzIHN0YXRlIG9udG8gUmVuZGVyR2VvbWV0cnlN
YXAgYWJvdXQgaG93IHRvIG1hcCBjb29yZGluYXRlcyBmcm9tIHRoaXMgcmVuZGVyZXIgdG8gaXRz
IGNvbnRhaW5lciwgb3IgYW5jZXN0b3JUb1N0b3BBdCAod2hpY2hldmVyIGlzIGVuY291bnRlcmVk
IGZpcnN0KS4KQEAgLTk1OCw2ICs5NTgsOCBAQCBwdWJsaWM6CiAgICAgUmVzcGVjdEltYWdlT3Jp
ZW50YXRpb25FbnVtIHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKCkgY29uc3Q7CiAKIHBy
b3RlY3RlZDoKKyAgICB2b2lkIGFwcGx5TG9jYWxUb0NvbnRhaW5lclN0YXRlVG9UcmFuc2Zvcm0o
VHJhbnNmb3JtU3RhdGUmKSBjb25zdDsKKwogICAgIGlubGluZSBib29sIGxheWVyQ3JlYXRpb25B
bGxvd2VkRm9yU3VidHJlZSgpIGNvbnN0OwogCiAgICAgLy8gT3ZlcnJpZGVzIHNob3VsZCBjYWxs
IHRoZSBzdXBlcmNsYXNzIGF0IHRoZSBlbmQKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJWaWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVmlldy5jcHAJKHJldmlzaW9uIDEzNDExMikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJWaWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjEwLDEzICsyMTAsMTUgQEAg
dm9pZCBSZW5kZXJWaWV3OjpsYXlvdXQoKQogICAgIHNldE5lZWRzTGF5b3V0KGZhbHNlKTsKIH0K
IAotdm9pZCBSZW5kZXJWaWV3OjptYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVy
TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1T
dGF0ZSwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBib29sKiB3YXNGaXhlZCkgY29uc3QKK3Zv
aWQgUmVuZGVyVmlldzo6bWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVs
T2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUs
IE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQsIExheW91dFNpemUgYWNj
dW11bGF0ZWRPZmZzZXQpIGNvbnN0CiB7CiAgICAgLy8gSWYgYSBjb250YWluZXIgd2FzIHNwZWNp
ZmllZCwgYW5kIHdhcyBub3QgMCBvciB0aGUgUmVuZGVyVmlldywKICAgICAvLyB0aGVuIHdlIHNo
b3VsZCBoYXZlIGZvdW5kIGl0IGJ5IG5vdy4KICAgICBBU1NFUlRfQVJHKHJlcGFpbnRDb250YWlu
ZXIsICFyZXBhaW50Q29udGFpbmVyIHx8IHJlcGFpbnRDb250YWluZXIgPT0gdGhpcyk7CiAgICAg
QVNTRVJUX1VOVVNFRCh3YXNGaXhlZCwgIXdhc0ZpeGVkIHx8ICp3YXNGaXhlZCA9PSAobW9kZSAm
IElzRml4ZWQpKTsKIAorICAgIHRyYW5zZm9ybVN0YXRlLm1vdmUoKG1vZGUgJiBTbmFwT2Zmc2V0
Rm9yVHJhbnNmb3JtcykgPyByb3VuZGVkSW50U2l6ZShhY2N1bXVsYXRlZE9mZnNldCkgOiBhY2N1
bXVsYXRlZE9mZnNldCk7CisKICAgICBpZiAoIXJlcGFpbnRDb250YWluZXIgJiYgbW9kZSAmIFVz
ZVRyYW5zZm9ybXMgJiYgc2hvdWxkVXNlVHJhbnNmb3JtRnJvbUNvbnRhaW5lcigwKSkgewogICAg
ICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCB0OwogICAgICAgICBnZXRUcmFuc2Zvcm1Gcm9tQ29u
dGFpbmVyKDAsIExheW91dFNpemUoKSwgdCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJWaWV3LmgJKHJldmlzaW9uIDEzNDExMikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJWaWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTIyOCw3ICsyMjgsNyBAQCBwdWJsaWM6
CiAgICAgYm9vbCBoYXNSZW5kZXJDb3VudGVycygpIHsgcmV0dXJuIG1fcmVuZGVyQ291bnRlckNv
dW50OyB9CiAKIHByb3RlY3RlZDoKLSAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5l
cihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zv
cm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5lckZsaXAgfCBTbmFw
T2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1v
ZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5h
dGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jtcywg
Ym9vbCogd2FzRml4ZWQgPSAwLCBMYXlvdXRTaXplIGFjY3VtdWxhdGVkT2Zmc2V0ID0gTGF5b3V0
U2l6ZSgpKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGNvbnN0IFJlbmRlck9iamVjdCog
cHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBhbmNl
c3RvclRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1hcCYpIGNvbnN0IE9WRVJSSURFOwogICAgIHZp
cnR1YWwgdm9pZCBtYXBBYnNvbHV0ZVRvTG9jYWxQb2ludChNYXBDb29yZGluYXRlc0ZsYWdzLCBU
cmFuc2Zvcm1TdGF0ZSYpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc0NvbHVtbnMo
aW50IGRlc2lyZWRDb2x1bW5Db3VudCkgY29uc3QgT1ZFUlJJREU7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ZvcmVpZ25PYmplY3QuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9iamVjdC5j
cHAJKHJldmlzaW9uIDEzNDExMikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHRm9yZWlnbk9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE5Myw5ICsxOTMsOSBA
QCBib29sIFJlbmRlclNWR0ZvcmVpZ25PYmplY3Q6Om5vZGVBdFBvaW50CiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCi12b2lkIFJlbmRlclNWR0ZvcmVpZ25PYmplY3Q6Om1hcExvY2FsVG9Db250YWlu
ZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNm
b3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUsIGJvb2wq
IHdhc0ZpeGVkKSBjb25zdAordm9pZCBSZW5kZXJTVkdGb3JlaWduT2JqZWN0OjptYXBMb2NhbFRv
Q29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIs
IFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2Rl
LCBib29sKiB3YXNGaXhlZCwgTGF5b3V0U2l6ZSBhY2N1bXVsYXRlZE9mZnNldCkgY29uc3QKIHsK
LSAgICBTVkdSZW5kZXJTdXBwb3J0OjptYXBMb2NhbFRvQ29udGFpbmVyKHRoaXMsIHJlcGFpbnRD
b250YWluZXIsIHRyYW5zZm9ybVN0YXRlLCBtb2RlICYgU25hcE9mZnNldEZvclRyYW5zZm9ybXMs
IHdhc0ZpeGVkKTsKKyAgICBTVkdSZW5kZXJTdXBwb3J0OjptYXBMb2NhbFRvQ29udGFpbmVyKHRo
aXMsIHJlcGFpbnRDb250YWluZXIsIHRyYW5zZm9ybVN0YXRlLCBtb2RlLCB3YXNGaXhlZCwgYWNj
dW11bGF0ZWRPZmZzZXQpOwogfQogCiBjb25zdCBSZW5kZXJPYmplY3QqIFJlbmRlclNWR0ZvcmVp
Z25PYmplY3Q6OnB1c2hNYXBwaW5nVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9i
amVjdCogYW5jZXN0b3JUb1N0b3BBdCwgUmVuZGVyR2VvbWV0cnlNYXAmIGdlb21ldHJ5TWFwKSBj
b25zdApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWdu
T2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdGb3JlaWduT2JqZWN0LmgJKHJldmlzaW9uIDEzNDExMikKKysrIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBA
IC01NCw3ICs1NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgbm9kZUF0UG9pbnQoY29u
c3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgSGl0VGVzdExvY2F0aW9u
JiBsb2NhdGlvbkluQ29udGFpbmVyLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZz
ZXQsIEhpdFRlc3RBY3Rpb24pIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBpc1NWR0ZvcmVp
Z25PYmplY3QoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgbWFw
TG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29u
dGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRh
aW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCogd2FzRml4ZWQgPSAwKSBj
b25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25z
dCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0
ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0
Rm9yVHJhbnNmb3JtcywgYm9vbCogd2FzRml4ZWQgPSAwLCBMYXlvdXRTaXplIGFjY3VtdWxhdGVk
T2Zmc2V0ID0gTGF5b3V0U2l6ZSgpKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGNvbnN0
IFJlbmRlck9iamVjdCogcHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1v
ZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1hcCYpIGNvbnN0IE9W
RVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc1RyYW5zZm9ybVVwZGF0ZSgpIHsgbV9u
ZWVkc1RyYW5zZm9ybVVwZGF0ZSA9IHRydWU7IH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmNwcAkocmV2aXNpb24gMTM0MTEyKQor
KysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC03OSw5ICs3OSw5IEBAIHZvaWQgUmVuZGVyU1ZHSW5saW5lOjpjb21wdXRl
RmxvYXRSZWN0Rm8KICAgICBTVkdSZW5kZXJTdXBwb3J0Ojpjb21wdXRlRmxvYXRSZWN0Rm9yUmVw
YWludCh0aGlzLCByZXBhaW50Q29udGFpbmVyLCByZXBhaW50UmVjdCwgZml4ZWQpOwogfQogCi12
b2lkIFJlbmRlclNWR0lubGluZTo6bWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXll
ck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3Jt
U3RhdGUsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQpIGNvbnN0Cit2
b2lkIFJlbmRlclNWR0lubGluZTo6bWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXll
ck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3Jt
U3RhdGUsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQsIExheW91dFNp
emUgYWNjdW11bGF0ZWRPZmZzZXQpIGNvbnN0CiB7Ci0gICAgU1ZHUmVuZGVyU3VwcG9ydDo6bWFw
TG9jYWxUb0NvbnRhaW5lcih0aGlzLCByZXBhaW50Q29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwg
bW9kZSAmIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCB3YXNGaXhlZCk7CisgICAgU1ZHUmVuZGVy
U3VwcG9ydDo6bWFwTG9jYWxUb0NvbnRhaW5lcih0aGlzLCByZXBhaW50Q29udGFpbmVyLCB0cmFu
c2Zvcm1TdGF0ZSwgbW9kZSwgd2FzRml4ZWQsIGFjY3VtdWxhdGVkT2Zmc2V0KTsKIH0KIAogY29u
c3QgUmVuZGVyT2JqZWN0KiBSZW5kZXJTVkdJbmxpbmU6OnB1c2hNYXBwaW5nVG9Db250YWluZXIo
Y29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0b3JUb1N0b3BBdCwgUmVuZGVyR2Vv
bWV0cnlNYXAmIGdlb21ldHJ5TWFwKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5oCShyZXZpc2lvbiAxMzQxMTIpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5oCSh3b3JraW5nIGNvcHkp
CkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBjbGlw
cGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBy
ZXBhaW50Q29udGFpbmVyKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgY29tcHV0
ZUZsb2F0UmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWlu
dENvbnRhaW5lciwgRmxvYXRSZWN0JiwgYm9vbCBmaXhlZCA9IGZhbHNlKSBjb25zdCBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXll
ck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3Jk
aW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jt
cywgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQg
bWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50
Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNv
bnRhaW5lckZsaXAsIGJvb2wqIHdhc0ZpeGVkID0gMCwgTGF5b3V0U2l6ZSBhY2N1bXVsYXRlZE9m
ZnNldCA9IExheW91dFNpemUoKSkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBS
ZW5kZXJPYmplY3QqIHB1c2hNYXBwaW5nVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdCogYW5jZXN0b3JUb1N0b3BBdCwgUmVuZGVyR2VvbWV0cnlNYXAmKSBjb25zdCBPVkVS
UklERTsKICAgICB2aXJ0dWFsIHZvaWQgYWJzb2x1dGVRdWFkcyhWZWN0b3I8RmxvYXRRdWFkPiYs
IGJvb2wqIHdhc0ZpeGVkKSBjb25zdDsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5jcHAJKHJldmlzaW9uIDEzNDEx
MikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3Qu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw5ICs1Nyw5IEBAIHZvaWQgUmVuZGVyU1ZHTW9kZWxP
YmplY3Q6OmNvbXB1dGVGbG9hdFIKICAgICBTVkdSZW5kZXJTdXBwb3J0Ojpjb21wdXRlRmxvYXRS
ZWN0Rm9yUmVwYWludCh0aGlzLCByZXBhaW50Q29udGFpbmVyLCByZXBhaW50UmVjdCwgZml4ZWQp
OwogfQogCi12b2lkIFJlbmRlclNWR01vZGVsT2JqZWN0OjptYXBMb2NhbFRvQ29udGFpbmVyKGNv
bnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0
YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBib29sKiB3YXNG
aXhlZCkgY29uc3QKK3ZvaWQgUmVuZGVyU1ZHTW9kZWxPYmplY3Q6Om1hcExvY2FsVG9Db250YWlu
ZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNm
b3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUsIGJvb2wq
IHdhc0ZpeGVkLCBMYXlvdXRTaXplIGFjY3VtdWxhdGVkT2Zmc2V0KSBjb25zdAogewotICAgIFNW
R1JlbmRlclN1cHBvcnQ6Om1hcExvY2FsVG9Db250YWluZXIodGhpcywgcmVwYWludENvbnRhaW5l
ciwgdHJhbnNmb3JtU3RhdGUsIG1vZGUgJiBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jtcywgd2FzRml4
ZWQpOworICAgIFNWR1JlbmRlclN1cHBvcnQ6Om1hcExvY2FsVG9Db250YWluZXIodGhpcywgcmVw
YWludENvbnRhaW5lciwgdHJhbnNmb3JtU3RhdGUsIG1vZGUsIHdhc0ZpeGVkLCBhY2N1bXVsYXRl
ZE9mZnNldCk7CiB9CiAKIGNvbnN0IFJlbmRlck9iamVjdCogUmVuZGVyU1ZHTW9kZWxPYmplY3Q6
OnB1c2hNYXBwaW5nVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5j
ZXN0b3JUb1N0b3BBdCwgUmVuZGVyR2VvbWV0cnlNYXAmIGdlb21ldHJ5TWFwKSBjb25zdApJbmRl
eDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxP
YmplY3QuaAkocmV2aXNpb24gMTM0MTEyKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC01OCw3ICs1OCw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgYWJzb2x1dGVSZWN0cyhWZWN0b3I8SW50UmVjdD4m
LCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQpIGNvbnN0OwogICAgIHZpcnR1
YWwgdm9pZCBhYnNvbHV0ZVF1YWRzKFZlY3RvcjxGbG9hdFF1YWQ+JiwgYm9vbCogd2FzRml4ZWQp
IGNvbnN0OwogCi0gICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBN
YXBDb29yZGluYXRlc0ZsYWdzID0gQXBwbHlDb250YWluZXJGbGlwIHwgU25hcE9mZnNldEZvclRy
YW5zZm9ybXMsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVh
bCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCog
cmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBDb29yZGluYXRlc0ZsYWdzID0g
QXBwbHlDb250YWluZXJGbGlwIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMsIGJvb2wqIHdhc0Zp
eGVkID0gMCwgTGF5b3V0U2l6ZSBhY2N1bXVsYXRlZE9mZnNldCA9IExheW91dFNpemUoKSkgY29u
c3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBSZW5kZXJPYmplY3QqIHB1c2hNYXBwaW5n
VG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0b3JUb1N0b3BB
dCwgUmVuZGVyR2VvbWV0cnlNYXAmKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQg
c3R5bGVXaWxsQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG5ld1N0
eWxlKTsKICAgICB2aXJ0dWFsIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBj
b25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwCShyZXZpc2lvbiAxMzQxMTIpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC00MDEsMTIgKzQwMSwxMiBAQCB2b2lkIFJlbmRlclNWR1Jvb3Q6OmNvbXB1dGVGbG9hdFJl
Y3RGb3JSCiAvLyBUaGlzIG1ldGhvZCBleHBlY3RzIGxvY2FsIENTUyBib3ggY29vcmRpbmF0ZXMu
CiAvLyBDYWxsZXJzIHdpdGggbG9jYWwgU1ZHIHZpZXdwb3J0IGNvb3JkaW5hdGVzIHNob3VsZCBm
aXJzdCBhcHBseSB0aGUgbG9jYWxUb0JvcmRlckJveFRyYW5zZm9ybQogLy8gdG8gY29udmVydCBm
cm9tIFNWRyB2aWV3cG9ydCBjb29yZGluYXRlcyB0byBsb2NhbCBDU1MgYm94IGNvb3JkaW5hdGVz
Lgotdm9pZCBSZW5kZXJTVkdSb290OjptYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxh
eWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zv
cm1TdGF0ZSwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBib29sKiB3YXNGaXhlZCkgY29uc3QK
K3ZvaWQgUmVuZGVyU1ZHUm9vdDo6bWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXll
ck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3Jt
U3RhdGUsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQsIExheW91dFNp
emUgYWNjdW11bGF0ZWRPZmZzZXQpIGNvbnN0CiB7CiAgICAgQVNTRVJUKG1vZGUgJiB+SXNGaXhl
ZCk7IC8vIFdlIHNob3VsZCBoYXZlIG5vIGZpeGVkIGNvbnRlbnQgaW4gdGhlIFNWRyByZW5kZXJp
bmcgdHJlZS4KICAgICBBU1NFUlQobW9kZSAmIFVzZVRyYW5zZm9ybXMpOyAvLyBtYXBwaW5nIGEg
cG9pbnQgdGhyb3VnaCBTVkcgdy9vIHJlc3BlY3RpbmcgdHJhc25mb3JtcyBpcyB1c2VsZXNzLgog
Ci0gICAgUmVuZGVyUmVwbGFjZWQ6Om1hcExvY2FsVG9Db250YWluZXIocmVwYWludENvbnRhaW5l
ciwgdHJhbnNmb3JtU3RhdGUsIG1vZGUgfCBBcHBseUNvbnRhaW5lckZsaXAsIHdhc0ZpeGVkKTsK
KyAgICBSZW5kZXJSZXBsYWNlZDo6bWFwTG9jYWxUb0NvbnRhaW5lcihyZXBhaW50Q29udGFpbmVy
LCB0cmFuc2Zvcm1TdGF0ZSwgbW9kZSB8IEFwcGx5Q29udGFpbmVyRmxpcCwgd2FzRml4ZWQsIGFj
Y3VtdWxhdGVkT2Zmc2V0KTsKIH0KIAogY29uc3QgUmVuZGVyT2JqZWN0KiBSZW5kZXJTVkdSb290
OjpwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGFu
Y2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJiBnZW9tZXRyeU1hcCkgY29uc3QKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5oCShyZXZp
c2lvbiAxMzQxMTIpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jv
b3QuaAkod29ya2luZyBjb3B5KQpAQCAtMTAzLDYgKzEwMyw3IEBAIHByaXZhdGU6CiAgICAgdmly
dHVhbCBMYXlvdXRSZWN0IGNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRl
ckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIpIGNvbnN0IE9WRVJSSURFOwogICAg
IHZpcnR1YWwgdm9pZCBjb21wdXRlRmxvYXRSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXll
ck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBGbG9hdFJlY3QmIHJlcGFpbnRSZWN0LCBi
b29sIGZpeGVkKSBjb25zdCBPVkVSUklERTsKIAorICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRv
Q29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIs
IFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29vcmRpbmF0ZXNGbGFncyA9IEFwcGx5Q29udGFpbmVyRmxp
cCwgYm9vbCogd2FzRml4ZWQgPSAwLCBMYXlvdXRTaXplIGFjY3VtdWxhdGVkT2Zmc2V0ID0gTGF5
b3V0U2l6ZSgpKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0Nv
bnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBU
cmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5lckZsaXAg
fCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBPVkVS
UklERTsKICAgICB2aXJ0dWFsIGNvbnN0IFJlbmRlck9iamVjdCogcHVzaE1hcHBpbmdUb0NvbnRh
aW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5k
ZXJHZW9tZXRyeU1hcCYpIGNvbnN0IE9WRVJSSURFOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5jcHAJKHJldmlzaW9uIDEzNDExMikKKysr
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTExMSw5ICsxMTEsOSBAQCB2b2lkIFJlbmRlclNWR1RleHQ6OmNvbXB1dGVGbG9h
dFJlY3RGb3JSCiAgICAgU1ZHUmVuZGVyU3VwcG9ydDo6Y29tcHV0ZUZsb2F0UmVjdEZvclJlcGFp
bnQodGhpcywgcmVwYWludENvbnRhaW5lciwgcmVwYWludFJlY3QsIGZpeGVkKTsKIH0KIAotdm9p
ZCBSZW5kZXJTVkdUZXh0OjptYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9k
ZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0
ZSwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBib29sKiB3YXNGaXhlZCkgY29uc3QKK3ZvaWQg
UmVuZGVyU1ZHVGV4dDo6bWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVs
T2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUs
IE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQsIExheW91dFNpemUgYWNj
dW11bGF0ZWRPZmZzZXQpIGNvbnN0CiB7Ci0gICAgU1ZHUmVuZGVyU3VwcG9ydDo6bWFwTG9jYWxU
b0NvbnRhaW5lcih0aGlzLCByZXBhaW50Q29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwgbW9kZSAm
IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCB3YXNGaXhlZCk7CisgICAgU1ZHUmVuZGVyU3VwcG9y
dDo6bWFwTG9jYWxUb0NvbnRhaW5lcih0aGlzLCByZXBhaW50Q29udGFpbmVyLCB0cmFuc2Zvcm1T
dGF0ZSwgbW9kZSwgd2FzRml4ZWQsIGFjY3VtdWxhdGVkT2Zmc2V0KTsKIH0KIAogY29uc3QgUmVu
ZGVyT2JqZWN0KiBSZW5kZXJTVkdUZXh0OjpwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJl
bmRlckxheWVyTW9kZWxPYmplY3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFw
JiBnZW9tZXRyeU1hcCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHVGV4dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHVGV4dC5oCShyZXZpc2lvbiAxMzQxMTIpCisrKyBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuaAkod29ya2luZyBjb3B5KQpAQCAtNzUsNyArNzUs
NyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlUmVjdEZvclJlcGFpbnQoY29u
c3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgTGF5b3V0UmVjdCYs
IGJvb2wgZml4ZWQgPSBmYWxzZSkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGNv
bXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJl
cGFpbnRDb250YWluZXIsIEZsb2F0UmVjdCYsIGJvb2wgZml4ZWQgPSBmYWxzZSkgY29uc3QgT1ZF
UlJJREU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5k
ZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1h
cENvb3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJh
bnNmb3JtcywgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBy
ZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBB
cHBseUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCogd2FzRml4
ZWQgPSAwLCBMYXlvdXRTaXplIGFjY3VtdWxhdGVkT2Zmc2V0ID0gTGF5b3V0U2l6ZSgpKSBjb25z
dCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGNvbnN0IFJlbmRlck9iamVjdCogcHVzaE1hcHBpbmdU
b0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0
LCBSZW5kZXJHZW9tZXRyeU1hcCYpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBh
ZGRDaGlsZChSZW5kZXJPYmplY3QqIGNoaWxkLCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkID0g
MCk7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZUNoaWxkKFJlbmRlck9iamVjdCopIE9WRVJSSURF
OwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1
cHBvcnQuY3BwCShyZXZpc2lvbiAxMzQxMTIpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1NWR1JlbmRlclN1cHBvcnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04NCw3ICs4NCw3IEBA
IHZvaWQgU1ZHUmVuZGVyU3VwcG9ydDo6Y29tcHV0ZUZsb2F0UmVjdEYKICAgICBvYmplY3QtPnBh
cmVudCgpLT5jb21wdXRlRmxvYXRSZWN0Rm9yUmVwYWludChyZXBhaW50Q29udGFpbmVyLCByZXBh
aW50UmVjdCwgZml4ZWQpOwogfQogCi12b2lkIFNWR1JlbmRlclN1cHBvcnQ6Om1hcExvY2FsVG9D
b250YWluZXIoY29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3QsIGNvbnN0IFJlbmRlckxheWVyTW9k
ZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0
ZSwgYm9vbCBzbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCogd2FzRml4ZWQpCit2b2lkIFNW
R1JlbmRlclN1cHBvcnQ6Om1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyT2JqZWN0KiBv
YmplY3QsIGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRy
YW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgYm9vbCBzbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jt
cywgYm9vbCogd2FzRml4ZWQsIExheW91dFNpemUgYWNjdW11bGF0ZWRPZmZzZXQpCiB7CiAgICAg
dHJhbnNmb3JtU3RhdGUuYXBwbHlUcmFuc2Zvcm0ob2JqZWN0LT5sb2NhbFRvUGFyZW50VHJhbnNm
b3JtKCkpOwogCkBAIC05OSw3ICs5OSw3IEBAIHZvaWQgU1ZHUmVuZGVyU3VwcG9ydDo6bWFwTG9j
YWxUb0NvbnRhaW4KICAgICBNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUgPSBVc2VUcmFuc2Zvcm1z
OwogICAgIGlmIChzbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcykKICAgICAgICAgbW9kZSB8PSBTbmFw
T2Zmc2V0Rm9yVHJhbnNmb3JtczsKLSAgICBwYXJlbnQtPm1hcExvY2FsVG9Db250YWluZXIocmVw
YWludENvbnRhaW5lciwgdHJhbnNmb3JtU3RhdGUsIG1vZGUsIHdhc0ZpeGVkKTsKKyAgICBwYXJl
bnQtPm1hcExvY2FsVG9Db250YWluZXIocmVwYWludENvbnRhaW5lciwgdHJhbnNmb3JtU3RhdGUs
IG1vZGUsIHdhc0ZpeGVkLCBhY2N1bXVsYXRlZE9mZnNldCk7CiB9CiAKIGNvbnN0IFJlbmRlck9i
amVjdCogU1ZHUmVuZGVyU3VwcG9ydDo6cHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5k
ZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0b3JU
b1N0b3BBdCwgUmVuZGVyR2VvbWV0cnlNYXAmIGdlb21ldHJ5TWFwKQpJbmRleDogU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmgJKHJldmlzaW9uIDEz
NDExMikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5o
CSh3b3JraW5nIGNvcHkpCkBAIC02OCw3ICs2OCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgRmxv
YXRSZWN0IHJlcGFpbnRSZWN0Rm9yUmVuZGVyZXJJbkxvY2FsQ29vcmRpbmF0ZXNFeGNsdWRpbmdT
VkdTaGFkb3coY29uc3QgUmVuZGVyT2JqZWN0Kik7CiAgICAgc3RhdGljIExheW91dFJlY3QgY2xp
cHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyT2JqZWN0KiwgY29uc3QgUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lcik7CiAgICAgc3RhdGljIHZvaWQg
Y29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyT2JqZWN0KiwgY29uc3QgUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgRmxvYXRSZWN0JiwgYm9vbCBm
aXhlZCk7Ci0gICAgc3RhdGljIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJP
YmplY3QqLCBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBU
cmFuc2Zvcm1TdGF0ZSYsIGJvb2wgc25hcE9mZnNldEZvclRyYW5zZm9ybXMgPSB0cnVlLCBib29s
KiB3YXNGaXhlZCA9IDApOworICAgIHN0YXRpYyB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoY29u
c3QgUmVuZGVyT2JqZWN0KiwgY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENv
bnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBib29sIHNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zID0g
dHJ1ZSwgYm9vbCogd2FzRml4ZWQgPSAwLCBMYXlvdXRTaXplIGFjY3VtdWxhdGVkT2Zmc2V0ID0g
TGF5b3V0U2l6ZSgpKTsKICAgICBzdGF0aWMgY29uc3QgUmVuZGVyT2JqZWN0KiBwdXNoTWFwcGlu
Z1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlck9iamVjdCosIGNvbnN0IFJlbmRlckxheWVyTW9kZWxP
YmplY3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJik7CiAgICAgc3RhdGlj
IGJvb2wgY2hlY2tGb3JTVkdSZXBhaW50RHVyaW5nTGF5b3V0KFJlbmRlck9iamVjdCopOwogCklu
ZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxMzQxMTIpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0xMS0wOSAgTGV2aSBXZWludHJhdWIgIDxs
ZXZpd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQWNjdW11bGF0ZSB1c2luZyBhIExheW91dFNp
emUgaW4gbWFwTG9jYWxUb0NvbnRhaW5lciB3aGVuIHBvc3NpYmxlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE3NzkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGluZyB0aGUgc3ViLXBpeGVsLWlm
cmFtZS1jb3B5LW9uLXNjcm9sbC5odG1sIHRlc3QgdG8gY292ZXIgYW5vdGhlciBmYWlsIGNhc2Ug
cHJpb3IgdG8gcHJvcGVybHkKKyAgICAgICAgaGFuZGxpbmcgcGl4ZWwgc25hcHBpbmcgZm9yIGNv
bnRlbnRzIG5lc3RlZCBpbiBtdWx0aXBsZSBzdWItcGl4ZWwgY29udGFpbmVycy4KKworICAgICAg
ICAqIGZhc3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1pZnJhbWUtY29weS1vbi1zY3JvbGwuaHRtbDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9mYXN0L3N1Yi1waXhlbC9zdWItcGl4
ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLWV4cGVjdGVkLnBuZzoKKyAgICAgICAgKiBwbGF0Zm9y
bS9jaHJvbWl1bS13aW4vZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWlmcmFtZS1jb3B5LW9uLXNj
cm9sbC1leHBlY3RlZC50eHQ6CisKIDIwMTItMTEtMDkgIFNsYXZvbWlyIEthc2xldiAgPHNrYXNs
ZXZAZ29vZ2xlLmNvbT4KIAogICAgICAgICBbY2hyb21pdW1dIFJlYmFzZWxpbmluZyBzb2Z0d2Fy
ZSBjb21wb3NpdG9yIHRlc3RzLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9zdWItcGl4ZWwvc3Vi
LXBpeGVsLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1pZnJhbWUtY29weS1vbi1zY3JvbGwuaHRtbAko
cmV2aXNpb24gMTM0MTEyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVs
LWlmcmFtZS1jb3B5LW9uLXNjcm9sbC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yLDEwICsyLDEy
IEBACiA8aHRtbD4KIDxoZWFkPgogPHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVu
Ij4KLS5jb250YWluZXIgewotICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKy5zdWJwaXhlbFB1c2hl
ciB7CisgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgIHRvcDogMC40cHg7CiAgICAgcGFkZGlu
ZzogMTAuM3B4OwogICAgIHotaW5kZXg6IDE7CisgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwog
fQogPC9zdHlsZT4KIDxzY3JpcHQgc3JjPSIuLi9yZXBhaW50L3Jlc291cmNlcy9yZXBhaW50Lmpz
IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgpAQCAtMTMsMjYgKzE1LDQ2IEBACiBp
ZiAod2luZG93LnRlc3RSdW5uZXIpCiAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogCi1m
dW5jdGlvbiBzZXR1cElmcmFtZSgpIHsKLSAgdmFyIHN1YkRvY3VtZW50ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2lmcmFtZScpLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQ7Ci0gIHN1YkRvY3Vt
ZW50Lm9wZW4oJ3RleHQvaHRtbCcsICdyZXBsYWNlJyk7Ci0gIHN1YkRvY3VtZW50LndyaXRlKCI8
IURPQ1RZUEUgaHRtbD5cbjxodG1sPjxib2R5IHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogc2ls
dmVyO2hlaWdodDogMTAwMHB4O1wiPjwvYm9keT4iKQotICBzdWJEb2N1bWVudC5jbG9zZSgpOwor
ZnVuY3Rpb24gc2V0dXBJZnJhbWVzKCkgeworICBzZXR1cElmcmFtZShkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnaWZyYW1lMScpLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQpOworICBzZXR1cElmcmFt
ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaWZyYW1lMicpLmNvbnRlbnRXaW5kb3cuZG9jdW1l
bnQpOworfQorCitmdW5jdGlvbiBzZXR1cElmcmFtZShpZnJhbWUpIHsKKyAgaWZyYW1lLm9wZW4o
J3RleHQvaHRtbCcsICdyZXBsYWNlJyk7CisgIGlmcmFtZS53cml0ZSgiPCFET0NUWVBFIGh0bWw+
XG48aHRtbD48Ym9keSBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6IHNpbHZlcjtoZWlnaHQ6IDEw
MDBweDtcIj48L2JvZHk+Iik7CisgIGlmcmFtZS5jbG9zZSgpOwogfQogCiBmdW5jdGlvbiByZXBh
aW50VGVzdCgpIHsKLSAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lmcmFtZScpLmNvbnRlbnRX
aW5kb3cuc2Nyb2xsVG8oMCwgMTApOworICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaWZyYW1l
MScpLmNvbnRlbnRXaW5kb3cuc2Nyb2xsVG8oMCwgMTApOworICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnaWZyYW1lMicpLmNvbnRlbnRXaW5kb3cuc2Nyb2xsVG8oMCwgMTApOwogICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCiAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiB9CiA8L3Njcmlw
dD4KIDwvaGVhZD4KLTxib2R5IG9ubG9hZD0ic2V0dXBJZnJhbWUoKTtydW5SZXBhaW50VGVzdCgp
Ij4KLSAgPHA+VGhlIGlmcmFtZSBiZWxvdyBzaG91bGQgcmVtYWluIGdyZXkgd2hlbiBzY3JvbGxp
bmcuPC9wPgotICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgotICAgIDxpZnJhbWUgaWQ9ImlmcmFt
ZSIgIHN0eWxlPSJ3aWR0aDogMzAwcHg7IGhlaWdodDogMjAwcHg7Ij48L2lmcmFtZT4KKzxib2R5
IG9ubG9hZD0ic2V0dXBJZnJhbWVzKCk7cnVuUmVwYWludFRlc3QoKSI+CisgIDxwPlRoZSBpZnJh
bWVzIGJlbG93IHNob3VsZCByZW1haW4gZ3JleSB3aGVuIHNjcm9sbGluZy48L3A+CisgIDxkaXY+
CisgICAgPGRpdiBjbGFzcz0ic3VicGl4ZWxQdXNoZXIiPgorICAgICAgPGlmcmFtZSBpZD0iaWZy
YW1lMSIgIHN0eWxlPSJ3aWR0aDogMTUwcHg7IGhlaWdodDogMjAwcHg7Ij48L2lmcmFtZT4KKyAg
ICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJzdWJwaXhlbFB1c2hlciI+CisgICAgICA8ZGl2IGNs
YXNzPSJzdWJwaXhlbFB1c2hlciI+CisgICAgICAgIDxkaXYgY2xhc3M9InN1YnBpeGVsUHVzaGVy
Ij4KKyAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJwaXhlbFB1c2hlciI+CisgICAgICAgICAgICA8
ZGl2IGNsYXNzPSJzdWJwaXhlbFB1c2hlciI+CisgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1
YnBpeGVsUHVzaGVyIj4KKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJwaXhlbFB1c2hl
ciI+CisgICAgICAgICAgICAgICAgICA8aWZyYW1lIGlkPSJpZnJhbWUyIiAgc3R5bGU9IndpZHRo
OiAxNTBweDsgaGVpZ2h0OiAyMDBweDsiPjwvaWZyYW1lPgorICAgICAgICAgICAgICAgIDwvZGl2
PiAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgPC9kaXY+CisgICAgICAgICAgICA8L2Rp
dj4KKyAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgICA8L2Rpdj4KKyAgICA8
L2Rpdj4KICAgPC9kaXY+Ci0gIDwvZGl2PgotCiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWlm
cmFtZS1jb3B5LW9uLXNjcm9sbC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2Zhc3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1pZnJhbWUt
Y29weS1vbi1zY3JvbGwtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxMzQxMTIpCisrKyBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWlmcmFt
ZS1jb3B5LW9uLXNjcm9sbC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMTcgKzEs
NDggQEAKIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAogICBSZW5kZXJWaWV3IGF0ICgwLDAp
IHNpemUgODAweDYwMAotbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NTIKLSAgUmVuZGVyQmxvY2sg
e0hUTUx9IGF0ICgwLDApIHNpemUgODAweDUyCi0gICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgs
MTYpIHNpemUgNzg0eDIwCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg0MDkKKyAgUmVuZGVyQmxv
Y2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDQwOQorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0
ICg4LDE2KSBzaXplIDc4NHgzODUKICAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwwKSBzaXpl
IDc4NHgyMAotICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAzMTV4MTkK
LSAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAzMTU6ICJUaGUgaWZyYW1lIGJlbG93
IHNob3VsZCByZW1haW4gZ3JleSB3aGVuIHNjcm9sbGluZy4iCi1sYXllciBhdCAoOCw1Mikgc2l6
ZSAzMjV4MjMwCi0gIFJlbmRlckJsb2NrIChwb3NpdGlvbmVkKSB6STogMSB7RElWfSBhdCAoOCw1
Mikgc2l6ZSAzMjV4MjMwCi0gICAgUmVuZGVyUGFydE9iamVjdCB7SUZSQU1FfSBhdCAoMTAsMTAp
IHNpemUgMzA0eDIwNSBbYm9yZGVyOiAoMnB4IGluc2V0ICMwMDAwMDApXQotICAgICAgbGF5ZXIg
YXQgKDAsMCkgc2l6ZSAyODV4MTAxNgotICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUg
Mjg1eDIwMAotICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAyODV4MTAxNgotICAgICAgICBSZW5k
ZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAyODV4MTAxNgotICAgICAgICAgIFJlbmRlckJv
ZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgMjY5eDEwMDAgW2JnY29sb3I9I0MwQzBDMF0KKyAgICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMzIxeDE5CisgICAgICAgICAgdGV4
dCBydW4gYXQgKDAsMCkgd2lkdGggMzIxOiAiVGhlIGlmcmFtZXMgYmVsb3cgc2hvdWxkIHJlbWFp
biBncmV5IHdoZW4gc2Nyb2xsaW5nLiIKKyAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDM2
KSBzaXplIDc4NHgzNDkKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxNzQsMjU5KSBz
aXplIDV4MTkKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMTc0LDI1OSkgd2lkdGggNTogIiAiCisg
ICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAorbGF5ZXIgYXQgKDgs
MTEyKSBzaXplIDE3NXgyMzAKKyAgUmVuZGVyQmxvY2sgKHJlbGF0aXZlIHBvc2l0aW9uZWQpIHpJ
OiAxIHtESVZ9IGF0ICgwLDYwKSBzaXplIDE3NXgyMzAKKyAgICBSZW5kZXJQYXJ0T2JqZWN0IHtJ
RlJBTUV9IGF0ICgxMCwxMCkgc2l6ZSAxNTR4MjA1IFtib3JkZXI6ICgycHggaW5zZXQgIzAwMDAw
MCldCisgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDEzNXgxMDE2CisgICAgICAgIFJlbmRlclZp
ZXcgYXQgKDAsMCkgc2l6ZSAxMzV4MjAwCisgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDEzNXgx
MDE2CisgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDEzNXgxMDE2Cisg
ICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSAxMTl4MTAwMCBbYmdjb2xv
cj0jQzBDMEMwXQorICAgIFJlbmRlclRleHQgekk6IDEgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4
MAorbGF5ZXIgYXQgKDE4Nyw1Mikgc2l6ZSAyOTh4MzUwCisgIFJlbmRlckJsb2NrIChyZWxhdGl2
ZSBwb3NpdGlvbmVkKSB6STogMSB7RElWfSBhdCAoMTc4LDApIHNpemUgMjk5eDM1MAorICAgIFJl
bmRlclRleHQgekk6IDEgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAorbGF5ZXIgYXQgKDE5Nyw2
Mykgc2l6ZSAyNzh4MzMwCisgIFJlbmRlckJsb2NrIChyZWxhdGl2ZSBwb3NpdGlvbmVkKSB6STog
MSB7RElWfSBhdCAoMTAsMTApIHNpemUgMjc4eDMzMAorICAgIFJlbmRlclRleHQgekk6IDEgeyN0
ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAorbGF5ZXIgYXQgKDIwNyw3NCkgc2l6ZSAyNTd4MzEwCisg
IFJlbmRlckJsb2NrIChyZWxhdGl2ZSBwb3NpdGlvbmVkKSB6STogMSB7RElWfSBhdCAoMTAsMTAp
IHNpemUgMjU3eDMxMAorICAgIFJlbmRlclRleHQgekk6IDEgeyN0ZXh0fSBhdCAoMCwwKSBzaXpl
IDB4MAorbGF5ZXIgYXQgKDIxNyw4NCkgc2l6ZSAyMzZ4MjkwCisgIFJlbmRlckJsb2NrIChyZWxh
dGl2ZSBwb3NpdGlvbmVkKSB6STogMSB7RElWfSBhdCAoMTAsMTApIHNpemUgMjM3eDI5MAorICAg
IFJlbmRlclRleHQgekk6IDEgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAorbGF5ZXIgYXQgKDIy
Nyw5NSkgc2l6ZSAyMTZ4MjcwCisgIFJlbmRlckJsb2NrIChyZWxhdGl2ZSBwb3NpdGlvbmVkKSB6
STogMSB7RElWfSBhdCAoMTAsMTApIHNpemUgMjE2eDI3MAorICAgIFJlbmRlclRleHQgekk6IDEg
eyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAorbGF5ZXIgYXQgKDIzNywxMDYpIHNpemUgMTk1eDI1
MAorICBSZW5kZXJCbG9jayAocmVsYXRpdmUgcG9zaXRpb25lZCkgekk6IDEge0RJVn0gYXQgKDEw
LDEwKSBzaXplIDE5NngyNTAKKyAgICBSZW5kZXJUZXh0IHpJOiAxIHsjdGV4dH0gYXQgKDAsMCkg
c2l6ZSAweDAKK2xheWVyIGF0ICgyNDcsMTE3KSBzaXplIDE3NXgyMzAKKyAgUmVuZGVyQmxvY2sg
KHJlbGF0aXZlIHBvc2l0aW9uZWQpIHpJOiAxIHtESVZ9IGF0ICgxMCwxMCkgc2l6ZSAxNzV4MjMw
CisgICAgUmVuZGVyUGFydE9iamVjdCB7SUZSQU1FfSBhdCAoMTAsMTApIHNpemUgMTU0eDIwNSBb
Ym9yZGVyOiAoMnB4IGluc2V0ICMwMDAwMDApXQorICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAx
MzV4MTAxNgorICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgMTM1eDIwMAorICAgICAg
bGF5ZXIgYXQgKDAsMCkgc2l6ZSAxMzV4MTAxNgorICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0g
YXQgKDAsMCkgc2l6ZSAxMzV4MTAxNgorICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4
LDgpIHNpemUgMTE5eDEwMDAgW2JnY29sb3I9I0MwQzBDMF0KICAgICBSZW5kZXJUZXh0IHpJOiAx
IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwkocmV2aXNpb24gMTM0MTEyKQorKysgTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwkod29ya2luZyBjb3B5KQpA
QCAtNDE3NSw2ICs0MTc1LDkgQEAgQnVnKGRwcmFua2UpIFsgV2luIF0gd2ViYXVkaW8vY29kZWMt
dGVzdAogCiB3ZWJraXQub3JnL2IvMTAwMDIzIFsgTWFjIF0gZmFzdC9zdWItcGl4ZWwvZmlsZS11
cGxvYWQtY29udHJvbC1hdC1mcmFjdGlvbmFsLW9mZnNldC5odG1sIFsgRmFpbHVyZSBJbWFnZU9u
bHlGYWlsdXJlIF0KIAorIyBOZWVkcyByZWJhc2VsaW5lIGFmdGVyIGJvdHMgY3ljbGUKK0J1Zyhs
ZXZpdykgWyBMaW51eCBXaW4gTWFjIF0gZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWlmcmFtZS1j
b3B5LW9uLXNjcm9sbC5odG1sIFsgUGFzcyBGYWlsdXJlIF0KKwogd2Via2l0Lm9yZy9iLzEwMDQ3
OCAgWyBNYWMgXSBjc3MzL2ZpbHRlcnMvY3VzdG9tL2VmZmVjdC1jdXN0b20uaHRtbCBbIFBhc3Mg
SW1hZ2VPbmx5RmFpbHVyZSBdCiAKIHdlYmtpdC5vcmcvYi8xMDA0MjQgZWRpdGluZy9zZWxlY3Rp
b24vdXNlci1zZWxlY3QtYWxsLXNlbGVjdGlvbi5odG1sIFsgRmFpbHVyZSBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173418</attachid>
            <date>2012-11-09 17:47:47 -0800</date>
            <delta_ts>2012-11-28 14:19:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101779-20121109174554.patch</filename>
            <type>text/plain</type>
            <size>44269</size>
            <attacher name="Levi Weintraub">leviw</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNDExMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQyIEBACisyMDEyLTExLTA5ICBMZXZpIFdl
aW50cmF1YiAgPGxldml3QGNocm9taXVtLm9yZz4KKworICAgICAgICBBY2N1bXVsYXRlIHVzaW5n
IGEgTGF5b3V0U2l6ZSBpbiBtYXBMb2NhbFRvQ29udGFpbmVyIHdoZW4gcG9zc2libGUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTc3OQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1hcExvY2FsVG9Db250
YWluZXIgcHJldmlvdXNseSBhY2N1bXVsYXRlZCBvZmZzZXRzIGluIFRyYW5zZm9ybVN0YXRlLCB3
aGljaCBpcyBwb3RlbnRpYWxseSBleHBlbnNpdmUgd2hlbiB0aGVyZSBhcmUKKyAgICAgICAgdHJh
bnNmb3JtcywgYnV0IGFsc28gZnVuY3Rpb25hbGx5IGluY29ycmVjdCB3aGVuIHRoZXJlIGFyZSBt
dWx0aXBsZSBsZXZlbHMgb2YgY29udGFpbmVycyB3aXRoIHN1Yi1waXhlbCBvZmZzZXRzIGluCisg
ICAgICAgIHRoZSByZW5kZXJlciBjaGFpbiwgYXMgd2Ugd291bGQgcGl4ZWwgc25hcCBmcm9tIHRo
ZSBib3R0b20gdG93YXJkcyB0aGUgcm9vdCBpbnN0ZWFkIG9mIHZpY2UtdmVyc2EsIGFzIHdlIGRv
IHdoZW4KKyAgICAgICAgd2UgcGFpbnQuIFRoaXMgZnVuY3Rpb25hbGx5IGluY29ycmVjdCBiZWhh
dmlvciBsZWFkcyB0byByZXBhaW50IGFydGlmYWN0cywgZXNwZWNpYWxseSBpbiB3aWRnZXRzLiBU
aGlzIGNoYW5nZSB3aWxsCisgICAgICAgIGFsc28gaW1wcm92ZSBwZXJmb3JtYW5jZSBzaW5jZSB3
ZSBvbmx5IGhhdmUgdG8gYXBwbHkgdGhlIHRyYW5zZm9ybSB0byBuKzEgb2Zmc2V0cyB3aGVyZSBu
IGlzIHRoZSBudW1iZXIgb2YKKyAgICAgICAgdHJhbnNmb3JtcyBpbiB0aGUgY2hhaW4sIHdoZXJl
YXMgY3VycmVudGx5IHdlIGhhdmUgdG8gYXBwbHkgaXQgTyhtKSB3aGVyZSBtIGlzIHRoZSBudW1i
ZXIgb2YgcmVuZGVyZXJzIGluIHRoZSBjaGFpbiwKKyAgICAgICAgd2l0aCBzb21lIGVsZW1lbnRz
IGFjY3VtdWxhdGluZyBtdWx0aXBsZSBvZmZzZXRzLgorCisgICAgICAgIFJlZmFjdG9yZWQgYSBw
cmV2aW91cyB0ZXN0IHRvIGFsc28gY292ZXIgdGhpcy4KKworICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0xheW91dFNpemUuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlcklubGluZS5jcHA6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlcklubGluZS5oOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJPYmplY3QuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVmlldy5jcHA6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR0ZvcmVpZ25PYmplY3QuY3BwOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHRm9yZWlnbk9iamVjdC5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5s
aW5lLmNwcDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5oOgorICAg
ICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwOgorICAgICAgICAq
IHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuaDoKKyAgICAgICAgKiByZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHUm9vdC5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5jcHA6Cisg
ICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0Lmg6CisgICAgICAgICogcmVuZGVy
aW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1NW
R1JlbmRlclN1cHBvcnQuaDoKKwogMjAxMi0xMS0wOSAgRGFuYSBKYW5zZW5zICA8ZGFuYWtqQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIERlZmluZSBXRUJLSVRfSU1QTEVNRU5U
QVRJT04gZXZlcnl3aGVyZSBpbnNpZGUgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvTGF5b3V0U2l6ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0xheW91dFNpemUuaAkocmV2aXNpb24gMTM0MTEyKQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTGF5b3V0U2l6ZS5oCSh3b3JraW5nIGNvcHkp
CkBAIC03MSw3ICs3MSwxMyBAQCBwdWJsaWM6CiAgICAgICAgIG1fd2lkdGggKz0gd2lkdGg7CiAg
ICAgICAgIG1faGVpZ2h0ICs9IGhlaWdodDsKICAgICB9Ci0gICAgCisKKyAgICB2b2lkIGV4cGFu
ZChjb25zdCBMYXlvdXRTaXplJiBzKQorICAgIHsKKyAgICAgICAgbV93aWR0aCArPSBzLm1fd2lk
dGg7CisgICAgICAgIG1faGVpZ2h0ICs9IHMubV9oZWlnaHQ7CisgICAgfQorCiAgICAgdm9pZCBz
Y2FsZShmbG9hdCBzY2FsZSkKICAgICB7CiAgICAgICAgIG1fd2lkdGggKj0gc2NhbGU7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAkocmV2aXNpb24gMTM0MTEyKQor
KysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEyNjksMTAgKzEyNjksMTQgQEAgTGF5b3V0VW5pdCBSZW5kZXJCb3g6OnBlcnBlbmRpY3Vs
YXJDb250YQogICAgIHJldHVybiBjYi0+YWRqdXN0Q29udGVudEJveExvZ2ljYWxIZWlnaHRGb3JC
b3hTaXppbmcobG9naWNhbEhlaWdodExlbmd0aC52YWx1ZSgpKTsKIH0KIAotdm9pZCBSZW5kZXJC
b3g6Om1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVw
YWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBDb29yZGlu
YXRlc0ZsYWdzIG1vZGUsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAordm9pZCBSZW5kZXJCb3g6Om1h
cExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENv
bnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBDb29yZGluYXRlc0Zs
YWdzIG1vZGUsIGJvb2wqIHdhc0ZpeGVkLCBjb25zdCBMYXlvdXRTaXplJiBhY2N1bXVsYXRlZE9m
ZnNldCkgY29uc3QKIHsKKyAgICBib29sIGNvbnRhaW5lclNraXBwZWQ7CisgICAgTGF5b3V0U2l6
ZSBhZGp1c3RlZE9mZnNldCA9IGFjY3VtdWxhdGVkT2Zmc2V0OworICAgIFJlbmRlck9iamVjdCog
byA9IGNvbnRhaW5lcihyZXBhaW50Q29udGFpbmVyLCAmY29udGFpbmVyU2tpcHBlZCk7CisgICAg
Ym9vbCBwcmVzZXJ2ZTNEID0gbW9kZSAmIFVzZVRyYW5zZm9ybXMgJiYgKChvICYmIG8tPnN0eWxl
KCktPnByZXNlcnZlczNEKCkpIHx8IHN0eWxlKCktPnByZXNlcnZlczNEKCkpOwogICAgIGlmIChy
ZXBhaW50Q29udGFpbmVyID09IHRoaXMpCi0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJu
IHRyYW5zZm9ybVN0YXRlLm1vdmUoYWRqdXN0T2Zmc2V0Rm9yU25hcHBpbmcobW9kZSwgYWRqdXN0
ZWRPZmZzZXQpLCBwcmVzZXJ2ZTNEID8gVHJhbnNmb3JtU3RhdGU6OkFjY3VtdWxhdGVUcmFuc2Zv
cm0gOiBUcmFuc2Zvcm1TdGF0ZTo6RmxhdHRlblRyYW5zZm9ybSk7CiAKICAgICBpZiAoUmVuZGVy
VmlldyogdiA9IHZpZXcoKSkgewogICAgICAgICBpZiAodi0+bGF5b3V0U3RhdGVFbmFibGVkKCkg
JiYgIXJlcGFpbnRDb250YWluZXIpIHsKQEAgLTEyODUsMTAgKzEyODksOSBAQCB2b2lkIFJlbmRl
ckJveDo6bWFwTG9jYWxUb0NvbnRhaW5lcihjb25zCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBi
b29sIGNvbnRhaW5lclNraXBwZWQ7Ci0gICAgUmVuZGVyT2JqZWN0KiBvID0gY29udGFpbmVyKHJl
cGFpbnRDb250YWluZXIsICZjb250YWluZXJTa2lwcGVkKTsKKwogICAgIGlmICghbykKLSAgICAg
ICAgcmV0dXJuOworICAgICAgICByZXR1cm4gdHJhbnNmb3JtU3RhdGUubW92ZShhZGp1c3RPZmZz
ZXRGb3JTbmFwcGluZyhtb2RlLCBhZGp1c3RlZE9mZnNldCksIHByZXNlcnZlM0QgPyBUcmFuc2Zv
cm1TdGF0ZTo6QWNjdW11bGF0ZVRyYW5zZm9ybSA6IFRyYW5zZm9ybVN0YXRlOjpGbGF0dGVuVHJh
bnNmb3JtKTsKIAogICAgIGJvb2wgaXNGaXhlZFBvcyA9IHN0eWxlKCktPnBvc2l0aW9uKCkgPT0g
Rml4ZWRQb3NpdGlvbjsKICAgICBib29sIGhhc1RyYW5zZm9ybSA9IGhhc0xheWVyKCkgJiYgbGF5
ZXIoKS0+dHJhbnNmb3JtKCk7CkBAIC0xMzAyLDM2ICsxMzA1LDM2IEBAIHZvaWQgUmVuZGVyQm94
OjptYXBMb2NhbFRvQ29udGFpbmVyKGNvbnMKICAgICBpZiAod2FzRml4ZWQpCiAgICAgICAgICp3
YXNGaXhlZCA9IG1vZGUgJiBJc0ZpeGVkOwogICAgIAotICAgIExheW91dFNpemUgY29udGFpbmVy
T2Zmc2V0ID0gb2Zmc2V0RnJvbUNvbnRhaW5lcihvLCByb3VuZGVkTGF5b3V0UG9pbnQodHJhbnNm
b3JtU3RhdGUubWFwcGVkUG9pbnQoKSkpOwotICAgIGlmIChtb2RlICYgU25hcE9mZnNldEZvclRy
YW5zZm9ybXMpCi0gICAgICAgIGNvbnRhaW5lck9mZnNldCA9IHJvdW5kZWRJbnRTaXplKGNvbnRh
aW5lck9mZnNldCk7CisgICAgTGF5b3V0U2l6ZSBjb250YWluZXJPZmZzZXQgPSBvZmZzZXRGcm9t
Q29udGFpbmVyKG8sIHJvdW5kZWRMYXlvdXRQb2ludCh0cmFuc2Zvcm1TdGF0ZS5tYXBwZWRQb2lu
dCgpICsgYWRqdXN0ZWRPZmZzZXQpKTsKICAgICAKLSAgICBib29sIHByZXNlcnZlM0QgPSBtb2Rl
ICYgVXNlVHJhbnNmb3JtcyAmJiAoby0+c3R5bGUoKS0+cHJlc2VydmVzM0QoKSB8fCBzdHlsZSgp
LT5wcmVzZXJ2ZXMzRCgpKTsKICAgICBpZiAobW9kZSAmIFVzZVRyYW5zZm9ybXMgJiYgc2hvdWxk
VXNlVHJhbnNmb3JtRnJvbUNvbnRhaW5lcihvKSkgewogICAgICAgICBUcmFuc2Zvcm1hdGlvbk1h
dHJpeCB0OwogICAgICAgICBnZXRUcmFuc2Zvcm1Gcm9tQ29udGFpbmVyKG8sIGNvbnRhaW5lck9m
ZnNldCwgdCk7CisgICAgICAgIHRyYW5zZm9ybVN0YXRlLm1vdmUoYWRqdXN0T2Zmc2V0Rm9yU25h
cHBpbmcobW9kZSwgYWRqdXN0ZWRPZmZzZXQpLCBwcmVzZXJ2ZTNEID8gVHJhbnNmb3JtU3RhdGU6
OkFjY3VtdWxhdGVUcmFuc2Zvcm0gOiBUcmFuc2Zvcm1TdGF0ZTo6RmxhdHRlblRyYW5zZm9ybSk7
CisgICAgICAgIGFkanVzdGVkT2Zmc2V0ID0gTGF5b3V0U2l6ZSgpOwogICAgICAgICB0cmFuc2Zv
cm1TdGF0ZS5hcHBseVRyYW5zZm9ybSh0LCBwcmVzZXJ2ZTNEID8gVHJhbnNmb3JtU3RhdGU6OkFj
Y3VtdWxhdGVUcmFuc2Zvcm0gOiBUcmFuc2Zvcm1TdGF0ZTo6RmxhdHRlblRyYW5zZm9ybSk7CiAg
ICAgfSBlbHNlCi0gICAgICAgIHRyYW5zZm9ybVN0YXRlLm1vdmUoY29udGFpbmVyT2Zmc2V0Lndp
ZHRoKCksIGNvbnRhaW5lck9mZnNldC5oZWlnaHQoKSwgcHJlc2VydmUzRCA/IFRyYW5zZm9ybVN0
YXRlOjpBY2N1bXVsYXRlVHJhbnNmb3JtIDogVHJhbnNmb3JtU3RhdGU6OkZsYXR0ZW5UcmFuc2Zv
cm0pOworICAgICAgICBhZGp1c3RlZE9mZnNldC5leHBhbmQoY29udGFpbmVyT2Zmc2V0KTsKIAog
ICAgIGlmIChjb250YWluZXJTa2lwcGVkKSB7CiAgICAgICAgIC8vIFRoZXJlIGNhbid0IGJlIGEg
dHJhbnNmb3JtIGJldHdlZW4gcmVwYWludENvbnRhaW5lciBhbmQgbywgYmVjYXVzZSB0cmFuc2Zv
cm1zIGNyZWF0ZSBjb250YWluZXJzLCBzbyBpdCBzaG91bGQgYmUgc2FmZQogICAgICAgICAvLyB0
byBqdXN0IHN1YnRyYWN0IHRoZSBkZWx0YSBiZXR3ZWVuIHRoZSByZXBhaW50Q29udGFpbmVyIGFu
ZCBvLgogICAgICAgICBMYXlvdXRTaXplIGNvbnRhaW5lck9mZnNldCA9IHJlcGFpbnRDb250YWlu
ZXItPm9mZnNldEZyb21BbmNlc3RvckNvbnRhaW5lcihvKTsKLSAgICAgICAgdHJhbnNmb3JtU3Rh
dGUubW92ZSgtY29udGFpbmVyT2Zmc2V0LndpZHRoKCksIC1jb250YWluZXJPZmZzZXQuaGVpZ2h0
KCksIHByZXNlcnZlM0QgPyBUcmFuc2Zvcm1TdGF0ZTo6QWNjdW11bGF0ZVRyYW5zZm9ybSA6IFRy
YW5zZm9ybVN0YXRlOjpGbGF0dGVuVHJhbnNmb3JtKTsKLSAgICAgICAgcmV0dXJuOworICAgICAg
ICBhZGp1c3RlZE9mZnNldC5leHBhbmQoLWNvbnRhaW5lck9mZnNldCk7CisgICAgICAgIHJldHVy
biB0cmFuc2Zvcm1TdGF0ZS5tb3ZlKGFkanVzdE9mZnNldEZvclNuYXBwaW5nKG1vZGUsIGFkanVz
dGVkT2Zmc2V0KSwgcHJlc2VydmUzRCA/IFRyYW5zZm9ybVN0YXRlOjpBY2N1bXVsYXRlVHJhbnNm
b3JtIDogVHJhbnNmb3JtU3RhdGU6OkZsYXR0ZW5UcmFuc2Zvcm0pOwogICAgIH0KIAogICAgIG1v
ZGUgJj0gfkFwcGx5Q29udGFpbmVyRmxpcDsKICAgICBpZiAoby0+aXNSZW5kZXJGbG93VGhyZWFk
KCkpIHsKICAgICAgICAgLy8gVHJhbnNmb3JtIGZyb20gcmVuZGVyIGZsb3cgY29vcmRpbmF0ZXMg
aW50byByZWdpb24gY29vcmRpbmF0ZXMuCisgICAgICAgIHRyYW5zZm9ybVN0YXRlLm1vdmUoYWRq
dXN0T2Zmc2V0Rm9yU25hcHBpbmcobW9kZSwgYWRqdXN0ZWRPZmZzZXQpLCBwcmVzZXJ2ZTNEID8g
VHJhbnNmb3JtU3RhdGU6OkFjY3VtdWxhdGVUcmFuc2Zvcm0gOiBUcmFuc2Zvcm1TdGF0ZTo6Rmxh
dHRlblRyYW5zZm9ybSk7CiAgICAgICAgIFJlbmRlclJlZ2lvbiogcmVnaW9uID0gdG9SZW5kZXJG
bG93VGhyZWFkKG8pLT5tYXBGcm9tRmxvd1RvUmVnaW9uKHRyYW5zZm9ybVN0YXRlKTsKICAgICAg
ICAgaWYgKHJlZ2lvbikKICAgICAgICAgICAgIHJlZ2lvbi0+bWFwTG9jYWxUb0NvbnRhaW5lcihy
ZWdpb24tPmNvbnRhaW5lckZvclJlcGFpbnQoKSwgdHJhbnNmb3JtU3RhdGUsIG1vZGUsIHdhc0Zp
eGVkKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG8tPm1hcExvY2FsVG9Db250YWlu
ZXIocmVwYWludENvbnRhaW5lciwgdHJhbnNmb3JtU3RhdGUsIG1vZGUsIHdhc0ZpeGVkKTsKKyAg
ICBvLT5tYXBMb2NhbFRvQ29udGFpbmVyKHJlcGFpbnRDb250YWluZXIsIHRyYW5zZm9ybVN0YXRl
LCBtb2RlLCB3YXNGaXhlZCwgYWRqdXN0ZWRPZmZzZXQpOwogfQogCiBjb25zdCBSZW5kZXJPYmpl
Y3QqIFJlbmRlckJveDo6cHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1v
ZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1hcCYgZ2VvbWV0cnlN
YXApIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCShyZXZpc2lv
biAxMzQxMTIpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgJKHdvcmtp
bmcgY29weSkKQEAgLTU3Niw3ICs1NzYsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgCiAgICAgdmlydHVh
bCBib29sIHNob3VsZENvbXB1dGVTaXplQXNSZXBsYWNlZCgpIGNvbnN0IHsgcmV0dXJuIGlzUmVw
bGFjZWQoKSAmJiAhaXNJbmxpbmVCbG9ja09ySW5saW5lVGFibGUoKTsgfQogCi0gICAgdmlydHVh
bCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCog
cmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBDb29yZGluYXRlc0ZsYWdzID0g
QXBwbHlDb250YWluZXJGbGlwIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMsIGJvb2wqIHdhc0Zp
eGVkID0gMCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250
YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJh
bnNmb3JtU3RhdGUmLCBNYXBDb29yZGluYXRlc0ZsYWdzID0gQXBwbHlDb250YWluZXJGbGlwIHwg
U25hcE9mZnNldEZvclRyYW5zZm9ybXMsIGJvb2wqIHdhc0ZpeGVkID0gMCwgY29uc3QgTGF5b3V0
U2l6ZSYgYWNjdW11bGF0ZWRPZmZzZXQgPSBMYXlvdXRTaXplKCkpIGNvbnN0IE9WRVJSSURFOwog
ICAgIHZpcnR1YWwgY29uc3QgUmVuZGVyT2JqZWN0KiBwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNv
bnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqLCBSZW5kZXJHZW9tZXRyeU1hcCYpIGNvbnN0IE9W
RVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBtYXBBYnNvbHV0ZVRvTG9jYWxQb2ludChNYXBDb29y
ZGluYXRlc0ZsYWdzLCBUcmFuc2Zvcm1TdGF0ZSYpIGNvbnN0OwogCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcAkocmV2aXNpb24gMTM0MTEyKQorKysgU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTExMTIsNTYgKzExMTIsNTQgQEAgTGF5b3V0U2l6ZSBSZW5kZXJJbmxpbmU6Om9mZnNldEZyb21D
b250YQogICAgIHJldHVybiBvZmZzZXQ7CiB9CiAKLXZvaWQgUmVuZGVySW5saW5lOjptYXBMb2Nh
bFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWlu
ZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFwQ29vcmRpbmF0ZXNGbGFncyBt
b2RlLCBib29sKiB3YXNGaXhlZCkgY29uc3QKK3ZvaWQgUmVuZGVySW5saW5lOjptYXBMb2NhbFRv
Q29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIs
IFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2Rl
LCBib29sKiB3YXNGaXhlZCwgY29uc3QgTGF5b3V0U2l6ZSYgYWNjdW11bGF0ZWRPZmZzZXQpIGNv
bnN0CiB7CisgICAgYm9vbCBjb250YWluZXJTa2lwcGVkOworICAgIExheW91dFNpemUgYWRqdXN0
ZWRPZmZzZXQgPSBhY2N1bXVsYXRlZE9mZnNldDsKKyAgICBSZW5kZXJPYmplY3QqIG8gPSBjb250
YWluZXIocmVwYWludENvbnRhaW5lciwgJmNvbnRhaW5lclNraXBwZWQpOworICAgIGJvb2wgcHJl
c2VydmUzRCA9IG1vZGUgJiBVc2VUcmFuc2Zvcm1zICYmICgobyAmJiBvLT5zdHlsZSgpLT5wcmVz
ZXJ2ZXMzRCgpKSB8fCBzdHlsZSgpLT5wcmVzZXJ2ZXMzRCgpKTsKICAgICBpZiAocmVwYWludENv
bnRhaW5lciA9PSB0aGlzKQotICAgICAgICByZXR1cm47CisgICAgICAgIHJldHVybiB0cmFuc2Zv
cm1TdGF0ZS5tb3ZlKGFkanVzdE9mZnNldEZvclNuYXBwaW5nKG1vZGUsIGFkanVzdGVkT2Zmc2V0
KSwgcHJlc2VydmUzRCA/IFRyYW5zZm9ybVN0YXRlOjpBY2N1bXVsYXRlVHJhbnNmb3JtIDogVHJh
bnNmb3JtU3RhdGU6OkZsYXR0ZW5UcmFuc2Zvcm0pOzsKIAogICAgIGlmIChSZW5kZXJWaWV3ICp2
ID0gdmlldygpKSB7CiAgICAgICAgIGlmICh2LT5sYXlvdXRTdGF0ZUVuYWJsZWQoKSAmJiAhcmVw
YWludENvbnRhaW5lcikgewogICAgICAgICAgICAgTGF5b3V0U3RhdGUqIGxheW91dFN0YXRlID0g
di0+bGF5b3V0U3RhdGUoKTsKLSAgICAgICAgICAgIExheW91dFNpemUgb2Zmc2V0ID0gbGF5b3V0
U3RhdGUtPm1fcGFpbnRPZmZzZXQ7CisgICAgICAgICAgICBhZGp1c3RlZE9mZnNldC5leHBhbmQo
bGF5b3V0U3RhdGUtPm1fcGFpbnRPZmZzZXQpOwogICAgICAgICAgICAgaWYgKHN0eWxlKCktPmhh
c0luRmxvd1Bvc2l0aW9uKCkgJiYgbGF5ZXIoKSkKLSAgICAgICAgICAgICAgICBvZmZzZXQgKz0g
bGF5ZXIoKS0+b2Zmc2V0Rm9ySW5GbG93UG9zaXRpb24oKTsKLSAgICAgICAgICAgIHRyYW5zZm9y
bVN0YXRlLm1vdmUob2Zmc2V0KTsKKyAgICAgICAgICAgICAgICBhZGp1c3RlZE9mZnNldCArPSBs
YXllcigpLT5vZmZzZXRGb3JJbkZsb3dQb3NpdGlvbigpOworICAgICAgICAgICAgdHJhbnNmb3Jt
U3RhdGUubW92ZShhZGp1c3RlZE9mZnNldCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IH0KICAgICB9CiAKLSAgICBib29sIGNvbnRhaW5lclNraXBwZWQ7Ci0gICAgUmVuZGVyT2JqZWN0
KiBvID0gY29udGFpbmVyKHJlcGFpbnRDb250YWluZXIsICZjb250YWluZXJTa2lwcGVkKTsKICAg
ICBpZiAoIW8pCi0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJuIHRyYW5zZm9ybVN0YXRl
Lm1vdmUoYWRqdXN0T2Zmc2V0Rm9yU25hcHBpbmcobW9kZSwgYWRqdXN0ZWRPZmZzZXQpLCBwcmVz
ZXJ2ZTNEID8gVHJhbnNmb3JtU3RhdGU6OkFjY3VtdWxhdGVUcmFuc2Zvcm0gOiBUcmFuc2Zvcm1T
dGF0ZTo6RmxhdHRlblRyYW5zZm9ybSk7CiAKICAgICBpZiAobW9kZSAmIEFwcGx5Q29udGFpbmVy
RmxpcCAmJiBvLT5pc0JveCgpKSB7CiAgICAgICAgIGlmIChvLT5zdHlsZSgpLT5pc0ZsaXBwZWRC
bG9ja3NXcml0aW5nTW9kZSgpKSB7Ci0gICAgICAgICAgICBJbnRQb2ludCBjZW50ZXJQb2ludCA9
IHJvdW5kZWRJbnRQb2ludCh0cmFuc2Zvcm1TdGF0ZS5tYXBwZWRQb2ludCgpKTsKLSAgICAgICAg
ICAgIHRyYW5zZm9ybVN0YXRlLm1vdmUodG9SZW5kZXJCb3gobyktPmZsaXBGb3JXcml0aW5nTW9k
ZUluY2x1ZGluZ0NvbHVtbnMoY2VudGVyUG9pbnQpIC0gY2VudGVyUG9pbnQpOworICAgICAgICAg
ICAgSW50UG9pbnQgY2VudGVyUG9pbnQgPSByb3VuZGVkSW50UG9pbnQodHJhbnNmb3JtU3RhdGUu
bWFwcGVkUG9pbnQoKSArIGFkanVzdGVkT2Zmc2V0KTsKKyAgICAgICAgICAgIGFkanVzdGVkT2Zm
c2V0LmV4cGFuZCh0b1JlbmRlckJveChvKS0+ZmxpcEZvcldyaXRpbmdNb2RlSW5jbHVkaW5nQ29s
dW1ucyhjZW50ZXJQb2ludCkgLSBjZW50ZXJQb2ludCk7CiAgICAgICAgIH0KICAgICAgICAgbW9k
ZSAmPSB+QXBwbHlDb250YWluZXJGbGlwOwogICAgIH0KIAotICAgIExheW91dFNpemUgY29udGFp
bmVyT2Zmc2V0ID0gb2Zmc2V0RnJvbUNvbnRhaW5lcihvLCByb3VuZGVkTGF5b3V0UG9pbnQodHJh
bnNmb3JtU3RhdGUubWFwcGVkUG9pbnQoKSkpOwotICAgIGlmIChtb2RlICYgU25hcE9mZnNldEZv
clRyYW5zZm9ybXMpCi0gICAgICAgIGNvbnRhaW5lck9mZnNldCA9IHJvdW5kZWRJbnRTaXplKGNv
bnRhaW5lck9mZnNldCk7Ci0KLSAgICBib29sIHByZXNlcnZlM0QgPSBtb2RlICYgVXNlVHJhbnNm
b3JtcyAmJiAoby0+c3R5bGUoKS0+cHJlc2VydmVzM0QoKSB8fCBzdHlsZSgpLT5wcmVzZXJ2ZXMz
RCgpKTsKKyAgICBMYXlvdXRTaXplIGNvbnRhaW5lck9mZnNldCA9IG9mZnNldEZyb21Db250YWlu
ZXIobywgcm91bmRlZExheW91dFBvaW50KHRyYW5zZm9ybVN0YXRlLm1hcHBlZFBvaW50KCkgKyBh
ZGp1c3RlZE9mZnNldCkpOwogICAgIGlmIChtb2RlICYgVXNlVHJhbnNmb3JtcyAmJiBzaG91bGRV
c2VUcmFuc2Zvcm1Gcm9tQ29udGFpbmVyKG8pKSB7CiAgICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0
cml4IHQ7CiAgICAgICAgIGdldFRyYW5zZm9ybUZyb21Db250YWluZXIobywgY29udGFpbmVyT2Zm
c2V0LCB0KTsKICAgICAgICAgdHJhbnNmb3JtU3RhdGUuYXBwbHlUcmFuc2Zvcm0odCwgcHJlc2Vy
dmUzRCA/IFRyYW5zZm9ybVN0YXRlOjpBY2N1bXVsYXRlVHJhbnNmb3JtIDogVHJhbnNmb3JtU3Rh
dGU6OkZsYXR0ZW5UcmFuc2Zvcm0pOwogICAgIH0gZWxzZQotICAgICAgICB0cmFuc2Zvcm1TdGF0
ZS5tb3ZlKGNvbnRhaW5lck9mZnNldC53aWR0aCgpLCBjb250YWluZXJPZmZzZXQuaGVpZ2h0KCks
IHByZXNlcnZlM0QgPyBUcmFuc2Zvcm1TdGF0ZTo6QWNjdW11bGF0ZVRyYW5zZm9ybSA6IFRyYW5z
Zm9ybVN0YXRlOjpGbGF0dGVuVHJhbnNmb3JtKTsKKyAgICAgICAgYWRqdXN0ZWRPZmZzZXQuZXhw
YW5kKGNvbnRhaW5lck9mZnNldCk7CiAKICAgICBpZiAoY29udGFpbmVyU2tpcHBlZCkgewogICAg
ICAgICAvLyBUaGVyZSBjYW4ndCBiZSBhIHRyYW5zZm9ybSBiZXR3ZWVuIHJlcGFpbnRDb250YWlu
ZXIgYW5kIG8sIGJlY2F1c2UgdHJhbnNmb3JtcyBjcmVhdGUgY29udGFpbmVycywgc28gaXQgc2hv
dWxkIGJlIHNhZmUKICAgICAgICAgLy8gdG8ganVzdCBzdWJ0cmFjdCB0aGUgZGVsdGEgYmV0d2Vl
biB0aGUgcmVwYWludENvbnRhaW5lciBhbmQgby4KLSAgICAgICAgTGF5b3V0U2l6ZSBjb250YWlu
ZXJPZmZzZXQgPSByZXBhaW50Q29udGFpbmVyLT5vZmZzZXRGcm9tQW5jZXN0b3JDb250YWluZXIo
byk7Ci0gICAgICAgIHRyYW5zZm9ybVN0YXRlLm1vdmUoLWNvbnRhaW5lck9mZnNldC53aWR0aCgp
LCAtY29udGFpbmVyT2Zmc2V0LmhlaWdodCgpLCBwcmVzZXJ2ZTNEID8gVHJhbnNmb3JtU3RhdGU6
OkFjY3VtdWxhdGVUcmFuc2Zvcm0gOiBUcmFuc2Zvcm1TdGF0ZTo6RmxhdHRlblRyYW5zZm9ybSk7
CisgICAgICAgIGFkanVzdGVkT2Zmc2V0LmV4cGFuZCgtcmVwYWludENvbnRhaW5lci0+b2Zmc2V0
RnJvbUFuY2VzdG9yQ29udGFpbmVyKG8pKTsKKyAgICAgICAgdHJhbnNmb3JtU3RhdGUubW92ZShh
ZGp1c3RlZE9mZnNldCwgcHJlc2VydmUzRCA/IFRyYW5zZm9ybVN0YXRlOjpBY2N1bXVsYXRlVHJh
bnNmb3JtIDogVHJhbnNmb3JtU3RhdGU6OkZsYXR0ZW5UcmFuc2Zvcm0pOwogICAgICAgICByZXR1
cm47CiAgICAgfQogCi0gICAgby0+bWFwTG9jYWxUb0NvbnRhaW5lcihyZXBhaW50Q29udGFpbmVy
LCB0cmFuc2Zvcm1TdGF0ZSwgbW9kZSwgd2FzRml4ZWQpOworICAgIG8tPm1hcExvY2FsVG9Db250
YWluZXIocmVwYWludENvbnRhaW5lciwgdHJhbnNmb3JtU3RhdGUsIG1vZGUsIHdhc0ZpeGVkLCBh
ZGp1c3RlZE9mZnNldCk7CiB9CiAKIGNvbnN0IFJlbmRlck9iamVjdCogUmVuZGVySW5saW5lOjpw
dXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGFuY2Vz
dG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJiBnZW9tZXRyeU1hcCkgY29uc3QKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmgJKHJldmlzaW9uIDEzNDExMikK
KysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaAkod29ya2luZyBjb3B5
KQpAQCAtMTM4LDcgKzEzOCw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBMYXlvdXRSZWN0IHJl
Y3RXaXRoT3V0bGluZUZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVw
YWludENvbnRhaW5lciwgTGF5b3V0VW5pdCBvdXRsaW5lV2lkdGgpIGNvbnN0IE9WRVJSSURFOwog
ICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlUmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJN
b2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgTGF5b3V0UmVjdCYsIGJvb2wgZml4ZWQpIGNv
bnN0IE9WRVJSSURFOwogCi0gICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoY29u
c3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3Rh
dGUmLCBNYXBDb29yZGluYXRlc0ZsYWdzID0gQXBwbHlDb250YWluZXJGbGlwIHwgU25hcE9mZnNl
dEZvclRyYW5zZm9ybXMsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3QgT1ZFUlJJREU7CisgICAg
dmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9i
amVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBDb29yZGluYXRlc0Zs
YWdzID0gQXBwbHlDb250YWluZXJGbGlwIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMsIGJvb2wq
IHdhc0ZpeGVkID0gMCwgY29uc3QgTGF5b3V0U2l6ZSYgYWNjdW11bGF0ZWRPZmZzZXQgPSBMYXlv
dXRTaXplKCkpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgUmVuZGVyT2JqZWN0
KiBwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGFu
Y2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJikgY29uc3QgT1ZFUlJJREU7CiAKICAg
ICB2aXJ0dWFsIFZpc2libGVQb3NpdGlvbiBwb3NpdGlvbkZvclBvaW50KGNvbnN0IExheW91dFBv
aW50Jik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAko
cmV2aXNpb24gMTM0MTEyKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVj
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwMzksMzIgKzIwMzksMzMgQEAgRmxvYXRQb2ludCBS
ZW5kZXJPYmplY3Q6OmFic29sdXRlVG9Mb2NhbAogICAgIHJldHVybiB0cmFuc2Zvcm1TdGF0ZS5s
YXN0UGxhbmFyUG9pbnQoKTsKIH0KIAotdm9pZCBSZW5kZXJPYmplY3Q6Om1hcExvY2FsVG9Db250
YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJh
bnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUsIGJv
b2wqIHdhc0ZpeGVkKSBjb25zdAordm9pZCBSZW5kZXJPYmplY3Q6Om1hcExvY2FsVG9Db250YWlu
ZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNm
b3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUsIGJvb2wq
IHdhc0ZpeGVkLCBjb25zdCBMYXlvdXRTaXplJiBhY2N1bXVsYXRlZE9mZnNldCkgY29uc3QKIHsK
KyAgICBMYXlvdXRTaXplIGFkanVzdGVkT2Zmc2V0ID0gYWNjdW11bGF0ZWRPZmZzZXQ7CiAgICAg
aWYgKHJlcGFpbnRDb250YWluZXIgPT0gdGhpcykKLSAgICAgICAgcmV0dXJuOworICAgICAgICBy
ZXR1cm4gdHJhbnNmb3JtU3RhdGUubW92ZShhZGp1c3RPZmZzZXRGb3JTbmFwcGluZyhtb2RlLCBh
ZGp1c3RlZE9mZnNldCkpOwogCiAgICAgUmVuZGVyT2JqZWN0KiBvID0gcGFyZW50KCk7CiAgICAg
aWYgKCFvKQotICAgICAgICByZXR1cm47CisgICAgICAgIHJldHVybiB0cmFuc2Zvcm1TdGF0ZS5t
b3ZlKGFkanVzdE9mZnNldEZvclNuYXBwaW5nKG1vZGUsIGFkanVzdGVkT2Zmc2V0KSk7CiAKICAg
ICAvLyBGSVhNRTogdGhpcyBzaG91bGQgY2FsbCBvZmZzZXRGcm9tQ29udGFpbmVyIHRvIHNoYXJl
IGNvZGUsIGJ1dCBJJ20gbm90IHN1cmUgaXQncyBldmVyIGNhbGxlZC4KICAgICBMYXlvdXRQb2lu
dCBjZW50ZXJQb2ludCA9IHJvdW5kZWRMYXlvdXRQb2ludCh0cmFuc2Zvcm1TdGF0ZS5tYXBwZWRQ
b2ludCgpKTsKICAgICBpZiAobW9kZSAmIEFwcGx5Q29udGFpbmVyRmxpcCAmJiBvLT5pc0JveCgp
KSB7CiAgICAgICAgIGlmIChvLT5zdHlsZSgpLT5pc0ZsaXBwZWRCbG9ja3NXcml0aW5nTW9kZSgp
KQotICAgICAgICAgICAgdHJhbnNmb3JtU3RhdGUubW92ZSh0b1JlbmRlckJveChvKS0+ZmxpcEZv
cldyaXRpbmdNb2RlSW5jbHVkaW5nQ29sdW1ucyhyb3VuZGVkTGF5b3V0UG9pbnQodHJhbnNmb3Jt
U3RhdGUubWFwcGVkUG9pbnQoKSkpIC0gY2VudGVyUG9pbnQpOworICAgICAgICAgICAgYWRqdXN0
ZWRPZmZzZXQuZXhwYW5kKHRvUmVuZGVyQm94KG8pLT5mbGlwRm9yV3JpdGluZ01vZGVJbmNsdWRp
bmdDb2x1bW5zKHJvdW5kZWRMYXlvdXRQb2ludCh0cmFuc2Zvcm1TdGF0ZS5tYXBwZWRQb2ludCgp
KSArIGFkanVzdGVkT2Zmc2V0KSAtIGNlbnRlclBvaW50KTsKICAgICAgICAgbW9kZSAmPSB+QXBw
bHlDb250YWluZXJGbGlwOwogICAgIH0KIAogICAgIExheW91dFNpemUgY29sdW1uT2Zmc2V0Owot
ICAgIG8tPmFkanVzdEZvckNvbHVtbnMoY29sdW1uT2Zmc2V0LCByb3VuZGVkTGF5b3V0UG9pbnQo
dHJhbnNmb3JtU3RhdGUubWFwcGVkUG9pbnQoKSkpOworICAgIG8tPmFkanVzdEZvckNvbHVtbnMo
Y29sdW1uT2Zmc2V0LCByb3VuZGVkTGF5b3V0UG9pbnQodHJhbnNmb3JtU3RhdGUubWFwcGVkUG9p
bnQoKSkgKyBhZGp1c3RlZE9mZnNldCk7CiAgICAgaWYgKCFjb2x1bW5PZmZzZXQuaXNaZXJvKCkp
Ci0gICAgICAgIHRyYW5zZm9ybVN0YXRlLm1vdmUoY29sdW1uT2Zmc2V0KTsKKyAgICAgICAgYWRq
dXN0ZWRPZmZzZXQuZXhwYW5kKGNvbHVtbk9mZnNldCk7CiAKICAgICBpZiAoby0+aGFzT3ZlcmZs
b3dDbGlwKCkpCi0gICAgICAgIHRyYW5zZm9ybVN0YXRlLm1vdmUoLXRvUmVuZGVyQm94KG8pLT5z
Y3JvbGxlZENvbnRlbnRPZmZzZXQoKSk7CisgICAgICAgIGFkanVzdGVkT2Zmc2V0LmV4cGFuZCgt
dG9SZW5kZXJCb3gobyktPnNjcm9sbGVkQ29udGVudE9mZnNldCgpKTsKIAotICAgIG8tPm1hcExv
Y2FsVG9Db250YWluZXIocmVwYWludENvbnRhaW5lciwgdHJhbnNmb3JtU3RhdGUsIG1vZGUsIHdh
c0ZpeGVkKTsKKyAgICBvLT5tYXBMb2NhbFRvQ29udGFpbmVyKHJlcGFpbnRDb250YWluZXIsIHRy
YW5zZm9ybVN0YXRlLCBtb2RlLCB3YXNGaXhlZCwgYWRqdXN0ZWRPZmZzZXQpOwogfQogCiBjb25z
dCBSZW5kZXJPYmplY3QqIFJlbmRlck9iamVjdDo6cHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25z
dCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5kZXJHZW9tZXRy
eU1hcCYgZ2VvbWV0cnlNYXApIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck9iamVjdC5oCShyZXZpc2lvbiAxMzQxMTIpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTkzMiw3ICs5MzIsNyBAQCBwdWJs
aWM6CiAKICAgICAvLyBNYXAgcG9pbnRzIGFuZCBxdWFkcyB0aHJvdWdoIGVsZW1lbnRzLCBwb3Rl
bnRpYWxseSB2aWEgM2QgdHJhbnNmb3Jtcy4gWW91IHNob3VsZCBuZXZlciBuZWVkIHRvIGNhbGwg
dGhlc2UgZGlyZWN0bHk7IHVzZQogICAgIC8vIGxvY2FsVG9BYnNvbHV0ZS9hYnNvbHV0ZVRvTG9j
YWwgbWV0aG9kcyBpbnN0ZWFkLgotICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVy
KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9y
bVN0YXRlJiwgTWFwQ29vcmRpbmF0ZXNGbGFncyA9IEFwcGx5Q29udGFpbmVyRmxpcCwgYm9vbCog
d2FzRml4ZWQgPSAwKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5l
cihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zv
cm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5lckZsaXAsIGJvb2wq
IHdhc0ZpeGVkID0gMCwgY29uc3QgTGF5b3V0U2l6ZSYgYWNjdW11bGF0ZWRPZmZzZXQgPSBMYXlv
dXRTaXplKCkpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBtYXBBYnNvbHV0ZVRvTG9jYWxQb2lu
dChNYXBDb29yZGluYXRlc0ZsYWdzLCBUcmFuc2Zvcm1TdGF0ZSYpIGNvbnN0OwogCiAgICAgLy8g
UHVzaGVzIHN0YXRlIG9udG8gUmVuZGVyR2VvbWV0cnlNYXAgYWJvdXQgaG93IHRvIG1hcCBjb29y
ZGluYXRlcyBmcm9tIHRoaXMgcmVuZGVyZXIgdG8gaXRzIGNvbnRhaW5lciwgb3IgYW5jZXN0b3JU
b1N0b3BBdCAod2hpY2hldmVyIGlzIGVuY291bnRlcmVkIGZpcnN0KS4KQEAgLTk1OCw2ICs5NTgs
MTEgQEAgcHVibGljOgogICAgIFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uRW51bSBzaG91bGRSZXNw
ZWN0SW1hZ2VPcmllbnRhdGlvbigpIGNvbnN0OwogCiBwcm90ZWN0ZWQ6CisgICAgTGF5b3V0U2l6
ZSBhZGp1c3RPZmZzZXRGb3JTbmFwcGluZyhNYXBDb29yZGluYXRlc0ZsYWdzIGZsYWdzLCBjb25z
dCBMYXlvdXRTaXplJiBvZmZzZXQpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gKGZsYWdz
ICYgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpID8gcm91bmRlZEludFNpemUob2Zmc2V0KSA6IG9m
ZnNldDsKKyAgICB9CisKICAgICBpbmxpbmUgYm9vbCBsYXllckNyZWF0aW9uQWxsb3dlZEZvclN1
YnRyZWUoKSBjb25zdDsKIAogICAgIC8vIE92ZXJyaWRlcyBzaG91bGQgY2FsbCB0aGUgc3VwZXJj
bGFzcyBhdCB0aGUgZW5kCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmll
dy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcu
Y3BwCShyZXZpc2lvbiAxMzQxMTIpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Vmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxMCwxMyArMjEwLDE1IEBAIHZvaWQgUmVuZGVy
Vmlldzo6bGF5b3V0KCkKICAgICBzZXROZWVkc0xheW91dChmYWxzZSk7CiB9CiAKLXZvaWQgUmVu
ZGVyVmlldzo6bWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0
KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIE1hcENv
b3JkaW5hdGVzRmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQpIGNvbnN0Cit2b2lkIFJlbmRlclZp
ZXc6Om1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVw
YWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBDb29yZGlu
YXRlc0ZsYWdzIG1vZGUsIGJvb2wqIHdhc0ZpeGVkLCBjb25zdCBMYXlvdXRTaXplJiBhY2N1bXVs
YXRlZE9mZnNldCkgY29uc3QKIHsKICAgICAvLyBJZiBhIGNvbnRhaW5lciB3YXMgc3BlY2lmaWVk
LCBhbmQgd2FzIG5vdCAwIG9yIHRoZSBSZW5kZXJWaWV3LAogICAgIC8vIHRoZW4gd2Ugc2hvdWxk
IGhhdmUgZm91bmQgaXQgYnkgbm93LgogICAgIEFTU0VSVF9BUkcocmVwYWludENvbnRhaW5lciwg
IXJlcGFpbnRDb250YWluZXIgfHwgcmVwYWludENvbnRhaW5lciA9PSB0aGlzKTsKICAgICBBU1NF
UlRfVU5VU0VEKHdhc0ZpeGVkLCAhd2FzRml4ZWQgfHwgKndhc0ZpeGVkID09IChtb2RlICYgSXNG
aXhlZCkpOwogCisgICAgdHJhbnNmb3JtU3RhdGUubW92ZSgobW9kZSAmIFNuYXBPZmZzZXRGb3JU
cmFuc2Zvcm1zKSA/IHJvdW5kZWRJbnRTaXplKGFjY3VtdWxhdGVkT2Zmc2V0KSA6IGFjY3VtdWxh
dGVkT2Zmc2V0KTsKKwogICAgIGlmICghcmVwYWludENvbnRhaW5lciAmJiBtb2RlICYgVXNlVHJh
bnNmb3JtcyAmJiBzaG91bGRVc2VUcmFuc2Zvcm1Gcm9tQ29udGFpbmVyKDApKSB7CiAgICAgICAg
IFRyYW5zZm9ybWF0aW9uTWF0cml4IHQ7CiAgICAgICAgIGdldFRyYW5zZm9ybUZyb21Db250YWlu
ZXIoMCwgTGF5b3V0U2l6ZSgpLCB0KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJWaWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clZpZXcuaAkocmV2aXNpb24gMTM0MTEyKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtMjI4LDcgKzIyOCw3IEBAIHB1YmxpYzoKICAg
ICBib29sIGhhc1JlbmRlckNvdW50ZXJzKCkgeyByZXR1cm4gbV9yZW5kZXJDb3VudGVyQ291bnQ7
IH0KIAogcHJvdGVjdGVkOgotICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKGNv
bnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0
YXRlJiwgTWFwQ29vcmRpbmF0ZXNGbGFncyA9IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNuYXBPZmZz
ZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURFOworICAg
IHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxP
YmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29vcmRpbmF0ZXNG
bGFncyA9IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29s
KiB3YXNGaXhlZCA9IDAsIGNvbnN0IExheW91dFNpemUmIGFjY3VtdWxhdGVkT2Zmc2V0ID0gTGF5
b3V0U2l6ZSgpKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGNvbnN0IFJlbmRlck9iamVj
dCogcHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBh
bmNlc3RvclRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1hcCYpIGNvbnN0IE9WRVJSSURFOwogICAg
IHZpcnR1YWwgdm9pZCBtYXBBYnNvbHV0ZVRvTG9jYWxQb2ludChNYXBDb29yZGluYXRlc0ZsYWdz
LCBUcmFuc2Zvcm1TdGF0ZSYpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc0NvbHVt
bnMoaW50IGRlc2lyZWRDb2x1bW5Db3VudCkgY29uc3QgT1ZFUlJJREU7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ZvcmVpZ25PYmplY3QuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9iamVj
dC5jcHAJKHJldmlzaW9uIDEzNDExMikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHRm9yZWlnbk9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE5Myw5ICsxOTMs
OSBAQCBib29sIFJlbmRlclNWR0ZvcmVpZ25PYmplY3Q6Om5vZGVBdFBvaW50CiAgICAgcmV0dXJu
IGZhbHNlOwogfQogCi12b2lkIFJlbmRlclNWR0ZvcmVpZ25PYmplY3Q6Om1hcExvY2FsVG9Db250
YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJh
bnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUsIGJv
b2wqIHdhc0ZpeGVkKSBjb25zdAordm9pZCBSZW5kZXJTVkdGb3JlaWduT2JqZWN0OjptYXBMb2Nh
bFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWlu
ZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFwQ29vcmRpbmF0ZXNGbGFncyBt
b2RlLCBib29sKiB3YXNGaXhlZCwgY29uc3QgTGF5b3V0U2l6ZSYgYWNjdW11bGF0ZWRPZmZzZXQp
IGNvbnN0CiB7Ci0gICAgU1ZHUmVuZGVyU3VwcG9ydDo6bWFwTG9jYWxUb0NvbnRhaW5lcih0aGlz
LCByZXBhaW50Q29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwgbW9kZSAmIFNuYXBPZmZzZXRGb3JU
cmFuc2Zvcm1zLCB3YXNGaXhlZCk7CisgICAgU1ZHUmVuZGVyU3VwcG9ydDo6bWFwTG9jYWxUb0Nv
bnRhaW5lcih0aGlzLCByZXBhaW50Q29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwgbW9kZSwgd2Fz
Rml4ZWQsIGFjY3VtdWxhdGVkT2Zmc2V0KTsKIH0KIAogY29uc3QgUmVuZGVyT2JqZWN0KiBSZW5k
ZXJTVkdGb3JlaWduT2JqZWN0OjpwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxh
eWVyTW9kZWxPYmplY3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJiBnZW9t
ZXRyeU1hcCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHRm9yZWlnbk9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9iamVjdC5oCShyZXZpc2lvbiAxMzQxMTIpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ZvcmVpZ25PYmplY3QuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNTQsNyArNTQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIG5vZGVB
dFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IEhpdFRl
c3RMb2NhdGlvbiYgbG9jYXRpb25JbkNvbnRhaW5lciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3Vt
dWxhdGVkT2Zmc2V0LCBIaXRUZXN0QWN0aW9uKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wg
aXNTVkdGb3JlaWduT2JqZWN0KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgdmlydHVh
bCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCog
cmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBDb29yZGluYXRlc0ZsYWdzID0g
QXBwbHlDb250YWluZXJGbGlwIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMsIGJvb2wqIHdhc0Zp
eGVkID0gMCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250
YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJh
bnNmb3JtU3RhdGUmLCBNYXBDb29yZGluYXRlc0ZsYWdzID0gQXBwbHlDb250YWluZXJGbGlwIHwg
U25hcE9mZnNldEZvclRyYW5zZm9ybXMsIGJvb2wqIHdhc0ZpeGVkID0gMCwgY29uc3QgTGF5b3V0
U2l6ZSYgYWNjdW11bGF0ZWRPZmZzZXQgPSBMYXlvdXRTaXplKCkpIGNvbnN0IE9WRVJSSURFOwog
ICAgIHZpcnR1YWwgY29uc3QgUmVuZGVyT2JqZWN0KiBwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNv
bnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21l
dHJ5TWFwJikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHNldE5lZWRzVHJhbnNm
b3JtVXBkYXRlKCkgeyBtX25lZWRzVHJhbnNmb3JtVXBkYXRlID0gdHJ1ZTsgfQogCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuY3BwCShy
ZXZpc2lvbiAxMzQxMTIpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R0lubGluZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc5LDkgKzc5LDkgQEAgdm9pZCBSZW5kZXJT
VkdJbmxpbmU6OmNvbXB1dGVGbG9hdFJlY3RGbwogICAgIFNWR1JlbmRlclN1cHBvcnQ6OmNvbXB1
dGVGbG9hdFJlY3RGb3JSZXBhaW50KHRoaXMsIHJlcGFpbnRDb250YWluZXIsIHJlcGFpbnRSZWN0
LCBmaXhlZCk7CiB9CiAKLXZvaWQgUmVuZGVyU1ZHSW5saW5lOjptYXBMb2NhbFRvQ29udGFpbmVy
KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9y
bVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBib29sKiB3
YXNGaXhlZCkgY29uc3QKK3ZvaWQgUmVuZGVyU1ZHSW5saW5lOjptYXBMb2NhbFRvQ29udGFpbmVy
KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9y
bVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBib29sKiB3
YXNGaXhlZCwgY29uc3QgTGF5b3V0U2l6ZSYgYWNjdW11bGF0ZWRPZmZzZXQpIGNvbnN0CiB7Ci0g
ICAgU1ZHUmVuZGVyU3VwcG9ydDo6bWFwTG9jYWxUb0NvbnRhaW5lcih0aGlzLCByZXBhaW50Q29u
dGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwgbW9kZSAmIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCB3
YXNGaXhlZCk7CisgICAgU1ZHUmVuZGVyU3VwcG9ydDo6bWFwTG9jYWxUb0NvbnRhaW5lcih0aGlz
LCByZXBhaW50Q29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwgbW9kZSwgd2FzRml4ZWQsIGFjY3Vt
dWxhdGVkT2Zmc2V0KTsKIH0KIAogY29uc3QgUmVuZGVyT2JqZWN0KiBSZW5kZXJTVkdJbmxpbmU6
OnB1c2hNYXBwaW5nVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5j
ZXN0b3JUb1N0b3BBdCwgUmVuZGVyR2VvbWV0cnlNYXAmIGdlb21ldHJ5TWFwKSBjb25zdApJbmRl
eDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5oCShy
ZXZpc2lvbiAxMzQxMTIpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R0lubGluZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKIAogICAg
IHZpcnR1YWwgTGF5b3V0UmVjdCBjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChjb25zdCBS
ZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyKSBjb25zdCBPVkVSUklERTsK
ICAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgRmxvYXRSZWN0JiwgYm9vbCBmaXhl
ZCA9IGZhbHNlKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0Nv
bnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBU
cmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5lckZsaXAg
fCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJM
YXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENv
b3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNm
b3JtcywgYm9vbCogd2FzRml4ZWQgPSAwLCBjb25zdCBMYXlvdXRTaXplJiBhY2N1bXVsYXRlZE9m
ZnNldCA9IExheW91dFNpemUoKSkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBS
ZW5kZXJPYmplY3QqIHB1c2hNYXBwaW5nVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdCogYW5jZXN0b3JUb1N0b3BBdCwgUmVuZGVyR2VvbWV0cnlNYXAmKSBjb25zdCBPVkVS
UklERTsKICAgICB2aXJ0dWFsIHZvaWQgYWJzb2x1dGVRdWFkcyhWZWN0b3I8RmxvYXRRdWFkPiYs
IGJvb2wqIHdhc0ZpeGVkKSBjb25zdDsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5jcHAJKHJldmlzaW9uIDEzNDEx
MikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3Qu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw5ICs1Nyw5IEBAIHZvaWQgUmVuZGVyU1ZHTW9kZWxP
YmplY3Q6OmNvbXB1dGVGbG9hdFIKICAgICBTVkdSZW5kZXJTdXBwb3J0Ojpjb21wdXRlRmxvYXRS
ZWN0Rm9yUmVwYWludCh0aGlzLCByZXBhaW50Q29udGFpbmVyLCByZXBhaW50UmVjdCwgZml4ZWQp
OwogfQogCi12b2lkIFJlbmRlclNWR01vZGVsT2JqZWN0OjptYXBMb2NhbFRvQ29udGFpbmVyKGNv
bnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0
YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBib29sKiB3YXNG
aXhlZCkgY29uc3QKK3ZvaWQgUmVuZGVyU1ZHTW9kZWxPYmplY3Q6Om1hcExvY2FsVG9Db250YWlu
ZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNm
b3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUsIGJvb2wq
IHdhc0ZpeGVkLCBjb25zdCBMYXlvdXRTaXplJiBhY2N1bXVsYXRlZE9mZnNldCkgY29uc3QKIHsK
LSAgICBTVkdSZW5kZXJTdXBwb3J0OjptYXBMb2NhbFRvQ29udGFpbmVyKHRoaXMsIHJlcGFpbnRD
b250YWluZXIsIHRyYW5zZm9ybVN0YXRlLCBtb2RlICYgU25hcE9mZnNldEZvclRyYW5zZm9ybXMs
IHdhc0ZpeGVkKTsKKyAgICBTVkdSZW5kZXJTdXBwb3J0OjptYXBMb2NhbFRvQ29udGFpbmVyKHRo
aXMsIHJlcGFpbnRDb250YWluZXIsIHRyYW5zZm9ybVN0YXRlLCBtb2RlLCB3YXNGaXhlZCwgYWNj
dW11bGF0ZWRPZmZzZXQpOwogfQogCiBjb25zdCBSZW5kZXJPYmplY3QqIFJlbmRlclNWR01vZGVs
T2JqZWN0OjpwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJiBnZW9tZXRyeU1hcCkgY29u
c3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmpl
Y3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R01vZGVsT2JqZWN0LmgJKHJldmlzaW9uIDEzNDExMikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtNTgsNyAr
NTgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGFic29sdXRlUmVjdHMoVmVjdG9yPElu
dFJlY3Q+JiwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0KSBjb25zdDsKICAg
ICB2aXJ0dWFsIHZvaWQgYWJzb2x1dGVRdWFkcyhWZWN0b3I8RmxvYXRRdWFkPiYsIGJvb2wqIHdh
c0ZpeGVkKSBjb25zdDsKIAotICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKGNv
bnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0
YXRlJiwgTWFwQ29vcmRpbmF0ZXNGbGFncyA9IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNuYXBPZmZz
ZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURFOworICAg
IHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxP
YmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29vcmRpbmF0ZXNG
bGFncyA9IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29s
KiB3YXNGaXhlZCA9IDAsIGNvbnN0IExheW91dFNpemUmIGFjY3VtdWxhdGVkT2Zmc2V0ID0gTGF5
b3V0U2l6ZSgpKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGNvbnN0IFJlbmRlck9iamVj
dCogcHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBh
bmNlc3RvclRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1hcCYpIGNvbnN0IE9WRVJSSURFOwogICAg
IHZpcnR1YWwgdm9pZCBzdHlsZVdpbGxDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5k
ZXJTdHlsZSogbmV3U3R5bGUpOwogICAgIHZpcnR1YWwgdm9pZCBzdHlsZURpZENoYW5nZShTdHls
ZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSk7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAJKHJldmlzaW9uIDEz
NDExMikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTQwMSwxMiArNDAxLDEyIEBAIHZvaWQgUmVuZGVyU1ZHUm9vdDo6
Y29tcHV0ZUZsb2F0UmVjdEZvclIKIC8vIFRoaXMgbWV0aG9kIGV4cGVjdHMgbG9jYWwgQ1NTIGJv
eCBjb29yZGluYXRlcy4KIC8vIENhbGxlcnMgd2l0aCBsb2NhbCBTVkcgdmlld3BvcnQgY29vcmRp
bmF0ZXMgc2hvdWxkIGZpcnN0IGFwcGx5IHRoZSBsb2NhbFRvQm9yZGVyQm94VHJhbnNmb3JtCiAv
LyB0byBjb252ZXJ0IGZyb20gU1ZHIHZpZXdwb3J0IGNvb3JkaW5hdGVzIHRvIGxvY2FsIENTUyBi
b3ggY29vcmRpbmF0ZXMuCi12b2lkIFJlbmRlclNWR1Jvb3Q6Om1hcExvY2FsVG9Db250YWluZXIo
Y29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3Jt
U3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUsIGJvb2wqIHdh
c0ZpeGVkKSBjb25zdAordm9pZCBSZW5kZXJTVkdSb290OjptYXBMb2NhbFRvQ29udGFpbmVyKGNv
bnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0
YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBib29sKiB3YXNG
aXhlZCwgY29uc3QgTGF5b3V0U2l6ZSYgYWNjdW11bGF0ZWRPZmZzZXQpIGNvbnN0CiB7CiAgICAg
QVNTRVJUKG1vZGUgJiB+SXNGaXhlZCk7IC8vIFdlIHNob3VsZCBoYXZlIG5vIGZpeGVkIGNvbnRl
bnQgaW4gdGhlIFNWRyByZW5kZXJpbmcgdHJlZS4KICAgICBBU1NFUlQobW9kZSAmIFVzZVRyYW5z
Zm9ybXMpOyAvLyBtYXBwaW5nIGEgcG9pbnQgdGhyb3VnaCBTVkcgdy9vIHJlc3BlY3RpbmcgdHJh
c25mb3JtcyBpcyB1c2VsZXNzLgogCi0gICAgUmVuZGVyUmVwbGFjZWQ6Om1hcExvY2FsVG9Db250
YWluZXIocmVwYWludENvbnRhaW5lciwgdHJhbnNmb3JtU3RhdGUsIG1vZGUgfCBBcHBseUNvbnRh
aW5lckZsaXAsIHdhc0ZpeGVkKTsKKyAgICBSZW5kZXJSZXBsYWNlZDo6bWFwTG9jYWxUb0NvbnRh
aW5lcihyZXBhaW50Q29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwgbW9kZSB8IEFwcGx5Q29udGFp
bmVyRmxpcCwgd2FzRml4ZWQsIGFjY3VtdWxhdGVkT2Zmc2V0KTsKIH0KIAogY29uc3QgUmVuZGVy
T2JqZWN0KiBSZW5kZXJTVkdSb290OjpwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRl
ckxheWVyTW9kZWxPYmplY3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJiBn
ZW9tZXRyeU1hcCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHUm9vdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHUm9vdC5oCShyZXZpc2lvbiAxMzQxMTIpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuaAkod29ya2luZyBjb3B5KQpAQCAtMTAzLDcgKzEwMyw3
IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBMYXlvdXRSZWN0IGNsaXBwZWRPdmVyZmxvd1JlY3RG
b3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIp
IGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlRmxvYXRSZWN0Rm9yUmVw
YWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBGbG9h
dFJlY3QmIHJlcGFpbnRSZWN0LCBib29sIGZpeGVkKSBjb25zdCBPVkVSUklERTsKIAotICAgIHZp
cnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29vcmRpbmF0ZXNGbGFn
cyA9IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3
YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRv
Q29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIs
IFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29vcmRpbmF0ZXNGbGFncyA9IEFwcGx5Q29udGFpbmVyRmxp
cCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCA9IDAsIGNvbnN0IExh
eW91dFNpemUmIGFjY3VtdWxhdGVkT2Zmc2V0ID0gTGF5b3V0U2l6ZSgpKSBjb25zdCBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIGNvbnN0IFJlbmRlck9iamVjdCogcHVzaE1hcHBpbmdUb0NvbnRhaW5l
cihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5kZXJH
ZW9tZXRyeU1hcCYpIGNvbnN0IE9WRVJSSURFOwogCiAgICAgdmlydHVhbCBib29sIGNhbkJlU2Vs
ZWN0aW9uTGVhZigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5jcHAJKHJldmlzaW9uIDEzNDExMikK
KysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTExMSw5ICsxMTEsOSBAQCB2b2lkIFJlbmRlclNWR1RleHQ6OmNvbXB1dGVG
bG9hdFJlY3RGb3JSCiAgICAgU1ZHUmVuZGVyU3VwcG9ydDo6Y29tcHV0ZUZsb2F0UmVjdEZvclJl
cGFpbnQodGhpcywgcmVwYWludENvbnRhaW5lciwgcmVwYWludFJlY3QsIGZpeGVkKTsKIH0KIAot
dm9pZCBSZW5kZXJTVkdUZXh0OjptYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVy
TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1T
dGF0ZSwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBib29sKiB3YXNGaXhlZCkgY29uc3QKK3Zv
aWQgUmVuZGVyU1ZHVGV4dDo6bWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1v
ZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3Rh
dGUsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQsIGNvbnN0IExheW91
dFNpemUmIGFjY3VtdWxhdGVkT2Zmc2V0KSBjb25zdAogewotICAgIFNWR1JlbmRlclN1cHBvcnQ6
Om1hcExvY2FsVG9Db250YWluZXIodGhpcywgcmVwYWludENvbnRhaW5lciwgdHJhbnNmb3JtU3Rh
dGUsIG1vZGUgJiBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jtcywgd2FzRml4ZWQpOworICAgIFNWR1Jl
bmRlclN1cHBvcnQ6Om1hcExvY2FsVG9Db250YWluZXIodGhpcywgcmVwYWludENvbnRhaW5lciwg
dHJhbnNmb3JtU3RhdGUsIG1vZGUsIHdhc0ZpeGVkLCBhY2N1bXVsYXRlZE9mZnNldCk7CiB9CiAK
IGNvbnN0IFJlbmRlck9iamVjdCogUmVuZGVyU1ZHVGV4dDo6cHVzaE1hcHBpbmdUb0NvbnRhaW5l
cihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5kZXJH
ZW9tZXRyeU1hcCYgZ2VvbWV0cnlNYXApIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuaAkocmV2aXNpb24gMTM0MTEyKQorKysgU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmgJKHdvcmtpbmcgY29weSkKQEAg
LTc1LDcgKzc1LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZVJlY3RGb3JS
ZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIExh
eW91dFJlY3QmLCBib29sIGZpeGVkID0gZmFsc2UpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1
YWwgdm9pZCBjb21wdXRlRmxvYXRSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVs
T2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBGbG9hdFJlY3QmLCBib29sIGZpeGVkID0gZmFsc2Up
IGNvbnN0IE9WRVJSSURFOwogCi0gICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIo
Y29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3Jt
U3RhdGUmLCBNYXBDb29yZGluYXRlc0ZsYWdzID0gQXBwbHlDb250YWluZXJGbGlwIHwgU25hcE9m
ZnNldEZvclRyYW5zZm9ybXMsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3QgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBDb29yZGluYXRl
c0ZsYWdzID0gQXBwbHlDb250YWluZXJGbGlwIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMsIGJv
b2wqIHdhc0ZpeGVkID0gMCwgY29uc3QgTGF5b3V0U2l6ZSYgYWNjdW11bGF0ZWRPZmZzZXQgPSBM
YXlvdXRTaXplKCkpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgUmVuZGVyT2Jq
ZWN0KiBwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3Qq
IGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJikgY29uc3QgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCB2b2lkIGFkZENoaWxkKFJlbmRlck9iamVjdCogY2hpbGQsIFJlbmRlck9iamVj
dCogYmVmb3JlQ2hpbGQgPSAwKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlQ2hpbGQoUmVuZGVy
T2JqZWN0KikgT1ZFUlJJREU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NW
R1JlbmRlclN1cHBvcnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5jcHAJKHJldmlzaW9uIDEzNDExMikKKysrIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTg0LDcgKzg0LDcgQEAgdm9pZCBTVkdSZW5kZXJTdXBwb3J0Ojpjb21wdXRlRmxvYXRSZWN0
RgogICAgIG9iamVjdC0+cGFyZW50KCktPmNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50KHJlcGFp
bnRDb250YWluZXIsIHJlcGFpbnRSZWN0LCBmaXhlZCk7CiB9CiAKLXZvaWQgU1ZHUmVuZGVyU3Vw
cG9ydDo6bWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCwgY29u
c3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3Rh
dGUmIHRyYW5zZm9ybVN0YXRlLCBib29sIHNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3
YXNGaXhlZCkKK3ZvaWQgU1ZHUmVuZGVyU3VwcG9ydDo6bWFwTG9jYWxUb0NvbnRhaW5lcihjb25z
dCBSZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVw
YWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBib29sIHNuYXBP
ZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCwgY29uc3QgTGF5b3V0U2l6ZSYgYWNj
dW11bGF0ZWRPZmZzZXQpCiB7CiAgICAgdHJhbnNmb3JtU3RhdGUuYXBwbHlUcmFuc2Zvcm0ob2Jq
ZWN0LT5sb2NhbFRvUGFyZW50VHJhbnNmb3JtKCkpOwogCkBAIC05OSw3ICs5OSw3IEBAIHZvaWQg
U1ZHUmVuZGVyU3VwcG9ydDo6bWFwTG9jYWxUb0NvbnRhaW4KICAgICBNYXBDb29yZGluYXRlc0Zs
YWdzIG1vZGUgPSBVc2VUcmFuc2Zvcm1zOwogICAgIGlmIChzbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jt
cykKICAgICAgICAgbW9kZSB8PSBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtczsKLSAgICBwYXJlbnQt
Pm1hcExvY2FsVG9Db250YWluZXIocmVwYWludENvbnRhaW5lciwgdHJhbnNmb3JtU3RhdGUsIG1v
ZGUsIHdhc0ZpeGVkKTsKKyAgICBwYXJlbnQtPm1hcExvY2FsVG9Db250YWluZXIocmVwYWludENv
bnRhaW5lciwgdHJhbnNmb3JtU3RhdGUsIG1vZGUsIHdhc0ZpeGVkLCBhY2N1bXVsYXRlZE9mZnNl
dCk7CiB9CiAKIGNvbnN0IFJlbmRlck9iamVjdCogU1ZHUmVuZGVyU3VwcG9ydDo6cHVzaE1hcHBp
bmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUmVuZGVyTGF5
ZXJNb2RlbE9iamVjdCogYW5jZXN0b3JUb1N0b3BBdCwgUmVuZGVyR2VvbWV0cnlNYXAmIGdlb21l
dHJ5TWFwKQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBw
b3J0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5k
ZXJTdXBwb3J0LmgJKHJldmlzaW9uIDEzNDExMikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5oCSh3b3JraW5nIGNvcHkpCkBAIC02OCw3ICs2OCw3IEBA
IHB1YmxpYzoKICAgICBzdGF0aWMgRmxvYXRSZWN0IHJlcGFpbnRSZWN0Rm9yUmVuZGVyZXJJbkxv
Y2FsQ29vcmRpbmF0ZXNFeGNsdWRpbmdTVkdTaGFkb3coY29uc3QgUmVuZGVyT2JqZWN0Kik7CiAg
ICAgc3RhdGljIExheW91dFJlY3QgY2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoY29uc3Qg
UmVuZGVyT2JqZWN0KiwgY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRh
aW5lcik7CiAgICAgc3RhdGljIHZvaWQgY29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQoY29uc3Qg
UmVuZGVyT2JqZWN0KiwgY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRh
aW5lciwgRmxvYXRSZWN0JiwgYm9vbCBmaXhlZCk7Ci0gICAgc3RhdGljIHZvaWQgbWFwTG9jYWxU
b0NvbnRhaW5lcihjb25zdCBSZW5kZXJPYmplY3QqLCBjb25zdCBSZW5kZXJMYXllck1vZGVsT2Jq
ZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIGJvb2wgc25hcE9mZnNldEZv
clRyYW5zZm9ybXMgPSB0cnVlLCBib29sKiB3YXNGaXhlZCA9IDApOworICAgIHN0YXRpYyB2b2lk
IG1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyT2JqZWN0KiwgY29uc3QgUmVuZGVyTGF5
ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBib29sIHNu
YXBPZmZzZXRGb3JUcmFuc2Zvcm1zID0gdHJ1ZSwgYm9vbCogd2FzRml4ZWQgPSAwLCBjb25zdCBM
YXlvdXRTaXplJiBhY2N1bXVsYXRlZE9mZnNldCA9IExheW91dFNpemUoKSk7CiAgICAgc3RhdGlj
IGNvbnN0IFJlbmRlck9iamVjdCogcHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJP
YmplY3QqLCBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBS
ZW5kZXJHZW9tZXRyeU1hcCYpOwogICAgIHN0YXRpYyBib29sIGNoZWNrRm9yU1ZHUmVwYWludER1
cmluZ0xheW91dChSZW5kZXJPYmplY3QqKTsKIApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTM0MTEyKQor
KysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAK
KzIwMTItMTEtMDkgIExldmkgV2VpbnRyYXViICA8bGV2aXdAY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIEFjY3VtdWxhdGUgdXNpbmcgYSBMYXlvdXRTaXplIGluIG1hcExvY2FsVG9Db250YWluZXIg
d2hlbiBwb3NzaWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTAxNzc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVXBkYXRpbmcgdGhlIHN1Yi1waXhlbC1pZnJhbWUtY29weS1vbi1zY3JvbGwuaHRtbCB0
ZXN0IHRvIGNvdmVyIGFub3RoZXIgZmFpbCBjYXNlIHByaW9yIHRvIHByb3Blcmx5CisgICAgICAg
IGhhbmRsaW5nIHBpeGVsIHNuYXBwaW5nIGZvciBjb250ZW50cyBuZXN0ZWQgaW4gbXVsdGlwbGUg
c3ViLXBpeGVsIGNvbnRhaW5lcnMuCisKKyAgICAgICAgKiBmYXN0L3N1Yi1waXhlbC9zdWItcGl4
ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLmh0bWw6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21p
dW0tbGludXgvZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC1l
eHBlY3RlZC5wbmc6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL2Zhc3Qvc3ViLXBp
eGVsL3N1Yi1waXhlbC1pZnJhbWUtY29weS1vbi1zY3JvbGwtZXhwZWN0ZWQudHh0OgorCiAyMDEy
LTExLTA5ICBTbGF2b21pciBLYXNsZXYgIDxza2FzbGV2QGdvb2dsZS5jb20+CiAKICAgICAgICAg
W2Nocm9taXVtXSBSZWJhc2VsaW5pbmcgc29mdHdhcmUgY29tcG9zaXRvciB0ZXN0cy4KSW5kZXg6
IExheW91dFRlc3RzL2Zhc3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1pZnJhbWUtY29weS1vbi1zY3Jv
bGwuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3N1Yi1waXhlbC9zdWItcGl4
ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLmh0bWwJKHJldmlzaW9uIDEzNDExMikKKysrIExheW91
dFRlc3RzL2Zhc3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1pZnJhbWUtY29weS1vbi1zY3JvbGwuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMiwxMCArMiwxMiBAQAogPGh0bWw+CiA8aGVhZD4KIDxzdHls
ZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+Ci0uY29udGFpbmVyIHsKLSAgICBwb3Np
dGlvbjogYWJzb2x1dGU7Cisuc3VicGl4ZWxQdXNoZXIgeworICAgIHBvc2l0aW9uOiByZWxhdGl2
ZTsKKyAgICB0b3A6IDAuNHB4OwogICAgIHBhZGRpbmc6IDEwLjNweDsKICAgICB6LWluZGV4OiAx
OworICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKIH0KIDwvc3R5bGU+CiA8c2NyaXB0IHNyYz0i
Li4vcmVwYWludC9yZXNvdXJjZXMvcmVwYWludC5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48
L3NjcmlwdD4KQEAgLTEzLDI2ICsxNSw0NiBAQAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICB0
ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKIAotZnVuY3Rpb24gc2V0dXBJZnJhbWUoKSB7Ci0g
IHZhciBzdWJEb2N1bWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpZnJhbWUnKS5jb250
ZW50V2luZG93LmRvY3VtZW50OwotICBzdWJEb2N1bWVudC5vcGVuKCd0ZXh0L2h0bWwnLCAncmVw
bGFjZScpOwotICBzdWJEb2N1bWVudC53cml0ZSgiPCFET0NUWVBFIGh0bWw+XG48aHRtbD48Ym9k
eSBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6IHNpbHZlcjtoZWlnaHQ6IDEwMDBweDtcIj48L2Jv
ZHk+IikKLSAgc3ViRG9jdW1lbnQuY2xvc2UoKTsKK2Z1bmN0aW9uIHNldHVwSWZyYW1lcygpIHsK
KyAgc2V0dXBJZnJhbWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lmcmFtZTEnKS5jb250ZW50
V2luZG93LmRvY3VtZW50KTsKKyAgc2V0dXBJZnJhbWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2lmcmFtZTInKS5jb250ZW50V2luZG93LmRvY3VtZW50KTsKK30KKworZnVuY3Rpb24gc2V0dXBJ
ZnJhbWUoaWZyYW1lKSB7CisgIGlmcmFtZS5vcGVuKCd0ZXh0L2h0bWwnLCAncmVwbGFjZScpOwor
ICBpZnJhbWUud3JpdGUoIjwhRE9DVFlQRSBodG1sPlxuPGh0bWw+PGJvZHkgc3R5bGU9XCJiYWNr
Z3JvdW5kLWNvbG9yOiBzaWx2ZXI7aGVpZ2h0OiAxMDAwcHg7XCI+PC9ib2R5PiIpOworICBpZnJh
bWUuY2xvc2UoKTsKIH0KIAogZnVuY3Rpb24gcmVwYWludFRlc3QoKSB7Ci0gIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdpZnJhbWUnKS5jb250ZW50V2luZG93LnNjcm9sbFRvKDAsIDEwKTsKKyAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lmcmFtZTEnKS5jb250ZW50V2luZG93LnNjcm9sbFRv
KDAsIDEwKTsKKyAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lmcmFtZTInKS5jb250ZW50V2lu
ZG93LnNjcm9sbFRvKDAsIDEwKTsKICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAgIHRlc3RS
dW5uZXIubm90aWZ5RG9uZSgpOwogfQogPC9zY3JpcHQ+CiA8L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9
InNldHVwSWZyYW1lKCk7cnVuUmVwYWludFRlc3QoKSI+Ci0gIDxwPlRoZSBpZnJhbWUgYmVsb3cg
c2hvdWxkIHJlbWFpbiBncmV5IHdoZW4gc2Nyb2xsaW5nLjwvcD4KLSAgPGRpdiBjbGFzcz0iY29u
dGFpbmVyIj4KLSAgICA8aWZyYW1lIGlkPSJpZnJhbWUiICBzdHlsZT0id2lkdGg6IDMwMHB4OyBo
ZWlnaHQ6IDIwMHB4OyI+PC9pZnJhbWU+Cis8Ym9keSBvbmxvYWQ9InNldHVwSWZyYW1lcygpO3J1
blJlcGFpbnRUZXN0KCkiPgorICA8cD5UaGUgaWZyYW1lcyBiZWxvdyBzaG91bGQgcmVtYWluIGdy
ZXkgd2hlbiBzY3JvbGxpbmcuPC9wPgorICA8ZGl2PgorICAgIDxkaXYgY2xhc3M9InN1YnBpeGVs
UHVzaGVyIj4KKyAgICAgIDxpZnJhbWUgaWQ9ImlmcmFtZTEiICBzdHlsZT0id2lkdGg6IDE1MHB4
OyBoZWlnaHQ6IDIwMHB4OyI+PC9pZnJhbWU+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0i
c3VicGl4ZWxQdXNoZXIiPgorICAgICAgPGRpdiBjbGFzcz0ic3VicGl4ZWxQdXNoZXIiPgorICAg
ICAgICA8ZGl2IGNsYXNzPSJzdWJwaXhlbFB1c2hlciI+CisgICAgICAgICAgPGRpdiBjbGFzcz0i
c3VicGl4ZWxQdXNoZXIiPgorICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3VicGl4ZWxQdXNoZXIi
PgorICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJwaXhlbFB1c2hlciI+CisgICAgICAgICAg
ICAgICAgPGRpdiBjbGFzcz0ic3VicGl4ZWxQdXNoZXIiPgorICAgICAgICAgICAgICAgICAgPGlm
cmFtZSBpZD0iaWZyYW1lMiIgIHN0eWxlPSJ3aWR0aDogMTUwcHg7IGhlaWdodDogMjAwcHg7Ij48
L2lmcmFtZT4KKyAgICAgICAgICAgICAgICA8L2Rpdj4gICAgICAgICAgICAgICAgCisgICAgICAg
ICAgICAgIDwvZGl2PgorICAgICAgICAgICAgPC9kaXY+CisgICAgICAgICAgPC9kaXY+CisgICAg
ICAgIDwvZGl2PgorICAgICAgPC9kaXY+CisgICAgPC9kaXY+CiAgIDwvZGl2PgotICA8L2Rpdj4K
LQogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
d2luL2Zhc3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1pZnJhbWUtY29weS1vbi1zY3JvbGwtZXhwZWN0
ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9m
YXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMTM0MTEyKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2lu
L2Zhc3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1pZnJhbWUtY29weS1vbi1zY3JvbGwtZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDE3ICsxLDQ4IEBACiBsYXllciBhdCAoMCwwKSBzaXpl
IDgwMHg2MDAKICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLWxheWVyIGF0ICgw
LDApIHNpemUgODAweDUyCi0gIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg1
MgotICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDE2KSBzaXplIDc4NHgyMAorbGF5ZXIgYXQg
KDAsMCkgc2l6ZSA4MDB4NDA5CisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgw
MHg0MDkKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCwxNikgc2l6ZSA3ODR4Mzg1CiAgICAg
ICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMCkgc2l6ZSA3ODR4MjAKLSAgICAgICAgUmVuZGVyVGV4
dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMzE1eDE5Ci0gICAgICAgICAgdGV4dCBydW4gYXQgKDAs
MCkgd2lkdGggMzE1OiAiVGhlIGlmcmFtZSBiZWxvdyBzaG91bGQgcmVtYWluIGdyZXkgd2hlbiBz
Y3JvbGxpbmcuIgotbGF5ZXIgYXQgKDgsNTIpIHNpemUgMzI1eDIzMAotICBSZW5kZXJCbG9jayAo
cG9zaXRpb25lZCkgekk6IDEge0RJVn0gYXQgKDgsNTIpIHNpemUgMzI1eDIzMAotICAgIFJlbmRl
clBhcnRPYmplY3Qge0lGUkFNRX0gYXQgKDEwLDEwKSBzaXplIDMwNHgyMDUgW2JvcmRlcjogKDJw
eCBpbnNldCAjMDAwMDAwKV0KLSAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMjg1eDEwMTYKLSAg
ICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDI4NXgyMDAKLSAgICAgIGxheWVyIGF0ICgw
LDApIHNpemUgMjg1eDEwMTYKLSAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNp
emUgMjg1eDEwMTYKLSAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDI2
OXgxMDAwIFtiZ2NvbG9yPSNDMEMwQzBdCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAo
MCwwKSBzaXplIDMyMXgxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDMyMTog
IlRoZSBpZnJhbWVzIGJlbG93IHNob3VsZCByZW1haW4gZ3JleSB3aGVuIHNjcm9sbGluZy4iCisg
ICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwzNikgc2l6ZSA3ODR4MzQ5CisgICAgICAgIFJl
bmRlclRleHQgeyN0ZXh0fSBhdCAoMTc0LDI1OSkgc2l6ZSA1eDE5CisgICAgICAgICAgdGV4dCBy
dW4gYXQgKDE3NCwyNTkpIHdpZHRoIDU6ICIgIgorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDAsMCkgc2l6ZSAweDAKK2xheWVyIGF0ICg4LDExMikgc2l6ZSAxNzV4MjMwCisgIFJlbmRl
ckJsb2NrIChyZWxhdGl2ZSBwb3NpdGlvbmVkKSB6STogMSB7RElWfSBhdCAoMCw2MCkgc2l6ZSAx
NzV4MjMwCisgICAgUmVuZGVyUGFydE9iamVjdCB7SUZSQU1FfSBhdCAoMTAsMTApIHNpemUgMTU0
eDIwNSBbYm9yZGVyOiAoMnB4IGluc2V0ICMwMDAwMDApXQorICAgICAgbGF5ZXIgYXQgKDAsMCkg
c2l6ZSAxMzV4MTAxNgorICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgMTM1eDIwMAor
ICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxMzV4MTAxNgorICAgICAgICBSZW5kZXJCbG9jayB7
SFRNTH0gYXQgKDAsMCkgc2l6ZSAxMzV4MTAxNgorICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9
IGF0ICg4LDgpIHNpemUgMTE5eDEwMDAgW2JnY29sb3I9I0MwQzBDMF0KKyAgICBSZW5kZXJUZXh0
IHpJOiAxIHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKK2xheWVyIGF0ICgxODcsNTIpIHNpemUg
Mjk4eDM1MAorICBSZW5kZXJCbG9jayAocmVsYXRpdmUgcG9zaXRpb25lZCkgekk6IDEge0RJVn0g
YXQgKDE3OCwwKSBzaXplIDI5OXgzNTAKKyAgICBSZW5kZXJUZXh0IHpJOiAxIHsjdGV4dH0gYXQg
KDAsMCkgc2l6ZSAweDAKK2xheWVyIGF0ICgxOTcsNjMpIHNpemUgMjc4eDMzMAorICBSZW5kZXJC
bG9jayAocmVsYXRpdmUgcG9zaXRpb25lZCkgekk6IDEge0RJVn0gYXQgKDEwLDEwKSBzaXplIDI3
OHgzMzAKKyAgICBSZW5kZXJUZXh0IHpJOiAxIHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKK2xh
eWVyIGF0ICgyMDcsNzQpIHNpemUgMjU3eDMxMAorICBSZW5kZXJCbG9jayAocmVsYXRpdmUgcG9z
aXRpb25lZCkgekk6IDEge0RJVn0gYXQgKDEwLDEwKSBzaXplIDI1N3gzMTAKKyAgICBSZW5kZXJU
ZXh0IHpJOiAxIHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKK2xheWVyIGF0ICgyMTcsODQpIHNp
emUgMjM2eDI5MAorICBSZW5kZXJCbG9jayAocmVsYXRpdmUgcG9zaXRpb25lZCkgekk6IDEge0RJ
Vn0gYXQgKDEwLDEwKSBzaXplIDIzN3gyOTAKKyAgICBSZW5kZXJUZXh0IHpJOiAxIHsjdGV4dH0g
YXQgKDAsMCkgc2l6ZSAweDAKK2xheWVyIGF0ICgyMjcsOTUpIHNpemUgMjE2eDI3MAorICBSZW5k
ZXJCbG9jayAocmVsYXRpdmUgcG9zaXRpb25lZCkgekk6IDEge0RJVn0gYXQgKDEwLDEwKSBzaXpl
IDIxNngyNzAKKyAgICBSZW5kZXJUZXh0IHpJOiAxIHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAK
K2xheWVyIGF0ICgyMzcsMTA2KSBzaXplIDE5NXgyNTAKKyAgUmVuZGVyQmxvY2sgKHJlbGF0aXZl
IHBvc2l0aW9uZWQpIHpJOiAxIHtESVZ9IGF0ICgxMCwxMCkgc2l6ZSAxOTZ4MjUwCisgICAgUmVu
ZGVyVGV4dCB6STogMSB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCitsYXllciBhdCAoMjQ3LDEx
Nykgc2l6ZSAxNzV4MjMwCisgIFJlbmRlckJsb2NrIChyZWxhdGl2ZSBwb3NpdGlvbmVkKSB6STog
MSB7RElWfSBhdCAoMTAsMTApIHNpemUgMTc1eDIzMAorICAgIFJlbmRlclBhcnRPYmplY3Qge0lG
UkFNRX0gYXQgKDEwLDEwKSBzaXplIDE1NHgyMDUgW2JvcmRlcjogKDJweCBpbnNldCAjMDAwMDAw
KV0KKyAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTM1eDEwMTYKKyAgICAgICAgUmVuZGVyVmll
dyBhdCAoMCwwKSBzaXplIDEzNXgyMDAKKyAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTM1eDEw
MTYKKyAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgMTM1eDEwMTYKKyAg
ICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDExOXgxMDAwIFtiZ2NvbG9y
PSNDMEMwQzBdCiAgICAgUmVuZGVyVGV4dCB6STogMSB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgw
CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlv
bnMJKHJldmlzaW9uIDEzNDExMikKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rl
c3RFeHBlY3RhdGlvbnMJKHdvcmtpbmcgY29weSkKQEAgLTQxNzUsNiArNDE3NSw5IEBAIEJ1Zyhk
cHJhbmtlKSBbIFdpbiBdIHdlYmF1ZGlvL2NvZGVjLXRlc3QKIAogd2Via2l0Lm9yZy9iLzEwMDAy
MyBbIE1hYyBdIGZhc3Qvc3ViLXBpeGVsL2ZpbGUtdXBsb2FkLWNvbnRyb2wtYXQtZnJhY3Rpb25h
bC1vZmZzZXQuaHRtbCBbIEZhaWx1cmUgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKKyMgTmVlZHMgcmVi
YXNlbGluZSBhZnRlciBib3RzIGN5Y2xlCitCdWcobGV2aXcpIFsgTGludXggV2luIE1hYyBdIGZh
c3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1pZnJhbWUtY29weS1vbi1zY3JvbGwuaHRtbCBbIFBhc3Mg
SW1hZ2VPbmx5RmFpbHVyZSBGYWlsdXJlIF0KKwogd2Via2l0Lm9yZy9iLzEwMDQ3OCAgWyBNYWMg
XSBjc3MzL2ZpbHRlcnMvY3VzdG9tL2VmZmVjdC1jdXN0b20uaHRtbCBbIFBhc3MgSW1hZ2VPbmx5
RmFpbHVyZSBdCiAKIHdlYmtpdC5vcmcvYi8xMDA0MjQgZWRpdGluZy9zZWxlY3Rpb24vdXNlci1z
ZWxlY3QtYWxsLXNlbGVjdGlvbi5odG1sIFsgRmFpbHVyZSBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176578</attachid>
            <date>2012-11-28 14:19:48 -0800</date>
            <delta_ts>2012-12-04 14:03:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101779-20121128141723.patch</filename>
            <type>text/plain</type>
            <size>46789</size>
            <attacher name="Levi Weintraub">leviw</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNjA1MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDY3IEBACisyMDEyLTExLTI4ICBMZXZpIFdl
aW50cmF1YiAgPGxldml3QGNocm9taXVtLm9yZz4KKworICAgICAgICBQcm9wZXJseSBtaXJyb3Ig
cGFpbnQncyBwaXhlbCBzbmFwcGluZyB3aGVuIG1hcHBpbmcgY29vcmRpbmF0ZXMuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE3NzkKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYXBMb2NhbFRvQ29udGFp
bmVyIHByZXZpb3VzbHkgYWNjdW11bGF0ZWQgb2Zmc2V0cyBpbiBUcmFuc2Zvcm1TdGF0ZSwgd2hp
Y2ggaXMgZnVuY3Rpb25hbGx5IGluY29ycmVjdCB3aGVuIHRoZXJlCisgICAgICAgIGFyZSBtdWx0
aXBsZSBsZXZlbHMgb2YgY29udGFpbmVycyB3aXRoIHN1Yi1waXhlbCBvZmZzZXRzIGluIHRoZSBy
ZW5kZXJlciBjaGFpbiwgYXMgd2Ugd291bGQgcGl4ZWwgc25hcCBmcm9tIHRoZQorICAgICAgICBi
b3R0b20gdG93YXJkcyB0aGUgcm9vdCBpbnN0ZWFkIG9mIHZpY2UtdmVyc2EsIGFzIHdlIGRvIHdo
ZW4gd2UgcGFpbnQuIFRoaXMgZnVuY3Rpb25hbGx5IGluY29ycmVjdCBiZWhhdmlvciBsZWFkcwor
ICAgICAgICB0byByZXBhaW50IGFydGlmYWN0cywgZXNwZWNpYWxseSBpbiB3aWRnZXRzLiBUaGlz
IGNoYW5nZSB3aWxsIGFsc28gaW1wcm92ZSBwZXJmb3JtYW5jZSBzaW5jZSB3ZSBvbmx5IGhhdmUg
dG8gYXBwbHkKKyAgICAgICAgdGhlIHRyYW5zZm9ybSB0byBuKzEgb2Zmc2V0cyB3aGVyZSBuIGlz
IHRoZSBudW1iZXIgb2YgdHJhbnNmb3JtcyBpbiB0aGUgY2hhaW4sIHdoZXJlYXMgY3VycmVudGx5
IHdlIGhhdmUgdG8gYXBwbHkKKyAgICAgICAgaXQgTyhtKSB3aGVyZSBtIGlzIHRoZSBudW1iZXIg
b2YgcmVuZGVyZXJzIGluIHRoZSBjaGFpbiwgd2l0aCBzb21lIGVsZW1lbnRzIGFjY3VtdWxhdGlu
ZyBtdWx0aXBsZSBvZmZzZXRzLiBBbHNvCisgICAgICAgIHVwZGF0aW5nIFJlbmRlckdlb21ldHJ5
TWFwIHRvIGFsc28gcmVzcGVjdCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcyAod2hpY2ggSSBpbnRl
bmQgdG8gcmVuYW1lIGFzIHBlciBzbWZyJ3MgcmVxdWVzdCkuCisKKyAgICAgICAgVXBkYXRlZCBh
biBleGlzdGluZyB0ZXN0IHRvIGNhdGNoIHRoaXMgYnVnLgorCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvTGF5b3V0U2l6ZS5oOgorICAgICAgICAoTGF5b3V0U2l6ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXRTaXplOjpleHBhbmQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJC
b3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjptYXBMb2NhbFRvQ29udGFpbmVy
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94Lmg6CisgICAgICAgIChSZW5kZXJCb3gp
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJHZW9tZXRyeU1hcC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJHZW9tZXRyeU1hcDo6bWFwVG9Db250YWluZXIpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW5saW5l
OjptYXBMb2NhbFRvQ29udGFpbmVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySW5saW5l
Lmg6CisgICAgICAgIChSZW5kZXJJbmxpbmUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJP
YmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjptYXBMb2NhbFRvQ29u
dGFpbmVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0Lmg6CisgICAgICAgIChS
ZW5kZXJPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjphZGp1c3RPZmZz
ZXRGb3JTbmFwcGluZyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyVmlldzo6bWFwTG9jYWxUb0NvbnRhaW5lcik6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlclZpZXcuaDoKKyAgICAgICAgKFJlbmRlclZpZXcpOgorICAgICAg
ICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9iamVjdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJTVkdGb3JlaWduT2JqZWN0OjptYXBMb2NhbFRvQ29udGFpbmVyKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ZvcmVpZ25PYmplY3QuaDoKKyAgICAgICAg
KFJlbmRlclNWR0ZvcmVpZ25PYmplY3QpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHSW5saW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR0lubGluZTo6bWFwTG9j
YWxUb0NvbnRhaW5lcik6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUu
aDoKKyAgICAgICAgKFJlbmRlclNWR0lubGluZSk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdNb2RlbE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdNb2Rl
bE9iamVjdDo6bWFwTG9jYWxUb0NvbnRhaW5lcik6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdNb2RlbE9iamVjdC5oOgorICAgICAgICAoUmVuZGVyU1ZHTW9kZWxPYmplY3QpOgor
ICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJTVkdSb290OjptYXBMb2NhbFRvQ29udGFpbmVyKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuaDoKKyAgICAgICAgKFJlbmRlclNWR1Jvb3QpOgorICAg
ICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJTVkdUZXh0OjptYXBMb2NhbFRvQ29udGFpbmVyKToKKyAgICAgICAgKiByZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR1RleHQuaDoKKyAgICAgICAgKFJlbmRlclNWR1RleHQpOgorICAgICAg
ICAqIHJlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdSZW5kZXJTdXBwb3J0OjptYXBMb2NhbFRvQ29udGFpbmVyKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuaDoKKyAgICAgICAgKFNWR1JlbmRlclN1cHBvcnQp
OgorCiAyMDEyLTExLTI4ICBDaHJpc3RvcGhlIER1bWV6ICA8Y2hyaXN0b3BoZS5kdW1lekBpbnRl
bC5jb20+CiAKICAgICAgICAgQ1NTMyBNdWx0aWNvbHVtbjogY29sdW1uLXNwYW4gc2hvdWxkIGFj
Y2VwdCB2YWx1ZSAnbm9uZScgKGluc3RlYWQgb2YgJzEnKQpJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvTGF5b3V0U2l6ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0xheW91dFNpemUuaAkocmV2aXNpb24gMTM1NzgxKQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTGF5b3V0U2l6ZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC03MSw3ICs3MSwxMyBAQCBwdWJsaWM6CiAgICAgICAgIG1fd2lkdGggKz0gd2lkdGg7
CiAgICAgICAgIG1faGVpZ2h0ICs9IGhlaWdodDsKICAgICB9Ci0gICAgCisKKyAgICB2b2lkIGV4
cGFuZChjb25zdCBMYXlvdXRTaXplJiBzKQorICAgIHsKKyAgICAgICAgbV93aWR0aCArPSBzLm1f
d2lkdGg7CisgICAgICAgIG1faGVpZ2h0ICs9IHMubV9oZWlnaHQ7CisgICAgfQorCiAgICAgdm9p
ZCBzY2FsZShmbG9hdCBzY2FsZSkKICAgICB7CiAgICAgICAgIG1fd2lkdGggKj0gc2NhbGU7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAkocmV2aXNpb24gMTM1Nzgx
KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTEzMDQsMTAgKzEzMDQsMTQgQEAgTGF5b3V0VW5pdCBSZW5kZXJCb3g6OnBlcnBlbmRp
Y3VsYXJDb250YQogICAgIHJldHVybiBjYi0+YWRqdXN0Q29udGVudEJveExvZ2ljYWxIZWlnaHRG
b3JCb3hTaXppbmcobG9naWNhbEhlaWdodExlbmd0aC52YWx1ZSgpKTsKIH0KIAotdm9pZCBSZW5k
ZXJCb3g6Om1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCog
cmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBDb29y
ZGluYXRlc0ZsYWdzIG1vZGUsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAordm9pZCBSZW5kZXJCb3g6
Om1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWlu
dENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBDb29yZGluYXRl
c0ZsYWdzIG1vZGUsIGJvb2wqIHdhc0ZpeGVkLCBjb25zdCBMYXlvdXRTaXplJiBhY2N1bXVsYXRl
ZE9mZnNldCkgY29uc3QKIHsKKyAgICBib29sIGNvbnRhaW5lclNraXBwZWQ7CisgICAgTGF5b3V0
U2l6ZSBhZGp1c3RlZE9mZnNldCA9IGFjY3VtdWxhdGVkT2Zmc2V0OworICAgIFJlbmRlck9iamVj
dCogbyA9IGNvbnRhaW5lcihyZXBhaW50Q29udGFpbmVyLCAmY29udGFpbmVyU2tpcHBlZCk7Cisg
ICAgYm9vbCBwcmVzZXJ2ZTNEID0gbW9kZSAmIFVzZVRyYW5zZm9ybXMgJiYgKChvICYmIG8tPnN0
eWxlKCktPnByZXNlcnZlczNEKCkpIHx8IHN0eWxlKCktPnByZXNlcnZlczNEKCkpOwogICAgIGlm
IChyZXBhaW50Q29udGFpbmVyID09IHRoaXMpCi0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0
dXJuIHRyYW5zZm9ybVN0YXRlLm1vdmUoYWRqdXN0T2Zmc2V0Rm9yU25hcHBpbmcobW9kZSwgYWRq
dXN0ZWRPZmZzZXQpLCBwcmVzZXJ2ZTNEID8gVHJhbnNmb3JtU3RhdGU6OkFjY3VtdWxhdGVUcmFu
c2Zvcm0gOiBUcmFuc2Zvcm1TdGF0ZTo6RmxhdHRlblRyYW5zZm9ybSk7CiAKICAgICBpZiAoUmVu
ZGVyVmlldyogdiA9IHZpZXcoKSkgewogICAgICAgICBpZiAodi0+bGF5b3V0U3RhdGVFbmFibGVk
KCkgJiYgIXJlcGFpbnRDb250YWluZXIpIHsKQEAgLTEzMjAsMTAgKzEzMjQsOSBAQCB2b2lkIFJl
bmRlckJveDo6bWFwTG9jYWxUb0NvbnRhaW5lcihjb25zCiAgICAgICAgIH0KICAgICB9CiAKLSAg
ICBib29sIGNvbnRhaW5lclNraXBwZWQ7Ci0gICAgUmVuZGVyT2JqZWN0KiBvID0gY29udGFpbmVy
KHJlcGFpbnRDb250YWluZXIsICZjb250YWluZXJTa2lwcGVkKTsKKwogICAgIGlmICghbykKLSAg
ICAgICAgcmV0dXJuOworICAgICAgICByZXR1cm4gdHJhbnNmb3JtU3RhdGUubW92ZShhZGp1c3RP
ZmZzZXRGb3JTbmFwcGluZyhtb2RlLCBhZGp1c3RlZE9mZnNldCksIHByZXNlcnZlM0QgPyBUcmFu
c2Zvcm1TdGF0ZTo6QWNjdW11bGF0ZVRyYW5zZm9ybSA6IFRyYW5zZm9ybVN0YXRlOjpGbGF0dGVu
VHJhbnNmb3JtKTsKIAogICAgIGJvb2wgaXNGaXhlZFBvcyA9IHN0eWxlKCktPnBvc2l0aW9uKCkg
PT0gRml4ZWRQb3NpdGlvbjsKICAgICBib29sIGhhc1RyYW5zZm9ybSA9IGhhc0xheWVyKCkgJiYg
bGF5ZXIoKS0+dHJhbnNmb3JtKCk7CkBAIC0xMzM3LDM2ICsxMzQwLDM2IEBAIHZvaWQgUmVuZGVy
Qm94OjptYXBMb2NhbFRvQ29udGFpbmVyKGNvbnMKICAgICBpZiAod2FzRml4ZWQpCiAgICAgICAg
ICp3YXNGaXhlZCA9IG1vZGUgJiBJc0ZpeGVkOwogICAgIAotICAgIExheW91dFNpemUgY29udGFp
bmVyT2Zmc2V0ID0gb2Zmc2V0RnJvbUNvbnRhaW5lcihvLCByb3VuZGVkTGF5b3V0UG9pbnQodHJh
bnNmb3JtU3RhdGUubWFwcGVkUG9pbnQoKSkpOwotICAgIGlmIChtb2RlICYgU25hcE9mZnNldEZv
clRyYW5zZm9ybXMpCi0gICAgICAgIGNvbnRhaW5lck9mZnNldCA9IHJvdW5kZWRJbnRTaXplKGNv
bnRhaW5lck9mZnNldCk7CisgICAgTGF5b3V0U2l6ZSBjb250YWluZXJPZmZzZXQgPSBvZmZzZXRG
cm9tQ29udGFpbmVyKG8sIHJvdW5kZWRMYXlvdXRQb2ludCh0cmFuc2Zvcm1TdGF0ZS5tYXBwZWRQ
b2ludCgpICsgYWRqdXN0ZWRPZmZzZXQpKTsKICAgICAKLSAgICBib29sIHByZXNlcnZlM0QgPSBt
b2RlICYgVXNlVHJhbnNmb3JtcyAmJiAoby0+c3R5bGUoKS0+cHJlc2VydmVzM0QoKSB8fCBzdHls
ZSgpLT5wcmVzZXJ2ZXMzRCgpKTsKICAgICBpZiAobW9kZSAmIFVzZVRyYW5zZm9ybXMgJiYgc2hv
dWxkVXNlVHJhbnNmb3JtRnJvbUNvbnRhaW5lcihvKSkgewogICAgICAgICBUcmFuc2Zvcm1hdGlv
bk1hdHJpeCB0OwogICAgICAgICBnZXRUcmFuc2Zvcm1Gcm9tQ29udGFpbmVyKG8sIGNvbnRhaW5l
ck9mZnNldCwgdCk7CisgICAgICAgIHRyYW5zZm9ybVN0YXRlLm1vdmUoYWRqdXN0T2Zmc2V0Rm9y
U25hcHBpbmcobW9kZSwgYWRqdXN0ZWRPZmZzZXQpLCBwcmVzZXJ2ZTNEID8gVHJhbnNmb3JtU3Rh
dGU6OkFjY3VtdWxhdGVUcmFuc2Zvcm0gOiBUcmFuc2Zvcm1TdGF0ZTo6RmxhdHRlblRyYW5zZm9y
bSk7CisgICAgICAgIGFkanVzdGVkT2Zmc2V0ID0gTGF5b3V0U2l6ZSgpOwogICAgICAgICB0cmFu
c2Zvcm1TdGF0ZS5hcHBseVRyYW5zZm9ybSh0LCBwcmVzZXJ2ZTNEID8gVHJhbnNmb3JtU3RhdGU6
OkFjY3VtdWxhdGVUcmFuc2Zvcm0gOiBUcmFuc2Zvcm1TdGF0ZTo6RmxhdHRlblRyYW5zZm9ybSk7
CiAgICAgfSBlbHNlCi0gICAgICAgIHRyYW5zZm9ybVN0YXRlLm1vdmUoY29udGFpbmVyT2Zmc2V0
LndpZHRoKCksIGNvbnRhaW5lck9mZnNldC5oZWlnaHQoKSwgcHJlc2VydmUzRCA/IFRyYW5zZm9y
bVN0YXRlOjpBY2N1bXVsYXRlVHJhbnNmb3JtIDogVHJhbnNmb3JtU3RhdGU6OkZsYXR0ZW5UcmFu
c2Zvcm0pOworICAgICAgICBhZGp1c3RlZE9mZnNldC5leHBhbmQoY29udGFpbmVyT2Zmc2V0KTsK
IAogICAgIGlmIChjb250YWluZXJTa2lwcGVkKSB7CiAgICAgICAgIC8vIFRoZXJlIGNhbid0IGJl
IGEgdHJhbnNmb3JtIGJldHdlZW4gcmVwYWludENvbnRhaW5lciBhbmQgbywgYmVjYXVzZSB0cmFu
c2Zvcm1zIGNyZWF0ZSBjb250YWluZXJzLCBzbyBpdCBzaG91bGQgYmUgc2FmZQogICAgICAgICAv
LyB0byBqdXN0IHN1YnRyYWN0IHRoZSBkZWx0YSBiZXR3ZWVuIHRoZSByZXBhaW50Q29udGFpbmVy
IGFuZCBvLgogICAgICAgICBMYXlvdXRTaXplIGNvbnRhaW5lck9mZnNldCA9IHJlcGFpbnRDb250
YWluZXItPm9mZnNldEZyb21BbmNlc3RvckNvbnRhaW5lcihvKTsKLSAgICAgICAgdHJhbnNmb3Jt
U3RhdGUubW92ZSgtY29udGFpbmVyT2Zmc2V0LndpZHRoKCksIC1jb250YWluZXJPZmZzZXQuaGVp
Z2h0KCksIHByZXNlcnZlM0QgPyBUcmFuc2Zvcm1TdGF0ZTo6QWNjdW11bGF0ZVRyYW5zZm9ybSA6
IFRyYW5zZm9ybVN0YXRlOjpGbGF0dGVuVHJhbnNmb3JtKTsKLSAgICAgICAgcmV0dXJuOworICAg
ICAgICBhZGp1c3RlZE9mZnNldC5leHBhbmQoLWNvbnRhaW5lck9mZnNldCk7CisgICAgICAgIHJl
dHVybiB0cmFuc2Zvcm1TdGF0ZS5tb3ZlKGFkanVzdE9mZnNldEZvclNuYXBwaW5nKG1vZGUsIGFk
anVzdGVkT2Zmc2V0KSwgcHJlc2VydmUzRCA/IFRyYW5zZm9ybVN0YXRlOjpBY2N1bXVsYXRlVHJh
bnNmb3JtIDogVHJhbnNmb3JtU3RhdGU6OkZsYXR0ZW5UcmFuc2Zvcm0pOwogICAgIH0KIAogICAg
IG1vZGUgJj0gfkFwcGx5Q29udGFpbmVyRmxpcDsKICAgICBpZiAoby0+aXNSZW5kZXJGbG93VGhy
ZWFkKCkpIHsKICAgICAgICAgLy8gVHJhbnNmb3JtIGZyb20gcmVuZGVyIGZsb3cgY29vcmRpbmF0
ZXMgaW50byByZWdpb24gY29vcmRpbmF0ZXMuCisgICAgICAgIHRyYW5zZm9ybVN0YXRlLm1vdmUo
YWRqdXN0T2Zmc2V0Rm9yU25hcHBpbmcobW9kZSwgYWRqdXN0ZWRPZmZzZXQpLCBwcmVzZXJ2ZTNE
ID8gVHJhbnNmb3JtU3RhdGU6OkFjY3VtdWxhdGVUcmFuc2Zvcm0gOiBUcmFuc2Zvcm1TdGF0ZTo6
RmxhdHRlblRyYW5zZm9ybSk7CiAgICAgICAgIFJlbmRlclJlZ2lvbiogcmVnaW9uID0gdG9SZW5k
ZXJGbG93VGhyZWFkKG8pLT5tYXBGcm9tRmxvd1RvUmVnaW9uKHRyYW5zZm9ybVN0YXRlKTsKICAg
ICAgICAgaWYgKHJlZ2lvbikKICAgICAgICAgICAgIHJlZ2lvbi0+bWFwTG9jYWxUb0NvbnRhaW5l
cihyZWdpb24tPmNvbnRhaW5lckZvclJlcGFpbnQoKSwgdHJhbnNmb3JtU3RhdGUsIG1vZGUsIHdh
c0ZpeGVkKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG8tPm1hcExvY2FsVG9Db250
YWluZXIocmVwYWludENvbnRhaW5lciwgdHJhbnNmb3JtU3RhdGUsIG1vZGUsIHdhc0ZpeGVkKTsK
KyAgICBvLT5tYXBMb2NhbFRvQ29udGFpbmVyKHJlcGFpbnRDb250YWluZXIsIHRyYW5zZm9ybVN0
YXRlLCBtb2RlLCB3YXNGaXhlZCwgYWRqdXN0ZWRPZmZzZXQpOwogfQogCiBjb25zdCBSZW5kZXJP
YmplY3QqIFJlbmRlckJveDo6cHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXll
ck1vZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1hcCYgZ2VvbWV0
cnlNYXApIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCShyZXZp
c2lvbiAxMzU3ODEpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgJKHdv
cmtpbmcgY29weSkKQEAgLTU4MCw3ICs1ODAsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgCiAgICAgdmly
dHVhbCBib29sIHNob3VsZENvbXB1dGVTaXplQXNSZXBsYWNlZCgpIGNvbnN0IHsgcmV0dXJuIGlz
UmVwbGFjZWQoKSAmJiAhaXNJbmxpbmVCbG9ja09ySW5saW5lVGFibGUoKTsgfQogCi0gICAgdmly
dHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVj
dCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBDb29yZGluYXRlc0ZsYWdz
ID0gQXBwbHlDb250YWluZXJGbGlwIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMsIGJvb2wqIHdh
c0ZpeGVkID0gMCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9D
b250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwg
VHJhbnNmb3JtU3RhdGUmLCBNYXBDb29yZGluYXRlc0ZsYWdzID0gQXBwbHlDb250YWluZXJGbGlw
IHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMsIGJvb2wqIHdhc0ZpeGVkID0gMCwgY29uc3QgTGF5
b3V0U2l6ZSYgYWNjdW11bGF0ZWRPZmZzZXQgPSBMYXlvdXRTaXplKCkpIGNvbnN0IE9WRVJSSURF
OwogICAgIHZpcnR1YWwgY29uc3QgUmVuZGVyT2JqZWN0KiBwdXNoTWFwcGluZ1RvQ29udGFpbmVy
KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqLCBSZW5kZXJHZW9tZXRyeU1hcCYpIGNvbnN0
IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBtYXBBYnNvbHV0ZVRvTG9jYWxQb2ludChNYXBD
b29yZGluYXRlc0ZsYWdzLCBUcmFuc2Zvcm1TdGF0ZSYpIGNvbnN0OwogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR2VvbWV0cnlNYXAuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHZW9tZXRyeU1hcC5jcHAJKHJldmlzaW9uIDEz
NTc4MSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHZW9tZXRyeU1hcC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTEwNCw3ICsxMDQsNyBAQCBGbG9hdFBvaW50IFJlbmRlckdlb21l
dHJ5TWFwOjptYXBUb0NvbnRhCiAgICAgRmxvYXRQb2ludCByZXN1bHQ7CiAgICAgCiAgICAgaWYg
KCFoYXNGaXhlZFBvc2l0aW9uU3RlcCgpICYmICFoYXNUcmFuc2Zvcm1TdGVwKCkgJiYgIWhhc05v
blVuaWZvcm1TdGVwKCkgJiYgKCFjb250YWluZXIgfHwgKG1fbWFwcGluZy5zaXplKCkgJiYgY29u
dGFpbmVyID09IG1fbWFwcGluZ1swXS5tX3JlbmRlcmVyKSkpCi0gICAgICAgIHJlc3VsdCA9IHAg
KyBtX2FjY3VtdWxhdGVkT2Zmc2V0OworICAgICAgICByZXN1bHQgPSBwICsgKChtX21hcENvb3Jk
aW5hdGVzRmxhZ3MgJiBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcykgPyByb3VuZGVkSW50U2l6ZSht
X2FjY3VtdWxhdGVkT2Zmc2V0KSA6IG1fYWNjdW11bGF0ZWRPZmZzZXQpOwogICAgIGVsc2Ugewog
ICAgICAgICBUcmFuc2Zvcm1TdGF0ZSB0cmFuc2Zvcm1TdGF0ZShUcmFuc2Zvcm1TdGF0ZTo6QXBw
bHlUcmFuc2Zvcm1EaXJlY3Rpb24sIHApOwogICAgICAgICBtYXBUb0NvbnRhaW5lcih0cmFuc2Zv
cm1TdGF0ZSwgY29udGFpbmVyKTsKQEAgLTEyNyw3ICsxMjcsNyBAQCBGbG9hdFF1YWQgUmVuZGVy
R2VvbWV0cnlNYXA6Om1hcFRvQ29udGFpCiAgICAgCiAgICAgaWYgKCFoYXNGaXhlZFBvc2l0aW9u
U3RlcCgpICYmICFoYXNUcmFuc2Zvcm1TdGVwKCkgJiYgIWhhc05vblVuaWZvcm1TdGVwKCkgJiYg
KCFjb250YWluZXIgfHwgKG1fbWFwcGluZy5zaXplKCkgJiYgY29udGFpbmVyID09IG1fbWFwcGlu
Z1swXS5tX3JlbmRlcmVyKSkpIHsKICAgICAgICAgcmVzdWx0ID0gcmVjdDsKLSAgICAgICAgcmVz
dWx0Lm1vdmUobV9hY2N1bXVsYXRlZE9mZnNldCk7CisgICAgICAgIHJlc3VsdC5tb3ZlKChtX21h
cENvb3JkaW5hdGVzRmxhZ3MgJiBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcykgPyByb3VuZGVkSW50
U2l6ZShtX2FjY3VtdWxhdGVkT2Zmc2V0KSA6IG1fYWNjdW11bGF0ZWRPZmZzZXQpOwogICAgIH0g
ZWxzZSB7CiAgICAgICAgIFRyYW5zZm9ybVN0YXRlIHRyYW5zZm9ybVN0YXRlKFRyYW5zZm9ybVN0
YXRlOjpBcHBseVRyYW5zZm9ybURpcmVjdGlvbiwgcmVjdC5jZW50ZXIoKSwgcmVjdCk7CiAgICAg
ICAgIG1hcFRvQ29udGFpbmVyKHRyYW5zZm9ybVN0YXRlLCBjb250YWluZXIpOwpJbmRleDogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAJKHJldmlzaW9uIDEzNTc4MSkK
KysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMTEyLDU2ICsxMTEyLDU0IEBAIExheW91dFNpemUgUmVuZGVySW5saW5lOjpvZmZz
ZXRGcm9tQ29udGEKICAgICByZXR1cm4gb2Zmc2V0OwogfQogCi12b2lkIFJlbmRlcklubGluZTo6
bWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50
Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIE1hcENvb3JkaW5hdGVz
RmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQpIGNvbnN0Cit2b2lkIFJlbmRlcklubGluZTo6bWFw
TG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29u
dGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIE1hcENvb3JkaW5hdGVzRmxh
Z3MgbW9kZSwgYm9vbCogd2FzRml4ZWQsIGNvbnN0IExheW91dFNpemUmIGFjY3VtdWxhdGVkT2Zm
c2V0KSBjb25zdAogeworICAgIGJvb2wgY29udGFpbmVyU2tpcHBlZDsKKyAgICBMYXlvdXRTaXpl
IGFkanVzdGVkT2Zmc2V0ID0gYWNjdW11bGF0ZWRPZmZzZXQ7CisgICAgUmVuZGVyT2JqZWN0KiBv
ID0gY29udGFpbmVyKHJlcGFpbnRDb250YWluZXIsICZjb250YWluZXJTa2lwcGVkKTsKKyAgICBi
b29sIHByZXNlcnZlM0QgPSBtb2RlICYgVXNlVHJhbnNmb3JtcyAmJiAoKG8gJiYgby0+c3R5bGUo
KS0+cHJlc2VydmVzM0QoKSkgfHwgc3R5bGUoKS0+cHJlc2VydmVzM0QoKSk7CiAgICAgaWYgKHJl
cGFpbnRDb250YWluZXIgPT0gdGhpcykKLSAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1cm4g
dHJhbnNmb3JtU3RhdGUubW92ZShhZGp1c3RPZmZzZXRGb3JTbmFwcGluZyhtb2RlLCBhZGp1c3Rl
ZE9mZnNldCksIHByZXNlcnZlM0QgPyBUcmFuc2Zvcm1TdGF0ZTo6QWNjdW11bGF0ZVRyYW5zZm9y
bSA6IFRyYW5zZm9ybVN0YXRlOjpGbGF0dGVuVHJhbnNmb3JtKTs7CiAKICAgICBpZiAoUmVuZGVy
VmlldyAqdiA9IHZpZXcoKSkgewogICAgICAgICBpZiAodi0+bGF5b3V0U3RhdGVFbmFibGVkKCkg
JiYgIXJlcGFpbnRDb250YWluZXIpIHsKICAgICAgICAgICAgIExheW91dFN0YXRlKiBsYXlvdXRT
dGF0ZSA9IHYtPmxheW91dFN0YXRlKCk7Ci0gICAgICAgICAgICBMYXlvdXRTaXplIG9mZnNldCA9
IGxheW91dFN0YXRlLT5tX3BhaW50T2Zmc2V0OworICAgICAgICAgICAgYWRqdXN0ZWRPZmZzZXQu
ZXhwYW5kKGxheW91dFN0YXRlLT5tX3BhaW50T2Zmc2V0KTsKICAgICAgICAgICAgIGlmIChzdHls
ZSgpLT5oYXNJbkZsb3dQb3NpdGlvbigpICYmIGxheWVyKCkpCi0gICAgICAgICAgICAgICAgb2Zm
c2V0ICs9IGxheWVyKCktPm9mZnNldEZvckluRmxvd1Bvc2l0aW9uKCk7Ci0gICAgICAgICAgICB0
cmFuc2Zvcm1TdGF0ZS5tb3ZlKG9mZnNldCk7CisgICAgICAgICAgICAgICAgYWRqdXN0ZWRPZmZz
ZXQgKz0gbGF5ZXIoKS0+b2Zmc2V0Rm9ySW5GbG93UG9zaXRpb24oKTsKKyAgICAgICAgICAgIHRy
YW5zZm9ybVN0YXRlLm1vdmUoYWRqdXN0ZWRPZmZzZXQpOwogICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICB9CiAgICAgfQogCi0gICAgYm9vbCBjb250YWluZXJTa2lwcGVkOwotICAgIFJlbmRl
ck9iamVjdCogbyA9IGNvbnRhaW5lcihyZXBhaW50Q29udGFpbmVyLCAmY29udGFpbmVyU2tpcHBl
ZCk7CiAgICAgaWYgKCFvKQotICAgICAgICByZXR1cm47CisgICAgICAgIHJldHVybiB0cmFuc2Zv
cm1TdGF0ZS5tb3ZlKGFkanVzdE9mZnNldEZvclNuYXBwaW5nKG1vZGUsIGFkanVzdGVkT2Zmc2V0
KSwgcHJlc2VydmUzRCA/IFRyYW5zZm9ybVN0YXRlOjpBY2N1bXVsYXRlVHJhbnNmb3JtIDogVHJh
bnNmb3JtU3RhdGU6OkZsYXR0ZW5UcmFuc2Zvcm0pOwogCiAgICAgaWYgKG1vZGUgJiBBcHBseUNv
bnRhaW5lckZsaXAgJiYgby0+aXNCb3goKSkgewogICAgICAgICBpZiAoby0+c3R5bGUoKS0+aXNG
bGlwcGVkQmxvY2tzV3JpdGluZ01vZGUoKSkgewotICAgICAgICAgICAgSW50UG9pbnQgY2VudGVy
UG9pbnQgPSByb3VuZGVkSW50UG9pbnQodHJhbnNmb3JtU3RhdGUubWFwcGVkUG9pbnQoKSk7Ci0g
ICAgICAgICAgICB0cmFuc2Zvcm1TdGF0ZS5tb3ZlKHRvUmVuZGVyQm94KG8pLT5mbGlwRm9yV3Jp
dGluZ01vZGVJbmNsdWRpbmdDb2x1bW5zKGNlbnRlclBvaW50KSAtIGNlbnRlclBvaW50KTsKKyAg
ICAgICAgICAgIEludFBvaW50IGNlbnRlclBvaW50ID0gcm91bmRlZEludFBvaW50KHRyYW5zZm9y
bVN0YXRlLm1hcHBlZFBvaW50KCkgKyBhZGp1c3RlZE9mZnNldCk7CisgICAgICAgICAgICBhZGp1
c3RlZE9mZnNldC5leHBhbmQodG9SZW5kZXJCb3gobyktPmZsaXBGb3JXcml0aW5nTW9kZUluY2x1
ZGluZ0NvbHVtbnMoY2VudGVyUG9pbnQpIC0gY2VudGVyUG9pbnQpOwogICAgICAgICB9CiAgICAg
ICAgIG1vZGUgJj0gfkFwcGx5Q29udGFpbmVyRmxpcDsKICAgICB9CiAKLSAgICBMYXlvdXRTaXpl
IGNvbnRhaW5lck9mZnNldCA9IG9mZnNldEZyb21Db250YWluZXIobywgcm91bmRlZExheW91dFBv
aW50KHRyYW5zZm9ybVN0YXRlLm1hcHBlZFBvaW50KCkpKTsKLSAgICBpZiAobW9kZSAmIFNuYXBP
ZmZzZXRGb3JUcmFuc2Zvcm1zKQotICAgICAgICBjb250YWluZXJPZmZzZXQgPSByb3VuZGVkSW50
U2l6ZShjb250YWluZXJPZmZzZXQpOwotCi0gICAgYm9vbCBwcmVzZXJ2ZTNEID0gbW9kZSAmIFVz
ZVRyYW5zZm9ybXMgJiYgKG8tPnN0eWxlKCktPnByZXNlcnZlczNEKCkgfHwgc3R5bGUoKS0+cHJl
c2VydmVzM0QoKSk7CisgICAgTGF5b3V0U2l6ZSBjb250YWluZXJPZmZzZXQgPSBvZmZzZXRGcm9t
Q29udGFpbmVyKG8sIHJvdW5kZWRMYXlvdXRQb2ludCh0cmFuc2Zvcm1TdGF0ZS5tYXBwZWRQb2lu
dCgpICsgYWRqdXN0ZWRPZmZzZXQpKTsKICAgICBpZiAobW9kZSAmIFVzZVRyYW5zZm9ybXMgJiYg
c2hvdWxkVXNlVHJhbnNmb3JtRnJvbUNvbnRhaW5lcihvKSkgewogICAgICAgICBUcmFuc2Zvcm1h
dGlvbk1hdHJpeCB0OwogICAgICAgICBnZXRUcmFuc2Zvcm1Gcm9tQ29udGFpbmVyKG8sIGNvbnRh
aW5lck9mZnNldCwgdCk7CiAgICAgICAgIHRyYW5zZm9ybVN0YXRlLmFwcGx5VHJhbnNmb3JtKHQs
IHByZXNlcnZlM0QgPyBUcmFuc2Zvcm1TdGF0ZTo6QWNjdW11bGF0ZVRyYW5zZm9ybSA6IFRyYW5z
Zm9ybVN0YXRlOjpGbGF0dGVuVHJhbnNmb3JtKTsKICAgICB9IGVsc2UKLSAgICAgICAgdHJhbnNm
b3JtU3RhdGUubW92ZShjb250YWluZXJPZmZzZXQud2lkdGgoKSwgY29udGFpbmVyT2Zmc2V0Lmhl
aWdodCgpLCBwcmVzZXJ2ZTNEID8gVHJhbnNmb3JtU3RhdGU6OkFjY3VtdWxhdGVUcmFuc2Zvcm0g
OiBUcmFuc2Zvcm1TdGF0ZTo6RmxhdHRlblRyYW5zZm9ybSk7CisgICAgICAgIGFkanVzdGVkT2Zm
c2V0LmV4cGFuZChjb250YWluZXJPZmZzZXQpOwogCiAgICAgaWYgKGNvbnRhaW5lclNraXBwZWQp
IHsKICAgICAgICAgLy8gVGhlcmUgY2FuJ3QgYmUgYSB0cmFuc2Zvcm0gYmV0d2VlbiByZXBhaW50
Q29udGFpbmVyIGFuZCBvLCBiZWNhdXNlIHRyYW5zZm9ybXMgY3JlYXRlIGNvbnRhaW5lcnMsIHNv
IGl0IHNob3VsZCBiZSBzYWZlCiAgICAgICAgIC8vIHRvIGp1c3Qgc3VidHJhY3QgdGhlIGRlbHRh
IGJldHdlZW4gdGhlIHJlcGFpbnRDb250YWluZXIgYW5kIG8uCi0gICAgICAgIExheW91dFNpemUg
Y29udGFpbmVyT2Zmc2V0ID0gcmVwYWludENvbnRhaW5lci0+b2Zmc2V0RnJvbUFuY2VzdG9yQ29u
dGFpbmVyKG8pOwotICAgICAgICB0cmFuc2Zvcm1TdGF0ZS5tb3ZlKC1jb250YWluZXJPZmZzZXQu
d2lkdGgoKSwgLWNvbnRhaW5lck9mZnNldC5oZWlnaHQoKSwgcHJlc2VydmUzRCA/IFRyYW5zZm9y
bVN0YXRlOjpBY2N1bXVsYXRlVHJhbnNmb3JtIDogVHJhbnNmb3JtU3RhdGU6OkZsYXR0ZW5UcmFu
c2Zvcm0pOworICAgICAgICBhZGp1c3RlZE9mZnNldC5leHBhbmQoLXJlcGFpbnRDb250YWluZXIt
Pm9mZnNldEZyb21BbmNlc3RvckNvbnRhaW5lcihvKSk7CisgICAgICAgIHRyYW5zZm9ybVN0YXRl
Lm1vdmUoYWRqdXN0ZWRPZmZzZXQsIHByZXNlcnZlM0QgPyBUcmFuc2Zvcm1TdGF0ZTo6QWNjdW11
bGF0ZVRyYW5zZm9ybSA6IFRyYW5zZm9ybVN0YXRlOjpGbGF0dGVuVHJhbnNmb3JtKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIG8tPm1hcExvY2FsVG9Db250YWluZXIocmVwYWludENv
bnRhaW5lciwgdHJhbnNmb3JtU3RhdGUsIG1vZGUsIHdhc0ZpeGVkKTsKKyAgICBvLT5tYXBMb2Nh
bFRvQ29udGFpbmVyKHJlcGFpbnRDb250YWluZXIsIHRyYW5zZm9ybVN0YXRlLCBtb2RlLCB3YXNG
aXhlZCwgYWRqdXN0ZWRPZmZzZXQpOwogfQogCiBjb25zdCBSZW5kZXJPYmplY3QqIFJlbmRlcklu
bGluZTo6cHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0
KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1hcCYgZ2VvbWV0cnlNYXApIGNvbnN0
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5oCShyZXZpc2lvbiAx
MzU3ODEpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmgJKHdvcmtp
bmcgY29weSkKQEAgLTEzOCw3ICsxMzgsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgTGF5b3V0
UmVjdCByZWN0V2l0aE91dGxpbmVGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QqIHJlcGFpbnRDb250YWluZXIsIExheW91dFVuaXQgb3V0bGluZVdpZHRoKSBjb25zdCBPVkVS
UklERTsKICAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZVJlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRl
ckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIExheW91dFJlY3QmLCBib29sIGZp
eGVkKSBjb25zdCBPVkVSUklERTsKIAotICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFp
bmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5z
Zm9ybVN0YXRlJiwgTWFwQ29vcmRpbmF0ZXNGbGFncyA9IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNu
YXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURF
OworICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVy
TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29vcmRp
bmF0ZXNGbGFncyA9IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1z
LCBib29sKiB3YXNGaXhlZCA9IDAsIGNvbnN0IExheW91dFNpemUmIGFjY3VtdWxhdGVkT2Zmc2V0
ID0gTGF5b3V0U2l6ZSgpKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGNvbnN0IFJlbmRl
ck9iamVjdCogcHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2Jq
ZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1hcCYpIGNvbnN0IE9WRVJSSURF
OwogCiAgICAgdmlydHVhbCBWaXNpYmxlUG9zaXRpb24gcG9zaXRpb25Gb3JQb2ludChjb25zdCBM
YXlvdXRQb2ludCYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVj
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVj
dC5jcHAJKHJldmlzaW9uIDEzNTc4MSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMDQxLDMyICsyMDQxLDMzIEBAIEZsb2F0
UG9pbnQgUmVuZGVyT2JqZWN0OjphYnNvbHV0ZVRvTG9jYWwKICAgICByZXR1cm4gdHJhbnNmb3Jt
U3RhdGUubGFzdFBsYW5hclBvaW50KCk7CiB9CiAKLXZvaWQgUmVuZGVyT2JqZWN0OjptYXBMb2Nh
bFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWlu
ZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFwQ29vcmRpbmF0ZXNGbGFncyBt
b2RlLCBib29sKiB3YXNGaXhlZCkgY29uc3QKK3ZvaWQgUmVuZGVyT2JqZWN0OjptYXBMb2NhbFRv
Q29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIs
IFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2Rl
LCBib29sKiB3YXNGaXhlZCwgY29uc3QgTGF5b3V0U2l6ZSYgYWNjdW11bGF0ZWRPZmZzZXQpIGNv
bnN0CiB7CisgICAgTGF5b3V0U2l6ZSBhZGp1c3RlZE9mZnNldCA9IGFjY3VtdWxhdGVkT2Zmc2V0
OwogICAgIGlmIChyZXBhaW50Q29udGFpbmVyID09IHRoaXMpCi0gICAgICAgIHJldHVybjsKKyAg
ICAgICAgcmV0dXJuIHRyYW5zZm9ybVN0YXRlLm1vdmUoYWRqdXN0T2Zmc2V0Rm9yU25hcHBpbmco
bW9kZSwgYWRqdXN0ZWRPZmZzZXQpKTsKIAogICAgIFJlbmRlck9iamVjdCogbyA9IHBhcmVudCgp
OwogICAgIGlmICghbykKLSAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1cm4gdHJhbnNmb3Jt
U3RhdGUubW92ZShhZGp1c3RPZmZzZXRGb3JTbmFwcGluZyhtb2RlLCBhZGp1c3RlZE9mZnNldCkp
OwogCiAgICAgLy8gRklYTUU6IHRoaXMgc2hvdWxkIGNhbGwgb2Zmc2V0RnJvbUNvbnRhaW5lciB0
byBzaGFyZSBjb2RlLCBidXQgSSdtIG5vdCBzdXJlIGl0J3MgZXZlciBjYWxsZWQuCiAgICAgTGF5
b3V0UG9pbnQgY2VudGVyUG9pbnQgPSByb3VuZGVkTGF5b3V0UG9pbnQodHJhbnNmb3JtU3RhdGUu
bWFwcGVkUG9pbnQoKSk7CiAgICAgaWYgKG1vZGUgJiBBcHBseUNvbnRhaW5lckZsaXAgJiYgby0+
aXNCb3goKSkgewogICAgICAgICBpZiAoby0+c3R5bGUoKS0+aXNGbGlwcGVkQmxvY2tzV3JpdGlu
Z01vZGUoKSkKLSAgICAgICAgICAgIHRyYW5zZm9ybVN0YXRlLm1vdmUodG9SZW5kZXJCb3gobykt
PmZsaXBGb3JXcml0aW5nTW9kZUluY2x1ZGluZ0NvbHVtbnMocm91bmRlZExheW91dFBvaW50KHRy
YW5zZm9ybVN0YXRlLm1hcHBlZFBvaW50KCkpKSAtIGNlbnRlclBvaW50KTsKKyAgICAgICAgICAg
IGFkanVzdGVkT2Zmc2V0LmV4cGFuZCh0b1JlbmRlckJveChvKS0+ZmxpcEZvcldyaXRpbmdNb2Rl
SW5jbHVkaW5nQ29sdW1ucyhyb3VuZGVkTGF5b3V0UG9pbnQodHJhbnNmb3JtU3RhdGUubWFwcGVk
UG9pbnQoKSkgKyBhZGp1c3RlZE9mZnNldCkgLSBjZW50ZXJQb2ludCk7CiAgICAgICAgIG1vZGUg
Jj0gfkFwcGx5Q29udGFpbmVyRmxpcDsKICAgICB9CiAKICAgICBMYXlvdXRTaXplIGNvbHVtbk9m
ZnNldDsKLSAgICBvLT5hZGp1c3RGb3JDb2x1bW5zKGNvbHVtbk9mZnNldCwgcm91bmRlZExheW91
dFBvaW50KHRyYW5zZm9ybVN0YXRlLm1hcHBlZFBvaW50KCkpKTsKKyAgICBvLT5hZGp1c3RGb3JD
b2x1bW5zKGNvbHVtbk9mZnNldCwgcm91bmRlZExheW91dFBvaW50KHRyYW5zZm9ybVN0YXRlLm1h
cHBlZFBvaW50KCkpICsgYWRqdXN0ZWRPZmZzZXQpOwogICAgIGlmICghY29sdW1uT2Zmc2V0Lmlz
WmVybygpKQotICAgICAgICB0cmFuc2Zvcm1TdGF0ZS5tb3ZlKGNvbHVtbk9mZnNldCk7CisgICAg
ICAgIGFkanVzdGVkT2Zmc2V0LmV4cGFuZChjb2x1bW5PZmZzZXQpOwogCiAgICAgaWYgKG8tPmhh
c092ZXJmbG93Q2xpcCgpKQotICAgICAgICB0cmFuc2Zvcm1TdGF0ZS5tb3ZlKC10b1JlbmRlckJv
eChvKS0+c2Nyb2xsZWRDb250ZW50T2Zmc2V0KCkpOworICAgICAgICBhZGp1c3RlZE9mZnNldC5l
eHBhbmQoLXRvUmVuZGVyQm94KG8pLT5zY3JvbGxlZENvbnRlbnRPZmZzZXQoKSk7CiAKLSAgICBv
LT5tYXBMb2NhbFRvQ29udGFpbmVyKHJlcGFpbnRDb250YWluZXIsIHRyYW5zZm9ybVN0YXRlLCBt
b2RlLCB3YXNGaXhlZCk7CisgICAgby0+bWFwTG9jYWxUb0NvbnRhaW5lcihyZXBhaW50Q29udGFp
bmVyLCB0cmFuc2Zvcm1TdGF0ZSwgbW9kZSwgd2FzRml4ZWQsIGFkanVzdGVkT2Zmc2V0KTsKIH0K
IAogY29uc3QgUmVuZGVyT2JqZWN0KiBSZW5kZXJPYmplY3Q6OnB1c2hNYXBwaW5nVG9Db250YWlu
ZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0b3JUb1N0b3BBdCwgUmVuZGVy
R2VvbWV0cnlNYXAmIGdlb21ldHJ5TWFwKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJPYmplY3QuaAkocmV2aXNpb24gMTM1NzQzKQorKysgU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC05MzEsNyArOTMxLDcg
QEAgcHVibGljOgogCiAgICAgLy8gTWFwIHBvaW50cyBhbmQgcXVhZHMgdGhyb3VnaCBlbGVtZW50
cywgcG90ZW50aWFsbHkgdmlhIDNkIHRyYW5zZm9ybXMuIFlvdSBzaG91bGQgbmV2ZXIgbmVlZCB0
byBjYWxsIHRoZXNlIGRpcmVjdGx5OyB1c2UKICAgICAvLyBsb2NhbFRvQWJzb2x1dGUvYWJzb2x1
dGVUb0xvY2FsIG1ldGhvZHMgaW5zdGVhZC4KLSAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0Nv
bnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBU
cmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5lckZsaXAs
IGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9D
b250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwg
VHJhbnNmb3JtU3RhdGUmLCBNYXBDb29yZGluYXRlc0ZsYWdzID0gQXBwbHlDb250YWluZXJGbGlw
LCBib29sKiB3YXNGaXhlZCA9IDAsIGNvbnN0IExheW91dFNpemUmIGFjY3VtdWxhdGVkT2Zmc2V0
ID0gTGF5b3V0U2l6ZSgpKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgbWFwQWJzb2x1dGVUb0xv
Y2FsUG9pbnQoTWFwQ29vcmRpbmF0ZXNGbGFncywgVHJhbnNmb3JtU3RhdGUmKSBjb25zdDsKIAog
ICAgIC8vIFB1c2hlcyBzdGF0ZSBvbnRvIFJlbmRlckdlb21ldHJ5TWFwIGFib3V0IGhvdyB0byBt
YXAgY29vcmRpbmF0ZXMgZnJvbSB0aGlzIHJlbmRlcmVyIHRvIGl0cyBjb250YWluZXIsIG9yIGFu
Y2VzdG9yVG9TdG9wQXQgKHdoaWNoZXZlciBpcyBlbmNvdW50ZXJlZCBmaXJzdCkuCkBAIC05NTcs
NiArOTU3LDExIEBAIHB1YmxpYzoKICAgICBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0gc2hv
dWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24oKSBjb25zdDsKIAogcHJvdGVjdGVkOgorICAgIExh
eW91dFNpemUgYWRqdXN0T2Zmc2V0Rm9yU25hcHBpbmcoTWFwQ29vcmRpbmF0ZXNGbGFncyBmbGFn
cywgY29uc3QgTGF5b3V0U2l6ZSYgb2Zmc2V0KSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJu
IChmbGFncyAmIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKSA/IHJvdW5kZWRJbnRTaXplKG9mZnNl
dCkgOiBvZmZzZXQ7CisgICAgfQorCiAgICAgaW5saW5lIGJvb2wgbGF5ZXJDcmVhdGlvbkFsbG93
ZWRGb3JTdWJ0cmVlKCkgY29uc3Q7CiAKICAgICAvLyBPdmVycmlkZXMgc2hvdWxkIGNhbGwgdGhl
IHN1cGVyY2xhc3MgYXQgdGhlIGVuZApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclZpZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJWaWV3LmNwcAkocmV2aXNpb24gMTM1NzgxKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMTAsMTMgKzIxMCwxNSBAQCB2b2lk
IFJlbmRlclZpZXc6OmxheW91dCgpCiAgICAgc2V0TmVlZHNMYXlvdXQoZmFsc2UpOwogfQogCi12
b2lkIFJlbmRlclZpZXc6Om1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRl
LCBNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAordm9pZCBS
ZW5kZXJWaWV3OjptYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFw
Q29vcmRpbmF0ZXNGbGFncyBtb2RlLCBib29sKiB3YXNGaXhlZCwgY29uc3QgTGF5b3V0U2l6ZSYg
YWNjdW11bGF0ZWRPZmZzZXQpIGNvbnN0CiB7CiAgICAgLy8gSWYgYSBjb250YWluZXIgd2FzIHNw
ZWNpZmllZCwgYW5kIHdhcyBub3QgMCBvciB0aGUgUmVuZGVyVmlldywKICAgICAvLyB0aGVuIHdl
IHNob3VsZCBoYXZlIGZvdW5kIGl0IGJ5IG5vdy4KICAgICBBU1NFUlRfQVJHKHJlcGFpbnRDb250
YWluZXIsICFyZXBhaW50Q29udGFpbmVyIHx8IHJlcGFpbnRDb250YWluZXIgPT0gdGhpcyk7CiAg
ICAgQVNTRVJUX1VOVVNFRCh3YXNGaXhlZCwgIXdhc0ZpeGVkIHx8ICp3YXNGaXhlZCA9PSAobW9k
ZSAmIElzRml4ZWQpKTsKIAorICAgIHRyYW5zZm9ybVN0YXRlLm1vdmUoKG1vZGUgJiBTbmFwT2Zm
c2V0Rm9yVHJhbnNmb3JtcykgPyByb3VuZGVkSW50U2l6ZShhY2N1bXVsYXRlZE9mZnNldCkgOiBh
Y2N1bXVsYXRlZE9mZnNldCk7CisKICAgICBpZiAoIXJlcGFpbnRDb250YWluZXIgJiYgbW9kZSAm
IFVzZVRyYW5zZm9ybXMgJiYgc2hvdWxkVXNlVHJhbnNmb3JtRnJvbUNvbnRhaW5lcigwKSkgewog
ICAgICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCB0OwogICAgICAgICBnZXRUcmFuc2Zvcm1Gcm9t
Q29udGFpbmVyKDAsIExheW91dFNpemUoKSwgdCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJWaWV3LmgJKHJldmlzaW9uIDEzNTc4MSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJWaWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTIyOCw3ICsyMjgsNyBAQCBwdWJs
aWM6CiAgICAgYm9vbCBoYXNSZW5kZXJDb3VudGVycygpIHsgcmV0dXJuIG1fcmVuZGVyQ291bnRl
ckNvdW50OyB9CiAKIHByb3RlY3RlZDoKLSAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRh
aW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFu
c2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5lckZsaXAgfCBT
bmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXll
ck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3Jk
aW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jt
cywgYm9vbCogd2FzRml4ZWQgPSAwLCBjb25zdCBMYXlvdXRTaXplJiBhY2N1bXVsYXRlZE9mZnNl
dCA9IExheW91dFNpemUoKSkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBSZW5k
ZXJPYmplY3QqIHB1c2hNYXBwaW5nVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9i
amVjdCogYW5jZXN0b3JUb1N0b3BBdCwgUmVuZGVyR2VvbWV0cnlNYXAmKSBjb25zdCBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIHZvaWQgbWFwQWJzb2x1dGVUb0xvY2FsUG9pbnQoTWFwQ29vcmRpbmF0
ZXNGbGFncywgVHJhbnNmb3JtU3RhdGUmKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgcmVxdWly
ZXNDb2x1bW5zKGludCBkZXNpcmVkQ29sdW1uQ291bnQpIGNvbnN0IE9WRVJSSURFOwpJbmRleDog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWduT2JqZWN0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ZvcmVp
Z25PYmplY3QuY3BwCShyZXZpc2lvbiAxMzU3ODEpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR0ZvcmVpZ25PYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTMs
OSArMTkzLDkgQEAgYm9vbCBSZW5kZXJTVkdGb3JlaWduT2JqZWN0Ojpub2RlQXRQb2ludAogICAg
IHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBSZW5kZXJTVkdGb3JlaWduT2JqZWN0OjptYXBMb2Nh
bFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWlu
ZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFwQ29vcmRpbmF0ZXNGbGFncyBt
b2RlLCBib29sKiB3YXNGaXhlZCkgY29uc3QKK3ZvaWQgUmVuZGVyU1ZHRm9yZWlnbk9iamVjdDo6
bWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50
Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIE1hcENvb3JkaW5hdGVz
RmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQsIGNvbnN0IExheW91dFNpemUmIGFjY3VtdWxhdGVk
T2Zmc2V0KSBjb25zdAogewotICAgIFNWR1JlbmRlclN1cHBvcnQ6Om1hcExvY2FsVG9Db250YWlu
ZXIodGhpcywgcmVwYWludENvbnRhaW5lciwgdHJhbnNmb3JtU3RhdGUsIG1vZGUgJiBTbmFwT2Zm
c2V0Rm9yVHJhbnNmb3Jtcywgd2FzRml4ZWQpOworICAgIFNWR1JlbmRlclN1cHBvcnQ6Om1hcExv
Y2FsVG9Db250YWluZXIodGhpcywgcmVwYWludENvbnRhaW5lciwgdHJhbnNmb3JtU3RhdGUsIG1v
ZGUsIHdhc0ZpeGVkLCBhY2N1bXVsYXRlZE9mZnNldCk7CiB9CiAKIGNvbnN0IFJlbmRlck9iamVj
dCogUmVuZGVyU1ZHRm9yZWlnbk9iamVjdDo6cHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBS
ZW5kZXJMYXllck1vZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1h
cCYgZ2VvbWV0cnlNYXApIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR0ZvcmVpZ25PYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ZvcmVpZ25PYmplY3QuaAkocmV2aXNpb24gMTM1NzgxKQor
KysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWduT2JqZWN0LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTU0LDcgKzU0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9v
bCBub2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYsIEhpdFRlc3RSZXN1bHQmLCBjb25z
dCBIaXRUZXN0TG9jYXRpb24mIGxvY2F0aW9uSW5Db250YWluZXIsIGNvbnN0IExheW91dFBvaW50
JiBhY2N1bXVsYXRlZE9mZnNldCwgSGl0VGVzdEFjdGlvbikgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCBib29sIGlzU1ZHRm9yZWlnbk9iamVjdCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAotICAg
IHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxP
YmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29vcmRpbmF0ZXNG
bGFncyA9IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29s
KiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBtYXBMb2Nh
bFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWlu
ZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29vcmRpbmF0ZXNGbGFncyA9IEFwcGx5Q29udGFpbmVy
RmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCA9IDAsIGNvbnN0
IExheW91dFNpemUmIGFjY3VtdWxhdGVkT2Zmc2V0ID0gTGF5b3V0U2l6ZSgpKSBjb25zdCBPVkVS
UklERTsKICAgICB2aXJ0dWFsIGNvbnN0IFJlbmRlck9iamVjdCogcHVzaE1hcHBpbmdUb0NvbnRh
aW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5k
ZXJHZW9tZXRyeU1hcCYpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXROZWVk
c1RyYW5zZm9ybVVwZGF0ZSgpIHsgbV9uZWVkc1RyYW5zZm9ybVVwZGF0ZSA9IHRydWU7IH0KIApJ
bmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5l
LmNwcAkocmV2aXNpb24gMTM1NzgxKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdJbmxpbmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03OSw5ICs3OSw5IEBAIHZvaWQg
UmVuZGVyU1ZHSW5saW5lOjpjb21wdXRlRmxvYXRSZWN0Rm8KICAgICBTVkdSZW5kZXJTdXBwb3J0
Ojpjb21wdXRlRmxvYXRSZWN0Rm9yUmVwYWludCh0aGlzLCByZXBhaW50Q29udGFpbmVyLCByZXBh
aW50UmVjdCwgZml4ZWQpOwogfQogCi12b2lkIFJlbmRlclNWR0lubGluZTo6bWFwTG9jYWxUb0Nv
bnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBU
cmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwg
Ym9vbCogd2FzRml4ZWQpIGNvbnN0Cit2b2lkIFJlbmRlclNWR0lubGluZTo6bWFwTG9jYWxUb0Nv
bnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBU
cmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwg
Ym9vbCogd2FzRml4ZWQsIGNvbnN0IExheW91dFNpemUmIGFjY3VtdWxhdGVkT2Zmc2V0KSBjb25z
dAogewotICAgIFNWR1JlbmRlclN1cHBvcnQ6Om1hcExvY2FsVG9Db250YWluZXIodGhpcywgcmVw
YWludENvbnRhaW5lciwgdHJhbnNmb3JtU3RhdGUsIG1vZGUgJiBTbmFwT2Zmc2V0Rm9yVHJhbnNm
b3Jtcywgd2FzRml4ZWQpOworICAgIFNWR1JlbmRlclN1cHBvcnQ6Om1hcExvY2FsVG9Db250YWlu
ZXIodGhpcywgcmVwYWludENvbnRhaW5lciwgdHJhbnNmb3JtU3RhdGUsIG1vZGUsIHdhc0ZpeGVk
LCBhY2N1bXVsYXRlZE9mZnNldCk7CiB9CiAKIGNvbnN0IFJlbmRlck9iamVjdCogUmVuZGVyU1ZH
SW5saW5lOjpwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJiBnZW9tZXRyeU1hcCkgY29u
c3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxp
bmUuaAkocmV2aXNpb24gMTM1NzgxKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdJbmxpbmUuaAkod29ya2luZyBjb3B5KQpAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6
CiAKICAgICB2aXJ0dWFsIExheW91dFJlY3QgY2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQo
Y29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lcikgY29uc3QgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50KGNvbnN0
IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIEZsb2F0UmVjdCYsIGJv
b2wgZml4ZWQgPSBmYWxzZSkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIG1hcExv
Y2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRh
aW5lciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBDb29yZGluYXRlc0ZsYWdzID0gQXBwbHlDb250YWlu
ZXJGbGlwIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29u
c3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoY29uc3Qg
UmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUm
LCBNYXBDb29yZGluYXRlc0ZsYWdzID0gQXBwbHlDb250YWluZXJGbGlwIHwgU25hcE9mZnNldEZv
clRyYW5zZm9ybXMsIGJvb2wqIHdhc0ZpeGVkID0gMCwgY29uc3QgTGF5b3V0U2l6ZSYgYWNjdW11
bGF0ZWRPZmZzZXQgPSBMYXlvdXRTaXplKCkpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwg
Y29uc3QgUmVuZGVyT2JqZWN0KiBwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxh
eWVyTW9kZWxPYmplY3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJikgY29u
c3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGFic29sdXRlUXVhZHMoVmVjdG9yPEZsb2F0
UXVhZD4mLCBib29sKiB3YXNGaXhlZCkgY29uc3Q7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwCShyZXZpc2lv
biAxMzU3ODEpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVs
T2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTcsOSArNTcsOSBAQCB2b2lkIFJlbmRlclNW
R01vZGVsT2JqZWN0Ojpjb21wdXRlRmxvYXRSCiAgICAgU1ZHUmVuZGVyU3VwcG9ydDo6Y29tcHV0
ZUZsb2F0UmVjdEZvclJlcGFpbnQodGhpcywgcmVwYWludENvbnRhaW5lciwgcmVwYWludFJlY3Qs
IGZpeGVkKTsKIH0KIAotdm9pZCBSZW5kZXJTVkdNb2RlbE9iamVjdDo6bWFwTG9jYWxUb0NvbnRh
aW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFu
c2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwgYm9v
bCogd2FzRml4ZWQpIGNvbnN0Cit2b2lkIFJlbmRlclNWR01vZGVsT2JqZWN0OjptYXBMb2NhbFRv
Q29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIs
IFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2Rl
LCBib29sKiB3YXNGaXhlZCwgY29uc3QgTGF5b3V0U2l6ZSYgYWNjdW11bGF0ZWRPZmZzZXQpIGNv
bnN0CiB7Ci0gICAgU1ZHUmVuZGVyU3VwcG9ydDo6bWFwTG9jYWxUb0NvbnRhaW5lcih0aGlzLCBy
ZXBhaW50Q29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwgbW9kZSAmIFNuYXBPZmZzZXRGb3JUcmFu
c2Zvcm1zLCB3YXNGaXhlZCk7CisgICAgU1ZHUmVuZGVyU3VwcG9ydDo6bWFwTG9jYWxUb0NvbnRh
aW5lcih0aGlzLCByZXBhaW50Q29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwgbW9kZSwgd2FzRml4
ZWQsIGFjY3VtdWxhdGVkT2Zmc2V0KTsKIH0KIAogY29uc3QgUmVuZGVyT2JqZWN0KiBSZW5kZXJT
VkdNb2RlbE9iamVjdDo6cHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1v
ZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1hcCYgZ2VvbWV0cnlN
YXApIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01v
ZGVsT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdNb2RlbE9iamVjdC5oCShyZXZpc2lvbiAxMzU3ODEpCisrKyBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAg
LTU4LDcgKzU4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBhYnNvbHV0ZVJlY3RzKFZl
Y3RvcjxJbnRSZWN0PiYsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCkgY29u
c3Q7CiAgICAgdmlydHVhbCB2b2lkIGFic29sdXRlUXVhZHMoVmVjdG9yPEZsb2F0UXVhZD4mLCBi
b29sKiB3YXNGaXhlZCkgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRh
aW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFu
c2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5lckZsaXAgfCBT
bmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXll
ck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3Jk
aW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jt
cywgYm9vbCogd2FzRml4ZWQgPSAwLCBjb25zdCBMYXlvdXRTaXplJiBhY2N1bXVsYXRlZE9mZnNl
dCA9IExheW91dFNpemUoKSkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBSZW5k
ZXJPYmplY3QqIHB1c2hNYXBwaW5nVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9i
amVjdCogYW5jZXN0b3JUb1N0b3BBdCwgUmVuZGVyR2VvbWV0cnlNYXAmKSBjb25zdCBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIHZvaWQgc3R5bGVXaWxsQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29u
c3QgUmVuZGVyU3R5bGUqIG5ld1N0eWxlKTsKICAgICB2aXJ0dWFsIHZvaWQgc3R5bGVEaWRDaGFu
Z2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpOwpJbmRleDog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwCShyZXZp
c2lvbiAxMzU3ODEpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jv
b3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MDEsMTIgKzQwMSwxMiBAQCB2b2lkIFJlbmRlclNW
R1Jvb3Q6OmNvbXB1dGVGbG9hdFJlY3RGb3JSCiAvLyBUaGlzIG1ldGhvZCBleHBlY3RzIGxvY2Fs
IENTUyBib3ggY29vcmRpbmF0ZXMuCiAvLyBDYWxsZXJzIHdpdGggbG9jYWwgU1ZHIHZpZXdwb3J0
IGNvb3JkaW5hdGVzIHNob3VsZCBmaXJzdCBhcHBseSB0aGUgbG9jYWxUb0JvcmRlckJveFRyYW5z
Zm9ybQogLy8gdG8gY29udmVydCBmcm9tIFNWRyB2aWV3cG9ydCBjb29yZGluYXRlcyB0byBsb2Nh
bCBDU1MgYm94IGNvb3JkaW5hdGVzLgotdm9pZCBSZW5kZXJTVkdSb290OjptYXBMb2NhbFRvQ29u
dGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRy
YW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBi
b29sKiB3YXNGaXhlZCkgY29uc3QKK3ZvaWQgUmVuZGVyU1ZHUm9vdDo6bWFwTG9jYWxUb0NvbnRh
aW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFu
c2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwgYm9v
bCogd2FzRml4ZWQsIGNvbnN0IExheW91dFNpemUmIGFjY3VtdWxhdGVkT2Zmc2V0KSBjb25zdAog
ewogICAgIEFTU0VSVChtb2RlICYgfklzRml4ZWQpOyAvLyBXZSBzaG91bGQgaGF2ZSBubyBmaXhl
ZCBjb250ZW50IGluIHRoZSBTVkcgcmVuZGVyaW5nIHRyZWUuCiAgICAgQVNTRVJUKG1vZGUgJiBV
c2VUcmFuc2Zvcm1zKTsgLy8gbWFwcGluZyBhIHBvaW50IHRocm91Z2ggU1ZHIHcvbyByZXNwZWN0
aW5nIHRyYXNuZm9ybXMgaXMgdXNlbGVzcy4KIAotICAgIFJlbmRlclJlcGxhY2VkOjptYXBMb2Nh
bFRvQ29udGFpbmVyKHJlcGFpbnRDb250YWluZXIsIHRyYW5zZm9ybVN0YXRlLCBtb2RlIHwgQXBw
bHlDb250YWluZXJGbGlwLCB3YXNGaXhlZCk7CisgICAgUmVuZGVyUmVwbGFjZWQ6Om1hcExvY2Fs
VG9Db250YWluZXIocmVwYWludENvbnRhaW5lciwgdHJhbnNmb3JtU3RhdGUsIG1vZGUgfCBBcHBs
eUNvbnRhaW5lckZsaXAsIHdhc0ZpeGVkLCBhY2N1bXVsYXRlZE9mZnNldCk7CiB9CiAKIGNvbnN0
IFJlbmRlck9iamVjdCogUmVuZGVyU1ZHUm9vdDo6cHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25z
dCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5kZXJHZW9tZXRy
eU1hcCYgZ2VvbWV0cnlNYXApIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR1Jvb3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR1Jvb3QuaAkocmV2aXNpb24gMTM1NzgxKQorKysgU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmgJKHdvcmtpbmcgY29weSkKQEAgLTEwMyw3
ICsxMDMsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBjbGlwcGVkT3ZlcmZs
b3dSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29u
dGFpbmVyKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZUZsb2F0UmVj
dEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5l
ciwgRmxvYXRSZWN0JiByZXBhaW50UmVjdCwgYm9vbCBmaXhlZCkgY29uc3QgT1ZFUlJJREU7CiAK
LSAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1v
ZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5h
dGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jtcywg
Ym9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbWFw
TG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29u
dGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRh
aW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCogd2FzRml4ZWQgPSAwLCBj
b25zdCBMYXlvdXRTaXplJiBhY2N1bXVsYXRlZE9mZnNldCA9IExheW91dFNpemUoKSkgY29uc3Qg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBSZW5kZXJPYmplY3QqIHB1c2hNYXBwaW5nVG9D
b250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0b3JUb1N0b3BBdCwg
UmVuZGVyR2VvbWV0cnlNYXAmKSBjb25zdCBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgYm9vbCBj
YW5CZVNlbGVjdGlvbkxlYWYoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQpJbmRleDogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuY3BwCShyZXZpc2lvbiAx
MzU3ODEpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xMTEsOSArMTExLDkgQEAgdm9pZCBSZW5kZXJTVkdUZXh0Ojpj
b21wdXRlRmxvYXRSZWN0Rm9yUgogICAgIFNWR1JlbmRlclN1cHBvcnQ6OmNvbXB1dGVGbG9hdFJl
Y3RGb3JSZXBhaW50KHRoaXMsIHJlcGFpbnRDb250YWluZXIsIHJlcGFpbnRSZWN0LCBmaXhlZCk7
CiB9CiAKLXZvaWQgUmVuZGVyU1ZHVGV4dDo6bWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5k
ZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJh
bnNmb3JtU3RhdGUsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQpIGNv
bnN0Cit2b2lkIFJlbmRlclNWR1RleHQ6Om1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5z
Zm9ybVN0YXRlLCBNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUsIGJvb2wqIHdhc0ZpeGVkLCBjb25z
dCBMYXlvdXRTaXplJiBhY2N1bXVsYXRlZE9mZnNldCkgY29uc3QKIHsKLSAgICBTVkdSZW5kZXJT
dXBwb3J0OjptYXBMb2NhbFRvQ29udGFpbmVyKHRoaXMsIHJlcGFpbnRDb250YWluZXIsIHRyYW5z
Zm9ybVN0YXRlLCBtb2RlICYgU25hcE9mZnNldEZvclRyYW5zZm9ybXMsIHdhc0ZpeGVkKTsKKyAg
ICBTVkdSZW5kZXJTdXBwb3J0OjptYXBMb2NhbFRvQ29udGFpbmVyKHRoaXMsIHJlcGFpbnRDb250
YWluZXIsIHRyYW5zZm9ybVN0YXRlLCBtb2RlLCB3YXNGaXhlZCwgYWNjdW11bGF0ZWRPZmZzZXQp
OwogfQogCiBjb25zdCBSZW5kZXJPYmplY3QqIFJlbmRlclNWR1RleHQ6OnB1c2hNYXBwaW5nVG9D
b250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0b3JUb1N0b3BBdCwg
UmVuZGVyR2VvbWV0cnlNYXAmIGdlb21ldHJ5TWFwKSBjb25zdApJbmRleDogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmgJKHJldmlzaW9uIDEzNTc4MSkKKysr
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5oCSh3b3JraW5nIGNv
cHkpCkBAIC03NSw3ICs3NSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVS
ZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFp
bmVyLCBMYXlvdXRSZWN0JiwgYm9vbCBmaXhlZCA9IGZhbHNlKSBjb25zdCBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIHZvaWQgY29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5
ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgRmxvYXRSZWN0JiwgYm9vbCBmaXhlZCA9
IGZhbHNlKSBjb25zdCBPVkVSUklERTsKIAotICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29u
dGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRy
YW5zZm9ybVN0YXRlJiwgTWFwQ29vcmRpbmF0ZXNGbGFncyA9IEFwcGx5Q29udGFpbmVyRmxpcCB8
IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJS
SURFOworICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxh
eWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29v
cmRpbmF0ZXNGbGFncyA9IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zv
cm1zLCBib29sKiB3YXNGaXhlZCA9IDAsIGNvbnN0IExheW91dFNpemUmIGFjY3VtdWxhdGVkT2Zm
c2V0ID0gTGF5b3V0U2l6ZSgpKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGNvbnN0IFJl
bmRlck9iamVjdCogcHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVs
T2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1hcCYpIGNvbnN0IE9WRVJS
SURFOwogICAgIHZpcnR1YWwgdm9pZCBhZGRDaGlsZChSZW5kZXJPYmplY3QqIGNoaWxkLCBSZW5k
ZXJPYmplY3QqIGJlZm9yZUNoaWxkID0gMCk7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZUNoaWxk
KFJlbmRlck9iamVjdCopIE9WRVJSSURFOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuY3BwCShyZXZpc2lvbiAxMzU3ODEpCisrKyBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC04NCw3ICs4NCw3IEBAIHZvaWQgU1ZHUmVuZGVyU3VwcG9ydDo6Y29tcHV0ZUZs
b2F0UmVjdEYKICAgICBvYmplY3QtPnBhcmVudCgpLT5jb21wdXRlRmxvYXRSZWN0Rm9yUmVwYWlu
dChyZXBhaW50Q29udGFpbmVyLCByZXBhaW50UmVjdCwgZml4ZWQpOwogfQogCi12b2lkIFNWR1Jl
bmRlclN1cHBvcnQ6Om1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyT2JqZWN0KiBvYmpl
Y3QsIGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5z
Zm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgYm9vbCBzbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jtcywg
Ym9vbCogd2FzRml4ZWQpCit2b2lkIFNWR1JlbmRlclN1cHBvcnQ6Om1hcExvY2FsVG9Db250YWlu
ZXIoY29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3QsIGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgYm9v
bCBzbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCogd2FzRml4ZWQsIGNvbnN0IExheW91dFNp
emUmIGFjY3VtdWxhdGVkT2Zmc2V0KQogewogICAgIHRyYW5zZm9ybVN0YXRlLmFwcGx5VHJhbnNm
b3JtKG9iamVjdC0+bG9jYWxUb1BhcmVudFRyYW5zZm9ybSgpKTsKIApAQCAtOTksNyArOTksNyBA
QCB2b2lkIFNWR1JlbmRlclN1cHBvcnQ6Om1hcExvY2FsVG9Db250YWluCiAgICAgTWFwQ29vcmRp
bmF0ZXNGbGFncyBtb2RlID0gVXNlVHJhbnNmb3JtczsKICAgICBpZiAoc25hcE9mZnNldEZvclRy
YW5zZm9ybXMpCiAgICAgICAgIG1vZGUgfD0gU25hcE9mZnNldEZvclRyYW5zZm9ybXM7Ci0gICAg
cGFyZW50LT5tYXBMb2NhbFRvQ29udGFpbmVyKHJlcGFpbnRDb250YWluZXIsIHRyYW5zZm9ybVN0
YXRlLCBtb2RlLCB3YXNGaXhlZCk7CisgICAgcGFyZW50LT5tYXBMb2NhbFRvQ29udGFpbmVyKHJl
cGFpbnRDb250YWluZXIsIHRyYW5zZm9ybVN0YXRlLCBtb2RlLCB3YXNGaXhlZCwgYWNjdW11bGF0
ZWRPZmZzZXQpOwogfQogCiBjb25zdCBSZW5kZXJPYmplY3QqIFNWR1JlbmRlclN1cHBvcnQ6OnB1
c2hNYXBwaW5nVG9Db250YWluZXIoY29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3QsIGNvbnN0IFJl
bmRlckxheWVyTW9kZWxPYmplY3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFw
JiBnZW9tZXRyeU1hcCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVu
ZGVyU3VwcG9ydC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
U1ZHUmVuZGVyU3VwcG9ydC5oCShyZXZpc2lvbiAxMzU3ODEpCisrKyBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuaAkod29ya2luZyBjb3B5KQpAQCAtNjgsNyAr
NjgsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIEZsb2F0UmVjdCByZXBhaW50UmVjdEZvclJlbmRl
cmVySW5Mb2NhbENvb3JkaW5hdGVzRXhjbHVkaW5nU1ZHU2hhZG93KGNvbnN0IFJlbmRlck9iamVj
dCopOwogICAgIHN0YXRpYyBMYXlvdXRSZWN0IGNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50
KGNvbnN0IFJlbmRlck9iamVjdCosIGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFp
bnRDb250YWluZXIpOwogICAgIHN0YXRpYyB2b2lkIGNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50
KGNvbnN0IFJlbmRlck9iamVjdCosIGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFp
bnRDb250YWluZXIsIEZsb2F0UmVjdCYsIGJvb2wgZml4ZWQpOwotICAgIHN0YXRpYyB2b2lkIG1h
cExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyT2JqZWN0KiwgY29uc3QgUmVuZGVyTGF5ZXJN
b2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBib29sIHNuYXBP
ZmZzZXRGb3JUcmFuc2Zvcm1zID0gdHJ1ZSwgYm9vbCogd2FzRml4ZWQgPSAwKTsKKyAgICBzdGF0
aWMgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlck9iamVjdCosIGNvbnN0IFJl
bmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwg
Ym9vbCBzbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcyA9IHRydWUsIGJvb2wqIHdhc0ZpeGVkID0gMCwg
Y29uc3QgTGF5b3V0U2l6ZSYgYWNjdW11bGF0ZWRPZmZzZXQgPSBMYXlvdXRTaXplKCkpOwogICAg
IHN0YXRpYyBjb25zdCBSZW5kZXJPYmplY3QqIHB1c2hNYXBwaW5nVG9Db250YWluZXIoY29uc3Qg
UmVuZGVyT2JqZWN0KiwgY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0b3JUb1N0
b3BBdCwgUmVuZGVyR2VvbWV0cnlNYXAmKTsKICAgICBzdGF0aWMgYm9vbCBjaGVja0ZvclNWR1Jl
cGFpbnREdXJpbmdMYXlvdXQoUmVuZGVyT2JqZWN0Kik7CiAKSW5kZXg6IExheW91dFRlc3RzL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDEz
NTc4MSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDE3IEBACisyMDEyLTExLTI4ICBMZXZpIFdlaW50cmF1YiAgPGxldml3QGNocm9taXVtLm9yZz4K
KworICAgICAgICBQcm9wZXJseSBtaXJyb3IgcGFpbnQncyBwaXhlbCBzbmFwcGluZyB3aGVuIG1h
cHBpbmcgY29vcmRpbmF0ZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDE3NzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBVcGRhdGUgdGhlIHN1Yi1waXhlbC1pZnJhbWUtY29weS1vbi1zY3JvbGwgdGVz
dCB0byBhbHNvIHRlc3QgYSBkZWVwbHktbmVzdGVkIGlmcmFtZSB0byBlbnN1cmUKKyAgICAgICAg
d2UncmUgcHJvcGVybHkgcGl4ZWwgc25hcHBpbmcgbWFwcGVkIGNvb3JkaW5hdGVzLgorCisgICAg
ICAgICogZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC5odG1s
OgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9mYXN0L3N1Yi1waXhlbC9zdWItcGl4
ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDEyLTExLTI2ICBSb2JlcnQgS3JvZWdl
ciAgPHJqa3JvZWdlQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIGdhcmRlbmlu
ZzogY3NzMy9maWx0ZXJzL2N1c3RvbS9jdXN0b20tZmlsdGVyLXRyYW5zZm9ybXMtYW5pbWF0aW9u
Lmh0bWwKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1pZnJhbWUt
Y29weS1vbi1zY3JvbGwuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3N1Yi1w
aXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLmh0bWwJKHJldmlzaW9uIDEzNTc4
MSkKKysrIExheW91dFRlc3RzL2Zhc3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1pZnJhbWUtY29weS1v
bi1zY3JvbGwuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMiwxMCArMiwxMiBAQAogPGh0bWw+CiA8
aGVhZD4KIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+Ci0uY29udGFpbmVy
IHsKLSAgICBwb3NpdGlvbjogYWJzb2x1dGU7Cisuc3VicGl4ZWxQdXNoZXIgeworICAgIHBvc2l0
aW9uOiByZWxhdGl2ZTsKKyAgICB0b3A6IDAuNHB4OwogICAgIHBhZGRpbmc6IDEwLjNweDsKICAg
ICB6LWluZGV4OiAxOworICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKIH0KIDwvc3R5bGU+CiA8
c2NyaXB0IHNyYz0iLi4vcmVwYWludC9yZXNvdXJjZXMvcmVwYWludC5qcyIgdHlwZT0idGV4dC9q
YXZhc2NyaXB0Ij48L3NjcmlwdD4KQEAgLTEzLDI2ICsxNSw0NiBAQAogaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQogICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKIAotZnVuY3Rpb24gc2V0dXBJ
ZnJhbWUoKSB7Ci0gIHZhciBzdWJEb2N1bWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdp
ZnJhbWUnKS5jb250ZW50V2luZG93LmRvY3VtZW50OwotICBzdWJEb2N1bWVudC5vcGVuKCd0ZXh0
L2h0bWwnLCAncmVwbGFjZScpOwotICBzdWJEb2N1bWVudC53cml0ZSgiPCFET0NUWVBFIGh0bWw+
XG48aHRtbD48Ym9keSBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6IHNpbHZlcjtoZWlnaHQ6IDEw
MDBweDtcIj48L2JvZHk+IikKLSAgc3ViRG9jdW1lbnQuY2xvc2UoKTsKK2Z1bmN0aW9uIHNldHVw
SWZyYW1lcygpIHsKKyAgc2V0dXBJZnJhbWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lmcmFt
ZTEnKS5jb250ZW50V2luZG93LmRvY3VtZW50KTsKKyAgc2V0dXBJZnJhbWUoZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2lmcmFtZTInKS5jb250ZW50V2luZG93LmRvY3VtZW50KTsKK30KKworZnVu
Y3Rpb24gc2V0dXBJZnJhbWUoaWZyYW1lKSB7CisgIGlmcmFtZS5vcGVuKCd0ZXh0L2h0bWwnLCAn
cmVwbGFjZScpOworICBpZnJhbWUud3JpdGUoIjwhRE9DVFlQRSBodG1sPlxuPGh0bWw+PGJvZHkg
c3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiBzaWx2ZXI7aGVpZ2h0OiAxMDAwcHg7XCI+PC9ib2R5
PiIpOworICBpZnJhbWUuY2xvc2UoKTsKIH0KIAogZnVuY3Rpb24gcmVwYWludFRlc3QoKSB7Ci0g
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpZnJhbWUnKS5jb250ZW50V2luZG93LnNjcm9sbFRv
KDAsIDEwKTsKKyAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lmcmFtZTEnKS5jb250ZW50V2lu
ZG93LnNjcm9sbFRvKDAsIDEwKTsKKyAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lmcmFtZTIn
KS5jb250ZW50V2luZG93LnNjcm9sbFRvKDAsIDEwKTsKICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQogICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogfQogPC9zY3JpcHQ+CiA8L2hlYWQ+Ci08
Ym9keSBvbmxvYWQ9InNldHVwSWZyYW1lKCk7cnVuUmVwYWludFRlc3QoKSI+Ci0gIDxwPlRoZSBp
ZnJhbWUgYmVsb3cgc2hvdWxkIHJlbWFpbiBncmV5IHdoZW4gc2Nyb2xsaW5nLjwvcD4KLSAgPGRp
diBjbGFzcz0iY29udGFpbmVyIj4KLSAgICA8aWZyYW1lIGlkPSJpZnJhbWUiICBzdHlsZT0id2lk
dGg6IDMwMHB4OyBoZWlnaHQ6IDIwMHB4OyI+PC9pZnJhbWU+Cis8Ym9keSBvbmxvYWQ9InNldHVw
SWZyYW1lcygpO3J1blJlcGFpbnRUZXN0KCkiPgorICA8cD5UaGUgaWZyYW1lcyBiZWxvdyBzaG91
bGQgcmVtYWluIGdyZXkgd2hlbiBzY3JvbGxpbmcuPC9wPgorICA8ZGl2PgorICAgIDxkaXYgY2xh
c3M9InN1YnBpeGVsUHVzaGVyIj4KKyAgICAgIDxpZnJhbWUgaWQ9ImlmcmFtZTEiICBzdHlsZT0i
d2lkdGg6IDE1MHB4OyBoZWlnaHQ6IDIwMHB4OyI+PC9pZnJhbWU+CisgICAgPC9kaXY+CisgICAg
PGRpdiBjbGFzcz0ic3VicGl4ZWxQdXNoZXIiPgorICAgICAgPGRpdiBjbGFzcz0ic3VicGl4ZWxQ
dXNoZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJzdWJwaXhlbFB1c2hlciI+CisgICAgICAgICAg
PGRpdiBjbGFzcz0ic3VicGl4ZWxQdXNoZXIiPgorICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3Vi
cGl4ZWxQdXNoZXIiPgorICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJwaXhlbFB1c2hlciI+
CisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3VicGl4ZWxQdXNoZXIiPgorICAgICAgICAg
ICAgICAgICAgPGlmcmFtZSBpZD0iaWZyYW1lMiIgIHN0eWxlPSJ3aWR0aDogMTUwcHg7IGhlaWdo
dDogMjAwcHg7Ij48L2lmcmFtZT4KKyAgICAgICAgICAgICAgICA8L2Rpdj4gICAgICAgICAgICAg
ICAgCisgICAgICAgICAgICAgIDwvZGl2PgorICAgICAgICAgICAgPC9kaXY+CisgICAgICAgICAg
PC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgICAgPC9kaXY+CisgICAgPC9kaXY+CiAgIDwvZGl2
PgotICA8L2Rpdj4KLQogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0td2luL2Zhc3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1pZnJhbWUtY29weS1vbi1z
Y3JvbGwtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtLXdpbi9mYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xs
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTM1NzgxKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0td2luL2Zhc3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1pZnJhbWUtY29weS1vbi1zY3Jv
bGwtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDE3ICsxLDQ4IEBACiBsYXllciBh
dCAoMCwwKSBzaXplIDgwMHg2MDAKICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAK
LWxheWVyIGF0ICgwLDApIHNpemUgODAweDUyCi0gIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCww
KSBzaXplIDgwMHg1MgotICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDE2KSBzaXplIDc4NHgy
MAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NDA5CisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAo
MCwwKSBzaXplIDgwMHg0MDkKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCwxNikgc2l6ZSA3
ODR4Mzg1CiAgICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMCkgc2l6ZSA3ODR4MjAKLSAgICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMzE1eDE5Ci0gICAgICAgICAgdGV4
dCBydW4gYXQgKDAsMCkgd2lkdGggMzE1OiAiVGhlIGlmcmFtZSBiZWxvdyBzaG91bGQgcmVtYWlu
IGdyZXkgd2hlbiBzY3JvbGxpbmcuIgotbGF5ZXIgYXQgKDgsNTIpIHNpemUgMzI1eDIzMAotICBS
ZW5kZXJCbG9jayAocG9zaXRpb25lZCkgekk6IDEge0RJVn0gYXQgKDgsNTIpIHNpemUgMzI1eDIz
MAotICAgIFJlbmRlclBhcnRPYmplY3Qge0lGUkFNRX0gYXQgKDEwLDEwKSBzaXplIDMwNHgyMDUg
W2JvcmRlcjogKDJweCBpbnNldCAjMDAwMDAwKV0KLSAgICAgIGxheWVyIGF0ICgwLDApIHNpemUg
Mjg1eDEwMTYKLSAgICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDI4NXgyMDAKLSAgICAg
IGxheWVyIGF0ICgwLDApIHNpemUgMjg1eDEwMTYKLSAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9
IGF0ICgwLDApIHNpemUgMjg1eDEwMTYKLSAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAo
OCw4KSBzaXplIDI2OXgxMDAwIFtiZ2NvbG9yPSNDMEMwQzBdCisgICAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoMCwwKSBzaXplIDMyMXgxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDAp
IHdpZHRoIDMyMTogIlRoZSBpZnJhbWVzIGJlbG93IHNob3VsZCByZW1haW4gZ3JleSB3aGVuIHNj
cm9sbGluZy4iCisgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwzNikgc2l6ZSA3ODR4MzQ5
CisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTc0LDI1OSkgc2l6ZSA1eDE5CisgICAg
ICAgICAgdGV4dCBydW4gYXQgKDE3NCwyNTkpIHdpZHRoIDU6ICIgIgorICAgICAgICBSZW5kZXJU
ZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKK2xheWVyIGF0ICg4LDExMikgc2l6ZSAxNzV4
MjMwCisgIFJlbmRlckJsb2NrIChyZWxhdGl2ZSBwb3NpdGlvbmVkKSB6STogMSB7RElWfSBhdCAo
MCw2MCkgc2l6ZSAxNzV4MjMwCisgICAgUmVuZGVyUGFydE9iamVjdCB7SUZSQU1FfSBhdCAoMTAs
MTApIHNpemUgMTU0eDIwNSBbYm9yZGVyOiAoMnB4IGluc2V0ICMwMDAwMDApXQorICAgICAgbGF5
ZXIgYXQgKDAsMCkgc2l6ZSAxMzV4MTAxNgorICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNp
emUgMTM1eDIwMAorICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxMzV4MTAxNgorICAgICAgICBS
ZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAxMzV4MTAxNgorICAgICAgICAgIFJlbmRl
ckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgMTE5eDEwMDAgW2JnY29sb3I9I0MwQzBDMF0KKyAg
ICBSZW5kZXJUZXh0IHpJOiAxIHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKK2xheWVyIGF0ICgx
ODcsNTIpIHNpemUgMjk4eDM1MAorICBSZW5kZXJCbG9jayAocmVsYXRpdmUgcG9zaXRpb25lZCkg
ekk6IDEge0RJVn0gYXQgKDE3OCwwKSBzaXplIDI5OXgzNTAKKyAgICBSZW5kZXJUZXh0IHpJOiAx
IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKK2xheWVyIGF0ICgxOTcsNjMpIHNpemUgMjc4eDMz
MAorICBSZW5kZXJCbG9jayAocmVsYXRpdmUgcG9zaXRpb25lZCkgekk6IDEge0RJVn0gYXQgKDEw
LDEwKSBzaXplIDI3OHgzMzAKKyAgICBSZW5kZXJUZXh0IHpJOiAxIHsjdGV4dH0gYXQgKDAsMCkg
c2l6ZSAweDAKK2xheWVyIGF0ICgyMDcsNzQpIHNpemUgMjU3eDMxMAorICBSZW5kZXJCbG9jayAo
cmVsYXRpdmUgcG9zaXRpb25lZCkgekk6IDEge0RJVn0gYXQgKDEwLDEwKSBzaXplIDI1N3gzMTAK
KyAgICBSZW5kZXJUZXh0IHpJOiAxIHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKK2xheWVyIGF0
ICgyMTcsODQpIHNpemUgMjM2eDI5MAorICBSZW5kZXJCbG9jayAocmVsYXRpdmUgcG9zaXRpb25l
ZCkgekk6IDEge0RJVn0gYXQgKDEwLDEwKSBzaXplIDIzN3gyOTAKKyAgICBSZW5kZXJUZXh0IHpJ
OiAxIHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKK2xheWVyIGF0ICgyMjcsOTUpIHNpemUgMjE2
eDI3MAorICBSZW5kZXJCbG9jayAocmVsYXRpdmUgcG9zaXRpb25lZCkgekk6IDEge0RJVn0gYXQg
KDEwLDEwKSBzaXplIDIxNngyNzAKKyAgICBSZW5kZXJUZXh0IHpJOiAxIHsjdGV4dH0gYXQgKDAs
MCkgc2l6ZSAweDAKK2xheWVyIGF0ICgyMzcsMTA2KSBzaXplIDE5NXgyNTAKKyAgUmVuZGVyQmxv
Y2sgKHJlbGF0aXZlIHBvc2l0aW9uZWQpIHpJOiAxIHtESVZ9IGF0ICgxMCwxMCkgc2l6ZSAxOTZ4
MjUwCisgICAgUmVuZGVyVGV4dCB6STogMSB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCitsYXll
ciBhdCAoMjQ3LDExNykgc2l6ZSAxNzV4MjMwCisgIFJlbmRlckJsb2NrIChyZWxhdGl2ZSBwb3Np
dGlvbmVkKSB6STogMSB7RElWfSBhdCAoMTAsMTApIHNpemUgMTc1eDIzMAorICAgIFJlbmRlclBh
cnRPYmplY3Qge0lGUkFNRX0gYXQgKDEwLDEwKSBzaXplIDE1NHgyMDUgW2JvcmRlcjogKDJweCBp
bnNldCAjMDAwMDAwKV0KKyAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTM1eDEwMTYKKyAgICAg
ICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDEzNXgyMDAKKyAgICAgIGxheWVyIGF0ICgwLDAp
IHNpemUgMTM1eDEwMTYKKyAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUg
MTM1eDEwMTYKKyAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDExOXgx
MDAwIFtiZ2NvbG9yPSNDMEMwQzBdCiAgICAgUmVuZGVyVGV4dCB6STogMSB7I3RleHR9IGF0ICgw
LDApIHNpemUgMHgwCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhw
ZWN0YXRpb25zCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rl
c3RFeHBlY3RhdGlvbnMJKHJldmlzaW9uIDEzNTc4MSkKKysrIExheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMJKHdvcmtpbmcgY29weSkKQEAgLTQxNzEsNiArNDE3
MSw5IEBAIEJ1ZyhkcHJhbmtlKSBbIFdpbiBdIHdlYmF1ZGlvL2NvZGVjLXRlc3QKIAogd2Via2l0
Lm9yZy9iLzEwMDAyMyBbIE1hYyBdIGZhc3Qvc3ViLXBpeGVsL2ZpbGUtdXBsb2FkLWNvbnRyb2wt
YXQtZnJhY3Rpb25hbC1vZmZzZXQuaHRtbCBbIEZhaWx1cmUgSW1hZ2VPbmx5RmFpbHVyZSBdCiAK
KyMgTmVlZHMgcmViYXNlbGluZSBhZnRlciBib3RzIGN5Y2xlCitCdWcobGV2aXcpIFsgTGludXgg
V2luIE1hYyBdIGZhc3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1pZnJhbWUtY29weS1vbi1zY3JvbGwu
aHRtbCBbIFBhc3MgSW1hZ2VPbmx5RmFpbHVyZSBGYWlsdXJlIF0KKwogd2Via2l0Lm9yZy9iLzEw
MDQ3OCAgWyBNYWMgXSBjc3MzL2ZpbHRlcnMvY3VzdG9tL2VmZmVjdC1jdXN0b20uaHRtbCBbIFBh
c3MgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKIHdlYmtpdC5vcmcvYi8xMDA0MjQgZWRpdGluZy9zZWxl
Y3Rpb24vdXNlci1zZWxlY3QtYWxsLXNlbGVjdGlvbi5odG1sIFsgRmFpbHVyZSBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177550</attachid>
            <date>2012-12-04 14:03:11 -0800</date>
            <delta_ts>2012-12-07 16:55:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101779-20121204140036.patch</filename>
            <type>text/plain</type>
            <size>77666</size>
            <attacher name="Levi Weintraub">leviw</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNjU2MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDcwIEBACisyMDEyLTEyLTA0ICBMZXZpIFdl
aW50cmF1YiAgPGxldml3QGNocm9taXVtLm9yZz4KKworICAgICAgICBBY2N1bXVsYXRlIHVzaW5n
IGEgTGF5b3V0U2l6ZSBpbiBtYXBMb2NhbFRvQ29udGFpbmVyIHdoZW4gcG9zc2libGUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTc3OQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1hcExvY2FsVG9Db250
YWluZXIgcHJldmlvdXNseSBhY2N1bXVsYXRlZCBvZmZzZXRzIGluIFRyYW5zZm9ybVN0YXRlLCB3
aGljaCBpcyBmdW5jdGlvbmFsbHkgaW5jb3JyZWN0IHdoZW4gdGhlcmUKKyAgICAgICAgYXJlIG11
bHRpcGxlIGxldmVscyBvZiBjb250YWluZXJzIHdpdGggc3ViLXBpeGVsIG9mZnNldHMgaW4gdGhl
IHJlbmRlcmVyIGNoYWluLCBhcyB3ZSB3b3VsZCBwaXhlbCBzbmFwIGZyb20gdGhlCisgICAgICAg
IGJvdHRvbSB0b3dhcmRzIHRoZSByb290IGluc3RlYWQgb2YgdmljZS12ZXJzYSwgYXMgd2UgZG8g
d2hlbiB3ZSBwYWludC4gVGhpcyBmdW5jdGlvbmFsbHkgaW5jb3JyZWN0IGJlaGF2aW9yIGxlYWRz
CisgICAgICAgIHRvIHJlcGFpbnQgYXJ0aWZhY3RzLCBlc3BlY2lhbGx5IGluIHdpZGdldHMuIFRo
aXMgY2hhbmdlIHdpbGwgYWxzbyBpbXByb3ZlIHBlcmZvcm1hbmNlIHNpbmNlIHdlIG9ubHkgaGF2
ZSB0byBhcHBseQorICAgICAgICB0aGUgdHJhbnNmb3JtIHRvIG4rMSBvZmZzZXRzIHdoZXJlIG4g
aXMgdGhlIG51bWJlciBvZiB0cmFuc2Zvcm1zIGluIHRoZSBjaGFpbiwgd2hlcmVhcyBjdXJyZW50
bHkgd2UgaGF2ZSB0byBhcHBseQorICAgICAgICBpdCBPKG0pIHdoZXJlIG0gaXMgdGhlIG51bWJl
ciBvZiByZW5kZXJlcnMgaW4gdGhlIGNoYWluLCB3aXRoIHNvbWUgZWxlbWVudHMgYWNjdW11bGF0
aW5nIG11bHRpcGxlIG9mZnNldHMuIEFsc28KKyAgICAgICAgdXBkYXRpbmcgUmVuZGVyR2VvbWV0
cnlNYXAgdG8gYWxzbyByZXNwZWN0IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zICh3aGljaCBJIGlu
dGVuZCB0byByZW5hbWUgYXMgcGVyIHNtZnIncyByZXF1ZXN0KS4KKworICAgICAgICBUZXN0OiBm
YXN0L3N1Yi1waXhlbC90cmFuc2Zvcm1lZC1pZnJhbWUtY29weS1vbi1zY3JvbGwuaHRtbCBhZGRl
ZC4KKyAgICAgICAgICAgICAgZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWlmcmFtZS1jb3B5LW9u
LXNjcm9sbC5odG1sIG1vZGlmaWVkIHRvIGNhdGNoIHRoZSBmYWlsdXJlIGNhc2UuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9MYXlvdXRTaXplLmg6CisgICAgICAgIChMYXlvdXRTaXpl
KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dFNpemU6OmV4cGFuZCk6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6Om1hcExv
Y2FsVG9Db250YWluZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpwdXNoTWFwcGlu
Z1RvQ29udGFpbmVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94Lmg6CisgICAgICAg
IChSZW5kZXJCb3gpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJHZW9tZXRyeU1hcC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHZW9tZXRyeU1hcDo6bWFwVG9Db250YWluZXIpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVySW5saW5lOjptYXBMb2NhbFRvQ29udGFpbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlcklubGluZTo6cHVzaE1hcHBpbmdUb0NvbnRhaW5lcik6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlcklubGluZS5oOgorICAgICAgICAoUmVuZGVySW5saW5lKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6
bWFwTG9jYWxUb0NvbnRhaW5lcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5o
OgorICAgICAgICAoUmVuZGVyT2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVj
dDo6YWRqdXN0T2Zmc2V0Rm9yU25hcHBpbmcpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJW
aWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZXc6Om1hcExvY2FsVG9Db250YWlu
ZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJWaWV3Lmg6CisgICAgICAgIChSZW5kZXJW
aWV3KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ZvcmVpZ25PYmplY3QuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHRm9yZWlnbk9iamVjdDo6bWFwTG9jYWxUb0Nv
bnRhaW5lcik6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWduT2JqZWN0
Lmg6CisgICAgICAgIChSZW5kZXJTVkdGb3JlaWduT2JqZWN0KToKKyAgICAgICAgKiByZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR0lubGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdJ
bmxpbmU6Om1hcExvY2FsVG9Db250YWluZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHSW5saW5lLmg6CisgICAgICAgIChSZW5kZXJTVkdJbmxpbmUpOgorICAgICAgICAqIHJl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyU1ZHTW9kZWxPYmplY3Q6Om1hcExvY2FsVG9Db250YWluZXIpOgorICAgICAgICAqIHJl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuaDoKKyAgICAgICAgKFJlbmRlclNWR01v
ZGVsT2JqZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHUm9vdDo6bWFwTG9jYWxUb0NvbnRhaW5lcik6Cisg
ICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290Lmg6CisgICAgICAgIChSZW5kZXJT
VkdSb290KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHVGV4dDo6bWFwTG9jYWxUb0NvbnRhaW5lcik6CisgICAg
ICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0Lmg6CisgICAgICAgIChSZW5kZXJTVkdU
ZXh0KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHUmVuZGVyU3VwcG9ydDo6bWFwTG9jYWxUb0NvbnRhaW5lcik6Cisg
ICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0Lmg6CisgICAgICAgIChTVkdS
ZW5kZXJTdXBwb3J0KToKKwogMjAxMi0xMi0wNCAgQWJoaXNoZWsgQXJ5YSAgPGluZmVybm9AY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIEhlYXAtdXNlLWFmdGVyLWZyZWUgaW4gV2ViQ29yZTo6U3R5
bGVDYWNoZWRJbWFnZVNldDo6Y3NzVmFsdWUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0xheW91dFNpemUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9MYXlvdXRTaXplLmgJKHJldmlzaW9uIDEzNjU1OCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0xheW91dFNpemUuaAkod29ya2luZyBjb3B5KQpAQCAt
NzEsNyArNzEsMTMgQEAgcHVibGljOgogICAgICAgICBtX3dpZHRoICs9IHdpZHRoOwogICAgICAg
ICBtX2hlaWdodCArPSBoZWlnaHQ7CiAgICAgfQotICAgIAorCisgICAgdm9pZCBleHBhbmQoY29u
c3QgTGF5b3V0U2l6ZSYgcykKKyAgICB7CisgICAgICAgIG1fd2lkdGggKz0gcy5tX3dpZHRoOwor
ICAgICAgICBtX2hlaWdodCArPSBzLm1faGVpZ2h0OworICAgIH0KKwogICAgIHZvaWQgc2NhbGUo
ZmxvYXQgc2NhbGUpCiAgICAgewogICAgICAgICBtX3dpZHRoICo9IHNjYWxlOwpJbmRleDogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAJKHJldmlzaW9uIDEzNjU1OCkKKysrIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
Mzc4LDEwICsxMzc4LDE0IEBAIExheW91dFVuaXQgUmVuZGVyQm94OjpwZXJwZW5kaWN1bGFyQ29u
dGEKICAgICByZXR1cm4gY2ItPmFkanVzdENvbnRlbnRCb3hMb2dpY2FsSGVpZ2h0Rm9yQm94U2l6
aW5nKGxvZ2ljYWxIZWlnaHRMZW5ndGgudmFsdWUoKSk7CiB9CiAKLXZvaWQgUmVuZGVyQm94Ojpt
YXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRD
b250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFwQ29vcmRpbmF0ZXNG
bGFncyBtb2RlLCBib29sKiB3YXNGaXhlZCkgY29uc3QKK3ZvaWQgUmVuZGVyQm94OjptYXBMb2Nh
bFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWlu
ZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFwQ29vcmRpbmF0ZXNGbGFncyBt
b2RlLCBib29sKiB3YXNGaXhlZCwgY29uc3QgTGF5b3V0U2l6ZSYgYWNjdW11bGF0ZWRPZmZzZXQp
IGNvbnN0CiB7CisgICAgYm9vbCBjb250YWluZXJTa2lwcGVkOworICAgIExheW91dFNpemUgYWRq
dXN0ZWRPZmZzZXQgPSBhY2N1bXVsYXRlZE9mZnNldDsKKyAgICBSZW5kZXJPYmplY3QqIG8gPSBj
b250YWluZXIocmVwYWludENvbnRhaW5lciwgJmNvbnRhaW5lclNraXBwZWQpOworICAgIGJvb2wg
cHJlc2VydmUzRCA9IG1vZGUgJiBVc2VUcmFuc2Zvcm1zICYmICgobyAmJiBvLT5zdHlsZSgpLT5w
cmVzZXJ2ZXMzRCgpKSB8fCBzdHlsZSgpLT5wcmVzZXJ2ZXMzRCgpKTsKICAgICBpZiAocmVwYWlu
dENvbnRhaW5lciA9PSB0aGlzKQotICAgICAgICByZXR1cm47CisgICAgICAgIHJldHVybiB0cmFu
c2Zvcm1TdGF0ZS5tb3ZlKGFkanVzdE9mZnNldEZvclNuYXBwaW5nKG1vZGUsIGFkanVzdGVkT2Zm
c2V0KSwgcHJlc2VydmUzRCA/IFRyYW5zZm9ybVN0YXRlOjpBY2N1bXVsYXRlVHJhbnNmb3JtIDog
VHJhbnNmb3JtU3RhdGU6OkZsYXR0ZW5UcmFuc2Zvcm0pOwogCiAgICAgaWYgKFJlbmRlclZpZXcq
IHYgPSB2aWV3KCkpIHsKICAgICAgICAgaWYgKHYtPmxheW91dFN0YXRlRW5hYmxlZCgpICYmICFy
ZXBhaW50Q29udGFpbmVyKSB7CkBAIC0xMzk0LDEwICsxMzk4LDkgQEAgdm9pZCBSZW5kZXJCb3g6
Om1hcExvY2FsVG9Db250YWluZXIoY29ucwogICAgICAgICB9CiAgICAgfQogCi0gICAgYm9vbCBj
b250YWluZXJTa2lwcGVkOwotICAgIFJlbmRlck9iamVjdCogbyA9IGNvbnRhaW5lcihyZXBhaW50
Q29udGFpbmVyLCAmY29udGFpbmVyU2tpcHBlZCk7CisKICAgICBpZiAoIW8pCi0gICAgICAgIHJl
dHVybjsKKyAgICAgICAgcmV0dXJuIHRyYW5zZm9ybVN0YXRlLm1vdmUoYWRqdXN0T2Zmc2V0Rm9y
U25hcHBpbmcobW9kZSwgYWRqdXN0ZWRPZmZzZXQpLCBwcmVzZXJ2ZTNEID8gVHJhbnNmb3JtU3Rh
dGU6OkFjY3VtdWxhdGVUcmFuc2Zvcm0gOiBUcmFuc2Zvcm1TdGF0ZTo6RmxhdHRlblRyYW5zZm9y
bSk7CiAKICAgICBib29sIGlzRml4ZWRQb3MgPSBzdHlsZSgpLT5wb3NpdGlvbigpID09IEZpeGVk
UG9zaXRpb247CiAgICAgYm9vbCBoYXNUcmFuc2Zvcm0gPSBoYXNMYXllcigpICYmIGxheWVyKCkt
PnRyYW5zZm9ybSgpOwpAQCAtMTQxMSwzNiArMTQxNCwzNiBAQCB2b2lkIFJlbmRlckJveDo6bWFw
TG9jYWxUb0NvbnRhaW5lcihjb25zCiAgICAgaWYgKHdhc0ZpeGVkKQogICAgICAgICAqd2FzRml4
ZWQgPSBtb2RlICYgSXNGaXhlZDsKICAgICAKLSAgICBMYXlvdXRTaXplIGNvbnRhaW5lck9mZnNl
dCA9IG9mZnNldEZyb21Db250YWluZXIobywgcm91bmRlZExheW91dFBvaW50KHRyYW5zZm9ybVN0
YXRlLm1hcHBlZFBvaW50KCkpKTsKLSAgICBpZiAobW9kZSAmIFNuYXBPZmZzZXRGb3JUcmFuc2Zv
cm1zKQotICAgICAgICBjb250YWluZXJPZmZzZXQgPSByb3VuZGVkSW50U2l6ZShjb250YWluZXJP
ZmZzZXQpOworICAgIExheW91dFNpemUgY29udGFpbmVyT2Zmc2V0ID0gb2Zmc2V0RnJvbUNvbnRh
aW5lcihvLCByb3VuZGVkTGF5b3V0UG9pbnQodHJhbnNmb3JtU3RhdGUubWFwcGVkUG9pbnQoKSAr
IGFkanVzdGVkT2Zmc2V0KSk7CiAgICAgCi0gICAgYm9vbCBwcmVzZXJ2ZTNEID0gbW9kZSAmIFVz
ZVRyYW5zZm9ybXMgJiYgKG8tPnN0eWxlKCktPnByZXNlcnZlczNEKCkgfHwgc3R5bGUoKS0+cHJl
c2VydmVzM0QoKSk7CiAgICAgaWYgKG1vZGUgJiBVc2VUcmFuc2Zvcm1zICYmIHNob3VsZFVzZVRy
YW5zZm9ybUZyb21Db250YWluZXIobykpIHsKICAgICAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXgg
dDsKICAgICAgICAgZ2V0VHJhbnNmb3JtRnJvbUNvbnRhaW5lcihvLCBjb250YWluZXJPZmZzZXQs
IHQpOworICAgICAgICB0cmFuc2Zvcm1TdGF0ZS5tb3ZlKGFkanVzdE9mZnNldEZvclNuYXBwaW5n
KG1vZGUsIGFkanVzdGVkT2Zmc2V0KSwgcHJlc2VydmUzRCA/IFRyYW5zZm9ybVN0YXRlOjpBY2N1
bXVsYXRlVHJhbnNmb3JtIDogVHJhbnNmb3JtU3RhdGU6OkZsYXR0ZW5UcmFuc2Zvcm0pOworICAg
ICAgICBhZGp1c3RlZE9mZnNldCA9IExheW91dFNpemUoKTsKICAgICAgICAgdHJhbnNmb3JtU3Rh
dGUuYXBwbHlUcmFuc2Zvcm0odCwgcHJlc2VydmUzRCA/IFRyYW5zZm9ybVN0YXRlOjpBY2N1bXVs
YXRlVHJhbnNmb3JtIDogVHJhbnNmb3JtU3RhdGU6OkZsYXR0ZW5UcmFuc2Zvcm0pOwogICAgIH0g
ZWxzZQotICAgICAgICB0cmFuc2Zvcm1TdGF0ZS5tb3ZlKGNvbnRhaW5lck9mZnNldC53aWR0aCgp
LCBjb250YWluZXJPZmZzZXQuaGVpZ2h0KCksIHByZXNlcnZlM0QgPyBUcmFuc2Zvcm1TdGF0ZTo6
QWNjdW11bGF0ZVRyYW5zZm9ybSA6IFRyYW5zZm9ybVN0YXRlOjpGbGF0dGVuVHJhbnNmb3JtKTsK
KyAgICAgICAgYWRqdXN0ZWRPZmZzZXQuZXhwYW5kKGNvbnRhaW5lck9mZnNldCk7CiAKICAgICBp
ZiAoY29udGFpbmVyU2tpcHBlZCkgewogICAgICAgICAvLyBUaGVyZSBjYW4ndCBiZSBhIHRyYW5z
Zm9ybSBiZXR3ZWVuIHJlcGFpbnRDb250YWluZXIgYW5kIG8sIGJlY2F1c2UgdHJhbnNmb3JtcyBj
cmVhdGUgY29udGFpbmVycywgc28gaXQgc2hvdWxkIGJlIHNhZmUKICAgICAgICAgLy8gdG8ganVz
dCBzdWJ0cmFjdCB0aGUgZGVsdGEgYmV0d2VlbiB0aGUgcmVwYWludENvbnRhaW5lciBhbmQgby4K
ICAgICAgICAgTGF5b3V0U2l6ZSBjb250YWluZXJPZmZzZXQgPSByZXBhaW50Q29udGFpbmVyLT5v
ZmZzZXRGcm9tQW5jZXN0b3JDb250YWluZXIobyk7Ci0gICAgICAgIHRyYW5zZm9ybVN0YXRlLm1v
dmUoLWNvbnRhaW5lck9mZnNldC53aWR0aCgpLCAtY29udGFpbmVyT2Zmc2V0LmhlaWdodCgpLCBw
cmVzZXJ2ZTNEID8gVHJhbnNmb3JtU3RhdGU6OkFjY3VtdWxhdGVUcmFuc2Zvcm0gOiBUcmFuc2Zv
cm1TdGF0ZTo6RmxhdHRlblRyYW5zZm9ybSk7Ci0gICAgICAgIHJldHVybjsKKyAgICAgICAgYWRq
dXN0ZWRPZmZzZXQuZXhwYW5kKC1jb250YWluZXJPZmZzZXQpOworICAgICAgICByZXR1cm4gdHJh
bnNmb3JtU3RhdGUubW92ZShhZGp1c3RPZmZzZXRGb3JTbmFwcGluZyhtb2RlLCBhZGp1c3RlZE9m
ZnNldCksIHByZXNlcnZlM0QgPyBUcmFuc2Zvcm1TdGF0ZTo6QWNjdW11bGF0ZVRyYW5zZm9ybSA6
IFRyYW5zZm9ybVN0YXRlOjpGbGF0dGVuVHJhbnNmb3JtKTsKICAgICB9CiAKICAgICBtb2RlICY9
IH5BcHBseUNvbnRhaW5lckZsaXA7CiAgICAgaWYgKG8tPmlzUmVuZGVyRmxvd1RocmVhZCgpKSB7
CiAgICAgICAgIC8vIFRyYW5zZm9ybSBmcm9tIHJlbmRlciBmbG93IGNvb3JkaW5hdGVzIGludG8g
cmVnaW9uIGNvb3JkaW5hdGVzLgorICAgICAgICB0cmFuc2Zvcm1TdGF0ZS5tb3ZlKGFkanVzdE9m
ZnNldEZvclNuYXBwaW5nKG1vZGUsIGFkanVzdGVkT2Zmc2V0KSwgcHJlc2VydmUzRCA/IFRyYW5z
Zm9ybVN0YXRlOjpBY2N1bXVsYXRlVHJhbnNmb3JtIDogVHJhbnNmb3JtU3RhdGU6OkZsYXR0ZW5U
cmFuc2Zvcm0pOwogICAgICAgICBSZW5kZXJSZWdpb24qIHJlZ2lvbiA9IHRvUmVuZGVyRmxvd1Ro
cmVhZChvKS0+bWFwRnJvbUZsb3dUb1JlZ2lvbih0cmFuc2Zvcm1TdGF0ZSk7CiAgICAgICAgIGlm
IChyZWdpb24pCiAgICAgICAgICAgICByZWdpb24tPm1hcExvY2FsVG9Db250YWluZXIocmVnaW9u
LT5jb250YWluZXJGb3JSZXBhaW50KCksIHRyYW5zZm9ybVN0YXRlLCBtb2RlLCB3YXNGaXhlZCk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBvLT5tYXBMb2NhbFRvQ29udGFpbmVyKHJl
cGFpbnRDb250YWluZXIsIHRyYW5zZm9ybVN0YXRlLCBtb2RlLCB3YXNGaXhlZCk7CisgICAgby0+
bWFwTG9jYWxUb0NvbnRhaW5lcihyZXBhaW50Q29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwgbW9k
ZSwgd2FzRml4ZWQsIGFkanVzdGVkT2Zmc2V0KTsKIH0KIAogY29uc3QgUmVuZGVyT2JqZWN0KiBS
ZW5kZXJCb3g6OnB1c2hNYXBwaW5nVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9i
amVjdCogYW5jZXN0b3JUb1N0b3BBdCwgUmVuZGVyR2VvbWV0cnlNYXAmIGdlb21ldHJ5TWFwKSBj
b25zdApAQCAtMTQ2NCw4ICsxNDY3LDYgQEAgY29uc3QgUmVuZGVyT2JqZWN0KiBSZW5kZXJCb3g6
OnB1c2hNYXBwaQogCiAgICAgYm9vbCBvZmZzZXREZXBlbmRzT25Qb2ludCA9IGZhbHNlOwogICAg
IExheW91dFNpemUgY29udGFpbmVyT2Zmc2V0ID0gb2Zmc2V0RnJvbUNvbnRhaW5lcihjb250YWlu
ZXIsIExheW91dFBvaW50KCksICZvZmZzZXREZXBlbmRzT25Qb2ludCk7Ci0gICAgaWYgKGdlb21l
dHJ5TWFwLm1hcENvb3JkaW5hdGVzRmxhZ3MoKSAmIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKQot
ICAgICAgICBjb250YWluZXJPZmZzZXQgPSByb3VuZGVkSW50U2l6ZShjb250YWluZXJPZmZzZXQp
OwogCiAgICAgaWYgKGNvbnRhaW5lci0+aXNSZW5kZXJGbG93VGhyZWFkKCkpCiAgICAgICAgIG9m
ZnNldERlcGVuZHNPblBvaW50ID0gdHJ1ZTsKQEAgLTE0NzQsNiArMTQ3NSw3IEBAIGNvbnN0IFJl
bmRlck9iamVjdCogUmVuZGVyQm94OjpwdXNoTWFwcGkKICAgICBpZiAoc2hvdWxkVXNlVHJhbnNm
b3JtRnJvbUNvbnRhaW5lcihjb250YWluZXIpKSB7CiAgICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0
cml4IHQ7CiAgICAgICAgIGdldFRyYW5zZm9ybUZyb21Db250YWluZXIoY29udGFpbmVyLCBjb250
YWluZXJPZmZzZXQsIHQpOworICAgICAgICBhZGp1c3RtZW50Rm9yU2tpcHBlZEFuY2VzdG9yID0g
YWRqdXN0T2Zmc2V0Rm9yU25hcHBpbmcoZ2VvbWV0cnlNYXAubWFwQ29vcmRpbmF0ZXNGbGFncygp
LCBhZGp1c3RtZW50Rm9yU2tpcHBlZEFuY2VzdG9yKTsKICAgICAgICAgdC50cmFuc2xhdGVSaWdo
dChhZGp1c3RtZW50Rm9yU2tpcHBlZEFuY2VzdG9yLndpZHRoKCksIGFkanVzdG1lbnRGb3JTa2lw
cGVkQW5jZXN0b3IuaGVpZ2h0KCkpOwogICAgICAgICAKICAgICAgICAgZ2VvbWV0cnlNYXAucHVz
aCh0aGlzLCB0LCBwcmVzZXJ2ZTNELCBvZmZzZXREZXBlbmRzT25Qb2ludCwgaXNGaXhlZFBvcywg
aGFzVHJhbnNmb3JtKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3gu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgJKHJl
dmlzaW9uIDEzNjU1OCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAko
d29ya2luZyBjb3B5KQpAQCAtNTkwLDcgKzU5MCw3IEBAIHByb3RlY3RlZDoKICAgICAKICAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkQ29tcHV0ZVNpemVBc1JlcGxhY2VkKCkgY29uc3QgeyByZXR1cm4g
aXNSZXBsYWNlZCgpICYmICFpc0lubGluZUJsb2NrT3JJbmxpbmVUYWJsZSgpOyB9CiAKLSAgICB2
aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2Jq
ZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxh
Z3MgPSBBcHBseUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCog
d2FzRml4ZWQgPSAwKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxU
b0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVy
LCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5lckZs
aXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCogd2FzRml4ZWQgPSAwLCBjb25zdCBM
YXlvdXRTaXplJiBhY2N1bXVsYXRlZE9mZnNldCA9IExheW91dFNpemUoKSkgY29uc3QgT1ZFUlJJ
REU7CiAgICAgdmlydHVhbCBjb25zdCBSZW5kZXJPYmplY3QqIHB1c2hNYXBwaW5nVG9Db250YWlu
ZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCosIFJlbmRlckdlb21ldHJ5TWFwJikgY29u
c3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIG1hcEFic29sdXRlVG9Mb2NhbFBvaW50KE1h
cENvb3JkaW5hdGVzRmxhZ3MsIFRyYW5zZm9ybVN0YXRlJikgY29uc3Q7CiAKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHZW9tZXRyeU1hcC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdlb21ldHJ5TWFwLmNwcAkocmV2aXNpb24g
MTM2NTU4KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdlb21ldHJ5TWFwLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTA0LDcgKzEwNCw3IEBAIEZsb2F0UG9pbnQgUmVuZGVyR2Vv
bWV0cnlNYXA6Om1hcFRvQ29udGEKICAgICBGbG9hdFBvaW50IHJlc3VsdDsKICAgICAKICAgICBp
ZiAoIWhhc0ZpeGVkUG9zaXRpb25TdGVwKCkgJiYgIWhhc1RyYW5zZm9ybVN0ZXAoKSAmJiAhaGFz
Tm9uVW5pZm9ybVN0ZXAoKSAmJiAoIWNvbnRhaW5lciB8fCAobV9tYXBwaW5nLnNpemUoKSAmJiBj
b250YWluZXIgPT0gbV9tYXBwaW5nWzBdLm1fcmVuZGVyZXIpKSkKLSAgICAgICAgcmVzdWx0ID0g
cCArIG1fYWNjdW11bGF0ZWRPZmZzZXQ7CisgICAgICAgIHJlc3VsdCA9IHAgKyAoKG1fbWFwQ29v
cmRpbmF0ZXNGbGFncyAmIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKSA/IHJvdW5kZWRJbnRTaXpl
KG1fYWNjdW11bGF0ZWRPZmZzZXQpIDogbV9hY2N1bXVsYXRlZE9mZnNldCk7CiAgICAgZWxzZSB7
CiAgICAgICAgIFRyYW5zZm9ybVN0YXRlIHRyYW5zZm9ybVN0YXRlKFRyYW5zZm9ybVN0YXRlOjpB
cHBseVRyYW5zZm9ybURpcmVjdGlvbiwgcCk7CiAgICAgICAgIG1hcFRvQ29udGFpbmVyKHRyYW5z
Zm9ybVN0YXRlLCBjb250YWluZXIpOwpAQCAtMTI3LDcgKzEyNyw3IEBAIEZsb2F0UXVhZCBSZW5k
ZXJHZW9tZXRyeU1hcDo6bWFwVG9Db250YWkKICAgICAKICAgICBpZiAoIWhhc0ZpeGVkUG9zaXRp
b25TdGVwKCkgJiYgIWhhc1RyYW5zZm9ybVN0ZXAoKSAmJiAhaGFzTm9uVW5pZm9ybVN0ZXAoKSAm
JiAoIWNvbnRhaW5lciB8fCAobV9tYXBwaW5nLnNpemUoKSAmJiBjb250YWluZXIgPT0gbV9tYXBw
aW5nWzBdLm1fcmVuZGVyZXIpKSkgewogICAgICAgICByZXN1bHQgPSByZWN0OwotICAgICAgICBy
ZXN1bHQubW92ZShtX2FjY3VtdWxhdGVkT2Zmc2V0KTsKKyAgICAgICAgcmVzdWx0Lm1vdmUoKG1f
bWFwQ29vcmRpbmF0ZXNGbGFncyAmIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKSA/IHJvdW5kZWRJ
bnRTaXplKG1fYWNjdW11bGF0ZWRPZmZzZXQpIDogbV9hY2N1bXVsYXRlZE9mZnNldCk7CiAgICAg
fSBlbHNlIHsKICAgICAgICAgVHJhbnNmb3JtU3RhdGUgdHJhbnNmb3JtU3RhdGUoVHJhbnNmb3Jt
U3RhdGU6OkFwcGx5VHJhbnNmb3JtRGlyZWN0aW9uLCByZWN0LmNlbnRlcigpLCByZWN0KTsKICAg
ICAgICAgbWFwVG9Db250YWluZXIodHJhbnNmb3JtU3RhdGUsIGNvbnRhaW5lcik7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcAkocmV2aXNpb24gMTM2NTU4
KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTExNTQsNTYgKzExNTQsNTQgQEAgTGF5b3V0U2l6ZSBSZW5kZXJJbmxpbmU6Om9m
ZnNldEZyb21Db250YQogICAgIHJldHVybiBvZmZzZXQ7CiB9CiAKLXZvaWQgUmVuZGVySW5saW5l
OjptYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFp
bnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFwQ29vcmRpbmF0
ZXNGbGFncyBtb2RlLCBib29sKiB3YXNGaXhlZCkgY29uc3QKK3ZvaWQgUmVuZGVySW5saW5lOjpt
YXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRD
b250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFwQ29vcmRpbmF0ZXNG
bGFncyBtb2RlLCBib29sKiB3YXNGaXhlZCwgY29uc3QgTGF5b3V0U2l6ZSYgYWNjdW11bGF0ZWRP
ZmZzZXQpIGNvbnN0CiB7CisgICAgYm9vbCBjb250YWluZXJTa2lwcGVkOworICAgIExheW91dFNp
emUgYWRqdXN0ZWRPZmZzZXQgPSBhY2N1bXVsYXRlZE9mZnNldDsKKyAgICBSZW5kZXJPYmplY3Qq
IG8gPSBjb250YWluZXIocmVwYWludENvbnRhaW5lciwgJmNvbnRhaW5lclNraXBwZWQpOworICAg
IGJvb2wgcHJlc2VydmUzRCA9IG1vZGUgJiBVc2VUcmFuc2Zvcm1zICYmICgobyAmJiBvLT5zdHls
ZSgpLT5wcmVzZXJ2ZXMzRCgpKSB8fCBzdHlsZSgpLT5wcmVzZXJ2ZXMzRCgpKTsKICAgICBpZiAo
cmVwYWludENvbnRhaW5lciA9PSB0aGlzKQotICAgICAgICByZXR1cm47CisgICAgICAgIHJldHVy
biB0cmFuc2Zvcm1TdGF0ZS5tb3ZlKGFkanVzdE9mZnNldEZvclNuYXBwaW5nKG1vZGUsIGFkanVz
dGVkT2Zmc2V0KSwgcHJlc2VydmUzRCA/IFRyYW5zZm9ybVN0YXRlOjpBY2N1bXVsYXRlVHJhbnNm
b3JtIDogVHJhbnNmb3JtU3RhdGU6OkZsYXR0ZW5UcmFuc2Zvcm0pOzsKIAogICAgIGlmIChSZW5k
ZXJWaWV3ICp2ID0gdmlldygpKSB7CiAgICAgICAgIGlmICh2LT5sYXlvdXRTdGF0ZUVuYWJsZWQo
KSAmJiAhcmVwYWludENvbnRhaW5lcikgewogICAgICAgICAgICAgTGF5b3V0U3RhdGUqIGxheW91
dFN0YXRlID0gdi0+bGF5b3V0U3RhdGUoKTsKLSAgICAgICAgICAgIExheW91dFNpemUgb2Zmc2V0
ID0gbGF5b3V0U3RhdGUtPm1fcGFpbnRPZmZzZXQ7CisgICAgICAgICAgICBhZGp1c3RlZE9mZnNl
dC5leHBhbmQobGF5b3V0U3RhdGUtPm1fcGFpbnRPZmZzZXQpOwogICAgICAgICAgICAgaWYgKHN0
eWxlKCktPmhhc0luRmxvd1Bvc2l0aW9uKCkgJiYgbGF5ZXIoKSkKLSAgICAgICAgICAgICAgICBv
ZmZzZXQgKz0gbGF5ZXIoKS0+b2Zmc2V0Rm9ySW5GbG93UG9zaXRpb24oKTsKLSAgICAgICAgICAg
IHRyYW5zZm9ybVN0YXRlLm1vdmUob2Zmc2V0KTsKKyAgICAgICAgICAgICAgICBhZGp1c3RlZE9m
ZnNldCArPSBsYXllcigpLT5vZmZzZXRGb3JJbkZsb3dQb3NpdGlvbigpOworICAgICAgICAgICAg
dHJhbnNmb3JtU3RhdGUubW92ZShhZGp1c3RlZE9mZnNldCk7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBib29sIGNvbnRhaW5lclNraXBwZWQ7Ci0gICAgUmVu
ZGVyT2JqZWN0KiBvID0gY29udGFpbmVyKHJlcGFpbnRDb250YWluZXIsICZjb250YWluZXJTa2lw
cGVkKTsKICAgICBpZiAoIW8pCi0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJuIHRyYW5z
Zm9ybVN0YXRlLm1vdmUoYWRqdXN0T2Zmc2V0Rm9yU25hcHBpbmcobW9kZSwgYWRqdXN0ZWRPZmZz
ZXQpLCBwcmVzZXJ2ZTNEID8gVHJhbnNmb3JtU3RhdGU6OkFjY3VtdWxhdGVUcmFuc2Zvcm0gOiBU
cmFuc2Zvcm1TdGF0ZTo6RmxhdHRlblRyYW5zZm9ybSk7CiAKICAgICBpZiAobW9kZSAmIEFwcGx5
Q29udGFpbmVyRmxpcCAmJiBvLT5pc0JveCgpKSB7CiAgICAgICAgIGlmIChvLT5zdHlsZSgpLT5p
c0ZsaXBwZWRCbG9ja3NXcml0aW5nTW9kZSgpKSB7Ci0gICAgICAgICAgICBJbnRQb2ludCBjZW50
ZXJQb2ludCA9IHJvdW5kZWRJbnRQb2ludCh0cmFuc2Zvcm1TdGF0ZS5tYXBwZWRQb2ludCgpKTsK
LSAgICAgICAgICAgIHRyYW5zZm9ybVN0YXRlLm1vdmUodG9SZW5kZXJCb3gobyktPmZsaXBGb3JX
cml0aW5nTW9kZUluY2x1ZGluZ0NvbHVtbnMoY2VudGVyUG9pbnQpIC0gY2VudGVyUG9pbnQpOwor
ICAgICAgICAgICAgSW50UG9pbnQgY2VudGVyUG9pbnQgPSByb3VuZGVkSW50UG9pbnQodHJhbnNm
b3JtU3RhdGUubWFwcGVkUG9pbnQoKSArIGFkanVzdGVkT2Zmc2V0KTsKKyAgICAgICAgICAgIGFk
anVzdGVkT2Zmc2V0LmV4cGFuZCh0b1JlbmRlckJveChvKS0+ZmxpcEZvcldyaXRpbmdNb2RlSW5j
bHVkaW5nQ29sdW1ucyhjZW50ZXJQb2ludCkgLSBjZW50ZXJQb2ludCk7CiAgICAgICAgIH0KICAg
ICAgICAgbW9kZSAmPSB+QXBwbHlDb250YWluZXJGbGlwOwogICAgIH0KIAotICAgIExheW91dFNp
emUgY29udGFpbmVyT2Zmc2V0ID0gb2Zmc2V0RnJvbUNvbnRhaW5lcihvLCByb3VuZGVkTGF5b3V0
UG9pbnQodHJhbnNmb3JtU3RhdGUubWFwcGVkUG9pbnQoKSkpOwotICAgIGlmIChtb2RlICYgU25h
cE9mZnNldEZvclRyYW5zZm9ybXMpCi0gICAgICAgIGNvbnRhaW5lck9mZnNldCA9IHJvdW5kZWRJ
bnRTaXplKGNvbnRhaW5lck9mZnNldCk7Ci0KLSAgICBib29sIHByZXNlcnZlM0QgPSBtb2RlICYg
VXNlVHJhbnNmb3JtcyAmJiAoby0+c3R5bGUoKS0+cHJlc2VydmVzM0QoKSB8fCBzdHlsZSgpLT5w
cmVzZXJ2ZXMzRCgpKTsKKyAgICBMYXlvdXRTaXplIGNvbnRhaW5lck9mZnNldCA9IG9mZnNldEZy
b21Db250YWluZXIobywgcm91bmRlZExheW91dFBvaW50KHRyYW5zZm9ybVN0YXRlLm1hcHBlZFBv
aW50KCkgKyBhZGp1c3RlZE9mZnNldCkpOwogICAgIGlmIChtb2RlICYgVXNlVHJhbnNmb3JtcyAm
JiBzaG91bGRVc2VUcmFuc2Zvcm1Gcm9tQ29udGFpbmVyKG8pKSB7CiAgICAgICAgIFRyYW5zZm9y
bWF0aW9uTWF0cml4IHQ7CiAgICAgICAgIGdldFRyYW5zZm9ybUZyb21Db250YWluZXIobywgY29u
dGFpbmVyT2Zmc2V0LCB0KTsKICAgICAgICAgdHJhbnNmb3JtU3RhdGUuYXBwbHlUcmFuc2Zvcm0o
dCwgcHJlc2VydmUzRCA/IFRyYW5zZm9ybVN0YXRlOjpBY2N1bXVsYXRlVHJhbnNmb3JtIDogVHJh
bnNmb3JtU3RhdGU6OkZsYXR0ZW5UcmFuc2Zvcm0pOwogICAgIH0gZWxzZQotICAgICAgICB0cmFu
c2Zvcm1TdGF0ZS5tb3ZlKGNvbnRhaW5lck9mZnNldC53aWR0aCgpLCBjb250YWluZXJPZmZzZXQu
aGVpZ2h0KCksIHByZXNlcnZlM0QgPyBUcmFuc2Zvcm1TdGF0ZTo6QWNjdW11bGF0ZVRyYW5zZm9y
bSA6IFRyYW5zZm9ybVN0YXRlOjpGbGF0dGVuVHJhbnNmb3JtKTsKKyAgICAgICAgYWRqdXN0ZWRP
ZmZzZXQuZXhwYW5kKGNvbnRhaW5lck9mZnNldCk7CiAKICAgICBpZiAoY29udGFpbmVyU2tpcHBl
ZCkgewogICAgICAgICAvLyBUaGVyZSBjYW4ndCBiZSBhIHRyYW5zZm9ybSBiZXR3ZWVuIHJlcGFp
bnRDb250YWluZXIgYW5kIG8sIGJlY2F1c2UgdHJhbnNmb3JtcyBjcmVhdGUgY29udGFpbmVycywg
c28gaXQgc2hvdWxkIGJlIHNhZmUKICAgICAgICAgLy8gdG8ganVzdCBzdWJ0cmFjdCB0aGUgZGVs
dGEgYmV0d2VlbiB0aGUgcmVwYWludENvbnRhaW5lciBhbmQgby4KLSAgICAgICAgTGF5b3V0U2l6
ZSBjb250YWluZXJPZmZzZXQgPSByZXBhaW50Q29udGFpbmVyLT5vZmZzZXRGcm9tQW5jZXN0b3JD
b250YWluZXIobyk7Ci0gICAgICAgIHRyYW5zZm9ybVN0YXRlLm1vdmUoLWNvbnRhaW5lck9mZnNl
dC53aWR0aCgpLCAtY29udGFpbmVyT2Zmc2V0LmhlaWdodCgpLCBwcmVzZXJ2ZTNEID8gVHJhbnNm
b3JtU3RhdGU6OkFjY3VtdWxhdGVUcmFuc2Zvcm0gOiBUcmFuc2Zvcm1TdGF0ZTo6RmxhdHRlblRy
YW5zZm9ybSk7CisgICAgICAgIGFkanVzdGVkT2Zmc2V0LmV4cGFuZCgtcmVwYWludENvbnRhaW5l
ci0+b2Zmc2V0RnJvbUFuY2VzdG9yQ29udGFpbmVyKG8pKTsKKyAgICAgICAgdHJhbnNmb3JtU3Rh
dGUubW92ZShhZGp1c3RlZE9mZnNldCwgcHJlc2VydmUzRCA/IFRyYW5zZm9ybVN0YXRlOjpBY2N1
bXVsYXRlVHJhbnNmb3JtIDogVHJhbnNmb3JtU3RhdGU6OkZsYXR0ZW5UcmFuc2Zvcm0pOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgby0+bWFwTG9jYWxUb0NvbnRhaW5lcihyZXBhaW50
Q29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwgbW9kZSwgd2FzRml4ZWQpOworICAgIG8tPm1hcExv
Y2FsVG9Db250YWluZXIocmVwYWludENvbnRhaW5lciwgdHJhbnNmb3JtU3RhdGUsIG1vZGUsIHdh
c0ZpeGVkLCBhZGp1c3RlZE9mZnNldCk7CiB9CiAKIGNvbnN0IFJlbmRlck9iamVjdCogUmVuZGVy
SW5saW5lOjpwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJiBnZW9tZXRyeU1hcCkgY29u
c3QKQEAgLTEyMjQsMTMgKzEyMjIsMTIgQEAgY29uc3QgUmVuZGVyT2JqZWN0KiBSZW5kZXJJbmxp
bmU6OnB1c2hNYQogCiAgICAgYm9vbCBvZmZzZXREZXBlbmRzT25Qb2ludCA9IGZhbHNlOwogICAg
IExheW91dFNpemUgY29udGFpbmVyT2Zmc2V0ID0gb2Zmc2V0RnJvbUNvbnRhaW5lcihjb250YWlu
ZXIsIExheW91dFBvaW50KCksICZvZmZzZXREZXBlbmRzT25Qb2ludCk7Ci0gICAgaWYgKGdlb21l
dHJ5TWFwLm1hcENvb3JkaW5hdGVzRmxhZ3MoKSAmIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKQot
ICAgICAgICBjb250YWluZXJPZmZzZXQgPSByb3VuZGVkSW50U2l6ZShjb250YWluZXJPZmZzZXQp
OwogCiAgICAgYm9vbCBwcmVzZXJ2ZTNEID0gY29udGFpbmVyLT5zdHlsZSgpLT5wcmVzZXJ2ZXMz
RCgpIHx8IHN0eWxlKCktPnByZXNlcnZlczNEKCk7CiAgICAgaWYgKHNob3VsZFVzZVRyYW5zZm9y
bUZyb21Db250YWluZXIoY29udGFpbmVyKSkgewogICAgICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJp
eCB0OwogICAgICAgICBnZXRUcmFuc2Zvcm1Gcm9tQ29udGFpbmVyKGNvbnRhaW5lciwgY29udGFp
bmVyT2Zmc2V0LCB0KTsKKyAgICAgICAgYWRqdXN0bWVudEZvclNraXBwZWRBbmNlc3RvciA9IGFk
anVzdE9mZnNldEZvclNuYXBwaW5nKGdlb21ldHJ5TWFwLm1hcENvb3JkaW5hdGVzRmxhZ3MoKSwg
YWRqdXN0bWVudEZvclNraXBwZWRBbmNlc3Rvcik7CiAgICAgICAgIHQudHJhbnNsYXRlUmlnaHQo
YWRqdXN0bWVudEZvclNraXBwZWRBbmNlc3Rvci53aWR0aCgpLCBhZGp1c3RtZW50Rm9yU2tpcHBl
ZEFuY2VzdG9yLmhlaWdodCgpKTsgLy8gRklYTUU6IHJpZ2h0PwogICAgICAgICBnZW9tZXRyeU1h
cC5wdXNoKHRoaXMsIHQsIHByZXNlcnZlM0QsIG9mZnNldERlcGVuZHNPblBvaW50KTsKICAgICB9
IGVsc2UgewpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaAkocmV2
aXNpb24gMTM2NTU4KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xNDAsNyArMTQwLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFs
IExheW91dFJlY3QgcmVjdFdpdGhPdXRsaW5lRm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1v
ZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBMYXlvdXRVbml0IG91dGxpbmVXaWR0aCkgY29u
c3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVSZWN0Rm9yUmVwYWludChjb25z
dCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBMYXlvdXRSZWN0Jiwg
Ym9vbCBmaXhlZCkgY29uc3QgT1ZFUlJJREU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxU
b0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVy
LCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5lckZs
aXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5k
ZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1h
cENvb3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJh
bnNmb3JtcywgYm9vbCogd2FzRml4ZWQgPSAwLCBjb25zdCBMYXlvdXRTaXplJiBhY2N1bXVsYXRl
ZE9mZnNldCA9IExheW91dFNpemUoKSkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25z
dCBSZW5kZXJPYmplY3QqIHB1c2hNYXBwaW5nVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJN
b2RlbE9iamVjdCogYW5jZXN0b3JUb1N0b3BBdCwgUmVuZGVyR2VvbWV0cnlNYXAmKSBjb25zdCBP
VkVSUklERTsKIAogICAgIHZpcnR1YWwgVmlzaWJsZVBvc2l0aW9uIHBvc2l0aW9uRm9yUG9pbnQo
Y29uc3QgTGF5b3V0UG9pbnQmKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJPYmplY3QuY3BwCShyZXZpc2lvbiAxMzY1NTgpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjA0NCwzMiArMjA0NCwzMyBA
QCBGbG9hdFBvaW50IFJlbmRlck9iamVjdDo6YWJzb2x1dGVUb0xvY2FsCiAgICAgcmV0dXJuIHRy
YW5zZm9ybVN0YXRlLmxhc3RQbGFuYXJQb2ludCgpOwogfQogCi12b2lkIFJlbmRlck9iamVjdDo6
bWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50
Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIE1hcENvb3JkaW5hdGVz
RmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQpIGNvbnN0Cit2b2lkIFJlbmRlck9iamVjdDo6bWFw
TG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29u
dGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIE1hcENvb3JkaW5hdGVzRmxh
Z3MgbW9kZSwgYm9vbCogd2FzRml4ZWQsIGNvbnN0IExheW91dFNpemUmIGFjY3VtdWxhdGVkT2Zm
c2V0KSBjb25zdAogeworICAgIExheW91dFNpemUgYWRqdXN0ZWRPZmZzZXQgPSBhY2N1bXVsYXRl
ZE9mZnNldDsKICAgICBpZiAocmVwYWludENvbnRhaW5lciA9PSB0aGlzKQotICAgICAgICByZXR1
cm47CisgICAgICAgIHJldHVybiB0cmFuc2Zvcm1TdGF0ZS5tb3ZlKGFkanVzdE9mZnNldEZvclNu
YXBwaW5nKG1vZGUsIGFkanVzdGVkT2Zmc2V0KSk7CiAKICAgICBSZW5kZXJPYmplY3QqIG8gPSBw
YXJlbnQoKTsKICAgICBpZiAoIW8pCi0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJuIHRy
YW5zZm9ybVN0YXRlLm1vdmUoYWRqdXN0T2Zmc2V0Rm9yU25hcHBpbmcobW9kZSwgYWRqdXN0ZWRP
ZmZzZXQpKTsKIAogICAgIC8vIEZJWE1FOiB0aGlzIHNob3VsZCBjYWxsIG9mZnNldEZyb21Db250
YWluZXIgdG8gc2hhcmUgY29kZSwgYnV0IEknbSBub3Qgc3VyZSBpdCdzIGV2ZXIgY2FsbGVkLgog
ICAgIExheW91dFBvaW50IGNlbnRlclBvaW50ID0gcm91bmRlZExheW91dFBvaW50KHRyYW5zZm9y
bVN0YXRlLm1hcHBlZFBvaW50KCkpOwogICAgIGlmIChtb2RlICYgQXBwbHlDb250YWluZXJGbGlw
ICYmIG8tPmlzQm94KCkpIHsKICAgICAgICAgaWYgKG8tPnN0eWxlKCktPmlzRmxpcHBlZEJsb2Nr
c1dyaXRpbmdNb2RlKCkpCi0gICAgICAgICAgICB0cmFuc2Zvcm1TdGF0ZS5tb3ZlKHRvUmVuZGVy
Qm94KG8pLT5mbGlwRm9yV3JpdGluZ01vZGVJbmNsdWRpbmdDb2x1bW5zKHJvdW5kZWRMYXlvdXRQ
b2ludCh0cmFuc2Zvcm1TdGF0ZS5tYXBwZWRQb2ludCgpKSkgLSBjZW50ZXJQb2ludCk7CisgICAg
ICAgICAgICBhZGp1c3RlZE9mZnNldC5leHBhbmQodG9SZW5kZXJCb3gobyktPmZsaXBGb3JXcml0
aW5nTW9kZUluY2x1ZGluZ0NvbHVtbnMocm91bmRlZExheW91dFBvaW50KHRyYW5zZm9ybVN0YXRl
Lm1hcHBlZFBvaW50KCkpICsgYWRqdXN0ZWRPZmZzZXQpIC0gY2VudGVyUG9pbnQpOwogICAgICAg
ICBtb2RlICY9IH5BcHBseUNvbnRhaW5lckZsaXA7CiAgICAgfQogCiAgICAgTGF5b3V0U2l6ZSBj
b2x1bW5PZmZzZXQ7Ci0gICAgby0+YWRqdXN0Rm9yQ29sdW1ucyhjb2x1bW5PZmZzZXQsIHJvdW5k
ZWRMYXlvdXRQb2ludCh0cmFuc2Zvcm1TdGF0ZS5tYXBwZWRQb2ludCgpKSk7CisgICAgby0+YWRq
dXN0Rm9yQ29sdW1ucyhjb2x1bW5PZmZzZXQsIHJvdW5kZWRMYXlvdXRQb2ludCh0cmFuc2Zvcm1T
dGF0ZS5tYXBwZWRQb2ludCgpKSArIGFkanVzdGVkT2Zmc2V0KTsKICAgICBpZiAoIWNvbHVtbk9m
ZnNldC5pc1plcm8oKSkKLSAgICAgICAgdHJhbnNmb3JtU3RhdGUubW92ZShjb2x1bW5PZmZzZXQp
OworICAgICAgICBhZGp1c3RlZE9mZnNldC5leHBhbmQoY29sdW1uT2Zmc2V0KTsKIAogICAgIGlm
IChvLT5oYXNPdmVyZmxvd0NsaXAoKSkKLSAgICAgICAgdHJhbnNmb3JtU3RhdGUubW92ZSgtdG9S
ZW5kZXJCb3gobyktPnNjcm9sbGVkQ29udGVudE9mZnNldCgpKTsKKyAgICAgICAgYWRqdXN0ZWRP
ZmZzZXQuZXhwYW5kKC10b1JlbmRlckJveChvKS0+c2Nyb2xsZWRDb250ZW50T2Zmc2V0KCkpOwog
Ci0gICAgby0+bWFwTG9jYWxUb0NvbnRhaW5lcihyZXBhaW50Q29udGFpbmVyLCB0cmFuc2Zvcm1T
dGF0ZSwgbW9kZSwgd2FzRml4ZWQpOworICAgIG8tPm1hcExvY2FsVG9Db250YWluZXIocmVwYWlu
dENvbnRhaW5lciwgdHJhbnNmb3JtU3RhdGUsIG1vZGUsIHdhc0ZpeGVkLCBhZGp1c3RlZE9mZnNl
dCk7CiB9CiAKIGNvbnN0IFJlbmRlck9iamVjdCogUmVuZGVyT2JqZWN0OjpwdXNoTWFwcGluZ1Rv
Q29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGFuY2VzdG9yVG9TdG9wQXQs
IFJlbmRlckdlb21ldHJ5TWFwJiBnZW9tZXRyeU1hcCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgJKHJldmlzaW9uIDEzNjU1OCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtOTMyLDcg
KzkzMiw3IEBAIHB1YmxpYzoKIAogICAgIC8vIE1hcCBwb2ludHMgYW5kIHF1YWRzIHRocm91Z2gg
ZWxlbWVudHMsIHBvdGVudGlhbGx5IHZpYSAzZCB0cmFuc2Zvcm1zLiBZb3Ugc2hvdWxkIG5ldmVy
IG5lZWQgdG8gY2FsbCB0aGVzZSBkaXJlY3RseTsgdXNlCiAgICAgLy8gbG9jYWxUb0Fic29sdXRl
L2Fic29sdXRlVG9Mb2NhbCBtZXRob2RzIGluc3RlYWQuCi0gICAgdmlydHVhbCB2b2lkIG1hcExv
Y2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRh
aW5lciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBDb29yZGluYXRlc0ZsYWdzID0gQXBwbHlDb250YWlu
ZXJGbGlwLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBtYXBM
b2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250
YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29vcmRpbmF0ZXNGbGFncyA9IEFwcGx5Q29udGFp
bmVyRmxpcCwgYm9vbCogd2FzRml4ZWQgPSAwLCBjb25zdCBMYXlvdXRTaXplJiBhY2N1bXVsYXRl
ZE9mZnNldCA9IExheW91dFNpemUoKSkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIG1hcEFic29s
dXRlVG9Mb2NhbFBvaW50KE1hcENvb3JkaW5hdGVzRmxhZ3MsIFRyYW5zZm9ybVN0YXRlJikgY29u
c3Q7CiAKICAgICAvLyBQdXNoZXMgc3RhdGUgb250byBSZW5kZXJHZW9tZXRyeU1hcCBhYm91dCBo
b3cgdG8gbWFwIGNvb3JkaW5hdGVzIGZyb20gdGhpcyByZW5kZXJlciB0byBpdHMgY29udGFpbmVy
LCBvciBhbmNlc3RvclRvU3RvcEF0ICh3aGljaGV2ZXIgaXMgZW5jb3VudGVyZWQgZmlyc3QpLgpA
QCAtOTU4LDYgKzk1OCwxMSBAQCBwdWJsaWM6CiAgICAgUmVzcGVjdEltYWdlT3JpZW50YXRpb25F
bnVtIHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKCkgY29uc3Q7CiAKIHByb3RlY3RlZDoK
KyAgICBMYXlvdXRTaXplIGFkanVzdE9mZnNldEZvclNuYXBwaW5nKE1hcENvb3JkaW5hdGVzRmxh
Z3MgZmxhZ3MsIGNvbnN0IExheW91dFNpemUmIG9mZnNldCkgY29uc3QKKyAgICB7CisgICAgICAg
IHJldHVybiAoZmxhZ3MgJiBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcykgPyByb3VuZGVkSW50U2l6
ZShvZmZzZXQpIDogb2Zmc2V0OworICAgIH0KKwogICAgIGlubGluZSBib29sIGxheWVyQ3JlYXRp
b25BbGxvd2VkRm9yU3VidHJlZSgpIGNvbnN0OwogCiAgICAgLy8gT3ZlcnJpZGVzIHNob3VsZCBj
YWxsIHRoZSBzdXBlcmNsYXNzIGF0IHRoZSBlbmQKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJWaWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVmlldy5jcHAJKHJldmlzaW9uIDEzNjU1OCkKKysrIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJWaWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjEyLDEzICsyMTIsMTUg
QEAgdm9pZCBSZW5kZXJWaWV3OjpsYXlvdXQoKQogICAgIHNldE5lZWRzTGF5b3V0KGZhbHNlKTsK
IH0KIAotdm9pZCBSZW5kZXJWaWV3OjptYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxh
eWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zv
cm1TdGF0ZSwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBib29sKiB3YXNGaXhlZCkgY29uc3QK
K3ZvaWQgUmVuZGVyVmlldzo6bWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1v
ZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3Rh
dGUsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQsIGNvbnN0IExheW91
dFNpemUmIGFjY3VtdWxhdGVkT2Zmc2V0KSBjb25zdAogewogICAgIC8vIElmIGEgY29udGFpbmVy
IHdhcyBzcGVjaWZpZWQsIGFuZCB3YXMgbm90IDAgb3IgdGhlIFJlbmRlclZpZXcsCiAgICAgLy8g
dGhlbiB3ZSBzaG91bGQgaGF2ZSBmb3VuZCBpdCBieSBub3cuCiAgICAgQVNTRVJUX0FSRyhyZXBh
aW50Q29udGFpbmVyLCAhcmVwYWludENvbnRhaW5lciB8fCByZXBhaW50Q29udGFpbmVyID09IHRo
aXMpOwogICAgIEFTU0VSVF9VTlVTRUQod2FzRml4ZWQsICF3YXNGaXhlZCB8fCAqd2FzRml4ZWQg
PT0gKG1vZGUgJiBJc0ZpeGVkKSk7CiAKKyAgICB0cmFuc2Zvcm1TdGF0ZS5tb3ZlKChtb2RlICYg
U25hcE9mZnNldEZvclRyYW5zZm9ybXMpID8gcm91bmRlZEludFNpemUoYWNjdW11bGF0ZWRPZmZz
ZXQpIDogYWNjdW11bGF0ZWRPZmZzZXQpOworCiAgICAgaWYgKCFyZXBhaW50Q29udGFpbmVyICYm
IG1vZGUgJiBVc2VUcmFuc2Zvcm1zICYmIHNob3VsZFVzZVRyYW5zZm9ybUZyb21Db250YWluZXIo
MCkpIHsKICAgICAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggdDsKICAgICAgICAgZ2V0VHJhbnNm
b3JtRnJvbUNvbnRhaW5lcigwLCBMYXlvdXRTaXplKCksIHQpOwpJbmRleDogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVmlldy5oCShyZXZpc2lvbiAxMzY1NTgpCisrKyBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMjksNyArMjI5LDcg
QEAgcHVibGljOgogICAgIGJvb2wgaGFzUmVuZGVyQ291bnRlcnMoKSB7IHJldHVybiBtX3JlbmRl
ckNvdW50ZXJDb3VudDsgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgdmlydHVhbCB2b2lkIG1hcExvY2Fs
VG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5l
ciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBDb29yZGluYXRlc0ZsYWdzID0gQXBwbHlDb250YWluZXJG
bGlwIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3Qg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBN
YXBDb29yZGluYXRlc0ZsYWdzID0gQXBwbHlDb250YWluZXJGbGlwIHwgU25hcE9mZnNldEZvclRy
YW5zZm9ybXMsIGJvb2wqIHdhc0ZpeGVkID0gMCwgY29uc3QgTGF5b3V0U2l6ZSYgYWNjdW11bGF0
ZWRPZmZzZXQgPSBMYXlvdXRTaXplKCkpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29u
c3QgUmVuZGVyT2JqZWN0KiBwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVy
TW9kZWxPYmplY3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJikgY29uc3Qg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIG1hcEFic29sdXRlVG9Mb2NhbFBvaW50KE1hcENv
b3JkaW5hdGVzRmxhZ3MsIFRyYW5zZm9ybVN0YXRlJikgY29uc3Q7CiAgICAgdmlydHVhbCBib29s
IHJlcXVpcmVzQ29sdW1ucyhpbnQgZGVzaXJlZENvbHVtbkNvdW50KSBjb25zdCBPVkVSUklERTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9iamVj
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdGb3JlaWduT2JqZWN0LmNwcAkocmV2aXNpb24gMTM2NTU4KQorKysgU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWduT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTkzLDkgKzE5Myw5IEBAIGJvb2wgUmVuZGVyU1ZHRm9yZWlnbk9iamVjdDo6bm9kZUF0UG9p
bnQKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgUmVuZGVyU1ZHRm9yZWlnbk9iamVjdDo6
bWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50
Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIE1hcENvb3JkaW5hdGVz
RmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQpIGNvbnN0Cit2b2lkIFJlbmRlclNWR0ZvcmVpZ25P
YmplY3Q6Om1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCog
cmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBDb29y
ZGluYXRlc0ZsYWdzIG1vZGUsIGJvb2wqIHdhc0ZpeGVkLCBjb25zdCBMYXlvdXRTaXplJiBhY2N1
bXVsYXRlZE9mZnNldCkgY29uc3QKIHsKLSAgICBTVkdSZW5kZXJTdXBwb3J0OjptYXBMb2NhbFRv
Q29udGFpbmVyKHRoaXMsIHJlcGFpbnRDb250YWluZXIsIHRyYW5zZm9ybVN0YXRlLCBtb2RlICYg
U25hcE9mZnNldEZvclRyYW5zZm9ybXMsIHdhc0ZpeGVkKTsKKyAgICBTVkdSZW5kZXJTdXBwb3J0
OjptYXBMb2NhbFRvQ29udGFpbmVyKHRoaXMsIHJlcGFpbnRDb250YWluZXIsIHRyYW5zZm9ybVN0
YXRlLCBtb2RlLCB3YXNGaXhlZCwgYWNjdW11bGF0ZWRPZmZzZXQpOwogfQogCiBjb25zdCBSZW5k
ZXJPYmplY3QqIFJlbmRlclNWR0ZvcmVpZ25PYmplY3Q6OnB1c2hNYXBwaW5nVG9Db250YWluZXIo
Y29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0b3JUb1N0b3BBdCwgUmVuZGVyR2Vv
bWV0cnlNYXAmIGdlb21ldHJ5TWFwKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWduT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWduT2JqZWN0LmgJKHJldmlzaW9uIDEz
NjU1OCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9i
amVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC01NCw3ICs1NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIGJvb2wgbm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0
JiwgY29uc3QgSGl0VGVzdExvY2F0aW9uJiBsb2NhdGlvbkluQ29udGFpbmVyLCBjb25zdCBMYXlv
dXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQsIEhpdFRlc3RBY3Rpb24pIE9WRVJSSURFOwogICAg
IHZpcnR1YWwgYm9vbCBpc1NWR0ZvcmVpZ25PYmplY3QoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9
CiAKLSAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXll
ck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3Jk
aW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jt
cywgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQg
bWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50
Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNv
bnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCogd2FzRml4ZWQgPSAw
LCBjb25zdCBMYXlvdXRTaXplJiBhY2N1bXVsYXRlZE9mZnNldCA9IExheW91dFNpemUoKSkgY29u
c3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBSZW5kZXJPYmplY3QqIHB1c2hNYXBwaW5n
VG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0b3JUb1N0b3BB
dCwgUmVuZGVyR2VvbWV0cnlNYXAmKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQg
c2V0TmVlZHNUcmFuc2Zvcm1VcGRhdGUoKSB7IG1fbmVlZHNUcmFuc2Zvcm1VcGRhdGUgPSB0cnVl
OyB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5l
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R0lubGluZS5jcHAJKHJldmlzaW9uIDEzNjU1OCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHSW5saW5lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzksOSArNzksOSBA
QCB2b2lkIFJlbmRlclNWR0lubGluZTo6Y29tcHV0ZUZsb2F0UmVjdEZvCiAgICAgU1ZHUmVuZGVy
U3VwcG9ydDo6Y29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQodGhpcywgcmVwYWludENvbnRhaW5l
ciwgcmVwYWludFJlY3QsIGZpeGVkKTsKIH0KIAotdm9pZCBSZW5kZXJTVkdJbmxpbmU6Om1hcExv
Y2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRh
aW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBDb29yZGluYXRlc0ZsYWdz
IG1vZGUsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAordm9pZCBSZW5kZXJTVkdJbmxpbmU6Om1hcExv
Y2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRh
aW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBDb29yZGluYXRlc0ZsYWdz
IG1vZGUsIGJvb2wqIHdhc0ZpeGVkLCBjb25zdCBMYXlvdXRTaXplJiBhY2N1bXVsYXRlZE9mZnNl
dCkgY29uc3QKIHsKLSAgICBTVkdSZW5kZXJTdXBwb3J0OjptYXBMb2NhbFRvQ29udGFpbmVyKHRo
aXMsIHJlcGFpbnRDb250YWluZXIsIHRyYW5zZm9ybVN0YXRlLCBtb2RlICYgU25hcE9mZnNldEZv
clRyYW5zZm9ybXMsIHdhc0ZpeGVkKTsKKyAgICBTVkdSZW5kZXJTdXBwb3J0OjptYXBMb2NhbFRv
Q29udGFpbmVyKHRoaXMsIHJlcGFpbnRDb250YWluZXIsIHRyYW5zZm9ybVN0YXRlLCBtb2RlLCB3
YXNGaXhlZCwgYWNjdW11bGF0ZWRPZmZzZXQpOwogfQogCiBjb25zdCBSZW5kZXJPYmplY3QqIFJl
bmRlclNWR0lubGluZTo6cHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1v
ZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1hcCYgZ2VvbWV0cnlN
YXApIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lu
bGluZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHSW5saW5lLmgJKHJldmlzaW9uIDEzNjU1OCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHSW5saW5lLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDcgKzQ3LDcgQEAg
cHVibGljOgogCiAgICAgdmlydHVhbCBMYXlvdXRSZWN0IGNsaXBwZWRPdmVyZmxvd1JlY3RGb3JS
ZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIpIGNv
bnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlRmxvYXRSZWN0Rm9yUmVwYWlu
dChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBGbG9hdFJl
Y3QmLCBib29sIGZpeGVkID0gZmFsc2UpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9p
ZCBtYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFp
bnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29vcmRpbmF0ZXNGbGFncyA9IEFwcGx5
Q29udGFpbmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCA9
IDApIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVy
KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9y
bVN0YXRlJiwgTWFwQ29vcmRpbmF0ZXNGbGFncyA9IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNuYXBP
ZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCA9IDAsIGNvbnN0IExheW91dFNpemUm
IGFjY3VtdWxhdGVkT2Zmc2V0ID0gTGF5b3V0U2l6ZSgpKSBjb25zdCBPVkVSUklERTsKICAgICB2
aXJ0dWFsIGNvbnN0IFJlbmRlck9iamVjdCogcHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBS
ZW5kZXJMYXllck1vZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1h
cCYpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBhYnNvbHV0ZVF1YWRzKFZlY3Rv
cjxGbG9hdFF1YWQ+JiwgYm9vbCogd2FzRml4ZWQpIGNvbnN0OwogCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmNwcAko
cmV2aXNpb24gMTM2NTU4KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdNb2RlbE9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU3LDkgKzU3LDkgQEAgdm9pZCBS
ZW5kZXJTVkdNb2RlbE9iamVjdDo6Y29tcHV0ZUZsb2F0UgogICAgIFNWR1JlbmRlclN1cHBvcnQ6
OmNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50KHRoaXMsIHJlcGFpbnRDb250YWluZXIsIHJlcGFp
bnRSZWN0LCBmaXhlZCk7CiB9CiAKLXZvaWQgUmVuZGVyU1ZHTW9kZWxPYmplY3Q6Om1hcExvY2Fs
VG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5l
ciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBDb29yZGluYXRlc0ZsYWdzIG1v
ZGUsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAordm9pZCBSZW5kZXJTVkdNb2RlbE9iamVjdDo6bWFw
TG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29u
dGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIE1hcENvb3JkaW5hdGVzRmxh
Z3MgbW9kZSwgYm9vbCogd2FzRml4ZWQsIGNvbnN0IExheW91dFNpemUmIGFjY3VtdWxhdGVkT2Zm
c2V0KSBjb25zdAogewotICAgIFNWR1JlbmRlclN1cHBvcnQ6Om1hcExvY2FsVG9Db250YWluZXIo
dGhpcywgcmVwYWludENvbnRhaW5lciwgdHJhbnNmb3JtU3RhdGUsIG1vZGUgJiBTbmFwT2Zmc2V0
Rm9yVHJhbnNmb3Jtcywgd2FzRml4ZWQpOworICAgIFNWR1JlbmRlclN1cHBvcnQ6Om1hcExvY2Fs
VG9Db250YWluZXIodGhpcywgcmVwYWludENvbnRhaW5lciwgdHJhbnNmb3JtU3RhdGUsIG1vZGUs
IHdhc0ZpeGVkLCBhY2N1bXVsYXRlZE9mZnNldCk7CiB9CiAKIGNvbnN0IFJlbmRlck9iamVjdCog
UmVuZGVyU1ZHTW9kZWxPYmplY3Q6OnB1c2hNYXBwaW5nVG9Db250YWluZXIoY29uc3QgUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0b3JUb1N0b3BBdCwgUmVuZGVyR2VvbWV0cnlNYXAmIGdl
b21ldHJ5TWFwKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdNb2RlbE9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuaAkocmV2aXNpb24gMTM2NTU4KQorKysgU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5oCSh3b3JraW5nIGNv
cHkpCkBAIC01OCw3ICs1OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgYWJzb2x1dGVS
ZWN0cyhWZWN0b3I8SW50UmVjdD4mLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZz
ZXQpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBhYnNvbHV0ZVF1YWRzKFZlY3RvcjxGbG9hdFF1
YWQ+JiwgYm9vbCogd2FzRml4ZWQpIGNvbnN0OwogCi0gICAgdmlydHVhbCB2b2lkIG1hcExvY2Fs
VG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5l
ciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBDb29yZGluYXRlc0ZsYWdzID0gQXBwbHlDb250YWluZXJG
bGlwIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3Qg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBN
YXBDb29yZGluYXRlc0ZsYWdzID0gQXBwbHlDb250YWluZXJGbGlwIHwgU25hcE9mZnNldEZvclRy
YW5zZm9ybXMsIGJvb2wqIHdhc0ZpeGVkID0gMCwgY29uc3QgTGF5b3V0U2l6ZSYgYWNjdW11bGF0
ZWRPZmZzZXQgPSBMYXlvdXRTaXplKCkpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29u
c3QgUmVuZGVyT2JqZWN0KiBwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVy
TW9kZWxPYmplY3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJikgY29uc3Qg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHN0eWxlV2lsbENoYW5nZShTdHlsZURpZmZlcmVu
Y2UsIGNvbnN0IFJlbmRlclN0eWxlKiBuZXdTdHlsZSk7CiAgICAgdmlydHVhbCB2b2lkIHN0eWxl
RGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNw
cAkocmV2aXNpb24gMTM2NTU4KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdSb290LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDAxLDEyICs0MDEsMTIgQEAgdm9pZCBS
ZW5kZXJTVkdSb290Ojpjb21wdXRlRmxvYXRSZWN0Rm9yUgogLy8gVGhpcyBtZXRob2QgZXhwZWN0
cyBsb2NhbCBDU1MgYm94IGNvb3JkaW5hdGVzLgogLy8gQ2FsbGVycyB3aXRoIGxvY2FsIFNWRyB2
aWV3cG9ydCBjb29yZGluYXRlcyBzaG91bGQgZmlyc3QgYXBwbHkgdGhlIGxvY2FsVG9Cb3JkZXJC
b3hUcmFuc2Zvcm0KIC8vIHRvIGNvbnZlcnQgZnJvbSBTVkcgdmlld3BvcnQgY29vcmRpbmF0ZXMg
dG8gbG9jYWwgQ1NTIGJveCBjb29yZGluYXRlcy4KLXZvaWQgUmVuZGVyU1ZHUm9vdDo6bWFwTG9j
YWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFp
bmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIE1hcENvb3JkaW5hdGVzRmxhZ3Mg
bW9kZSwgYm9vbCogd2FzRml4ZWQpIGNvbnN0Cit2b2lkIFJlbmRlclNWR1Jvb3Q6Om1hcExvY2Fs
VG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5l
ciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBDb29yZGluYXRlc0ZsYWdzIG1v
ZGUsIGJvb2wqIHdhc0ZpeGVkLCBjb25zdCBMYXlvdXRTaXplJiBhY2N1bXVsYXRlZE9mZnNldCkg
Y29uc3QKIHsKICAgICBBU1NFUlQobW9kZSAmIH5Jc0ZpeGVkKTsgLy8gV2Ugc2hvdWxkIGhhdmUg
bm8gZml4ZWQgY29udGVudCBpbiB0aGUgU1ZHIHJlbmRlcmluZyB0cmVlLgogICAgIEFTU0VSVCht
b2RlICYgVXNlVHJhbnNmb3Jtcyk7IC8vIG1hcHBpbmcgYSBwb2ludCB0aHJvdWdoIFNWRyB3L28g
cmVzcGVjdGluZyB0cmFzbmZvcm1zIGlzIHVzZWxlc3MuCiAKLSAgICBSZW5kZXJSZXBsYWNlZDo6
bWFwTG9jYWxUb0NvbnRhaW5lcihyZXBhaW50Q29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwgbW9k
ZSB8IEFwcGx5Q29udGFpbmVyRmxpcCwgd2FzRml4ZWQpOworICAgIFJlbmRlclJlcGxhY2VkOjpt
YXBMb2NhbFRvQ29udGFpbmVyKHJlcGFpbnRDb250YWluZXIsIHRyYW5zZm9ybVN0YXRlLCBtb2Rl
IHwgQXBwbHlDb250YWluZXJGbGlwLCB3YXNGaXhlZCwgYWNjdW11bGF0ZWRPZmZzZXQpOwogfQog
CiBjb25zdCBSZW5kZXJPYmplY3QqIFJlbmRlclNWR1Jvb3Q6OnB1c2hNYXBwaW5nVG9Db250YWlu
ZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0b3JUb1N0b3BBdCwgUmVuZGVy
R2VvbWV0cnlNYXAmIGdlb21ldHJ5TWFwKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmgJKHJldmlzaW9uIDEzNjU1OCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xMDMsNyArMTAzLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIExheW91dFJlY3QgY2xpcHBl
ZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVw
YWludENvbnRhaW5lcikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVG
bG9hdFJlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRD
b250YWluZXIsIEZsb2F0UmVjdCYgcmVwYWludFJlY3QsIGJvb2wgZml4ZWQpIGNvbnN0IE9WRVJS
SURFOwogCi0gICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBD
b29yZGluYXRlc0ZsYWdzID0gQXBwbHlDb250YWluZXJGbGlwIHwgU25hcE9mZnNldEZvclRyYW5z
Zm9ybXMsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2
b2lkIG1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVw
YWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBDb29yZGluYXRlc0ZsYWdzID0gQXBw
bHlDb250YWluZXJGbGlwIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMsIGJvb2wqIHdhc0ZpeGVk
ID0gMCwgY29uc3QgTGF5b3V0U2l6ZSYgYWNjdW11bGF0ZWRPZmZzZXQgPSBMYXlvdXRTaXplKCkp
IGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgUmVuZGVyT2JqZWN0KiBwdXNoTWFw
cGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGFuY2VzdG9yVG9T
dG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJikgY29uc3QgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFs
IGJvb2wgY2FuQmVTZWxlY3Rpb25MZWFmKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmNwcAkocmV2
aXNpb24gMTM2NTU4KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdU
ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTExLDkgKzExMSw5IEBAIHZvaWQgUmVuZGVyU1ZH
VGV4dDo6Y29tcHV0ZUZsb2F0UmVjdEZvclIKICAgICBTVkdSZW5kZXJTdXBwb3J0Ojpjb21wdXRl
RmxvYXRSZWN0Rm9yUmVwYWludCh0aGlzLCByZXBhaW50Q29udGFpbmVyLCByZXBhaW50UmVjdCwg
Zml4ZWQpOwogfQogCi12b2lkIFJlbmRlclNWR1RleHQ6Om1hcExvY2FsVG9Db250YWluZXIoY29u
c3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3Rh
dGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUsIGJvb2wqIHdhc0Zp
eGVkKSBjb25zdAordm9pZCBSZW5kZXJTVkdUZXh0OjptYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0
IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRl
JiB0cmFuc2Zvcm1TdGF0ZSwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBib29sKiB3YXNGaXhl
ZCwgY29uc3QgTGF5b3V0U2l6ZSYgYWNjdW11bGF0ZWRPZmZzZXQpIGNvbnN0CiB7Ci0gICAgU1ZH
UmVuZGVyU3VwcG9ydDo6bWFwTG9jYWxUb0NvbnRhaW5lcih0aGlzLCByZXBhaW50Q29udGFpbmVy
LCB0cmFuc2Zvcm1TdGF0ZSwgbW9kZSAmIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCB3YXNGaXhl
ZCk7CisgICAgU1ZHUmVuZGVyU3VwcG9ydDo6bWFwTG9jYWxUb0NvbnRhaW5lcih0aGlzLCByZXBh
aW50Q29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwgbW9kZSwgd2FzRml4ZWQsIGFjY3VtdWxhdGVk
T2Zmc2V0KTsKIH0KIAogY29uc3QgUmVuZGVyT2JqZWN0KiBSZW5kZXJTVkdUZXh0OjpwdXNoTWFw
cGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGFuY2VzdG9yVG9T
dG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJiBnZW9tZXRyeU1hcCkgY29uc3QKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5oCShyZXZpc2lvbiAxMzY1
NTgpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuaAkod29y
a2luZyBjb3B5KQpAQCAtNzUsNyArNzUsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBj
b21wdXRlUmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWlu
dENvbnRhaW5lciwgTGF5b3V0UmVjdCYsIGJvb2wgZml4ZWQgPSBmYWxzZSkgY29uc3QgT1ZFUlJJ
REU7CiAgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50KGNvbnN0IFJl
bmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIEZsb2F0UmVjdCYsIGJvb2wg
Zml4ZWQgPSBmYWxzZSkgY29uc3QgT1ZFUlJJREU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgbWFwTG9j
YWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFp
bmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5l
ckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25z
dCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBS
ZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYs
IE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9y
VHJhbnNmb3JtcywgYm9vbCogd2FzRml4ZWQgPSAwLCBjb25zdCBMYXlvdXRTaXplJiBhY2N1bXVs
YXRlZE9mZnNldCA9IExheW91dFNpemUoKSkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBj
b25zdCBSZW5kZXJPYmplY3QqIHB1c2hNYXBwaW5nVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5
ZXJNb2RlbE9iamVjdCogYW5jZXN0b3JUb1N0b3BBdCwgUmVuZGVyR2VvbWV0cnlNYXAmKSBjb25z
dCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgYWRkQ2hpbGQoUmVuZGVyT2JqZWN0KiBjaGls
ZCwgUmVuZGVyT2JqZWN0KiBiZWZvcmVDaGlsZCA9IDApOwogICAgIHZpcnR1YWwgdm9pZCByZW1v
dmVDaGlsZChSZW5kZXJPYmplY3QqKSBPVkVSUklERTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcAkocmV2aXNpb24gMTM2NTU4
KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtODQsNyArODQsNyBAQCB2b2lkIFNWR1JlbmRlclN1cHBvcnQ6OmNv
bXB1dGVGbG9hdFJlY3RGCiAgICAgb2JqZWN0LT5wYXJlbnQoKS0+Y29tcHV0ZUZsb2F0UmVjdEZv
clJlcGFpbnQocmVwYWludENvbnRhaW5lciwgcmVwYWludFJlY3QsIGZpeGVkKTsKIH0KIAotdm9p
ZCBTVkdSZW5kZXJTdXBwb3J0OjptYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlck9iamVj
dCogb2JqZWN0LCBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVy
LCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIGJvb2wgc25hcE9mZnNldEZvclRyYW5z
Zm9ybXMsIGJvb2wqIHdhc0ZpeGVkKQordm9pZCBTVkdSZW5kZXJTdXBwb3J0OjptYXBMb2NhbFRv
Q29udGFpbmVyKGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBSZW5kZXJMYXllck1v
ZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3Rh
dGUsIGJvb2wgc25hcE9mZnNldEZvclRyYW5zZm9ybXMsIGJvb2wqIHdhc0ZpeGVkLCBjb25zdCBM
YXlvdXRTaXplJiBhY2N1bXVsYXRlZE9mZnNldCkKIHsKICAgICB0cmFuc2Zvcm1TdGF0ZS5hcHBs
eVRyYW5zZm9ybShvYmplY3QtPmxvY2FsVG9QYXJlbnRUcmFuc2Zvcm0oKSk7CiAKQEAgLTk5LDcg
Kzk5LDcgQEAgdm9pZCBTVkdSZW5kZXJTdXBwb3J0OjptYXBMb2NhbFRvQ29udGFpbgogICAgIE1h
cENvb3JkaW5hdGVzRmxhZ3MgbW9kZSA9IFVzZVRyYW5zZm9ybXM7CiAgICAgaWYgKHNuYXBPZmZz
ZXRGb3JUcmFuc2Zvcm1zKQogICAgICAgICBtb2RlIHw9IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1z
OwotICAgIHBhcmVudC0+bWFwTG9jYWxUb0NvbnRhaW5lcihyZXBhaW50Q29udGFpbmVyLCB0cmFu
c2Zvcm1TdGF0ZSwgbW9kZSwgd2FzRml4ZWQpOworICAgIHBhcmVudC0+bWFwTG9jYWxUb0NvbnRh
aW5lcihyZXBhaW50Q29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwgbW9kZSwgd2FzRml4ZWQsIGFj
Y3VtdWxhdGVkT2Zmc2V0KTsKIH0KIAogY29uc3QgUmVuZGVyT2JqZWN0KiBTVkdSZW5kZXJTdXBw
b3J0OjpwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0LCBj
b25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5kZXJHZW9t
ZXRyeU1hcCYgZ2VvbWV0cnlNYXApCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1NWR1JlbmRlclN1cHBvcnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuaAkocmV2aXNpb24gMTM2NTU4KQorKysgU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmgJKHdvcmtpbmcgY29weSkKQEAg
LTY4LDcgKzY4LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBGbG9hdFJlY3QgcmVwYWludFJlY3RG
b3JSZW5kZXJlckluTG9jYWxDb29yZGluYXRlc0V4Y2x1ZGluZ1NWR1NoYWRvdyhjb25zdCBSZW5k
ZXJPYmplY3QqKTsKICAgICBzdGF0aWMgTGF5b3V0UmVjdCBjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9y
UmVwYWludChjb25zdCBSZW5kZXJPYmplY3QqLCBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0
KiByZXBhaW50Q29udGFpbmVyKTsKICAgICBzdGF0aWMgdm9pZCBjb21wdXRlRmxvYXRSZWN0Rm9y
UmVwYWludChjb25zdCBSZW5kZXJPYmplY3QqLCBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0
KiByZXBhaW50Q29udGFpbmVyLCBGbG9hdFJlY3QmLCBib29sIGZpeGVkKTsKLSAgICBzdGF0aWMg
dm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlck9iamVjdCosIGNvbnN0IFJlbmRl
ckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgYm9v
bCBzbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcyA9IHRydWUsIGJvb2wqIHdhc0ZpeGVkID0gMCk7Cisg
ICAgc3RhdGljIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJPYmplY3QqLCBj
b25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1T
dGF0ZSYsIGJvb2wgc25hcE9mZnNldEZvclRyYW5zZm9ybXMgPSB0cnVlLCBib29sKiB3YXNGaXhl
ZCA9IDAsIGNvbnN0IExheW91dFNpemUmIGFjY3VtdWxhdGVkT2Zmc2V0ID0gTGF5b3V0U2l6ZSgp
KTsKICAgICBzdGF0aWMgY29uc3QgUmVuZGVyT2JqZWN0KiBwdXNoTWFwcGluZ1RvQ29udGFpbmVy
KGNvbnN0IFJlbmRlck9iamVjdCosIGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGFuY2Vz
dG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJik7CiAgICAgc3RhdGljIGJvb2wgY2hlY2tG
b3JTVkdSZXBhaW50RHVyaW5nTGF5b3V0KFJlbmRlck9iamVjdCopOwogCkluZGV4OiBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZp
c2lvbiAxMzY1NjApCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSwyMSBAQAorMjAxMi0xMi0wNCAgTGV2aSBXZWludHJhdWIgIDxsZXZpd0BjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgQWNjdW11bGF0ZSB1c2luZyBhIExheW91dFNpemUgaW4gbWFwTG9j
YWxUb0NvbnRhaW5lciB3aGVuIHBvc3NpYmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE3NzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGRpbmcgYWRkaXRpb25hbCBjb3ZlcmFnZSB0byBleGlzdGlu
ZyB0ZXN0IGZvciB0aGlzIGJlaGF2aW9yIHRvIGNhdGNoIHRoaXMgYnVnLCBhbmQgYWRkaW5nCisg
ICAgICAgIGEgdGVzdCBjb3ZlcmluZyBzYW1lIHdpdGggdHJhbnNmb3Jtcy4KKworICAgICAgICAq
IGZhc3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1pZnJhbWUtY29weS1vbi1zY3JvbGwuaHRtbDoKKyAg
ICAgICAgKiBmYXN0L3N1Yi1waXhlbC90cmFuc2Zvcm1lZC1pZnJhbWUtY29weS1vbi1zY3JvbGwu
aHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvZmFzdC9zdWIt
cGl4ZWwvc3ViLXBpeGVsLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC1leHBlY3RlZC5wbmc6CisgICAg
ICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvZmFzdC9zdWItcGl4ZWwvdHJhbnNmb3JtZWQt
aWZyYW1lLWNvcHktb24tc2Nyb2xsLWV4cGVjdGVkLnBuZzogQWRkZWQuCisgICAgICAgICogcGxh
dGZvcm0vY2hyb21pdW0tbGludXgvZmFzdC9zdWItcGl4ZWwvdHJhbnNmb3JtZWQtaWZyYW1lLWNv
cHktb24tc2Nyb2xsLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hy
b21pdW0td2luL2Zhc3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1pZnJhbWUtY29weS1vbi1zY3JvbGwt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlv
bnM6CisKIDIwMTItMTItMDQgIEFiaGlzaGVrIEFyeWEgIDxpbmZlcm5vQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBIZWFwLXVzZS1hZnRlci1mcmVlIGluIFdlYkNvcmU6OlN0eWxlQ2FjaGVkSW1h
Z2VTZXQ6OmNzc1ZhbHVlCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3N1Yi1waXhlbC9zdWItcGl4
ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC5odG1sCShyZXZp
c2lvbiAxMzY1NTgpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZy
YW1lLWNvcHktb24tc2Nyb2xsLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIsMTAgKzIsMTIgQEAK
IDxodG1sPgogPGhlYWQ+CiA8c3R5bGUgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJzY3JlZW4iPgor
LnN1YnBpeGVsUHVzaGVyIHsKKyAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgdG9wOiAwLjRw
eDsKK30KIC5jb250YWluZXIgewotICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAgICBwYWRkaW5n
OiAxMC4zcHg7Ci0gICAgei1pbmRleDogMTsKKyAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiB9
CiA8L3N0eWxlPgogPHNjcmlwdCBzcmM9Ii4uL3JlcGFpbnQvcmVzb3VyY2VzL3JlcGFpbnQuanMi
IHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+CkBAIC0xMywyNiArMTUsNDMgQEAKIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAKLWZ1
bmN0aW9uIHNldHVwSWZyYW1lKCkgewotICB2YXIgc3ViRG9jdW1lbnQgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnaWZyYW1lJykuY29udGVudFdpbmRvdy5kb2N1bWVudDsKLSAgc3ViRG9jdW1l
bnQub3BlbigndGV4dC9odG1sJywgJ3JlcGxhY2UnKTsKLSAgc3ViRG9jdW1lbnQud3JpdGUoIjwh
RE9DVFlQRSBodG1sPlxuPGh0bWw+PGJvZHkgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiBzaWx2
ZXI7aGVpZ2h0OiAxMDAwcHg7XCI+PC9ib2R5PiIpCi0gIHN1YkRvY3VtZW50LmNsb3NlKCk7Citm
dW5jdGlvbiBzZXR1cElmcmFtZXMoKSB7CisgIHNldHVwSWZyYW1lKGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdpZnJhbWUxJykuY29udGVudFdpbmRvdy5kb2N1bWVudCk7CisgIHNldHVwSWZyYW1l
KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpZnJhbWUyJykuY29udGVudFdpbmRvdy5kb2N1bWVu
dCk7CisgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpZnJhbWUxJykuY29udGVudFdpbmRvdy5z
Y3JvbGxUbygwLCAxMCk7Cit9CisKK2Z1bmN0aW9uIHNldHVwSWZyYW1lKGlmcmFtZSkgeworICBp
ZnJhbWUub3BlbigndGV4dC9odG1sJywgJ3JlcGxhY2UnKTsKKyAgaWZyYW1lLndyaXRlKCI8IURP
Q1RZUEUgaHRtbD5cbjxodG1sPjxib2R5IHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogc2lsdmVy
O2hlaWdodDogMTAwMHB4O1wiPjwvYm9keT4iKTsKKyAgaWZyYW1lLmNsb3NlKCk7CiB9CiAKIGZ1
bmN0aW9uIHJlcGFpbnRUZXN0KCkgewotICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaWZyYW1l
JykuY29udGVudFdpbmRvdy5zY3JvbGxUbygwLCAxMCk7CisgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdpZnJhbWUxJykuY29udGVudFdpbmRvdy5zY3JvbGxUbygwLCAwKTsKKyAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2lmcmFtZTInKS5jb250ZW50V2luZG93LnNjcm9sbFRvKDAsIDEwKTsK
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwog
fQogPC9zY3JpcHQ+CiA8L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InNldHVwSWZyYW1lKCk7cnVuUmVw
YWludFRlc3QoKSI+Ci0gIDxwPlRoZSBpZnJhbWUgYmVsb3cgc2hvdWxkIHJlbWFpbiBncmV5IHdo
ZW4gc2Nyb2xsaW5nLjwvcD4KLSAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KLSAgICA8aWZyYW1l
IGlkPSJpZnJhbWUiICBzdHlsZT0id2lkdGg6IDMwMHB4OyBoZWlnaHQ6IDIwMHB4OyI+PC9pZnJh
bWU+Cis8Ym9keSBvbmxvYWQ9InNldHVwSWZyYW1lcygpO3J1blJlcGFpbnRUZXN0KCkiPgorICA8
cD5UaGUgaWZyYW1lcyBiZWxvdyBzaG91bGQgcmVtYWluIGdyZXkgd2l0aCBubyByZXBhaW50IGFy
dGlmYWN0cyB3aGVuIHNjcm9sbGluZy48L3A+CisgIDxkaXY+CisgICAgPGRpdiBjbGFzcz0iY29u
dGFpbmVyIj4KKyAgICAgIDxkaXYgY2xhc3M9InN1YnBpeGVsUHVzaGVyIj4KKyAgICAgICAgPGRp
diBjbGFzcz0ic3VicGl4ZWxQdXNoZXIiPgorICAgICAgICA8aWZyYW1lIGlkPSJpZnJhbWUxIiAg
c3R5bGU9IndpZHRoOiAxNTBweDsgaGVpZ2h0OiAyMDBweDsiPjwvaWZyYW1lPgorICAgICAgPC9k
aXY+CisgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIi
PgorICAgICAgPGRpdiBjbGFzcz0ic3VicGl4ZWxQdXNoZXIiPgorICAgICAgICA8ZGl2IGNsYXNz
PSJzdWJwaXhlbFB1c2hlciI+CisgICAgICAgICAgPGlmcmFtZSBpZD0iaWZyYW1lMiIgIHN0eWxl
PSJ3aWR0aDogMTUwcHg7IGhlaWdodDogMjAwcHg7Ij48L2lmcmFtZT4KKyAgICAgICAgPC9kaXY+
CisgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KICAgPC9kaXY+Ci0gIDwvZGl2PgotCiA8L2JvZHk+
CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3N1Yi1waXhlbC90cmFuc2Zvcm1lZC1p
ZnJhbWUtY29weS1vbi1zY3JvbGwuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L3N1Yi1waXhlbC90cmFuc2Zvcm1lZC1pZnJhbWUtY29weS1vbi1zY3JvbGwuaHRtbAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qvc3ViLXBpeGVsL3RyYW5zZm9ybWVkLWlmcmFtZS1j
b3B5LW9uLXNjcm9sbC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDc5IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJz
Y3JlZW4iPgorLnN1YnBpeGVsUHVzaGVyIHsKKyAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAg
dG9wOiAwLjRweDsKKyAgICB6LWluZGV4OiAxOworfQorLmNvbnRhaW5lciB7CisgICAgZGlzcGxh
eTogaW5saW5lLWJsb2NrOworICAgIHBhZGRpbmctbGVmdDogODBweDsKKyAgICBwYWRkaW5nLXRv
cDogMTBweDsKK30KKy50cmFuc2Zvcm0geworICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlM2Qo
MCwgMCwgMSwgNDVkZWcpOworfQorPC9zdHlsZT4KKzxzY3JpcHQgc3JjPSIuLi9yZXBhaW50L3Jl
c291cmNlcy9yZXBhaW50LmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgorPHNj
cmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25l
KCk7CisKK2Z1bmN0aW9uIHNldHVwSWZyYW1lcygpIHsKKyAgc2V0dXBJZnJhbWUoZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2lmcmFtZTEnKS5jb250ZW50V2luZG93LmRvY3VtZW50KTsKKyAgc2V0
dXBJZnJhbWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lmcmFtZTInKS5jb250ZW50V2luZG93
LmRvY3VtZW50KTsKKyAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lmcmFtZTEnKS5jb250ZW50
V2luZG93LnNjcm9sbFRvKDAsIDEwKTsKK30KKworZnVuY3Rpb24gc2V0dXBJZnJhbWUoaWZyYW1l
KSB7CisgIGlmcmFtZS5vcGVuKCd0ZXh0L2h0bWwnLCAncmVwbGFjZScpOworICBpZnJhbWUud3Jp
dGUoIjwhRE9DVFlQRSBodG1sPlxuPGh0bWw+PGJvZHkgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9y
OiBzaWx2ZXI7aGVpZ2h0OiAxMDAwcHg7XCI+PC9ib2R5PiIpOworICBpZnJhbWUuY2xvc2UoKTsK
K30KKworZnVuY3Rpb24gcmVwYWludFRlc3QoKSB7CisgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdpZnJhbWUxJykuY29udGVudFdpbmRvdy5zY3JvbGxUbygwLCAwKTsKKyAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2lmcmFtZTInKS5jb250ZW50V2luZG93LnNjcm9sbFRvKDAsIDEwKTsKKyAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfQor
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNldHVwSWZyYW1lcygpO3J1blJlcGFp
bnRUZXN0KCkiPgorICA8cD5UaGUgaWZyYW1lcyBiZWxvdyBzaG91bGQgcmVtYWluIGdyZXkgd2l0
aCBubyByZXBhaW50IGFydGlmYWN0cyB3aGVuIHNjcm9sbGluZy48L3A+CisgIDxkaXY+CisgICAg
PGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgIDxkaXYgY2xhc3M9InRyYW5zZm9ybSI+Cisg
ICAgICAgIDxkaXYgY2xhc3M9InN1YnBpeGVsUHVzaGVyIj4KKyAgICAgICAgICA8ZGl2IGNsYXNz
PSJzdWJwaXhlbFB1c2hlciI+CisgICAgICAgICAgICA8aWZyYW1lIGlkPSJpZnJhbWUxIiAgc3R5
bGU9IndpZHRoOiAxNTBweDsgaGVpZ2h0OiAyMDBweDsiPjwvaWZyYW1lPgorICAgICAgICAgIDwv
ZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorICAgIDxkaXYg
Y2xhc3M9ImNvbnRhaW5lciI+CisgICAgICA8ZGl2IGNsYXNzPSJzdWJwaXhlbFB1c2hlciI+Cisg
ICAgICAgIDxkaXYgY2xhc3M9InN1YnBpeGVsUHVzaGVyIj4KKyAgICAgICAgICA8ZGl2IGNsYXNz
PSJzdWJwaXhlbFB1c2hlciI+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0cmFuc2Zvcm0iPgor
ICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJwaXhlbFB1c2hlciI+CisgICAgICAgICAgICAg
ICAgPGRpdiBjbGFzcz0ic3VicGl4ZWxQdXNoZXIiPgorICAgICAgICAgICAgICAgICAgPGRpdiBj
bGFzcz0ic3VicGl4ZWxQdXNoZXIiPgorICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0
cmFuc2Zvcm0iPgorICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1YnBpeGVsUHVz
aGVyIj4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxpZnJhbWUgaWQ9ImlmcmFtZTIiICBzdHls
ZT0id2lkdGg6IDE1MHB4OyBoZWlnaHQ6IDIwMHB4OyI+PC9pZnJhbWU+CisgICAgICAgICAgICAg
ICAgICAgICAgPC9kaXY+CisgICAgICAgICAgICAgICAgICAgIDwvZGl2PgorICAgICAgICAgICAg
ICAgICAgPC9kaXY+ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIDwvZGl2PgorICAg
ICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgICAgIDwvZGl2PgorICAgICAgICAgIDwvZGl2Pgor
ICAgICAgICA8L2Rpdj4KKyAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorICA8L2Rpdj4KKzwvYm9k
eT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2Zh
c3Qvc3ViLXBpeGVsL3RyYW5zZm9ybWVkLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvZmFz
dC9zdWItcGl4ZWwvdHJhbnNmb3JtZWQtaWZyYW1lLWNvcHktb24tc2Nyb2xsLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2Zh
c3Qvc3ViLXBpeGVsL3RyYW5zZm9ybWVkLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTIgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAw
eDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkg
c2l6ZSA4MDB4Mjc5CisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHgyNzkK
KyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCwxNikgc2l6ZSA3ODR4MjU1CisgICAgICBSZW5k
ZXJCbG9jayB7UH0gYXQgKDAsMCkgc2l6ZSA3ODR4MjAKKyAgICAgICAgUmVuZGVyVGV4dCB7I3Rl
eHR9IGF0ICgwLDApIHNpemUgNDY1eDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lk
dGggNDY1OiAiVGhlIGlmcmFtZXMgYmVsb3cgc2hvdWxkIHJlbWFpbiBncmV5IHdpdGggbm8gcmVw
YWludCBhcnRpZmFjdHMgd2hlbiBzY3JvbGxpbmcuIgorICAgICAgUmVuZGVyQmxvY2sge0RJVn0g
YXQgKDAsMzYpIHNpemUgNzg0eDIxOQorICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCww
KSBzaXplIDIzNHgyMTkKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgyMzQsMTk5KSBz
aXplIDR4MTkKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMjM0LDE5OSkgd2lkdGggNDogIiAiCisg
ICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgyMzgsMCkgc2l6ZSAyMzR4MjE5CisgICAgICAg
IFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAorbGF5ZXIgYXQgKDg4LDYyKSBz
aXplIDE1NHgyMDkKKyAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDgwLDEwKSBzaXplIDE1NHgyMDkK
K2xheWVyIGF0ICg4OCw2Mikgc2l6ZSAxNTR4MjA5CisgIFJlbmRlckJsb2NrIChyZWxhdGl2ZSBw
b3NpdGlvbmVkKSB6STogMSB7RElWfSBhdCAoMCwwKSBzaXplIDE1NHgyMDkKK2xheWVyIGF0ICg4
OCw2Mykgc2l6ZSAxNTR4MjA5CisgIFJlbmRlckJsb2NrIChyZWxhdGl2ZSBwb3NpdGlvbmVkKSB6
STogMSB7RElWfSBhdCAoMCwwKSBzaXplIDE1NHgyMDkKKyAgICBSZW5kZXJQYXJ0T2JqZWN0IHtJ
RlJBTUV9IGF0ICgwLDApIHNpemUgMTU0eDIwNCBbYm9yZGVyOiAoMnB4IGluc2V0ICMwMDAwMDAp
XQorICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxMzV4MTAxNgorICAgICAgICBSZW5kZXJWaWV3
IGF0ICgwLDApIHNpemUgMTM1eDIwMAorICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxMzV4MTAx
NgorICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAxMzV4MTAxNgorICAg
ICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgMTE5eDEwMDAgW2JnY29sb3I9
I0MwQzBDMF0KKyAgICBSZW5kZXJUZXh0IHpJOiAxIHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAK
K2xheWVyIGF0ICgzMjYsNjIpIHNpemUgMTU0eDIwOQorICBSZW5kZXJCbG9jayAocmVsYXRpdmUg
cG9zaXRpb25lZCkgekk6IDEge0RJVn0gYXQgKDgwLDEwKSBzaXplIDE1NHgyMDkKK2xheWVyIGF0
ICgzMjYsNjMpIHNpemUgMTU0eDIwOQorICBSZW5kZXJCbG9jayAocmVsYXRpdmUgcG9zaXRpb25l
ZCkgekk6IDEge0RJVn0gYXQgKDAsMCkgc2l6ZSAxNTR4MjA5CitsYXllciBhdCAoMzI2LDYzKSBz
aXplIDE1NHgyMDkKKyAgUmVuZGVyQmxvY2sgKHJlbGF0aXZlIHBvc2l0aW9uZWQpIHpJOiAxIHtE
SVZ9IGF0ICgwLDApIHNpemUgMTU0eDIwOQorbGF5ZXIgYXQgKDMyNiw2Mykgc2l6ZSAxNTR4MjA5
CisgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgMTU0eDIwOQorbGF5ZXIgYXQgKDMy
Niw2NCkgc2l6ZSAxNTR4MjA5CisgIFJlbmRlckJsb2NrIChyZWxhdGl2ZSBwb3NpdGlvbmVkKSB6
STogMSB7RElWfSBhdCAoMCwwKSBzaXplIDE1NHgyMDkKK2xheWVyIGF0ICgzMjYsNjQpIHNpemUg
MTU0eDIwOQorICBSZW5kZXJCbG9jayAocmVsYXRpdmUgcG9zaXRpb25lZCkgekk6IDEge0RJVn0g
YXQgKDAsMCkgc2l6ZSAxNTR4MjA5CitsYXllciBhdCAoMzI2LDY0KSBzaXplIDE1NHgyMDkKKyAg
UmVuZGVyQmxvY2sgKHJlbGF0aXZlIHBvc2l0aW9uZWQpIHpJOiAxIHtESVZ9IGF0ICgwLDApIHNp
emUgMTU0eDIwOQorbGF5ZXIgYXQgKDMyNiw2NCkgc2l6ZSAxNTR4MjA5CisgIFJlbmRlckJsb2Nr
IHtESVZ9IGF0ICgwLDApIHNpemUgMTU0eDIwOQorbGF5ZXIgYXQgKDMyNiw2NSkgc2l6ZSAxNTR4
MjA5CisgIFJlbmRlckJsb2NrIChyZWxhdGl2ZSBwb3NpdGlvbmVkKSB6STogMSB7RElWfSBhdCAo
MCwwKSBzaXplIDE1NHgyMDkKKyAgICBSZW5kZXJQYXJ0T2JqZWN0IHtJRlJBTUV9IGF0ICgwLDAp
IHNpemUgMTU0eDIwNCBbYm9yZGVyOiAoMnB4IGluc2V0ICMwMDAwMDApXQorICAgICAgbGF5ZXIg
YXQgKDAsMCkgc2l6ZSAxMzV4MTAxNgorICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUg
MTM1eDIwMAorICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxMzV4MTAxNgorICAgICAgICBSZW5k
ZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAxMzV4MTAxNgorICAgICAgICAgIFJlbmRlckJv
ZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgMTE5eDEwMDAgW2JnY29sb3I9I0MwQzBDMF0KKyAgICBS
ZW5kZXJUZXh0IHpJOiAxIHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKSW5kZXg6IExheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9mYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZyYW1l
LWNvcHktb24tc2Nyb2xsLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS13aW4vZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWlmcmFtZS1jb3B5
LW9uLXNjcm9sbC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDEzNjU1OCkKKysrIExheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtLXdpbi9mYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNv
cHktb24tc2Nyb2xsLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwxNyArMSwzNiBA
QAogbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6
ZSA4MDB4NjAwCi1sYXllciBhdCAoMCwwKSBzaXplIDgwMHg1MgotICBSZW5kZXJCbG9jayB7SFRN
TH0gYXQgKDAsMCkgc2l6ZSA4MDB4NTIKLSAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCwxNikg
c2l6ZSA3ODR4MjAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDI2OQorICBSZW5kZXJCbG9jayB7
SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4MjY5CisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgs
MTYpIHNpemUgNzg0eDI0NQogICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDApIHNpemUgNzg0
eDIwCi0gICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDMxNXgxOQotICAg
ICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDMxNTogIlRoZSBpZnJhbWUgYmVsb3cgc2hv
dWxkIHJlbWFpbiBncmV5IHdoZW4gc2Nyb2xsaW5nLiIKLWxheWVyIGF0ICg4LDUyKSBzaXplIDMy
NXgyMzAKLSAgUmVuZGVyQmxvY2sgKHBvc2l0aW9uZWQpIHpJOiAxIHtESVZ9IGF0ICg4LDUyKSBz
aXplIDMyNXgyMzAKLSAgICBSZW5kZXJQYXJ0T2JqZWN0IHtJRlJBTUV9IGF0ICgxMCwxMCkgc2l6
ZSAzMDR4MjA1IFtib3JkZXI6ICgycHggaW5zZXQgIzAwMDAwMCldCi0gICAgICBsYXllciBhdCAo
MCwwKSBzaXplIDI4NXgxMDE2Ci0gICAgICAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSAyODV4
MjAwCi0gICAgICBsYXllciBhdCAoMCwwKSBzaXplIDI4NXgxMDE2Ci0gICAgICAgIFJlbmRlckJs
b2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDI4NXgxMDE2Ci0gICAgICAgICAgUmVuZGVyQm9keSB7
Qk9EWX0gYXQgKDgsOCkgc2l6ZSAyNjl4MTAwMCBbYmdjb2xvcj0jQzBDMEMwXQotICAgIFJlbmRl
clRleHQgekk6IDEgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0NjV4MTkKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCww
KSB3aWR0aCA0NjU6ICJUaGUgaWZyYW1lcyBiZWxvdyBzaG91bGQgcmVtYWluIGdyZXkgd2l0aCBu
byByZXBhaW50IGFydGlmYWN0cyB3aGVuIHNjcm9sbGluZy4iCisgICAgICBSZW5kZXJCbG9jayB7
RElWfSBhdCAoMCwzNikgc2l6ZSA3ODR4MjA5CisgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0
ICgwLDApIHNpemUgMTU0eDIwOQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDE1NCwx
ODkpIHNpemUgNHgxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgxNTQsMTg5KSB3aWR0aCA0OiAi
ICIKKyAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDE1OCwwKSBzaXplIDE1NHgyMDkKKyAg
ICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCitsYXllciBhdCAoOCw1
Mikgc2l6ZSAxNTR4MjA5CisgIFJlbmRlckJsb2NrIChyZWxhdGl2ZSBwb3NpdGlvbmVkKSB7RElW
fSBhdCAoMCwwKSBzaXplIDE1NHgyMDkKK2xheWVyIGF0ICg4LDUzKSBzaXplIDE1NHgyMDkKKyAg
UmVuZGVyQmxvY2sgKHJlbGF0aXZlIHBvc2l0aW9uZWQpIHtESVZ9IGF0ICgwLDApIHNpemUgMTU0
eDIwOQorICAgIFJlbmRlclBhcnRPYmplY3Qge0lGUkFNRX0gYXQgKDAsMCkgc2l6ZSAxNTR4MjA0
IFtib3JkZXI6ICgycHggaW5zZXQgIzAwMDAwMCldCisgICAgICBsYXllciBhdCAoMCwwKSBzaXpl
IDEzNXgxMDE2CisgICAgICAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSAxMzV4MjAwCisgICAg
ICBsYXllciBhdCAoMCwwKSBzaXplIDEzNXgxMDE2CisgICAgICAgIFJlbmRlckJsb2NrIHtIVE1M
fSBhdCAoMCwwKSBzaXplIDEzNXgxMDE2CisgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQg
KDgsOCkgc2l6ZSAxMTl4MTAwMCBbYmdjb2xvcj0jQzBDMEMwXQorICAgIFJlbmRlclRleHQgeyN0
ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAorbGF5ZXIgYXQgKDE2Niw1Mikgc2l6ZSAxNTR4MjA5Cisg
IFJlbmRlckJsb2NrIChyZWxhdGl2ZSBwb3NpdGlvbmVkKSB7RElWfSBhdCAoMCwwKSBzaXplIDE1
NHgyMDkKK2xheWVyIGF0ICgxNjYsNTMpIHNpemUgMTU0eDIwOQorICBSZW5kZXJCbG9jayAocmVs
YXRpdmUgcG9zaXRpb25lZCkge0RJVn0gYXQgKDAsMCkgc2l6ZSAxNTR4MjA5CisgICAgUmVuZGVy
UGFydE9iamVjdCB7SUZSQU1FfSBhdCAoMCwwKSBzaXplIDE1NHgyMDQgW2JvcmRlcjogKDJweCBp
bnNldCAjMDAwMDAwKV0KKyAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTM1eDEwMTYKKyAgICAg
ICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDEzNXgyMDAKKyAgICAgIGxheWVyIGF0ICgwLDAp
IHNpemUgMTM1eDEwMTYKKyAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUg
MTM1eDEwMTYKKyAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDExOXgx
MDAwIFtiZ2NvbG9yPSNDMEMwQzBdCisgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNp
emUgMHgwCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRp
b25zCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBl
Y3RhdGlvbnMJKHJldmlzaW9uIDEzNjU1OCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL1Rlc3RFeHBlY3RhdGlvbnMJKHdvcmtpbmcgY29weSkKQEAgLTQxMzEsNiArNDEzMSwxMCBA
QCBCdWcoZHByYW5rZSkgWyBXaW4gXSB3ZWJhdWRpby9jb2RlYy10ZXN0CiAKIHdlYmtpdC5vcmcv
Yi8xMDAwMjMgWyBNYWMgXSBmYXN0L3N1Yi1waXhlbC9maWxlLXVwbG9hZC1jb250cm9sLWF0LWZy
YWN0aW9uYWwtb2Zmc2V0Lmh0bWwgWyBGYWlsdXJlIEltYWdlT25seUZhaWx1cmUgXQogCisjIE5l
ZWRzIHJlYmFzZWxpbmUgYWZ0ZXIgYm90cyBjeWNsZQorQnVnKGxldml3KSBbIFdpbiBNYWMgXSBm
YXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLmh0bWwgWyBQYXNz
IEltYWdlT25seUZhaWx1cmUgRmFpbHVyZSBdCitCdWcobGV2aXcpIFsgTGludXggV2luIE1hYyBd
IGZhc3Qvc3ViLXBpeGVsL3RyYW5zZm9ybWVkLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC5odG1sIFsg
UGFzcyBJbWFnZU9ubHlGYWlsdXJlIEZhaWx1cmUgXQorCiB3ZWJraXQub3JnL2IvMTAwNDc4ICBb
IE1hYyBdIGNzczMvZmlsdGVycy9jdXN0b20vZWZmZWN0LWN1c3RvbS5odG1sIFsgSW1hZ2VPbmx5
RmFpbHVyZSBdCiAKIHdlYmtpdC5vcmcvYi8xMDA0MjQgZWRpdGluZy9zZWxlY3Rpb24vdXNlci1z
ZWxlY3QtYWxsLXNlbGVjdGlvbi5odG1sIFsgRmFpbHVyZSBdCkluZGV4OiBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS1saW51eC9mYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNv
cHktb24tc2Nyb2xsLWV4cGVjdGVkLnBuZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNwbGF5OiBmaWxl
IG1hcmtlZCBhcyBhIGJpbmFyeSB0eXBlLgpzdm46bWltZS10eXBlID0gaW1hZ2UvcG5nCgppVkJP
UncwS0dnb0FBQUFOU1VoRVVnQUFBeUFBQUFKWUNBSUFBQUFWRkJVbkFBQUFLWFJGV0hSamFHVmph
M04xYlFBM01EQmhOMlJpCk5HWTNPVGhpT1RKbVkyUmpPR0V3TVdJellXVXlZemhqWkxrYnluMEFB
QnFQU1VSQlZIaWM3ZDFaY3hUbnZjRGhGb05rZ1FDSDRCSmkKTFlQWXdSaEMyRXdNaVYxRkNtS2NW
T0tVYnZoSStRYTU1WWFrNHNSbE80bUpzNUFVdTRMWVpCWmJpRjBnUUt5V3pDYWRpNjR6WjQ1NgpS
aHQvQ2MzVTgxeTR4dEowOTl2dk82UDVNV3BKVlUxTlRRa0FBSEVtdk9vQkFBQlVHb0VGQUJCTVlB
RUFCQk5ZQUFEQkJCWUFRRENCCkJRQVFUR0FCQUFRVFdBQUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUx
Z0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllBQURCQkJZQVFEQ0IKQlFBUVRHQUJBQVRMclZxMXF1
Z245dTdkMjFyQ2pCa3ovdk9mL3l4ZXZIaTRCL3Y3My8rK2NPSENKRWw2ZTN0UG5UcDE2TkNoYytm
Two1WEs1R1RObXZPeDVERk5IUjhmUVQyRllkeDd0d1F4ckQ2TTk4cXo4RW85bjJVR08vVVM5akxH
WjVISHliQjIzUzVNZldPRUl5K0x4CkQ0eU5pUU44YnVYS2xTdFdySmd3WWNMZXZYdWJtcHA2ZTN0
UG56NTk3dHk1bzBlUGZ2ZmRkeU00MlB2dnY1L2VPSFBtVEgxOS9Zb1YKS3pvNk9rNmZQcjFreVpL
UmpQMGxET3NVamgwNzF0UFRNMDRHVTFTcEViNzhub2NydjhUaldYYVFZejlSTDJOc0pubWNQRnZI
N2RMawpuM1NGejc2eWVQd0RZNlBrdHdpblRadTJkT25TQ1JQKzd3NFRKa3hZc1dMRnRHblRkdTNh
OVpKSHZYejU4c3laTTZ1cnErZlBuLyt6Cm4vM3NKZmMyQXNNNmhROCsrR0QwUnBJTWN6QkZsUnJo
eSsrNXN1M2R1emU5VVVrVGxUK3BxRzFIOW14OW1XRVVHcmRMazMvU2pmYlgKQjZCTWxReXNIVHQy
VkZkWDkvdGdkWFgxamgwN0NxdHJaTHE3dTE5K0owUDAvUG56N0FlSGRmUlJHbXArWUMrLy8xSjdH
TE5KTGtjUApIanpJMzY2WWlTbzhxYWh0Ui9Cc0xicXJvcy9FUVkzRzBveHNKUDNrQjFZeER4NGcx
a0RmSWh6WTQ4ZVBEeDA2OVBEaHd6VnIxalEyCk5pWko4dUxGaTJQSGpsMjdkbTNLbENsYnRteVpP
blZxNGYwN09qcGFXbHAyN3R5Wi90TTIvZS9XclZ0YldscVdMRmx5NXN5WnlaTW4KYjkrKy9lTEZp
MTk5OVZWM2QzZHRiZTN5NWN2VFN4eGFXbHEyYmR0MjZOQ2hCdzhlckYyN2RzYU1HWWNQSDM3OCtQ
SGJiNys5YU5HaQpVb2YrNXB0dldscGE1c3laYy9YcTFhYW1wdXdwM0w1OXU3bTV1YWVuNTYyMzNz
cGY1REh3V1NSSmN2WHExZVBIai9mMjlxNWV2YnF4CnNmSHg0OGVmZi81NWtpUkxseTVkdEdqUjU1
OS9YbFZWbGN2bDFxMWJkK2ZPbmJhMnRpUkpQdnJvbzF3dWw5OUQwWUZsNXpON3JQeTgKcFZzVjNp
NTA3ZHExVTZkTzlmVDByRisvUG52VzZYd1d6bm4ybEljeTU2VldhdWZPbmVtTnJWdTNIajU4K01H
REIvbE5DajE4K1BESQprU1AzNzkrZk0yZk81czJicTZxcUJoM1l2WHYzRGgwNmxDVEp3b1VMMTY5
ZjM5emNuRTd2cjM3MXE0a1RKNlp6T09oYS9PaEhQenA1Cjh1VE9uVHNQSGp5WXp1SGN1WE8zYk5s
U2Fna0tKNjNvR1dYWGFBU3pmZUxFaVUyYk5oMDlldlRSbzBjYk5teVlQMzkrdXZsd0p6bDcKVW5t
bGRwVWYyNHNYTC9MYkxseTRNUHRzYldwcXl1NGtTWksrdnI1VHAwNjF0YlhsY3JsVnExWTFOamIy
RzBhcForSVFuenRGbDZiVQpnM2JnUjExMkpObkJaNWRzMEZVdVhPc0JIdi9aeDN6Ui9RQ1ZZZVNC
MWRIUjhlTWYvL2pPblR0SGp4NU52K0tjUG4yNm9hRmh3NFlOCnQyN2RPbjc4K0xadDJ3cnZuNytX
b3FtcEtiMm9LMG1TUC8zcFQwK2VQSmswYWRJdmZ2R0w5RzZ0cmEzdnYvLytwRW1UN3R5NXMzLy8K
L3NXTEY2Y2JkbloyYnR1MjdlYk5tOGVPSFh2cnJiZCs4cE9mZEhWMUhUcDBLUDNLVmZUUTZldm8v
ZnYzcjE2OVd2UVVlbnA2dG0vZgozdDNkZmVUSWtkcmEybm56NWcxNkZsMWRYVzF0YlR0MjdPanE2
anA0OE9EVXFWUHI2K3MvL1BERGZmdjJMVisrL0xYWFhtdHFhdnJrCmswOSsrdE9mMXRiV3pwdzU4
L3IxNnp0MjdDaXNxMUlEeTg1bjBXTjk4TUVIbjMzMldickp6cDA3Ly96blAvYzdxVnUzYmwyNGNH
SGIKdG0wMU5UVVhMbHpJbnZXUkkwZjZ6WG4ybEljeTU2VldLci9XSFIwZFc3ZHV2WHYzN3VIRGg3
TXZkUWNQSGx5eFlzV2NPWFBPblR2Mwp1OS85THBmTFRadzRjZUNCYmQyNmRmTGt5Y2VPSFZ1OWVu
V1NKRC84NFE5djNMang3cnZ2cG5XVkpNbVVLVk1HWFl1Ly9PVXY2U0IzCjdOaVJmeHlXV29LOFVt
ZFVkSTJHTzl2cGZicTZ1dDU3NzcyblQ1OGVQbnc0bDh2Tm1UTm5CSk9jUGFtODdLNnlZOHR2Kzhr
bm4yU2YKclVWM2tpVEoyYk5uYTJwcWZ2N3puMSs1Y3FXMXRiV3hzYkhmTUVvOUU0ZXlYdWx6Wnlo
ZmJZYnlxTXVPSkR2NDdMUU11c3FGRDVJQgpIaTNaeDN5YWowQkZHdm1iMjRzWEw2NnVybTVvYU1o
Zmducmx5cFVqUjQ3OC92ZS8vL2UvLzMzNzl1MSs5eTk2cGNLSEgzNllKRW42CldwTGF0V3RYYlcx
dGUzdjc4ZVBIMDM5U3B4c3VXTENndXJwNjd0eTV6NTQ5Vzd4NGNVMU56Y3laTTU4K2ZUckFvU2RQ
bm56ejVzM1oKczJjWGZiMUprbVQrL1BtNVhHN3ExS2tiTm13NGUvYnNVTTZpcGFWbC9mcjFOVFUx
RFEwTmE5ZXVQWDc4ZUpJa2t5Wk5talZyMXZYcgoxNU1rNmVycSt1Njc3OUxiVjY1Y2VmUE5OMnRx
YXZydHBPakFzdk5aOUZoMWRYWDVUYkx2cmlWSmN1Yk1tZlhyMTlmVjFWVlhWeGU5Ckhqazc1OWxU
SHNxY2wxcXA1SCt2bTBrM2FXaG95RzlTNlBIangzUG16TW5sY3N1V0xaczJiZHBISDMwMDZNQ3Fx
cXJlZU9PTjJiTm4KdDdlM0owblMyZGxaVjFjM2ZmcjB3dDBPdWhZRFhER1RYWUs4VW1kVWRJMkdP
OXZwemhzYkc2dXJxK3ZxNm43d2d4K2NPSEVpWkpMNwpuVUsvWFdYSGxqZkFWWDM5ZHBJa1NWdGIy
NkpGaTNLNTNJSUZDNHB1T01BemNZalBuYUY4dFJuS2hHUkhraDE4ZGxvR1hlVitrMVpxCkpObkhm
Tkg5QUpWaDVPOWdwUXJmNVg3eTVFbXBsRW1TcE4rN09LbnM1UXYzN3QxcmJtNmVQWHYyTysrOGs3
NDlVN2hoNGVFR1BmUzIKYmR0T25qeDU5dXpaVFpzMnZmSEdHd09jeFpRcFUvSlhqUXg4RmwxZFhi
VzF0ZW50ZWZQbU5UYzNwN2ZuenAzN3pUZmZMRnk0OE91dgp2MTZ5Wk1uVnExY2JHeHZiMjl2ZmVl
ZWQ3RTRHR0ZqaFNaVTYxc0R1M2J1WGo3RHNWWFJKc1RuUG52SlE1bnlBbFNvOFJLbnZneXhZCnNP
RDgrZk5MbHk2OWNlUEdreWRQaGppd0pFa1dMVnEwZi8vK1pjdVdmZjMxMTBWL2VuL2d0U2o2T0N4
VWRNQ2x6bWpRTlJydWJDZEoKOHZycnIzZDNkNmUzWDNLU0MyVjNOY0RGUTZWbUtidVRKRWw2ZW5x
S1B0THlCbjRtRHYyNU0vQlRmaWdUa2gxSmR2RFphUm5pTTNIUQpwY2srNW9FS0ZubDU1clJwMC9L
M0wxKytQTEtkSERod1lOT21UU3RYcm56dHRkZGU4dENUSjAvZXZIbnpoZzBiMGd0M0J2RHc0Y1BY
ClgzOTlnRjBWSHFpam95TzkvZUxGaS95cnhjeVpNKy9ldmZ2NDhlTzdkKysrL2ZiYkR4NDh1SFhy
Vmk2WEs5eGIzaEFIVnVwWS9mVDIKOWhiKzc5eTVjKy9kdTVmZWZ2YnNXZllPUlErVXZ6MzBoUnZa
U3VVMU5qYmV1SEhqNDQ4L1BuMzY5S1pObTRZK3NMcTZ1cnE2dWt1WApMdDI1YzJmdTNMblpyWWEx
Rmk5cGlHdlViNVA4N2NMWnppOVRkM2QzL2o0dk9jbUZRblpWZENmVjFkVjlmWDBEYkRYd0EzNWs2
eld5CkIyMTJKSU1PUGhuUktoYzFsTWM4VURFR0Q2ejAxYnFycXl2L1pTajk1M1g2cTEvU2QrelQy
N05temJwMDZkTHo1OCt2WExtUy9aS1gKYnRYZDNaM2UrZjc5Ky9rTkN3dmc2ZE9uRHg4KzdPbnB1
WFRwVXBJa0wxNjhLSFc0OUwvcFo0c2VldS9ldlZldlhwMDBhVkxSSHhySwo1WEx0N2UzUG56OS85
T2hSZW8xUit2SHNyZ29Ic0c3ZHVoTW5UdHk5ZS9mSmt5ZkhqeDlmczJaTmZtOHpaODQ4Y09EQWdn
VUxKa3lZCk1HdldyS05Iank1WXNLRG9sUFliV0trVExIV3NtcHFham82T1o4K2VwWmRZZmZiWlo0
VjdXTE5tVGJyVjgrZlBXMXRia3lUNTlOTlAKQzQrZW5mT0JUN25VbkpkYXFlN3U3bSsvL2JibzVv
VU9Iank0WmN1V1gvLzYxenQzN214b2FCaml3RktMRmkwNmR1eFlPdFZGVjNhQQp0Y2dQTWttU3Fx
cXEyN2R2Ly9XdmZ5MTF2bm1senFqVUdnMXJ0bE1uVDU1OC92eDVUMC9QZi8vNzMyWExscVVmSE1F
azUwK3EzMGl5CnU4cU9yZCtFOUh1MkZ0MUpraVFORFEyZG5aMTlmWDBQSHo1TUwxcnZONHhCbjRt
RHJ0ZFF2dG9NNVZHWEhVbDI4TmxwS2JySytZSDEKdXpIQTBtUWY4MEFGSy9tYjNGTjc5KzVOZjVi
bjRzV0xyYTJ0NlowLy92ampKRW5PbnorL2F0V3FQL3poRC9uYk0yYk0rT3FycjQ0ZApPL2I0OGVQ
MTY5ZjMrNGR5dXRXRkN4Zk9ueitmSkVsYlcxdHJhMnQ2dTcyOWZlblNwZW5kSms2YzJOemMzTm5a
dVhidDJ1dlhyL2YwCjlLUS9rWlE5WEg2SHBRN2QydHJhME5CdzRNQ0IxYXRYZi8vNzMrOTNhck5t
eldwdGJXMXBhZW5zN0Z5MWF0WHMyYlBUajJkM1ZYaSsKa3lkUG5qQmh3dEdqUnk5ZXZMaDA2ZEta
TTJmbWQ5algxM2Z4NHNYTm16ZW4zeWxvYjIvZnVIRmowVysxOUJ0WXFma3NkYXhjTHRmYwozTnpS
MGJGaXhZcWJOMit1VzdmdWIzLzdXMzZyaVJNbnpwZ3g0K0RCZ3hjdVhGaTZkT25kdTNmWHJWdFhl
TFZXZXJqQ09SLzRsRXZOCmVhbVZ1bkRoUWxwKzJjMExKK0hLbFNzdExTM3Azd1k0Zi81OGJXM3RQ
Ly81ejBFSGxuNTg2dFNwWjgrZTNiaHhZNm52VEEyd0ZvV24KOE9qUm85YlcxbzBiTjM3eHhSY0RE
L2lQZi96anNOWm9XTE9kUGlUZWZQUE5mLzNyWDVjdlgxNjRjR0grdDRHUFlKTHpKMVY0dVY3UgpY
UjA0Y0tEZjJQcE5TTDluYTlGRmIyaG9xSyt2YjJscGFXNXV2blBuenZMbHk3LzN2ZThWN3FxdXJt
N2daK0pRMW1zb1gyMUtyVkhoCmdiSWp5UTQrdTJSRlZ6ay9zUHhDcERjR1dKcnNZMzc2OU9sZmZ2
bWxYLzRPRmFscWdPdU5ZSlE4ZVBEZ3laTW42WTlpOWZYMVBYancKNE1zdnZ4ejZOYiszYjk4K2Qr
N2N1KysrTzVwakhGT2xmdlNQaXZHU2ozbWc3UGdWZWJ3QysvZnZmL1RvVWZyVFZjK2VQZXZzN0p3
MQphOVlRdCszdDdVMnZGQjdOQVk2cDlMdEk0L01Qd2hEbFpSN3pRRG55RGhhdndMVnIxODZkTzNm
Ly92M2UzdDY2dXJyWnMyZXZYTGt5Cisvc3Nzcjc0NG9zblQ1NXMyTENoa2k1aHlmOVZHVS9HQ2pi
aXh6eFFwZ1FXQUVBdzN5SUVBQWdtc0FBQWdna3NBSUJnQWdzQUlKakEKQWdBSUpyQUFBSUlKTEFD
QVlBSUxBQ0NZd0FJQUNDYXdBQUNDQ1N3QWdHQUNDd0FnbU1BQ0FBZ21zQUFBZ2drc0FJQmdBZ3NB
SUpqQQpBZ0FJSnJBQUFJSk5MUFdKdHJhMnNSd0hvNnF4c1RGLzI4cFdrc0tWQldEODhBNVc1WnMz
Yjk2ckhnS2p3c29DakZzbDM4RksvZVkzCnZ4bWJjVEIwMjdadFM1SmszNzU5bloyZHBlNVRYMSsv
ZmZ2MkpFbnUzYnVYSk1uMDZkUHpuL3J0YjMrYkpNbVNKVXRHZmFBTTA3QlcKOXBlLy9PWFlqUXlB
WVJva3NCaWY5dXpaczN2MzdwZS9EK09ObFFXb0RMNUZXSDcyN2RzM2xOZlgzYnQzNzl1M2J3ekdR
eFFyQzFBeApCRmI1R2VEN1J5TytKK09CbFFXb0dBSUxBQ0NZd0FJQUNDYXdLc1NlUFh0ZTlSQVlG
VlZWVmE5NkNBQU1tOENxQkdsZGFhektrOWFWCnhnSW9Pd0tyN0JWMmxjYXFKSVZkcGJFQXlvdkFL
bS9ab3RKWWxTRmJWQm9Mb0l6NFJhUGx6UytjckZSOWZYMnZlZ2dBakp4M3NBQUEKZ2drc0FJQmdB
Z3NBSUpocnNNcVNLOWtybFpVRnFBd0NxeXp0MnJVcis4RnZ2LzIyMzBmKzhZOS9qTWx3QUlEL1Iy
REJPQ0tkQVNxRAphN0FBQUlJSkxBQ0FZQUlMQUNDWXdBSUFDQ2F3QUFDQ0NTd0FnR0FDQ3dBZ21N
QUNBQWdtc0FBQWdna3NBSUJnQWdzQUlKaS9SVmoyClB2MzAwOEwvZmUrOTkxN1ZTQUNBbE1BcWUv
ay9ENXo5azhDVU5la01VTDRFRm94VDBobWdmQW1zc3VkOURnQVlid1JXMmZNK1I2V1MKemdEbFMy
REJPQ1dkQWNxWHdDcDczdWNBZ1BGR1lKVTk3M05VS3VrTVVMNEVGb3hUMGhtZ2ZQbE43Z0FBd1FR
V0FFQXdnUVVBRUV4ZwpBUUFFRTFnQUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJCQllBUURC
L0txY3M5ZnNyZFFEQXVDS3d5dEthTld1R2NyY1RKMDZNCjlraUlKWjBCS29QQWduRkVPZ05VQnRk
Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRHQUIKQUFR
VFdBQUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllBQURC
QkJZQVFEQ0JCUUFRVEdBQgpBQVFUV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFNRUVGZ0JB
TUlFRkFCQk1ZQUVBQkJOWUFBREJCQllBUURDQkJRQVFUR0FCCkFBUVRXQUFBd1FRV0FFQXdnUVVB
RUV4Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRHQUIK
QUFRVFdBQUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllB
QURCQkJZQVFEQ0JCUUFRVEdBQgpBQVFUV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFNRUVG
Z0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJCQllBUURDQkJRQVFUR0FCCkFBUVRXQUFBd1FRV0FFQXdn
UVVBRUV4Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRH
QUIKQUFRVFdBQUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJC
TllBQURCQkJZQVFEQ0JCUUFRVEdBQgpBQVFUV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFN
RUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJCQllBUURDQkJRQVFUR0FCCkFBUVRXQUFBd1FRV0FF
QXdnUVVBRUV4Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFB
UVRHQUIKQUFRVFdBQUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFF
QUJCTllBQURCQkJZQVFEQ0JCUUFRVEdBQgpBQVFUV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFn
QUFNRUVGZ0JBc0ltdmVnQ014SWtUSjE3MUVCZ1ZWaGFnTWdpc3NyUjc5KzZoCjNHM1BuajJqUFJK
aVdWbUF5dUJiaEFBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFYzVGN2VhdXFxc3Arc0srdmIreEhRaXdy
QzFEV3ZJTlYKM3JLdnVGNkRLNE9WQlNockFxdnNGYjd1ZWcydUpGWVdvSHdKckVxUXZ2cDZEYTQ4
VmhhZ1RBbXNDdUUxdUZKWldZQnlKTEFBQUlJSgpyUEpUWDE4ZmZrL0dBeXNMVURFRVZ2blp2bjM3
VVA0VTNaNDllN1p2M3o0RzR5R0tsUVdvR0g0UFZsbmF2WHYzdm4zN09qczdTOTJoCnZyNStpSDgy
bUhIRnlnSlVocXFtcHFhaW4yaHJhMHVTWk42OGVXTTdIa1pGVFUxTi9yYVZyU1NGS3d2QStESFF0
d2k5QmxjcUt3c0EKbzZya3R3Z2JHeHZIY2h5TUdTc0xBS1BOUmU0QUFNRUVGZ0JBTUlFRkFCQk1Z
QUVBQkJOWUFBREJCQllBUURDQkJRQVFUR0FCQUFRVApXQUFBd1FRV0FFQXdnUVVBRUV4Z0FRQUVF
MWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRHQUJBQVFUCldBQUF3
UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllBQURCQkJZQVFE
Q0JCUUFRVEdBQkFBUVQKV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFNRUVGZ0JBTUlFRkFC
Qk1ZQUVBQkJOWUFBREJCQllBUURDQkJRQVFUR0FCQUFRVApXQUFBd1FRV0FFQXdnUVVBRUV4Z0FR
QUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRHQUJBQVFUCldB
QUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllBQURCQkJZ
QVFEQ0JCUUFRVEdBQkFBUVQKV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFNRUVGZ0JBTUlF
RkFCQk1ZQUVBQkJOWUFBREJCQllBUURDQkJRQVFUR0FCQUFRVApXQUFBd1FRV0FFQXdnUVVBRUV4
Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRHQUJBQVFU
CldBQUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllBQURC
QkJZQVFEQ0JCUUFRVEdBQkFBUVQKV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFNRUVGZ0JB
TUlFRkFCQk1ZQUVBQkJOWUFBREJCQllBUURDQkJRQVFUR0FCQUFRVApXQUFBd1FRV0FFQXdnUVVB
RUV4Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRHQUJB
QVFUCldBQUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllB
QURCQkJZQVFEQ0JCUUFRVEdBQkFBUVQKV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFNRUVG
Z0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJCQllBUURDQkJRQVFUR0FCQUFRVApXQUFBd1FRV0FFQXdn
UVVBRUV4Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRH
QUJBQVFUCldBQUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJC
TllBQURCQkJZQVFEQ0JCUUFRVEdBQkFBUVQKV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFN
RUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJCQllBUURDQkJRQVFUR0FCQUFRVApXQUFBd1FRV0FF
QXdnUVVBRUV4Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFB
UVRHQUJBQVFUCldBQUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFF
QUJCTllBQURCQkJZQVFEQ0JCUUFRVEdBQkFBUVQKV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFn
QUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJCQllBUURDQkJRQVFUR0FCQUFRVApXQUFBd1FR
V0FFQXdnUVVBRUV4Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENC
QlFBUVRHQUJBQVFUCldBQUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJN
WUFFQUJCTllBQURCQkJZQVFEQ0JCUUFRVEdBQkFBUVQKV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFF
RTFnQUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJCQllBUURDQkJRQVFUR0FCQUFRVApXQUFB
d1FRV0FFQXdnUVVBRUV4Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFR
RENCQlFBUVRHQUJBQVFUCldBQUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZB
QkJNWUFFQUJCTllBQURCQkJZQVFEQ0JCUUFRVEdBQkFBUVQKV0FBQXdRUVdBRUF3Z1FVQUVFeGdB
UUFFRTFnQUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJCQllBUURDQkJRQVFUR0FCQUFRVApX
QUFBd1FRV0FFQXdnUVVBRUV4Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJC
WUFRRENCQlFBUVRHQUJBQVFUCldBQUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1J
RUZBQkJNWUFFQUJCTllBQURCQkJZQVFEQ0JCUUFRVEdBQkFBUVQKV0FBQXdRUVdBRUF3Z1FVQUVF
eGdBUUFFRTFnQUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJCQllBUURDQkJRQVFUR0FCQUFR
VApXQUFBd1FRV0FFQXdnUVVBRUV4Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFE
QkJCWUFRTEQvQWVDbnpKaVo3MlVFCkFBQUFBRWxGVGtTdVFtQ0MKCkluZGV4OiBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9mYXN0L3N1Yi1waXhlbC90cmFuc2Zvcm1lZC1pZnJh
bWUtY29weS1vbi1zY3JvbGwtZXhwZWN0ZWQucG5nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQ2Fubm90IGRpc3BsYXk6
IGZpbGUgbWFya2VkIGFzIGEgYmluYXJ5IHR5cGUuCnN2bjptaW1lLXR5cGUgPSBpbWFnZS9wbmcK
ClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4
L2Zhc3Qvc3ViLXBpeGVsL3RyYW5zZm9ybWVkLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC1leHBlY3Rl
ZC5wbmcKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOm1pbWUtdHlwZQogICArIGltYWdlL3BuZwoKCmlW
Qk9SdzBLR2dvQUFBQU5TVWhFVWdBQUF5QUFBQUpZQ0FJQUFBQVZGQlVuQUFBQUtYUkZXSFJqYUdW
amEzTjFiUUE1TnpreU56Tm0KWWpFNE9XSmpOak5qWWpVM00yWTVNV1F4TkRZeFpXVTBPZGlKb2RR
QUFDQUFTVVJCVkhpYzdkMWJqRnhuWWNEeGIrMzFldGZadGIyeApIZC9pT0hIam1HQUh4NDV0QlFm
U3BDb0Y1UW1wUlVJSTBVYmxVdFMrcEFVaWVLaUVpbEFycWlJaTBxWlE2bEJWSVlDcVhFUVMwa1lr
CkJTVTBnc1FKMkJESHhvNWpiMnBqYit5MTE5NWQ3K1gwNGRCaHNuUFoyWjF2WnM3TS9INVBKN1Bu
OHAzYitwKzViVWVTSkFFQWdIam0KTlhvQUFBQ3RSbUFCQUVRbXNBQUFJaE5ZQUFDUkNTd0FnTWdF
RmdCQVpBSUxBQ0F5Z1FVQUVKbkFBZ0NJVEdBQkFFUW1zQUFBSWhOWQpBQUNSQ1N3QWdNZ0VGZ0JB
WkFJTEFDQXlnUVVBRUpuQUFnQ0lUR0FCQUVRbXNBQUFJaXNaV0IybFBmNzQ0NXMyYlpyRHh0Nzk3
bmVuCkUrUGo0NS81ekdlV0wxKytmUG55cjN6bEszTWNleFZtdFF0ejN0KzZyYi9VR21vOThrSzVV
NXhsaFlPcy80R3FSbjBPY2tidTFzeWUKbXR6QThrZllGTmMvVUNkSkNTR0V2Lzdydng0YkcwdW5r
eVFaSFIyOSsrNjdRd2hyMXF3cHMyQWxQdmU1enozMjJHTkRRME1QUHZqZwo3L3pPNzFTenFybVox
UzVjZWVXVlZlNXZ4TUVVVldxRXExYXRxdW5JVzBiMXA2Q0ZOZlp1emV5cHlkMTB0Zjc5QURTcGpp
Ukppb2JYCmxpMWJubnZ1dWNXTEY0Y1FPanArTTl2UTBOQXR0OXp5d2dzdmRIZDNsMXF3RXV2WHJ6
OTA2TkNDQlF2bXZJWXFqWTJOVmI0THM1cTUKMW9PWjFScHFQZkptbDd1d1crbEE1WFlxMXJKenUx
dXJHVWEreko2YTNNQXlPMEtnc1VxK1JMaHYzNzYwcnZJdFdiSmszNzU5Q3hjdQpySEtyeDQ4ZnIw
OWRKVWx5NGNLRndzZG50UXZWNzIraC9JRlZ2LzVTYTZqRnlGdkcvdjM3YzlNdGM2RHlkeXJXc25P
NFd3dFhWZXBPCm5GSDBVelBua1V5VEcxakxYRHhBWEhOL2svdWhRNGQyN2RxMWVQSGlyMy85Nitr
am82T2pIL25JUnhZdFdyUjE2OWFEQnc5T216LzMKVG9XT2pvNnBxYW4wN1Z4UFBQSEU5ZGRmLzAv
LzlFOHJWNjdjdVhObkNPRmYvL1ZmTjJ6WXNHREJnaXV2dlBMZWUrOE5JYVR6dlBiYQphN3QzNzE2
OGVQRTN2dkdOL2Z2M2I5Kyt2YSt2Nzc3NzdpdXo2WC84eDM5Y3RHalJuLzdwbjNaMGRCVGRoZi8r
Ny8vZXZIbHpmMy8vClY3LzYxZHlENWZjaWhQRGQ3MzUzOWVyVnk1Y3YvK2QvL3VmME9LVDc4cWxQ
ZlNxZDd1enM3T3ZyKytZM3YvbG5mL1puNlk5R1IwZnoKMTFCMFlJWEhzM0JiNGYvZkcxYzRuZSto
aHg2Ni92cnIrL3I2SG56d3djS2ZGaDd6d2wydTVKZ1hucW5jS1U0WC85V3ZmdlhPZDc1ego4ZUxG
dVVYeS9mS1h2N3o1NXBzWExsejR3UTkrY0dKaW9wS0JQZmpnZytrdWYvU2pIdzBoNUE3djhQQnc3
aGpPZUM0ZWZ2amhkSkFmCitNQUgwbVA0UjMvMFIyVk9RZjVCSzdwSGhlZG90a2Y3KzkvLy91Yk5t
L2Z1M1h2ampUZGVkdGxsMy9yV3QzS0x6L1lnRis1VW1WVk4KRzF2K3NrWHYxcUlyQ1NGTVRVMTk1
ak9mV2JwMDZlclZxNy8ydGE4VkRxUFVuVmo1dlZQSmI1dEtycnJDa1JRT3Z2Q1V6WGlXVXpOZQov
NFhYUE5ES0tua2RzWEMyRU1JOTk5eHo1c3laSjU1NFl0V3FWZW1Ebi9yVXA3NzV6VytPam80Ky92
amo3MzN2ZTZjdHNucjE2dHg2CmNoTXJWcXdJSVR6eXlDTzUyYTY2NnFxalI0K09qNC8vOEljL3ZP
eXl5M0lMN3RtejU4eVpNOS85N25mNysvdnZ1ZWVlTjk5ODg4a24KbjF5K2ZIbVpUUzlldlBqSWtT
TVBQZlJRMGQwTUlUend3QU1YTGx4NDlkVlgzL25PZDM3NzI5OHVzNnJjR3A1Ly92bmYvLzNmUDMz
Ngo5SC8rNTM4dVdiTGs2YWVmVHBMaytQSGpxMWV2UG5ueVpEclBtalZyVHB3NGtTVEp3TURBbWpW
cjNuenp6V21iTGh4WTBlTlpkRnRICmpoekpMWFhnd0lIQ1EvclVVMC9kZXV1dGh3OGZQblBtek9j
Ly8vbkNmUzg4NW9XN1hNa3hMM1dtY2hQMzNIUFA0T0RnWTQ4OWxsc2sKM3p2ZThZNzArS2VEN09u
cG1YRmdrNU9Ueno3NzdPYk5tMCtkT3BVa3lkVFUxTHAxNjE1ODhjWDgxYzU0TG9wZWg2Vk9RVTZw
UFNwNgpqbVo3dEsrNDRvb1F3bjMzM1RjME5IVDQ4T0YzdmV0ZER6Lzg4SndQY3FtYnVuQlZoV1BM
TFZ2cUtCV3VKRW1TTDN6aEMxLzg0aGRIClJrYjI3Tmx6elRYWEZDNVY1azZzNU42cDhMZE5KVmRk
NFVnS0IxOTRXRXFkNVdtSGFNWlRVM2pORnoxVFFHdVllMkNsRXhNVEUvUG0KelV1bjB6ZDdwaFl0
V2pSdGtaR1JrY0pmMmVuL25rNmJjM1IwOU90Zi8vcTJiZHZTSDEyOGVERi9jN25weWNuSjNIVFJU
VjkvL2ZYMwozWGZmK1BqNGpEdjF5MS8rY3Z2MjdXVldsWnY1bGx0dU9YTGtTRHE5WjgrZUxWdTJw
Tk4zM25ubk43N3hqU1JKZnZLVG4zUjBkTngzCjMzMUprdno5My8vOTNYZmZYYmpwd29FVlBaNmx0
alV0Q3dwSCtNb3JyNlRUWjgrZUxYcDRwejFZdU11VkhQT2s0RXpsVG5IK0p2SVgKejdkbzBhS1Jr
WkYwVzVzM2I2NXdZRW1TM0gzMzNYLzNkMytYSk1uVFR6LzlybmU5cTNETjVjOUYwZXN3S1hFS2lo
NjAvRDBxZFk2SwpMbGhxcDlKWHJISXp2UERDQ3hzM2JzeGZ3NndPY3BuL2E1cTJxc0t4NWY2ejFG
RXFYRW1TSk92WHJ6OXo1c3kwYmVVdlZmNU9uUEhlCnFmQzNUU1ZYWGVGSUNnZGZlRmhtdkJNclBE
V0YxenpRd3FvTnJQenBoUXNYVnJpZW9vdW5Ybnp4eFowN2QzNys4NTkvNVpWWFpweS8KL0thUEhq
MzZ3UTkrY01PR0RjOCsrMno1bmJwMDZWTDZOdFZTcThyTjNOWFZkZUhDaFhSNmVIZzROL09qano1
Nnh4MTNKRW55a1k5OAo1SzY3N25yUGU5NlRKTWtOTjl6d2kxLzhvcEtCRmQycFV0c3FIMWc5UFQy
WExsMHF1cHVsSGl5L3k2V215NStwTXFjNDllZC8vdWQvCjh6ZC9jK0hDaFc5Lys5c3JWcXlvZkdD
SER4Kys3cnJycHFhbS92QVAvL0NCQng0b25HSEdjMUg1ZFpWdlZ1ZW8xSUtsZG1yYTFaaWIKWnc0
SHVWUmd6WGhuVmJMQ29pdVpQMzkrK1QwcWZ5ZFdmcjd5cDJkMTBaWVp5WXlEVHlxNEV5czhOVVd2
ZWFCVnhReXNiZHUyNVI3OAo5My8vOXpMcktmTjdjTU9HRGVrVE1JT0RnNVgvUTFobTB6LzR3US9X
cjE5ZmZxZjI3dDI3WThlT01xdkszOUIvL01kL3BOTW5UNTY4Ci9mYmIwK21Sa1pGbHk1WWRQSGp3
dXV1dUd4c2JXNzE2OVZOUFBiVno1ODdDN1JZZFdLbWRLcnF0RU1MVTFGUnVPdityTkpJaytmQ0gK
UC96akgvODRuUjRhR3NyTlVHcmZaOXpsVXRQbHo5U00vOVM5L1BMTHUzZnY3dTd1M3JScDA1TlBQ
bG41d0pJa2VkLzczbmYvL2ZldgpXYk9tY05lU0NzNUZ4TUFxZFk1S0xWaHFwMElJdVN3K2VQRGcx
cTFiMCtrNUhPUlNnVFhqblZYSkNvdXVaUG55NVJNVEUrWDNPaWw5CkoxWit2cEszSHZuY2d6TmV0
R1ZHVXNuZ3k5eUpNMDdrVHhlOTVvRldOVU5nVFUxTi9mU25QdzBoL09RblA1bWNuRXdmUEhyMGFB
aGgKWUdBZ1NaSVRKMDZFRUk0ZE81WWt5V2MvKzluNzc3OS9lSGo0VzkvNlZ2cS9wUGxlZi8zMUVN
THJyNzkrN05peEVNTGV2WHVUSkVtbgpSMGRIYzdNdFhicjBvWWNlR2hnWStQS1h2enh2M3J5TEZ5
K21DNmFiZStPTk4zTFRBd01ESVlTalI0K1cyblFJNFR2ZitjNnJyNzY2CmJObXl3bDI3N0xMTDl1
elpNenc4L09xcnIrN2F0ZXZ4eHg5UEh5OWNWVHFBNDhlUEowbnk3TFBQWG5QTk5mL3pQLzl6OHVU
SkQzM28KUXkrODhFSnVoUi80d0FlMmJkdjJ0My83dDBtUzNIbm5uVmRkZGRXOTk5NWIvS0MvZFdD
bGptZXBiVjErK2VWUFBQSEVtVE5uMG05OQpYTHQyYmY0SVQ1dzQ4ZTUzdi91NTU1NGJIaDcrcTcv
NnF4REM2dFdyODdkZWVNeEw3WEw1WTE3cVRMMysrdXZwRzhYeUYwLzNLTi9iCjN2YTJkTUN6R2xq
cWtVY2U2ZTd1L3V4blAxdjA4SlkvRjdsQkprblMyZG41d3gvK2NNdVdMYVZPUVU2cFBTcHpQY3hx
cDBJSWQ5MTEKMTdsejV3WUdCdjdnRC80Z1Z3eHpPTWk1blpvMmtzSlZGWTR0dDJ6UnU3WG9TcElr
K2RDSFB2VFVVMDlOVGs3KzRoZS95SDFSVnY0dwp5dCtKNWM5WDViOXRLcm5xQ2tkU09QakN3MUww
TE9kdXVta1RaVTVONFRVUHRMQVpBaXU4MWJRSHAwMmZPM2Z1L2U5L2YxZFgxL2J0CjIxOTk5ZFh5
cThxM2J0MjYzR3ozM0hQUG9rV0xkdTNhZGZiczJiZS8vZTJmL3ZTblMyMXV4azJIRVA3bFgvNWw4
ZUxGUlVQbnhSZGYKM0wxN2QxZFgxOWF0VzcvM3ZlL2xIaTljMWJUZHYvZmVlOVBQSEgzbk85L0pY
K0VERHp6UTNkMTkrdlRwSkVrZWZ2amhycTZ1d2NIQgpVa2MxZjJDbGRxclV0cjc4NVM5ZmR0bGxO
OTEwVS9vLy9ZODk5dGkwcFg3MnM1OXQzTGh4N2RxMVR6NzU1TFhYWHB1L2Q3bE41Qi96CjhydGNh
cnJNbVNxelJ6bTMzSEpMN2tkOWZYMjVUNGVWSDFocWZIeDgwYUpGcjczMld0SERXLzVjNUkvbnd4
LytjSDkvL3c5KzhJTVoKQnp6YmN6U3JvNTNPbG43QTdjb3JyL3pxVjcrYW0za09Cem0zVTlOR1Vt
cFYrV01yUENEVE5sUzRraVJKVHA0OCtaNzN2S2U3dTN2Nwo5dTMvOW0vL05tMVZ5VXgzWXVYbksz
KzY4b3QyMnVtWU5wTEN3UmNlbHFKbnVlZ2hLbjlxQ3EvNUpFbDI3OTVkOUpnQXpTN09sd0hDCnJQ
ejg1ejgvZmZyMDdiZmZIa0tZbkp6Y3QyL2Y3dDI3Sy85Mm9oLzk2RWRmK3RLWEhuMzAwVnFPc2E1
aWZTMG5tVlhsTlE4MEhYL3MKbVFhNDQ0NDdEaDQ4bUQ1TGNlN2N1V2VlZWVhT08rNm9jTm54OGZG
LytJZC8rTXUvL011YWpyQ2VUcDQ4R1VKSVgvK2lWVlZ6elFQTgpTR0RSQUYvNXlsZjI3Tm16YnQy
NmhRc1g3dHk1OCtqUm8rbDNQTTdveGh0djNMQmh3eWMvK2NuYmJydXR4bU9zbi9SUFJxWmZua1Ny
Cm12TTFEelFwTDB3QUFFVG1HU3dBZ01nRUZnQkFaQUlMQUNBeWdjWE0wajlCQ0FCVVNHQXhnN0d4
c2U5OTczc0hEeDVzOUVBQW9HbDAKTm5vQVpOclkyTmozdi8vOVgvLzYxNy8rOWE5RENCczNibXow
aUFDZ0NYZ0dpNUp5ZFRWLy92d1F3alBQUE9ONUxBQ29oTUNpdUZ4ZApkWFYxWFhYVlZjdVdMUXNh
Q3dBcUk3QW9Jcit1MXE1ZHUyREJnbVhMbG1rc0FLaVF3R0s2d3JwS0g5ZFlBRkFoZ2NWYmxLcXJs
TVlDCmdFb0lMSDZyZkYybE5CWUF6RWhnOFJ1VjFGVktZd0ZBZVFLTEVHWlRWeW1OQlFCbENDeG1Y
VmNwalFVQXBRaXNkamUzdWtwcExBQW8KU21DMXRXcnFLcVd4QUtDUXdHcGYxZGRWU21NQndEUUNx
MDNGcXF1VXhnS0FmQUtySGNXdHE1VEdBb0FjZ2RWMmFsRlhLWTBGQUNtQgoxVjVxVjFjcGpRVUFR
V0MxbFZyWFZVcGpBWURBYWhmMXFhdVV4Z0tnelFtc3RsRFB1a3BwTEFEYW1jQnFmZld2cTVUR0Fx
QnRDYXdXCjE2aTZTbWtzQU5xVHdHcGxqYTJybE1ZQ29BMEpySmFWaGJwS2FTd0EybzNBYWszWnFh
dVV4Z0tnclFpc0ZwUzF1a3BwTEFEYWg4QnEKTmRtc3E1VEdBcUJOQ0t5V2t1VzZTbWtzQU5xQndH
b2QyYStybE1ZQ29PVUpyQmJSTEhXVjBsZ0F0RGFCMVFxYXE2NVNHZ3VBRmlhdwptbDR6MWxWS1l3
SFFxZ1JXYzJ2ZXVrcHBMQUJha3NCcVlzMWVWeW1OQlVEckVWak5xalhxS3FXeEFHZ3hBcXNwdFZK
ZHBUUVdBSzFFCllEV2YxcXVybE1ZQ29HVUlyQ2JUcW5XVjBsZ0F0QWFCMVV4YXU2NVNHZ3VBRmlD
d21rWTcxRlZLWXdIUTdBUldjMmlmdWtwcExBQ2EKbXNCcUF1MVdWeW1OQlVEekVsaFoxNTUxbGRK
WUFEUXBnWlZwN1Z4WEtZMEZRRE1TV05tbHJsSWFDNENtSTdBeVNsM2wwMWdBTkJlQgpsVVhxcXBE
R0FxQ0pDS3pNVVZlbGFDd0Ftb1hBeWhaMVZaN0dBcUFwQ0t3TVVWZVYwRmdBWkovQXlncDFWVG1O
QlVER2RUWjZBSVNnCnJtWXZEYXpCd2NGbm5ua21oTEJ4NDhZR0Q2aHFiN3p4eG1PUFBkYm9VZERp
UHZheGp6VjZDTkF1UElQVmVPcHFibHJzZWF5bFM1ZHUKM2JxMTBhTUFJQTdQWURXWXVxcEdLejJQ
dFdEQmdxdXZ2bnJod29WdnZQRkdvOGRDcXhrYkd6dDE2bFNqUndIdFJXQTFrcnFxWG9zMQoxckps
eTg2ZVBkdm9nUUJRTFM4Uk5veTZpcVUxWGl2czZPaG85QkFBaUVaZ05ZYTZpcXMxR2l1RWtDUkpv
NGNBUUFRQ3F3SFVWUzIwClRHTUIwQUlFVnIycHE5clJXQUJraE1DcUszVlZheG9MZ0N3UVdQV2py
dXBEWXdIUWNBS3JUdFJWUFdrc0FCcExZTldEdXFvL2pRVkEKQXdtc21sTlhqYUt4QUdnVWdWVmI2
cXF4TkJZQURTR3dha2hkWllIR0FxRCtCRmF0cUt2czBGZ0ExSm5BcWdsMWxUVWFDNEI2RWxqeApx
YXRzMGxnQTFJM0Fpa3hkWlpuR0FxQStCRlpNNmlyN05CWUFkU0N3b2xGWHpVSmpBVkJyQWlzT2Rk
VmNOQllBTlNXd0lsQlh6VWhqCkFWQTdBcXRhNnFwNWFTd0Fha1JnVlVWZE5UdU5CVUF0Q0t5NVUx
ZXRRV01CRUozQW1pTjExVW8wRmdCeENheTVVRmV0UjJNQkVKSEEKbWpWMTFhbzBGZ0N4Q0t6WlVW
ZXRUV01CRUlYQW1nVjExUTQwRmdEVkUxaVZVbGZ0UTJNQlVDV0JWUkYxMVc0MEZnRFZFRmd6VTFm
dApTV01CTUdjQ2F3YnFxcDFwTEFEbVJtQ1ZvNjdRV0FETWdjQXFTVjJSMGxnQXpKYkFLazVka1U5
akFUQXJBcXNJZFVVaGpRVkE1UVRXCmRPcUtValFXQUJVU1dHK2hyaWhQWXdGUUNZSDFXK3FLU21n
c0FHWWtzSDVEWFZFNWpRVkFlUUlyQkhYRjdHa3NBTW9RV09xS09kSlkKQUpUUzdvR2xycWlHeGdL
Z3FMWU9MSFZGOWE2OTl0cHQyN1lGalFWQW5zNUdENkJoMUJYVlc3Qmd3UTAzM0RBOFBIeisvUGxE
aHc0OQo4OHd6SVlTTkd6YzJlbHdBTkZpYkJwYTZvbnFqbzZQbnpwMDdlUERnME5EUXdvVUx1N3E2
TGwyNnBMRUFDTzBaV09xSzZvMk9qcDQrCmZmcldXMjlkdDI1ZCtwOW56NTQ5ZWZMa3hNU0V4Z0tn
N2Q2RHBhNm8zclM2Q2lGMGQzZmZmdnZ0SzFldTdPenNETjZQQmREMjJpdXcKMUJYVks2eXJWRTlQ
ajhZQ0lOVkdnYVd1cUY2cHVrcHBMQUJTN1JKWTZvcnFsYStybE1ZQ0lMUkpZS2tycWxkSlhhVnlq
ZFhkM1IwMApGa0JiYXYxUEVhb3JxbGRZVjYrOTlscHZiKy9rNU9URml4ZTd1cm9XTDE3YzE5ZVht
NytucCtmM2Z1LzNYbnJwcGZIeDhWZGVlY1huCkNnSGFUWXNIbHJxaWVrV2Z1enB4NHNUaHc0ZVRK
RW1TWk42OGVlOTk3M3VuTGRYZDNUMCtQcjU5Ky9hZW5wNjllL2YrNkVjLzZ1N3UKbnZIWkx3QmFR
eXNIbHJxaWVtbGQ5ZmYzSHp0MkxEK1Bicjc1NWhEQ29VT0hRZ2hUVTFNakl5T0Z5MTV4eFJVOVBU
M1hYWGZka2lWTAplbnA2cnJqaWlyb05HNERHYXRuM1lLa3JxcGZXMVk0ZE8yNjU1WmJSMGRIbm5u
c3UvNmMzMzN6enRkZGVHMExvNk9oSTMyNlY3OENCCkE2Ky8vdnJnNE9EazVPVEtsU3ZYcmwzYjFk
VlZ2NkVEMEZDdEdWanFpdXJsNm1yVnFsVWhoSnR1dXFsVVkzVjJkdmIwOU9RL2Z1REEKZ1gzNzly
M3RiVy9yN095Y1AzOStYMTlmUjBkSFhVY1BRRU8xWUdDcEs2bzNyYTVTcFJwci9mcjFRME5EdVVm
U3V0cTFhMWR2YjYrNgpBbWhQclJaWTZvcnFGYTJyVktuR1dyTm1UVHF0cmdBSUxSWlk2b3JxbGFt
cjFQYnQyeTljdURDdHNWTHFDb0JVNndTV3VxSjZNOVpWCmtpUmpZMk9iTjI4ZUhoNmUxbGpxQ29D
Y0Zna3NkVVgxS3F5cnljbkpFTUtXTFZ2eUcwdGRBWkN2RlFKTFhWRzlXZFZWS3RkWTZncUEKYVpv
K3NOUVYxWnREWGFXMmJObHk2dFFwZFFYQU5NMGRXT3FLNnMyNXJrSUl4NDhmbjVpWVVGY0FUTlBF
Z2FXdXFGNlZkWFhzMkRGMQpCVUNoWmcwc2RVWDFpdGJWK2ZQbng4ZkgwMmwxQmNEY05HVmdxU3Vx
VitxNXF4TW5UanovL1BQajQrUHFDb0E1YTc3QVVsZFVyMmhkClhieDRNWVN3Y2VQRzVjdVhQLy84
ODhQRHcrb0tnTGxwc3NCU1YxU3YxSE5YQnc0YytOblBmaFpDMkxScDA5S2xTL2Z1M1RzeE1URnQK
V1hVRlFDV2FLYkRVRmRVcldsZGpZMk1oaEczYnRvMk5qYjM4OHN0alkyUFhYSFBOeXBVcnA2YW04
cGRONjJybnpwM3FDb0R5bWlhdwoxQlhWSzFwWGs1T1R6ei8vL0pFalIwSUlPM2JzR0JrWjJiOS9m
d2poeWl1djdPcnF5czJXcTZ1K3ZqNTFCVUI1elJGWTZvcnFsWHBsCmNQNzgrZHUzYno5eTVNaVJJ
MGZHeHNadXVPR0dlZlBtNVQ1SW1GSlhBTXhLRXdTV3VxSjY1Yi92cXJlM2Q5ZXVYYi82MWErT0hq
MGEKUXJqdXV1dnlMek4xQmNCc1pUMncxQlhWcStUYlJEczdPN2R1M1RvNE9EanRrNFBxQ29BNTZH
ejBBTXBSVjFTdjh1OXFYN1JvMFR2ZQo4WTc4ZmxKWEFNeE5kcC9CVWxkVWI3Wi9DVWRkQVJCRlJn
TkxYVkc5dEs2NnVycDZlM3VMempEamQ3V3JLd0RtSm91QnBhNm9YbHBYClYxOTlkZTVyMmFmTm9L
NEFxSjNNQlphNm9ucTV1bHF5Wk1tS0ZTdjYrL3VuTlphNkFxQ21zaFZZNm9ycTVkZFYrc2kweGxK
WEFOUmEKaGdKTFhWRzl3cnBLNVJyci9Qbno2Z3FBV3N0S1lLa3JxbGVxcmxMNWpWWDRVM1VGUUVT
WkNDeDFSZlhLMTFWcXhZb1ZsMTkrK2Nzdgp2M3p4NHNYOHg5VVZBSEUxUHJEVUZkV3JwSzVTaFky
bHJnQ0lyc0dCcGE2b1h1VjFsY3B2TEhVRlFDMDA4ay9scUN1cU45dTZTcTFZCnNTS0U4TUlMTDNS
MmRxb3JBS0pyMkROWTZvcnF6YTJ1VWgwZEhlb0tnQnBwVEdDcEs2cFhUVjJkUG4xNmNIQlFYUUZR
STQxNWlmRHMKMmJQOS9mMTlmWDFYWEhIRjRPQmdROFpBVTFOWEFHUlpZd0pyNWNxVmwxOStlZnEx
MnQzZDNRTURBdzBaQmsxS1hRR1FjUTE3RDlhQwpCUXQ2ZTN0RENNdVdMVnU3ZG0yamhrSFRVVmNB
WkY4anY2WkJZekZiNmdxQXB0RGc3OEhTV0ZST1hRSFFMQnIvVGU0YWkwcW9Ld0NhClNPTURLMmdz
WnFLdUFHZ3VtUWlzb0xFb1RWMEIwSFN5RWxoQlkxR011Z0tnR1dVb3NJTEc0cTNVRlFCTktsdUJG
VFFXLzA5ZEFkQzgKTWhkWVFXT2hyZ0JvY2xrTXJLQ3gycHU2QXFEWlpUU3dnc1pxVitvS2dCYVEz
Y0FLR3F2OXFDc0FXa09tQXl0b3JIYWlyZ0JvR1ZrUApyS0N4Mm9PNkFxQ1ZORUZnQlkzVjZ0UVZB
QzJtT1FJcmFLeldwYTRBYUQxTkUxaEJZN1VpZFFWQVMycW13QW9hcTdXb0t3QmFWWk1GClZ0Qlly
VUpkQWREQ21pK3dnc1pxZnVvS2dOYldsSUVWTkZZelUxZFFaMjRUcUw5bURheWdzWnFUdWdLZ0hU
UnhZQVdOMVd6VUZRQnQKb3JrREsyaXM1cUd1QUdnZlRSOVlRV00xQTNVRlFGdHBoY0FLR2l2YjFC
VUE3YVpGQWl0b3JLeFNWd0Mwb2RZSnJLQ3hza2RkQWRDZQpXaXF3Z3NiS0VuVUZRTnRxdGNBS0dp
c2IxQlVBN2F3RkF5dG9yRVpUVndDMHVkWU1yS0N4R2tkZEFVRExCbGJRV0kyZ3JnQWd0SFpnCkJZ
MVZYK29LQUZJdEhsaEJZOVdMdWdLQW5OWVByS0N4YWs5ZEFVQyt0Z2lzb0xGcVNWMEJ3RFR0RWxo
Qlk5V0d1Z0tBUW0wVVdFRmoKeGFhdUFLQ285Z3Fzb0xIaVVWY0FVRXJiQlZiUVdER29Ld0Fvb3gw
REsyaXM2cWdyQUNpdnM5RURhSmkwc1lhSGg1Y3RXeFpDR0JnWQphUFNJbW9PNnFxbmUzdDZ0Vzdl
ZVAzOSsvLzc5NTgrZmIvUndhRzZkbloxcjFxelp0R25UcVZPbmpoMDcxdWpoUUh0cDM4QUtHbXYy
CjFGV3RkWFoyVGt4TURBd003Tnk1YzJKaW9zeWNaODZjMmI5L3YrZGZNMmhrWk9UOCtmTmJ0bXlw
M1NhR2hvYjI3OS9mMzkrL1k4ZU8KTXJOMWRIU01qbzRlT25USWRRTDExOWFCRlRUV2JLaXJPamgv
L3Z6ZzRPQ21UWnY2Ky90bm5IbisvUG5wSzkxa3plam9hUG9ycGFhNgp1cnBXcmx4WmZwNUxseTZG
RUY1NTVaVmFEd2FZcGszZmc1WFArN0Vxb2E3cUl6M09sZFFWVktLcnE2dTd1L3QvLy9kL0d6MFFh
RHNDCkt3U05OUk4xVlRkVFUxTkZYeGw4NmFXWDdycnJydnFQaDJaUjVncEprcVQ4eTgxQUxRaXMz
OUJZcGFpcmhudnBwWmZ1dlBQT2wxNTYKcWRFRElhWno1ODd0MzcrLzZNUWNuRDE3OXY3NzcxZmhr
QjBDNjdjMFZpRjExWERxcWxXTmo0OFBEUTBWblpnYmpRV1pJckRlUW1QbApVMWNOcDY2WUZZMEYy
ZEh1bnlJczVIT0ZLWFdWQlZkZmZmVWYvL0VmQzZ5bU16VTFOVG82V242ZVM1Y3VwYk1WVHN5NC92
U3pnVVdsCjE4eXNSd3pFSnJDSzBGanFLaU9XTGwzNkozL3lKeUVFejBrMG5jbkp5VXBtbUp5Y0xK
eVk4OHB2dlBIR1BYdjIzSGpqamJNZUxoQ2IKd0NxdW5SdExYV1ZLcnJFZWVlU1JSbytGbVByNitq
WnUzRmgwWW03VUZXU0t3Q3FwUFJ0TFhXVlEybGkzM1haYm93ZENUSjJkbmVrNwpQZ3NuNWtCZFFk
WjRrM3M1N2ZhZWQzWFZjS1graVYyNmRLbC9PeW1qekJWU1RiY0JjeWF3WnRBK2phV3VzbURKa2lW
cjE2Nzk2VTkvCjJ1aUIwQ0xPbkRsejhPREJtdjVoUktBb0x4SE9yQjFlSzFSWEdkSFoyYmxxMWFv
UXdvOS8vT1BoNGVFeWMxNjZkR2xrWk9UUW9VUDEKR2hxVm1weWNIQjhmMzd0M2IrMDJNVDQrSGtJ
NGMrYk1mLzNYZjVXWnJiT3pjL255NVpzMmJhcmtrNGxBWEFLcklxM2RXT29xT3lZbgpKOGZHeHZy
NitsYXZYdTNQbTFDbGVmUG1kWGQzZDNaMlhyeDRzZEZqZ2JZanNDclZxbzJscmpJbDkyZmo1bkE2
b0tpSmlZbSt2cjZ0Clc3ZSsvUExMalI0THRKR09KRWthUFlabU1qNCtucjV3TXpnNDJBS05wYTRB
b0JhOHlYMTJXdWs5NytvS0FHcEVZTTFhYXpTV3VnS0EKMmhGWWM5SHNqYVd1QUtDbUJOWWNOVzlq
cVNzQXFEV0JOWGZOMkZqcUNnRHFRR0JWcGJrYVMxMEJRSDBJckdvMVMyT3BLd0NvRzRFVgpRZlli
UzEwQlFEMzVvdEZvTXZzZHBOWFgxYTVkdTNwN2U5VVZBRlRJTTFqUlpQTjVMSFVGQVBVbnNHTEtX
bU9wS3dCb0NJRVZXWFlhClMxMEJRS01JclBpeTBGanFDZ0FhU0dEVlJHTWJTMTBCUUdNSnJGcHBW
R09wS3dCb09JRlZRL1Z2TEhVRkFGa2dzR3Fybm8ybHJnQWcKSXdSV3pkV25zZFFWQUdTSHdLcUhX
amVXdWdLQVRCRllkVks3eGxKWEFKQTFBcXQrYXRGWTZnb0FNa2hnMVZYY3hsSlhBSkJOQXF2ZQpZ
alZXV2xmcjE2OVhWd0NRTlFLckFhcHZyTFN1MXE1ZGUvcjA2YW1wcVZrdHE2NEFvTllFVm1OVTAx
aHBYZDE2NjYyMzNYYmJ1blhyCkRoOCtYSGxqcVNzQXFBT0IxVEJ6YTZ4Y1hhMWJ0eTZFY05OTk4x
WGVXT29LQU9wRFlEWFNiQnRyV2wybEttd3NkUVVBZFNPd0dxenkKeGlwYVY2a1pHMHRkQVVBOUNh
ekdxNlN4eXRSVnFreGpxU3NBcURPQmxRbmxHNnV3cnI3MHBTOTk3V3RmbXpaYjBjWlNWd0JRZndJ
cgpLMG8xMXVUazVPRGc0TFRucmxhdVhQbkpUMzV5eHNaU1Z3RFFFSjJOSGdDL2xUYlc4UER3c21Y
TFFnZ0RBd1A5L2YzZDNkMXZmL3ZiClY2MWFsVDluK3ZWWG4vakVKMElJSC8vNHgvTi9kTk5OTjRV
UURoOCt2R1RKa2pmZmZGTmRBVUQ5ZVFZclcvS2Z4OXF3WWNNTk45eHcKN3R5NXdyZFZYYmh3SVoz
NHhDYytVZlI1ck43ZVhuVUZBSTBpc0RJbjExaTl2YjBqSXlNclZxem82K3ViTnMrYU5Xdm16NStm
VHYvRgpYL3pGdE1ZNmNPREEwTkNRdWdLQVJ2RVNZUmJsWGlzY0d4c2JHUmw1K3VtbmI3MzExcVZM
bCtabTZPdnJlL1RSUjQ4ZVBkcloyYmx1CjNicFRwMDdsZm5UZ3dJRjkrL2FwS3dCb29JNGtTUm85
Qm9vYkh4OGZIaDRPSVJ3OWV2VElrU08zMzM1N2ZtTVZwYTRBSUF1OFJKaGQKdWRjSzE2OWZmODAx
MXp6OTlOTm56NTR0TTcrNkFvQ01FRmlaVm5sanFTc0F5QTZCbFhXVk5KYTZBb0JNRVZoTm9IeGpx
U3NBeUJwdgpjbThhK2U5NVAzNzgrTy8rN3UrKytlYWJJWVFYWDN4eHg0NGQ2Z29Bc2tOZ05aTmNZ
NTA2ZGFxdnIyOXdjTENucDZlN3UzdlJva1hxCkNnQ3lRMkExbVZ4akxWeTRzTHU3ZTNoNGVISnlV
bDBCUUtZSXJPYVRhNnlPam80a1NkUVZBR1NOd0dwS3VjWlNWd0NRUVFLcldZMlAKajQrT2p2YjI5
cW9yQU1nYWdRVUFFSm52d1FJQUxUNGdrUUFBQmR0SlJFRlVpRXhnQVFCRUpyQUFBQ0lUV0FBQWtR
a3NBSURJQkJZQQpRR1FDQ3dBZ01vRUZBQkNad0FJQWlFeGdBUUJFSnJBQUFDSVRXQUFBa1Frc0FJ
RElCQllBUUdRQ0N3QWdNb0VGQUJDWndBSUFpRXhnCkFRQkVKckFBQUNJVFdBQUFrUWtzQUlESUJC
WUFRR1FDQ3dBZ01vRUZBQkNad0FJQWlFeGdBUUJFSnJBQUFDSVRXQUFBa1Frc0FJREkKQkJZQVFH
UUNDd0FnTW9FRkFCQ1p3QUlBaUV4Z0FRQkVKckFBQUNJVFdBQUFrUWtzQUlESUJCWUFRR1FDQ3dB
Z01vRUZBQkNad0FJQQppRXhnQVFCRUpyQUFBQ0lUV0FBQWtRa3NBSURJQkJZQVFHUUNDd0FnTW9F
RkFCQ1p3QUlBaUV4Z0FRQkVKckFBQUNJVFdBQUFrUWtzCkFJRElCQllBUUdRQ0N3QWdNb0VGQUJD
WndBSUFpRXhnQVFCRUpyQUFBQ0lUV0FBQWtRa3NBSURJQkJZQVFHUUNDd0FnTW9FRkFCQ1oKd0FJ
QWlFeGdBUUJFSnJBQUFDSVRXQUFBa1Frc0FJRElCQllBUUdRQ0N3QWdNb0VGQUJDWndBSUFpRXhn
QVFCRUpyQUFBQ0lUV0FBQQprUWtzQUlESUJCWUFRR1FDQ3dBZ01vRUZBQkNad0FJQWlFeGdBUUJF
SnJBQUFDSVRXQUFBa1Frc0FJRElCQllBUUdRQ0N3QWdNb0VGCkFCQ1p3QUlBaUV4Z0FRQkVKckFB
QUNJVFdBQUFrUWtzQUlESUJCWUFRR1FDQ3dBZ01vRUZBQkNad0FJQWlFeGdBUUJFSnJBQUFDSVQK
V0FBQWtRa3NBSURJQkJZQVFHUUNDd0FnTW9FRkFCQ1p3QUlBaUV4Z0FRQkVKckFBQUNJVFdBQUFr
UWtzQUlESUJCWUFRR1FDQ3dBZwpNb0VGQUJDWndBSUFpRXhnQVFCRUpyQUFBQ0lUV0FBQWtRa3NB
SURJQkJZQVFHUUNDd0FnTW9FRkFCQ1p3QUlBaUV4Z0FRQkVKckFBCkFDSVRXQUFBa1Frc0FJRElC
QllBUUdRQ0N3QWdNb0VGQUJDWndBSUFpRXhnQVFCRUpyQUFBQ0lUV0FBQWtRa3NBSURJQkJZQVFH
UUMKQ3dBZ01vRUZBQkNad0FJQWlFeGdBUUJFSnJBQUFDSVRXQUFBa1Frc0FJRElCQllBUUdRQ0N3
QWdNb0VGQUJDWndBSUFpRXhnQVFCRQpKckFBQUNJVFdBQUFrUWtzQUlESUJCWUFRR1FDQ3dBZ01v
RUZBQkNad0FJQWlFeGdBUUJFSnJBQUFDSVRXQUFBa1Frc0FJRElCQllBClFHUUNDd0FnTW9FRkFC
Q1p3QUlBaUV4Z0FRQkVKckFBQUNJVFdBQUFrUWtzQUlESUJCWUFRR1FDQ3dBZ01vRUZBQkNad0FJ
QWlFeGcKQVFCRUpyQUFBQ0lUV0FBQWtRa3NBSURJQkJZQVFHUUNDd0FnTW9FRkFCQ1p3QUlBaUV4
Z0FRQkVKckFBQUNJVFdBQUFrUWtzQUlESQpCQllBUUdRQ0N3QWdNb0VGQUJDWndBSUFpRXhnQVFC
RUpyQUFBQ0lUV0FBQWtRa3NBSURJQkJZQVFHUUNDd0FnTW9FRkFCQ1p3QUlBCmlFeGdBUUJFSnJB
QUFDSVRXQUFBa1Frc0FJRElCQllBUUdRQ0N3QWdNb0VGQUJDWndBSUFpRXhnQVFCRUpyQUFBQ0lU
V0FBQWtRa3MKQUlESUJCWUFRR1FDQ3dBZ01vRUZBQkNad0FJQWlFeGdBUUJFSnJBQUFDSVRXQUFB
a1Frc0FJRElCQllBUUdRQ0N3QWdNb0VGQUJDWgp3QUlBaUV4Z0FRQkVKckFBQUNJVFdBQUFrUWtz
QUlESUJCWUFRR1FDQ3dBZ01vRUZBQkNad0FJQWlFeGdBUUJFSnJBQUFDSVRXQUFBCmtRa3NBSURJ
QkJZQVFHUUNDd0FnTW9FRkFCQ1p3QUlBaUV4Z0FRQkVKckFBQUNJVFdBQUFrUWtzQUlESUJCWUFR
R1FDQ3dBZ01vRUYKQUJDWndBSUFpRXhnQVFCRUpyQUFBQ0lUV0FBQWtRa3NBSURJQkJZQVFHUUND
d0FnTW9FRkFCQ1p3QUlBaUV4Z0FRQkVKckFBQUNJVApXQUFBa1Frc0FJRElCQllBUUdRQ0N3QWdN
b0VGQUJDWndBSUFpRXhnQVFCRUpyQUFBQ0lUV0FBQWtRa3NBSURJQkJZQVFHUUNDd0FnCk1vRUZB
QkNad0FJQWlFeGdBUUJFSnJBQUFDSVRXQUFBa1Frc0FJRElCQllBUUdRQ0N3QWdNb0VGQUJDWndB
SUFpRXhnQVFCRUpyQUEKQUNJVFdBQUFrUWtzQUlESUJCWUFRR1FDQ3dBZ01vRUZBQkNad0FJQWlF
eGdBUUJFSnJBQUFDSVRXQUFBa1Frc0FJRElCQllBUUdRQwpDd0FnTW9FRkFCQ1p3QUlBaUV4Z0FR
QkVKckFBQUNJVFdBQUFrUWtzQUlESUJCWUFRR1FDQ3dBZ01vRUZBQkNad0FJQWlFeGdBUUJFCkpy
QUFBQ0lUV0FBQWtRa3NBSURJQkJZQVFHUUNDd0FnTW9FRkFCQ1p3QUlBaUV4Z0FRQkVKckFBQUNM
N1A3dW9VeStrOG0rZkFBQUEKQUVsRlRrU3VRbUNDCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178306</attachid>
            <date>2012-12-07 16:55:37 -0800</date>
            <delta_ts>2012-12-07 17:31:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101779-20121207165301.patch</filename>
            <type>text/plain</type>
            <size>82013</size>
            <attacher name="Levi Weintraub">leviw</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNjk5MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDcwIEBACisyMDEyLTEyLTA0ICBMZXZpIFdl
aW50cmF1YiAgPGxldml3QGNocm9taXVtLm9yZz4KKworICAgICAgICBBY2N1bXVsYXRlIHVzaW5n
IGEgTGF5b3V0U2l6ZSBpbiBtYXBMb2NhbFRvQ29udGFpbmVyIHdoZW4gcG9zc2libGUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTc3OQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1hcExvY2FsVG9Db250
YWluZXIgcHJldmlvdXNseSBhY2N1bXVsYXRlZCBvZmZzZXRzIGluIFRyYW5zZm9ybVN0YXRlLCB3
aGljaCBpcyBmdW5jdGlvbmFsbHkgaW5jb3JyZWN0IHdoZW4gdGhlcmUKKyAgICAgICAgYXJlIG11
bHRpcGxlIGxldmVscyBvZiBjb250YWluZXJzIHdpdGggc3ViLXBpeGVsIG9mZnNldHMgaW4gdGhl
IHJlbmRlcmVyIGNoYWluLCBhcyB3ZSB3b3VsZCBwaXhlbCBzbmFwIGZyb20gdGhlCisgICAgICAg
IGJvdHRvbSB0b3dhcmRzIHRoZSByb290IGluc3RlYWQgb2YgdmljZS12ZXJzYSwgYXMgd2UgZG8g
d2hlbiB3ZSBwYWludC4gVGhpcyBmdW5jdGlvbmFsbHkgaW5jb3JyZWN0IGJlaGF2aW9yIGxlYWRz
CisgICAgICAgIHRvIHJlcGFpbnQgYXJ0aWZhY3RzLCBlc3BlY2lhbGx5IGluIHdpZGdldHMuIFRo
aXMgY2hhbmdlIHdpbGwgYWxzbyBpbXByb3ZlIHBlcmZvcm1hbmNlIHNpbmNlIHdlIG9ubHkgaGF2
ZSB0byBhcHBseQorICAgICAgICB0aGUgdHJhbnNmb3JtIHRvIG4rMSBvZmZzZXRzIHdoZXJlIG4g
aXMgdGhlIG51bWJlciBvZiB0cmFuc2Zvcm1zIGluIHRoZSBjaGFpbiwgd2hlcmVhcyBjdXJyZW50
bHkgd2UgaGF2ZSB0byBhcHBseQorICAgICAgICBpdCBPKG0pIHdoZXJlIG0gaXMgdGhlIG51bWJl
ciBvZiByZW5kZXJlcnMgaW4gdGhlIGNoYWluLCB3aXRoIHNvbWUgZWxlbWVudHMgYWNjdW11bGF0
aW5nIG11bHRpcGxlIG9mZnNldHMuIEFsc28KKyAgICAgICAgdXBkYXRpbmcgUmVuZGVyR2VvbWV0
cnlNYXAgdG8gYWxzbyByZXNwZWN0IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zICh3aGljaCBJIGlu
dGVuZCB0byByZW5hbWUgYXMgcGVyIHNtZnIncyByZXF1ZXN0KS4KKworICAgICAgICBUZXN0OiBm
YXN0L3N1Yi1waXhlbC90cmFuc2Zvcm1lZC1pZnJhbWUtY29weS1vbi1zY3JvbGwuaHRtbCBhZGRl
ZC4KKyAgICAgICAgICAgICAgZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWlmcmFtZS1jb3B5LW9u
LXNjcm9sbC5odG1sIG1vZGlmaWVkIHRvIGNhdGNoIHRoZSBmYWlsdXJlIGNhc2UuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9MYXlvdXRTaXplLmg6CisgICAgICAgIChMYXlvdXRTaXpl
KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dFNpemU6OmV4cGFuZCk6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6Om1hcExv
Y2FsVG9Db250YWluZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpwdXNoTWFwcGlu
Z1RvQ29udGFpbmVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94Lmg6CisgICAgICAg
IChSZW5kZXJCb3gpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJHZW9tZXRyeU1hcC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHZW9tZXRyeU1hcDo6bWFwVG9Db250YWluZXIpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVySW5saW5lOjptYXBMb2NhbFRvQ29udGFpbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlcklubGluZTo6cHVzaE1hcHBpbmdUb0NvbnRhaW5lcik6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlcklubGluZS5oOgorICAgICAgICAoUmVuZGVySW5saW5lKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6
bWFwTG9jYWxUb0NvbnRhaW5lcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5o
OgorICAgICAgICAoUmVuZGVyT2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVj
dDo6YWRqdXN0T2Zmc2V0Rm9yU25hcHBpbmcpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJW
aWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZXc6Om1hcExvY2FsVG9Db250YWlu
ZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJWaWV3Lmg6CisgICAgICAgIChSZW5kZXJW
aWV3KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ZvcmVpZ25PYmplY3QuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHRm9yZWlnbk9iamVjdDo6bWFwTG9jYWxUb0Nv
bnRhaW5lcik6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWduT2JqZWN0
Lmg6CisgICAgICAgIChSZW5kZXJTVkdGb3JlaWduT2JqZWN0KToKKyAgICAgICAgKiByZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR0lubGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdJ
bmxpbmU6Om1hcExvY2FsVG9Db250YWluZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHSW5saW5lLmg6CisgICAgICAgIChSZW5kZXJTVkdJbmxpbmUpOgorICAgICAgICAqIHJl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyU1ZHTW9kZWxPYmplY3Q6Om1hcExvY2FsVG9Db250YWluZXIpOgorICAgICAgICAqIHJl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuaDoKKyAgICAgICAgKFJlbmRlclNWR01v
ZGVsT2JqZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHUm9vdDo6bWFwTG9jYWxUb0NvbnRhaW5lcik6Cisg
ICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290Lmg6CisgICAgICAgIChSZW5kZXJT
VkdSb290KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHVGV4dDo6bWFwTG9jYWxUb0NvbnRhaW5lcik6CisgICAg
ICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0Lmg6CisgICAgICAgIChSZW5kZXJTVkdU
ZXh0KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHUmVuZGVyU3VwcG9ydDo6bWFwTG9jYWxUb0NvbnRhaW5lcik6Cisg
ICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0Lmg6CisgICAgICAgIChTVkdS
ZW5kZXJTdXBwb3J0KToKKwogMjAxMi0xMi0wNyAgUmlrIENhYmFuaWVyICA8Y2FiYW5pZXJAYWRv
YmUuY29tPgogCiAgICAgICAgIEV4dGVuZCBwbGF0Zm9ybSBsYXllciBzbyBpdCBjYW4gcGFzcyBi
bGVuZCBtb2RlcyB0byB0aGUgY29tcG9zaXRpbmcgY2FsbHMKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0xheW91dFNpemUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9MYXlvdXRTaXplLmgJKHJldmlzaW9uIDEzNjk5MykKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0xheW91dFNpemUuaAkod29ya2luZyBj
b3B5KQpAQCAtNzEsNyArNzEsMTMgQEAgcHVibGljOgogICAgICAgICBtX3dpZHRoICs9IHdpZHRo
OwogICAgICAgICBtX2hlaWdodCArPSBoZWlnaHQ7CiAgICAgfQotICAgIAorCisgICAgdm9pZCBl
eHBhbmQoY29uc3QgTGF5b3V0U2l6ZSYgcykKKyAgICB7CisgICAgICAgIG1fd2lkdGggKz0gcy5t
X3dpZHRoOworICAgICAgICBtX2hlaWdodCArPSBzLm1faGVpZ2h0OworICAgIH0KKwogICAgIHZv
aWQgc2NhbGUoZmxvYXQgc2NhbGUpCiAgICAgewogICAgICAgICBtX3dpZHRoICo9IHNjYWxlOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAJKHJldmlzaW9uIDEzNjk5
MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMzgwLDcgKzEzODAsNyBAQCBMYXlvdXRVbml0IFJlbmRlckJveDo6cGVycGVuZGlj
dWxhckNvbnRhCiAgICAgcmV0dXJuIGNiLT5hZGp1c3RDb250ZW50Qm94TG9naWNhbEhlaWdodEZv
ckJveFNpemluZyhsb2dpY2FsSGVpZ2h0TGVuZ3RoLnZhbHVlKCkpOwogfQogCi12b2lkIFJlbmRl
ckJveDo6bWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBy
ZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIE1hcENvb3Jk
aW5hdGVzRmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQpIGNvbnN0Cit2b2lkIFJlbmRlckJveDo6
bWFwTG9jYWxUb0NvbnRhaW5lckludGVybmFsKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3Qq
IHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTGF5b3V0
U2l6ZSYgYWNjdW11bGF0ZWRPZmZzZXQsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwgYm9vbCog
d2FzRml4ZWQpIGNvbnN0CiB7CiAgICAgaWYgKHJlcGFpbnRDb250YWluZXIgPT0gdGhpcykKICAg
ICAgICAgcmV0dXJuOwpAQCAtMTM4OCwxMCArMTM4OCwxMSBAQCB2b2lkIFJlbmRlckJveDo6bWFw
TG9jYWxUb0NvbnRhaW5lcihjb25zCiAgICAgaWYgKFJlbmRlclZpZXcqIHYgPSB2aWV3KCkpIHsK
ICAgICAgICAgaWYgKHYtPmxheW91dFN0YXRlRW5hYmxlZCgpICYmICFyZXBhaW50Q29udGFpbmVy
KSB7CiAgICAgICAgICAgICBMYXlvdXRTdGF0ZSogbGF5b3V0U3RhdGUgPSB2LT5sYXlvdXRTdGF0
ZSgpOwotICAgICAgICAgICAgTGF5b3V0U2l6ZSBvZmZzZXQgPSBsYXlvdXRTdGF0ZS0+bV9wYWlu
dE9mZnNldCArIGxvY2F0aW9uT2Zmc2V0KCk7CisgICAgICAgICAgICBMYXlvdXRTaXplIG9mZnNl
dCA9IGxheW91dFN0YXRlLT5tX3BhaW50T2Zmc2V0ICsgbG9jYXRpb25PZmZzZXQoKSArIGFjY3Vt
dWxhdGVkT2Zmc2V0OworICAgICAgICAgICAgYWNjdW11bGF0ZWRPZmZzZXQgPSBMYXlvdXRTaXpl
KCk7CiAgICAgICAgICAgICBpZiAoc3R5bGUoKS0+aGFzSW5GbG93UG9zaXRpb24oKSAmJiBsYXll
cigpKQogICAgICAgICAgICAgICAgIG9mZnNldCArPSBsYXllcigpLT5vZmZzZXRGb3JJbkZsb3dQ
b3NpdGlvbigpOwotICAgICAgICAgICAgdHJhbnNmb3JtU3RhdGUubW92ZShvZmZzZXQpOworICAg
ICAgICAgICAgdHJhbnNmb3JtU3RhdGUubW92ZShhZGp1c3RPZmZzZXRGb3JTbmFwcGluZyhtb2Rl
LCBvZmZzZXQpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KQEAgLTE0
MTMsMzYgKzE0MTQsNDIgQEAgdm9pZCBSZW5kZXJCb3g6Om1hcExvY2FsVG9Db250YWluZXIoY29u
cwogICAgIGlmICh3YXNGaXhlZCkKICAgICAgICAgKndhc0ZpeGVkID0gbW9kZSAmIElzRml4ZWQ7
CiAgICAgCi0gICAgTGF5b3V0U2l6ZSBjb250YWluZXJPZmZzZXQgPSBvZmZzZXRGcm9tQ29udGFp
bmVyKG8sIHJvdW5kZWRMYXlvdXRQb2ludCh0cmFuc2Zvcm1TdGF0ZS5tYXBwZWRQb2ludCgpKSk7
Ci0gICAgaWYgKG1vZGUgJiBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcykKLSAgICAgICAgY29udGFp
bmVyT2Zmc2V0ID0gcm91bmRlZEludFNpemUoY29udGFpbmVyT2Zmc2V0KTsKLSAgICAKLSAgICBi
b29sIHByZXNlcnZlM0QgPSBtb2RlICYgVXNlVHJhbnNmb3JtcyAmJiAoby0+c3R5bGUoKS0+cHJl
c2VydmVzM0QoKSB8fCBzdHlsZSgpLT5wcmVzZXJ2ZXMzRCgpKTsKKyAgICBMYXlvdXRTaXplIGNv
bnRhaW5lck9mZnNldCA9IG9mZnNldEZyb21Db250YWluZXIobywgcm91bmRlZExheW91dFBvaW50
KHRyYW5zZm9ybVN0YXRlLm1hcHBlZFBvaW50KCkgKyBhY2N1bXVsYXRlZE9mZnNldCkpOworICAg
IGJvb2wgcHJlc2VydmUzRCA9IG1vZGUgJiBVc2VUcmFuc2Zvcm1zICYmICgobyAmJiBvLT5zdHls
ZSgpLT5wcmVzZXJ2ZXMzRCgpKSB8fCBzdHlsZSgpLT5wcmVzZXJ2ZXMzRCgpKTsKICAgICBpZiAo
bW9kZSAmIFVzZVRyYW5zZm9ybXMgJiYgc2hvdWxkVXNlVHJhbnNmb3JtRnJvbUNvbnRhaW5lcihv
KSkgeworICAgICAgICBhcHBseUFjY3VtdWxhdGVkT2Zmc2V0KHRyYW5zZm9ybVN0YXRlLCBhY2N1
bXVsYXRlZE9mZnNldCwgbW9kZSk7CiAgICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHQ7CiAg
ICAgICAgIGdldFRyYW5zZm9ybUZyb21Db250YWluZXIobywgY29udGFpbmVyT2Zmc2V0LCB0KTsK
ICAgICAgICAgdHJhbnNmb3JtU3RhdGUuYXBwbHlUcmFuc2Zvcm0odCwgcHJlc2VydmUzRCA/IFRy
YW5zZm9ybVN0YXRlOjpBY2N1bXVsYXRlVHJhbnNmb3JtIDogVHJhbnNmb3JtU3RhdGU6OkZsYXR0
ZW5UcmFuc2Zvcm0pOworICAgIH0gZWxzZSBpZiAocHJlc2VydmUzRCkgeworICAgICAgICBhcHBs
eUFjY3VtdWxhdGVkT2Zmc2V0KHRyYW5zZm9ybVN0YXRlLCBhY2N1bXVsYXRlZE9mZnNldCwgbW9k
ZSk7CisgICAgICAgIExheW91dFNpemUgYWRqdXN0ZWRDb250YWluZXJPZmZzZXQgPSBhZGp1c3RP
ZmZzZXRGb3JTbmFwcGluZyhtb2RlLCBjb250YWluZXJPZmZzZXQpOworICAgICAgICB0cmFuc2Zv
cm1TdGF0ZS5tb3ZlKGFkanVzdGVkQ29udGFpbmVyT2Zmc2V0LndpZHRoKCksIGFkanVzdGVkQ29u
dGFpbmVyT2Zmc2V0LmhlaWdodCgpLCBUcmFuc2Zvcm1TdGF0ZTo6QWNjdW11bGF0ZVRyYW5zZm9y
bSk7CiAgICAgfSBlbHNlCi0gICAgICAgIHRyYW5zZm9ybVN0YXRlLm1vdmUoY29udGFpbmVyT2Zm
c2V0LndpZHRoKCksIGNvbnRhaW5lck9mZnNldC5oZWlnaHQoKSwgcHJlc2VydmUzRCA/IFRyYW5z
Zm9ybVN0YXRlOjpBY2N1bXVsYXRlVHJhbnNmb3JtIDogVHJhbnNmb3JtU3RhdGU6OkZsYXR0ZW5U
cmFuc2Zvcm0pOworICAgICAgICBhY2N1bXVsYXRlZE9mZnNldC5leHBhbmQoY29udGFpbmVyT2Zm
c2V0KTsKIAogICAgIGlmIChjb250YWluZXJTa2lwcGVkKSB7CiAgICAgICAgIC8vIFRoZXJlIGNh
bid0IGJlIGEgdHJhbnNmb3JtIGJldHdlZW4gcmVwYWludENvbnRhaW5lciBhbmQgbywgYmVjYXVz
ZSB0cmFuc2Zvcm1zIGNyZWF0ZSBjb250YWluZXJzLCBzbyBpdCBzaG91bGQgYmUgc2FmZQogICAg
ICAgICAvLyB0byBqdXN0IHN1YnRyYWN0IHRoZSBkZWx0YSBiZXR3ZWVuIHRoZSByZXBhaW50Q29u
dGFpbmVyIGFuZCBvLgogICAgICAgICBMYXlvdXRTaXplIGNvbnRhaW5lck9mZnNldCA9IHJlcGFp
bnRDb250YWluZXItPm9mZnNldEZyb21BbmNlc3RvckNvbnRhaW5lcihvKTsKLSAgICAgICAgdHJh
bnNmb3JtU3RhdGUubW92ZSgtY29udGFpbmVyT2Zmc2V0LndpZHRoKCksIC1jb250YWluZXJPZmZz
ZXQuaGVpZ2h0KCksIHByZXNlcnZlM0QgPyBUcmFuc2Zvcm1TdGF0ZTo6QWNjdW11bGF0ZVRyYW5z
Zm9ybSA6IFRyYW5zZm9ybVN0YXRlOjpGbGF0dGVuVHJhbnNmb3JtKTsKKyAgICAgICAgaWYgKHBy
ZXNlcnZlM0QpCisgICAgICAgICAgICB0cmFuc2Zvcm1TdGF0ZS5tb3ZlKGFkanVzdGVkQ29udGFp
bmVyT2Zmc2V0LndpZHRoKCksIGFkanVzdGVkQ29udGFpbmVyT2Zmc2V0LmhlaWdodCgpLCBUcmFu
c2Zvcm1TdGF0ZTo6QWNjdW11bGF0ZVRyYW5zZm9ybSk7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIGFjY3VtdWxhdGVkT2Zmc2V0LmV4cGFuZCgtY29udGFpbmVyT2Zmc2V0KTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAogICAgIG1vZGUgJj0gfkFwcGx5Q29udGFpbmVyRmxpcDsKICAgICBp
ZiAoby0+aXNSZW5kZXJGbG93VGhyZWFkKCkpIHsKICAgICAgICAgLy8gVHJhbnNmb3JtIGZyb20g
cmVuZGVyIGZsb3cgY29vcmRpbmF0ZXMgaW50byByZWdpb24gY29vcmRpbmF0ZXMuCisgICAgICAg
IGFwcGx5QWNjdW11bGF0ZWRPZmZzZXQodHJhbnNmb3JtU3RhdGUsIGFjY3VtdWxhdGVkT2Zmc2V0
LCBtb2RlKTsKICAgICAgICAgUmVuZGVyUmVnaW9uKiByZWdpb24gPSB0b1JlbmRlckZsb3dUaHJl
YWQobyktPm1hcEZyb21GbG93VG9SZWdpb24odHJhbnNmb3JtU3RhdGUpOwogICAgICAgICBpZiAo
cmVnaW9uKQotICAgICAgICAgICAgcmVnaW9uLT5tYXBMb2NhbFRvQ29udGFpbmVyKHJlZ2lvbi0+
Y29udGFpbmVyRm9yUmVwYWludCgpLCB0cmFuc2Zvcm1TdGF0ZSwgbW9kZSwgd2FzRml4ZWQpOwor
ICAgICAgICAgICAgcmVnaW9uLT5tYXBMb2NhbFRvQ29udGFpbmVySW50ZXJuYWwocmVnaW9uLT5j
b250YWluZXJGb3JSZXBhaW50KCksIHRyYW5zZm9ybVN0YXRlLCBhY2N1bXVsYXRlZE9mZnNldCwg
bW9kZSwgd2FzRml4ZWQpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgby0+bWFwTG9j
YWxUb0NvbnRhaW5lcihyZXBhaW50Q29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwgbW9kZSwgd2Fz
Rml4ZWQpOworICAgIG8tPm1hcExvY2FsVG9Db250YWluZXJJbnRlcm5hbChyZXBhaW50Q29udGFp
bmVyLCB0cmFuc2Zvcm1TdGF0ZSwgYWNjdW11bGF0ZWRPZmZzZXQsIG1vZGUsIHdhc0ZpeGVkKTsK
IH0KIAogY29uc3QgUmVuZGVyT2JqZWN0KiBSZW5kZXJCb3g6OnB1c2hNYXBwaW5nVG9Db250YWlu
ZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0b3JUb1N0b3BBdCwgUmVuZGVy
R2VvbWV0cnlNYXAmIGdlb21ldHJ5TWFwKSBjb25zdApAQCAtMTQ2Niw4ICsxNDczLDYgQEAgY29u
c3QgUmVuZGVyT2JqZWN0KiBSZW5kZXJCb3g6OnB1c2hNYXBwaQogCiAgICAgYm9vbCBvZmZzZXRE
ZXBlbmRzT25Qb2ludCA9IGZhbHNlOwogICAgIExheW91dFNpemUgY29udGFpbmVyT2Zmc2V0ID0g
b2Zmc2V0RnJvbUNvbnRhaW5lcihjb250YWluZXIsIExheW91dFBvaW50KCksICZvZmZzZXREZXBl
bmRzT25Qb2ludCk7Ci0gICAgaWYgKGdlb21ldHJ5TWFwLm1hcENvb3JkaW5hdGVzRmxhZ3MoKSAm
IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKQotICAgICAgICBjb250YWluZXJPZmZzZXQgPSByb3Vu
ZGVkSW50U2l6ZShjb250YWluZXJPZmZzZXQpOwogCiAgICAgaWYgKGNvbnRhaW5lci0+aXNSZW5k
ZXJGbG93VGhyZWFkKCkpCiAgICAgICAgIG9mZnNldERlcGVuZHNPblBvaW50ID0gdHJ1ZTsKQEAg
LTE0NzYsNiArMTQ4MSw3IEBAIGNvbnN0IFJlbmRlck9iamVjdCogUmVuZGVyQm94OjpwdXNoTWFw
cGkKICAgICBpZiAoc2hvdWxkVXNlVHJhbnNmb3JtRnJvbUNvbnRhaW5lcihjb250YWluZXIpKSB7
CiAgICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHQ7CiAgICAgICAgIGdldFRyYW5zZm9ybUZy
b21Db250YWluZXIoY29udGFpbmVyLCBjb250YWluZXJPZmZzZXQsIHQpOworICAgICAgICBhZGp1
c3RtZW50Rm9yU2tpcHBlZEFuY2VzdG9yID0gYWRqdXN0T2Zmc2V0Rm9yU25hcHBpbmcoZ2VvbWV0
cnlNYXAubWFwQ29vcmRpbmF0ZXNGbGFncygpLCBhZGp1c3RtZW50Rm9yU2tpcHBlZEFuY2VzdG9y
KTsKICAgICAgICAgdC50cmFuc2xhdGVSaWdodChhZGp1c3RtZW50Rm9yU2tpcHBlZEFuY2VzdG9y
LndpZHRoKCksIGFkanVzdG1lbnRGb3JTa2lwcGVkQW5jZXN0b3IuaGVpZ2h0KCkpOwogICAgICAg
ICAKICAgICAgICAgZ2VvbWV0cnlNYXAucHVzaCh0aGlzLCB0LCBwcmVzZXJ2ZTNELCBvZmZzZXRE
ZXBlbmRzT25Qb2ludCwgaXNGaXhlZFBvcywgaGFzVHJhbnNmb3JtKTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgJKHJldmlzaW9uIDEzNjk5MykKKysrIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAkod29ya2luZyBjb3B5KQpAQCAtNTkxLDcgKzU5MSw3
IEBAIHByb3RlY3RlZDoKICAgICAKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQ29tcHV0ZVNpemVB
c1JlcGxhY2VkKCkgY29uc3QgeyByZXR1cm4gaXNSZXBsYWNlZCgpICYmICFpc0lubGluZUJsb2Nr
T3JJbmxpbmVUYWJsZSgpOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5l
cihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zv
cm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5lckZsaXAgfCBTbmFw
T2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lckludGVybmFsKGNvbnN0IFJlbmRl
ckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTGF5
b3V0U2l6ZSYgYWNjdW11bGF0ZWRPZmZzZXQsIE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNv
bnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCogd2FzRml4ZWQgPSAw
KSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGNvbnN0IFJlbmRlck9iamVjdCogcHVzaE1h
cHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiwgUmVuZGVyR2Vv
bWV0cnlNYXAmKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgbWFwQWJzb2x1dGVU
b0xvY2FsUG9pbnQoTWFwQ29vcmRpbmF0ZXNGbGFncywgVHJhbnNmb3JtU3RhdGUmKSBjb25zdDsK
IApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdlb21ldHJ5TWFwLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR2VvbWV0cnlNYXAu
Y3BwCShyZXZpc2lvbiAxMzY5OTMpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
R2VvbWV0cnlNYXAuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Niw2ICs0NiwxNSBAQCBSZW5kZXJH
ZW9tZXRyeU1hcDo6flJlbmRlckdlb21ldHJ5TWFwKCkKIHsKIH0KIAorc3RhdGljIHZvaWQgYXBw
bHlBY2N1bXVsYXRlZE9mZnNldChUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIExheW91
dFNpemUmIGFjY3VtdWxhdGVkT2Zmc2V0LCBNYXBDb29yZGluYXRlc0ZsYWdzIG1hcENvb3JkaW5h
dGVzRmxhZ3MsIFRyYW5zZm9ybVN0YXRlOjpUcmFuc2Zvcm1BY2N1bXVsYXRpb24gYWNjdW11bGF0
ZSA9IFRyYW5zZm9ybVN0YXRlOjpGbGF0dGVuVHJhbnNmb3JtKQoreworICAgIGFjY3VtdWxhdGVk
T2Zmc2V0ID0gKG1hcENvb3JkaW5hdGVzRmxhZ3MgJiBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jtcykg
PyByb3VuZGVkSW50U2l6ZShhY2N1bXVsYXRlZE9mZnNldCkgOiBhY2N1bXVsYXRlZE9mZnNldDsK
KyAgICBpZiAoIWFjY3VtdWxhdGVkT2Zmc2V0LmlzWmVybygpKSB7CisgICAgICAgIHRyYW5zZm9y
bVN0YXRlLm1vdmUoYWNjdW11bGF0ZWRPZmZzZXQud2lkdGgoKSwgYWNjdW11bGF0ZWRPZmZzZXQu
aGVpZ2h0KCksIGFjY3VtdWxhdGUpOworICAgICAgICBhY2N1bXVsYXRlZE9mZnNldCA9IExheW91
dFNpemUoKTsKKyAgICB9Cit9CisKIHZvaWQgUmVuZGVyR2VvbWV0cnlNYXA6Om1hcFRvQ29udGFp
bmVyKFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgY29uc3QgUmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdCogY29udGFpbmVyKSBjb25zdAogewogICAgIC8vIElmIHRoZSBtYXBwaW5nIGluY2x1
ZGVzIHNvbWV0aGluZyBsaWtlIGNvbHVtbnMsIHdlIGhhdmUgdG8gZ28gdmlhIHJlbmRlcmVycy4K
QEAgLTU5LDYgKzY4LDcgQEAgdm9pZCBSZW5kZXJHZW9tZXRyeU1hcDo6bWFwVG9Db250YWluZXIo
VAogICAgIGJvb2wgZm91bmRDb250YWluZXIgPSAhY29udGFpbmVyIHx8IChtX21hcHBpbmcuc2l6
ZSgpICYmIG1fbWFwcGluZ1swXS5tX3JlbmRlcmVyID09IGNvbnRhaW5lcik7CiAjZW5kaWYKIAor
ICAgIExheW91dFNpemUgYWNjdW11bGF0ZWRPZmZzZXQ7CiAgICAgZm9yIChpbnQgaSA9IG1fbWFw
cGluZy5zaXplKCkgLSAxOyBpID49IDA7IC0taSkgewogICAgICAgICBjb25zdCBSZW5kZXJHZW9t
ZXRyeU1hcFN0ZXAmIGN1cnJlbnRTdGVwID0gbV9tYXBwaW5nW2ldOwogCkBAIC04MCwyMyArOTAs
MzEgQEAgdm9pZCBSZW5kZXJHZW9tZXRyeU1hcDo6bWFwVG9Db250YWluZXIoVAogCiAgICAgICAg
IGlmICghaSkgewogICAgICAgICAgICAgLy8gQSBudWxsIGNvbnRhaW5lciBpbmRpY2F0ZXMgbWFw
cGluZyB0aHJvdWdoIHRoZSBSZW5kZXJWaWV3LCBzbyBpbmNsdWRpbmcgaXRzIHRyYW5zZm9ybSAo
dGhlIHBhZ2Ugc2NhbGUpLgotICAgICAgICAgICAgaWYgKCFjb250YWluZXIgJiYgY3VycmVudFN0
ZXAubV90cmFuc2Zvcm0pCisgICAgICAgICAgICBpZiAoIWNvbnRhaW5lciAmJiBjdXJyZW50U3Rl
cC5tX3RyYW5zZm9ybSkgeworICAgICAgICAgICAgICAgIGFwcGx5QWNjdW11bGF0ZWRPZmZzZXQo
dHJhbnNmb3JtU3RhdGUsIGFjY3VtdWxhdGVkT2Zmc2V0LCBtX21hcENvb3JkaW5hdGVzRmxhZ3Mp
OwogICAgICAgICAgICAgICAgIHRyYW5zZm9ybVN0YXRlLmFwcGx5VHJhbnNmb3JtKCpjdXJyZW50
U3RlcC5tX3RyYW5zZm9ybS5nZXQoKSk7CisgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIC8v
IFRoZSByb290IGdldHMgc3BlY2lhbCB0cmVhdG1lbnQgZm9yIGZpeGVkIHBvc2l0aW9uCiAgICAg
ICAgICAgICBpZiAoaW5GaXhlZCkKLSAgICAgICAgICAgICAgICB0cmFuc2Zvcm1TdGF0ZS5tb3Zl
KGN1cnJlbnRTdGVwLm1fb2Zmc2V0LndpZHRoKCksIGN1cnJlbnRTdGVwLm1fb2Zmc2V0LmhlaWdo
dCgpKTsKKyAgICAgICAgICAgICAgICBhY2N1bXVsYXRlZE9mZnNldC5leHBhbmQoY3VycmVudFN0
ZXAubV9vZmZzZXQpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgVHJhbnNmb3JtU3Rh
dGU6OlRyYW5zZm9ybUFjY3VtdWxhdGlvbiBhY2N1bXVsYXRlID0gY3VycmVudFN0ZXAubV9hY2N1
bXVsYXRpbmdUcmFuc2Zvcm0gPyBUcmFuc2Zvcm1TdGF0ZTo6QWNjdW11bGF0ZVRyYW5zZm9ybSA6
IFRyYW5zZm9ybVN0YXRlOjpGbGF0dGVuVHJhbnNmb3JtOwotICAgICAgICAgICAgaWYgKGN1cnJl
bnRTdGVwLm1fdHJhbnNmb3JtKQorICAgICAgICAgICAgaWYgKGN1cnJlbnRTdGVwLm1fdHJhbnNm
b3JtKSB7CisgICAgICAgICAgICAgICAgYXBwbHlBY2N1bXVsYXRlZE9mZnNldCh0cmFuc2Zvcm1T
dGF0ZSwgYWNjdW11bGF0ZWRPZmZzZXQsIG1fbWFwQ29vcmRpbmF0ZXNGbGFncyk7CiAgICAgICAg
ICAgICAgICAgdHJhbnNmb3JtU3RhdGUuYXBwbHlUcmFuc2Zvcm0oKmN1cnJlbnRTdGVwLm1fdHJh
bnNmb3JtLmdldCgpLCBhY2N1bXVsYXRlKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAg
ICAgICB0cmFuc2Zvcm1TdGF0ZS5tb3ZlKGN1cnJlbnRTdGVwLm1fb2Zmc2V0LndpZHRoKCksIGN1
cnJlbnRTdGVwLm1fb2Zmc2V0LmhlaWdodCgpLCBhY2N1bXVsYXRlKTsKKyAgICAgICAgICAgIH0g
ZWxzZSBpZiAoY3VycmVudFN0ZXAubV9hY2N1bXVsYXRpbmdUcmFuc2Zvcm0pIHsKKyAgICAgICAg
ICAgICAgICBhcHBseUFjY3VtdWxhdGVkT2Zmc2V0KHRyYW5zZm9ybVN0YXRlLCBhY2N1bXVsYXRl
ZE9mZnNldCwgbV9tYXBDb29yZGluYXRlc0ZsYWdzKTsKKyAgICAgICAgICAgICAgICBMYXlvdXRT
aXplIGNvbnRhaW5lck9mZnNldCA9IGFkanVzdE9mZnNldEZvclNuYXBwaW5nKG1fbWFwQ29vcmRp
bmF0ZXNGbGFncywgY3VycmVudFN0ZXAubV9vZmZzZXQpOworICAgICAgICAgICAgICAgIHRyYW5z
Zm9ybVN0YXRlLm1vdmUoY29udGFpbmVyT2Zmc2V0LndpZHRoKCksIGNvbnRhaW5lck9mZnNldC5o
ZWlnaHQoKSwgYWNjdW11bGF0ZSk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAg
ICBhY2N1bXVsYXRlZE9mZnNldC5leHBhbmQoY3VycmVudFN0ZXAubV9vZmZzZXQpOwogICAgICAg
ICB9CiAgICAgfQogCisgICAgYXBwbHlBY2N1bXVsYXRlZE9mZnNldCh0cmFuc2Zvcm1TdGF0ZSwg
YWNjdW11bGF0ZWRPZmZzZXQsIG1fbWFwQ29vcmRpbmF0ZXNGbGFncyk7CiAgICAgQVNTRVJUKGZv
dW5kQ29udGFpbmVyKTsKLSAgICB0cmFuc2Zvcm1TdGF0ZS5mbGF0dGVuKCk7ICAgIAorICAgIHRy
YW5zZm9ybVN0YXRlLmZsYXR0ZW4oKTsKIH0KIAogRmxvYXRQb2ludCBSZW5kZXJHZW9tZXRyeU1h
cDo6bWFwVG9Db250YWluZXIoY29uc3QgRmxvYXRQb2ludCYgcCwgY29uc3QgUmVuZGVyTGF5ZXJN
b2RlbE9iamVjdCogY29udGFpbmVyKSBjb25zdApAQCAtMTA0LDcgKzEyMiw3IEBAIEZsb2F0UG9p
bnQgUmVuZGVyR2VvbWV0cnlNYXA6Om1hcFRvQ29udGEKICAgICBGbG9hdFBvaW50IHJlc3VsdDsK
ICAgICAKICAgICBpZiAoIWhhc0ZpeGVkUG9zaXRpb25TdGVwKCkgJiYgIWhhc1RyYW5zZm9ybVN0
ZXAoKSAmJiAhaGFzTm9uVW5pZm9ybVN0ZXAoKSAmJiAoIWNvbnRhaW5lciB8fCAobV9tYXBwaW5n
LnNpemUoKSAmJiBjb250YWluZXIgPT0gbV9tYXBwaW5nWzBdLm1fcmVuZGVyZXIpKSkKLSAgICAg
ICAgcmVzdWx0ID0gcCArIG1fYWNjdW11bGF0ZWRPZmZzZXQ7CisgICAgICAgIHJlc3VsdCA9IHAg
KyBhZGp1c3RPZmZzZXRGb3JTbmFwcGluZyhtX21hcENvb3JkaW5hdGVzRmxhZ3MsIG1fYWNjdW11
bGF0ZWRPZmZzZXQpOwogICAgIGVsc2UgewogICAgICAgICBUcmFuc2Zvcm1TdGF0ZSB0cmFuc2Zv
cm1TdGF0ZShUcmFuc2Zvcm1TdGF0ZTo6QXBwbHlUcmFuc2Zvcm1EaXJlY3Rpb24sIHApOwogICAg
ICAgICBtYXBUb0NvbnRhaW5lcih0cmFuc2Zvcm1TdGF0ZSwgY29udGFpbmVyKTsKQEAgLTEyNyw3
ICsxNDUsNyBAQCBGbG9hdFF1YWQgUmVuZGVyR2VvbWV0cnlNYXA6Om1hcFRvQ29udGFpCiAgICAg
CiAgICAgaWYgKCFoYXNGaXhlZFBvc2l0aW9uU3RlcCgpICYmICFoYXNUcmFuc2Zvcm1TdGVwKCkg
JiYgIWhhc05vblVuaWZvcm1TdGVwKCkgJiYgKCFjb250YWluZXIgfHwgKG1fbWFwcGluZy5zaXpl
KCkgJiYgY29udGFpbmVyID09IG1fbWFwcGluZ1swXS5tX3JlbmRlcmVyKSkpIHsKICAgICAgICAg
cmVzdWx0ID0gcmVjdDsKLSAgICAgICAgcmVzdWx0Lm1vdmUobV9hY2N1bXVsYXRlZE9mZnNldCk7
CisgICAgICAgIHJlc3VsdC5tb3ZlKGFkanVzdE9mZnNldEZvclNuYXBwaW5nKG1fbWFwQ29vcmRp
bmF0ZXNGbGFncywgbV9hY2N1bXVsYXRlZE9mZnNldCkpOwogICAgIH0gZWxzZSB7CiAgICAgICAg
IFRyYW5zZm9ybVN0YXRlIHRyYW5zZm9ybVN0YXRlKFRyYW5zZm9ybVN0YXRlOjpBcHBseVRyYW5z
Zm9ybURpcmVjdGlvbiwgcmVjdC5jZW50ZXIoKSwgcmVjdCk7CiAgICAgICAgIG1hcFRvQ29udGFp
bmVyKHRyYW5zZm9ybVN0YXRlLCBjb250YWluZXIpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlcklubGluZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlcklubGluZS5jcHAJKHJldmlzaW9uIDEzNjk5MykKKysrIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTU3LDcg
KzExNTcsNyBAQCBMYXlvdXRTaXplIFJlbmRlcklubGluZTo6b2Zmc2V0RnJvbUNvbnRhCiAgICAg
cmV0dXJuIG9mZnNldDsKIH0KIAotdm9pZCBSZW5kZXJJbmxpbmU6Om1hcExvY2FsVG9Db250YWlu
ZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNm
b3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUsIGJvb2wq
IHdhc0ZpeGVkKSBjb25zdAordm9pZCBSZW5kZXJJbmxpbmU6Om1hcExvY2FsVG9Db250YWluZXJJ
bnRlcm5hbChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBU
cmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIExheW91dFNpemUmIGFjY3VtdWxhdGVkT2Zm
c2V0LCBNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAogewog
ICAgIGlmIChyZXBhaW50Q29udGFpbmVyID09IHRoaXMpCiAgICAgICAgIHJldHVybjsKQEAgLTEx
NjUsMTAgKzExNjUsMTEgQEAgdm9pZCBSZW5kZXJJbmxpbmU6Om1hcExvY2FsVG9Db250YWluZXIo
YwogICAgIGlmIChSZW5kZXJWaWV3ICp2ID0gdmlldygpKSB7CiAgICAgICAgIGlmICh2LT5sYXlv
dXRTdGF0ZUVuYWJsZWQoKSAmJiAhcmVwYWludENvbnRhaW5lcikgewogICAgICAgICAgICAgTGF5
b3V0U3RhdGUqIGxheW91dFN0YXRlID0gdi0+bGF5b3V0U3RhdGUoKTsKLSAgICAgICAgICAgIExh
eW91dFNpemUgb2Zmc2V0ID0gbGF5b3V0U3RhdGUtPm1fcGFpbnRPZmZzZXQ7CisgICAgICAgICAg
ICBhY2N1bXVsYXRlZE9mZnNldC5leHBhbmQobGF5b3V0U3RhdGUtPm1fcGFpbnRPZmZzZXQgKyBh
Y2N1bXVsYXRlZE9mZnNldCk7CiAgICAgICAgICAgICBpZiAoc3R5bGUoKS0+aGFzSW5GbG93UG9z
aXRpb24oKSAmJiBsYXllcigpKQotICAgICAgICAgICAgICAgIG9mZnNldCArPSBsYXllcigpLT5v
ZmZzZXRGb3JJbkZsb3dQb3NpdGlvbigpOwotICAgICAgICAgICAgdHJhbnNmb3JtU3RhdGUubW92
ZShvZmZzZXQpOworICAgICAgICAgICAgICAgIGFjY3VtdWxhdGVkT2Zmc2V0ICs9IGxheWVyKCkt
Pm9mZnNldEZvckluRmxvd1Bvc2l0aW9uKCk7CisgICAgICAgICAgICB0cmFuc2Zvcm1TdGF0ZS5t
b3ZlKGFkanVzdE9mZnNldEZvclNuYXBwaW5nKG1vZGUsIGFjY3VtdWxhdGVkT2Zmc2V0KSk7Cisg
ICAgICAgICAgICBhY2N1bXVsYXRlZE9mZnNldCA9IExheW91dFNpemUoKTsKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQogICAgIH0KQEAgLTExODAsMzMgKzExODEsMzggQEAgdm9pZCBS
ZW5kZXJJbmxpbmU6Om1hcExvY2FsVG9Db250YWluZXIoYwogCiAgICAgaWYgKG1vZGUgJiBBcHBs
eUNvbnRhaW5lckZsaXAgJiYgby0+aXNCb3goKSkgewogICAgICAgICBpZiAoby0+c3R5bGUoKS0+
aXNGbGlwcGVkQmxvY2tzV3JpdGluZ01vZGUoKSkgewotICAgICAgICAgICAgSW50UG9pbnQgY2Vu
dGVyUG9pbnQgPSByb3VuZGVkSW50UG9pbnQodHJhbnNmb3JtU3RhdGUubWFwcGVkUG9pbnQoKSk7
Ci0gICAgICAgICAgICB0cmFuc2Zvcm1TdGF0ZS5tb3ZlKHRvUmVuZGVyQm94KG8pLT5mbGlwRm9y
V3JpdGluZ01vZGVJbmNsdWRpbmdDb2x1bW5zKGNlbnRlclBvaW50KSAtIGNlbnRlclBvaW50KTsK
KyAgICAgICAgICAgIEludFBvaW50IGNlbnRlclBvaW50ID0gcm91bmRlZEludFBvaW50KHRyYW5z
Zm9ybVN0YXRlLm1hcHBlZFBvaW50KCkgKyBhY2N1bXVsYXRlZE9mZnNldCk7CisgICAgICAgICAg
ICBhY2N1bXVsYXRlZE9mZnNldC5leHBhbmQodG9SZW5kZXJCb3gobyktPmZsaXBGb3JXcml0aW5n
TW9kZUluY2x1ZGluZ0NvbHVtbnMoY2VudGVyUG9pbnQpIC0gY2VudGVyUG9pbnQpOwogICAgICAg
ICB9CiAgICAgICAgIG1vZGUgJj0gfkFwcGx5Q29udGFpbmVyRmxpcDsKICAgICB9CiAKICAgICBM
YXlvdXRTaXplIGNvbnRhaW5lck9mZnNldCA9IG9mZnNldEZyb21Db250YWluZXIobywgcm91bmRl
ZExheW91dFBvaW50KHRyYW5zZm9ybVN0YXRlLm1hcHBlZFBvaW50KCkpKTsKLSAgICBpZiAobW9k
ZSAmIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKQotICAgICAgICBjb250YWluZXJPZmZzZXQgPSBy
b3VuZGVkSW50U2l6ZShjb250YWluZXJPZmZzZXQpOwotCi0gICAgYm9vbCBwcmVzZXJ2ZTNEID0g
bW9kZSAmIFVzZVRyYW5zZm9ybXMgJiYgKG8tPnN0eWxlKCktPnByZXNlcnZlczNEKCkgfHwgc3R5
bGUoKS0+cHJlc2VydmVzM0QoKSk7CisgICAgYm9vbCBwcmVzZXJ2ZTNEID0gbW9kZSAmIFVzZVRy
YW5zZm9ybXMgJiYgKChvICYmIG8tPnN0eWxlKCktPnByZXNlcnZlczNEKCkpIHx8IHN0eWxlKCkt
PnByZXNlcnZlczNEKCkpOwogICAgIGlmIChtb2RlICYgVXNlVHJhbnNmb3JtcyAmJiBzaG91bGRV
c2VUcmFuc2Zvcm1Gcm9tQ29udGFpbmVyKG8pKSB7CisgICAgICAgIGFwcGx5QWNjdW11bGF0ZWRP
ZmZzZXQodHJhbnNmb3JtU3RhdGUsIGFjY3VtdWxhdGVkT2Zmc2V0LCBtb2RlKTsKICAgICAgICAg
VHJhbnNmb3JtYXRpb25NYXRyaXggdDsKICAgICAgICAgZ2V0VHJhbnNmb3JtRnJvbUNvbnRhaW5l
cihvLCBjb250YWluZXJPZmZzZXQsIHQpOwogICAgICAgICB0cmFuc2Zvcm1TdGF0ZS5hcHBseVRy
YW5zZm9ybSh0LCBwcmVzZXJ2ZTNEID8gVHJhbnNmb3JtU3RhdGU6OkFjY3VtdWxhdGVUcmFuc2Zv
cm0gOiBUcmFuc2Zvcm1TdGF0ZTo6RmxhdHRlblRyYW5zZm9ybSk7CisgICAgfSBlbHNlIGlmIChw
cmVzZXJ2ZTNEKSB7CisgICAgICAgIGFwcGx5QWNjdW11bGF0ZWRPZmZzZXQodHJhbnNmb3JtU3Rh
dGUsIGFjY3VtdWxhdGVkT2Zmc2V0LCBtb2RlKTsKKyAgICAgICAgTGF5b3V0U2l6ZSBhZGp1c3Rl
ZENvbnRhaW5lck9mZnNldCA9IGFkanVzdE9mZnNldEZvclNuYXBwaW5nKG1vZGUsIGNvbnRhaW5l
ck9mZnNldCk7CisgICAgICAgIHRyYW5zZm9ybVN0YXRlLm1vdmUoYWRqdXN0ZWRDb250YWluZXJP
ZmZzZXQud2lkdGgoKSwgYWRqdXN0ZWRDb250YWluZXJPZmZzZXQuaGVpZ2h0KCksIFRyYW5zZm9y
bVN0YXRlOjpBY2N1bXVsYXRlVHJhbnNmb3JtKTsKICAgICB9IGVsc2UKLSAgICAgICAgdHJhbnNm
b3JtU3RhdGUubW92ZShjb250YWluZXJPZmZzZXQud2lkdGgoKSwgY29udGFpbmVyT2Zmc2V0Lmhl
aWdodCgpLCBwcmVzZXJ2ZTNEID8gVHJhbnNmb3JtU3RhdGU6OkFjY3VtdWxhdGVUcmFuc2Zvcm0g
OiBUcmFuc2Zvcm1TdGF0ZTo6RmxhdHRlblRyYW5zZm9ybSk7CisgICAgICAgIGFjY3VtdWxhdGVk
T2Zmc2V0LmV4cGFuZChjb250YWluZXJPZmZzZXQpOyAgIAogCiAgICAgaWYgKGNvbnRhaW5lclNr
aXBwZWQpIHsKICAgICAgICAgLy8gVGhlcmUgY2FuJ3QgYmUgYSB0cmFuc2Zvcm0gYmV0d2VlbiBy
ZXBhaW50Q29udGFpbmVyIGFuZCBvLCBiZWNhdXNlIHRyYW5zZm9ybXMgY3JlYXRlIGNvbnRhaW5l
cnMsIHNvIGl0IHNob3VsZCBiZSBzYWZlCiAgICAgICAgIC8vIHRvIGp1c3Qgc3VidHJhY3QgdGhl
IGRlbHRhIGJldHdlZW4gdGhlIHJlcGFpbnRDb250YWluZXIgYW5kIG8uCiAgICAgICAgIExheW91
dFNpemUgY29udGFpbmVyT2Zmc2V0ID0gcmVwYWludENvbnRhaW5lci0+b2Zmc2V0RnJvbUFuY2Vz
dG9yQ29udGFpbmVyKG8pOwotICAgICAgICB0cmFuc2Zvcm1TdGF0ZS5tb3ZlKC1jb250YWluZXJP
ZmZzZXQud2lkdGgoKSwgLWNvbnRhaW5lck9mZnNldC5oZWlnaHQoKSwgcHJlc2VydmUzRCA/IFRy
YW5zZm9ybVN0YXRlOjpBY2N1bXVsYXRlVHJhbnNmb3JtIDogVHJhbnNmb3JtU3RhdGU6OkZsYXR0
ZW5UcmFuc2Zvcm0pOworICAgICAgICBpZiAocHJlc2VydmUzRCkKKyAgICAgICAgICAgIHRyYW5z
Zm9ybVN0YXRlLm1vdmUoYWRqdXN0ZWRDb250YWluZXJPZmZzZXQud2lkdGgoKSwgYWRqdXN0ZWRD
b250YWluZXJPZmZzZXQuaGVpZ2h0KCksIFRyYW5zZm9ybVN0YXRlOjpBY2N1bXVsYXRlVHJhbnNm
b3JtKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgYWNjdW11bGF0ZWRPZmZzZXQuZXhwYW5k
KC1jb250YWluZXJPZmZzZXQpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgby0+bWFw
TG9jYWxUb0NvbnRhaW5lcihyZXBhaW50Q29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwgbW9kZSwg
d2FzRml4ZWQpOworICAgIG8tPm1hcExvY2FsVG9Db250YWluZXJJbnRlcm5hbChyZXBhaW50Q29u
dGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwgYWNjdW11bGF0ZWRPZmZzZXQsIG1vZGUsIHdhc0ZpeGVk
KTsKIH0KIAogY29uc3QgUmVuZGVyT2JqZWN0KiBSZW5kZXJJbmxpbmU6OnB1c2hNYXBwaW5nVG9D
b250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0b3JUb1N0b3BBdCwg
UmVuZGVyR2VvbWV0cnlNYXAmIGdlb21ldHJ5TWFwKSBjb25zdApAQCAtMTIyNywxMyArMTIzMywx
MiBAQCBjb25zdCBSZW5kZXJPYmplY3QqIFJlbmRlcklubGluZTo6cHVzaE1hCiAKICAgICBib29s
IG9mZnNldERlcGVuZHNPblBvaW50ID0gZmFsc2U7CiAgICAgTGF5b3V0U2l6ZSBjb250YWluZXJP
ZmZzZXQgPSBvZmZzZXRGcm9tQ29udGFpbmVyKGNvbnRhaW5lciwgTGF5b3V0UG9pbnQoKSwgJm9m
ZnNldERlcGVuZHNPblBvaW50KTsKLSAgICBpZiAoZ2VvbWV0cnlNYXAubWFwQ29vcmRpbmF0ZXNG
bGFncygpICYgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpCi0gICAgICAgIGNvbnRhaW5lck9mZnNl
dCA9IHJvdW5kZWRJbnRTaXplKGNvbnRhaW5lck9mZnNldCk7CiAKICAgICBib29sIHByZXNlcnZl
M0QgPSBjb250YWluZXItPnN0eWxlKCktPnByZXNlcnZlczNEKCkgfHwgc3R5bGUoKS0+cHJlc2Vy
dmVzM0QoKTsKICAgICBpZiAoc2hvdWxkVXNlVHJhbnNmb3JtRnJvbUNvbnRhaW5lcihjb250YWlu
ZXIpKSB7CiAgICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHQ7CiAgICAgICAgIGdldFRyYW5z
Zm9ybUZyb21Db250YWluZXIoY29udGFpbmVyLCBjb250YWluZXJPZmZzZXQsIHQpOworICAgICAg
ICBhZGp1c3RtZW50Rm9yU2tpcHBlZEFuY2VzdG9yID0gYWRqdXN0T2Zmc2V0Rm9yU25hcHBpbmco
Z2VvbWV0cnlNYXAubWFwQ29vcmRpbmF0ZXNGbGFncygpLCBhZGp1c3RtZW50Rm9yU2tpcHBlZEFu
Y2VzdG9yKTsKICAgICAgICAgdC50cmFuc2xhdGVSaWdodChhZGp1c3RtZW50Rm9yU2tpcHBlZEFu
Y2VzdG9yLndpZHRoKCksIGFkanVzdG1lbnRGb3JTa2lwcGVkQW5jZXN0b3IuaGVpZ2h0KCkpOyAv
LyBGSVhNRTogcmlnaHQ/CiAgICAgICAgIGdlb21ldHJ5TWFwLnB1c2godGhpcywgdCwgcHJlc2Vy
dmUzRCwgb2Zmc2V0RGVwZW5kc09uUG9pbnQpOwogICAgIH0gZWxzZSB7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5oCShyZXZpc2lvbiAxMzY5OTMpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmgJKHdvcmtpbmcgY29weSkKQEAgLTE0
MCw3ICsxNDAsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgTGF5b3V0UmVjdCByZWN0V2l0aE91
dGxpbmVGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250
YWluZXIsIExheW91dFVuaXQgb3V0bGluZVdpZHRoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0
dWFsIHZvaWQgY29tcHV0ZVJlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QqIHJlcGFpbnRDb250YWluZXIsIExheW91dFJlY3QmLCBib29sIGZpeGVkKSBjb25zdCBPVkVS
UklERTsKIAotICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRl
ckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFw
Q29vcmRpbmF0ZXNGbGFncyA9IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFu
c2Zvcm1zLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwg
dm9pZCBtYXBMb2NhbFRvQ29udGFpbmVySW50ZXJuYWwoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9i
amVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBMYXlvdXRTaXplJiBhY2N1
bXVsYXRlZE9mZnNldCwgTWFwQ29vcmRpbmF0ZXNGbGFncyA9IEFwcGx5Q29udGFpbmVyRmxpcCB8
IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJS
SURFOwogICAgIHZpcnR1YWwgY29uc3QgUmVuZGVyT2JqZWN0KiBwdXNoTWFwcGluZ1RvQ29udGFp
bmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRl
ckdlb21ldHJ5TWFwJikgY29uc3QgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIFZpc2libGVQb3Np
dGlvbiBwb3NpdGlvbkZvclBvaW50KGNvbnN0IExheW91dFBvaW50Jik7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAkocmV2aXNpb24gMTM2OTkzKQorKysg
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTIwNjIsMzIgKzIwNjIsNDggQEAgRmxvYXRQb2ludCBSZW5kZXJPYmplY3Q6OmFic29sdXRl
VG9Mb2NhbAogICAgIHJldHVybiB0cmFuc2Zvcm1TdGF0ZS5sYXN0UGxhbmFyUG9pbnQoKTsKIH0K
IAordm9pZCBSZW5kZXJPYmplY3Q6OmFwcGx5QWNjdW11bGF0ZWRPZmZzZXQoVHJhbnNmb3JtU3Rh
dGUmIHRyYW5zZm9ybVN0YXRlLCBMYXlvdXRTaXplJiBhY2N1bXVsYXRlZE9mZnNldCwgTWFwQ29v
cmRpbmF0ZXNGbGFncyBtYXBDb29yZGluYXRlc0ZsYWdzLCBib29sIHByZXNlcnZlM0QpIGNvbnN0
Cit7CisgICAgYWNjdW11bGF0ZWRPZmZzZXQgPSBhZGp1c3RPZmZzZXRGb3JTbmFwcGluZyhtYXBD
b29yZGluYXRlc0ZsYWdzLCBhY2N1bXVsYXRlZE9mZnNldCk7CisgICAgaWYgKCFhY2N1bXVsYXRl
ZE9mZnNldC5pc1plcm8oKSkgeworICAgICAgICB0cmFuc2Zvcm1TdGF0ZS5tb3ZlKGFjY3VtdWxh
dGVkT2Zmc2V0LndpZHRoKCksIGFjY3VtdWxhdGVkT2Zmc2V0LmhlaWdodCgpLCBwcmVzZXJ2ZTNE
ID8gVHJhbnNmb3JtU3RhdGU6OkFjY3VtdWxhdGVUcmFuc2Zvcm0gOiBUcmFuc2Zvcm1TdGF0ZTo6
RmxhdHRlblRyYW5zZm9ybSk7CisgICAgICAgIGFjY3VtdWxhdGVkT2Zmc2V0ID0gTGF5b3V0U2l6
ZSgpOworICAgIH0KK30KKwogdm9pZCBSZW5kZXJPYmplY3Q6Om1hcExvY2FsVG9Db250YWluZXIo
Y29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3Jt
U3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUsIGJvb2wqIHdh
c0ZpeGVkKSBjb25zdAogeworICAgIExheW91dFNpemUgYWNjdW11bGF0ZWRPZmZzZXQ7CisgICAg
bWFwTG9jYWxUb0NvbnRhaW5lckludGVybmFsKHJlcGFpbnRDb250YWluZXIsIHRyYW5zZm9ybVN0
YXRlLCBhY2N1bXVsYXRlZE9mZnNldCwgbW9kZSwgd2FzRml4ZWQpOworICAgIGFwcGx5QWNjdW11
bGF0ZWRPZmZzZXQodHJhbnNmb3JtU3RhdGUsIGFjY3VtdWxhdGVkT2Zmc2V0LCBtb2RlKTsKK30K
Kwordm9pZCBSZW5kZXJPYmplY3Q6Om1hcExvY2FsVG9Db250YWluZXJJbnRlcm5hbChjb25zdCBS
ZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYg
dHJhbnNmb3JtU3RhdGUsIExheW91dFNpemUmIGFjY3VtdWxhdGVkT2Zmc2V0LCBNYXBDb29yZGlu
YXRlc0ZsYWdzIG1vZGUsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAorewogICAgIGlmIChyZXBhaW50
Q29udGFpbmVyID09IHRoaXMpCiAgICAgICAgIHJldHVybjsKIAogICAgIFJlbmRlck9iamVjdCog
byA9IHBhcmVudCgpOwogICAgIGlmICghbykKLSAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1
cm4gdHJhbnNmb3JtU3RhdGUubW92ZShhZGp1c3RPZmZzZXRGb3JTbmFwcGluZyhtb2RlLCBhY2N1
bXVsYXRlZE9mZnNldCkpOwogCiAgICAgLy8gRklYTUU6IHRoaXMgc2hvdWxkIGNhbGwgb2Zmc2V0
RnJvbUNvbnRhaW5lciB0byBzaGFyZSBjb2RlLCBidXQgSSdtIG5vdCBzdXJlIGl0J3MgZXZlciBj
YWxsZWQuCiAgICAgTGF5b3V0UG9pbnQgY2VudGVyUG9pbnQgPSByb3VuZGVkTGF5b3V0UG9pbnQo
dHJhbnNmb3JtU3RhdGUubWFwcGVkUG9pbnQoKSk7CiAgICAgaWYgKG1vZGUgJiBBcHBseUNvbnRh
aW5lckZsaXAgJiYgby0+aXNCb3goKSkgewogICAgICAgICBpZiAoby0+c3R5bGUoKS0+aXNGbGlw
cGVkQmxvY2tzV3JpdGluZ01vZGUoKSkKLSAgICAgICAgICAgIHRyYW5zZm9ybVN0YXRlLm1vdmUo
dG9SZW5kZXJCb3gobyktPmZsaXBGb3JXcml0aW5nTW9kZUluY2x1ZGluZ0NvbHVtbnMocm91bmRl
ZExheW91dFBvaW50KHRyYW5zZm9ybVN0YXRlLm1hcHBlZFBvaW50KCkpKSAtIGNlbnRlclBvaW50
KTsKKyAgICAgICAgICAgIGFjY3VtdWxhdGVkT2Zmc2V0LmV4cGFuZCh0b1JlbmRlckJveChvKS0+
ZmxpcEZvcldyaXRpbmdNb2RlSW5jbHVkaW5nQ29sdW1ucyhyb3VuZGVkTGF5b3V0UG9pbnQodHJh
bnNmb3JtU3RhdGUubWFwcGVkUG9pbnQoKSkpIC0gY2VudGVyUG9pbnQpOwogICAgICAgICBtb2Rl
ICY9IH5BcHBseUNvbnRhaW5lckZsaXA7CiAgICAgfQogCiAgICAgTGF5b3V0U2l6ZSBjb2x1bW5P
ZmZzZXQ7Ci0gICAgby0+YWRqdXN0Rm9yQ29sdW1ucyhjb2x1bW5PZmZzZXQsIHJvdW5kZWRMYXlv
dXRQb2ludCh0cmFuc2Zvcm1TdGF0ZS5tYXBwZWRQb2ludCgpKSk7CisgICAgby0+YWRqdXN0Rm9y
Q29sdW1ucyhjb2x1bW5PZmZzZXQsIHJvdW5kZWRMYXlvdXRQb2ludCh0cmFuc2Zvcm1TdGF0ZS5t
YXBwZWRQb2ludCgpKSArIGFjY3VtdWxhdGVkT2Zmc2V0KTsKICAgICBpZiAoIWNvbHVtbk9mZnNl
dC5pc1plcm8oKSkKLSAgICAgICAgdHJhbnNmb3JtU3RhdGUubW92ZShjb2x1bW5PZmZzZXQpOwor
ICAgICAgICBhY2N1bXVsYXRlZE9mZnNldC5leHBhbmQoY29sdW1uT2Zmc2V0KTsKIAogICAgIGlm
IChvLT5oYXNPdmVyZmxvd0NsaXAoKSkKLSAgICAgICAgdHJhbnNmb3JtU3RhdGUubW92ZSgtdG9S
ZW5kZXJCb3gobyktPnNjcm9sbGVkQ29udGVudE9mZnNldCgpKTsKKyAgICAgICAgYWNjdW11bGF0
ZWRPZmZzZXQuZXhwYW5kKC10b1JlbmRlckJveChvKS0+c2Nyb2xsZWRDb250ZW50T2Zmc2V0KCkp
OwogCi0gICAgby0+bWFwTG9jYWxUb0NvbnRhaW5lcihyZXBhaW50Q29udGFpbmVyLCB0cmFuc2Zv
cm1TdGF0ZSwgbW9kZSwgd2FzRml4ZWQpOworICAgIG8tPm1hcExvY2FsVG9Db250YWluZXJJbnRl
cm5hbChyZXBhaW50Q29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwgYWNjdW11bGF0ZWRPZmZzZXQs
IG1vZGUsIHdhc0ZpeGVkKTsKIH0KIAogY29uc3QgUmVuZGVyT2JqZWN0KiBSZW5kZXJPYmplY3Q6
OnB1c2hNYXBwaW5nVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5j
ZXN0b3JUb1N0b3BBdCwgUmVuZGVyR2VvbWV0cnlNYXAmIGdlb21ldHJ5TWFwKSBjb25zdApJbmRl
eDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAkocmV2aXNpb24gMTM2OTkz
KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCSh3b3JraW5nIGNv
cHkpCkBAIC05NDIsOSArOTQyLDExIEBAIHB1YmxpYzoKIAogICAgIC8vIE1hcCBwb2ludHMgYW5k
IHF1YWRzIHRocm91Z2ggZWxlbWVudHMsIHBvdGVudGlhbGx5IHZpYSAzZCB0cmFuc2Zvcm1zLiBZ
b3Ugc2hvdWxkIG5ldmVyIG5lZWQgdG8gY2FsbCB0aGVzZSBkaXJlY3RseTsgdXNlCiAgICAgLy8g
bG9jYWxUb0Fic29sdXRlL2Fic29sdXRlVG9Mb2NhbCBtZXRob2RzIGluc3RlYWQuCi0gICAgdmly
dHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVj
dCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBDb29yZGluYXRlc0ZsYWdz
ID0gQXBwbHlDb250YWluZXJGbGlwLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0OworICAgIHZv
aWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBh
aW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBBcHBs
eUNvbnRhaW5lckZsaXAsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3Q7CiAgICAgdmlydHVhbCB2
b2lkIG1hcEFic29sdXRlVG9Mb2NhbFBvaW50KE1hcENvb3JkaW5hdGVzRmxhZ3MsIFRyYW5zZm9y
bVN0YXRlJikgY29uc3Q7CiAKKyAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcklu
dGVybmFsKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRy
YW5zZm9ybVN0YXRlJiwgTGF5b3V0U2l6ZSYgYWNjdW11bGF0ZWRPZmZzZXQsIE1hcENvb3JkaW5h
dGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5lckZsaXAsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3Q7
CisKICAgICAvLyBQdXNoZXMgc3RhdGUgb250byBSZW5kZXJHZW9tZXRyeU1hcCBhYm91dCBob3cg
dG8gbWFwIGNvb3JkaW5hdGVzIGZyb20gdGhpcyByZW5kZXJlciB0byBpdHMgY29udGFpbmVyLCBv
ciBhbmNlc3RvclRvU3RvcEF0ICh3aGljaGV2ZXIgaXMgZW5jb3VudGVyZWQgZmlyc3QpLgogICAg
IC8vIFJldHVybnMgdGhlIHJlbmRlcmVyIHdoaWNoIHdhcyBtYXBwZWQgdG8gKGNvbnRhaW5lciBv
ciBhbmNlc3RvclRvU3RvcEF0KS4KICAgICB2aXJ0dWFsIGNvbnN0IFJlbmRlck9iamVjdCogcHVz
aE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBhbmNlc3Rv
clRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1hcCYpIGNvbnN0OwpAQCAtOTY4LDYgKzk3MCw4IEBA
IHB1YmxpYzoKICAgICBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0gc2hvdWxkUmVzcGVjdElt
YWdlT3JpZW50YXRpb24oKSBjb25zdDsKIAogcHJvdGVjdGVkOgorICAgIHZvaWQgYXBwbHlBY2N1
bXVsYXRlZE9mZnNldChUcmFuc2Zvcm1TdGF0ZSYsIExheW91dFNpemUmLCBNYXBDb29yZGluYXRl
c0ZsYWdzLCBib29sIHByZXNlcnZlM0QgPSBmYWxzZSkgY29uc3Q7CisKICAgICBpbmxpbmUgYm9v
bCBsYXllckNyZWF0aW9uQWxsb3dlZEZvclN1YnRyZWUoKSBjb25zdDsKIAogICAgIC8vIE92ZXJy
aWRlcyBzaG91bGQgY2FsbCB0aGUgc3VwZXJjbGFzcyBhdCB0aGUgZW5kCkBAIC0xMjYwLDYgKzEy
NjQsMTEgQEAgaW5saW5lIHZvaWQgUmVuZGVyT2JqZWN0OjpzZXRTZWxlY3Rpb25TdAogICAgIHNl
dFNlbGVjdGlvblN0YXRlKHN0YXRlKTsKIH0KIAoraW5saW5lIExheW91dFNpemUgYWRqdXN0T2Zm
c2V0Rm9yU25hcHBpbmcoTWFwQ29vcmRpbmF0ZXNGbGFncyBmbGFncywgY29uc3QgTGF5b3V0U2l6
ZSYgb2Zmc2V0KQoreworICAgIHJldHVybiAoZmxhZ3MgJiBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jt
cykgPyByb3VuZGVkSW50U2l6ZShvZmZzZXQpIDogb2Zmc2V0OworfQorCiBpbmxpbmUgdm9pZCBt
YWtlTWF0cml4UmVuZGVyYWJsZShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgbWF0cml4LCBib29sIGhh
czNEUmVuZGVyaW5nKQogewogI2lmICFFTkFCTEUoM0RfUkVOREVSSU5HKQpJbmRleDogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAkocmV2aXNpb24gMTM2OTkzKQorKysgU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
MTIsNyArMjEyLDcgQEAgdm9pZCBSZW5kZXJWaWV3OjpsYXlvdXQoKQogICAgIHNldE5lZWRzTGF5
b3V0KGZhbHNlKTsKIH0KIAotdm9pZCBSZW5kZXJWaWV3OjptYXBMb2NhbFRvQ29udGFpbmVyKGNv
bnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0
YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBib29sKiB3YXNG
aXhlZCkgY29uc3QKK3ZvaWQgUmVuZGVyVmlldzo6bWFwTG9jYWxUb0NvbnRhaW5lckludGVybmFs
KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9y
bVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTGF5b3V0U2l6ZSYgYWNjdW11bGF0ZWRPZmZzZXQsIE1h
cENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQpIGNvbnN0CiB7CiAgICAgLy8g
SWYgYSBjb250YWluZXIgd2FzIHNwZWNpZmllZCwgYW5kIHdhcyBub3QgMCBvciB0aGUgUmVuZGVy
VmlldywKICAgICAvLyB0aGVuIHdlIHNob3VsZCBoYXZlIGZvdW5kIGl0IGJ5IG5vdy4KQEAgLTIy
MCwxMyArMjIwLDE2IEBAIHZvaWQgUmVuZGVyVmlldzo6bWFwTG9jYWxUb0NvbnRhaW5lcihjb24K
ICAgICBBU1NFUlRfVU5VU0VEKHdhc0ZpeGVkLCAhd2FzRml4ZWQgfHwgKndhc0ZpeGVkID09ICht
b2RlICYgSXNGaXhlZCkpOwogCiAgICAgaWYgKCFyZXBhaW50Q29udGFpbmVyICYmIG1vZGUgJiBV
c2VUcmFuc2Zvcm1zICYmIHNob3VsZFVzZVRyYW5zZm9ybUZyb21Db250YWluZXIoMCkpIHsKKyAg
ICAgICAgYXBwbHlBY2N1bXVsYXRlZE9mZnNldCh0cmFuc2Zvcm1TdGF0ZSwgYWNjdW11bGF0ZWRP
ZmZzZXQsIG1vZGUpOwogICAgICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCB0OwogICAgICAgICBn
ZXRUcmFuc2Zvcm1Gcm9tQ29udGFpbmVyKDAsIExheW91dFNpemUoKSwgdCk7CiAgICAgICAgIHRy
YW5zZm9ybVN0YXRlLmFwcGx5VHJhbnNmb3JtKHQpOwogICAgIH0KICAgICAKLSAgICBpZiAobW9k
ZSAmIElzRml4ZWQgJiYgbV9mcmFtZVZpZXcpCi0gICAgICAgIHRyYW5zZm9ybVN0YXRlLm1vdmUo
bV9mcmFtZVZpZXctPnNjcm9sbE9mZnNldEZvckZpeGVkUG9zaXRpb24oKSk7CisgICAgaWYgKG1v
ZGUgJiBJc0ZpeGVkICYmIG1fZnJhbWVWaWV3KSB7CisgICAgICAgIHRyYW5zZm9ybVN0YXRlLm1v
dmUoYWRqdXN0T2Zmc2V0Rm9yU25hcHBpbmcobW9kZSwgbV9mcmFtZVZpZXctPnNjcm9sbE9mZnNl
dEZvckZpeGVkUG9zaXRpb24oKSArIGFjY3VtdWxhdGVkT2Zmc2V0KSk7CisgICAgICAgIGFjY3Vt
dWxhdGVkT2Zmc2V0ID0gTGF5b3V0U2l6ZSgpOworICAgIH0KIH0KIAogY29uc3QgUmVuZGVyT2Jq
ZWN0KiBSZW5kZXJWaWV3OjpwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVy
TW9kZWxPYmplY3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJiBnZW9tZXRy
eU1hcCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaAkocmV2
aXNpb24gMTM2OTkzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaAko
d29ya2luZyBjb3B5KQpAQCAtMjI5LDcgKzIyOSw3IEBAIHB1YmxpYzoKICAgICBib29sIGhhc1Jl
bmRlckNvdW50ZXJzKCkgeyByZXR1cm4gbV9yZW5kZXJDb3VudGVyQ291bnQ7IH0KIAogcHJvdGVj
dGVkOgotICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxh
eWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29v
cmRpbmF0ZXNGbGFncyA9IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zv
cm1zLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9p
ZCBtYXBMb2NhbFRvQ29udGFpbmVySW50ZXJuYWwoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVj
dCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBMYXlvdXRTaXplJiBhY2N1bXVs
YXRlZE9mZnNldCwgTWFwQ29vcmRpbmF0ZXNGbGFncyA9IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNu
YXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURF
OwogICAgIHZpcnR1YWwgY29uc3QgUmVuZGVyT2JqZWN0KiBwdXNoTWFwcGluZ1RvQ29udGFpbmVy
KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdl
b21ldHJ5TWFwJikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIG1hcEFic29sdXRl
VG9Mb2NhbFBvaW50KE1hcENvb3JkaW5hdGVzRmxhZ3MsIFRyYW5zZm9ybVN0YXRlJikgY29uc3Q7
CiAgICAgdmlydHVhbCBib29sIHJlcXVpcmVzQ29sdW1ucyhpbnQgZGVzaXJlZENvbHVtbkNvdW50
KSBjb25zdCBPVkVSUklERTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHRm9yZWlnbk9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWduT2JqZWN0LmNwcAkocmV2aXNpb24gMTM2OTkzKQor
KysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWduT2JqZWN0LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTkzLDkgKzE5Myw5IEBAIGJvb2wgUmVuZGVyU1ZHRm9yZWln
bk9iamVjdDo6bm9kZUF0UG9pbnQKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgUmVuZGVy
U1ZHRm9yZWlnbk9iamVjdDo6bWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1v
ZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3Rh
dGUsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQpIGNvbnN0Cit2b2lk
IFJlbmRlclNWR0ZvcmVpZ25PYmplY3Q6Om1hcExvY2FsVG9Db250YWluZXJJbnRlcm5hbChjb25z
dCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0
ZSYgdHJhbnNmb3JtU3RhdGUsIExheW91dFNpemUmIGFjY3VtdWxhdGVkT2Zmc2V0LCBNYXBDb29y
ZGluYXRlc0ZsYWdzIG1vZGUsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAogewotICAgIFNWR1JlbmRl
clN1cHBvcnQ6Om1hcExvY2FsVG9Db250YWluZXIodGhpcywgcmVwYWludENvbnRhaW5lciwgdHJh
bnNmb3JtU3RhdGUsIG1vZGUgJiBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jtcywgd2FzRml4ZWQpOwor
ICAgIFNWR1JlbmRlclN1cHBvcnQ6Om1hcExvY2FsVG9Db250YWluZXIodGhpcywgcmVwYWludENv
bnRhaW5lciwgdHJhbnNmb3JtU3RhdGUsIGFjY3VtdWxhdGVkT2Zmc2V0LCBtb2RlLCB3YXNGaXhl
ZCk7CiB9CiAKIGNvbnN0IFJlbmRlck9iamVjdCogUmVuZGVyU1ZHRm9yZWlnbk9iamVjdDo6cHVz
aE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBhbmNlc3Rv
clRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1hcCYgZ2VvbWV0cnlNYXApIGNvbnN0CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ZvcmVpZ25PYmplY3QuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ZvcmVpZ25P
YmplY3QuaAkocmV2aXNpb24gMTM2OTkzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdGb3JlaWduT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTU0LDcgKzU0LDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBub2RlQXRQb2ludChjb25zdCBIaXRUZXN0UmVx
dWVzdCYsIEhpdFRlc3RSZXN1bHQmLCBjb25zdCBIaXRUZXN0TG9jYXRpb24mIGxvY2F0aW9uSW5D
b250YWluZXIsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCwgSGl0VGVzdEFj
dGlvbikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGlzU1ZHRm9yZWlnbk9iamVjdCgpIGNv
bnN0IHsgcmV0dXJuIHRydWU7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFp
bmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5z
Zm9ybVN0YXRlJiwgTWFwQ29vcmRpbmF0ZXNGbGFncyA9IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNu
YXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURF
OworICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVySW50ZXJuYWwoY29uc3QgUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBM
YXlvdXRTaXplJiBhY2N1bXVsYXRlZE9mZnNldCwgTWFwQ29vcmRpbmF0ZXNGbGFncyA9IEFwcGx5
Q29udGFpbmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCA9
IDApIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgUmVuZGVyT2JqZWN0KiBwdXNo
TWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGFuY2VzdG9y
VG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCB2b2lkIHNldE5lZWRzVHJhbnNmb3JtVXBkYXRlKCkgeyBtX25lZWRzVHJhbnNmb3JtVXBkYXRl
ID0gdHJ1ZTsgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R0lubGluZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdJbmxpbmUuY3BwCShyZXZpc2lvbiAxMzY5OTMpCisrKyBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc5LDkg
Kzc5LDkgQEAgdm9pZCBSZW5kZXJTVkdJbmxpbmU6OmNvbXB1dGVGbG9hdFJlY3RGbwogICAgIFNW
R1JlbmRlclN1cHBvcnQ6OmNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50KHRoaXMsIHJlcGFpbnRD
b250YWluZXIsIHJlcGFpbnRSZWN0LCBmaXhlZCk7CiB9CiAKLXZvaWQgUmVuZGVyU1ZHSW5saW5l
OjptYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFp
bnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFwQ29vcmRpbmF0
ZXNGbGFncyBtb2RlLCBib29sKiB3YXNGaXhlZCkgY29uc3QKK3ZvaWQgUmVuZGVyU1ZHSW5saW5l
OjptYXBMb2NhbFRvQ29udGFpbmVySW50ZXJuYWwoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVj
dCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBMYXlv
dXRTaXplJiBhY2N1bXVsYXRlZE9mZnNldCwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBib29s
KiB3YXNGaXhlZCkgY29uc3QKIHsKLSAgICBTVkdSZW5kZXJTdXBwb3J0OjptYXBMb2NhbFRvQ29u
dGFpbmVyKHRoaXMsIHJlcGFpbnRDb250YWluZXIsIHRyYW5zZm9ybVN0YXRlLCBtb2RlICYgU25h
cE9mZnNldEZvclRyYW5zZm9ybXMsIHdhc0ZpeGVkKTsKKyAgICBTVkdSZW5kZXJTdXBwb3J0Ojpt
YXBMb2NhbFRvQ29udGFpbmVyKHRoaXMsIHJlcGFpbnRDb250YWluZXIsIHRyYW5zZm9ybVN0YXRl
LCBhY2N1bXVsYXRlZE9mZnNldCwgbW9kZSwgd2FzRml4ZWQpOwogfQogCiBjb25zdCBSZW5kZXJP
YmplY3QqIFJlbmRlclNWR0lubGluZTo6cHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5k
ZXJMYXllck1vZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1hcCYg
Z2VvbWV0cnlNYXApIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR0lubGluZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHSW5saW5lLmgJKHJldmlzaW9uIDEzNjk5MykKKysrIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDcg
KzQ3LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBMYXlvdXRSZWN0IGNsaXBwZWRPdmVyZmxv
d1JlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250
YWluZXIpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlRmxvYXRSZWN0
Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVy
LCBGbG9hdFJlY3QmLCBib29sIGZpeGVkID0gZmFsc2UpIGNvbnN0IE9WRVJSSURFOwotICAgIHZp
cnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29vcmRpbmF0ZXNGbGFn
cyA9IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3
YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRv
Q29udGFpbmVySW50ZXJuYWwoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENv
bnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBMYXlvdXRTaXplJiBhY2N1bXVsYXRlZE9mZnNldCwg
TWFwQ29vcmRpbmF0ZXNGbGFncyA9IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JU
cmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1
YWwgY29uc3QgUmVuZGVyT2JqZWN0KiBwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRl
ckxheWVyTW9kZWxPYmplY3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJikg
Y29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGFic29sdXRlUXVhZHMoVmVjdG9yPEZs
b2F0UXVhZD4mLCBib29sKiB3YXNGaXhlZCkgY29uc3Q7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwCShyZXZp
c2lvbiAxMzY5OTMpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01v
ZGVsT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTcsOSArNTcsOSBAQCB2b2lkIFJlbmRl
clNWR01vZGVsT2JqZWN0Ojpjb21wdXRlRmxvYXRSCiAgICAgU1ZHUmVuZGVyU3VwcG9ydDo6Y29t
cHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQodGhpcywgcmVwYWludENvbnRhaW5lciwgcmVwYWludFJl
Y3QsIGZpeGVkKTsKIH0KIAotdm9pZCBSZW5kZXJTVkdNb2RlbE9iamVjdDo6bWFwTG9jYWxUb0Nv
bnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBU
cmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwg
Ym9vbCogd2FzRml4ZWQpIGNvbnN0Cit2b2lkIFJlbmRlclNWR01vZGVsT2JqZWN0OjptYXBMb2Nh
bFRvQ29udGFpbmVySW50ZXJuYWwoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWlu
dENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBMYXlvdXRTaXplJiBh
Y2N1bXVsYXRlZE9mZnNldCwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBib29sKiB3YXNGaXhl
ZCkgY29uc3QKIHsKLSAgICBTVkdSZW5kZXJTdXBwb3J0OjptYXBMb2NhbFRvQ29udGFpbmVyKHRo
aXMsIHJlcGFpbnRDb250YWluZXIsIHRyYW5zZm9ybVN0YXRlLCBtb2RlICYgU25hcE9mZnNldEZv
clRyYW5zZm9ybXMsIHdhc0ZpeGVkKTsKKyAgICBTVkdSZW5kZXJTdXBwb3J0OjptYXBMb2NhbFRv
Q29udGFpbmVyKHRoaXMsIHJlcGFpbnRDb250YWluZXIsIHRyYW5zZm9ybVN0YXRlLCBhY2N1bXVs
YXRlZE9mZnNldCwgbW9kZSwgd2FzRml4ZWQpOwogfQogCiBjb25zdCBSZW5kZXJPYmplY3QqIFJl
bmRlclNWR01vZGVsT2JqZWN0OjpwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxh
eWVyTW9kZWxPYmplY3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJiBnZW9t
ZXRyeU1hcCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHTW9kZWxPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmgJKHJldmlzaW9uIDEzNjk5MykKKysrIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuaAkod29ya2luZyBjb3B5
KQpAQCAtNTgsNyArNTgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGFic29sdXRlUmVj
dHMoVmVjdG9yPEludFJlY3Q+JiwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0
KSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgYWJzb2x1dGVRdWFkcyhWZWN0b3I8RmxvYXRRdWFk
PiYsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdDsKIAotICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRv
Q29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIs
IFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29vcmRpbmF0ZXNGbGFncyA9IEFwcGx5Q29udGFpbmVyRmxp
cCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVySW50ZXJuYWwoY29u
c3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3Rh
dGUmLCBMYXlvdXRTaXplJiBhY2N1bXVsYXRlZE9mZnNldCwgTWFwQ29vcmRpbmF0ZXNGbGFncyA9
IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNG
aXhlZCA9IDApIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgUmVuZGVyT2JqZWN0
KiBwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGFu
Y2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJikgY29uc3QgT1ZFUlJJREU7CiAgICAg
dmlydHVhbCB2b2lkIHN0eWxlV2lsbENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRl
clN0eWxlKiBuZXdTdHlsZSk7CiAgICAgdmlydHVhbCB2b2lkIHN0eWxlRGlkQ2hhbmdlKFN0eWxl
RGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcAkocmV2aXNpb24gMTM2
OTkzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDAxLDEyICs0MDEsMTIgQEAgdm9pZCBSZW5kZXJTVkdSb290Ojpj
b21wdXRlRmxvYXRSZWN0Rm9yUgogLy8gVGhpcyBtZXRob2QgZXhwZWN0cyBsb2NhbCBDU1MgYm94
IGNvb3JkaW5hdGVzLgogLy8gQ2FsbGVycyB3aXRoIGxvY2FsIFNWRyB2aWV3cG9ydCBjb29yZGlu
YXRlcyBzaG91bGQgZmlyc3QgYXBwbHkgdGhlIGxvY2FsVG9Cb3JkZXJCb3hUcmFuc2Zvcm0KIC8v
IHRvIGNvbnZlcnQgZnJvbSBTVkcgdmlld3BvcnQgY29vcmRpbmF0ZXMgdG8gbG9jYWwgQ1NTIGJv
eCBjb29yZGluYXRlcy4KLXZvaWQgUmVuZGVyU1ZHUm9vdDo6bWFwTG9jYWxUb0NvbnRhaW5lcihj
b25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1T
dGF0ZSYgdHJhbnNmb3JtU3RhdGUsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwgYm9vbCogd2Fz
Rml4ZWQpIGNvbnN0Cit2b2lkIFJlbmRlclNWR1Jvb3Q6Om1hcExvY2FsVG9Db250YWluZXJJbnRl
cm5hbChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFu
c2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIExheW91dFNpemUmIGFjY3VtdWxhdGVkT2Zmc2V0
LCBNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAogewogICAg
IEFTU0VSVChtb2RlICYgfklzRml4ZWQpOyAvLyBXZSBzaG91bGQgaGF2ZSBubyBmaXhlZCBjb250
ZW50IGluIHRoZSBTVkcgcmVuZGVyaW5nIHRyZWUuCiAgICAgQVNTRVJUKG1vZGUgJiBVc2VUcmFu
c2Zvcm1zKTsgLy8gbWFwcGluZyBhIHBvaW50IHRocm91Z2ggU1ZHIHcvbyByZXNwZWN0aW5nIHRy
YXNuZm9ybXMgaXMgdXNlbGVzcy4KIAotICAgIFJlbmRlclJlcGxhY2VkOjptYXBMb2NhbFRvQ29u
dGFpbmVyKHJlcGFpbnRDb250YWluZXIsIHRyYW5zZm9ybVN0YXRlLCBtb2RlIHwgQXBwbHlDb250
YWluZXJGbGlwLCB3YXNGaXhlZCk7CisgICAgUmVuZGVyUmVwbGFjZWQ6Om1hcExvY2FsVG9Db250
YWluZXJJbnRlcm5hbChyZXBhaW50Q29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwgYWNjdW11bGF0
ZWRPZmZzZXQsIG1vZGUgfCBBcHBseUNvbnRhaW5lckZsaXAsIHdhc0ZpeGVkKTsKIH0KIAogY29u
c3QgUmVuZGVyT2JqZWN0KiBSZW5kZXJTVkdSb290OjpwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNv
bnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21l
dHJ5TWFwJiBnZW9tZXRyeU1hcCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHUm9vdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5oCShyZXZpc2lvbiAxMzY5OTMpCisrKyBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuaAkod29ya2luZyBjb3B5KQpAQCAtMTAz
LDcgKzEwMyw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBMYXlvdXRSZWN0IGNsaXBwZWRPdmVy
Zmxvd1JlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRD
b250YWluZXIpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlRmxvYXRS
ZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFp
bmVyLCBGbG9hdFJlY3QmIHJlcGFpbnRSZWN0LCBib29sIGZpeGVkKSBjb25zdCBPVkVSUklERTsK
IAotICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVy
TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29vcmRp
bmF0ZXNGbGFncyA9IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1z
LCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBt
YXBMb2NhbFRvQ29udGFpbmVySW50ZXJuYWwoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCog
cmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBMYXlvdXRTaXplJiBhY2N1bXVsYXRl
ZE9mZnNldCwgTWFwQ29vcmRpbmF0ZXNGbGFncyA9IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNuYXBP
ZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURFOwog
ICAgIHZpcnR1YWwgY29uc3QgUmVuZGVyT2JqZWN0KiBwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNv
bnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21l
dHJ5TWFwJikgY29uc3QgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIGJvb2wgY2FuQmVTZWxlY3Rp
b25MZWFmKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmNwcAkocmV2aXNpb24gMTM2OTkzKQorKysg
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTExLDkgKzExMSw5IEBAIHZvaWQgUmVuZGVyU1ZHVGV4dDo6Y29tcHV0ZUZsb2F0
UmVjdEZvclIKICAgICBTVkdSZW5kZXJTdXBwb3J0Ojpjb21wdXRlRmxvYXRSZWN0Rm9yUmVwYWlu
dCh0aGlzLCByZXBhaW50Q29udGFpbmVyLCByZXBhaW50UmVjdCwgZml4ZWQpOwogfQogCi12b2lk
IFJlbmRlclNWR1RleHQ6Om1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRl
LCBNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAordm9pZCBS
ZW5kZXJTVkdUZXh0OjptYXBMb2NhbFRvQ29udGFpbmVySW50ZXJuYWwoY29uc3QgUmVuZGVyTGF5
ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9y
bVN0YXRlLCBMYXlvdXRTaXplJiBhY2N1bXVsYXRlZE9mZnNldCwgTWFwQ29vcmRpbmF0ZXNGbGFn
cyBtb2RlLCBib29sKiB3YXNGaXhlZCkgY29uc3QKIHsKLSAgICBTVkdSZW5kZXJTdXBwb3J0Ojpt
YXBMb2NhbFRvQ29udGFpbmVyKHRoaXMsIHJlcGFpbnRDb250YWluZXIsIHRyYW5zZm9ybVN0YXRl
LCBtb2RlICYgU25hcE9mZnNldEZvclRyYW5zZm9ybXMsIHdhc0ZpeGVkKTsKKyAgICBTVkdSZW5k
ZXJTdXBwb3J0OjptYXBMb2NhbFRvQ29udGFpbmVyKHRoaXMsIHJlcGFpbnRDb250YWluZXIsIHRy
YW5zZm9ybVN0YXRlLCBhY2N1bXVsYXRlZE9mZnNldCwgbW9kZSwgd2FzRml4ZWQpOwogfQogCiBj
b25zdCBSZW5kZXJPYmplY3QqIFJlbmRlclNWR1RleHQ6OnB1c2hNYXBwaW5nVG9Db250YWluZXIo
Y29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0b3JUb1N0b3BBdCwgUmVuZGVyR2Vv
bWV0cnlNYXAmIGdlb21ldHJ5TWFwKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmgJKHJldmlzaW9uIDEzNjk5MykKKysrIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC03
NSw3ICs3NSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVSZWN0Rm9yUmVw
YWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBMYXlv
dXRSZWN0JiwgYm9vbCBmaXhlZCA9IGZhbHNlKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFs
IHZvaWQgY29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9i
amVjdCogcmVwYWludENvbnRhaW5lciwgRmxvYXRSZWN0JiwgYm9vbCBmaXhlZCA9IGZhbHNlKSBj
b25zdCBPVkVSUklERTsKIAotICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKGNv
bnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0
YXRlJiwgTWFwQ29vcmRpbmF0ZXNGbGFncyA9IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNuYXBPZmZz
ZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURFOworICAg
IHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVySW50ZXJuYWwoY29uc3QgUmVuZGVyTGF5
ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBMYXlvdXRT
aXplJiBhY2N1bXVsYXRlZE9mZnNldCwgTWFwQ29vcmRpbmF0ZXNGbGFncyA9IEFwcGx5Q29udGFp
bmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCA9IDApIGNv
bnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgUmVuZGVyT2JqZWN0KiBwdXNoTWFwcGlu
Z1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGFuY2VzdG9yVG9TdG9w
QXQsIFJlbmRlckdlb21ldHJ5TWFwJikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lk
IGFkZENoaWxkKFJlbmRlck9iamVjdCogY2hpbGQsIFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQg
PSAwKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlQ2hpbGQoUmVuZGVyT2JqZWN0KikgT1ZFUlJJ
REU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVy
U3VwcG9ydC5jcHAJKHJldmlzaW9uIDEzNjk5MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg0LDcgKzg0LDcg
QEAgdm9pZCBTVkdSZW5kZXJTdXBwb3J0Ojpjb21wdXRlRmxvYXRSZWN0RgogICAgIG9iamVjdC0+
cGFyZW50KCktPmNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50KHJlcGFpbnRDb250YWluZXIsIHJl
cGFpbnRSZWN0LCBmaXhlZCk7CiB9CiAKLXZvaWQgU1ZHUmVuZGVyU3VwcG9ydDo6bWFwTG9jYWxU
b0NvbnRhaW5lcihjb25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUmVuZGVyTGF5ZXJN
b2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0
YXRlLCBib29sIHNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCkKK3ZvaWQg
U1ZHUmVuZGVyU3VwcG9ydDo6bWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJPYmplY3Qq
IG9iamVjdCwgY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwg
VHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBMYXlvdXRTaXplJiBhY2N1bXVsYXRlZE9m
ZnNldCwgYm9vbCBzbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCogd2FzRml4ZWQpCiB7CiAg
ICAgdHJhbnNmb3JtU3RhdGUuYXBwbHlUcmFuc2Zvcm0ob2JqZWN0LT5sb2NhbFRvUGFyZW50VHJh
bnNmb3JtKCkpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRl
clN1cHBvcnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NW
R1JlbmRlclN1cHBvcnQuaAkocmV2aXNpb24gMTM2OTkzKQorKysgU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmgJKHdvcmtpbmcgY29weSkKQEAgLTY4LDcgKzY4
LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBGbG9hdFJlY3QgcmVwYWludFJlY3RGb3JSZW5kZXJl
ckluTG9jYWxDb29yZGluYXRlc0V4Y2x1ZGluZ1NWR1NoYWRvdyhjb25zdCBSZW5kZXJPYmplY3Qq
KTsKICAgICBzdGF0aWMgTGF5b3V0UmVjdCBjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChj
b25zdCBSZW5kZXJPYmplY3QqLCBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50
Q29udGFpbmVyKTsKICAgICBzdGF0aWMgdm9pZCBjb21wdXRlRmxvYXRSZWN0Rm9yUmVwYWludChj
b25zdCBSZW5kZXJPYmplY3QqLCBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50
Q29udGFpbmVyLCBGbG9hdFJlY3QmLCBib29sIGZpeGVkKTsKLSAgICBzdGF0aWMgdm9pZCBtYXBM
b2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlck9iamVjdCosIGNvbnN0IFJlbmRlckxheWVyTW9k
ZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgYm9vbCBzbmFwT2Zm
c2V0Rm9yVHJhbnNmb3JtcyA9IHRydWUsIGJvb2wqIHdhc0ZpeGVkID0gMCk7CisgICAgc3RhdGlj
IHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJPYmplY3QqLCBjb25zdCBSZW5k
ZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIExh
eW91dFNpemUmIGFjY3VtdWxhdGVkT2Zmc2V0LCBib29sIHNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1z
ID0gdHJ1ZSwgYm9vbCogd2FzRml4ZWQgPSAwKTsKICAgICBzdGF0aWMgY29uc3QgUmVuZGVyT2Jq
ZWN0KiBwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlck9iamVjdCosIGNvbnN0IFJl
bmRlckxheWVyTW9kZWxPYmplY3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFw
Jik7CiAgICAgc3RhdGljIGJvb2wgY2hlY2tGb3JTVkdSZXBhaW50RHVyaW5nTGF5b3V0KFJlbmRl
ck9iamVjdCopOwogCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMzY5OTMpCisrKyBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMSBAQAorMjAxMi0xMi0wNCAgTGV2
aSBXZWludHJhdWIgIDxsZXZpd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQWNjdW11bGF0ZSB1
c2luZyBhIExheW91dFNpemUgaW4gbWFwTG9jYWxUb0NvbnRhaW5lciB3aGVuIHBvc3NpYmxlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE3NzkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRpbmcgYWRk
aXRpb25hbCBjb3ZlcmFnZSB0byBleGlzdGluZyB0ZXN0IGZvciB0aGlzIGJlaGF2aW9yIHRvIGNh
dGNoIHRoaXMgYnVnLCBhbmQgYWRkaW5nCisgICAgICAgIGEgdGVzdCBjb3ZlcmluZyBzYW1lIHdp
dGggdHJhbnNmb3Jtcy4KKworICAgICAgICAqIGZhc3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1pZnJh
bWUtY29weS1vbi1zY3JvbGwuaHRtbDoKKyAgICAgICAgKiBmYXN0L3N1Yi1waXhlbC90cmFuc2Zv
cm1lZC1pZnJhbWUtY29weS1vbi1zY3JvbGwuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZv
cm0vY2hyb21pdW0tbGludXgvZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWlmcmFtZS1jb3B5LW9u
LXNjcm9sbC1leHBlY3RlZC5wbmc6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgv
ZmFzdC9zdWItcGl4ZWwvdHJhbnNmb3JtZWQtaWZyYW1lLWNvcHktb24tc2Nyb2xsLWV4cGVjdGVk
LnBuZzogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvZmFzdC9zdWIt
cGl4ZWwvdHJhbnNmb3JtZWQtaWZyYW1lLWNvcHktb24tc2Nyb2xsLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL2Zhc3Qvc3ViLXBpeGVsL3N1Yi1w
aXhlbC1pZnJhbWUtY29weS1vbi1zY3JvbGwtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRm
b3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMTItMTItMDcgIERpbWEgR29yYmlr
ICA8ZGdvcmJpa0BhcHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IGdlbmVyYWwgOjpjdWUg
cHNldWRvIGVsZW1lbnQgZm9yIHRoZSA8dmlkZW8+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3N1
Yi1waXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWlmcmFtZS1jb3B5LW9uLXNj
cm9sbC5odG1sCShyZXZpc2lvbiAxMzY5OTMpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3N1Yi1waXhl
bC9zdWItcGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTIsMTAgKzIsMTIgQEAKIDxodG1sPgogPGhlYWQ+CiA8c3R5bGUgdHlwZT0idGV4dC9jc3MiIG1l
ZGlhPSJzY3JlZW4iPgorLnN1YnBpeGVsUHVzaGVyIHsKKyAgICBwb3NpdGlvbjogcmVsYXRpdmU7
CisgICAgdG9wOiAwLjRweDsKK30KIC5jb250YWluZXIgewotICAgIHBvc2l0aW9uOiBhYnNvbHV0
ZTsKLSAgICBwYWRkaW5nOiAxMC4zcHg7Ci0gICAgei1pbmRleDogMTsKKyAgICBkaXNwbGF5OiBp
bmxpbmUtYmxvY2s7CiB9CiA8L3N0eWxlPgogPHNjcmlwdCBzcmM9Ii4uL3JlcGFpbnQvcmVzb3Vy
Y2VzL3JlcGFpbnQuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+CkBAIC0xMywy
NiArMTUsNDMgQEAKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKICAgdGVzdFJ1bm5lci53YWl0VW50
aWxEb25lKCk7CiAKLWZ1bmN0aW9uIHNldHVwSWZyYW1lKCkgewotICB2YXIgc3ViRG9jdW1lbnQg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaWZyYW1lJykuY29udGVudFdpbmRvdy5kb2N1bWVu
dDsKLSAgc3ViRG9jdW1lbnQub3BlbigndGV4dC9odG1sJywgJ3JlcGxhY2UnKTsKLSAgc3ViRG9j
dW1lbnQud3JpdGUoIjwhRE9DVFlQRSBodG1sPlxuPGh0bWw+PGJvZHkgc3R5bGU9XCJiYWNrZ3Jv
dW5kLWNvbG9yOiBzaWx2ZXI7aGVpZ2h0OiAxMDAwcHg7XCI+PC9ib2R5PiIpCi0gIHN1YkRvY3Vt
ZW50LmNsb3NlKCk7CitmdW5jdGlvbiBzZXR1cElmcmFtZXMoKSB7CisgIHNldHVwSWZyYW1lKGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdpZnJhbWUxJykuY29udGVudFdpbmRvdy5kb2N1bWVudCk7
CisgIHNldHVwSWZyYW1lKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpZnJhbWUyJykuY29udGVu
dFdpbmRvdy5kb2N1bWVudCk7CisgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpZnJhbWUxJyku
Y29udGVudFdpbmRvdy5zY3JvbGxUbygwLCAxMCk7Cit9CisKK2Z1bmN0aW9uIHNldHVwSWZyYW1l
KGlmcmFtZSkgeworICBpZnJhbWUub3BlbigndGV4dC9odG1sJywgJ3JlcGxhY2UnKTsKKyAgaWZy
YW1lLndyaXRlKCI8IURPQ1RZUEUgaHRtbD5cbjxodG1sPjxib2R5IHN0eWxlPVwiYmFja2dyb3Vu
ZC1jb2xvcjogc2lsdmVyO2hlaWdodDogMTAwMHB4O1wiPjwvYm9keT4iKTsKKyAgaWZyYW1lLmNs
b3NlKCk7CiB9CiAKIGZ1bmN0aW9uIHJlcGFpbnRUZXN0KCkgewotICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnaWZyYW1lJykuY29udGVudFdpbmRvdy5zY3JvbGxUbygwLCAxMCk7CisgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdpZnJhbWUxJykuY29udGVudFdpbmRvdy5zY3JvbGxUbygwLCAw
KTsKKyAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lmcmFtZTInKS5jb250ZW50V2luZG93LnNj
cm9sbFRvKDAsIDEwKTsKICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAgIHRlc3RSdW5uZXIu
bm90aWZ5RG9uZSgpOwogfQogPC9zY3JpcHQ+CiA8L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InNldHVw
SWZyYW1lKCk7cnVuUmVwYWludFRlc3QoKSI+Ci0gIDxwPlRoZSBpZnJhbWUgYmVsb3cgc2hvdWxk
IHJlbWFpbiBncmV5IHdoZW4gc2Nyb2xsaW5nLjwvcD4KLSAgPGRpdiBjbGFzcz0iY29udGFpbmVy
Ij4KLSAgICA8aWZyYW1lIGlkPSJpZnJhbWUiICBzdHlsZT0id2lkdGg6IDMwMHB4OyBoZWlnaHQ6
IDIwMHB4OyI+PC9pZnJhbWU+Cis8Ym9keSBvbmxvYWQ9InNldHVwSWZyYW1lcygpO3J1blJlcGFp
bnRUZXN0KCkiPgorICA8cD5UaGUgaWZyYW1lcyBiZWxvdyBzaG91bGQgcmVtYWluIGdyZXkgd2l0
aCBubyByZXBhaW50IGFydGlmYWN0cyB3aGVuIHNjcm9sbGluZy48L3A+CisgIDxkaXY+CisgICAg
PGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgIDxkaXYgY2xhc3M9InN1YnBpeGVsUHVzaGVy
Ij4KKyAgICAgICAgPGRpdiBjbGFzcz0ic3VicGl4ZWxQdXNoZXIiPgorICAgICAgICA8aWZyYW1l
IGlkPSJpZnJhbWUxIiAgc3R5bGU9IndpZHRoOiAxNTBweDsgaGVpZ2h0OiAyMDBweDsiPjwvaWZy
YW1lPgorICAgICAgPC9kaXY+CisgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNs
YXNzPSJjb250YWluZXIiPgorICAgICAgPGRpdiBjbGFzcz0ic3VicGl4ZWxQdXNoZXIiPgorICAg
ICAgICA8ZGl2IGNsYXNzPSJzdWJwaXhlbFB1c2hlciI+CisgICAgICAgICAgPGlmcmFtZSBpZD0i
aWZyYW1lMiIgIHN0eWxlPSJ3aWR0aDogMTUwcHg7IGhlaWdodDogMjAwcHg7Ij48L2lmcmFtZT4K
KyAgICAgICAgPC9kaXY+CisgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KICAgPC9kaXY+Ci0gIDwv
ZGl2PgotCiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3N1Yi1waXhl
bC90cmFuc2Zvcm1lZC1pZnJhbWUtY29weS1vbi1zY3JvbGwuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L3N1Yi1waXhlbC90cmFuc2Zvcm1lZC1pZnJhbWUtY29weS1vbi1zY3Jv
bGwuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qvc3ViLXBpeGVsL3RyYW5z
Zm9ybWVkLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDc5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGUgdHlwZT0idGV4
dC9jc3MiIG1lZGlhPSJzY3JlZW4iPgorLnN1YnBpeGVsUHVzaGVyIHsKKyAgICBwb3NpdGlvbjog
cmVsYXRpdmU7CisgICAgdG9wOiAwLjRweDsKKyAgICB6LWluZGV4OiAxOworfQorLmNvbnRhaW5l
ciB7CisgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOworICAgIHBhZGRpbmctbGVmdDogODBweDsK
KyAgICBwYWRkaW5nLXRvcDogMTBweDsKK30KKy50cmFuc2Zvcm0geworICAtd2Via2l0LXRyYW5z
Zm9ybTogcm90YXRlM2QoMCwgMCwgMSwgNDVkZWcpOworfQorPC9zdHlsZT4KKzxzY3JpcHQgc3Jj
PSIuLi9yZXBhaW50L3Jlc291cmNlcy9yZXBhaW50LmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
Pjwvc2NyaXB0PgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgdGVzdFJ1bm5l
ci53YWl0VW50aWxEb25lKCk7CisKK2Z1bmN0aW9uIHNldHVwSWZyYW1lcygpIHsKKyAgc2V0dXBJ
ZnJhbWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lmcmFtZTEnKS5jb250ZW50V2luZG93LmRv
Y3VtZW50KTsKKyAgc2V0dXBJZnJhbWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lmcmFtZTIn
KS5jb250ZW50V2luZG93LmRvY3VtZW50KTsKKyAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lm
cmFtZTEnKS5jb250ZW50V2luZG93LnNjcm9sbFRvKDAsIDEwKTsKK30KKworZnVuY3Rpb24gc2V0
dXBJZnJhbWUoaWZyYW1lKSB7CisgIGlmcmFtZS5vcGVuKCd0ZXh0L2h0bWwnLCAncmVwbGFjZScp
OworICBpZnJhbWUud3JpdGUoIjwhRE9DVFlQRSBodG1sPlxuPGh0bWw+PGJvZHkgc3R5bGU9XCJi
YWNrZ3JvdW5kLWNvbG9yOiBzaWx2ZXI7aGVpZ2h0OiAxMDAwcHg7XCI+PC9ib2R5PiIpOworICBp
ZnJhbWUuY2xvc2UoKTsKK30KKworZnVuY3Rpb24gcmVwYWludFRlc3QoKSB7CisgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdpZnJhbWUxJykuY29udGVudFdpbmRvdy5zY3JvbGxUbygwLCAwKTsK
KyAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lmcmFtZTInKS5jb250ZW50V2luZG93LnNjcm9s
bFRvKDAsIDEwKTsKKyAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIubm90
aWZ5RG9uZSgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNldHVwSWZy
YW1lcygpO3J1blJlcGFpbnRUZXN0KCkiPgorICA8cD5UaGUgaWZyYW1lcyBiZWxvdyBzaG91bGQg
cmVtYWluIGdyZXkgd2l0aCBubyByZXBhaW50IGFydGlmYWN0cyB3aGVuIHNjcm9sbGluZy48L3A+
CisgIDxkaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgIDxkaXYgY2xhc3M9
InRyYW5zZm9ybSI+CisgICAgICAgIDxkaXYgY2xhc3M9InN1YnBpeGVsUHVzaGVyIj4KKyAgICAg
ICAgICA8ZGl2IGNsYXNzPSJzdWJwaXhlbFB1c2hlciI+CisgICAgICAgICAgICA8aWZyYW1lIGlk
PSJpZnJhbWUxIiAgc3R5bGU9IndpZHRoOiAxNTBweDsgaGVpZ2h0OiAyMDBweDsiPjwvaWZyYW1l
PgorICAgICAgICAgIDwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAgIDwvZGl2PgorICAgIDwv
ZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICA8ZGl2IGNsYXNzPSJzdWJw
aXhlbFB1c2hlciI+CisgICAgICAgIDxkaXYgY2xhc3M9InN1YnBpeGVsUHVzaGVyIj4KKyAgICAg
ICAgICA8ZGl2IGNsYXNzPSJzdWJwaXhlbFB1c2hlciI+CisgICAgICAgICAgICA8ZGl2IGNsYXNz
PSJ0cmFuc2Zvcm0iPgorICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJwaXhlbFB1c2hlciI+
CisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3VicGl4ZWxQdXNoZXIiPgorICAgICAgICAg
ICAgICAgICAgPGRpdiBjbGFzcz0ic3VicGl4ZWxQdXNoZXIiPgorICAgICAgICAgICAgICAgICAg
ICA8ZGl2IGNsYXNzPSJ0cmFuc2Zvcm0iPgorICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xh
c3M9InN1YnBpeGVsUHVzaGVyIj4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxpZnJhbWUgaWQ9
ImlmcmFtZTIiICBzdHlsZT0id2lkdGg6IDE1MHB4OyBoZWlnaHQ6IDIwMHB4OyI+PC9pZnJhbWU+
CisgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CisgICAgICAgICAgICAgICAgICAgIDwvZGl2
PgorICAgICAgICAgICAgICAgICAgPC9kaXY+ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAg
ICAgIDwvZGl2PgorICAgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgICAgIDwvZGl2PgorICAg
ICAgICAgIDwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAgIDwvZGl2PgorICAgIDwvZGl2Pgor
ICA8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtLWxpbnV4L2Zhc3Qvc3ViLXBpeGVsL3RyYW5zZm9ybWVkLWlmcmFtZS1jb3B5LW9uLXNj
cm9sbC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0tbGludXgvZmFzdC9zdWItcGl4ZWwvdHJhbnNmb3JtZWQtaWZyYW1lLWNvcHktb24tc2Ny
b2xsLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtLWxpbnV4L2Zhc3Qvc3ViLXBpeGVsL3RyYW5zZm9ybWVkLWlmcmFtZS1jb3B5LW9uLXNj
cm9sbC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTIgQEAKK2xheWVyIGF0
ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAor
bGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4Mjc5CisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCww
KSBzaXplIDgwMHgyNzkKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCwxNikgc2l6ZSA3ODR4
MjU1CisgICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMCkgc2l6ZSA3ODR4MjAKKyAgICAgICAg
UmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNDY1eDE5CisgICAgICAgICAgdGV4dCBy
dW4gYXQgKDAsMCkgd2lkdGggNDY1OiAiVGhlIGlmcmFtZXMgYmVsb3cgc2hvdWxkIHJlbWFpbiBn
cmV5IHdpdGggbm8gcmVwYWludCBhcnRpZmFjdHMgd2hlbiBzY3JvbGxpbmcuIgorICAgICAgUmVu
ZGVyQmxvY2sge0RJVn0gYXQgKDAsMzYpIHNpemUgNzg0eDIxOQorICAgICAgICBSZW5kZXJCbG9j
ayB7RElWfSBhdCAoMCwwKSBzaXplIDIzNHgyMTkKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9
IGF0ICgyMzQsMTk5KSBzaXplIDR4MTkKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMjM0LDE5OSkg
d2lkdGggNDogIiAiCisgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgyMzgsMCkgc2l6ZSAy
MzR4MjE5CisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAorbGF5
ZXIgYXQgKDg4LDYyKSBzaXplIDE1NHgyMDkKKyAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDgwLDEw
KSBzaXplIDE1NHgyMDkKK2xheWVyIGF0ICg4OCw2Mikgc2l6ZSAxNTR4MjA5CisgIFJlbmRlckJs
b2NrIChyZWxhdGl2ZSBwb3NpdGlvbmVkKSB6STogMSB7RElWfSBhdCAoMCwwKSBzaXplIDE1NHgy
MDkKK2xheWVyIGF0ICg4OCw2Mykgc2l6ZSAxNTR4MjA5CisgIFJlbmRlckJsb2NrIChyZWxhdGl2
ZSBwb3NpdGlvbmVkKSB6STogMSB7RElWfSBhdCAoMCwwKSBzaXplIDE1NHgyMDkKKyAgICBSZW5k
ZXJQYXJ0T2JqZWN0IHtJRlJBTUV9IGF0ICgwLDApIHNpemUgMTU0eDIwNCBbYm9yZGVyOiAoMnB4
IGluc2V0ICMwMDAwMDApXQorICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxMzV4MTAxNgorICAg
ICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgMTM1eDIwMAorICAgICAgbGF5ZXIgYXQgKDAs
MCkgc2l6ZSAxMzV4MTAxNgorICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6
ZSAxMzV4MTAxNgorICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgMTE5
eDEwMDAgW2JnY29sb3I9I0MwQzBDMF0KKyAgICBSZW5kZXJUZXh0IHpJOiAxIHsjdGV4dH0gYXQg
KDAsMCkgc2l6ZSAweDAKK2xheWVyIGF0ICgzMjYsNjIpIHNpemUgMTU0eDIwOQorICBSZW5kZXJC
bG9jayAocmVsYXRpdmUgcG9zaXRpb25lZCkgekk6IDEge0RJVn0gYXQgKDgwLDEwKSBzaXplIDE1
NHgyMDkKK2xheWVyIGF0ICgzMjYsNjMpIHNpemUgMTU0eDIwOQorICBSZW5kZXJCbG9jayAocmVs
YXRpdmUgcG9zaXRpb25lZCkgekk6IDEge0RJVn0gYXQgKDAsMCkgc2l6ZSAxNTR4MjA5CitsYXll
ciBhdCAoMzI2LDYzKSBzaXplIDE1NHgyMDkKKyAgUmVuZGVyQmxvY2sgKHJlbGF0aXZlIHBvc2l0
aW9uZWQpIHpJOiAxIHtESVZ9IGF0ICgwLDApIHNpemUgMTU0eDIwOQorbGF5ZXIgYXQgKDMyNiw2
Mykgc2l6ZSAxNTR4MjA5CisgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgMTU0eDIw
OQorbGF5ZXIgYXQgKDMyNiw2NCkgc2l6ZSAxNTR4MjA5CisgIFJlbmRlckJsb2NrIChyZWxhdGl2
ZSBwb3NpdGlvbmVkKSB6STogMSB7RElWfSBhdCAoMCwwKSBzaXplIDE1NHgyMDkKK2xheWVyIGF0
ICgzMjYsNjQpIHNpemUgMTU0eDIwOQorICBSZW5kZXJCbG9jayAocmVsYXRpdmUgcG9zaXRpb25l
ZCkgekk6IDEge0RJVn0gYXQgKDAsMCkgc2l6ZSAxNTR4MjA5CitsYXllciBhdCAoMzI2LDY0KSBz
aXplIDE1NHgyMDkKKyAgUmVuZGVyQmxvY2sgKHJlbGF0aXZlIHBvc2l0aW9uZWQpIHpJOiAxIHtE
SVZ9IGF0ICgwLDApIHNpemUgMTU0eDIwOQorbGF5ZXIgYXQgKDMyNiw2NCkgc2l6ZSAxNTR4MjA5
CisgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgMTU0eDIwOQorbGF5ZXIgYXQgKDMy
Niw2NSkgc2l6ZSAxNTR4MjA5CisgIFJlbmRlckJsb2NrIChyZWxhdGl2ZSBwb3NpdGlvbmVkKSB6
STogMSB7RElWfSBhdCAoMCwwKSBzaXplIDE1NHgyMDkKKyAgICBSZW5kZXJQYXJ0T2JqZWN0IHtJ
RlJBTUV9IGF0ICgwLDApIHNpemUgMTU0eDIwNCBbYm9yZGVyOiAoMnB4IGluc2V0ICMwMDAwMDAp
XQorICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxMzV4MTAxNgorICAgICAgICBSZW5kZXJWaWV3
IGF0ICgwLDApIHNpemUgMTM1eDIwMAorICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxMzV4MTAx
NgorICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAxMzV4MTAxNgorICAg
ICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgMTE5eDEwMDAgW2JnY29sb3I9
I0MwQzBDMF0KKyAgICBSZW5kZXJUZXh0IHpJOiAxIHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAK
SW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9mYXN0L3N1Yi1waXhlbC9z
dWItcGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vZmFzdC9zdWItcGl4ZWwvc3ViLXBp
eGVsLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDEzNjk5MykK
KysrIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9mYXN0L3N1Yi1waXhlbC9zdWIt
cGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpA
QCAtMSwxNyArMSwzNiBAQAogbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgIFJlbmRlclZp
ZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi1sYXllciBhdCAoMCwwKSBzaXplIDgwMHg1MgotICBS
ZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NTIKLSAgICBSZW5kZXJCb2R5IHtC
T0RZfSBhdCAoOCwxNikgc2l6ZSA3ODR4MjAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDI2OQor
ICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4MjY5CisgICAgUmVuZGVyQm9k
eSB7Qk9EWX0gYXQgKDgsMTYpIHNpemUgNzg0eDI0NQogICAgICAgUmVuZGVyQmxvY2sge1B9IGF0
ICgwLDApIHNpemUgNzg0eDIwCi0gICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBz
aXplIDMxNXgxOQotICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDMxNTogIlRoZSBp
ZnJhbWUgYmVsb3cgc2hvdWxkIHJlbWFpbiBncmV5IHdoZW4gc2Nyb2xsaW5nLiIKLWxheWVyIGF0
ICg4LDUyKSBzaXplIDMyNXgyMzAKLSAgUmVuZGVyQmxvY2sgKHBvc2l0aW9uZWQpIHpJOiAxIHtE
SVZ9IGF0ICg4LDUyKSBzaXplIDMyNXgyMzAKLSAgICBSZW5kZXJQYXJ0T2JqZWN0IHtJRlJBTUV9
IGF0ICgxMCwxMCkgc2l6ZSAzMDR4MjA1IFtib3JkZXI6ICgycHggaW5zZXQgIzAwMDAwMCldCi0g
ICAgICBsYXllciBhdCAoMCwwKSBzaXplIDI4NXgxMDE2Ci0gICAgICAgIFJlbmRlclZpZXcgYXQg
KDAsMCkgc2l6ZSAyODV4MjAwCi0gICAgICBsYXllciBhdCAoMCwwKSBzaXplIDI4NXgxMDE2Ci0g
ICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDI4NXgxMDE2Ci0gICAgICAg
ICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSAyNjl4MTAwMCBbYmdjb2xvcj0jQzBD
MEMwXQotICAgIFJlbmRlclRleHQgekk6IDEgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAorICAg
ICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0NjV4MTkKKyAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0NjU6ICJUaGUgaWZyYW1lcyBiZWxvdyBzaG91bGQgcmVt
YWluIGdyZXkgd2l0aCBubyByZXBhaW50IGFydGlmYWN0cyB3aGVuIHNjcm9sbGluZy4iCisgICAg
ICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwzNikgc2l6ZSA3ODR4MjA5CisgICAgICAgIFJlbmRl
ckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgMTU0eDIwOQorICAgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDE1NCwxODkpIHNpemUgNHgxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgxNTQs
MTg5KSB3aWR0aCA0OiAiICIKKyAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDE1OCwwKSBz
aXplIDE1NHgyMDkKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgw
CitsYXllciBhdCAoOCw1Mikgc2l6ZSAxNTR4MjA5CisgIFJlbmRlckJsb2NrIChyZWxhdGl2ZSBw
b3NpdGlvbmVkKSB7RElWfSBhdCAoMCwwKSBzaXplIDE1NHgyMDkKK2xheWVyIGF0ICg4LDUzKSBz
aXplIDE1NHgyMDkKKyAgUmVuZGVyQmxvY2sgKHJlbGF0aXZlIHBvc2l0aW9uZWQpIHtESVZ9IGF0
ICgwLDApIHNpemUgMTU0eDIwOQorICAgIFJlbmRlclBhcnRPYmplY3Qge0lGUkFNRX0gYXQgKDAs
MCkgc2l6ZSAxNTR4MjA0IFtib3JkZXI6ICgycHggaW5zZXQgIzAwMDAwMCldCisgICAgICBsYXll
ciBhdCAoMCwwKSBzaXplIDEzNXgxMDE2CisgICAgICAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6
ZSAxMzV4MjAwCisgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDEzNXgxMDE2CisgICAgICAgIFJl
bmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDEzNXgxMDE2CisgICAgICAgICAgUmVuZGVy
Qm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSAxMTl4MTAwMCBbYmdjb2xvcj0jQzBDMEMwXQorICAg
IFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAorbGF5ZXIgYXQgKDE2Niw1Mikg
c2l6ZSAxNTR4MjA5CisgIFJlbmRlckJsb2NrIChyZWxhdGl2ZSBwb3NpdGlvbmVkKSB7RElWfSBh
dCAoMCwwKSBzaXplIDE1NHgyMDkKK2xheWVyIGF0ICgxNjYsNTMpIHNpemUgMTU0eDIwOQorICBS
ZW5kZXJCbG9jayAocmVsYXRpdmUgcG9zaXRpb25lZCkge0RJVn0gYXQgKDAsMCkgc2l6ZSAxNTR4
MjA5CisgICAgUmVuZGVyUGFydE9iamVjdCB7SUZSQU1FfSBhdCAoMCwwKSBzaXplIDE1NHgyMDQg
W2JvcmRlcjogKDJweCBpbnNldCAjMDAwMDAwKV0KKyAgICAgIGxheWVyIGF0ICgwLDApIHNpemUg
MTM1eDEwMTYKKyAgICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDEzNXgyMDAKKyAgICAg
IGxheWVyIGF0ICgwLDApIHNpemUgMTM1eDEwMTYKKyAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9
IGF0ICgwLDApIHNpemUgMTM1eDEwMTYKKyAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAo
OCw4KSBzaXplIDExOXgxMDAwIFtiZ2NvbG9yPSNDMEMwQzBdCisgICAgUmVuZGVyVGV4dCB7I3Rl
eHR9IGF0ICgwLDApIHNpemUgMHgwCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS9UZXN0RXhwZWN0YXRpb25zCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlzaW9uIDEzNjk5MykKKysrIExheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMJKHdvcmtpbmcgY29weSkKQEAgLTQx
MDIsNiArNDEwMiwxMCBAQCBCdWcoZHByYW5rZSkgWyBXaW4gXSB3ZWJhdWRpby9jb2RlYy10ZXN0
CiAKIHdlYmtpdC5vcmcvYi8xMDAwMjMgWyBNYWMgXSBmYXN0L3N1Yi1waXhlbC9maWxlLXVwbG9h
ZC1jb250cm9sLWF0LWZyYWN0aW9uYWwtb2Zmc2V0Lmh0bWwgWyBGYWlsdXJlIEltYWdlT25seUZh
aWx1cmUgXQogCisjIE5lZWRzIHJlYmFzZWxpbmUgYWZ0ZXIgYm90cyBjeWNsZQorQnVnKGxldml3
KSBbIFdpbiBNYWMgXSBmYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNvcHktb24tc2Ny
b2xsLmh0bWwgWyBQYXNzIEltYWdlT25seUZhaWx1cmUgRmFpbHVyZSBdCitCdWcobGV2aXcpIFsg
TGludXggV2luIE1hYyBdIGZhc3Qvc3ViLXBpeGVsL3RyYW5zZm9ybWVkLWlmcmFtZS1jb3B5LW9u
LXNjcm9sbC5odG1sIFsgUGFzcyBJbWFnZU9ubHlGYWlsdXJlIEZhaWx1cmUgXQorCiB3ZWJraXQu
b3JnL2IvMTAwNDc4ICBbIE1hYyBdIGNzczMvZmlsdGVycy9jdXN0b20vZWZmZWN0LWN1c3RvbS5o
dG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKIHdlYmtpdC5vcmcvYi8xMDA0MjQgZWRpdGluZy9z
ZWxlY3Rpb24vdXNlci1zZWxlY3QtYWxsLXNlbGVjdGlvbi5odG1sIFsgRmFpbHVyZSBdCkluZGV4
OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9mYXN0L3N1Yi1waXhlbC9zdWIt
cGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLWV4cGVjdGVkLnBuZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNhbm5v
dCBkaXNwbGF5OiBmaWxlIG1hcmtlZCBhcyBhIGJpbmFyeSB0eXBlLgpzdm46bWltZS10eXBlID0g
aW1hZ2UvcG5nCgppVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBeUFBQUFKWUNBSUFBQUFWRkJVbkFB
QUFLWFJGV0hSamFHVmphM04xYlFBM01EQmhOMlJpCk5HWTNPVGhpT1RKbVkyUmpPR0V3TVdJellX
VXlZemhqWkxrYnluMEFBQnFQU1VSQlZIaWM3ZDFaY3hUbnZjRGhGb05rZ1FDSDRCSmkKTFlQWXdS
aEMyRXdNaVYxRkNtS2NWT0tVYnZoSStRYTU1WWFrNHNSbE80bUpzNUFVdTRMWVpCWmJpRjBnUUt5
V3pDYWRpNjR6WjQ1NgpSaHQvQ2MzVTgxeTR4dEowOTl2dk82UDVNV3BKVlUxTlRRa0FBSEVtdk9v
QkFBQlVHb0VGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCCkJRQVFUR0FCQUFRVFdBQUF3UVFXQUVB
d2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllBQURCQkJZQVFEQ0IKQlFB
UVRHQUJBQVRMclZxMXF1Z245dTdkMjFyQ2pCa3ovdk9mL3l4ZXZIaTRCL3Y3My8rK2NPSENKRWw2
ZTN0UG5UcDE2TkNoYytmTwo1WEs1R1RObXZPeDVERk5IUjhmUVQyRllkeDd0d1F4ckQ2TTk4cXo4
RW85bjJVR08vVVM5akxHWjVISHliQjIzUzVNZldPRUl5K0x4CkQ0eU5pUU44YnVYS2xTdFdySmd3
WWNMZXZYdWJtcHA2ZTN0UG56NTk3dHk1bzBlUGZ2ZmRkeU00MlB2dnY1L2VPSFBtVEgxOS9Zb1YK
S3pvNk9rNmZQcjFreVpLUmpQMGxET3NVamgwNzF0UFRNMDRHVTFTcEViNzhub2NydjhUaldYYVFZ
ejlSTDJOc0pubWNQRnZIN2RMawpuM1NGejc2eWVQd0RZNlBrdHdpblRadTJkT25TQ1JQKzd3NFRK
a3hZc1dMRnRHblRkdTNhOVpKSHZYejU4c3laTTZ1cnErZlBuLyt6Cm4vM3NKZmMyQXNNNmhROCsr
R0QwUnBJTWN6QkZsUnJoeSsrNXN1M2R1emU5VVVrVGxUK3BxRzFIOW14OW1XRVVHcmRMazMvU2pm
YlgKQjZCTWxReXNIVHQyVkZkWDkvdGdkWFgxamgwN0NxdHJaTHE3dTE5K0owUDAvUG56N0FlSGRm
UlJHbXArWUMrLy8xSjdHTE5KTGtjUApIanpJMzY2WWlTbzhxYWh0Ui9Cc0xicXJvcy9FUVkzRzBv
eHNKUDNrQjFZeER4NGcxa0RmSWh6WTQ4ZVBEeDA2OVBEaHd6VnIxalEyCk5pWko4dUxGaTJQSGps
MjdkbTNLbENsYnRteVpPblZxNGYwN09qcGFXbHAyN3R5Wi90TTIvZS9XclZ0YldscVdMRmx5NXN5
WnlaTW4KYjkrKy9lTEZpMTk5OVZWM2QzZHRiZTN5NWN2VFN4eGFXbHEyYmR0MjZOQ2hCdzhlckYy
N2RzYU1HWWNQSDM3OCtQSGJiNys5YU5HaQpVb2YrNXB0dldscGE1c3laYy9YcTFhYW1wdXdwM0w1
OXU3bTV1YWVuNTYyMzNzcGY1REh3V1NSSmN2WHExZVBIai9mMjlxNWV2YnF4CnNmSHg0OGVmZi81
NWtpUkxseTVkdEdqUjU1OS9YbFZWbGN2bDFxMWJkK2ZPbmJhMnRpUkpQdnJvbzF3dWw5OUQwWUZs
NXpON3JQeTgKcFZzVjNpNTA3ZHExVTZkTzlmVDByRisvUG52VzZYd1d6bm4ybEljeTU2VldhdWZP
bmVtTnJWdTNIajU4K01HREIvbE5DajE4K1BESQprU1AzNzkrZk0yZk81czJicTZxcUJoM1l2WHYz
RGgwNmxDVEp3b1VMMTY5ZjM5emNuRTd2cjM3MXE0a1RKNlp6T09oYS9PaEhQenA1Cjh1VE9uVHNQ
SGp5WXp1SGN1WE8zYk5sU2Fna0tKNjNvR1dYWGFBU3pmZUxFaVUyYk5oMDlldlRSbzBjYk5teVlQ
MzkrdXZsd0p6bDcKVW5tbGRwVWYyNHNYTC9MYkxseTRNUHRzYldwcXl1NGtTWksrdnI1VHAwNjF0
YlhsY3JsVnExWTFOamIyRzBhcForSVFuenRGbDZiVQpnM2JnUjExMkpObkJaNWRzMEZVdVhPc0JI
di9aeDN6Ui9RQ1ZZZVNCMWRIUjhlTWYvL2pPblR0SGp4NU52K0tjUG4yNm9hRmh3NFlOCnQyN2RP
bjc4K0xadDJ3cnZuNytXb3FtcEtiMm9LMG1TUC8zcFQwK2VQSmswYWRJdmZ2R0w5RzZ0cmEzdnYv
LytwRW1UN3R5NXMzLy8KL3NXTEY2Y2JkbloyYnR1MjdlYk5tOGVPSFh2cnJiZCs4cE9mZEhWMUhU
cDBLUDNLVmZUUTZldm8vZnYzcjE2OVd2UVVlbnA2dG0vZgozdDNkZmVUSWtkcmEybm56NWcxNkZs
MWRYVzF0YlR0MjdPanE2anA0OE9EVXFWUHI2K3MvL1BERGZmdjJMVisrL0xYWFhtdHFhdnJrCmsw
OSsrdE9mMXRiV3pwdzU4L3IxNnp0MjdDaXNxMUlEeTg1bjBXTjk4TUVIbjMzMldickp6cDA3Ly96
blAvYzdxVnUzYmwyNGNHSGIKdG0wMU5UVVhMbHpJbnZXUkkwZjZ6WG4ybEljeTU2VldLci9XSFIw
ZFc3ZHV2WHYzN3VIRGg3TXZkUWNQSGx5eFlzV2NPWFBPblR2Mwp1OS85THBmTFRadzRjZUNCYmQy
NmRmTGt5Y2VPSFZ1OWVuV1NKRC84NFE5djNMang3cnZ2cG5XVkpNbVVLVk1HWFl1Ly9PVXY2U0Iz
CjdOaVJmeHlXV29LOFVtZFVkSTJHTzl2cGZicTZ1dDU3NzcyblQ1OGVQbnc0bDh2Tm1UTm5CSk9j
UGFtODdLNnlZOHR2Kzhrbm4yU2YKclVWM2tpVEoyYk5uYTJwcWZ2N3puMSs1Y3FXMXRiV3hzYkhm
TUVvOUU0ZXlYdWx6WnloZmJZYnlxTXVPSkR2NDdMUU11c3FGRDVJQgpIaTNaeDN5YWowQkZHdm1i
MjRzWEw2NnVybTVvYU1oZmducmx5cFVqUjQ3OC92ZS8vL2UvLzMzNzl1MSs5eTk2cGNLSEgzNllK
RW42CldwTGF0V3RYYlcxdGUzdjc4ZVBIMDM5U3B4c3VXTENndXJwNjd0eTV6NTQ5Vzd4NGNVMU56
Y3laTTU4K2ZUckFvU2RQbm56ejVzM1oKczJjWGZiMUprbVQrL1BtNVhHN3ExS2tiTm13NGUvYnNV
TTZpcGFWbC9mcjFOVFUxRFEwTmE5ZXVQWDc4ZUpJa2t5Wk5talZyMXZYcgoxNU1rNmVycSt1Njc3
OUxiVjY1Y2VmUE5OMnRxYXZydHBPakFzdk5aOUZoMWRYWDVUYkx2cmlWSmN1Yk1tZlhyMTlmVjFW
VlhWeGU5Ckhqazc1OWxUSHNxY2wxcXA1SCt2bTBrM2FXaG95RzlTNlBIangzUG16TW5sY3N1V0xa
czJiZHBISDMwMDZNQ3FxcXJlZU9PTjJiTm4KdDdlM0owblMyZGxaVjFjM2ZmcjB3dDBPdWhZRFhE
R1RYWUs4VW1kVWRJMkdPOXZwemhzYkc2dXJxK3ZxNm43d2d4K2NPSEVpWkpMNwpuVUsvWFdYSGxq
ZkFWWDM5ZHBJa1NWdGIyNkpGaTNLNTNJSUZDNHB1T01BemNZalBuYUY4dFJuS2hHUkhraDE4ZGxv
R1hlVitrMVpxCkpObkhmTkg5QUpWaDVPOWdwUXJmNVg3eTVFbXBsRW1TcE4rN09LbnM1UXYzN3Qx
cmJtNmVQWHYyTysrOGs3NDlVN2hoNGVFR1BmUzIKYmR0T25qeDU5dXpaVFpzMnZmSEdHd09jeFpR
cFUvSlhqUXg4RmwxZFhiVzF0ZW50ZWZQbU5UYzNwN2ZuenAzN3pUZmZMRnk0OE91dgp2MTZ5Wk1u
VnExY2JHeHZiMjl2ZmVlZWQ3RTRHR0ZqaFNaVTYxc0R1M2J1WGo3RHNWWFJKc1RuUG52SlE1bnlB
bFNvOFJLbnZneXhZCnNPRDgrZk5MbHk2OWNlUEdreWRQaGppd0pFa1dMVnEwZi8vK1pjdVdmZjMx
MTBWL2VuL2d0U2o2T0N4VWRNQ2x6bWpRTlJydWJDZEoKOHZycnIzZDNkNmUzWDNLU0MyVjNOY0RG
UTZWbUtidVRKRWw2ZW5xS1B0THlCbjRtRHYyNU0vQlRmaWdUa2gxSmR2RFphUm5pTTNIUQpwY2sr
NW9FS0ZubDU1clJwMC9LM0wxKytQTEtkSERod1lOT21UU3RYcm56dHRkZGU4dENUSjAvZXZIbnpo
ZzBiMGd0M0J2RHc0Y1BYClgzOTlnRjBWSHFpam95TzkvZUxGaS95cnhjeVpNKy9ldmZ2NDhlTzdk
KysrL2ZiYkR4NDh1SFhyVmk2WEs5eGIzaEFIVnVwWS9mVDIKOWhiKzc5eTVjKy9kdTVmZWZ2YnNX
ZllPUlErVXZ6MzBoUnZaU3VVMU5qYmV1SEhqNDQ4L1BuMzY5S1pObTRZK3NMcTZ1cnE2dWt1WApM
dDI1YzJmdTNMblpyWWExRmk5cGlHdlViNVA4N2NMWnppOVRkM2QzL2o0dk9jbUZRblpWZENmVjFk
VjlmWDBEYkRYd0EzNWs2eld5CkIyMTJKSU1PUGhuUktoYzFsTWM4VURFR0Q2ejAxYnFycXl2L1pT
ajk1M1g2cTEvU2QrelQyN05temJwMDZkTHo1OCt2WExtUy9aS1gKYnRYZDNaM2UrZjc5Ky9rTkN3
dmc2ZE9uRHg4KzdPbnB1WFRwVXBJa0wxNjhLSFc0OUwvcFo0c2VldS9ldlZldlhwMDBhVkxSSHhy
Swo1WEx0N2UzUG56OS85T2hSZW8xUit2SHNyZ29Ic0c3ZHVoTW5UdHk5ZS9mSmt5ZkhqeDlmczJa
TmZtOHpaODQ4Y09EQWdnVUxKa3lZCk1HdldyS05Iank1WXNLRG9sUFliV0trVExIV3NtcHFham82
T1o4K2VwWmRZZmZiWlo0VjdXTE5tVGJyVjgrZlBXMXRia3lUNTlOTlAKQzQrZW5mT0JUN25Vbkpk
YXFlN3U3bSsvL2JibzVvVU9Iank0WmN1V1gvLzYxenQzN214b2FCaml3RktMRmkwNmR1eFlPdFZG
VjNhQQp0Y2dQTWttU3FxcXEyN2R2Ly9XdmZ5MTF2bm1senFqVUdnMXJ0bE1uVDU1OC92eDVUMC9Q
Zi8vNzMyWExscVVmSE1FazUwK3EzMGl5CnU4cU9yZCtFOUh1MkZ0MUpraVFORFEyZG5aMTlmWDBQ
SHo1TUwxcnZONHhCbjRtRHJ0ZFF2dG9NNVZHWEhVbDI4TmxwS2JySytZSDEKdXpIQTBtUWY4MEFG
Sy9tYjNGTjc5KzVOZjVibjRzV0xyYTJ0NlowLy92ampKRW5PbnorL2F0V3FQL3poRC9uYk0yYk0r
T3FycjQ0ZApPL2I0OGVQMTY5ZjMrNGR5dXRXRkN4Zk9ueitmSkVsYlcxdHJhMnQ2dTcyOWZlblNw
ZW5kSms2YzJOemMzTm5adVhidDJ1dlhyL2YwCjlLUS9rWlE5WEg2SHBRN2QydHJhME5CdzRNQ0Ix
YXRYZi8vNzMrOTNhck5teldwdGJXMXBhZW5zN0Z5MWF0WHMyYlBUajJkM1ZYaSsKa3lkUG5qQmh3
dEdqUnk5ZXZMaDA2ZEtaTTJmbWQ5algxM2Z4NHNYTm16ZW4zeWxvYjIvZnVIRmowVysxOUJ0WXFm
a3NkYXhjTHRmYwozTnpSMGJGaXhZcWJOMit1VzdmdWIzLzdXMzZyaVJNbnpwZ3g0K0RCZ3hjdVhG
aTZkT25kdTNmWHJWdFhlTFZXZXJqQ09SLzRsRXZOCmVhbVZ1bkRoUWxwKzJjMExKK0hLbFNzdExT
M3Azd1k0Zi81OGJXM3RQLy81ejBFSGxuNTg2dFNwWjgrZTNiaHhZNm52VEEyd0ZvV24KOE9qUm85
YlcxbzBiTjM3eHhSY0REL2lQZi96anNOWm9XTE9kUGlUZWZQUE5mLzNyWDVjdlgxNjRjR0grdDRH
UFlKTHpKMVY0dVY3UgpYUjA0Y0tEZjJQcE5TTDluYTlGRmIyaG9xSyt2YjJscGFXNXV2blBuenZM
bHk3LzN2ZThWN3FxdXJtN2daK0pRMW1zb1gyMUtyVkhoCmdiSWp5UTQrdTJSRlZ6ay9zUHhDcERj
R1dKcnNZMzc2OU9sZmZ2bWxYLzRPRmFscWdPdU5ZSlE4ZVBEZ3laTW42WTlpOWZYMVBYancKNE1z
dnZ4ejZOYiszYjk4K2QrN2N1KysrTzVwakhGT2xmdlNQaXZHU2ozbWc3UGdWZWJ3QysvZnZmL1Rv
VWZyVFZjK2VQZXZzN0p3MQphOVlRdCszdDdVMnZGQjdOQVk2cDlMdEk0L01Qd2hEbFpSN3pRRG55
RGhhdndMVnIxODZkTzNmLy92M2UzdDY2dXJyWnMyZXZYTGt5Cisvc3Nzcjc0NG9zblQ1NXMyTENo
a2k1aHlmOVZHVS9HQ2piaXh6eFFwZ1FXQUVBdzN5SUVBQWdtc0FBQWdna3NBSUJnQWdzQUlKakEK
QWdBSUpyQUFBSUlKTEFDQVlBSUxBQ0NZd0FJQUNDYXdBQUNDQ1N3QWdHQUNDd0FnbU1BQ0FBZ21z
QUFBZ2drc0FJQmdBZ3NBSUpqQQpBZ0FJSnJBQUFJSk5MUFdKdHJhMnNSd0hvNnF4c1RGLzI4cFdr
c0tWQldEODhBNVc1WnMzYjk2ckhnS2p3c29DakZzbDM4RksvZVkzCnZ4bWJjVEIwMjdadFM1Smsz
NzU5bloyZHBlNVRYMSsvZmZ2MkpFbnUzYnVYSk1uMDZkUHpuL3J0YjMrYkpNbVNKVXRHZmFBTTA3
QlcKOXBlLy9PWFlqUXlBWVJva3NCaWY5dXpaczN2MzdwZS9EK09ObFFXb0RMNUZXSDcyN2RzM2xO
ZlgzYnQzNzl1M2J3ekdReFFyQzFBeApCRmI1R2VEN1J5TytKK09CbFFXb0dBSUxBQ0NZd0FJQUND
YXdLc1NlUFh0ZTlSQVlGVlZWVmE5NkNBQU1tOENxQkdsZGFhektrOWFWCnhnSW9Pd0tyN0JWMmxj
YXFKSVZkcGJFQXlvdkFLbS9ab3RKWWxTRmJWQm9Mb0l6NFJhUGx6UytjckZSOWZYMnZlZ2dBakp4
M3NBQUEKZ2drc0FJQmdBZ3NBSUpocnNNcVNLOWtybFpVRnFBd0NxeXp0MnJVcis4RnZ2LzIyMzBm
KzhZOS9qTWx3QUlEL1IyREJPQ0tkQVNxRAphN0FBQUlJSkxBQ0FZQUlMQUNDWXdBSUFDQ2F3QUFD
Q0NTd0FnR0FDQ3dBZ21NQUNBQWdtc0FBQWdna3NBSUJnQWdzQUlKaS9SVmoyClB2MzAwOEwvZmUr
OTkxN1ZTQUNBbE1BcWUvay9ENXo5azhDVU5la01VTDRFRm94VDBobWdmQW1zc3VkOURnQVlid1JX
MmZNK1I2V1MKemdEbFMyREJPQ1dkQWNxWHdDcDczdWNBZ1BGR1lKVTk3M05VS3VrTVVMNEVGb3hU
MGhtZ2ZQbE43Z0FBd1FRV0FFQXdnUVVBRUV4ZwpBUUFFRTFnQUFNRUVGZ0JBTUlFRkFCQk1ZQUVB
QkJOWUFBREJCQllBUURCL0txY3M5ZnNyZFFEQXVDS3d5dEthTld1R2NyY1RKMDZNCjlraUlKWjBC
S29QQWduRkVPZ05VQnRkZ0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFR
RENCQlFBUVRHQUIKQUFRVFdBQUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZB
QkJNWUFFQUJCTllBQURCQkJZQVFEQ0JCUUFRVEdBQgpBQVFUV0FBQXdRUVdBRUF3Z1FVQUVFeGdB
UUFFRTFnQUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJCQllBUURDQkJRQVFUR0FCCkFBUVRX
QUFBd1FRV0FFQXdnUVVBRUV4Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJC
WUFRRENCQlFBUVRHQUIKQUFRVFdBQUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1J
RUZBQkJNWUFFQUJCTllBQURCQkJZQVFEQ0JCUUFRVEdBQgpBQVFUV0FBQXdRUVdBRUF3Z1FVQUVF
eGdBUUFFRTFnQUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJCQllBUURDQkJRQVFUR0FCCkFB
UVRXQUFBd1FRV0FFQXdnUVVBRUV4Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFE
QkJCWUFRRENCQlFBUVRHQUIKQUFRVFdBQUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdC
QU1JRUZBQkJNWUFFQUJCTllBQURCQkJZQVFEQ0JCUUFRVEdBQgpBQVFUV0FBQXdRUVdBRUF3Z1FV
QUVFeGdBUUFFRTFnQUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJCQllBUURDQkJRQVFUR0FC
CkFBUVRXQUFBd1FRV0FFQXdnUVVBRUV4Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5Z
QUFEQkJCWUFRRENCQlFBUVRHQUIKQUFRVFdBQUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVF
RmdCQU1JRUZBQkJNWUFFQUJCTllBQURCQkJZQVFEQ0JCUUFRVEdBQgpBQVFUV0FBQXdRUVdBRUF3
Z1FVQUVFeGdBUUFFRTFnQUFNRUVGZ0JBc0ltdmVnQ014SWtUSjE3MUVCZ1ZWaGFnTWdpc3NyUjc5
KzZoCjNHM1BuajJqUFJKaVdWbUF5dUJiaEFBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFYzVGN2VhdXFx
c3Arc0srdmIreEhRaXdyQzFEV3ZJTlYKM3JLdnVGNkRLNE9WQlNockFxdnNGYjd1ZWcydUpGWVdv
SHdKckVxUXZ2cDZEYTQ4VmhhZ1RBbXNDdUUxdUZKWldZQnlKTEFBQUlJSgpyUEpUWDE4ZmZrL0dB
eXNMVURFRVZ2blp2bjM3VVA0VTNaNDllN1p2M3o0RzR5R0tsUVdvR0g0UFZsbmF2WHYzdm4zN09q
czdTOTJoCnZyNStpSDgybUhIRnlnSlVocXFtcHFhaW4yaHJhMHVTWk42OGVXTTdIa1pGVFUxTi9y
YVZyU1NGS3d2QStESFF0d2k5QmxjcUt3c0EKbzZya3R3Z2JHeHZIY2h5TUdTc0xBS1BOUmU0QUFN
RUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJCQllBUURDQkJRQVFUR0FCQUFRVApXQUFBd1FRV0FF
QXdnUVVBRUV4Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFB
UVRHQUJBQVFUCldBQUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFF
QUJCTllBQURCQkJZQVFEQ0JCUUFRVEdBQkFBUVQKV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFn
QUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJCQllBUURDQkJRQVFUR0FCQUFRVApXQUFBd1FR
V0FFQXdnUVVBRUV4Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENC
QlFBUVRHQUJBQVFUCldBQUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJN
WUFFQUJCTllBQURCQkJZQVFEQ0JCUUFRVEdBQkFBUVQKV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFF
RTFnQUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJCQllBUURDQkJRQVFUR0FCQUFRVApXQUFB
d1FRV0FFQXdnUVVBRUV4Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFR
RENCQlFBUVRHQUJBQVFUCldBQUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZB
QkJNWUFFQUJCTllBQURCQkJZQVFEQ0JCUUFRVEdBQkFBUVQKV0FBQXdRUVdBRUF3Z1FVQUVFeGdB
UUFFRTFnQUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJCQllBUURDQkJRQVFUR0FCQUFRVApX
QUFBd1FRV0FFQXdnUVVBRUV4Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJC
WUFRRENCQlFBUVRHQUJBQVFUCldBQUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1J
RUZBQkJNWUFFQUJCTllBQURCQkJZQVFEQ0JCUUFRVEdBQkFBUVQKV0FBQXdRUVdBRUF3Z1FVQUVF
eGdBUUFFRTFnQUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJCQllBUURDQkJRQVFUR0FCQUFR
VApXQUFBd1FRV0FFQXdnUVVBRUV4Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFE
QkJCWUFRRENCQlFBUVRHQUJBQVFUCldBQUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdC
QU1JRUZBQkJNWUFFQUJCTllBQURCQkJZQVFEQ0JCUUFRVEdBQkFBUVQKV0FBQXdRUVdBRUF3Z1FV
QUVFeGdBUUFFRTFnQUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJCQllBUURDQkJRQVFUR0FC
QUFRVApXQUFBd1FRV0FFQXdnUVVBRUV4Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5Z
QUFEQkJCWUFRRENCQlFBUVRHQUJBQVFUCldBQUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVF
RmdCQU1JRUZBQkJNWUFFQUJCTllBQURCQkJZQVFEQ0JCUUFRVEdBQkFBUVQKV0FBQXdRUVdBRUF3
Z1FVQUVFeGdBUUFFRTFnQUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJCQllBUURDQkJRQVFU
R0FCQUFRVApXQUFBd1FRV0FFQXdnUVVBRUV4Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFC
Qk5ZQUFEQkJCWUFRRENCQlFBUVRHQUJBQVFUCldBQUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FB
TUVFRmdCQU1JRUZBQkJNWUFFQUJCTllBQURCQkJZQVFEQ0JCUUFRVEdBQkFBUVQKV0FBQXdRUVdB
RUF3Z1FVQUVFeGdBUUFFRTFnQUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJCQllBUURDQkJR
QVFUR0FCQUFRVApXQUFBd1FRV0FFQXdnUVVBRUV4Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlB
RUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRHQUJBQVFUCldBQUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUx
Z0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllBQURCQkJZQVFEQ0JCUUFRVEdBQkFBUVQKV0FBQXdR
UVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJCQllBUURD
QkJRQVFUR0FCQUFRVApXQUFBd1FRV0FFQXdnUVVBRUV4Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJC
TVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRHQUJBQVFUCldBQUF3UVFXQUVBd2dRVUFFRXhnQVFB
RUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllBQURCQkJZQVFEQ0JCUUFRVEdBQkFBUVQKV0FB
QXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJCQllB
UURDQkJRQVFUR0FCQUFRVApXQUFBd1FRV0FFQXdnUVVBRUV4Z0FRQUVFMWdBQU1FRUZnQkFNSUVG
QUJCTVlBRUFCQk5ZQUFEQkJCWUFRTEQvQWVDbnpKaVo3MlVFCkFBQUFBRWxGVGtTdVFtQ0MKCklu
ZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9mYXN0L3N1Yi1waXhlbC90
cmFuc2Zvcm1lZC1pZnJhbWUtY29weS1vbi1zY3JvbGwtZXhwZWN0ZWQucG5nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
Q2Fubm90IGRpc3BsYXk6IGZpbGUgbWFya2VkIGFzIGEgYmluYXJ5IHR5cGUuCnN2bjptaW1lLXR5
cGUgPSBpbWFnZS9wbmcKClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtLWxpbnV4L2Zhc3Qvc3ViLXBpeGVsL3RyYW5zZm9ybWVkLWlmcmFtZS1jb3B5LW9u
LXNjcm9sbC1leHBlY3RlZC5wbmcKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOm1pbWUtdHlwZQogICAr
IGltYWdlL3BuZwoKCmlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUF5QUFBQUpZQ0FJQUFBQVZGQlVu
QUFBQUtYUkZXSFJqYUdWamEzTjFiUUE1TnpreU56Tm0KWWpFNE9XSmpOak5qWWpVM00yWTVNV1F4
TkRZeFpXVTBPZGlKb2RRQUFDQUFTVVJCVkhpYzdkMWJqRnhuWWNEeGIrMzFldGZadGIyeApIZC9p
T0hIam1HQUh4NDV0QlFmU3BDb0Y1UW1wUlVJSTBVYmxVdFMrcEFVaWVLaUVpbEFycWlJaTBxWlE2
bEJWSVlDcVhFUVMwa1lrCkJTVTBnc1FKMkJESHhvNWpiMnBqYit5MTE5NWQ3K1gwNGRCaHNuUFoy
WjF2WnM3TS9INVBKN1BuOHAzYitwKzViVWVTSkFFQWdIam0KTlhvQUFBQ3RSbUFCQUVRbXNBQUFJ
aE5ZQUFDUkNTd0FnTWdFRmdCQVpBSUxBQ0F5Z1FVQUVKbkFBZ0NJVEdBQkFFUW1zQUFBSWhOWQpB
QUNSQ1N3QWdNZ0VGZ0JBWkFJTEFDQXlnUVVBRUpuQUFnQ0lUR0FCQUVRbXNBQUFJaXNaV0IybFBm
NzQ0NXMyYlpyRHh0Nzk3bmVuCkUrUGo0NS81ekdlV0wxKytmUG55cjN6bEszTWNleFZtdFF0ejN0
KzZyYi9VR21vOThrSzVVNXhsaFlPcy80R3FSbjBPY2tidTFzeWUKbXR6QThrZllGTmMvVUNkSkNT
R0V2Lzdydng0YkcwdW5reVFaSFIyOSsrNjdRd2hyMXF3cHMyQWxQdmU1enozMjJHTkRRME1QUHZq
Zwo3L3pPNzFTenFybVoxUzVjZWVXVlZlNXZ4TUVVVldxRXExYXRxdW5JVzBiMXA2Q0ZOZlp1emV5
cHlkMTB0Zjc5QURTcGppUkppb2JYCmxpMWJubnZ1dWNXTEY0Y1FPanArTTl2UTBOQXR0OXp5d2dz
dmRIZDNsMXF3RXV2WHJ6OTA2TkNDQlF2bXZJWXFqWTJOVmI0THM1cTUKMW9PWjFScHFQZkptbDd1
d1crbEE1WFlxMXJKenUxdXJHVWEreko2YTNNQXlPMEtnc1VxK1JMaHYzNzYwcnZJdFdiSmszNzU5
Q3hjdQpySEtyeDQ4ZnIwOWRKVWx5NGNLRndzZG50UXZWNzIraC9JRlZ2LzVTYTZqRnlGdkcvdjM3
YzlNdGM2RHlkeXJXc25PNFd3dFhWZXBPCm5GSDBVelBua1V5VEcxakxYRHhBWEhOL2svdWhRNGQy
N2RxMWVQSGlyMy85Nitram82T2pIL25JUnhZdFdyUjE2OWFEQnc5T216LzMKVG9XT2pvNnBxYW4w
N1Z4UFBQSEU5ZGRmLzAvLzlFOHJWNjdjdVhObkNPRmYvL1ZmTjJ6WXNHREJnaXV2dlBMZWUrOE5J
YVR6dlBiYQphN3QzNzE2OGVQRTN2dkdOL2Z2M2I5Kyt2YSt2Nzc3NzdpdXo2WC84eDM5Y3RHalJu
LzdwbjNaMGRCVGRoZi8rNy8vZXZIbHpmMy8vClY3LzYxZHlENWZjaWhQRGQ3MzUzOWVyVnk1Y3Yv
K2QvL3VmME9LVDc4cWxQZlNxZDd1enM3T3ZyKytZM3YvbG5mL1puNlk5R1IwZnoKMTFCMFlJWEhz
M0JiNGYvZkcxYzRuZStoaHg2Ni92cnIrL3I2SG56d3djS2ZGaDd6d2wydTVKZ1hucW5jS1U0WC85
V3ZmdlhPZDc1ego4ZUxGdVVYeS9mS1h2N3o1NXBzWExsejR3UTkrY0dKaW9wS0JQZmpnZytrdWYv
U2pIdzBoNUE3djhQQnc3aGpPZUM0ZWZ2amhkSkFmCitNQUgwbVA0UjMvMFIyVk9RZjVCSzdwSGhl
ZG90a2Y3KzkvLy91Yk5tL2Z1M1h2ampUZGVkdGxsMy9yV3QzS0x6L1lnRis1VW1WVk4KRzF2K3Nr
WHYxcUlyQ1NGTVRVMTk1ak9mV2JwMDZlclZxNy8ydGE4VkRxUFVuVmo1dlZQSmI1dEtycnJDa1JR
T3Z2Q1V6WGlXVXpOZQovNFhYUE5ES0tua2RzWEMyRU1JOTk5eHo1c3laSjU1NFl0V3FWZW1Ebi9y
VXA3NzV6VytPam80Ky92amo3MzN2ZTZjdHNucjE2dHg2CmNoTXJWcXdJSVR6eXlDTzUyYTY2NnFx
alI0K09qNC8vOEljL3ZPeXl5M0lMN3RtejU4eVpNOS85N25mNysvdnZ1ZWVlTjk5ODg4a24KbjF5
K2ZIbVpUUzlldlBqSWtTTVBQZlJRMGQwTUlUend3QU1YTGx4NDlkVlgzL25PZDM3NzI5OHVzNnJj
R3A1Ly92bmYvLzNmUDMzNgo5SC8rNTM4dVdiTGs2YWVmVHBMaytQSGpxMWV2UG5ueVpEclBtalZy
VHB3NGtTVEp3TURBbWpWcjNuenp6V21iTGh4WTBlTlpkRnRICmpoekpMWFhnd0lIQ1EvclVVMC9k
ZXV1dGh3OGZQblBtek9jLy8vbkNmUzg4NW9XN1hNa3hMM1dtY2hQMzNIUFA0T0RnWTQ4OWxsc2sK
M3p2ZThZNzArS2VEN09ucG1YRmdrNU9Ueno3NzdPYk5tMCtkT3BVa3lkVFUxTHAxNjE1ODhjWDgx
YzU0TG9wZWg2Vk9RVTZwUFNwNgpqbVo3dEsrNDRvb1F3bjMzM1RjME5IVDQ4T0YzdmV0ZER6Lzg4
SndQY3FtYnVuQlZoV1BMTFZ2cUtCV3VKRW1TTDN6aEMxLzg0aGRIClJrYjI3Tmx6elRYWEZDNVY1
azZzNU42cDhMZE5KVmRkNFVnS0IxOTRXRXFkNVdtSGFNWlRVM2pORnoxVFFHdVllMkNsRXhNVEUv
UG0KelV1bjB6ZDdwaFl0V2pSdGtaR1JrY0pmMmVuL25rNmJjM1IwOU90Zi8vcTJiZHZTSDEyOGVE
Ri9jN25weWNuSjNIVFJUVjkvL2ZYMwozWGZmK1BqNGpEdjF5MS8rY3Z2MjdXVldsWnY1bGx0dU9Y
TGtTRHE5WjgrZUxWdTJwTk4zM25ubk43N3hqU1JKZnZLVG4zUjBkTngzCjMzMUprdno5My8vOTNY
ZmZYYmpwd29FVlBaNmx0alV0Q3dwSCtNb3JyNlRUWjgrZUxYcDRwejFZdU11VkhQT2s0RXpsVG5I
K0p2SVgKejdkbzBhS1JrWkYwVzVzM2I2NXdZRW1TM0gzMzNYLzNkMytYSk1uVFR6LzlybmU5cTNE
TjVjOUYwZXN3S1hFS2loNjAvRDBxZFk2SwpMbGhxcDlKWHJISXp2UERDQ3hzM2JzeGZ3NndPY3Bu
L2E1cTJxc0t4NWY2ejFGRXFYRW1TSk92WHJ6OXo1c3kwYmVVdlZmNU9uUEhlCnFmQzNUU1ZYWGVG
SUNnZGZlRmhtdkJNclBEV0YxenpRd3FvTnJQenBoUXNYVnJpZW9vdW5Ybnp4eFowN2QzNys4NTkv
NVpWWFpweS8KL0thUEhqMzZ3UTkrY01PR0RjOCsrMno1bmJwMDZWTDZOdFZTcThyTjNOWFZkZUhD
aFhSNmVIZzROL09qano1Nnh4MTNKRW55a1k5OAo1SzY3N25yUGU5NlRKTWtOTjl6d2kxLzhvcEtC
RmQycFV0c3FIMWc5UFQyWExsMHF1cHVsSGl5L3k2V215NStwTXFjNDllZC8vdWQvCjh6ZC9jK0hD
aFc5Lys5c3JWcXlvZkdDSER4Kys3cnJycHFhbS92QVAvL0NCQng0b25HSEdjMUg1ZFpWdlZ1ZW8x
SUtsZG1yYTFaaWIKWnc0SHVWUmd6WGhuVmJMQ29pdVpQMzkrK1QwcWZ5ZFdmcjd5cDJkMTBaWVp5
WXlEVHlxNEV5czhOVVd2ZWFCVnhReXNiZHUyNVI3OAo5My8vOXpMcktmTjdjTU9HRGVrVE1JT0Rn
NVgvUTFobTB6LzR3US9XcjE5ZmZxZjI3dDI3WThlT01xdkszOUIvL01kL3BOTW5UNTY4Ci9mYmIw
K21Sa1pGbHk1WWRQSGp3dXV1dUd4c2JXNzE2OVZOUFBiVno1ODdDN1JZZFdLbWRLcnF0RU1MVTFG
UnVPdityTkpJaytmQ0gKUC96akgvODRuUjRhR3NyTlVHcmZaOXpsVXRQbHo5U00vOVM5L1BMTHUz
ZnY3dTd1M3JScDA1TlBQbG41d0pJa2VkLzczbmYvL2ZldgpXYk9tY05lU0NzNUZ4TUFxZFk1S0xW
aHFwMElJdVN3K2VQRGcxcTFiMCtrNUhPUlNnVFhqblZYSkNvdXVaUG55NVJNVEUrWDNPaWw5Ckox
Wit2cEszSHZuY2d6TmV0R1ZHVXNuZ3k5eUpNMDdrVHhlOTVvRldOVU5nVFUxTi9mU25QdzBoL09R
blA1bWNuRXdmUEhyMGFBaGgKWUdBZ1NaSVRKMDZFRUk0ZE81WWt5V2MvKzluNzc3OS9lSGo0Vzkv
NlZ2cS9wUGxlZi8zMUVNTHJyNzkrN05peEVNTGV2WHVUSkVtbgpSMGRIYzdNdFhicjBvWWNlR2hn
WStQS1h2enh2M3J5TEZ5K21DNmFiZStPTk4zTFRBd01ESVlTalI0K1cyblFJNFR2ZitjNnJyNzY2
CmJObXl3bDI3N0xMTDl1elpNenc4L09xcnIrN2F0ZXZ4eHg5UEh5OWNWVHFBNDhlUEowbnk3TFBQ
WG5QTk5mL3pQLzl6OHVUSkQzM28KUXkrODhFSnVoUi80d0FlMmJkdjJ0My83dDBtUzNIbm5uVmRk
ZGRXOTk5NWIvS0MvZFdDbGptZXBiVjErK2VWUFBQSEVtVE5uMG05OQpYTHQyYmY0SVQ1dzQ4ZTUz
di91NTU1NGJIaDcrcTcvNnF4REM2dFdyODdkZWVNeEw3WEw1WTE3cVRMMysrdXZwRzhYeUYwLzNL
Ti9iCjN2YTJkTUN6R2xqcWtVY2U2ZTd1L3V4blAxdjA4SlkvRjdsQkprblMyZG41d3gvK2NNdVdM
YVZPUVU2cFBTcHpQY3hxcDBJSWQ5MTEKMTdsejV3WUdCdjdnRC80Z1Z3eHpPTWk1blpvMmtzSlZG
WTR0dDJ6UnU3WG9TcElrK2RDSFB2VFVVMDlOVGs3KzRoZS95SDFSVnY0dwp5dCtKNWM5WDViOXRL
cm5xQ2tkU09QakN3MUwwTE9kdXVta1RaVTVONFRVUHRMQVpBaXU4MWJRSHAwMmZPM2Z1L2U5L2Yx
ZFgxL2J0CjIxOTk5ZFh5cThxM2J0MjYzR3ozM0hQUG9rV0xkdTNhZGZiczJiZS8vZTJmL3ZTblMy
MXV4azJIRVA3bFgvNWw4ZUxGUlVQbnhSZGYKM0wxN2QxZFgxOWF0VzcvM3ZlL2xIaTljMWJUZHYv
ZmVlOVBQSEgzbk85L0pYK0VERHp6UTNkMTkrdlRwSkVrZWZ2amhycTZ1d2NIQgpVa2MxZjJDbGRx
clV0cjc4NVM5ZmR0bGxOOTEwVS9vLy9ZODk5dGkwcFg3MnM1OXQzTGh4N2RxMVR6NzU1TFhYWHB1
L2Q3bE41Qi96CjhydGNhcnJNbVNxelJ6bTMzSEpMN2tkOWZYMjVUNGVWSDFocWZIeDgwYUpGcjcz
Mld0SERXLzVjNUkvbnd4LytjSDkvL3c5KzhJTVoKQnp6YmN6U3JvNTNPbG43QTdjb3JyL3pxVjcr
YW0za09Cem0zVTlOR1VtcFYrV01yUENEVE5sUzRraVJKVHA0OCtaNzN2S2U3dTN2Nwo5dTMvOW0v
L05tMVZ5VXgzWXVYbkszKzY4b3QyMnVtWU5wTEN3UmNlbHFKbnVlZ2hLbjlxQ3EvNUpFbDI3OTVk
OUpnQXpTN09sd0hDCnJQejg1ejgvZmZyMDdiZmZIa0tZbkp6Y3QyL2Y3dDI3Sy85Mm9oLzk2RWRm
K3RLWEhuMzAwVnFPc2E1aWZTMG5tVlhsTlE4MEhYL3MKbVFhNDQ0NDdEaDQ4bUQ1TGNlN2N1V2Vl
ZWVhT08rNm9jTm54OGZGLytJZC8rTXUvL011YWpyQ2VUcDQ4R1VKSVgvK2lWVlZ6elFQTgpTR0RS
QUYvNXlsZjI3Tm16YnQyNmhRc1g3dHk1OCtqUm8rbDNQTTdveGh0djNMQmh3eWMvK2NuYmJydXR4
bU9zbi9SUFJxWmZua1NyCm12TTFEelFwTDB3QUFFVG1HU3dBZ01nRUZnQkFaQUlMQUNBeWdjWE0w
ajlCQ0FCVVNHQXhnN0d4c2U5OTczc0hEeDVzOUVBQW9HbDAKTm5vQVpOclkyTmozdi8vOVgvLzYx
Ny8rOWE5RENCczNibXowaUFDZ0NYZ0dpNUp5ZFRWLy92d1F3alBQUE9ONUxBQ29oTUNpdUZ4ZApk
WFYxWFhYVlZjdVdMUXNhQ3dBcUk3QW9Jcit1MXE1ZHUyREJnbVhMbG1rc0FLaVF3R0s2d3JwS0g5
ZFlBRkFoZ2NWYmxLcXJsTVlDCmdFb0lMSDZyZkYybE5CWUF6RWhnOFJ1VjFGVktZd0ZBZVFLTEVH
WlRWeW1OQlFCbENDeG1YVmNwalFVQXBRaXNkamUzdWtwcExBQW8KU21DMXRXcnFLcVd4QUtDUXdH
cGYxZGRWU21NQndEUUNxMDNGcXF1VXhnS0FmQUtySGNXdHE1VEdBb0FjZ2RWMmFsRlhLWTBGQUNt
QgoxVjVxVjFjcGpRVUFRV0MxbFZyWFZVcGpBWURBYWhmMXFhdVV4Z0tnelFtc3RsRFB1a3BwTEFE
YW1jQnFmZld2cTVUR0FxQnRDYXdXCjE2aTZTbWtzQU5xVHdHcGxqYTJybE1ZQ29BMEpySmFWaGJw
S2FTd0EybzNBYWszWnFhdVV4Z0tnclFpc0ZwUzF1a3BwTEFEYWg4QnEKTmRtc3E1VEdBcUJOQ0t5
V2t1VzZTbWtzQU5xQndHb2QyYStybE1ZQ29PVUpyQmJSTEhXVjBsZ0F0RGFCMVFxYXE2NVNHZ3VB
RmlhdwptbDR6MWxWS1l3SFFxZ1JXYzJ2ZXVrcHBMQUJha3NCcVlzMWVWeW1OQlVEckVWak5xalhx
S3FXeEFHZ3hBcXNwdFZKZHBUUVdBSzFFCllEV2YxcXVybE1ZQ29HVUlyQ2JUcW5XVjBsZ0F0QWFC
MVV4YXU2NVNHZ3VBRmlDd21rWTcxRlZLWXdIUTdBUldjMmlmdWtwcExBQ2EKbXNCcUF1MVdWeW1O
QlVEekVsaFoxNTUxbGRKWUFEUXBnWlZwN1Z4WEtZMEZRRE1TV05tbHJsSWFDNENtSTdBeVNsM2ww
MWdBTkJlQgpsVVhxcXBER0FxQ0pDS3pNVVZlbGFDd0Ftb1hBeWhaMVZaN0dBcUFwQ0t3TVVWZVYw
RmdBWkovQXlncDFWVG1OQlVER2RUWjZBSVNnCnJtWXZEYXpCd2NGbm5ua21oTEJ4NDhZR0Q2aHFi
N3p4eG1PUFBkYm9VZERpUHZheGp6VjZDTkF1UElQVmVPcHFibHJzZWF5bFM1ZHUKM2JxMTBhTUFJ
QTdQWURXWXVxcEdLejJQdFdEQmdxdXZ2bnJod29WdnZQRkdvOGRDcXhrYkd6dDE2bFNqUndIdFJX
QTFrcnFxWG9zMQoxckpseTg2ZVBkdm9nUUJRTFM4Uk5veTZpcVUxWGl2czZPaG85QkFBaUVaZ05Z
YTZpcXMxR2l1RWtDUkpvNGNBUUFRQ3F3SFVWUzIwClRHTUIwQUlFVnIycHE5clJXQUJraE1DcUsz
VlZheG9MZ0N3UVdQV2pydXBEWXdIUWNBS3JUdFJWUFdrc0FCcExZTldEdXFvL2pRVkEKQXdtc21s
TlhqYUt4QUdnVWdWVmI2cXF4TkJZQURTR3dha2hkWllIR0FxRCtCRmF0cUt2czBGZ0ExSm5BcWds
MWxUVWFDNEI2RWxqeApxYXRzMGxnQTFJM0Fpa3hkWlpuR0FxQStCRlpNNmlyN05CWUFkU0N3b2xG
WHpVSmpBVkJyQWlzT2RkVmNOQllBTlNXd0lsQlh6VWhqCkFWQTdBcXRhNnFwNWFTd0Fha1JnVlVW
ZE5UdU5CVUF0Q0t5NVUxZXRRV01CRUozQW1pTjExVW8wRmdCeENheTVVRmV0UjJNQkVKSEEKbWpW
MTFhbzBGZ0N4Q0t6WlVWZXRUV01CRUlYQW1nVjExUTQwRmdEVkUxaVZVbGZ0UTJNQlVDV0JWUkYx
MVc0MEZnRFZFRmd6VTFmdApTV01CTUdjQ2F3YnFxcDFwTEFEbVJtQ1ZvNjdRV0FETWdjQXFTVjJS
MGxnQXpKYkFLazVka1U5akFUQXJBcXNJZFVVaGpRVkE1UVRXCmRPcUtValFXQUJVU1dHK2hyaWhQ
WXdGUUNZSDFXK3FLU21nc0FHWWtzSDVEWFZFNWpRVkFlUUlyQkhYRjdHa3NBTW9RV09xS09kSlkK
QUpUUzdvR2xycWlHeGdLZ3FMWU9MSFZGOWE2OTl0cHQyN1lGalFWQW5zNUdENkJoMUJYVlc3Qmd3
UTAzM0RBOFBIeisvUGxEaHc0OQo4OHd6SVlTTkd6YzJlbHdBTkZpYkJwYTZvbnFqbzZQbnpwMDdl
UERnME5EUXdvVUx1N3E2TGwyNnBMRUFDTzBaV09xSzZvMk9qcDQrCmZmcldXMjlkdDI1ZCtwOW56
NTQ5ZWZMa3hNU0V4Z0tnN2Q2RHBhNm8zclM2Q2lGMGQzZmZmdnZ0SzFldTdPenNETjZQQmREMjJp
dXcKMUJYVks2eXJWRTlQajhZQ0lOVkdnYVd1cUY2cHVrcHBMQUJTN1JKWTZvcnFsYStybE1ZQ0lM
UkpZS2tycWxkSlhhVnlqZFhkM1IwMApGa0JiYXYxUEVhb3JxbGRZVjYrOTlscHZiKy9rNU9URml4
ZTd1cm9XTDE3YzE5ZVhtNytucCtmM2Z1LzNYbnJwcGZIeDhWZGVlY1huCkNnSGFUWXNIbHJxaWVr
V2Z1enB4NHNUaHc0ZVRKRW1TWk42OGVlOTk3M3VuTGRYZDNUMCtQcjU5Ky9hZW5wNjllL2YrNkVj
LzZ1N3UKbnZIWkx3QmFReXNIbHJxaWVtbGQ5ZmYzSHp0MkxEK1Bicjc1NWhEQ29VT0hRZ2hUVTFN
akl5T0Z5MTV4eFJVOVBUM1hYWGZka2lWTAplbnA2cnJqaWlyb05HNERHYXRuM1lLa3JxcGZXMVk0
ZE8yNjU1WmJSMGRIbm5uc3UvNmMzMzN6enRkZGVHMExvNk9oSTMyNlY3OENCCkE2Ky8vdnJnNE9E
azVPVEtsU3ZYcmwzYjFkVlZ2NkVEMEZDdEdWanFpdXJsNm1yVnFsVWhoSnR1dXFsVVkzVjJkdmIw
OU9RL2Z1REEKZ1gzNzlyM3RiVy9yN095Y1AzOStYMTlmUjBkSFhVY1BRRU8xWUdDcEs2bzNyYTVT
cFJwci9mcjFRME5EdVVmU3V0cTFhMWR2YjYrNgpBbWhQclJaWTZvcnFGYTJyVktuR1dyTm1UVHF0
cmdBSUxSWlk2b3JxbGFtcjFQYnQyeTljdURDdHNWTHFDb0JVNndTV3VxSjZNOVpWCmtpUmpZMk9i
TjI4ZUhoNmUxbGpxQ29DY0Zna3NkVVgxS3F5cnljbkpFTUtXTFZ2eUcwdGRBWkN2RlFKTFhWRzlX
ZFZWS3RkWTZncUEKYVpvK3NOUVYxWnREWGFXMmJObHk2dFFwZFFYQU5NMGRXT3FLNnMyNXJrSUl4
NDhmbjVpWVVGY0FUTlBFZ2FXdXFGNlZkWFhzMkRGMQpCVUNoWmcwc2RVWDFpdGJWK2ZQbng4Zkgw
MmwxQmNEY05HVmdxU3VxVitxNXF4TW5UanovL1BQajQrUHFDb0E1YTc3QVVsZFVyMmhkClhieDRN
WVN3Y2VQRzVjdVhQLy84ODhQRHcrb0tnTGxwc3NCU1YxU3YxSE5YQnc0YytOblBmaFpDMkxScDA5
S2xTL2Z1M1RzeE1URnQKV1hVRlFDV2FLYkRVRmRVcldsZGpZMk1oaEczYnRvMk5qYjM4OHN0alky
UFhYSFBOeXBVcnA2YW04cGRONjJybnpwM3FDb0R5bWlhdwoxQlhWSzFwWGs1T1R6ei8vL0pFalIw
SUlPM2JzR0JrWjJiOS9md2poeWl1djdPcnF5czJXcTZ1K3ZqNTFCVUI1elJGWTZvcnFsWHBsCmNQ
NzgrZHUzYno5eTVNaVJJMGZHeHNadXVPR0dlZlBtNVQ1SW1GSlhBTXhLRXdTV3VxSjY1Yi92cXJl
M2Q5ZXVYYi82MWErT0hqMGEKUXJqdXV1dnlMek4xQmNCc1pUMncxQlhWcStUYlJEczdPN2R1M1Rv
NE9EanRrNFBxQ29BNTZHejBBTXBSVjFTdjh1OXFYN1JvMFR2ZQo4WTc4ZmxKWEFNeE5kcC9CVWxk
VWI3Wi9DVWRkQVJCRlJnTkxYVkc5dEs2NnVycDZlM3VMempEamQ3V3JLd0RtSm91QnBhNm9YbHBY
ClYxOTlkZTVyMmFmTm9LNEFxSjNNQlphNm9ucTV1bHF5Wk1tS0ZTdjYrL3VuTlphNkFxQ21zaFZZ
Nm9ycTVkZFYrc2kweGxKWEFOUmEKaGdKTFhWRzl3cnBLNVJyci9Qbno2Z3FBV3N0S1lLa3JxbGVx
cmxMNWpWWDRVM1VGUUVTWkNDeDFSZlhLMTFWcXhZb1ZsMTkrK2Nzdgp2M3p4NHNYOHg5VVZBSEUx
UHJEVUZkV3JwSzVTaFkybHJnQ0lyc0dCcGE2b1h1VjFsY3B2TEhVRlFDMDA4ay9scUN1cU45dTZT
cTFZCnNTS0U4TUlMTDNSMmRxb3JBS0pyMkROWTZvcnF6YTJ1VWgwZEhlb0tnQnBwVEdDcEs2cFhU
VjJkUG4xNmNIQlFYUUZRSTQxNWlmRHMKMmJQOS9mMTlmWDFYWEhIRjRPQmdROFpBVTFOWEFHUlpZ
d0pyNWNxVmwxOStlZnExMnQzZDNRTURBdzBaQmsxS1hRR1FjUTE3RDlhQwpCUXQ2ZTN0RENNdVdM
VnU3ZG0yamhrSFRVVmNBWkY4anY2WkJZekZiNmdxQXB0RGc3OEhTV0ZST1hRSFFMQnIvVGU0YWkw
cW9Ld0NhClNPTURLMmdzWnFLdUFHZ3VtUWlzb0xFb1RWMEIwSFN5RWxoQlkxR011Z0tnR1dVb3NJ
TEc0cTNVRlFCTktsdUJGVFFXLzA5ZEFkQzgKTWhkWVFXT2hyZ0JvY2xrTXJLQ3gycHU2QXFEWlpU
U3dnc1pxVitvS2dCYVEzY0FLR3F2OXFDc0FXa09tQXl0b3JIYWlyZ0JvR1ZrUApyS0N4Mm9PNkFx
Q1ZORUZnQlkzVjZ0UVZBQzJtT1FJcmFLeldwYTRBYUQxTkUxaEJZN1VpZFFWQVMycW13QW9hcTdX
b0t3QmFWWk1GClZ0QllyVUpkQWREQ21pK3dnc1pxZnVvS2dOYldsSUVWTkZZelUxZFFaMjRUcUw5
bURheWdzWnFUdWdLZ0hUUnhZQVdOMVd6VUZRQnQKb3JrREsyaXM1cUd1QUdnZlRSOVlRV00xQTNV
RlFGdHBoY0FLR2l2YjFCVUE3YVpGQWl0b3JLeFNWd0Mwb2RZSnJLQ3hza2RkQWRDZQpXaXF3Z3Ni
S0VuVUZRTnRxdGNBS0dpc2IxQlVBN2F3RkF5dG9yRVpUVndDMHVkWU1yS0N4R2tkZEFVRExCbGJR
V0kyZ3JnQWd0SFpnCkJZMVZYK29LQUZJdEhsaEJZOVdMdWdLQW5OWVByS0N4YWs5ZEFVQyt0Z2lz
b0xGcVNWMEJ3RFR0RWxoQlk5V0d1Z0tBUW0wVVdFRmoKeGFhdUFLQ285Z3Fzb0xIaVVWY0FVRXJi
QlZiUVdER29Ld0Fvb3gwREsyaXM2cWdyQUNpdnM5RURhSmkwc1lhSGg1Y3RXeFpDR0JnWQphUFNJ
bW9PNnFxbmUzdDZ0VzdlZVAzOSsvLzc5NTgrZmIvUndhRzZkbloxcjFxelp0R25UcVZPbmpoMDcx
dWpoUUh0cDM4QUtHbXYyCjFGV3RkWFoyVGt4TURBd003Tnk1YzJKaW9zeWNaODZjMmI5L3YrZGZN
MmhrWk9UOCtmTmJ0bXlwM1NhR2hvYjI3OS9mMzkrL1k4ZU8KTXJOMWRIU01qbzRlT25USWRRTDEx
OWFCRlRUV2JLaXJPamgvL3Z6ZzRPQ21UWnY2Ky90bm5IbisvUG5wSzkxa3plam9hUG9ycGFhNgp1
cnBXcmx4WmZwNUxseTZGRUY1NTVaVmFEd2FZcGszZmc1WFArN0Vxb2E3cUl6M09sZFFWVktLcnE2
dTd1L3QvLy9kL0d6MFFhRHNDCkt3U05OUk4xVlRkVFUxTkZYeGw4NmFXWDdycnJydnFQaDJaUjVn
cEprcVQ4eTgxQUxRaXMzOUJZcGFpcmhudnBwWmZ1dlBQT2wxNTYKcWRFRElhWno1ODd0MzcrLzZN
UWNuRDE3OXY3NzcxZmhrQjBDNjdjMFZpRjExWERxcWxXTmo0OFBEUTBWblpnYmpRV1pJckRlUW1Q
bApVMWNOcDY2WUZZMEYyZEh1bnlJczVIT0ZLWFdWQlZkZmZmVWYvL0VmQzZ5bU16VTFOVG82V242
ZVM1Y3VwYk1WVHN5NC92U3pnVVdsCjE4eXNSd3pFSnJDSzBGanFLaU9XTGwzNkozL3lKeUVFejBr
MG5jbkp5VXBtbUp5Y0xKeVk4OHB2dlBIR1BYdjIzSGpqamJNZUxoQ2IKd0NxdW5SdExYV1ZLcnJF
ZWVlU1JSbytGbVByNitqWnUzRmgwWW03VUZXU0t3Q3FwUFJ0TFhXVlEybGkzM1haYm93ZENUSjJk
bmVrNwpQZ3NuNWtCZFFkWjRrM3M1N2ZhZWQzWFZjS1graVYyNmRLbC9PeW1qekJWU1RiY0JjeWF3
WnRBK2phV3VzbURKa2lWcjE2Nzk2VTkvCjJ1aUIwQ0xPbkRsejhPREJtdjVoUktBb0x4SE9yQjFl
SzFSWEdkSFoyYmxxMWFvUXdvOS8vT1BoNGVFeWMxNjZkR2xrWk9UUW9VUDEKR2hxVm1weWNIQjhm
Mzd0M2IrMDJNVDQrSGtJNGMrYk1mLzNYZjVXWnJiT3pjL255NVpzMmJhcmtrNGxBWEFLcklxM2RX
T29xT3lZbgpKOGZHeHZyNitsYXZYdTNQbTFDbGVmUG1kWGQzZDNaMlhyeDRzZEZqZ2JZanNDclZx
bzJscmpJbDkyZmo1bkE2b0tpSmlZbSt2cjZ0Clc3ZSsvUExMalI0THRKR09KRWthUFlabU1qNCtu
cjV3TXpnNDJBS05wYTRBb0JhOHlYMTJXdWs5NytvS0FHcEVZTTFhYXpTV3VnS0EKMmhGWWM5SHNq
YVd1QUtDbUJOWWNOVzlqcVNzQXFEV0JOWGZOMkZqcUNnRHFRR0JWcGJrYVMxMEJRSDBJckdvMVMy
T3BLd0NvRzRFVgpRZlliUzEwQlFEMzVvdEZvTXZzZHBOWFgxYTVkdTNwN2U5VVZBRlRJTTFqUlpQ
TjVMSFVGQVBVbnNHTEtXbU9wS3dCb0NJRVZXWFlhClMxMEJRS01JclBpeTBGanFDZ0FhU0dEVlJH
TWJTMTBCUUdNSnJGcHBWR09wS3dCb09JRlZRL1Z2TEhVRkFGa2dzR3Fybm8ybHJnQWcKSXdSV3pk
V25zZFFWQUdTSHdLcUhXamVXdWdLQVRCRllkVks3eGxKWEFKQTFBcXQrYXRGWTZnb0FNa2hnMVZY
Y3hsSlhBSkJOQXF2ZQpZalZXV2xmcjE2OVhWd0NRTlFLckFhcHZyTFN1MXE1ZGUvcjA2YW1wcVZr
dHE2NEFvTllFVm1OVTAxaHBYZDE2NjYyMzNYYmJ1blhyCkRoOCtYSGxqcVNzQXFBT0IxVEJ6YTZ4
Y1hhMWJ0eTZFY05OTk4xWGVXT29LQU9wRFlEWFNiQnRyV2wybEttd3NkUVVBZFNPd0dxenkKeGlw
YVY2a1pHMHRkQVVBOUNhekdxNlN4eXRSVnFreGpxU3NBcURPQmxRbmxHNnV3cnI3MHBTOTk3V3Rm
bXpaYjBjWlNWd0JRZndJcgpLMG8xMXVUazVPRGc0TFRucmxhdVhQbkpUMzV5eHNaU1Z3RFFFSjJO
SGdDL2xUYlc4UER3c21YTFFnZ0RBd1A5L2YzZDNkMXZmL3ZiClY2MWFsVDluK3ZWWG4vakVKMElJ
SC8vNHgvTi9kTk5OTjRVUURoOCt2R1RKa2pmZmZGTmRBVUQ5ZVFZclcvS2Z4OXF3WWNNTk45eHcK
N3R5NXdyZFZYYmh3SVozNHhDYytVZlI1ck43ZVhuVUZBSTBpc0RJbjExaTl2YjBqSXlNclZxem82
K3ViTnMrYU5Xdm16NStmVHYvRgpYL3pGdE1ZNmNPREEwTkNRdWdLQVJ2RVNZUmJsWGlzY0d4c2JH
Umw1K3VtbmI3MzExcVZMbCtabTZPdnJlL1RSUjQ4ZVBkcloyYmx1CjNicFRwMDdsZm5UZ3dJRjkr
L2FwS3dCb29JNGtTUm85Qm9vYkh4OGZIaDRPSVJ3OWV2VElrU08zMzM1N2ZtTVZwYTRBSUF1OFJK
aGQKdWRjSzE2OWZmODAxMXp6OTlOTm56NTR0TTcrNkFvQ01FRmlaVm5sanFTc0F5QTZCbFhXVk5K
YTZBb0JNRVZoTm9IeGpxU3NBeUJwdgpjbThhK2U5NVAzNzgrTy8rN3UrKytlYWJJWVFYWDN4eHg0
NGQ2Z29Bc2tOZ05aTmNZNTA2ZGFxdnIyOXdjTENucDZlN3UzdlJva1hxCkNnQ3lRMkExbVZ4akxW
eTRzTHU3ZTNoNGVISnlVbDBCUUtZSXJPYVRhNnlPam80a1NkUVZBR1NOd0dwS3VjWlNWd0NRUVFL
cldZMlAKajQrT2p2YjI5cW9yQU1nYWdRVUFFSm52d1FJQUxUNGdrUUFBQmR0SlJFRlVpRXhnQVFC
RUpyQUFBQ0lUV0FBQWtRa3NBSURJQkJZQQpRR1FDQ3dBZ01vRUZBQkNad0FJQWlFeGdBUUJFSnJB
QUFDSVRXQUFBa1Frc0FJRElCQllBUUdRQ0N3QWdNb0VGQUJDWndBSUFpRXhnCkFRQkVKckFBQUNJ
VFdBQUFrUWtzQUlESUJCWUFRR1FDQ3dBZ01vRUZBQkNad0FJQWlFeGdBUUJFSnJBQUFDSVRXQUFB
a1Frc0FJREkKQkJZQVFHUUNDd0FnTW9FRkFCQ1p3QUlBaUV4Z0FRQkVKckFBQUNJVFdBQUFrUWtz
QUlESUJCWUFRR1FDQ3dBZ01vRUZBQkNad0FJQQppRXhnQVFCRUpyQUFBQ0lUV0FBQWtRa3NBSURJ
QkJZQVFHUUNDd0FnTW9FRkFCQ1p3QUlBaUV4Z0FRQkVKckFBQUNJVFdBQUFrUWtzCkFJRElCQllB
UUdRQ0N3QWdNb0VGQUJDWndBSUFpRXhnQVFCRUpyQUFBQ0lUV0FBQWtRa3NBSURJQkJZQVFHUUND
d0FnTW9FRkFCQ1oKd0FJQWlFeGdBUUJFSnJBQUFDSVRXQUFBa1Frc0FJRElCQllBUUdRQ0N3QWdN
b0VGQUJDWndBSUFpRXhnQVFCRUpyQUFBQ0lUV0FBQQprUWtzQUlESUJCWUFRR1FDQ3dBZ01vRUZB
QkNad0FJQWlFeGdBUUJFSnJBQUFDSVRXQUFBa1Frc0FJRElCQllBUUdRQ0N3QWdNb0VGCkFCQ1p3
QUlBaUV4Z0FRQkVKckFBQUNJVFdBQUFrUWtzQUlESUJCWUFRR1FDQ3dBZ01vRUZBQkNad0FJQWlF
eGdBUUJFSnJBQUFDSVQKV0FBQWtRa3NBSURJQkJZQVFHUUNDd0FnTW9FRkFCQ1p3QUlBaUV4Z0FR
QkVKckFBQUNJVFdBQUFrUWtzQUlESUJCWUFRR1FDQ3dBZwpNb0VGQUJDWndBSUFpRXhnQVFCRUpy
QUFBQ0lUV0FBQWtRa3NBSURJQkJZQVFHUUNDd0FnTW9FRkFCQ1p3QUlBaUV4Z0FRQkVKckFBCkFD
SVRXQUFBa1Frc0FJRElCQllBUUdRQ0N3QWdNb0VGQUJDWndBSUFpRXhnQVFCRUpyQUFBQ0lUV0FB
QWtRa3NBSURJQkJZQVFHUUMKQ3dBZ01vRUZBQkNad0FJQWlFeGdBUUJFSnJBQUFDSVRXQUFBa1Fr
c0FJRElCQllBUUdRQ0N3QWdNb0VGQUJDWndBSUFpRXhnQVFCRQpKckFBQUNJVFdBQUFrUWtzQUlE
SUJCWUFRR1FDQ3dBZ01vRUZBQkNad0FJQWlFeGdBUUJFSnJBQUFDSVRXQUFBa1Frc0FJRElCQllB
ClFHUUNDd0FnTW9FRkFCQ1p3QUlBaUV4Z0FRQkVKckFBQUNJVFdBQUFrUWtzQUlESUJCWUFRR1FD
Q3dBZ01vRUZBQkNad0FJQWlFeGcKQVFCRUpyQUFBQ0lUV0FBQWtRa3NBSURJQkJZQVFHUUNDd0Fn
TW9FRkFCQ1p3QUlBaUV4Z0FRQkVKckFBQUNJVFdBQUFrUWtzQUlESQpCQllBUUdRQ0N3QWdNb0VG
QUJDWndBSUFpRXhnQVFCRUpyQUFBQ0lUV0FBQWtRa3NBSURJQkJZQVFHUUNDd0FnTW9FRkFCQ1p3
QUlBCmlFeGdBUUJFSnJBQUFDSVRXQUFBa1Frc0FJRElCQllBUUdRQ0N3QWdNb0VGQUJDWndBSUFp
RXhnQVFCRUpyQUFBQ0lUV0FBQWtRa3MKQUlESUJCWUFRR1FDQ3dBZ01vRUZBQkNad0FJQWlFeGdB
UUJFSnJBQUFDSVRXQUFBa1Frc0FJRElCQllBUUdRQ0N3QWdNb0VGQUJDWgp3QUlBaUV4Z0FRQkVK
ckFBQUNJVFdBQUFrUWtzQUlESUJCWUFRR1FDQ3dBZ01vRUZBQkNad0FJQWlFeGdBUUJFSnJBQUFD
SVRXQUFBCmtRa3NBSURJQkJZQVFHUUNDd0FnTW9FRkFCQ1p3QUlBaUV4Z0FRQkVKckFBQUNJVFdB
QUFrUWtzQUlESUJCWUFRR1FDQ3dBZ01vRUYKQUJDWndBSUFpRXhnQVFCRUpyQUFBQ0lUV0FBQWtR
a3NBSURJQkJZQVFHUUNDd0FnTW9FRkFCQ1p3QUlBaUV4Z0FRQkVKckFBQUNJVApXQUFBa1Frc0FJ
RElCQllBUUdRQ0N3QWdNb0VGQUJDWndBSUFpRXhnQVFCRUpyQUFBQ0lUV0FBQWtRa3NBSURJQkJZ
QVFHUUNDd0FnCk1vRUZBQkNad0FJQWlFeGdBUUJFSnJBQUFDSVRXQUFBa1Frc0FJRElCQllBUUdR
Q0N3QWdNb0VGQUJDWndBSUFpRXhnQVFCRUpyQUEKQUNJVFdBQUFrUWtzQUlESUJCWUFRR1FDQ3dB
Z01vRUZBQkNad0FJQWlFeGdBUUJFSnJBQUFDSVRXQUFBa1Frc0FJRElCQllBUUdRQwpDd0FnTW9F
RkFCQ1p3QUlBaUV4Z0FRQkVKckFBQUNJVFdBQUFrUWtzQUlESUJCWUFRR1FDQ3dBZ01vRUZBQkNa
d0FJQWlFeGdBUUJFCkpyQUFBQ0lUV0FBQWtRa3NBSURJQkJZQVFHUUNDd0FnTW9FRkFCQ1p3QUlB
aUV4Z0FRQkVKckFBQUNMN1A3dW9VeStrOG0rZkFBQUEKQUVsRlRrU3VRbUNDCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178312</attachid>
            <date>2012-12-07 17:31:05 -0800</date>
            <delta_ts>2012-12-10 11:16:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101779-20121207172829.patch</filename>
            <type>text/plain</type>
            <size>81981</size>
            <attacher name="Levi Weintraub">leviw</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNjk5MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDcwIEBACisyMDEyLTEyLTA0ICBMZXZpIFdl
aW50cmF1YiAgPGxldml3QGNocm9taXVtLm9yZz4KKworICAgICAgICBBY2N1bXVsYXRlIHVzaW5n
IGEgTGF5b3V0U2l6ZSBpbiBtYXBMb2NhbFRvQ29udGFpbmVyIHdoZW4gcG9zc2libGUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTc3OQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1hcExvY2FsVG9Db250
YWluZXIgcHJldmlvdXNseSBhY2N1bXVsYXRlZCBvZmZzZXRzIGluIFRyYW5zZm9ybVN0YXRlLCB3
aGljaCBpcyBmdW5jdGlvbmFsbHkgaW5jb3JyZWN0IHdoZW4gdGhlcmUKKyAgICAgICAgYXJlIG11
bHRpcGxlIGxldmVscyBvZiBjb250YWluZXJzIHdpdGggc3ViLXBpeGVsIG9mZnNldHMgaW4gdGhl
IHJlbmRlcmVyIGNoYWluLCBhcyB3ZSB3b3VsZCBwaXhlbCBzbmFwIGZyb20gdGhlCisgICAgICAg
IGJvdHRvbSB0b3dhcmRzIHRoZSByb290IGluc3RlYWQgb2YgdmljZS12ZXJzYSwgYXMgd2UgZG8g
d2hlbiB3ZSBwYWludC4gVGhpcyBmdW5jdGlvbmFsbHkgaW5jb3JyZWN0IGJlaGF2aW9yIGxlYWRz
CisgICAgICAgIHRvIHJlcGFpbnQgYXJ0aWZhY3RzLCBlc3BlY2lhbGx5IGluIHdpZGdldHMuIFRo
aXMgY2hhbmdlIHdpbGwgYWxzbyBpbXByb3ZlIHBlcmZvcm1hbmNlIHNpbmNlIHdlIG9ubHkgaGF2
ZSB0byBhcHBseQorICAgICAgICB0aGUgdHJhbnNmb3JtIHRvIG4rMSBvZmZzZXRzIHdoZXJlIG4g
aXMgdGhlIG51bWJlciBvZiB0cmFuc2Zvcm1zIGluIHRoZSBjaGFpbiwgd2hlcmVhcyBjdXJyZW50
bHkgd2UgaGF2ZSB0byBhcHBseQorICAgICAgICBpdCBPKG0pIHdoZXJlIG0gaXMgdGhlIG51bWJl
ciBvZiByZW5kZXJlcnMgaW4gdGhlIGNoYWluLCB3aXRoIHNvbWUgZWxlbWVudHMgYWNjdW11bGF0
aW5nIG11bHRpcGxlIG9mZnNldHMuIEFsc28KKyAgICAgICAgdXBkYXRpbmcgUmVuZGVyR2VvbWV0
cnlNYXAgdG8gYWxzbyByZXNwZWN0IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zICh3aGljaCBJIGlu
dGVuZCB0byByZW5hbWUgYXMgcGVyIHNtZnIncyByZXF1ZXN0KS4KKworICAgICAgICBUZXN0OiBm
YXN0L3N1Yi1waXhlbC90cmFuc2Zvcm1lZC1pZnJhbWUtY29weS1vbi1zY3JvbGwuaHRtbCBhZGRl
ZC4KKyAgICAgICAgICAgICAgZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWlmcmFtZS1jb3B5LW9u
LXNjcm9sbC5odG1sIG1vZGlmaWVkIHRvIGNhdGNoIHRoZSBmYWlsdXJlIGNhc2UuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9MYXlvdXRTaXplLmg6CisgICAgICAgIChMYXlvdXRTaXpl
KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dFNpemU6OmV4cGFuZCk6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6Om1hcExv
Y2FsVG9Db250YWluZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpwdXNoTWFwcGlu
Z1RvQ29udGFpbmVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94Lmg6CisgICAgICAg
IChSZW5kZXJCb3gpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJHZW9tZXRyeU1hcC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHZW9tZXRyeU1hcDo6bWFwVG9Db250YWluZXIpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVySW5saW5lOjptYXBMb2NhbFRvQ29udGFpbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlcklubGluZTo6cHVzaE1hcHBpbmdUb0NvbnRhaW5lcik6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlcklubGluZS5oOgorICAgICAgICAoUmVuZGVySW5saW5lKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6
bWFwTG9jYWxUb0NvbnRhaW5lcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5o
OgorICAgICAgICAoUmVuZGVyT2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVj
dDo6YWRqdXN0T2Zmc2V0Rm9yU25hcHBpbmcpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJW
aWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZXc6Om1hcExvY2FsVG9Db250YWlu
ZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJWaWV3Lmg6CisgICAgICAgIChSZW5kZXJW
aWV3KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ZvcmVpZ25PYmplY3QuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHRm9yZWlnbk9iamVjdDo6bWFwTG9jYWxUb0Nv
bnRhaW5lcik6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWduT2JqZWN0
Lmg6CisgICAgICAgIChSZW5kZXJTVkdGb3JlaWduT2JqZWN0KToKKyAgICAgICAgKiByZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR0lubGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdJ
bmxpbmU6Om1hcExvY2FsVG9Db250YWluZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHSW5saW5lLmg6CisgICAgICAgIChSZW5kZXJTVkdJbmxpbmUpOgorICAgICAgICAqIHJl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyU1ZHTW9kZWxPYmplY3Q6Om1hcExvY2FsVG9Db250YWluZXIpOgorICAgICAgICAqIHJl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuaDoKKyAgICAgICAgKFJlbmRlclNWR01v
ZGVsT2JqZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHUm9vdDo6bWFwTG9jYWxUb0NvbnRhaW5lcik6Cisg
ICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290Lmg6CisgICAgICAgIChSZW5kZXJT
VkdSb290KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHVGV4dDo6bWFwTG9jYWxUb0NvbnRhaW5lcik6CisgICAg
ICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0Lmg6CisgICAgICAgIChSZW5kZXJTVkdU
ZXh0KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHUmVuZGVyU3VwcG9ydDo6bWFwTG9jYWxUb0NvbnRhaW5lcik6Cisg
ICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0Lmg6CisgICAgICAgIChTVkdS
ZW5kZXJTdXBwb3J0KToKKwogMjAxMi0xMi0wNyAgUmlrIENhYmFuaWVyICA8Y2FiYW5pZXJAYWRv
YmUuY29tPgogCiAgICAgICAgIEV4dGVuZCBwbGF0Zm9ybSBsYXllciBzbyBpdCBjYW4gcGFzcyBi
bGVuZCBtb2RlcyB0byB0aGUgY29tcG9zaXRpbmcgY2FsbHMKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0xheW91dFNpemUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9MYXlvdXRTaXplLmgJKHJldmlzaW9uIDEzNjk5MykKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0xheW91dFNpemUuaAkod29ya2luZyBj
b3B5KQpAQCAtNzEsNyArNzEsMTMgQEAgcHVibGljOgogICAgICAgICBtX3dpZHRoICs9IHdpZHRo
OwogICAgICAgICBtX2hlaWdodCArPSBoZWlnaHQ7CiAgICAgfQotICAgIAorCisgICAgdm9pZCBl
eHBhbmQoY29uc3QgTGF5b3V0U2l6ZSYgcykKKyAgICB7CisgICAgICAgIG1fd2lkdGggKz0gcy5t
X3dpZHRoOworICAgICAgICBtX2hlaWdodCArPSBzLm1faGVpZ2h0OworICAgIH0KKwogICAgIHZv
aWQgc2NhbGUoZmxvYXQgc2NhbGUpCiAgICAgewogICAgICAgICBtX3dpZHRoICo9IHNjYWxlOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAJKHJldmlzaW9uIDEzNjk5
MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMzgwLDcgKzEzODAsNyBAQCBMYXlvdXRVbml0IFJlbmRlckJveDo6cGVycGVuZGlj
dWxhckNvbnRhCiAgICAgcmV0dXJuIGNiLT5hZGp1c3RDb250ZW50Qm94TG9naWNhbEhlaWdodEZv
ckJveFNpemluZyhsb2dpY2FsSGVpZ2h0TGVuZ3RoLnZhbHVlKCkpOwogfQogCi12b2lkIFJlbmRl
ckJveDo6bWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBy
ZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIE1hcENvb3Jk
aW5hdGVzRmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQpIGNvbnN0Cit2b2lkIFJlbmRlckJveDo6
bWFwTG9jYWxUb0NvbnRhaW5lckludGVybmFsKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3Qq
IHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTGF5b3V0
U2l6ZSYgYWNjdW11bGF0ZWRPZmZzZXQsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwgYm9vbCog
d2FzRml4ZWQpIGNvbnN0CiB7CiAgICAgaWYgKHJlcGFpbnRDb250YWluZXIgPT0gdGhpcykKICAg
ICAgICAgcmV0dXJuOwpAQCAtMTM4OCwxMCArMTM4OCwxMSBAQCB2b2lkIFJlbmRlckJveDo6bWFw
TG9jYWxUb0NvbnRhaW5lcihjb25zCiAgICAgaWYgKFJlbmRlclZpZXcqIHYgPSB2aWV3KCkpIHsK
ICAgICAgICAgaWYgKHYtPmxheW91dFN0YXRlRW5hYmxlZCgpICYmICFyZXBhaW50Q29udGFpbmVy
KSB7CiAgICAgICAgICAgICBMYXlvdXRTdGF0ZSogbGF5b3V0U3RhdGUgPSB2LT5sYXlvdXRTdGF0
ZSgpOwotICAgICAgICAgICAgTGF5b3V0U2l6ZSBvZmZzZXQgPSBsYXlvdXRTdGF0ZS0+bV9wYWlu
dE9mZnNldCArIGxvY2F0aW9uT2Zmc2V0KCk7CisgICAgICAgICAgICBMYXlvdXRTaXplIG9mZnNl
dCA9IGxheW91dFN0YXRlLT5tX3BhaW50T2Zmc2V0ICsgbG9jYXRpb25PZmZzZXQoKSArIGFjY3Vt
dWxhdGVkT2Zmc2V0OworICAgICAgICAgICAgYWNjdW11bGF0ZWRPZmZzZXQgPSBMYXlvdXRTaXpl
KCk7CiAgICAgICAgICAgICBpZiAoc3R5bGUoKS0+aGFzSW5GbG93UG9zaXRpb24oKSAmJiBsYXll
cigpKQogICAgICAgICAgICAgICAgIG9mZnNldCArPSBsYXllcigpLT5vZmZzZXRGb3JJbkZsb3dQ
b3NpdGlvbigpOwotICAgICAgICAgICAgdHJhbnNmb3JtU3RhdGUubW92ZShvZmZzZXQpOworICAg
ICAgICAgICAgdHJhbnNmb3JtU3RhdGUubW92ZShhZGp1c3RPZmZzZXRGb3JTbmFwcGluZyhtb2Rl
LCBvZmZzZXQpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KQEAgLTE0
MTMsMzYgKzE0MTQsNDIgQEAgdm9pZCBSZW5kZXJCb3g6Om1hcExvY2FsVG9Db250YWluZXIoY29u
cwogICAgIGlmICh3YXNGaXhlZCkKICAgICAgICAgKndhc0ZpeGVkID0gbW9kZSAmIElzRml4ZWQ7
CiAgICAgCi0gICAgTGF5b3V0U2l6ZSBjb250YWluZXJPZmZzZXQgPSBvZmZzZXRGcm9tQ29udGFp
bmVyKG8sIHJvdW5kZWRMYXlvdXRQb2ludCh0cmFuc2Zvcm1TdGF0ZS5tYXBwZWRQb2ludCgpKSk7
Ci0gICAgaWYgKG1vZGUgJiBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcykKLSAgICAgICAgY29udGFp
bmVyT2Zmc2V0ID0gcm91bmRlZEludFNpemUoY29udGFpbmVyT2Zmc2V0KTsKLSAgICAKLSAgICBi
b29sIHByZXNlcnZlM0QgPSBtb2RlICYgVXNlVHJhbnNmb3JtcyAmJiAoby0+c3R5bGUoKS0+cHJl
c2VydmVzM0QoKSB8fCBzdHlsZSgpLT5wcmVzZXJ2ZXMzRCgpKTsKKyAgICBMYXlvdXRTaXplIGNv
bnRhaW5lck9mZnNldCA9IG9mZnNldEZyb21Db250YWluZXIobywgcm91bmRlZExheW91dFBvaW50
KHRyYW5zZm9ybVN0YXRlLm1hcHBlZFBvaW50KCkgKyBhY2N1bXVsYXRlZE9mZnNldCkpOworICAg
IGJvb2wgcHJlc2VydmUzRCA9IG1vZGUgJiBVc2VUcmFuc2Zvcm1zICYmICgobyAmJiBvLT5zdHls
ZSgpLT5wcmVzZXJ2ZXMzRCgpKSB8fCBzdHlsZSgpLT5wcmVzZXJ2ZXMzRCgpKTsKICAgICBpZiAo
bW9kZSAmIFVzZVRyYW5zZm9ybXMgJiYgc2hvdWxkVXNlVHJhbnNmb3JtRnJvbUNvbnRhaW5lcihv
KSkgeworICAgICAgICBhcHBseUFjY3VtdWxhdGVkT2Zmc2V0KHRyYW5zZm9ybVN0YXRlLCBhY2N1
bXVsYXRlZE9mZnNldCwgbW9kZSk7CiAgICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHQ7CiAg
ICAgICAgIGdldFRyYW5zZm9ybUZyb21Db250YWluZXIobywgY29udGFpbmVyT2Zmc2V0LCB0KTsK
ICAgICAgICAgdHJhbnNmb3JtU3RhdGUuYXBwbHlUcmFuc2Zvcm0odCwgcHJlc2VydmUzRCA/IFRy
YW5zZm9ybVN0YXRlOjpBY2N1bXVsYXRlVHJhbnNmb3JtIDogVHJhbnNmb3JtU3RhdGU6OkZsYXR0
ZW5UcmFuc2Zvcm0pOworICAgIH0gZWxzZSBpZiAocHJlc2VydmUzRCkgeworICAgICAgICBhcHBs
eUFjY3VtdWxhdGVkT2Zmc2V0KHRyYW5zZm9ybVN0YXRlLCBhY2N1bXVsYXRlZE9mZnNldCwgbW9k
ZSk7CisgICAgICAgIExheW91dFNpemUgYWRqdXN0ZWRDb250YWluZXJPZmZzZXQgPSBhZGp1c3RP
ZmZzZXRGb3JTbmFwcGluZyhtb2RlLCBjb250YWluZXJPZmZzZXQpOworICAgICAgICB0cmFuc2Zv
cm1TdGF0ZS5tb3ZlKGFkanVzdGVkQ29udGFpbmVyT2Zmc2V0LndpZHRoKCksIGFkanVzdGVkQ29u
dGFpbmVyT2Zmc2V0LmhlaWdodCgpLCBUcmFuc2Zvcm1TdGF0ZTo6QWNjdW11bGF0ZVRyYW5zZm9y
bSk7CiAgICAgfSBlbHNlCi0gICAgICAgIHRyYW5zZm9ybVN0YXRlLm1vdmUoY29udGFpbmVyT2Zm
c2V0LndpZHRoKCksIGNvbnRhaW5lck9mZnNldC5oZWlnaHQoKSwgcHJlc2VydmUzRCA/IFRyYW5z
Zm9ybVN0YXRlOjpBY2N1bXVsYXRlVHJhbnNmb3JtIDogVHJhbnNmb3JtU3RhdGU6OkZsYXR0ZW5U
cmFuc2Zvcm0pOworICAgICAgICBhY2N1bXVsYXRlZE9mZnNldC5leHBhbmQoY29udGFpbmVyT2Zm
c2V0KTsKIAogICAgIGlmIChjb250YWluZXJTa2lwcGVkKSB7CiAgICAgICAgIC8vIFRoZXJlIGNh
bid0IGJlIGEgdHJhbnNmb3JtIGJldHdlZW4gcmVwYWludENvbnRhaW5lciBhbmQgbywgYmVjYXVz
ZSB0cmFuc2Zvcm1zIGNyZWF0ZSBjb250YWluZXJzLCBzbyBpdCBzaG91bGQgYmUgc2FmZQogICAg
ICAgICAvLyB0byBqdXN0IHN1YnRyYWN0IHRoZSBkZWx0YSBiZXR3ZWVuIHRoZSByZXBhaW50Q29u
dGFpbmVyIGFuZCBvLgogICAgICAgICBMYXlvdXRTaXplIGNvbnRhaW5lck9mZnNldCA9IHJlcGFp
bnRDb250YWluZXItPm9mZnNldEZyb21BbmNlc3RvckNvbnRhaW5lcihvKTsKLSAgICAgICAgdHJh
bnNmb3JtU3RhdGUubW92ZSgtY29udGFpbmVyT2Zmc2V0LndpZHRoKCksIC1jb250YWluZXJPZmZz
ZXQuaGVpZ2h0KCksIHByZXNlcnZlM0QgPyBUcmFuc2Zvcm1TdGF0ZTo6QWNjdW11bGF0ZVRyYW5z
Zm9ybSA6IFRyYW5zZm9ybVN0YXRlOjpGbGF0dGVuVHJhbnNmb3JtKTsKKyAgICAgICAgaWYgKHBy
ZXNlcnZlM0QpCisgICAgICAgICAgICB0cmFuc2Zvcm1TdGF0ZS5tb3ZlKGNvbnRhaW5lck9mZnNl
dC53aWR0aCgpLCBjb250YWluZXJPZmZzZXQuaGVpZ2h0KCksIFRyYW5zZm9ybVN0YXRlOjpBY2N1
bXVsYXRlVHJhbnNmb3JtKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgYWNjdW11bGF0ZWRP
ZmZzZXQuZXhwYW5kKC1jb250YWluZXJPZmZzZXQpOwogICAgICAgICByZXR1cm47CiAgICAgfQog
CiAgICAgbW9kZSAmPSB+QXBwbHlDb250YWluZXJGbGlwOwogICAgIGlmIChvLT5pc1JlbmRlckZs
b3dUaHJlYWQoKSkgewogICAgICAgICAvLyBUcmFuc2Zvcm0gZnJvbSByZW5kZXIgZmxvdyBjb29y
ZGluYXRlcyBpbnRvIHJlZ2lvbiBjb29yZGluYXRlcy4KKyAgICAgICAgYXBwbHlBY2N1bXVsYXRl
ZE9mZnNldCh0cmFuc2Zvcm1TdGF0ZSwgYWNjdW11bGF0ZWRPZmZzZXQsIG1vZGUpOwogICAgICAg
ICBSZW5kZXJSZWdpb24qIHJlZ2lvbiA9IHRvUmVuZGVyRmxvd1RocmVhZChvKS0+bWFwRnJvbUZs
b3dUb1JlZ2lvbih0cmFuc2Zvcm1TdGF0ZSk7CiAgICAgICAgIGlmIChyZWdpb24pCi0gICAgICAg
ICAgICByZWdpb24tPm1hcExvY2FsVG9Db250YWluZXIocmVnaW9uLT5jb250YWluZXJGb3JSZXBh
aW50KCksIHRyYW5zZm9ybVN0YXRlLCBtb2RlLCB3YXNGaXhlZCk7CisgICAgICAgICAgICByZWdp
b24tPm1hcExvY2FsVG9Db250YWluZXJJbnRlcm5hbChyZWdpb24tPmNvbnRhaW5lckZvclJlcGFp
bnQoKSwgdHJhbnNmb3JtU3RhdGUsIGFjY3VtdWxhdGVkT2Zmc2V0LCBtb2RlLCB3YXNGaXhlZCk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBvLT5tYXBMb2NhbFRvQ29udGFpbmVyKHJl
cGFpbnRDb250YWluZXIsIHRyYW5zZm9ybVN0YXRlLCBtb2RlLCB3YXNGaXhlZCk7CisgICAgby0+
bWFwTG9jYWxUb0NvbnRhaW5lckludGVybmFsKHJlcGFpbnRDb250YWluZXIsIHRyYW5zZm9ybVN0
YXRlLCBhY2N1bXVsYXRlZE9mZnNldCwgbW9kZSwgd2FzRml4ZWQpOwogfQogCiBjb25zdCBSZW5k
ZXJPYmplY3QqIFJlbmRlckJveDo6cHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJM
YXllck1vZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1hcCYgZ2Vv
bWV0cnlNYXApIGNvbnN0CkBAIC0xNDY2LDggKzE0NzMsNiBAQCBjb25zdCBSZW5kZXJPYmplY3Qq
IFJlbmRlckJveDo6cHVzaE1hcHBpCiAKICAgICBib29sIG9mZnNldERlcGVuZHNPblBvaW50ID0g
ZmFsc2U7CiAgICAgTGF5b3V0U2l6ZSBjb250YWluZXJPZmZzZXQgPSBvZmZzZXRGcm9tQ29udGFp
bmVyKGNvbnRhaW5lciwgTGF5b3V0UG9pbnQoKSwgJm9mZnNldERlcGVuZHNPblBvaW50KTsKLSAg
ICBpZiAoZ2VvbWV0cnlNYXAubWFwQ29vcmRpbmF0ZXNGbGFncygpICYgU25hcE9mZnNldEZvclRy
YW5zZm9ybXMpCi0gICAgICAgIGNvbnRhaW5lck9mZnNldCA9IHJvdW5kZWRJbnRTaXplKGNvbnRh
aW5lck9mZnNldCk7CiAKICAgICBpZiAoY29udGFpbmVyLT5pc1JlbmRlckZsb3dUaHJlYWQoKSkK
ICAgICAgICAgb2Zmc2V0RGVwZW5kc09uUG9pbnQgPSB0cnVlOwpAQCAtMTQ3Niw2ICsxNDgxLDcg
QEAgY29uc3QgUmVuZGVyT2JqZWN0KiBSZW5kZXJCb3g6OnB1c2hNYXBwaQogICAgIGlmIChzaG91
bGRVc2VUcmFuc2Zvcm1Gcm9tQ29udGFpbmVyKGNvbnRhaW5lcikpIHsKICAgICAgICAgVHJhbnNm
b3JtYXRpb25NYXRyaXggdDsKICAgICAgICAgZ2V0VHJhbnNmb3JtRnJvbUNvbnRhaW5lcihjb250
YWluZXIsIGNvbnRhaW5lck9mZnNldCwgdCk7CisgICAgICAgIGFkanVzdG1lbnRGb3JTa2lwcGVk
QW5jZXN0b3IgPSBhZGp1c3RPZmZzZXRGb3JTbmFwcGluZyhnZW9tZXRyeU1hcC5tYXBDb29yZGlu
YXRlc0ZsYWdzKCksIGFkanVzdG1lbnRGb3JTa2lwcGVkQW5jZXN0b3IpOwogICAgICAgICB0LnRy
YW5zbGF0ZVJpZ2h0KGFkanVzdG1lbnRGb3JTa2lwcGVkQW5jZXN0b3Iud2lkdGgoKSwgYWRqdXN0
bWVudEZvclNraXBwZWRBbmNlc3Rvci5oZWlnaHQoKSk7CiAgICAgICAgIAogICAgICAgICBnZW9t
ZXRyeU1hcC5wdXNoKHRoaXMsIHQsIHByZXNlcnZlM0QsIG9mZnNldERlcGVuZHNPblBvaW50LCBp
c0ZpeGVkUG9zLCBoYXNUcmFuc2Zvcm0pOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJveC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCb3guaAkocmV2aXNpb24gMTM2OTkzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJveC5oCSh3b3JraW5nIGNvcHkpCkBAIC01OTEsNyArNTkxLDcgQEAgcHJvdGVjdGVkOgog
ICAgIAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRDb21wdXRlU2l6ZUFzUmVwbGFjZWQoKSBjb25z
dCB7IHJldHVybiBpc1JlcGxhY2VkKCkgJiYgIWlzSW5saW5lQmxvY2tPcklubGluZVRhYmxlKCk7
IH0KIAotICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxh
eWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29v
cmRpbmF0ZXNGbGFncyA9IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zv
cm1zLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9p
ZCBtYXBMb2NhbFRvQ29udGFpbmVySW50ZXJuYWwoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVj
dCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBMYXlvdXRTaXplJiBhY2N1bXVs
YXRlZE9mZnNldCwgTWFwQ29vcmRpbmF0ZXNGbGFncyA9IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNu
YXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURF
OwogICAgIHZpcnR1YWwgY29uc3QgUmVuZGVyT2JqZWN0KiBwdXNoTWFwcGluZ1RvQ29udGFpbmVy
KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqLCBSZW5kZXJHZW9tZXRyeU1hcCYpIGNvbnN0
IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBtYXBBYnNvbHV0ZVRvTG9jYWxQb2ludChNYXBD
b29yZGluYXRlc0ZsYWdzLCBUcmFuc2Zvcm1TdGF0ZSYpIGNvbnN0OwogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR2VvbWV0cnlNYXAuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHZW9tZXRyeU1hcC5jcHAJKHJldmlzaW9uIDEz
Njk5MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHZW9tZXRyeU1hcC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTQ2LDYgKzQ2LDE1IEBAIFJlbmRlckdlb21ldHJ5TWFwOjp+UmVu
ZGVyR2VvbWV0cnlNYXAoKQogewogfQogCitzdGF0aWMgdm9pZCBhcHBseUFjY3VtdWxhdGVkT2Zm
c2V0KFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTGF5b3V0U2l6ZSYgYWNjdW11bGF0
ZWRPZmZzZXQsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbWFwQ29vcmRpbmF0ZXNGbGFncywgVHJhbnNm
b3JtU3RhdGU6OlRyYW5zZm9ybUFjY3VtdWxhdGlvbiBhY2N1bXVsYXRlID0gVHJhbnNmb3JtU3Rh
dGU6OkZsYXR0ZW5UcmFuc2Zvcm0pCit7CisgICAgYWNjdW11bGF0ZWRPZmZzZXQgPSAobWFwQ29v
cmRpbmF0ZXNGbGFncyAmIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKSA/IHJvdW5kZWRJbnRTaXpl
KGFjY3VtdWxhdGVkT2Zmc2V0KSA6IGFjY3VtdWxhdGVkT2Zmc2V0OworICAgIGlmICghYWNjdW11
bGF0ZWRPZmZzZXQuaXNaZXJvKCkpIHsKKyAgICAgICAgdHJhbnNmb3JtU3RhdGUubW92ZShhY2N1
bXVsYXRlZE9mZnNldC53aWR0aCgpLCBhY2N1bXVsYXRlZE9mZnNldC5oZWlnaHQoKSwgYWNjdW11
bGF0ZSk7CisgICAgICAgIGFjY3VtdWxhdGVkT2Zmc2V0ID0gTGF5b3V0U2l6ZSgpOworICAgIH0K
K30KKwogdm9pZCBSZW5kZXJHZW9tZXRyeU1hcDo6bWFwVG9Db250YWluZXIoVHJhbnNmb3JtU3Rh
dGUmIHRyYW5zZm9ybVN0YXRlLCBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBjb250YWlu
ZXIpIGNvbnN0CiB7CiAgICAgLy8gSWYgdGhlIG1hcHBpbmcgaW5jbHVkZXMgc29tZXRoaW5nIGxp
a2UgY29sdW1ucywgd2UgaGF2ZSB0byBnbyB2aWEgcmVuZGVyZXJzLgpAQCAtNTksNiArNjgsNyBA
QCB2b2lkIFJlbmRlckdlb21ldHJ5TWFwOjptYXBUb0NvbnRhaW5lcihUCiAgICAgYm9vbCBmb3Vu
ZENvbnRhaW5lciA9ICFjb250YWluZXIgfHwgKG1fbWFwcGluZy5zaXplKCkgJiYgbV9tYXBwaW5n
WzBdLm1fcmVuZGVyZXIgPT0gY29udGFpbmVyKTsKICNlbmRpZgogCisgICAgTGF5b3V0U2l6ZSBh
Y2N1bXVsYXRlZE9mZnNldDsKICAgICBmb3IgKGludCBpID0gbV9tYXBwaW5nLnNpemUoKSAtIDE7
IGkgPj0gMDsgLS1pKSB7CiAgICAgICAgIGNvbnN0IFJlbmRlckdlb21ldHJ5TWFwU3RlcCYgY3Vy
cmVudFN0ZXAgPSBtX21hcHBpbmdbaV07CiAKQEAgLTgwLDIzICs5MCwzMSBAQCB2b2lkIFJlbmRl
ckdlb21ldHJ5TWFwOjptYXBUb0NvbnRhaW5lcihUCiAKICAgICAgICAgaWYgKCFpKSB7CiAgICAg
ICAgICAgICAvLyBBIG51bGwgY29udGFpbmVyIGluZGljYXRlcyBtYXBwaW5nIHRocm91Z2ggdGhl
IFJlbmRlclZpZXcsIHNvIGluY2x1ZGluZyBpdHMgdHJhbnNmb3JtICh0aGUgcGFnZSBzY2FsZSku
Ci0gICAgICAgICAgICBpZiAoIWNvbnRhaW5lciAmJiBjdXJyZW50U3RlcC5tX3RyYW5zZm9ybSkK
KyAgICAgICAgICAgIGlmICghY29udGFpbmVyICYmIGN1cnJlbnRTdGVwLm1fdHJhbnNmb3JtKSB7
CisgICAgICAgICAgICAgICAgYXBwbHlBY2N1bXVsYXRlZE9mZnNldCh0cmFuc2Zvcm1TdGF0ZSwg
YWNjdW11bGF0ZWRPZmZzZXQsIG1fbWFwQ29vcmRpbmF0ZXNGbGFncyk7CiAgICAgICAgICAgICAg
ICAgdHJhbnNmb3JtU3RhdGUuYXBwbHlUcmFuc2Zvcm0oKmN1cnJlbnRTdGVwLm1fdHJhbnNmb3Jt
LmdldCgpKTsKKyAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgLy8gVGhlIHJvb3QgZ2V0cyBz
cGVjaWFsIHRyZWF0bWVudCBmb3IgZml4ZWQgcG9zaXRpb24KICAgICAgICAgICAgIGlmIChpbkZp
eGVkKQotICAgICAgICAgICAgICAgIHRyYW5zZm9ybVN0YXRlLm1vdmUoY3VycmVudFN0ZXAubV9v
ZmZzZXQud2lkdGgoKSwgY3VycmVudFN0ZXAubV9vZmZzZXQuaGVpZ2h0KCkpOworICAgICAgICAg
ICAgICAgIGFjY3VtdWxhdGVkT2Zmc2V0LmV4cGFuZChjdXJyZW50U3RlcC5tX29mZnNldCk7CiAg
ICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBUcmFuc2Zvcm1TdGF0ZTo6VHJhbnNmb3JtQWNj
dW11bGF0aW9uIGFjY3VtdWxhdGUgPSBjdXJyZW50U3RlcC5tX2FjY3VtdWxhdGluZ1RyYW5zZm9y
bSA/IFRyYW5zZm9ybVN0YXRlOjpBY2N1bXVsYXRlVHJhbnNmb3JtIDogVHJhbnNmb3JtU3RhdGU6
OkZsYXR0ZW5UcmFuc2Zvcm07Ci0gICAgICAgICAgICBpZiAoY3VycmVudFN0ZXAubV90cmFuc2Zv
cm0pCisgICAgICAgICAgICBpZiAoY3VycmVudFN0ZXAubV90cmFuc2Zvcm0pIHsKKyAgICAgICAg
ICAgICAgICBhcHBseUFjY3VtdWxhdGVkT2Zmc2V0KHRyYW5zZm9ybVN0YXRlLCBhY2N1bXVsYXRl
ZE9mZnNldCwgbV9tYXBDb29yZGluYXRlc0ZsYWdzKTsKICAgICAgICAgICAgICAgICB0cmFuc2Zv
cm1TdGF0ZS5hcHBseVRyYW5zZm9ybSgqY3VycmVudFN0ZXAubV90cmFuc2Zvcm0uZ2V0KCksIGFj
Y3VtdWxhdGUpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHRyYW5zZm9ybVN0
YXRlLm1vdmUoY3VycmVudFN0ZXAubV9vZmZzZXQud2lkdGgoKSwgY3VycmVudFN0ZXAubV9vZmZz
ZXQuaGVpZ2h0KCksIGFjY3VtdWxhdGUpOworICAgICAgICAgICAgfSBlbHNlIGlmIChjdXJyZW50
U3RlcC5tX2FjY3VtdWxhdGluZ1RyYW5zZm9ybSkgeworICAgICAgICAgICAgICAgIGFwcGx5QWNj
dW11bGF0ZWRPZmZzZXQodHJhbnNmb3JtU3RhdGUsIGFjY3VtdWxhdGVkT2Zmc2V0LCBtX21hcENv
b3JkaW5hdGVzRmxhZ3MpOworICAgICAgICAgICAgICAgIExheW91dFNpemUgY29udGFpbmVyT2Zm
c2V0ID0gYWRqdXN0T2Zmc2V0Rm9yU25hcHBpbmcobV9tYXBDb29yZGluYXRlc0ZsYWdzLCBjdXJy
ZW50U3RlcC5tX29mZnNldCk7CisgICAgICAgICAgICAgICAgdHJhbnNmb3JtU3RhdGUubW92ZShj
b250YWluZXJPZmZzZXQud2lkdGgoKSwgY29udGFpbmVyT2Zmc2V0LmhlaWdodCgpLCBhY2N1bXVs
YXRlKTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIGFjY3VtdWxhdGVkT2Zm
c2V0LmV4cGFuZChjdXJyZW50U3RlcC5tX29mZnNldCk7CiAgICAgICAgIH0KICAgICB9CiAKKyAg
ICBhcHBseUFjY3VtdWxhdGVkT2Zmc2V0KHRyYW5zZm9ybVN0YXRlLCBhY2N1bXVsYXRlZE9mZnNl
dCwgbV9tYXBDb29yZGluYXRlc0ZsYWdzKTsKICAgICBBU1NFUlQoZm91bmRDb250YWluZXIpOwot
ICAgIHRyYW5zZm9ybVN0YXRlLmZsYXR0ZW4oKTsgICAgCisgICAgdHJhbnNmb3JtU3RhdGUuZmxh
dHRlbigpOwogfQogCiBGbG9hdFBvaW50IFJlbmRlckdlb21ldHJ5TWFwOjptYXBUb0NvbnRhaW5l
cihjb25zdCBGbG9hdFBvaW50JiBwLCBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBjb250
YWluZXIpIGNvbnN0CkBAIC0xMDQsNyArMTIyLDcgQEAgRmxvYXRQb2ludCBSZW5kZXJHZW9tZXRy
eU1hcDo6bWFwVG9Db250YQogICAgIEZsb2F0UG9pbnQgcmVzdWx0OwogICAgIAogICAgIGlmICgh
aGFzRml4ZWRQb3NpdGlvblN0ZXAoKSAmJiAhaGFzVHJhbnNmb3JtU3RlcCgpICYmICFoYXNOb25V
bmlmb3JtU3RlcCgpICYmICghY29udGFpbmVyIHx8IChtX21hcHBpbmcuc2l6ZSgpICYmIGNvbnRh
aW5lciA9PSBtX21hcHBpbmdbMF0ubV9yZW5kZXJlcikpKQotICAgICAgICByZXN1bHQgPSBwICsg
bV9hY2N1bXVsYXRlZE9mZnNldDsKKyAgICAgICAgcmVzdWx0ID0gcCArIGFkanVzdE9mZnNldEZv
clNuYXBwaW5nKG1fbWFwQ29vcmRpbmF0ZXNGbGFncywgbV9hY2N1bXVsYXRlZE9mZnNldCk7CiAg
ICAgZWxzZSB7CiAgICAgICAgIFRyYW5zZm9ybVN0YXRlIHRyYW5zZm9ybVN0YXRlKFRyYW5zZm9y
bVN0YXRlOjpBcHBseVRyYW5zZm9ybURpcmVjdGlvbiwgcCk7CiAgICAgICAgIG1hcFRvQ29udGFp
bmVyKHRyYW5zZm9ybVN0YXRlLCBjb250YWluZXIpOwpAQCAtMTI3LDcgKzE0NSw3IEBAIEZsb2F0
UXVhZCBSZW5kZXJHZW9tZXRyeU1hcDo6bWFwVG9Db250YWkKICAgICAKICAgICBpZiAoIWhhc0Zp
eGVkUG9zaXRpb25TdGVwKCkgJiYgIWhhc1RyYW5zZm9ybVN0ZXAoKSAmJiAhaGFzTm9uVW5pZm9y
bVN0ZXAoKSAmJiAoIWNvbnRhaW5lciB8fCAobV9tYXBwaW5nLnNpemUoKSAmJiBjb250YWluZXIg
PT0gbV9tYXBwaW5nWzBdLm1fcmVuZGVyZXIpKSkgewogICAgICAgICByZXN1bHQgPSByZWN0Owot
ICAgICAgICByZXN1bHQubW92ZShtX2FjY3VtdWxhdGVkT2Zmc2V0KTsKKyAgICAgICAgcmVzdWx0
Lm1vdmUoYWRqdXN0T2Zmc2V0Rm9yU25hcHBpbmcobV9tYXBDb29yZGluYXRlc0ZsYWdzLCBtX2Fj
Y3VtdWxhdGVkT2Zmc2V0KSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgVHJhbnNmb3JtU3RhdGUg
dHJhbnNmb3JtU3RhdGUoVHJhbnNmb3JtU3RhdGU6OkFwcGx5VHJhbnNmb3JtRGlyZWN0aW9uLCBy
ZWN0LmNlbnRlcigpLCByZWN0KTsKICAgICAgICAgbWFwVG9Db250YWluZXIodHJhbnNmb3JtU3Rh
dGUsIGNvbnRhaW5lcik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5s
aW5lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5s
aW5lLmNwcAkocmV2aXNpb24gMTM2OTkzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlcklubGluZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExNTcsNyArMTE1Nyw3IEBAIExheW91
dFNpemUgUmVuZGVySW5saW5lOjpvZmZzZXRGcm9tQ29udGEKICAgICByZXR1cm4gb2Zmc2V0Owog
fQogCi12b2lkIFJlbmRlcklubGluZTo6bWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJM
YXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNm
b3JtU3RhdGUsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQpIGNvbnN0
Cit2b2lkIFJlbmRlcklubGluZTo6bWFwTG9jYWxUb0NvbnRhaW5lckludGVybmFsKGNvbnN0IFJl
bmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0
cmFuc2Zvcm1TdGF0ZSwgTGF5b3V0U2l6ZSYgYWNjdW11bGF0ZWRPZmZzZXQsIE1hcENvb3JkaW5h
dGVzRmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQpIGNvbnN0CiB7CiAgICAgaWYgKHJlcGFpbnRD
b250YWluZXIgPT0gdGhpcykKICAgICAgICAgcmV0dXJuOwpAQCAtMTE2NSwxMCArMTE2NSwxMSBA
QCB2b2lkIFJlbmRlcklubGluZTo6bWFwTG9jYWxUb0NvbnRhaW5lcihjCiAgICAgaWYgKFJlbmRl
clZpZXcgKnYgPSB2aWV3KCkpIHsKICAgICAgICAgaWYgKHYtPmxheW91dFN0YXRlRW5hYmxlZCgp
ICYmICFyZXBhaW50Q29udGFpbmVyKSB7CiAgICAgICAgICAgICBMYXlvdXRTdGF0ZSogbGF5b3V0
U3RhdGUgPSB2LT5sYXlvdXRTdGF0ZSgpOwotICAgICAgICAgICAgTGF5b3V0U2l6ZSBvZmZzZXQg
PSBsYXlvdXRTdGF0ZS0+bV9wYWludE9mZnNldDsKKyAgICAgICAgICAgIGFjY3VtdWxhdGVkT2Zm
c2V0LmV4cGFuZChsYXlvdXRTdGF0ZS0+bV9wYWludE9mZnNldCArIGFjY3VtdWxhdGVkT2Zmc2V0
KTsKICAgICAgICAgICAgIGlmIChzdHlsZSgpLT5oYXNJbkZsb3dQb3NpdGlvbigpICYmIGxheWVy
KCkpCi0gICAgICAgICAgICAgICAgb2Zmc2V0ICs9IGxheWVyKCktPm9mZnNldEZvckluRmxvd1Bv
c2l0aW9uKCk7Ci0gICAgICAgICAgICB0cmFuc2Zvcm1TdGF0ZS5tb3ZlKG9mZnNldCk7CisgICAg
ICAgICAgICAgICAgYWNjdW11bGF0ZWRPZmZzZXQgKz0gbGF5ZXIoKS0+b2Zmc2V0Rm9ySW5GbG93
UG9zaXRpb24oKTsKKyAgICAgICAgICAgIHRyYW5zZm9ybVN0YXRlLm1vdmUoYWRqdXN0T2Zmc2V0
Rm9yU25hcHBpbmcobW9kZSwgYWNjdW11bGF0ZWRPZmZzZXQpKTsKKyAgICAgICAgICAgIGFjY3Vt
dWxhdGVkT2Zmc2V0ID0gTGF5b3V0U2l6ZSgpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB9CiAgICAgfQpAQCAtMTE4MCwzMyArMTE4MSwzOCBAQCB2b2lkIFJlbmRlcklubGluZTo6bWFw
TG9jYWxUb0NvbnRhaW5lcihjCiAKICAgICBpZiAobW9kZSAmIEFwcGx5Q29udGFpbmVyRmxpcCAm
JiBvLT5pc0JveCgpKSB7CiAgICAgICAgIGlmIChvLT5zdHlsZSgpLT5pc0ZsaXBwZWRCbG9ja3NX
cml0aW5nTW9kZSgpKSB7Ci0gICAgICAgICAgICBJbnRQb2ludCBjZW50ZXJQb2ludCA9IHJvdW5k
ZWRJbnRQb2ludCh0cmFuc2Zvcm1TdGF0ZS5tYXBwZWRQb2ludCgpKTsKLSAgICAgICAgICAgIHRy
YW5zZm9ybVN0YXRlLm1vdmUodG9SZW5kZXJCb3gobyktPmZsaXBGb3JXcml0aW5nTW9kZUluY2x1
ZGluZ0NvbHVtbnMoY2VudGVyUG9pbnQpIC0gY2VudGVyUG9pbnQpOworICAgICAgICAgICAgSW50
UG9pbnQgY2VudGVyUG9pbnQgPSByb3VuZGVkSW50UG9pbnQodHJhbnNmb3JtU3RhdGUubWFwcGVk
UG9pbnQoKSArIGFjY3VtdWxhdGVkT2Zmc2V0KTsKKyAgICAgICAgICAgIGFjY3VtdWxhdGVkT2Zm
c2V0LmV4cGFuZCh0b1JlbmRlckJveChvKS0+ZmxpcEZvcldyaXRpbmdNb2RlSW5jbHVkaW5nQ29s
dW1ucyhjZW50ZXJQb2ludCkgLSBjZW50ZXJQb2ludCk7CiAgICAgICAgIH0KICAgICAgICAgbW9k
ZSAmPSB+QXBwbHlDb250YWluZXJGbGlwOwogICAgIH0KIAogICAgIExheW91dFNpemUgY29udGFp
bmVyT2Zmc2V0ID0gb2Zmc2V0RnJvbUNvbnRhaW5lcihvLCByb3VuZGVkTGF5b3V0UG9pbnQodHJh
bnNmb3JtU3RhdGUubWFwcGVkUG9pbnQoKSkpOwotICAgIGlmIChtb2RlICYgU25hcE9mZnNldEZv
clRyYW5zZm9ybXMpCi0gICAgICAgIGNvbnRhaW5lck9mZnNldCA9IHJvdW5kZWRJbnRTaXplKGNv
bnRhaW5lck9mZnNldCk7Ci0KLSAgICBib29sIHByZXNlcnZlM0QgPSBtb2RlICYgVXNlVHJhbnNm
b3JtcyAmJiAoby0+c3R5bGUoKS0+cHJlc2VydmVzM0QoKSB8fCBzdHlsZSgpLT5wcmVzZXJ2ZXMz
RCgpKTsKKyAgICBib29sIHByZXNlcnZlM0QgPSBtb2RlICYgVXNlVHJhbnNmb3JtcyAmJiAoKG8g
JiYgby0+c3R5bGUoKS0+cHJlc2VydmVzM0QoKSkgfHwgc3R5bGUoKS0+cHJlc2VydmVzM0QoKSk7
CiAgICAgaWYgKG1vZGUgJiBVc2VUcmFuc2Zvcm1zICYmIHNob3VsZFVzZVRyYW5zZm9ybUZyb21D
b250YWluZXIobykpIHsKKyAgICAgICAgYXBwbHlBY2N1bXVsYXRlZE9mZnNldCh0cmFuc2Zvcm1T
dGF0ZSwgYWNjdW11bGF0ZWRPZmZzZXQsIG1vZGUpOwogICAgICAgICBUcmFuc2Zvcm1hdGlvbk1h
dHJpeCB0OwogICAgICAgICBnZXRUcmFuc2Zvcm1Gcm9tQ29udGFpbmVyKG8sIGNvbnRhaW5lck9m
ZnNldCwgdCk7CiAgICAgICAgIHRyYW5zZm9ybVN0YXRlLmFwcGx5VHJhbnNmb3JtKHQsIHByZXNl
cnZlM0QgPyBUcmFuc2Zvcm1TdGF0ZTo6QWNjdW11bGF0ZVRyYW5zZm9ybSA6IFRyYW5zZm9ybVN0
YXRlOjpGbGF0dGVuVHJhbnNmb3JtKTsKKyAgICB9IGVsc2UgaWYgKHByZXNlcnZlM0QpIHsKKyAg
ICAgICAgYXBwbHlBY2N1bXVsYXRlZE9mZnNldCh0cmFuc2Zvcm1TdGF0ZSwgYWNjdW11bGF0ZWRP
ZmZzZXQsIG1vZGUpOworICAgICAgICBMYXlvdXRTaXplIGFkanVzdGVkQ29udGFpbmVyT2Zmc2V0
ID0gYWRqdXN0T2Zmc2V0Rm9yU25hcHBpbmcobW9kZSwgY29udGFpbmVyT2Zmc2V0KTsKKyAgICAg
ICAgdHJhbnNmb3JtU3RhdGUubW92ZShhZGp1c3RlZENvbnRhaW5lck9mZnNldC53aWR0aCgpLCBh
ZGp1c3RlZENvbnRhaW5lck9mZnNldC5oZWlnaHQoKSwgVHJhbnNmb3JtU3RhdGU6OkFjY3VtdWxh
dGVUcmFuc2Zvcm0pOwogICAgIH0gZWxzZQotICAgICAgICB0cmFuc2Zvcm1TdGF0ZS5tb3ZlKGNv
bnRhaW5lck9mZnNldC53aWR0aCgpLCBjb250YWluZXJPZmZzZXQuaGVpZ2h0KCksIHByZXNlcnZl
M0QgPyBUcmFuc2Zvcm1TdGF0ZTo6QWNjdW11bGF0ZVRyYW5zZm9ybSA6IFRyYW5zZm9ybVN0YXRl
OjpGbGF0dGVuVHJhbnNmb3JtKTsKKyAgICAgICAgYWNjdW11bGF0ZWRPZmZzZXQuZXhwYW5kKGNv
bnRhaW5lck9mZnNldCk7ICAgCiAKICAgICBpZiAoY29udGFpbmVyU2tpcHBlZCkgewogICAgICAg
ICAvLyBUaGVyZSBjYW4ndCBiZSBhIHRyYW5zZm9ybSBiZXR3ZWVuIHJlcGFpbnRDb250YWluZXIg
YW5kIG8sIGJlY2F1c2UgdHJhbnNmb3JtcyBjcmVhdGUgY29udGFpbmVycywgc28gaXQgc2hvdWxk
IGJlIHNhZmUKICAgICAgICAgLy8gdG8ganVzdCBzdWJ0cmFjdCB0aGUgZGVsdGEgYmV0d2VlbiB0
aGUgcmVwYWludENvbnRhaW5lciBhbmQgby4KICAgICAgICAgTGF5b3V0U2l6ZSBjb250YWluZXJP
ZmZzZXQgPSByZXBhaW50Q29udGFpbmVyLT5vZmZzZXRGcm9tQW5jZXN0b3JDb250YWluZXIobyk7
Ci0gICAgICAgIHRyYW5zZm9ybVN0YXRlLm1vdmUoLWNvbnRhaW5lck9mZnNldC53aWR0aCgpLCAt
Y29udGFpbmVyT2Zmc2V0LmhlaWdodCgpLCBwcmVzZXJ2ZTNEID8gVHJhbnNmb3JtU3RhdGU6OkFj
Y3VtdWxhdGVUcmFuc2Zvcm0gOiBUcmFuc2Zvcm1TdGF0ZTo6RmxhdHRlblRyYW5zZm9ybSk7Cisg
ICAgICAgIGlmIChwcmVzZXJ2ZTNEKQorICAgICAgICAgICAgdHJhbnNmb3JtU3RhdGUubW92ZShj
b250YWluZXJPZmZzZXQud2lkdGgoKSwgY29udGFpbmVyT2Zmc2V0LmhlaWdodCgpLCBUcmFuc2Zv
cm1TdGF0ZTo6QWNjdW11bGF0ZVRyYW5zZm9ybSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IGFjY3VtdWxhdGVkT2Zmc2V0LmV4cGFuZCgtY29udGFpbmVyT2Zmc2V0KTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAotICAgIG8tPm1hcExvY2FsVG9Db250YWluZXIocmVwYWludENvbnRhaW5l
ciwgdHJhbnNmb3JtU3RhdGUsIG1vZGUsIHdhc0ZpeGVkKTsKKyAgICBvLT5tYXBMb2NhbFRvQ29u
dGFpbmVySW50ZXJuYWwocmVwYWludENvbnRhaW5lciwgdHJhbnNmb3JtU3RhdGUsIGFjY3VtdWxh
dGVkT2Zmc2V0LCBtb2RlLCB3YXNGaXhlZCk7CiB9CiAKIGNvbnN0IFJlbmRlck9iamVjdCogUmVu
ZGVySW5saW5lOjpwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxP
YmplY3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJiBnZW9tZXRyeU1hcCkg
Y29uc3QKQEAgLTEyMjcsMTMgKzEyMzMsMTIgQEAgY29uc3QgUmVuZGVyT2JqZWN0KiBSZW5kZXJJ
bmxpbmU6OnB1c2hNYQogCiAgICAgYm9vbCBvZmZzZXREZXBlbmRzT25Qb2ludCA9IGZhbHNlOwog
ICAgIExheW91dFNpemUgY29udGFpbmVyT2Zmc2V0ID0gb2Zmc2V0RnJvbUNvbnRhaW5lcihjb250
YWluZXIsIExheW91dFBvaW50KCksICZvZmZzZXREZXBlbmRzT25Qb2ludCk7Ci0gICAgaWYgKGdl
b21ldHJ5TWFwLm1hcENvb3JkaW5hdGVzRmxhZ3MoKSAmIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1z
KQotICAgICAgICBjb250YWluZXJPZmZzZXQgPSByb3VuZGVkSW50U2l6ZShjb250YWluZXJPZmZz
ZXQpOwogCiAgICAgYm9vbCBwcmVzZXJ2ZTNEID0gY29udGFpbmVyLT5zdHlsZSgpLT5wcmVzZXJ2
ZXMzRCgpIHx8IHN0eWxlKCktPnByZXNlcnZlczNEKCk7CiAgICAgaWYgKHNob3VsZFVzZVRyYW5z
Zm9ybUZyb21Db250YWluZXIoY29udGFpbmVyKSkgewogICAgICAgICBUcmFuc2Zvcm1hdGlvbk1h
dHJpeCB0OwogICAgICAgICBnZXRUcmFuc2Zvcm1Gcm9tQ29udGFpbmVyKGNvbnRhaW5lciwgY29u
dGFpbmVyT2Zmc2V0LCB0KTsKKyAgICAgICAgYWRqdXN0bWVudEZvclNraXBwZWRBbmNlc3RvciA9
IGFkanVzdE9mZnNldEZvclNuYXBwaW5nKGdlb21ldHJ5TWFwLm1hcENvb3JkaW5hdGVzRmxhZ3Mo
KSwgYWRqdXN0bWVudEZvclNraXBwZWRBbmNlc3Rvcik7CiAgICAgICAgIHQudHJhbnNsYXRlUmln
aHQoYWRqdXN0bWVudEZvclNraXBwZWRBbmNlc3Rvci53aWR0aCgpLCBhZGp1c3RtZW50Rm9yU2tp
cHBlZEFuY2VzdG9yLmhlaWdodCgpKTsgLy8gRklYTUU6IHJpZ2h0PwogICAgICAgICBnZW9tZXRy
eU1hcC5wdXNoKHRoaXMsIHQsIHByZXNlcnZlM0QsIG9mZnNldERlcGVuZHNPblBvaW50KTsKICAg
ICB9IGVsc2UgewpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaAko
cmV2aXNpb24gMTM2OTkzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGlu
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNDAsNyArMTQwLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0
dWFsIExheW91dFJlY3QgcmVjdFdpdGhPdXRsaW5lRm9yUmVwYWludChjb25zdCBSZW5kZXJMYXll
ck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBMYXlvdXRVbml0IG91dGxpbmVXaWR0aCkg
Y29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVSZWN0Rm9yUmVwYWludChj
b25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBMYXlvdXRSZWN0
JiwgYm9vbCBmaXhlZCkgY29uc3QgT1ZFUlJJREU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgbWFwTG9j
YWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFp
bmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5l
ckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25z
dCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lckludGVybmFs
KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9y
bVN0YXRlJiwgTGF5b3V0U2l6ZSYgYWNjdW11bGF0ZWRPZmZzZXQsIE1hcENvb3JkaW5hdGVzRmxh
Z3MgPSBBcHBseUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCog
d2FzRml4ZWQgPSAwKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGNvbnN0IFJlbmRlck9i
amVjdCogcHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0
KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1hcCYpIGNvbnN0IE9WRVJSSURFOwog
CiAgICAgdmlydHVhbCBWaXNpYmxlUG9zaXRpb24gcG9zaXRpb25Gb3JQb2ludChjb25zdCBMYXlv
dXRQb2ludCYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5j
cHAJKHJldmlzaW9uIDEzNjk5MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJP
YmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMDYyLDMyICsyMDYyLDQ4IEBAIEZsb2F0UG9p
bnQgUmVuZGVyT2JqZWN0OjphYnNvbHV0ZVRvTG9jYWwKICAgICByZXR1cm4gdHJhbnNmb3JtU3Rh
dGUubGFzdFBsYW5hclBvaW50KCk7CiB9CiAKK3ZvaWQgUmVuZGVyT2JqZWN0OjphcHBseUFjY3Vt
dWxhdGVkT2Zmc2V0KFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTGF5b3V0U2l6ZSYg
YWNjdW11bGF0ZWRPZmZzZXQsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbWFwQ29vcmRpbmF0ZXNGbGFn
cywgYm9vbCBwcmVzZXJ2ZTNEKSBjb25zdAoreworICAgIGFjY3VtdWxhdGVkT2Zmc2V0ID0gYWRq
dXN0T2Zmc2V0Rm9yU25hcHBpbmcobWFwQ29vcmRpbmF0ZXNGbGFncywgYWNjdW11bGF0ZWRPZmZz
ZXQpOworICAgIGlmICghYWNjdW11bGF0ZWRPZmZzZXQuaXNaZXJvKCkpIHsKKyAgICAgICAgdHJh
bnNmb3JtU3RhdGUubW92ZShhY2N1bXVsYXRlZE9mZnNldC53aWR0aCgpLCBhY2N1bXVsYXRlZE9m
ZnNldC5oZWlnaHQoKSwgcHJlc2VydmUzRCA/IFRyYW5zZm9ybVN0YXRlOjpBY2N1bXVsYXRlVHJh
bnNmb3JtIDogVHJhbnNmb3JtU3RhdGU6OkZsYXR0ZW5UcmFuc2Zvcm0pOworICAgICAgICBhY2N1
bXVsYXRlZE9mZnNldCA9IExheW91dFNpemUoKTsKKyAgICB9Cit9CisKIHZvaWQgUmVuZGVyT2Jq
ZWN0OjptYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJl
cGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFwQ29vcmRp
bmF0ZXNGbGFncyBtb2RlLCBib29sKiB3YXNGaXhlZCkgY29uc3QKIHsKKyAgICBMYXlvdXRTaXpl
IGFjY3VtdWxhdGVkT2Zmc2V0OworICAgIG1hcExvY2FsVG9Db250YWluZXJJbnRlcm5hbChyZXBh
aW50Q29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwgYWNjdW11bGF0ZWRPZmZzZXQsIG1vZGUsIHdh
c0ZpeGVkKTsKKyAgICBhcHBseUFjY3VtdWxhdGVkT2Zmc2V0KHRyYW5zZm9ybVN0YXRlLCBhY2N1
bXVsYXRlZE9mZnNldCwgbW9kZSk7Cit9CisKK3ZvaWQgUmVuZGVyT2JqZWN0OjptYXBMb2NhbFRv
Q29udGFpbmVySW50ZXJuYWwoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENv
bnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBMYXlvdXRTaXplJiBhY2N1
bXVsYXRlZE9mZnNldCwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBib29sKiB3YXNGaXhlZCkg
Y29uc3QKK3sKICAgICBpZiAocmVwYWludENvbnRhaW5lciA9PSB0aGlzKQogICAgICAgICByZXR1
cm47CiAKICAgICBSZW5kZXJPYmplY3QqIG8gPSBwYXJlbnQoKTsKICAgICBpZiAoIW8pCi0gICAg
ICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJuIHRyYW5zZm9ybVN0YXRlLm1vdmUoYWRqdXN0T2Zm
c2V0Rm9yU25hcHBpbmcobW9kZSwgYWNjdW11bGF0ZWRPZmZzZXQpKTsKIAogICAgIC8vIEZJWE1F
OiB0aGlzIHNob3VsZCBjYWxsIG9mZnNldEZyb21Db250YWluZXIgdG8gc2hhcmUgY29kZSwgYnV0
IEknbSBub3Qgc3VyZSBpdCdzIGV2ZXIgY2FsbGVkLgogICAgIExheW91dFBvaW50IGNlbnRlclBv
aW50ID0gcm91bmRlZExheW91dFBvaW50KHRyYW5zZm9ybVN0YXRlLm1hcHBlZFBvaW50KCkpOwog
ICAgIGlmIChtb2RlICYgQXBwbHlDb250YWluZXJGbGlwICYmIG8tPmlzQm94KCkpIHsKICAgICAg
ICAgaWYgKG8tPnN0eWxlKCktPmlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdNb2RlKCkpCi0gICAgICAg
ICAgICB0cmFuc2Zvcm1TdGF0ZS5tb3ZlKHRvUmVuZGVyQm94KG8pLT5mbGlwRm9yV3JpdGluZ01v
ZGVJbmNsdWRpbmdDb2x1bW5zKHJvdW5kZWRMYXlvdXRQb2ludCh0cmFuc2Zvcm1TdGF0ZS5tYXBw
ZWRQb2ludCgpKSkgLSBjZW50ZXJQb2ludCk7CisgICAgICAgICAgICBhY2N1bXVsYXRlZE9mZnNl
dC5leHBhbmQodG9SZW5kZXJCb3gobyktPmZsaXBGb3JXcml0aW5nTW9kZUluY2x1ZGluZ0NvbHVt
bnMocm91bmRlZExheW91dFBvaW50KHRyYW5zZm9ybVN0YXRlLm1hcHBlZFBvaW50KCkpKSAtIGNl
bnRlclBvaW50KTsKICAgICAgICAgbW9kZSAmPSB+QXBwbHlDb250YWluZXJGbGlwOwogICAgIH0K
IAogICAgIExheW91dFNpemUgY29sdW1uT2Zmc2V0OwotICAgIG8tPmFkanVzdEZvckNvbHVtbnMo
Y29sdW1uT2Zmc2V0LCByb3VuZGVkTGF5b3V0UG9pbnQodHJhbnNmb3JtU3RhdGUubWFwcGVkUG9p
bnQoKSkpOworICAgIG8tPmFkanVzdEZvckNvbHVtbnMoY29sdW1uT2Zmc2V0LCByb3VuZGVkTGF5
b3V0UG9pbnQodHJhbnNmb3JtU3RhdGUubWFwcGVkUG9pbnQoKSkgKyBhY2N1bXVsYXRlZE9mZnNl
dCk7CiAgICAgaWYgKCFjb2x1bW5PZmZzZXQuaXNaZXJvKCkpCi0gICAgICAgIHRyYW5zZm9ybVN0
YXRlLm1vdmUoY29sdW1uT2Zmc2V0KTsKKyAgICAgICAgYWNjdW11bGF0ZWRPZmZzZXQuZXhwYW5k
KGNvbHVtbk9mZnNldCk7CiAKICAgICBpZiAoby0+aGFzT3ZlcmZsb3dDbGlwKCkpCi0gICAgICAg
IHRyYW5zZm9ybVN0YXRlLm1vdmUoLXRvUmVuZGVyQm94KG8pLT5zY3JvbGxlZENvbnRlbnRPZmZz
ZXQoKSk7CisgICAgICAgIGFjY3VtdWxhdGVkT2Zmc2V0LmV4cGFuZCgtdG9SZW5kZXJCb3gobykt
PnNjcm9sbGVkQ29udGVudE9mZnNldCgpKTsKIAotICAgIG8tPm1hcExvY2FsVG9Db250YWluZXIo
cmVwYWludENvbnRhaW5lciwgdHJhbnNmb3JtU3RhdGUsIG1vZGUsIHdhc0ZpeGVkKTsKKyAgICBv
LT5tYXBMb2NhbFRvQ29udGFpbmVySW50ZXJuYWwocmVwYWludENvbnRhaW5lciwgdHJhbnNmb3Jt
U3RhdGUsIGFjY3VtdWxhdGVkT2Zmc2V0LCBtb2RlLCB3YXNGaXhlZCk7CiB9CiAKIGNvbnN0IFJl
bmRlck9iamVjdCogUmVuZGVyT2JqZWN0OjpwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJl
bmRlckxheWVyTW9kZWxPYmplY3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFw
JiBnZW9tZXRyeU1hcCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
T2JqZWN0LmgJKHJldmlzaW9uIDEzNjk5MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtOTQyLDkgKzk0MiwxMSBAQCBwdWJsaWM6
CiAKICAgICAvLyBNYXAgcG9pbnRzIGFuZCBxdWFkcyB0aHJvdWdoIGVsZW1lbnRzLCBwb3RlbnRp
YWxseSB2aWEgM2QgdHJhbnNmb3Jtcy4gWW91IHNob3VsZCBuZXZlciBuZWVkIHRvIGNhbGwgdGhl
c2UgZGlyZWN0bHk7IHVzZQogICAgIC8vIGxvY2FsVG9BYnNvbHV0ZS9hYnNvbHV0ZVRvTG9jYWwg
bWV0aG9kcyBpbnN0ZWFkLgotICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKGNv
bnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0
YXRlJiwgTWFwQ29vcmRpbmF0ZXNGbGFncyA9IEFwcGx5Q29udGFpbmVyRmxpcCwgYm9vbCogd2Fz
Rml4ZWQgPSAwKSBjb25zdDsKKyAgICB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBN
YXBDb29yZGluYXRlc0ZsYWdzID0gQXBwbHlDb250YWluZXJGbGlwLCBib29sKiB3YXNGaXhlZCA9
IDApIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBtYXBBYnNvbHV0ZVRvTG9jYWxQb2ludChNYXBD
b29yZGluYXRlc0ZsYWdzLCBUcmFuc2Zvcm1TdGF0ZSYpIGNvbnN0OwogCisgICAgdmlydHVhbCB2
b2lkIG1hcExvY2FsVG9Db250YWluZXJJbnRlcm5hbChjb25zdCBSZW5kZXJMYXllck1vZGVsT2Jq
ZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIExheW91dFNpemUmIGFjY3Vt
dWxhdGVkT2Zmc2V0LCBNYXBDb29yZGluYXRlc0ZsYWdzID0gQXBwbHlDb250YWluZXJGbGlwLCBi
b29sKiB3YXNGaXhlZCA9IDApIGNvbnN0OworCiAgICAgLy8gUHVzaGVzIHN0YXRlIG9udG8gUmVu
ZGVyR2VvbWV0cnlNYXAgYWJvdXQgaG93IHRvIG1hcCBjb29yZGluYXRlcyBmcm9tIHRoaXMgcmVu
ZGVyZXIgdG8gaXRzIGNvbnRhaW5lciwgb3IgYW5jZXN0b3JUb1N0b3BBdCAod2hpY2hldmVyIGlz
IGVuY291bnRlcmVkIGZpcnN0KS4KICAgICAvLyBSZXR1cm5zIHRoZSByZW5kZXJlciB3aGljaCB3
YXMgbWFwcGVkIHRvIChjb250YWluZXIgb3IgYW5jZXN0b3JUb1N0b3BBdCkuCiAgICAgdmlydHVh
bCBjb25zdCBSZW5kZXJPYmplY3QqIHB1c2hNYXBwaW5nVG9Db250YWluZXIoY29uc3QgUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0b3JUb1N0b3BBdCwgUmVuZGVyR2VvbWV0cnlNYXAmKSBj
b25zdDsKQEAgLTk2OCw2ICs5NzAsOCBAQCBwdWJsaWM6CiAgICAgUmVzcGVjdEltYWdlT3JpZW50
YXRpb25FbnVtIHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKCkgY29uc3Q7CiAKIHByb3Rl
Y3RlZDoKKyAgICB2b2lkIGFwcGx5QWNjdW11bGF0ZWRPZmZzZXQoVHJhbnNmb3JtU3RhdGUmLCBM
YXlvdXRTaXplJiwgTWFwQ29vcmRpbmF0ZXNGbGFncywgYm9vbCBwcmVzZXJ2ZTNEID0gZmFsc2Up
IGNvbnN0OworCiAgICAgaW5saW5lIGJvb2wgbGF5ZXJDcmVhdGlvbkFsbG93ZWRGb3JTdWJ0cmVl
KCkgY29uc3Q7CiAKICAgICAvLyBPdmVycmlkZXMgc2hvdWxkIGNhbGwgdGhlIHN1cGVyY2xhc3Mg
YXQgdGhlIGVuZApAQCAtMTI2MCw2ICsxMjY0LDExIEBAIGlubGluZSB2b2lkIFJlbmRlck9iamVj
dDo6c2V0U2VsZWN0aW9uU3QKICAgICBzZXRTZWxlY3Rpb25TdGF0ZShzdGF0ZSk7CiB9CiAKK2lu
bGluZSBMYXlvdXRTaXplIGFkanVzdE9mZnNldEZvclNuYXBwaW5nKE1hcENvb3JkaW5hdGVzRmxh
Z3MgZmxhZ3MsIGNvbnN0IExheW91dFNpemUmIG9mZnNldCkKK3sKKyAgICByZXR1cm4gKGZsYWdz
ICYgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpID8gcm91bmRlZEludFNpemUob2Zmc2V0KSA6IG9m
ZnNldDsKK30KKwogaW5saW5lIHZvaWQgbWFrZU1hdHJpeFJlbmRlcmFibGUoVHJhbnNmb3JtYXRp
b25NYXRyaXgmIG1hdHJpeCwgYm9vbCBoYXMzRFJlbmRlcmluZykKIHsKICNpZiAhRU5BQkxFKDNE
X1JFTkRFUklORykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAJ
KHJldmlzaW9uIDEzNjk5MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjEyLDcgKzIxMiw3IEBAIHZvaWQgUmVuZGVyVmlldzo6
bGF5b3V0KCkKICAgICBzZXROZWVkc0xheW91dChmYWxzZSk7CiB9CiAKLXZvaWQgUmVuZGVyVmll
dzo6bWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBh
aW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIE1hcENvb3JkaW5h
dGVzRmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQpIGNvbnN0Cit2b2lkIFJlbmRlclZpZXc6Om1h
cExvY2FsVG9Db250YWluZXJJbnRlcm5hbChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBy
ZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIExheW91dFNp
emUmIGFjY3VtdWxhdGVkT2Zmc2V0LCBNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUsIGJvb2wqIHdh
c0ZpeGVkKSBjb25zdAogewogICAgIC8vIElmIGEgY29udGFpbmVyIHdhcyBzcGVjaWZpZWQsIGFu
ZCB3YXMgbm90IDAgb3IgdGhlIFJlbmRlclZpZXcsCiAgICAgLy8gdGhlbiB3ZSBzaG91bGQgaGF2
ZSBmb3VuZCBpdCBieSBub3cuCkBAIC0yMjAsMTMgKzIyMCwxNiBAQCB2b2lkIFJlbmRlclZpZXc6
Om1hcExvY2FsVG9Db250YWluZXIoY29uCiAgICAgQVNTRVJUX1VOVVNFRCh3YXNGaXhlZCwgIXdh
c0ZpeGVkIHx8ICp3YXNGaXhlZCA9PSAobW9kZSAmIElzRml4ZWQpKTsKIAogICAgIGlmICghcmVw
YWludENvbnRhaW5lciAmJiBtb2RlICYgVXNlVHJhbnNmb3JtcyAmJiBzaG91bGRVc2VUcmFuc2Zv
cm1Gcm9tQ29udGFpbmVyKDApKSB7CisgICAgICAgIGFwcGx5QWNjdW11bGF0ZWRPZmZzZXQodHJh
bnNmb3JtU3RhdGUsIGFjY3VtdWxhdGVkT2Zmc2V0LCBtb2RlKTsKICAgICAgICAgVHJhbnNmb3Jt
YXRpb25NYXRyaXggdDsKICAgICAgICAgZ2V0VHJhbnNmb3JtRnJvbUNvbnRhaW5lcigwLCBMYXlv
dXRTaXplKCksIHQpOwogICAgICAgICB0cmFuc2Zvcm1TdGF0ZS5hcHBseVRyYW5zZm9ybSh0KTsK
ICAgICB9CiAgICAgCi0gICAgaWYgKG1vZGUgJiBJc0ZpeGVkICYmIG1fZnJhbWVWaWV3KQotICAg
ICAgICB0cmFuc2Zvcm1TdGF0ZS5tb3ZlKG1fZnJhbWVWaWV3LT5zY3JvbGxPZmZzZXRGb3JGaXhl
ZFBvc2l0aW9uKCkpOworICAgIGlmIChtb2RlICYgSXNGaXhlZCAmJiBtX2ZyYW1lVmlldykgewor
ICAgICAgICB0cmFuc2Zvcm1TdGF0ZS5tb3ZlKGFkanVzdE9mZnNldEZvclNuYXBwaW5nKG1vZGUs
IG1fZnJhbWVWaWV3LT5zY3JvbGxPZmZzZXRGb3JGaXhlZFBvc2l0aW9uKCkgKyBhY2N1bXVsYXRl
ZE9mZnNldCkpOworICAgICAgICBhY2N1bXVsYXRlZE9mZnNldCA9IExheW91dFNpemUoKTsKKyAg
ICB9CiB9CiAKIGNvbnN0IFJlbmRlck9iamVjdCogUmVuZGVyVmlldzo6cHVzaE1hcHBpbmdUb0Nv
bnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBS
ZW5kZXJHZW9tZXRyeU1hcCYgZ2VvbWV0cnlNYXApIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJWaWV3LmgJKHJldmlzaW9uIDEzNjk5MykKKysrIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJWaWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTIyOSw3ICsyMjksNyBA
QCBwdWJsaWM6CiAgICAgYm9vbCBoYXNSZW5kZXJDb3VudGVycygpIHsgcmV0dXJuIG1fcmVuZGVy
Q291bnRlckNvdW50OyB9CiAKIHByb3RlY3RlZDoKLSAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxU
b0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVy
LCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5lckZs
aXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lckludGVybmFsKGNv
bnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0
YXRlJiwgTGF5b3V0U2l6ZSYgYWNjdW11bGF0ZWRPZmZzZXQsIE1hcENvb3JkaW5hdGVzRmxhZ3Mg
PSBBcHBseUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCogd2Fz
Rml4ZWQgPSAwKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGNvbnN0IFJlbmRlck9iamVj
dCogcHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBh
bmNlc3RvclRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1hcCYpIGNvbnN0IE9WRVJSSURFOwogICAg
IHZpcnR1YWwgdm9pZCBtYXBBYnNvbHV0ZVRvTG9jYWxQb2ludChNYXBDb29yZGluYXRlc0ZsYWdz
LCBUcmFuc2Zvcm1TdGF0ZSYpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc0NvbHVt
bnMoaW50IGRlc2lyZWRDb2x1bW5Db3VudCkgY29uc3QgT1ZFUlJJREU7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ZvcmVpZ25PYmplY3QuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9iamVj
dC5jcHAJKHJldmlzaW9uIDEzNjk5MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHRm9yZWlnbk9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE5Myw5ICsxOTMs
OSBAQCBib29sIFJlbmRlclNWR0ZvcmVpZ25PYmplY3Q6Om5vZGVBdFBvaW50CiAgICAgcmV0dXJu
IGZhbHNlOwogfQogCi12b2lkIFJlbmRlclNWR0ZvcmVpZ25PYmplY3Q6Om1hcExvY2FsVG9Db250
YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJh
bnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUsIGJv
b2wqIHdhc0ZpeGVkKSBjb25zdAordm9pZCBSZW5kZXJTVkdGb3JlaWduT2JqZWN0OjptYXBMb2Nh
bFRvQ29udGFpbmVySW50ZXJuYWwoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWlu
dENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBMYXlvdXRTaXplJiBh
Y2N1bXVsYXRlZE9mZnNldCwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBib29sKiB3YXNGaXhl
ZCkgY29uc3QKIHsKLSAgICBTVkdSZW5kZXJTdXBwb3J0OjptYXBMb2NhbFRvQ29udGFpbmVyKHRo
aXMsIHJlcGFpbnRDb250YWluZXIsIHRyYW5zZm9ybVN0YXRlLCBtb2RlICYgU25hcE9mZnNldEZv
clRyYW5zZm9ybXMsIHdhc0ZpeGVkKTsKKyAgICBTVkdSZW5kZXJTdXBwb3J0OjptYXBMb2NhbFRv
Q29udGFpbmVyKHRoaXMsIHJlcGFpbnRDb250YWluZXIsIHRyYW5zZm9ybVN0YXRlLCBhY2N1bXVs
YXRlZE9mZnNldCwgbW9kZSwgd2FzRml4ZWQpOwogfQogCiBjb25zdCBSZW5kZXJPYmplY3QqIFJl
bmRlclNWR0ZvcmVpZ25PYmplY3Q6OnB1c2hNYXBwaW5nVG9Db250YWluZXIoY29uc3QgUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0b3JUb1N0b3BBdCwgUmVuZGVyR2VvbWV0cnlNYXAmIGdl
b21ldHJ5TWFwKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdGb3JlaWduT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWduT2JqZWN0LmgJKHJldmlzaW9uIDEzNjk5MykKKysrIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9iamVjdC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC01NCw3ICs1NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgbm9k
ZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgSGl0
VGVzdExvY2F0aW9uJiBsb2NhdGlvbkluQ29udGFpbmVyLCBjb25zdCBMYXlvdXRQb2ludCYgYWNj
dW11bGF0ZWRPZmZzZXQsIEhpdFRlc3RBY3Rpb24pIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9v
bCBpc1NWR0ZvcmVpZ25PYmplY3QoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKLSAgICB2aXJ0
dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0
KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3Mg
PSBBcHBseUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCogd2Fz
Rml4ZWQgPSAwKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0Nv
bnRhaW5lckludGVybmFsKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250
YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTGF5b3V0U2l6ZSYgYWNjdW11bGF0ZWRPZmZzZXQsIE1h
cENvb3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJh
bnNmb3JtcywgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFs
IGNvbnN0IFJlbmRlck9iamVjdCogcHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJM
YXllck1vZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1hcCYpIGNv
bnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc1RyYW5zZm9ybVVwZGF0ZSgp
IHsgbV9uZWVkc1RyYW5zZm9ybVVwZGF0ZSA9IHRydWU7IH0KIApJbmRleDogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmNwcAkocmV2aXNpb24gMTM2
OTkzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC03OSw5ICs3OSw5IEBAIHZvaWQgUmVuZGVyU1ZHSW5saW5lOjpj
b21wdXRlRmxvYXRSZWN0Rm8KICAgICBTVkdSZW5kZXJTdXBwb3J0Ojpjb21wdXRlRmxvYXRSZWN0
Rm9yUmVwYWludCh0aGlzLCByZXBhaW50Q29udGFpbmVyLCByZXBhaW50UmVjdCwgZml4ZWQpOwog
fQogCi12b2lkIFJlbmRlclNWR0lubGluZTo6bWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5k
ZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJh
bnNmb3JtU3RhdGUsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQpIGNv
bnN0Cit2b2lkIFJlbmRlclNWR0lubGluZTo6bWFwTG9jYWxUb0NvbnRhaW5lckludGVybmFsKGNv
bnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0
YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTGF5b3V0U2l6ZSYgYWNjdW11bGF0ZWRPZmZzZXQsIE1hcENv
b3JkaW5hdGVzRmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQpIGNvbnN0CiB7Ci0gICAgU1ZHUmVu
ZGVyU3VwcG9ydDo6bWFwTG9jYWxUb0NvbnRhaW5lcih0aGlzLCByZXBhaW50Q29udGFpbmVyLCB0
cmFuc2Zvcm1TdGF0ZSwgbW9kZSAmIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCB3YXNGaXhlZCk7
CisgICAgU1ZHUmVuZGVyU3VwcG9ydDo6bWFwTG9jYWxUb0NvbnRhaW5lcih0aGlzLCByZXBhaW50
Q29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwgYWNjdW11bGF0ZWRPZmZzZXQsIG1vZGUsIHdhc0Zp
eGVkKTsKIH0KIAogY29uc3QgUmVuZGVyT2JqZWN0KiBSZW5kZXJTVkdJbmxpbmU6OnB1c2hNYXBw
aW5nVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0b3JUb1N0
b3BBdCwgUmVuZGVyR2VvbWV0cnlNYXAmIGdlb21ldHJ5TWFwKSBjb25zdApJbmRleDogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5oCShyZXZpc2lvbiAx
MzY5OTMpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwg
TGF5b3V0UmVjdCBjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXll
ck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0
dWFsIHZvaWQgY29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdCogcmVwYWludENvbnRhaW5lciwgRmxvYXRSZWN0JiwgYm9vbCBmaXhlZCA9IGZhbHNl
KSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihj
b25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1T
dGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zm
c2V0Rm9yVHJhbnNmb3JtcywgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lckludGVybmFsKGNvbnN0IFJlbmRlckxh
eWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTGF5b3V0
U2l6ZSYgYWNjdW11bGF0ZWRPZmZzZXQsIE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRh
aW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCogd2FzRml4ZWQgPSAwKSBj
b25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGNvbnN0IFJlbmRlck9iamVjdCogcHVzaE1hcHBp
bmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBhbmNlc3RvclRvU3Rv
cEF0LCBSZW5kZXJHZW9tZXRyeU1hcCYpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9p
ZCBhYnNvbHV0ZVF1YWRzKFZlY3RvcjxGbG9hdFF1YWQ+JiwgYm9vbCogd2FzRml4ZWQpIGNvbnN0
OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2Jq
ZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR01vZGVsT2JqZWN0LmNwcAkocmV2aXNpb24gMTM2OTkzKQorKysgU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTU3LDkgKzU3LDkgQEAgdm9pZCBSZW5kZXJTVkdNb2RlbE9iamVjdDo6Y29tcHV0ZUZsb2F0Ugog
ICAgIFNWR1JlbmRlclN1cHBvcnQ6OmNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50KHRoaXMsIHJl
cGFpbnRDb250YWluZXIsIHJlcGFpbnRSZWN0LCBmaXhlZCk7CiB9CiAKLXZvaWQgUmVuZGVyU1ZH
TW9kZWxPYmplY3Q6Om1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9i
amVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBN
YXBDb29yZGluYXRlc0ZsYWdzIG1vZGUsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAordm9pZCBSZW5k
ZXJTVkdNb2RlbE9iamVjdDo6bWFwTG9jYWxUb0NvbnRhaW5lckludGVybmFsKGNvbnN0IFJlbmRl
ckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFu
c2Zvcm1TdGF0ZSwgTGF5b3V0U2l6ZSYgYWNjdW11bGF0ZWRPZmZzZXQsIE1hcENvb3JkaW5hdGVz
RmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQpIGNvbnN0CiB7Ci0gICAgU1ZHUmVuZGVyU3VwcG9y
dDo6bWFwTG9jYWxUb0NvbnRhaW5lcih0aGlzLCByZXBhaW50Q29udGFpbmVyLCB0cmFuc2Zvcm1T
dGF0ZSwgbW9kZSAmIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCB3YXNGaXhlZCk7CisgICAgU1ZH
UmVuZGVyU3VwcG9ydDo6bWFwTG9jYWxUb0NvbnRhaW5lcih0aGlzLCByZXBhaW50Q29udGFpbmVy
LCB0cmFuc2Zvcm1TdGF0ZSwgYWNjdW11bGF0ZWRPZmZzZXQsIG1vZGUsIHdhc0ZpeGVkKTsKIH0K
IAogY29uc3QgUmVuZGVyT2JqZWN0KiBSZW5kZXJTVkdNb2RlbE9iamVjdDo6cHVzaE1hcHBpbmdU
b0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0
LCBSZW5kZXJHZW9tZXRyeU1hcCYgZ2VvbWV0cnlNYXApIGNvbnN0CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5oCShyZXZp
c2lvbiAxMzY5OTMpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01v
ZGVsT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTU4LDcgKzU4LDcgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBhYnNvbHV0ZVJlY3RzKFZlY3RvcjxJbnRSZWN0PiYsIGNvbnN0IExheW91
dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGFic29s
dXRlUXVhZHMoVmVjdG9yPEZsb2F0UXVhZD4mLCBib29sKiB3YXNGaXhlZCkgY29uc3Q7CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVs
T2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVz
RmxhZ3MgPSBBcHBseUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9v
bCogd2FzRml4ZWQgPSAwKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbWFwTG9j
YWxUb0NvbnRhaW5lckludGVybmFsKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFp
bnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTGF5b3V0U2l6ZSYgYWNjdW11bGF0ZWRPZmZz
ZXQsIE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0
Rm9yVHJhbnNmb3JtcywgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBPVkVSUklERTsKICAgICB2
aXJ0dWFsIGNvbnN0IFJlbmRlck9iamVjdCogcHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBS
ZW5kZXJMYXllck1vZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1h
cCYpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzdHlsZVdpbGxDaGFuZ2UoU3R5
bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSogbmV3U3R5bGUpOwogICAgIHZpcnR1YWwg
dm9pZCBzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBv
bGRTdHlsZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jv
b3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHUm9vdC5jcHAJKHJldmlzaW9uIDEzNjk5MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwMSwxMiArNDAxLDEy
IEBAIHZvaWQgUmVuZGVyU1ZHUm9vdDo6Y29tcHV0ZUZsb2F0UmVjdEZvclIKIC8vIFRoaXMgbWV0
aG9kIGV4cGVjdHMgbG9jYWwgQ1NTIGJveCBjb29yZGluYXRlcy4KIC8vIENhbGxlcnMgd2l0aCBs
b2NhbCBTVkcgdmlld3BvcnQgY29vcmRpbmF0ZXMgc2hvdWxkIGZpcnN0IGFwcGx5IHRoZSBsb2Nh
bFRvQm9yZGVyQm94VHJhbnNmb3JtCiAvLyB0byBjb252ZXJ0IGZyb20gU1ZHIHZpZXdwb3J0IGNv
b3JkaW5hdGVzIHRvIGxvY2FsIENTUyBib3ggY29vcmRpbmF0ZXMuCi12b2lkIFJlbmRlclNWR1Jv
b3Q6Om1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVw
YWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBDb29yZGlu
YXRlc0ZsYWdzIG1vZGUsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAordm9pZCBSZW5kZXJTVkdSb290
OjptYXBMb2NhbFRvQ29udGFpbmVySW50ZXJuYWwoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVj
dCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBMYXlv
dXRTaXplJiBhY2N1bXVsYXRlZE9mZnNldCwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBib29s
KiB3YXNGaXhlZCkgY29uc3QKIHsKICAgICBBU1NFUlQobW9kZSAmIH5Jc0ZpeGVkKTsgLy8gV2Ug
c2hvdWxkIGhhdmUgbm8gZml4ZWQgY29udGVudCBpbiB0aGUgU1ZHIHJlbmRlcmluZyB0cmVlLgog
ICAgIEFTU0VSVChtb2RlICYgVXNlVHJhbnNmb3Jtcyk7IC8vIG1hcHBpbmcgYSBwb2ludCB0aHJv
dWdoIFNWRyB3L28gcmVzcGVjdGluZyB0cmFzbmZvcm1zIGlzIHVzZWxlc3MuCiAKLSAgICBSZW5k
ZXJSZXBsYWNlZDo6bWFwTG9jYWxUb0NvbnRhaW5lcihyZXBhaW50Q29udGFpbmVyLCB0cmFuc2Zv
cm1TdGF0ZSwgbW9kZSB8IEFwcGx5Q29udGFpbmVyRmxpcCwgd2FzRml4ZWQpOworICAgIFJlbmRl
clJlcGxhY2VkOjptYXBMb2NhbFRvQ29udGFpbmVySW50ZXJuYWwocmVwYWludENvbnRhaW5lciwg
dHJhbnNmb3JtU3RhdGUsIGFjY3VtdWxhdGVkT2Zmc2V0LCBtb2RlIHwgQXBwbHlDb250YWluZXJG
bGlwLCB3YXNGaXhlZCk7CiB9CiAKIGNvbnN0IFJlbmRlck9iamVjdCogUmVuZGVyU1ZHUm9vdDo6
cHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBhbmNl
c3RvclRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1hcCYgZ2VvbWV0cnlNYXApIGNvbnN0CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuaAkocmV2aXNp
b24gMTM2OTkzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEwMyw3ICsxMDMsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1
YWwgTGF5b3V0UmVjdCBjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJM
YXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyKSBjb25zdCBPVkVSUklERTsKICAgICB2
aXJ0dWFsIHZvaWQgY29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJN
b2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgRmxvYXRSZWN0JiByZXBhaW50UmVjdCwgYm9v
bCBmaXhlZCkgY29uc3QgT1ZFUlJJREU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0Nv
bnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBU
cmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5lckZsaXAg
fCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lckludGVybmFsKGNvbnN0
IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRl
JiwgTGF5b3V0U2l6ZSYgYWNjdW11bGF0ZWRPZmZzZXQsIE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBB
cHBseUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCogd2FzRml4
ZWQgPSAwKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGNvbnN0IFJlbmRlck9iamVjdCog
cHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBhbmNl
c3RvclRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1hcCYpIGNvbnN0IE9WRVJSSURFOwogCiAgICAg
dmlydHVhbCBib29sIGNhbkJlU2VsZWN0aW9uTGVhZigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5j
cHAJKHJldmlzaW9uIDEzNjk5MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHVGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExMSw5ICsxMTEsOSBAQCB2b2lkIFJl
bmRlclNWR1RleHQ6OmNvbXB1dGVGbG9hdFJlY3RGb3JSCiAgICAgU1ZHUmVuZGVyU3VwcG9ydDo6
Y29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQodGhpcywgcmVwYWludENvbnRhaW5lciwgcmVwYWlu
dFJlY3QsIGZpeGVkKTsKIH0KIAotdm9pZCBSZW5kZXJTVkdUZXh0OjptYXBMb2NhbFRvQ29udGFp
bmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5z
Zm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBib29s
KiB3YXNGaXhlZCkgY29uc3QKK3ZvaWQgUmVuZGVyU1ZHVGV4dDo6bWFwTG9jYWxUb0NvbnRhaW5l
ckludGVybmFsKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIs
IFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTGF5b3V0U2l6ZSYgYWNjdW11bGF0ZWRP
ZmZzZXQsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQpIGNvbnN0CiB7
Ci0gICAgU1ZHUmVuZGVyU3VwcG9ydDo6bWFwTG9jYWxUb0NvbnRhaW5lcih0aGlzLCByZXBhaW50
Q29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwgbW9kZSAmIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1z
LCB3YXNGaXhlZCk7CisgICAgU1ZHUmVuZGVyU3VwcG9ydDo6bWFwTG9jYWxUb0NvbnRhaW5lcih0
aGlzLCByZXBhaW50Q29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwgYWNjdW11bGF0ZWRPZmZzZXQs
IG1vZGUsIHdhc0ZpeGVkKTsKIH0KIAogY29uc3QgUmVuZGVyT2JqZWN0KiBSZW5kZXJTVkdUZXh0
OjpwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGFu
Y2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJiBnZW9tZXRyeU1hcCkgY29uc3QKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5oCShyZXZp
c2lvbiAxMzY5OTMpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Rl
eHQuaAkod29ya2luZyBjb3B5KQpAQCAtNzUsNyArNzUsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1
YWwgdm9pZCBjb21wdXRlUmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVj
dCogcmVwYWludENvbnRhaW5lciwgTGF5b3V0UmVjdCYsIGJvb2wgZml4ZWQgPSBmYWxzZSkgY29u
c3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50
KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIEZsb2F0UmVj
dCYsIGJvb2wgZml4ZWQgPSBmYWxzZSkgY29uc3QgT1ZFUlJJREU7CiAKLSAgICB2aXJ0dWFsIHZv
aWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBh
aW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBBcHBs
eUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCogd2FzRml4ZWQg
PSAwKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5l
ckludGVybmFsKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIs
IFRyYW5zZm9ybVN0YXRlJiwgTGF5b3V0U2l6ZSYgYWNjdW11bGF0ZWRPZmZzZXQsIE1hcENvb3Jk
aW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jt
cywgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGNvbnN0
IFJlbmRlck9iamVjdCogcHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1v
ZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1hcCYpIGNvbnN0IE9W
RVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBhZGRDaGlsZChSZW5kZXJPYmplY3QqIGNoaWxkLCBS
ZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkID0gMCk7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZUNo
aWxkKFJlbmRlck9iamVjdCopIE9WRVJSSURFOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuY3BwCShyZXZpc2lvbiAxMzY5OTMpCisr
KyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC04NCw3ICs4NCw3IEBAIHZvaWQgU1ZHUmVuZGVyU3VwcG9ydDo6Y29tcHV0
ZUZsb2F0UmVjdEYKICAgICBvYmplY3QtPnBhcmVudCgpLT5jb21wdXRlRmxvYXRSZWN0Rm9yUmVw
YWludChyZXBhaW50Q29udGFpbmVyLCByZXBhaW50UmVjdCwgZml4ZWQpOwogfQogCi12b2lkIFNW
R1JlbmRlclN1cHBvcnQ6Om1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyT2JqZWN0KiBv
YmplY3QsIGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRy
YW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgYm9vbCBzbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jt
cywgYm9vbCogd2FzRml4ZWQpCit2b2lkIFNWR1JlbmRlclN1cHBvcnQ6Om1hcExvY2FsVG9Db250
YWluZXIoY29uc3QgUmVuZGVyT2JqZWN0KiBvYmplY3QsIGNvbnN0IFJlbmRlckxheWVyTW9kZWxP
YmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwg
TGF5b3V0U2l6ZSYgYWNjdW11bGF0ZWRPZmZzZXQsIGJvb2wgc25hcE9mZnNldEZvclRyYW5zZm9y
bXMsIGJvb2wqIHdhc0ZpeGVkKQogewogICAgIHRyYW5zZm9ybVN0YXRlLmFwcGx5VHJhbnNmb3Jt
KG9iamVjdC0+bG9jYWxUb1BhcmVudFRyYW5zZm9ybSgpKTsKIApJbmRleDogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmgJKHJldmlzaW9uIDEzNjk5
MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5oCSh3
b3JraW5nIGNvcHkpCkBAIC02OCw3ICs2OCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgRmxvYXRS
ZWN0IHJlcGFpbnRSZWN0Rm9yUmVuZGVyZXJJbkxvY2FsQ29vcmRpbmF0ZXNFeGNsdWRpbmdTVkdT
aGFkb3coY29uc3QgUmVuZGVyT2JqZWN0Kik7CiAgICAgc3RhdGljIExheW91dFJlY3QgY2xpcHBl
ZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyT2JqZWN0KiwgY29uc3QgUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lcik7CiAgICAgc3RhdGljIHZvaWQgY29t
cHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyT2JqZWN0KiwgY29uc3QgUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgRmxvYXRSZWN0JiwgYm9vbCBmaXhl
ZCk7Ci0gICAgc3RhdGljIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJPYmpl
Y3QqLCBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFu
c2Zvcm1TdGF0ZSYsIGJvb2wgc25hcE9mZnNldEZvclRyYW5zZm9ybXMgPSB0cnVlLCBib29sKiB3
YXNGaXhlZCA9IDApOworICAgIHN0YXRpYyB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoY29uc3Qg
UmVuZGVyT2JqZWN0KiwgY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRh
aW5lciwgVHJhbnNmb3JtU3RhdGUmLCBMYXlvdXRTaXplJiBhY2N1bXVsYXRlZE9mZnNldCwgYm9v
bCBzbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcyA9IHRydWUsIGJvb2wqIHdhc0ZpeGVkID0gMCk7CiAg
ICAgc3RhdGljIGNvbnN0IFJlbmRlck9iamVjdCogcHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25z
dCBSZW5kZXJPYmplY3QqLCBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBhbmNlc3RvclRv
U3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1hcCYpOwogICAgIHN0YXRpYyBib29sIGNoZWNrRm9yU1ZH
UmVwYWludER1cmluZ0xheW91dChSZW5kZXJPYmplY3QqKTsKIApJbmRleDogTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24g
MTM2OTkzKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMjEgQEAKKzIwMTItMTItMDQgIExldmkgV2VpbnRyYXViICA8bGV2aXdAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIEFjY3VtdWxhdGUgdXNpbmcgYSBMYXlvdXRTaXplIGluIG1hcExvY2FsVG9D
b250YWluZXIgd2hlbiBwb3NzaWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTAxNzc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkaW5nIGFkZGl0aW9uYWwgY292ZXJhZ2UgdG8gZXhpc3RpbmcgdGVz
dCBmb3IgdGhpcyBiZWhhdmlvciB0byBjYXRjaCB0aGlzIGJ1ZywgYW5kIGFkZGluZworICAgICAg
ICBhIHRlc3QgY292ZXJpbmcgc2FtZSB3aXRoIHRyYW5zZm9ybXMuCisKKyAgICAgICAgKiBmYXN0
L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLmh0bWw6CisgICAgICAg
ICogZmFzdC9zdWItcGl4ZWwvdHJhbnNmb3JtZWQtaWZyYW1lLWNvcHktb24tc2Nyb2xsLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2Zhc3Qvc3ViLXBpeGVs
L3N1Yi1waXhlbC1pZnJhbWUtY29weS1vbi1zY3JvbGwtZXhwZWN0ZWQucG5nOgorICAgICAgICAq
IHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2Zhc3Qvc3ViLXBpeGVsL3RyYW5zZm9ybWVkLWlmcmFt
ZS1jb3B5LW9uLXNjcm9sbC1leHBlY3RlZC5wbmc6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2Nocm9taXVtLWxpbnV4L2Zhc3Qvc3ViLXBpeGVsL3RyYW5zZm9ybWVkLWlmcmFtZS1jb3B5LW9u
LXNjcm9sbC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVt
LXdpbi9mYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zOgor
CiAyMDEyLTEyLTA3ICBEaW1hIEdvcmJpayAgPGRnb3JiaWtAYXBwbGUuY29tPgogCiAgICAgICAg
IEltcGxlbWVudCBnZW5lcmFsIDo6Y3VlIHBzZXVkbyBlbGVtZW50IGZvciB0aGUgPHZpZGVvPgpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWlmcmFtZS1jb3B5LW9u
LXNjcm9sbC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qvc3ViLXBpeGVsL3N1
Yi1waXhlbC1pZnJhbWUtY29weS1vbi1zY3JvbGwuaHRtbAkocmV2aXNpb24gMTM2OTkzKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWlmcmFtZS1jb3B5LW9uLXNjcm9s
bC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yLDEwICsyLDEyIEBACiA8aHRtbD4KIDxoZWFkPgog
PHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVuIj4KKy5zdWJwaXhlbFB1c2hlciB7
CisgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgIHRvcDogMC40cHg7Cit9CiAuY29udGFpbmVy
IHsKLSAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgcGFkZGluZzogMTAuM3B4OwotICAgIHot
aW5kZXg6IDE7CisgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogfQogPC9zdHlsZT4KIDxzY3Jp
cHQgc3JjPSIuLi9yZXBhaW50L3Jlc291cmNlcy9yZXBhaW50LmpzIiB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiPjwvc2NyaXB0PgpAQCAtMTMsMjYgKzE1LDQzIEBACiBpZiAod2luZG93LnRlc3RSdW5u
ZXIpCiAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogCi1mdW5jdGlvbiBzZXR1cElmcmFt
ZSgpIHsKLSAgdmFyIHN1YkRvY3VtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lmcmFt
ZScpLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQ7Ci0gIHN1YkRvY3VtZW50Lm9wZW4oJ3RleHQvaHRt
bCcsICdyZXBsYWNlJyk7Ci0gIHN1YkRvY3VtZW50LndyaXRlKCI8IURPQ1RZUEUgaHRtbD5cbjxo
dG1sPjxib2R5IHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogc2lsdmVyO2hlaWdodDogMTAwMHB4
O1wiPjwvYm9keT4iKQotICBzdWJEb2N1bWVudC5jbG9zZSgpOworZnVuY3Rpb24gc2V0dXBJZnJh
bWVzKCkgeworICBzZXR1cElmcmFtZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaWZyYW1lMScp
LmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQpOworICBzZXR1cElmcmFtZShkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnaWZyYW1lMicpLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQpOworICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnaWZyYW1lMScpLmNvbnRlbnRXaW5kb3cuc2Nyb2xsVG8oMCwgMTApOwor
fQorCitmdW5jdGlvbiBzZXR1cElmcmFtZShpZnJhbWUpIHsKKyAgaWZyYW1lLm9wZW4oJ3RleHQv
aHRtbCcsICdyZXBsYWNlJyk7CisgIGlmcmFtZS53cml0ZSgiPCFET0NUWVBFIGh0bWw+XG48aHRt
bD48Ym9keSBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6IHNpbHZlcjtoZWlnaHQ6IDEwMDBweDtc
Ij48L2JvZHk+Iik7CisgIGlmcmFtZS5jbG9zZSgpOwogfQogCiBmdW5jdGlvbiByZXBhaW50VGVz
dCgpIHsKLSAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lmcmFtZScpLmNvbnRlbnRXaW5kb3cu
c2Nyb2xsVG8oMCwgMTApOworICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaWZyYW1lMScpLmNv
bnRlbnRXaW5kb3cuc2Nyb2xsVG8oMCwgMCk7CisgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdp
ZnJhbWUyJykuY29udGVudFdpbmRvdy5zY3JvbGxUbygwLCAxMCk7CiAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKIH0KIDwvc2NyaXB0PgogPC9o
ZWFkPgotPGJvZHkgb25sb2FkPSJzZXR1cElmcmFtZSgpO3J1blJlcGFpbnRUZXN0KCkiPgotICA8
cD5UaGUgaWZyYW1lIGJlbG93IHNob3VsZCByZW1haW4gZ3JleSB3aGVuIHNjcm9sbGluZy48L3A+
Ci0gIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+Ci0gICAgPGlmcmFtZSBpZD0iaWZyYW1lIiAgc3R5
bGU9IndpZHRoOiAzMDBweDsgaGVpZ2h0OiAyMDBweDsiPjwvaWZyYW1lPgorPGJvZHkgb25sb2Fk
PSJzZXR1cElmcmFtZXMoKTtydW5SZXBhaW50VGVzdCgpIj4KKyAgPHA+VGhlIGlmcmFtZXMgYmVs
b3cgc2hvdWxkIHJlbWFpbiBncmV5IHdpdGggbm8gcmVwYWludCBhcnRpZmFjdHMgd2hlbiBzY3Jv
bGxpbmcuPC9wPgorICA8ZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICA8
ZGl2IGNsYXNzPSJzdWJwaXhlbFB1c2hlciI+CisgICAgICAgIDxkaXYgY2xhc3M9InN1YnBpeGVs
UHVzaGVyIj4KKyAgICAgICAgPGlmcmFtZSBpZD0iaWZyYW1lMSIgIHN0eWxlPSJ3aWR0aDogMTUw
cHg7IGhlaWdodDogMjAwcHg7Ij48L2lmcmFtZT4KKyAgICAgIDwvZGl2PgorICAgICAgPC9kaXY+
CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgIDxkaXYgY2xh
c3M9InN1YnBpeGVsUHVzaGVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic3VicGl4ZWxQdXNoZXIi
PgorICAgICAgICAgIDxpZnJhbWUgaWQ9ImlmcmFtZTIiICBzdHlsZT0id2lkdGg6IDE1MHB4OyBo
ZWlnaHQ6IDIwMHB4OyI+PC9pZnJhbWU+CisgICAgICAgIDwvZGl2PgorICAgICAgPC9kaXY+Cisg
ICAgPC9kaXY+CiAgIDwvZGl2PgotICA8L2Rpdj4KLQogPC9ib2R5PgogPC9odG1sPgpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9zdWItcGl4ZWwvdHJhbnNmb3JtZWQtaWZyYW1lLWNvcHktb24tc2Ny
b2xsLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9zdWItcGl4ZWwvdHJhbnNm
b3JtZWQtaWZyYW1lLWNvcHktb24tc2Nyb2xsLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L3N1Yi1waXhlbC90cmFuc2Zvcm1lZC1pZnJhbWUtY29weS1vbi1zY3JvbGwuaHRt
bAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVuIj4KKy5zdWJwaXhl
bFB1c2hlciB7CisgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgIHRvcDogMC40cHg7CisgICAg
ei1pbmRleDogMTsKK30KKy5jb250YWluZXIgeworICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsK
KyAgICBwYWRkaW5nLWxlZnQ6IDgwcHg7CisgICAgcGFkZGluZy10b3A6IDEwcHg7Cit9CisudHJh
bnNmb3JtIHsKKyAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDQ1ZGVnKTsK
K30KKzwvc3R5bGU+Cis8c2NyaXB0IHNyYz0iLi4vcmVwYWludC9yZXNvdXJjZXMvcmVwYWludC5q
cyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KKzxzY3JpcHQ+CitpZiAod2luZG93
LnRlc3RSdW5uZXIpCisgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCitmdW5jdGlvbiBz
ZXR1cElmcmFtZXMoKSB7CisgIHNldHVwSWZyYW1lKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdp
ZnJhbWUxJykuY29udGVudFdpbmRvdy5kb2N1bWVudCk7CisgIHNldHVwSWZyYW1lKGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdpZnJhbWUyJykuY29udGVudFdpbmRvdy5kb2N1bWVudCk7CisgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdpZnJhbWUxJykuY29udGVudFdpbmRvdy5zY3JvbGxUbygw
LCAxMCk7Cit9CisKK2Z1bmN0aW9uIHNldHVwSWZyYW1lKGlmcmFtZSkgeworICBpZnJhbWUub3Bl
bigndGV4dC9odG1sJywgJ3JlcGxhY2UnKTsKKyAgaWZyYW1lLndyaXRlKCI8IURPQ1RZUEUgaHRt
bD5cbjxodG1sPjxib2R5IHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogc2lsdmVyO2hlaWdodDog
MTAwMHB4O1wiPjwvYm9keT4iKTsKKyAgaWZyYW1lLmNsb3NlKCk7Cit9CisKK2Z1bmN0aW9uIHJl
cGFpbnRUZXN0KCkgeworICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaWZyYW1lMScpLmNvbnRl
bnRXaW5kb3cuc2Nyb2xsVG8oMCwgMCk7CisgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpZnJh
bWUyJykuY29udGVudFdpbmRvdy5zY3JvbGxUbygwLCAxMCk7CisgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikKKyAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKzwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHkgb25sb2FkPSJzZXR1cElmcmFtZXMoKTtydW5SZXBhaW50VGVzdCgpIj4KKyAgPHA+
VGhlIGlmcmFtZXMgYmVsb3cgc2hvdWxkIHJlbWFpbiBncmV5IHdpdGggbm8gcmVwYWludCBhcnRp
ZmFjdHMgd2hlbiBzY3JvbGxpbmcuPC9wPgorICA8ZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRh
aW5lciI+CisgICAgICA8ZGl2IGNsYXNzPSJ0cmFuc2Zvcm0iPgorICAgICAgICA8ZGl2IGNsYXNz
PSJzdWJwaXhlbFB1c2hlciI+CisgICAgICAgICAgPGRpdiBjbGFzcz0ic3VicGl4ZWxQdXNoZXIi
PgorICAgICAgICAgICAgPGlmcmFtZSBpZD0iaWZyYW1lMSIgIHN0eWxlPSJ3aWR0aDogMTUwcHg7
IGhlaWdodDogMjAwcHg7Ij48L2lmcmFtZT4KKyAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgPC9k
aXY+CisgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIi
PgorICAgICAgPGRpdiBjbGFzcz0ic3VicGl4ZWxQdXNoZXIiPgorICAgICAgICA8ZGl2IGNsYXNz
PSJzdWJwaXhlbFB1c2hlciI+CisgICAgICAgICAgPGRpdiBjbGFzcz0ic3VicGl4ZWxQdXNoZXIi
PgorICAgICAgICAgICAgPGRpdiBjbGFzcz0idHJhbnNmb3JtIj4KKyAgICAgICAgICAgICAgPGRp
diBjbGFzcz0ic3VicGl4ZWxQdXNoZXIiPgorICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1
YnBpeGVsUHVzaGVyIj4KKyAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1YnBpeGVsUHVz
aGVyIj4KKyAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idHJhbnNmb3JtIj4KKyAgICAg
ICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJwaXhlbFB1c2hlciI+CisgICAgICAgICAg
ICAgICAgICAgICAgICA8aWZyYW1lIGlkPSJpZnJhbWUyIiAgc3R5bGU9IndpZHRoOiAxNTBweDsg
aGVpZ2h0OiAyMDBweDsiPjwvaWZyYW1lPgorICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pgor
ICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgICAgICAgICAgIDwvZGl2PiAgICAg
ICAgICAgICAgICAKKyAgICAgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgICAgICAgPC9kaXY+
CisgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgPC9kaXY+Cisg
ICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4
OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9mYXN0L3N1Yi1waXhlbC90cmFu
c2Zvcm1lZC1pZnJhbWUtY29weS1vbi1zY3JvbGwtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2Zhc3Qvc3ViLXBpeGVsL3RyYW5z
Zm9ybWVkLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9mYXN0L3N1Yi1waXhlbC90cmFu
c2Zvcm1lZC1pZnJhbWUtY29weS1vbi1zY3JvbGwtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDUyIEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmll
dyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDI3OQorICBS
ZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4Mjc5CisgICAgUmVuZGVyQm9keSB7
Qk9EWX0gYXQgKDgsMTYpIHNpemUgNzg0eDI1NQorICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgw
LDApIHNpemUgNzg0eDIwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXpl
IDQ2NXgxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ2NTogIlRoZSBpZnJh
bWVzIGJlbG93IHNob3VsZCByZW1haW4gZ3JleSB3aXRoIG5vIHJlcGFpbnQgYXJ0aWZhY3RzIHdo
ZW4gc2Nyb2xsaW5nLiIKKyAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDM2KSBzaXplIDc4
NHgyMTkKKyAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAyMzR4MjE5Cisg
ICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMjM0LDE5OSkgc2l6ZSA0eDE5CisgICAgICAg
ICAgdGV4dCBydW4gYXQgKDIzNCwxOTkpIHdpZHRoIDQ6ICIgIgorICAgICAgICBSZW5kZXJCbG9j
ayB7RElWfSBhdCAoMjM4LDApIHNpemUgMjM0eDIxOQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDAsMCkgc2l6ZSAweDAKK2xheWVyIGF0ICg4OCw2Mikgc2l6ZSAxNTR4MjA5CisgIFJl
bmRlckJsb2NrIHtESVZ9IGF0ICg4MCwxMCkgc2l6ZSAxNTR4MjA5CitsYXllciBhdCAoODgsNjIp
IHNpemUgMTU0eDIwOQorICBSZW5kZXJCbG9jayAocmVsYXRpdmUgcG9zaXRpb25lZCkgekk6IDEg
e0RJVn0gYXQgKDAsMCkgc2l6ZSAxNTR4MjA5CitsYXllciBhdCAoODgsNjMpIHNpemUgMTU0eDIw
OQorICBSZW5kZXJCbG9jayAocmVsYXRpdmUgcG9zaXRpb25lZCkgekk6IDEge0RJVn0gYXQgKDAs
MCkgc2l6ZSAxNTR4MjA5CisgICAgUmVuZGVyUGFydE9iamVjdCB7SUZSQU1FfSBhdCAoMCwwKSBz
aXplIDE1NHgyMDQgW2JvcmRlcjogKDJweCBpbnNldCAjMDAwMDAwKV0KKyAgICAgIGxheWVyIGF0
ICgwLDApIHNpemUgMTM1eDEwMTYKKyAgICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDEz
NXgyMDAKKyAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTM1eDEwMTYKKyAgICAgICAgUmVuZGVy
QmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgMTM1eDEwMTYKKyAgICAgICAgICBSZW5kZXJCb2R5
IHtCT0RZfSBhdCAoOCw4KSBzaXplIDExOXgxMDAwIFtiZ2NvbG9yPSNDMEMwQzBdCisgICAgUmVu
ZGVyVGV4dCB6STogMSB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCitsYXllciBhdCAoMzI2LDYy
KSBzaXplIDE1NHgyMDkKKyAgUmVuZGVyQmxvY2sgKHJlbGF0aXZlIHBvc2l0aW9uZWQpIHpJOiAx
IHtESVZ9IGF0ICg4MCwxMCkgc2l6ZSAxNTR4MjA5CitsYXllciBhdCAoMzI2LDYzKSBzaXplIDE1
NHgyMDkKKyAgUmVuZGVyQmxvY2sgKHJlbGF0aXZlIHBvc2l0aW9uZWQpIHpJOiAxIHtESVZ9IGF0
ICgwLDApIHNpemUgMTU0eDIwOQorbGF5ZXIgYXQgKDMyNiw2Mykgc2l6ZSAxNTR4MjA5CisgIFJl
bmRlckJsb2NrIChyZWxhdGl2ZSBwb3NpdGlvbmVkKSB6STogMSB7RElWfSBhdCAoMCwwKSBzaXpl
IDE1NHgyMDkKK2xheWVyIGF0ICgzMjYsNjMpIHNpemUgMTU0eDIwOQorICBSZW5kZXJCbG9jayB7
RElWfSBhdCAoMCwwKSBzaXplIDE1NHgyMDkKK2xheWVyIGF0ICgzMjYsNjQpIHNpemUgMTU0eDIw
OQorICBSZW5kZXJCbG9jayAocmVsYXRpdmUgcG9zaXRpb25lZCkgekk6IDEge0RJVn0gYXQgKDAs
MCkgc2l6ZSAxNTR4MjA5CitsYXllciBhdCAoMzI2LDY0KSBzaXplIDE1NHgyMDkKKyAgUmVuZGVy
QmxvY2sgKHJlbGF0aXZlIHBvc2l0aW9uZWQpIHpJOiAxIHtESVZ9IGF0ICgwLDApIHNpemUgMTU0
eDIwOQorbGF5ZXIgYXQgKDMyNiw2NCkgc2l6ZSAxNTR4MjA5CisgIFJlbmRlckJsb2NrIChyZWxh
dGl2ZSBwb3NpdGlvbmVkKSB6STogMSB7RElWfSBhdCAoMCwwKSBzaXplIDE1NHgyMDkKK2xheWVy
IGF0ICgzMjYsNjQpIHNpemUgMTU0eDIwOQorICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBz
aXplIDE1NHgyMDkKK2xheWVyIGF0ICgzMjYsNjUpIHNpemUgMTU0eDIwOQorICBSZW5kZXJCbG9j
ayAocmVsYXRpdmUgcG9zaXRpb25lZCkgekk6IDEge0RJVn0gYXQgKDAsMCkgc2l6ZSAxNTR4MjA5
CisgICAgUmVuZGVyUGFydE9iamVjdCB7SUZSQU1FfSBhdCAoMCwwKSBzaXplIDE1NHgyMDQgW2Jv
cmRlcjogKDJweCBpbnNldCAjMDAwMDAwKV0KKyAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTM1
eDEwMTYKKyAgICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDEzNXgyMDAKKyAgICAgIGxh
eWVyIGF0ICgwLDApIHNpemUgMTM1eDEwMTYKKyAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0
ICgwLDApIHNpemUgMTM1eDEwMTYKKyAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4
KSBzaXplIDExOXgxMDAwIFtiZ2NvbG9yPSNDMEMwQzBdCisgICAgUmVuZGVyVGV4dCB6STogMSB7
I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS13aW4vZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
d2luL2Zhc3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1pZnJhbWUtY29weS1vbi1zY3JvbGwtZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAxMzY5OTMpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS13aW4vZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC1leHBl
Y3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMTcgKzEsMzYgQEAKIGxheWVyIGF0ICgwLDAp
IHNpemUgODAweDYwMAogICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAotbGF5ZXIg
YXQgKDAsMCkgc2l6ZSA4MDB4NTIKLSAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUg
ODAweDUyCi0gICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsMTYpIHNpemUgNzg0eDIwCitsYXll
ciBhdCAoMCwwKSBzaXplIDgwMHgyNjkKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNp
emUgODAweDI2OQorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDE2KSBzaXplIDc4NHgyNDUK
ICAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwwKSBzaXplIDc4NHgyMAotICAgICAgICBSZW5k
ZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAzMTV4MTkKLSAgICAgICAgICB0ZXh0IHJ1biBh
dCAoMCwwKSB3aWR0aCAzMTU6ICJUaGUgaWZyYW1lIGJlbG93IHNob3VsZCByZW1haW4gZ3JleSB3
aGVuIHNjcm9sbGluZy4iCi1sYXllciBhdCAoOCw1Mikgc2l6ZSAzMjV4MjMwCi0gIFJlbmRlckJs
b2NrIChwb3NpdGlvbmVkKSB6STogMSB7RElWfSBhdCAoOCw1Mikgc2l6ZSAzMjV4MjMwCi0gICAg
UmVuZGVyUGFydE9iamVjdCB7SUZSQU1FfSBhdCAoMTAsMTApIHNpemUgMzA0eDIwNSBbYm9yZGVy
OiAoMnB4IGluc2V0ICMwMDAwMDApXQotICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAyODV4MTAx
NgotICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgMjg1eDIwMAotICAgICAgbGF5ZXIg
YXQgKDAsMCkgc2l6ZSAyODV4MTAxNgotICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAs
MCkgc2l6ZSAyODV4MTAxNgotICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNp
emUgMjY5eDEwMDAgW2JnY29sb3I9I0MwQzBDMF0KLSAgICBSZW5kZXJUZXh0IHpJOiAxIHsjdGV4
dH0gYXQgKDAsMCkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDAp
IHNpemUgNDY1eDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNDY1OiAiVGhl
IGlmcmFtZXMgYmVsb3cgc2hvdWxkIHJlbWFpbiBncmV5IHdpdGggbm8gcmVwYWludCBhcnRpZmFj
dHMgd2hlbiBzY3JvbGxpbmcuIgorICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMzYpIHNp
emUgNzg0eDIwOQorICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDE1NHgy
MDkKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxNTQsMTg5KSBzaXplIDR4MTkKKyAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMTU0LDE4OSkgd2lkdGggNDogIiAiCisgICAgICAgIFJlbmRl
ckJsb2NrIHtESVZ9IGF0ICgxNTgsMCkgc2l6ZSAxNTR4MjA5CisgICAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAorbGF5ZXIgYXQgKDgsNTIpIHNpemUgMTU0eDIwOQor
ICBSZW5kZXJCbG9jayAocmVsYXRpdmUgcG9zaXRpb25lZCkge0RJVn0gYXQgKDAsMCkgc2l6ZSAx
NTR4MjA5CitsYXllciBhdCAoOCw1Mykgc2l6ZSAxNTR4MjA5CisgIFJlbmRlckJsb2NrIChyZWxh
dGl2ZSBwb3NpdGlvbmVkKSB7RElWfSBhdCAoMCwwKSBzaXplIDE1NHgyMDkKKyAgICBSZW5kZXJQ
YXJ0T2JqZWN0IHtJRlJBTUV9IGF0ICgwLDApIHNpemUgMTU0eDIwNCBbYm9yZGVyOiAoMnB4IGlu
c2V0ICMwMDAwMDApXQorICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxMzV4MTAxNgorICAgICAg
ICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgMTM1eDIwMAorICAgICAgbGF5ZXIgYXQgKDAsMCkg
c2l6ZSAxMzV4MTAxNgorICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAx
MzV4MTAxNgorICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgMTE5eDEw
MDAgW2JnY29sb3I9I0MwQzBDMF0KKyAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6
ZSAweDAKK2xheWVyIGF0ICgxNjYsNTIpIHNpemUgMTU0eDIwOQorICBSZW5kZXJCbG9jayAocmVs
YXRpdmUgcG9zaXRpb25lZCkge0RJVn0gYXQgKDAsMCkgc2l6ZSAxNTR4MjA5CitsYXllciBhdCAo
MTY2LDUzKSBzaXplIDE1NHgyMDkKKyAgUmVuZGVyQmxvY2sgKHJlbGF0aXZlIHBvc2l0aW9uZWQp
IHtESVZ9IGF0ICgwLDApIHNpemUgMTU0eDIwOQorICAgIFJlbmRlclBhcnRPYmplY3Qge0lGUkFN
RX0gYXQgKDAsMCkgc2l6ZSAxNTR4MjA0IFtib3JkZXI6ICgycHggaW5zZXQgIzAwMDAwMCldCisg
ICAgICBsYXllciBhdCAoMCwwKSBzaXplIDEzNXgxMDE2CisgICAgICAgIFJlbmRlclZpZXcgYXQg
KDAsMCkgc2l6ZSAxMzV4MjAwCisgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDEzNXgxMDE2Cisg
ICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDEzNXgxMDE2CisgICAgICAg
ICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSAxMTl4MTAwMCBbYmdjb2xvcj0jQzBD
MEMwXQorICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MApJbmRleDogTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCShyZXZpc2lv
biAxMzY5OTMpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRp
b25zCSh3b3JraW5nIGNvcHkpCkBAIC00MTAyLDYgKzQxMDIsMTAgQEAgQnVnKGRwcmFua2UpIFsg
V2luIF0gd2ViYXVkaW8vY29kZWMtdGVzdAogCiB3ZWJraXQub3JnL2IvMTAwMDIzIFsgTWFjIF0g
ZmFzdC9zdWItcGl4ZWwvZmlsZS11cGxvYWQtY29udHJvbC1hdC1mcmFjdGlvbmFsLW9mZnNldC5o
dG1sIFsgRmFpbHVyZSBJbWFnZU9ubHlGYWlsdXJlIF0KIAorIyBOZWVkcyByZWJhc2VsaW5lIGFm
dGVyIGJvdHMgY3ljbGUKK0J1ZyhsZXZpdykgWyBXaW4gTWFjIF0gZmFzdC9zdWItcGl4ZWwvc3Vi
LXBpeGVsLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC5odG1sIFsgUGFzcyBJbWFnZU9ubHlGYWlsdXJl
IEZhaWx1cmUgXQorQnVnKGxldml3KSBbIExpbnV4IFdpbiBNYWMgXSBmYXN0L3N1Yi1waXhlbC90
cmFuc2Zvcm1lZC1pZnJhbWUtY29weS1vbi1zY3JvbGwuaHRtbCBbIFBhc3MgSW1hZ2VPbmx5RmFp
bHVyZSBGYWlsdXJlIF0KKwogd2Via2l0Lm9yZy9iLzEwMDQ3OCAgWyBNYWMgXSBjc3MzL2ZpbHRl
cnMvY3VzdG9tL2VmZmVjdC1jdXN0b20uaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogCiB3ZWJr
aXQub3JnL2IvMTAwNDI0IGVkaXRpbmcvc2VsZWN0aW9uL3VzZXItc2VsZWN0LWFsbC1zZWxlY3Rp
b24uaHRtbCBbIEZhaWx1cmUgXQpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
bGludXgvZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC1leHBl
Y3RlZC5wbmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQpDYW5ub3QgZGlzcGxheTogZmlsZSBtYXJrZWQgYXMgYSBiaW5h
cnkgdHlwZS4Kc3ZuOm1pbWUtdHlwZSA9IGltYWdlL3BuZwoKaVZCT1J3MEtHZ29BQUFBTlNVaEVV
Z0FBQXlBQUFBSllDQUlBQUFBVkZCVW5BQUFBS1hSRldIUmphR1ZqYTNOMWJRQTNNREJoTjJSaQpO
R1kzT1RoaU9USm1ZMlJqT0dFd01XSXpZV1V5WXpoalpMa2J5bjBBQUJxUFNVUkJWSGljN2QxWmN4
VG52Y0RoRm9Oa2dRQ0g0QkppCkxZUFl3UmhDMkV3TWlWMUZDbUtjVk9LVWJ2aEkrUWE1NVlhazRz
UmxPNG1KczVBVXU0TFlaQlpiaUYwZ1FLeVd6Q2FkaTY0elo0NTYKUmh0L0NjM1U4MXk0eHRKMDk5
dnZPNlA1TVdwSlZVMU5UUWtBQUhFbXZPb0JBQUJVR29FRkFCQk1ZQUVBQkJOWUFBREJCQllBUURD
QgpCUUFRVEdBQkFBUVRXQUFBd1FRV0FFQXdnUVVBRUV4Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJC
TVlBRUFCQk5ZQUFEQkJCWUFRRENCCkJRQVFUR0FCQUFUTHJWcTFxdWduOXU3ZDIxckNqQmt6L3ZP
Zi95eGV2SGk0Qi92NzMvKytjT0hDSkVsNmUzdFBuVHAxNk5DaGMrZk8KNVhLNUdUTm12T3g1REZO
SFI4ZlFUMkZZZHg3dHdReHJENk05OHF6OEVvOW4yVUdPL1VTOWpMR1o1SEh5YkIyM1M1TWZXT0VJ
eStMeApENHlOaVFOOGJ1WEtsU3RXckpnd1ljTGV2WHVibXBwNmUzdFBuejU5N3R5NW8wZVBmdmZk
ZHlNNDJQdnZ2NS9lT0hQbVRIMTkvWW9WCkt6bzZPazZmUHIxa3laS1JqUDBsRE9zVWpoMDcxdFBU
TTA0R1UxU3BFYjc4bm9jcnY4VGpXWGFRWXo5UkwyTnNKbm1jUEZ2SDdkTGsKbjNTRno3NnllUHdE
WTZQa3R3aW5UWnUyZE9uU0NSUCs3dzRUSmt4WXNXTEZ0R25UZHUzYTlaSkh2WHo1OHN5Wk02dXJx
K2ZQbi8regpuLzNzSmZjMkFzTTZoUTgrK0dEMFJwSU1jekJGbFJyaHkrKzVzdTNkdXplOVVVa1Rs
VCtwcUcxSDlteDltV0VVR3JkTGszL1NqZmJYCkI2Qk1sUXlzSFR0MlZGZFg5L3RnZFhYMWpoMDdD
cXRyWkxxN3UxOStKMFAwL1BuejdBZUhkZlJSR21wK1lDKy8vMUo3R0xOSkxrY1AKSGp6STM2Nllp
U284cWFodFIvQnNMYnFyb3MvRVFZM0cwb3hzSlAza0IxWXhEeDRnMWtEZkloelk0OGVQRHgwNjlQ
RGh3elZyMWpRMgpOaVpKOHVMRmkyUEhqbDI3ZG0zS2xDbGJ0bXlaT25WcTRmMDdPanBhV2xwMjd0
eVovdE0yL2UvV3JWdGJXbHFXTEZseTVzeVp5Wk1uCmI5KysvZUxGaTE5OTlWVjNkM2R0YmUzeTVj
dlRTeHhhV2xxMmJkdDI2TkNoQnc4ZXJGMjdkc2FNR1ljUEgzNzgrUEhiYjcrOWFOR2kKVW9mKzVw
dHZXbHBhNXN5WmMvWHExYWFtcHV3cDNMNTl1N201dWFlbjU2MjMzc3BmNURId1dTUkpjdlhxMWVQ
SGovZjI5cTVldmJxeApzZkh4NDhlZmYvNTVraVJMbHk1ZHRHalI1NTkvWGxWVmxjdmwxcTFiZCtm
T25iYTJ0aVJKUHZyb28xd3VsOTlEMFlGbDV6TjdyUHk4CnBWc1YzaTUwN2RxMVU2ZE85ZlQwckYr
L1Budlc2WHdXem5uMmxJY3k1NlZXYXVmT25lbU5yVnUzSGo1OCtNR0RCL2xOQ2oxOCtQREkKa1NQ
Mzc5K2ZNMmZPNXMyYnE2cXFCaDNZdlh2M0RoMDZsQ1RKd29VTDE2OWYzOXpjbkU3dnIzNzFxNGtU
SjZaek9PaGEvT2hIUHpwNQo4dVRPblRzUEhqeVl6dUhjdVhPM2JObFNhZ2tLSjYzb0dXWFhhQVN6
ZmVMRWlVMmJOaDA5ZXZUUm8wY2JObXlZUDM5K3V2bHdKemw3ClVubWxkcFVmMjRzWEwvTGJMbHk0
TVB0c2JXcHF5dTRrU1pLK3ZyNVRwMDYxdGJYbGNybFZxMVkxTmpiMkcwYXBaK0lRbnp0Rmw2YlUK
ZzNiZ1IxMTJKTm5CWjVkczBGVXVYT3NCSHYvWngzelIvUUNWWWVTQjFkSFI4ZU1mLy9qT25UdEhq
eDVOditLY1BuMjZvYUZodzRZTgp0MjdkT243OCtMWnQyd3J2bjcrV29xbXBLYjJvSzBtU1AvM3BU
MCtlUEprMGFkSXZmdkdMOUc2dHJhM3Z2Ly8rcEVtVDd0eTVzMy8vCi9zV0xGNmNiZG5aMmJ0dTI3
ZWJObThlT0hYdnJyYmQrOHBPZmRIVjFIVHAwS1AzS1ZmVFE2ZXZvL2Z2M3IxNjlXdlFVZW5wNnRt
L2YKM3QzZGZlVElrZHJhMm5uejVnMTZGbDFkWFcxdGJUdDI3T2pxNmpwNDhPRFVxVlByNitzLy9Q
RERmZnYyTFYrKy9MWFhYbXRxYXZyawprMDkrK3RPZjF0Yld6cHc1OC9yMTZ6dDI3Q2lzcTFJRHk4
NW4wV045OE1FSG4zMzJXYnJKenAwNy8vem5QL2M3cVZ1M2JsMjRjR0hiCnRtMDFOVFVYTGx6SW52
V1JJMGY2elhuMmxJY3k1NlZXS3IvV0hSMGRXN2R1dlh2Mzd1SERoN012ZFFjUEhseXhZc1djT1hQ
T25UdjMKdTkvOUxwZkxUWnc0Y2VDQmJkMjZkZkxreWNlT0hWdTllbldTSkQvODRROXYzTGp4N3J2
dnBuV1ZKTW1VS1ZNR1hZdS8vT1V2NlNCMwo3TmlSZnh5V1dvSzhVbWRVZEkyR085dnBmYnE2dXQ1
Nzc3Mm5UNThlUG53NGw4dk5tVE5uQkpPY1BhbTg3SzZ5WTh0dis4a25uMlNmCnJVVjNraVRKMmJO
bmEycHFmdjd6bjErNWNxVzF0Yld4c2JIZk1FbzlFNGV5WHVselp5aGZiWWJ5cU11T0pEdjQ3TFFN
dXNxRkQ1SUIKSGkzWngzeWFqMEJGR3ZtYjI0c1hMNjZ1cm01b2FNaGZnbnJseXBValI0NzgvdmUv
Ly9lLy8zMzc5dTErOXk5NnBjS0hIMzZZSkVuNgpXcExhdFd0WGJXMXRlM3Y3OGVQSDAzOVNweHN1
V0xDZ3VycDY3dHk1ejU0OVc3eDRjVTFOemN5Wk01OCtmVHJBb1NkUG5ueno1czNaCnMyY1hmYjFK
a21UKy9QbTVYRzdxMUtrYk5tdzRlL2JzVU02aXBhVmwvZnIxTlRVMURRME5hOWV1UFg3OGVKSWtr
eVpObWpWcjF2WHIKMTVNazZlcnErdTY3NzlMYlY2NWNlZlBOTjJ0cWF2cnRwT2pBc3ZOWjlGaDFk
WFg1VGJMdnJpVkpjdWJNbWZYcjE5ZlYxVlZYVnhlOQpIams3NTlsVEhzcWNsMXFwNUgrdm0wazNh
V2hveUc5UzZQSGp4M1Btek1ubGNzdVdMWnMyYmRwSEgzMDA2TUNxcXFyZWVPT04yYk5uCnQ3ZTNK
MG5TMmRsWlYxYzNmZnIwd3QwT3VoWURYREdUWFlLOFVtZFVkSTJHTzl2cHpoc2JHNnVycSt2cTZu
N3dneCtjT0hFaVpKTDcKblVLL1hXWEhsamZBVlgzOWRwSWtTVnRiMjZKRmkzSzUzSUlGQzRwdU9N
QXpjWWpQbmFGOHRSbktoR1JIa2gxOGRsb0dYZVYrazFacQpKTm5IZk5IOUFKVmg1TzlncFFyZjVY
N3k1RW1wbEVtU3BOKzdPS25zNVF2Mzd0MXJibTZlUFh2Mk8rKzhrNzQ5VTdoaDRlRUdQZlMyCmJk
dE9uang1OXV6WlRaczJ2ZkhHR3dPY3haUXBVL0pYalF4OEZsMWRYYlcxdGVudGVmUG1OVGMzcDdm
bnpwMzd6VGZmTEZ5NDhPdXYKdjE2eVpNblZxMWNiR3h2YjI5dmZlZWVkN0U0R0dGamhTWlU2MXNE
dTNidVhqN0RzVlhSSnNUblBudkpRNW55QWxTbzhSS252Z3l4WQpzT0Q4K2ZOTGx5NjljZVBHa3lk
UGhqaXdKRWtXTFZxMGYvLytaY3VXZmYzMTEwVi9lbi9ndFNqNk9DeFVkTUNsem1qUU5ScnViQ2RK
Cjh2cnJyM2QzZDZlM1gzS1NDMlYzTmNERlE2Vm1LYnVUSkVsNmVucUtQdEx5Qm40bUR2MjVNL0JU
ZmlnVGtoMUpkdkRaYVJuaU0zSFEKcGNrKzVvRUtGbmw1NXJScDAvSzNMMSsrUExLZEhEaHdZTk9t
VFN0WHJuenR0ZGRlOHRDVEowL2V2SG56aGcwYjBndDNCdkR3NGNQWApYMzk5Z0YwVkhxaWpveU85
L2VMRmkveXJ4Y3laTSsvZXZmdjQ4ZU83ZCsrKy9mYmJEeDQ4dUhYclZpNlhLOXhiM2hBSFZ1cFkv
ZlQyCjloYis3OXk1YysvZHU1ZmVmdmJzV2ZZT1JRK1V2ejMwaFJ2WlN1VTFOamJldUhIajQ0OC9Q
bjM2OUtaTm00WStzTHE2dXJxNnVrdVgKTHQyNWMyZnUzTG5acllhMUZpOXBpR3ZVYjVQODdjTFp6
aTlUZDNkMy9qNHZPY21GUW5aVmRDZlYxZFY5ZlgwRGJEWHdBMzVrNnpXeQpCMjEySklNT1BoblJL
aGMxbE1jOFVERUdENnowMWJxcnF5di9aU2o5NTNYNnExL1NkK3pUMjdObXpicDA2ZEx6NTgrdlhM
bVMvWktYCmJ0WGQzWjNlK2Y3OSsva05Dd3ZnNmRPbkR4OCs3T25wdVhUcFVwSWtMMTY4S0hXNDlM
L3BaNHNlZXUvZXZWZXZYcDAwYVZMUkh4cksKNVhMdDdlM1BuejkvOU9oUmVvMVIrdkhzcmdvSHNH
N2R1aE1uVHR5OWUvZkpreWZIang5ZnMyWk5mbTh6Wjg0OGNPREFnZ1VMSmt5WQpNR3ZXcktOSGp5
NVlzS0RvbFBZYldLa1RMSFdzbXBxYWpvNk9aOCtlcFpkWWZmYlpaNFY3V0xObVRiclY4K2ZQVzF0
Ymt5VDU5Tk5QCkM0K2VuZk9CVDduVW5KZGFxZTd1N20rLy9iYm81b1VPSGp5NFpjdVdYLy82MXp0
MzdteG9hQmppd0ZLTEZpMDZkdXhZT3RWRlYzYUEKdGNnUE1rbVNxcXFxMjdkdi8vV3ZmeTExdm5t
bHpxalVHZzFydGxNblQ1NTgvdng1VDAvUGYvLzczMlhMbHFVZkhNRWs1MCtxMzBpeQp1OHFPcmQr
RTlIdTJGdDFKa2lRTkRRMmRuWjE5ZlgwUEh6NU1MMXJ2TjR4Qm40bURydGRRdnRvTTVWR1hIVWwy
OE5scEticksrWUgxCnV6SEEwbVFmODBBRksvbWIzRk43OSs1TmY1Ym40c1dMcmEydDZaMC8vdmpq
SkVuT256Ky9hdFdxUC96aEQvbmJNMmJNK09xcnI0NGQKTy9iNDhlUDE2OWYzKzRkeXV0V0ZDeGZP
bnorZkpFbGJXMXRyYTJ0NnU3MjlmZW5TcGVuZEprNmMyTnpjM05uWnVYYnQydXZYci9mMAo5S1Ev
a1pROVhINkhwUTdkMnRyYTBOQnc0TUNCMWF0WGYvLzczKzkzYXJObXpXcHRiVzFwYWVuczdGeTFh
dFhzMmJQVGoyZDNWWGkrCmt5ZFBuakJod3RHalJ5OWV2TGgwNmRLWk0yZm1kOWpYMTNmeDRzWE5t
emVuM3lsb2IyL2Z1SEZqMFcrMTlCdFlxZmtzZGF4Y0x0ZmMKM056UjBiRml4WXFiTjIrdVc3ZnVi
My83VzM2cmlSTW56cGd4NCtEQmd4Y3VYRmk2ZE9uZHUzZlhyVnRYZUxWV2VyakNPUi80bEV2Tgpl
YW1WdW5EaFFscCsyYzBMSitIS2xTc3RMUzNwM3dZNGYvNThiVzN0UC8vNXowRUhsbjU4NnRTcFo4
K2UzYmh4WTZudlRBMndGb1duCjhPalJvOWJXMW8wYk4zN3h4UmNERC9pUGYvempzTlpvV0xPZFBp
VGVmUFBOZi8zclg1Y3ZYMTY0Y0dIK3Q0R1BZSkx6SjFWNHVWN1IKWFIwNGNLRGYyUHBOU0w5bmE5
RkZiMmhvcUsrdmIybHBhVzV1dm5Qbnp2TGx5Ny8zdmU4VjdxcXVybTdnWitKUTFtc29YMjFLclZI
aApnYklqeVE0K3UyUkZWemsvc1B4Q3BEY0dXSnJzWTM3NjlPbGZmdm1sWC80T0ZhbHFnT3VOWUpR
OGVQRGd5Wk1uNlk5aTlmWDFQWGp3CjRNc3Z2eHo2TmIrM2I5OCtkKzdjdSsrK081cGpIRk9sZnZT
UGl2R1NqM21nN1BnVmVid0MrL2Z2Zi9Ub1VmclRWYytlUGV2czdKdzEKYTlZUXQrM3Q3VTJ2RkI3
TkFZNnA5THRJNC9NUHdoRGxaUjd6UURueURoYXZ3TFZyMTg2ZE8zZi8vdjNlM3Q2NnVyclpzMmV2
WExreQorL3Nzc3I3NDRvc25UNTVzMkxDaGtpNWh5ZjlWR1UvR0NqYml4enhRcGdRV0FFQXczeUlF
QUFnbXNBQUFnZ2tzQUlCZ0Fnc0FJSmpBCkFnQUlKckFBQUlJSkxBQ0FZQUlMQUNDWXdBSUFDQ2F3
QUFDQ0NTd0FnR0FDQ3dBZ21NQUNBQWdtc0FBQWdna3NBSUJnQWdzQUlKakEKQWdBSUpyQUFBSUpO
TFBXSnRyYTJzUndIbzZxeHNURi8yOHBXa3NLVkJXRDg4QTVXNVpzM2I5NnJIZ0tqd3NvQ2pGc2wz
OEZLL2VZMwp2eG1iY1RCMDI3WnRTNUprMzc1OW5aMmRwZTVUWDErL2ZmdjJKRW51M2J1WEpNbjA2
ZFB6bi9ydGIzK2JKTW1TSlV0R2ZhQU0wN0JXCjlwZS8vT1hZalF5QVlSb2tzQmlmOXV6WnMzdjM3
cGUvRCtPTmxRV29ETDVGV0g3MjdkczNsTmZYM2J0Mzc5dTNid3pHUXhRckMxQXgKQkZiNUdlRDdS
eU8rSitPQmxRV29HQUlMQUNDWXdBSUFDQ2F3S3NTZVBYdGU5UkFZRlZWVlZhOTZDQUFNbThDcUJH
bGRhYXpLazlhVgp4Z0lvT3dLcjdCVjJsY2FxSklWZHBiRUF5b3ZBS20vWm90SllsU0ZiVkJvTG9J
ejRSYVBselMrY3JGUjlmWDJ2ZWdnQWpKeDNzQUFBCmdna3NBSUJnQWdzQUlKaHJzTXFTSzlrcmxa
VUZxQXdDcXl6dDJyVXIrOEZ2di8yMjMwZis4WTkvak1sd0FJRC9SMkRCT0NLZEFTcUQKYTdBQUFJ
SUpMQUNBWUFJTEFDQ1l3QUlBQ0Nhd0FBQ0NDU3dBZ0dBQ0N3QWdtTUFDQUFnbXNBQUFnZ2tzQUlC
Z0Fnc0FJSmkvUlZqMgpQdjMwMDhML2ZlKzk5MTdWU0FDQWxNQXFlL2svRDV6OWs4Q1VOZWtNVUw0
RUZveFQwaG1nZkFtc3N1ZDlEZ0FZYndSVzJmTStSNldTCnpnRGxTMkRCT0NXZEFjcVh3Q3A3M3Vj
QWdQRkdZSlU5NzNOVUt1a01VTDRFRm94VDBobWdmUGxON2dBQXdRUVdBRUF3Z1FVQUVFeGcKQVFB
RUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllBQURCQkJZQVFEQi9LcWNzOWZzcmRRREF1Q0t3
eXRLYU5XdUdjcmNUSjA2TQo5a2lJSlowQktvUEFnbkZFT2dOVUJ0ZGdBUUFFRTFnQUFNRUVGZ0JB
TUlFRkFCQk1ZQUVBQkJOWUFBREJCQllBUURDQkJRQVFUR0FCCkFBUVRXQUFBd1FRV0FFQXdnUVVB
RUV4Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRHQUIK
QUFRVFdBQUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllB
QURCQkJZQVFEQ0JCUUFRVEdBQgpBQVFUV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFNRUVG
Z0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJCQllBUURDQkJRQVFUR0FCCkFBUVRXQUFBd1FRV0FFQXdn
UVVBRUV4Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRH
QUIKQUFRVFdBQUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJC
TllBQURCQkJZQVFEQ0JCUUFRVEdBQgpBQVFUV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFN
RUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJCQllBUURDQkJRQVFUR0FCCkFBUVRXQUFBd1FRV0FF
QXdnUVVBRUV4Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFB
UVRHQUIKQUFRVFdBQUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFF
QUJCTllBQURCQkJZQVFEQ0JCUUFRVEdBQgpBQVFUV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFn
QUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJCQllBUURDQkJRQVFUR0FCCkFBUVRXQUFBd1FR
V0FFQXdnUVVBRUV4Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENC
QlFBUVRHQUIKQUFRVFdBQUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQXNJbXZlZ0NN
eElrVEoxNzFFQmdWVmhhZ01naXNzclI3OSs2aAozRzNQbmoyalBSSmlXVm1BeXVCYmhBQUF3UVFX
QUVBd2dRVUFFRXhnQVFBRWM1RjdlYXVxcXNwK3NLK3ZiK3hIUWl3ckMxRFd2SU5WCjNyS3Z1RjZE
SzRPVkJTaHJBcXZzRmI3dWVnMnVKRllXb0h3SnJFcVF2dnA2RGE0OFZoYWdUQW1zQ3VFMXVGSlpX
WUJ5SkxBQUFJSUoKclBKVFgxOGZmay9HQXlzTFVERUVWdm5adm4zN1VQNFUzWjQ5ZTdadjN6NEc0
eUdLbFFXb0dINFBWbG5hdlh2M3ZuMzdPanM3UzkyaAp2cjUraUg4Mm1ISEZ5Z0pVaHFxbXBxYWlu
MmhyYTB1U1pONjhlV003SGtaRlRVMU4vcmFWclNTRkt3dkErREhRdHdpOUJsY3FLd3NBCm82cmt0
d2diR3h2SGNoeU1HU3NMQUtQTlJlNEFBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllBQURCQkJZQVFE
Q0JCUUFRVEdBQkFBUVQKV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFNRUVGZ0JBTUlFRkFC
Qk1ZQUVBQkJOWUFBREJCQllBUURDQkJRQVFUR0FCQUFRVApXQUFBd1FRV0FFQXdnUVVBRUV4Z0FR
QUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRHQUJBQVFUCldB
QUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllBQURCQkJZ
QVFEQ0JCUUFRVEdBQkFBUVQKV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFNRUVGZ0JBTUlF
RkFCQk1ZQUVBQkJOWUFBREJCQllBUURDQkJRQVFUR0FCQUFRVApXQUFBd1FRV0FFQXdnUVVBRUV4
Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRHQUJBQVFU
CldBQUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllBQURC
QkJZQVFEQ0JCUUFRVEdBQkFBUVQKV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFNRUVGZ0JB
TUlFRkFCQk1ZQUVBQkJOWUFBREJCQllBUURDQkJRQVFUR0FCQUFRVApXQUFBd1FRV0FFQXdnUVVB
RUV4Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRHQUJB
QVFUCldBQUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllB
QURCQkJZQVFEQ0JCUUFRVEdBQkFBUVQKV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFNRUVG
Z0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJCQllBUURDQkJRQVFUR0FCQUFRVApXQUFBd1FRV0FFQXdn
UVVBRUV4Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRH
QUJBQVFUCldBQUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJC
TllBQURCQkJZQVFEQ0JCUUFRVEdBQkFBUVQKV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFN
RUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJCQllBUURDQkJRQVFUR0FCQUFRVApXQUFBd1FRV0FF
QXdnUVVBRUV4Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFB
UVRHQUJBQVFUCldBQUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFF
QUJCTllBQURCQkJZQVFEQ0JCUUFRVEdBQkFBUVQKV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFn
QUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJCQllBUURDQkJRQVFUR0FCQUFRVApXQUFBd1FR
V0FFQXdnUVVBRUV4Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENC
QlFBUVRHQUJBQVFUCldBQUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJN
WUFFQUJCTllBQURCQkJZQVFEQ0JCUUFRVEdBQkFBUVQKV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFF
RTFnQUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJCQllBUURDQkJRQVFUR0FCQUFRVApXQUFB
d1FRV0FFQXdnUVVBRUV4Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFR
RENCQlFBUVRHQUJBQVFUCldBQUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZB
QkJNWUFFQUJCTllBQURCQkJZQVFEQ0JCUUFRVEdBQkFBUVQKV0FBQXdRUVdBRUF3Z1FVQUVFeGdB
UUFFRTFnQUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJCQllBUURDQkJRQVFUR0FCQUFRVApX
QUFBd1FRV0FFQXdnUVVBRUV4Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJC
WUFRRENCQlFBUVRHQUJBQVFUCldBQUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1J
RUZBQkJNWUFFQUJCTllBQURCQkJZQVFEQ0JCUUFRVEdBQkFBUVQKV0FBQXdRUVdBRUF3Z1FVQUVF
eGdBUUFFRTFnQUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJCQllBUURDQkJRQVFUR0FCQUFR
VApXQUFBd1FRV0FFQXdnUVVBRUV4Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFE
QkJCWUFRRENCQlFBUVRHQUJBQVFUCldBQUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdC
QU1JRUZBQkJNWUFFQUJCTllBQURCQkJZQVFEQ0JCUUFRVEdBQkFBUVQKV0FBQXdRUVdBRUF3Z1FV
QUVFeGdBUUFFRTFnQUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJCQllBUUxEL0FlQ256Smla
NzJVRQpBQUFBQUVsRlRrU3VRbUNDCgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0tbGludXgvZmFzdC9zdWItcGl4ZWwvdHJhbnNmb3JtZWQtaWZyYW1lLWNvcHktb24tc2Nyb2xs
LWV4cGVjdGVkLnBuZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNwbGF5OiBmaWxlIG1hcmtlZCBhcyBh
IGJpbmFyeSB0eXBlLgpzdm46bWltZS10eXBlID0gaW1hZ2UvcG5nCgpQcm9wZXJ0eSBjaGFuZ2Vz
IG9uOiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9mYXN0L3N1Yi1waXhlbC90
cmFuc2Zvcm1lZC1pZnJhbWUtY29weS1vbi1zY3JvbGwtZXhwZWN0ZWQucG5nCl9fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K
QWRkZWQ6IHN2bjptaW1lLXR5cGUKICAgKyBpbWFnZS9wbmcKCgppVkJPUncwS0dnb0FBQUFOU1Vo
RVVnQUFBeUFBQUFKWUNBSUFBQUFWRkJVbkFBQUFLWFJGV0hSamFHVmphM04xYlFBNU56a3lOek5t
CllqRTRPV0pqTmpOallqVTNNMlk1TVdReE5EWXhaV1UwT2RpSm9kUUFBQ0FBU1VSQlZIaWM3ZDFi
akZ4blljRHhiKzMxZXRmWnRiMngKSGQvaU9ISGptR0FIeDQ1dEJRZlNwQ29GNVFtcFJVSUkwVWJs
VXRTK3BBVWllS2lFaWxBcnFpSWkwcVpRNmxCVklZQ3FYRVFTMGtZawpCU1UwZ3NRSjJCREh4bzVq
YjJwamIreTExOTVkNytYMDRkQmhzblBaMloxdlpzN00vSDVQSjdQbjhwM2IrcCs1YlVlU0pBRUFn
SGptCk5Yb0FBQUN0Um1BQkFFUW1zQUFBSWhOWUFBQ1JDU3dBZ01nRUZnQkFaQUlMQUNBeWdRVUFF
Sm5BQWdDSVRHQUJBRVFtc0FBQUloTlkKQUFDUkNTd0FnTWdFRmdCQVpBSUxBQ0F5Z1FVQUVKbkFB
Z0NJVEdBQkFFUW1zQUFBSWlzWldCMmxQZjc0NDVzMmJackR4dDc5N25lbgpFK1BqNDUvNXpHZVdM
MSsrZlBueXIzemxLM01jZXhWbXRRdHozdCs2cmIvVUdtbzk4a0s1VTV4bGhZT3MvNEdxUm4wT2Nr
YnUxc3llCm10ekE4a2ZZRk5jL1VDZEpDU0dFdi83cnZ4NGJHMHVua3lRWkhSMjkrKzY3UXdocjFx
d3BzMkFsUHZlNXp6MzIyR05EUTBNUFB2amcKNy96TzcxU3pxcm1aMVM1Y2VlV1ZWZTV2eE1FVVZX
cUVxMWF0cXVuSVcwYjFwNkNGTmZadXpleXB5ZDEwdGY3OUFEU3BqaVJKaW9iWApsaTFibm52dXVj
V0xGNGNRT2pwK005dlEwTkF0dDl6eXdnc3ZkSGQzbDFxd0V1dlhyejkwNk5DQ0JRdm12SVlxalky
TlZiNExzNXE1CjFvT1oxUnBxUGZKbWw3dXdXK2xBNVhZcTFySnp1MXVyR1VhK3pKNmEzTUF5TzBL
Z3NVcStSTGh2Mzc2MHJ2SXRXYkprMzc1OUN4Y3UKckhLcng0OGZyMDlkSlVseTRjS0Z3c2RudFF2
VjcyK2gvSUZWdi81U2E2akZ5RnZHL3YzN2M5TXRjNkR5ZHlyV3NuTzRXd3RYVmVwTwpuRkgwVXpQ
bmtVeVRHMWpMWER4QVhITi9rL3VoUTRkMjdkcTFlUEhpcjMvOTYra2pvNk9qSC9uSVJ4WXRXclIx
NjlhREJ3OU9tei8zClRvV09qbzZwcWFuMDdWeFBQUEhFOWRkZi8wLy85RThyVjY3Y3VYTm5DT0Zm
Ly9WZk4yellzR0RCZ2l1dnZQTGVlKzhOSWFUenZQYmEKYTd0MzcxNjhlUEUzdnZHTi9mdjNiOSsr
dmErdjc3Nzc3aXV6NlgvOHgzOWN0R2pSbi83cG4zWjBkQlRkaGYvKzcvL2V2SGx6ZjMvLwpWNy82
MWR5RDVmY2loUERkNzM1MzllclZ5NWN2LytkLy91ZjBPS1Q3OHFsUGZTcWQ3dXpzN092cisrWTN2
L2xuZi9abjZZOUdSMGZ6CjExQjBZSVhIczNCYjRmL2ZHMWM0bmUraGh4NjYvdnJyKy9yNkhuend3
Y0tmRmg3endsMnU1SmdYbnFuY0tVNFgvOVd2ZnZYT2Q3NXoKOGVMRnVVWHkvZktYdjd6NTVwc1hM
bHo0d1E5K2NHSmlvcEtCUGZqZ2cra3VmL1NqSHcwaDVBN3Y4UEJ3N2hqT2VDNGVmdmpoZEpBZgor
TUFIMG1QNFIzLzBSMlZPUWY1Qks3cEhoZWRvdGtmNys5Ly8vdWJObS9mdTNYdmpqVGRlZHRsbDMv
cld0M0tMei9ZZ0YrNVVtVlZOCkcxditza1h2MXFJckNTRk1UVTE5NWpPZldicDA2ZXJWcTcvMnRh
OFZEcVBVblZqNXZWUEpiNXRLcnJyQ2tSUU92dkNVelhpV1V6TmUKLzRYWFBOREtLbmtkc1hDMkVN
STk5OXh6NXN5Wko1NTRZdFdxVmVtRG4vclVwNzc1elcrT2pvNCsvdmpqNzMzdmU2Y3RzbnIxNnR4
NgpjaE1yVnF3SUlUenl5Q081MmE2NjZxcWpSNCtPajQvLzhJYy92T3l5eTNJTDd0bXo1OHlaTTkv
OTduZjcrL3Z2dWVlZU45OTg4OGtuCm4xeStmSG1aVFM5ZXZQaklrU01QUGZSUTBkME1JVHp3d0FN
WExseDQ5ZFZYMy9uT2QzNzcyOTh1czZyY0dwNS8vdm5mLy8zZlAzMzYKOUgvKzUzOHVXYkxrNmFl
ZlRwTGsrUEhqcTFldlBubnlaRHJQbWpWclRwdzRrU1RKd01EQW1qVnIzbnp6eldtYkxoeFkwZU5a
ZEZ0SApqaHpKTFhYZ3dJSENRL3JVVTAvZGV1dXRodzhmUG5QbXpPYy8vL25DZlM4ODVvVzdYTWt4
TDNXbWNoUDMzSFBQNE9EZ1k0ODlsbHNrCjN6dmU4WTcwK0tlRDdPbnBtWEZnazVPVHp6Nzc3T2JO
bTArZE9wVWt5ZFRVMUxwMTYxNTg4Y1g4MWM1NExvcGVoNlZPUVU2cFBTcDYKam1aN3RLKzQ0b29R
d24zMzNUYzBOSFQ0OE9GM3ZldGREei84OEp3UGNxbWJ1bkJWaFdQTExWdnFLQld1SkVtU0wzemhD
MS84NGhkSApSa2IyN05senpUWFhGQzVWNWs2czVONnA4TGROSlZkZDRVZ0tCMTk0V0VxZDVXbUhh
TVpUVTNqTkZ6MVRRR3VZZTJDbEV4TVRFL1BtCnpVdW4wemQ3cGhZdFdqUnRrWkdSa2NKZjJlbi9u
azZiYzNSMDlPdGYvL3EyYmR2U0gxMjhlREYvYzducHljbkozSFRSVFY5Ly9mWDMKM1hmZitQajRq
RHYxeTEvK2N2djI3V1ZXbFp2NWxsdHVPWExrU0RxOVo4K2VMVnUycE5OMzNubm5ONzd4alNSSmZ2
S1RuM1IwZE54MwozMzFKa3Z6OTMvLzkzWGZmWGJqcHdvRVZQWjZsdGpVdEN3cEgrTW9ycjZUVFo4
K2VMWHA0cHoxWXVNdVZIUE9rNEV6bFRuSCtKdklYCno3ZG8wYUtSa1pGMFc1czNiNjV3WUVtUzNI
MzMzWC8zZDMrWEpNblRUei85cm5lOXEzRE41YzlGMGVzd0tYRUtpaDYwL0QwcWRZNksKTGxocXA5
SlhySEl6dlBEQ0N4czNic3hmdzZ3T2Nwbi9hNXEycXNLeDVmNnoxRkVxWEVtU0pPdlhyejl6NXN5
MGJlVXZWZjVPblBIZQpxZkMzVFNWWFhlRklDZ2RmZUZobXZCTXJQRFdGMXp6UXdxb05yUHpwaFFz
WFZyaWVvb3VuWG56eHhaMDdkMzcrODU5LzVaVlhacHkvCi9LYVBIajM2d1E5K2NNT0dEYzgrKzJ6
NW5icDA2Vkw2TnRWU3E4ck4zTlhWZGVIQ2hYUjZlSGc0Ti9Pamp6NTZ4eDEzSkVueWtZOTgKNUs2
NzduclBlOTZUSk1rTk45endpMS84b3BLQkZkMnBVdHNxSDFnOVBUMlhMbDBxdXB1bEhpeS95Nldt
eTUrcE1xYzQ5ZWQvL3VkLwo4emQvYytIQ2hXOS8rOXNyVnF5b2ZHQ0hEeCsrN3JycnBxYW0vdkFQ
Ly9DQkJ4NG9uR0hHYzFINWRaVnZWdWVvMUlLbGRtcmExWmliClp3NEh1VlJnelhoblZiTENvaXVa
UDM5KytUMHFmeWRXZnI3eXAyZDEwWllaeVl5RFR5cTRFeXM4TlVXdmVhQlZ4UXlzYmR1MjVSNzgK
OTMvLzl6THJLZk43Y01PR0Rla1RNSU9EZzVYL1ExaG0wei80d1EvV3IxOWZmcWYyN3QyN1k4ZU9N
cXZLMzlCLy9NZC9wTk1uVDU2OAovZmJiMCttUmtaRmx5NVlkUEhqd3V1dXVHeHNiVzcxNjlWTlBQ
YlZ6NTg3QzdSWWRXS21kS3JxdEVNTFUxRlJ1T3Yrck5KSWsrZkNIClAvempILzg0blI0YUdzck5V
R3JmWjl6bFV0UGx6OVNNLzlTOS9QTEx1M2Z2N3U3dTNyUnAwNU5QUGxuNXdKSWtlZC83M25mLy9m
ZXYKV2JPbWNOZVNDczVGeE1BcWRZNUtMVmhxcDBJSXVTdytlUERnMXExYjArazVIT1JTZ1RYam5W
WEpDb3V1WlBueTVSTVRFK1gzT2lsOQpKMVordnBLM0h2bmNnek5ldEdWR1Vzbmd5OXlKTTA3a1R4
ZTk1b0ZXTlVOZ1RVMU4vZlNuUHcwaC9PUW5QNW1jbkV3ZlBIcjBhQWhoCllHQWdTWklUSjA2RUVJ
NGRPNVlreVdjLys5bjc3NzkvZUhqNFc5LzZWdnEvcFBsZWYvMzFFTUxycjc5KzdOaXhFTUxldlh1
VEpFbW4KUjBkSGM3TXRYYnIwb1ljZUdoZ1krUEtYdnp4djNyeUxGeSttQzZhYmUrT05OM0xUQXdN
RElZU2pSNCtXMm5RSTRUdmYrYzZycjc2NgpiTm15d2wyNzdMTEw5dXpaTXp3OC9PcXJyKzdhdGV2
eHh4OVBIeTljVlRxQTQ4ZVBKMG55N0xQUFhuUE5OZi96UC85ejh1VEpEMzNvClF5Kzg4RUp1aFIv
NHdBZTJiZHYydDMvN3QwbVMzSG5ublZkZGRkVzk5OTViL0tDL2RXQ2xqbWVwYlYxKytlVlBQUEhF
bVRObjBtOTkKWEx0MmJmNElUNXc0OGU1M3YvdTU1NTRiSGg3K3E3LzZxeERDNnRXcjg3ZGVlTXhM
N1hMNVkxN3FUTDMrK3V2cEc4WHlGMC8zS04vYgozdmEyZE1DekdsanFrVWNlNmU3dS91eG5QMXYw
OEpZL0Y3bEJKa25TMmRuNXd4LytjTXVXTGFWT1FVNnBQU3B6UGN4cXAwSUlkOTExCjE3bHo1d1lH
QnY3Z0QvNGdWd3h6T01pNW5abzJrc0pWRlk0dHQyelJ1N1hvU3BJaytkQ0hQdlRVVTA5TlRrNys0
aGUveUgxUlZ2NHcKeXQrSjVjOVg1Yjl0S3JucUNrZFNPUGpDdzFMMExPZHV1bWtUWlU1TjRUVVB0
TEFaQWl1ODFiUUhwMDJmTzNmdS9lOS9mMWRYMS9idAoyMTk5OWRYeXE4cTNidDI2M0d6MzNIUFBv
a1dMZHUzYWRmYnMyYmUvL2UyZi92U25TMjF1eGsySEVQN2xYLzVsOGVMRlJVUG54UmRmCjNMMTdk
MWRYMTlhdFc3LzN2ZS9sSGk5YzFiVGR2L2ZlZTlQUEhIM25POS9KWCtFRER6elEzZDE5K3ZUcEpF
a2VmdmpocnE2dXdjSEIKVWtjMWYyQ2xkcXJVdHI3ODVTOWZkdGxsTjkxMFUvby8vWTg5OXRpMHBY
NzJzNTl0M0xoeDdkcTFUejc1NUxYWFhwdS9kN2xONUIvego4cnRjYXJyTW1TcXpSem0zM0hKTDdr
ZDlmWDI1VDRlVkgxaHFmSHg4MGFKRnI3MzJXdEhEVy81YzVJL253eC8rY0g5Ly93OSs4SU1aCkJ6
emJjelNybzUzT2xuN0E3Y29yci96cVY3K2FtM2tPQnptM1U5TkdVbXBWK1dNclBDRFRObFM0a2lS
SlRwNDgrWjczdktlN3UzdjcKOXUzLzltLy9ObTFWeVV4M1l1WG5LMys2OG90MjJ1bVlOcExDd1Jj
ZWxxSm51ZWdoS245cUNxLzVKRWwyNzk1ZDlKZ0F6UzdPbHdIQwpyUHo4NXo4L2ZmcjA3YmZmSGtL
WW5KemN0Mi9mN3QyN0svOTJvaC85NkVkZit0S1hIbjMwMFZxT3NhNWlmUzBubVZYbE5RODBIWC9z
Cm1RYTQ0NDQ3RGg0OG1ENUxjZTdjdVdlZWVlYU9PKzZvY05ueDhmRi8rSWQvK011Ly9NdWFqckNl
VHA0OEdVSklYLytpVlZWenpRUE4KU0dEUkFGLzV5bGYyN05temJ0MjZoUXNYN3R5NTgralJvK2wz
UE03b3hodHYzTEJod3ljLytjbmJicnV0eG1Pc24vUlBScVpmbmtTcgptdk0xRHpRcEwwd0FBRVRt
R1N3QWdNZ0VGZ0JBWkFJTEFDQXlnY1hNMGo5QkNBQlVTR0F4ZzdHeHNlOTk3M3NIRHg1czlFQUFv
R2wwCk5ub0FaTnJZMk5qM3YvLzlYLy82MTcvKzlhOURDQnMzYm16MGlBQ2dDWGdHaTVKeWRUVi8v
dndRd2pQUFBPTjVMQUNvaE1DaXVGeGQKZFhWMVhYWFZWY3VXTFFzYUN3QXFJN0FvSXIrdTFxNWR1
MkRCZ21YTGxta3NBS2lRd0dLNndycEtIOWRZQUZBaGdjVmJsS3FybE1ZQwpnRW9JTEg2cmZGMmxO
QllBekVoZzhSdVYxRlZLWXdGQWVRS0xFR1pUVnltTkJRQmxDQ3htWFZjcGpRVUFwUWlzZGplM3Vr
cHBMQUFvClNtQzF0V3JxS3FXeEFLQ1F3R3BmMWRkVlNtTUJ3RFFDcTAzRnFxdVV4Z0tBZkFLckhj
V3RxNVRHQW9BY2dkVjJhbEZYS1kwRkFDbUIKMVY1cVYxY3BqUVVBUVdDMWxWclhWVXBqQVlEQWFo
ZjFxYXVVeGdLZ3pRbXN0bERQdWtwcExBRGFtY0JxZmZXdnE1VEdBcUJ0Q2F3VwoxNmk2U21rc0FO
cVR3R3BsamEycmxNWUNvQTBKckphVmhicEthU3dBMm8zQWFrM1pxYXVVeGdLZ3JRaXNGcFMxdWtw
cExBRGFoOEJxCk5kbXNxNVRHQXFCTkNLeVdrdVc2U21rc0FOcUJ3R29kMmErcmxNWUNvT1VKckJi
UkxIV1YwbGdBdERhQjFRcWFxNjVTR2d1QUZpYXcKbWw0ejFsVktZd0hRcWdSV2MydmV1a3BwTEFC
YWtzQnFZczFlVnltTkJVRHJFVmpOcWpYcUtxV3hBR2d4QXFzcHRWSmRwVFFXQUsxRQpZRFdmMXF1
cmxNWUNvR1VJckNiVHFuV1YwbGdBdEFhQjFVeGF1NjVTR2d1QUZpQ3dta1k3MUZWS1l3SFE3QVJX
YzJpZnVrcHBMQUNhCm1zQnFBdTFXVnltTkJVRHpFbGhaMTU1MWxkSllBRFFwZ1pWcDdWeFhLWTBG
UURNU1dObWxybElhQzRDbUk3QXlTbDNsMDFnQU5CZUIKbFVYcXFwREdBcUNKQ0t6TVVWZWxhQ3dB
bW9YQXloWjFWWjdHQXFBcENLd01VVmVWMEZnQVpKL0F5Z3AxVlRtTkJVREdkVFo2QUlTZwpybVl2
RGF6QndjRm5ubmttaExCeDQ4WUdENmhxYjd6eHhtT1BQZGJvVWREaVB2YXhqelY2Q05BdVBJUFZl
T3BxYmxyc2VheWxTNWR1CjNicTEwYU1BSUE3UFlEV1l1cXBHS3oyUHRXREJncXV2dm5yaHdvVnZ2
UEZHbzhkQ3F4a2JHenQxNmxTalJ3SHRSV0Exa3JxcVhvczEKMXJKbHk4NmVQZHZvZ1FCUUxTOFJO
b3k2aXFVMVhpdnM2T2hvOUJBQWlFWmdOWWE2aXFzMUdpdUVrQ1JKbzRjQVFBUUNxd0hVVlMyMApU
R01CMEFJRVZyMnBxOXJSV0FCa2hNQ3FLM1ZWYXhvTGdDd1FXUFdqcnVwRFl3SFFjQUtyVHRSVlBX
a3NBQnBMWU5XRHVxby9qUVZBCkF3bXNtbE5YamFLeEFHZ1VnVlZiNnFxeE5CWUFEU0d3YWtoZFpZ
SEdBcUQrQkZhdHFLdnMwRmdBMUpuQXFnbDFsVFVhQzRCNkVsangKcWF0czBsZ0ExSTNBaWt4ZFpa
bkdBcUErQkZaTTZpcjdOQllBZFNDd29sRlh6VUpqQVZCckFpc09kZFZjTkJZQU5TV3dJbEJYelVo
agpBVkE3QXF0YTZxcDVhU3dBYWtSZ1ZVVmROVHVOQlVBdENLeTVVMWV0UVdNQkVKM0FtaU4xMVVv
MEZnQnhDYXk1VUZldFIyTUJFSkhBCm1qVjExYW8wRmdDeENLelpVVmV0VFdNQkVJWEFtZ1YxMVE0
MEZnRFZFMWlWVWxmdFEyTUJVQ1dCVlJGMTFXNDBGZ0RWRUZnelUxZnQKU1dNQk1HY0Nhd2JxcXAx
cExBRG1SbUNWbzY3UVdBRE1nY0FxU1YyUjBsZ0F6SmJBS2s1ZGtVOWpBVEFyQXFzSWRVVWhqUVZB
NVFUVwpkT3FLVWpRV0FCVVNXRytocmloUFl3RlFDWUgxVytxS1NtZ3NBR1lrc0g1RFhWRTVqUVZB
ZVFJckJIWEY3R2tzQU1vUVdPcUtPZEpZCkFKVFM3b0dscnFpR3hnS2dxTFlPTEhWRjlhNjk5dHB0
MjdZRmpRVkFuczVHRDZCaDFCWFZXN0Jnd1EwMzNEQThQSHorL1BsRGh3NDkKODh3eklZU05HemMy
ZWx3QU5GaWJCcGE2b25xam82UG56cDA3ZVBEZzBORFF3b1VMdTdxNkxsMjZwTEVBQ08wWldPcUs2
bzJPanA0KwpmZnJXVzI5ZHQyNWQrcDluejU0OWVmTGt4TVNFeGdLZzdkNkRwYTZvM3JTNkNpRjBk
M2ZmZnZ2dEsxZXU3T3pzRE42UEJkRDIyaXV3CjFCWFZLNnlyVkU5UGo4WUNJTlZHZ2FXdXFGNnB1
a3BwTEFCUzdSSlk2b3JxbGErcmxNWUNJTFJKWUtrcnFsZEpYYVZ5amRYZDNSMDAKRmtCYmF2MVBF
YW9ycWxkWVY2Kzk5bHB2YisvazVPVEZpeGU3dXJvV0wxN2MxOWVYbTcrbnArZjNmdS8zWG5ycHBm
SHg4VmRlZWNYbgpDZ0hhVFlzSGxycWlla1dmdXpweDRzVGh3NGVUSkVtU1pONjhlZTk5NzN1bkxk
WGQzVDArUHI1OSsvYWVucDY5ZS9mKzZFYy82dTd1Cm52SFpMd0JhUXlzSGxycWllbWxkOWZmM0h6
dDJMRCtQYnI3NTVoRENvVU9IUWdoVFUxTWpJeU9GeTE1eHhSVTlQVDNYWFhmZGtpVkwKZW5wNnJy
amlpcm9ORzRER2F0bjNZS2tycXBmVzFZNGRPMjY1NVpiUjBkSG5ubnN1LzZjMzMzenp0ZGRlRzBM
bzZPaEkzMjZWNzhDQgpBNisvL3ZyZzRPRGs1T1RLbFN2WHJsM2IxZFZWdjZFRDBGQ3RHVmpxaXVy
bDZtclZxbFVoaEp0dXVxbFVZM1YyZHZiMDlPUS9mdURBCmdYMzc5cjN0YlcvcjdPeWNQMzkrWDE5
ZlIwZEhYVWNQUUVPMVlHQ3BLNm8zcmE1U3BScHIvZnIxUTBORHVVZlN1dHExYTFkdmI2KzYKQW1o
UHJSWlk2b3JxRmEyclZLbkdXck5tVFRxdHJnQUlMUlpZNm9ycWxhbXIxUGJ0Mnk5Y3VEQ3RzVkxx
Q29CVTZ3U1d1cUo2TTlaVgpraVJqWTJPYk4yOGVIaDZlMWxqcUNvQ2NGZ2tzZFVYMUtxeXJ5Y25K
RU1LV0xWdnlHMHRkQVpDdkZRSkxYVkc5V2RWVkt0ZFk2Z3FBCmFabytzTlFWMVp0RFhhVzJiTmx5
NnRRcGRRWEFOTTBkV09xSzZzMjVya0lJeDQ4Zm41aVlVRmNBVE5QRWdhV3VxRjZWZFhYczJERjEK
QlVDaFpnMHNkVVgxaXRiVitmUG54OGZIMDJsMUJjRGNOR1ZncVN1cVYrcTVxeE1uVGp6Ly9QUGo0
K1BxQ29BNWE3N0FVbGRVcjJoZApYYng0TVlTd2NlUEc1Y3VYUC8vODg4UER3K29LZ0xscHNzQlNW
MVN2MUhOWEJ3NGMrTm5QZmhaQzJMUnAwOUtsUy9mdTNUc3hNVEZ0CldYVUZRQ1dhS2JEVUZkVXJX
bGRqWTJNaGhHM2J0bzJOamIzODhzdGpZMlBYWEhQTnlwVXJwNmFtOHBkTjYycm56cDNxQ29EeW1p
YXcKMUJYVksxcFhrNU9UenovLy9KRWpSMElJTzNic0dCa1oyYjkvZndqaHlpdXY3T3JxeXMyV3E2
dSt2ajUxQlVCNXpSRlk2b3JxbFhwbApjUDc4K2R1M2J6OXk1TWlSSTBmR3hzWnV1T0dHZWZQbTVU
NUltRkpYQU14S0V3U1d1cUo2NWIvdnFyZTNkOWV1WGIvNjFhK09IajBhClFyanV1dXZ5THpOMUJj
QnNaVDJ3MUJYVnErVGJSRHM3TzdkdTNUbzRPRGp0azRQcUNvQTU2R3owQU1wUlYxU3Y4dTlxWDdS
bzBUdmUKOFk3OGZsSlhBTXhOZHAvQlVsZFViN1ovQ1VkZEFSQkZSZ05MWFZHOXRLNjZ1cnA2ZTN1
THpqRGpkN1dyS3dEbUpvdUJwYTZvWGxwWApWMTk5ZGU1cjJhZk5vSzRBcUozTUJaYTZvbnE1dWxx
eVpNbUtGU3Y2Ky91bk5aYTZBcUNtc2hWWTZvcnE1ZGRWK3NpMHhsSlhBTlJhCmhnSkxYVkc5d3Jw
SzVScnIvUG56NmdxQVdzdEtZS2tycWxlcXJsTDVqVlg0VTNVRlFFU1pDQ3gxUmZYSzExVnF4WW9W
bDE5Kytjc3YKdjN6eDRzWDh4OVVWQUhFMVByRFVGZFdycEs1U2hZMmxyZ0NJcnNHQnBhNm9YdVYx
bGNwdkxIVUZRQzAwOGsvbHFDdXFOOXU2U3ExWQpzU0tFOE1JTEwzUjJkcW9yQUtKcjJETlk2b3Jx
emEydVVoMGRIZW9LZ0JwcFRHQ3BLNnBYVFYyZFBuMTZjSEJRWFFGUUk0MTVpZkRzCjJiUDkvZjE5
ZlgxWFhISEY0T0JnUThaQVUxTlhBR1JaWXdKcjVjcVZsMTkrZWZxMTJ0M2QzUU1EQXcwWkJrMUtY
UUdRY1ExN0Q5YUMKQlF0NmUzdERDTXVXTFZ1N2RtMmpoa0hUVVZjQVpGOGp2NlpCWXpGYjZncUFw
dERnNzhIU1dGUk9YUUhRTEJyL1RlNGFpMHFvS3dDYQpTT01ESzJnc1pxS3VBR2d1bVFpc29MRW9U
VjBCMEhTeUVsaEJZMUdNdWdLZ0dXVW9zSUxHNHEzVUZRQk5LbHVCRlRRVy8wOWRBZEM4Ck1oZFlR
V09ocmdCb2Nsa01yS0N4MnB1NkFxRFpaVFN3Z3NacVYrb0tnQmFRM2NBS0dxdjlxQ3NBV2tPbUF5
dG9ySGFpcmdCb0dWa1AKcktDeDJvTzZBcUNWTkVGZ0JZM1Y2dFFWQUMybU9RSXJhS3pXcGE0QWFE
MU5FMWhCWTdVaWRRVkFTMnFtd0FvYXE3V29Ld0JhVlpNRgpWdEJZclVKZEFkRENtaSt3Z3NacWZ1
b0tnTmJXbElFVk5GWXpVMWRRWjI0VHFMOW1EYXlnc1pxVHVnS2dIVFJ4WUFXTjFXelVGUUJ0Cm9y
a0RLMmlzNXFHdUFHZ2ZUUjlZUVdNMUEzVUZRRnRwaGNBS0dpdmIxQlVBN2FaRkFpdG9yS3hTVndD
MG9kWUpyS0N4c2tkZEFkQ2UKV2lxd2dzYktFblVGUU50cXRjQUtHaXNiMUJVQTdhd0ZBeXRvckVa
VFZ3QzB1ZFlNcktDeEdrZGRBVURMQmxiUVdJMmdyZ0FndEhaZwpCWTFWWCtvS0FGSXRIbGhCWTlX
THVnS0FuTllQcktDeGFrOWRBVUMrdGdpc29MRnFTVjBCd0RUdEVsaEJZOVdHdWdLQVFtMFVXRUZq
CnhhYXVBS0NvOWdxc29MSGlVVmNBVUVyYkJWYlFXREdvS3dBb294MERLMmlzNnFnckFDaXZzOUVE
YUppMHNZYUhoNWN0V3haQ0dCZ1kKYVBTSW1vTzZxcW5lM3Q2dFc3ZWVQMzkrLy83OTU4K2ZiL1J3
YUc2ZG5aMXIxcXpadEduVHFWT25qaDA3MXVqaFFIdHAzOEFLR212MgoxRld0ZFhaMlRreE1EQXdN
N055NWMySmlvc3ljWjg2YzJiOS92K2RmTTJoa1pPVDgrZk5idG15cDNTYUdob2IyNzkvZjM5Ky9Z
OGVPCk1yTjFkSFNNam80ZU9uVElkUUwxMTlhQkZUVFdiS2lyT2poLy92emc0T0NtVFp2NisvdG5u
SG4rL1BucEs5MWt6ZWpvYVBvcnBhYTYKdXJwV3JseFpmcDVMbHk2RkVGNTU1WlZhRHdhWXBrM2Zn
NVhQKzdFcW9hN3FJejNPbGRRVlZLS3JxNnU3dS90Ly8vZC9HejBRYURzQwpLd1NOTlJOMVZUZFRV
MU5GWHhsODZhV1g3cnJycnZxUGgyWlI1Z3BKa3FUOHk4MUFMUWlzMzlCWXBhaXJobnZwcFpmdXZQ
UE9sMTU2CnFkRURJYVp6NTg3dDM3Ky82TVFjbkQxNzl2Nzc3MWZoa0IwQzY3YzBWaUYxMVhEcXFs
V05qNDhQRFEwVm5aZ2JqUVdaSXJEZVFtUGwKVTFjTnA2NllGWTBGMmRIdW55SXM1SE9GS1hXVkJW
ZGZmZlVmLy9FZkM2eW1NelUxTlRvNlduNmVTNWN1cGJNVlRzeTQvdlN6Z1VXbAoxOHlzUnd6RUpy
Q0swRmpxS2lPV0xsMzZKMy95SnlFRXowazBuY25KeVVwbW1KeWNMSnlZODhwdnZQSEdQWHYyM0hq
ampiTWVMaENiCndDcXVuUnRMWFdWS3JyRWVlZVNSUm8rRm1QcjYralp1M0ZoMFltN1VGV1NLd0Nx
cFBSdExYV1ZRMmxpMzNYWmJvd2RDVEoyZG5lazcKUGdzbjVrQmRRZFo0azNzNTdmYWVkM1hWY0tY
K2lWMjZkS2wvT3ltanpCVlNUYmNCY3lhd1p0QStqYVd1c21ESmtpVnIxNjc5NlU5LwoydWlCMENM
T25EbHo4T0RCbXY1aFJLQW9MeEhPckIxZUsxUlhHZEhaMmJscTFhb1F3bzkvL09QaDRlRXljMTY2
ZEdsa1pPVFFvVVAxCkdocVZtcHljSEI4ZjM3dDNiKzAyTVQ0K0hrSTRjK2JNZi8zWGY1V1pyYk96
Yy9ueTVaczJiYXJrazRsQVhBS3JJcTNkV09vcU95WW4KSjhmR3h2cjYrbGF2WHUzUG0xQ2xlZlBt
ZFhkM2QzWjJYcng0c2RGamdiWWpzQ3JWcW8ybHJqSWw5MmZqNW5BNm9LaUppWW0rdnI2dApXN2Ur
L1BMTGpSNEx0SkdPSkVrYVBZWm1NajQrbnI1d016ZzQyQUtOcGE0QW9CYTh5WDEyV3VrOTcrb0tB
R3BFWU0xYWF6U1d1Z0tBCjJoRlljOUhzamFXdUFLQ21CTlljTlc5anFTc0FxRFdCTlhmTjJGanFD
Z0RxUUdCVnBia2FTMTBCUUgwSXJHbzFTMk9wS3dDb0c0RVYKUWZZYlMxMEJRRDM1b3RGb012c2Rw
TlhYMWE1ZHUzcDdlOVVWQUZUSU0xalJaUE41TEhVRkFQVW5zR0xLV21PcEt3Qm9DSUVWV1hZYQpT
MTBCUUtNSXJQaXkwRmpxQ2dBYVNHRFZSR01iUzEwQlFHTUpyRnBwVkdPcEt3Qm9PSUZWUS9WdkxI
VUZBRmtnc0dxcm5vMmxyZ0FnCkl3Uld6ZFduc2RRVkFHU0h3S3FIV2plV3VnS0FUQkZZZFZLN3hs
SlhBSkExQXF0K2F0Rlk2Z29BTWtoZzFWWGN4bEpYQUpCTkFxdmUKWWpWV1dsZnIxNjlYVndDUU5R
S3JBYXB2ckxTdTFxNWRlL3IwNmFtcHFWa3RxNjRBb05ZRVZtTlUwMWhwWGQxNjY2MjMzWGJidW5Y
cgpEaDgrWEhsanFTc0FxQU9CMVRCemE2eGNYYTFidHk2RWNOTk5OMVhlV09vS0FPcERZRFhTYkJ0
cldsMmxLbXdzZFFVQWRTT3dHcXp5CnhpcGFWNmtaRzB0ZEFVQTlDYXpHcTZTeHl0UlZxa3hqcVNz
QXFET0JsUW5sRzZ1d3JyNzBwUzk5N1d0Zm16WmIwY1pTVndCUWZ3SXIKSzBvMTF1VGs1T0RnNExU
bnJsYXVYUG5KVDM1eXhzWlNWd0RRRUoyTkhnQy9sVGJXOFBEd3NtWExRZ2dEQXdQOS9mM2QzZDF2
Zi92YgpWNjFhbFQ5bit2VlhuL2pFSjBJSUgvLzR4L04vZE5OTk40VVFEaDgrdkdUSmtqZmZmRk5k
QVVEOWVRWXJXL0tmeDlxd1ljTU5OOXh3Cjd0eTV3cmRWWGJod0laMzR4Q2MrVWZSNXJON2VYblVG
QUkwaXNESW4xMWk5dmIwakl5TXJWcXpvNit1Yk5zK2FOV3ZtejUrZlR2L0YKWC96RnRNWTZjT0RB
ME5DUXVnS0FSdkVTWVJibFhpc2NHeHNiR1JsNSt1bW5iNzMxMXFWTGwrWm02T3ZyZS9UUlI0OGVQ
ZHJaMmJsdQozYnBUcDA3bGZuVGd3SUY5Ky9hcEt3Qm9vSTRrU1JvOUJvb2JIeDhmSGg0T0lSdzll
dlRJa1NPMzMzNTdmbU1WcGE0QUlBdThSSmhkCnVkY0sxNjlmZjgwMTF6ejk5Tk5uejU0dE03KzZB
b0NNRUZpWlZubGpxU3NBeUE2QmxYV1ZOSmE2QW9CTUVWaE5vSHhqcVNzQXlCcHYKY204YStlOTVQ
Mzc4K08vKzd1KysrZWFiSVlRWFgzeHh4NDRkNmdvQXNrTmdOWk5jWTUwNmRhcXZyMjl3Y0xDbnA2
ZTd1M3ZSb2tYcQpDZ0N5UTJBMW1WeGpMVnk0c0x1N2UzaDRlSEp5VWwwQlFLWUlyT2FUYTZ5T2pv
NGtTZFFWQUdTTndHcEt1Y1pTVndDUVFRS3JXWTJQCmo0K09qdmIyOXFvckFNZ2FnUVVBRUpudndR
SUFMVDRna1FBQUJkdEpSRUZVaUV4Z0FRQkVKckFBQUNJVFdBQUFrUWtzQUlESUJCWUEKUUdRQ0N3
QWdNb0VGQUJDWndBSUFpRXhnQVFCRUpyQUFBQ0lUV0FBQWtRa3NBSURJQkJZQVFHUUNDd0FnTW9F
RkFCQ1p3QUlBaUV4ZwpBUUJFSnJBQUFDSVRXQUFBa1Frc0FJRElCQllBUUdRQ0N3QWdNb0VGQUJD
WndBSUFpRXhnQVFCRUpyQUFBQ0lUV0FBQWtRa3NBSURJCkJCWUFRR1FDQ3dBZ01vRUZBQkNad0FJ
QWlFeGdBUUJFSnJBQUFDSVRXQUFBa1Frc0FJRElCQllBUUdRQ0N3QWdNb0VGQUJDWndBSUEKaUV4
Z0FRQkVKckFBQUNJVFdBQUFrUWtzQUlESUJCWUFRR1FDQ3dBZ01vRUZBQkNad0FJQWlFeGdBUUJF
SnJBQUFDSVRXQUFBa1FrcwpBSURJQkJZQVFHUUNDd0FnTW9FRkFCQ1p3QUlBaUV4Z0FRQkVKckFB
QUNJVFdBQUFrUWtzQUlESUJCWUFRR1FDQ3dBZ01vRUZBQkNaCndBSUFpRXhnQVFCRUpyQUFBQ0lU
V0FBQWtRa3NBSURJQkJZQVFHUUNDd0FnTW9FRkFCQ1p3QUlBaUV4Z0FRQkVKckFBQUNJVFdBQUEK
a1Frc0FJRElCQllBUUdRQ0N3QWdNb0VGQUJDWndBSUFpRXhnQVFCRUpyQUFBQ0lUV0FBQWtRa3NB
SURJQkJZQVFHUUNDd0FnTW9FRgpBQkNad0FJQWlFeGdBUUJFSnJBQUFDSVRXQUFBa1Frc0FJRElC
QllBUUdRQ0N3QWdNb0VGQUJDWndBSUFpRXhnQVFCRUpyQUFBQ0lUCldBQUFrUWtzQUlESUJCWUFR
R1FDQ3dBZ01vRUZBQkNad0FJQWlFeGdBUUJFSnJBQUFDSVRXQUFBa1Frc0FJRElCQllBUUdRQ0N3
QWcKTW9FRkFCQ1p3QUlBaUV4Z0FRQkVKckFBQUNJVFdBQUFrUWtzQUlESUJCWUFRR1FDQ3dBZ01v
RUZBQkNad0FJQWlFeGdBUUJFSnJBQQpBQ0lUV0FBQWtRa3NBSURJQkJZQVFHUUNDd0FnTW9FRkFC
Q1p3QUlBaUV4Z0FRQkVKckFBQUNJVFdBQUFrUWtzQUlESUJCWUFRR1FDCkN3QWdNb0VGQUJDWndB
SUFpRXhnQVFCRUpyQUFBQ0lUV0FBQWtRa3NBSURJQkJZQVFHUUNDd0FnTW9FRkFCQ1p3QUlBaUV4
Z0FRQkUKSnJBQUFDSVRXQUFBa1Frc0FJRElCQllBUUdRQ0N3QWdNb0VGQUJDWndBSUFpRXhnQVFC
RUpyQUFBQ0lUV0FBQWtRa3NBSURJQkJZQQpRR1FDQ3dBZ01vRUZBQkNad0FJQWlFeGdBUUJFSnJB
QUFDSVRXQUFBa1Frc0FJRElCQllBUUdRQ0N3QWdNb0VGQUJDWndBSUFpRXhnCkFRQkVKckFBQUNJ
VFdBQUFrUWtzQUlESUJCWUFRR1FDQ3dBZ01vRUZBQkNad0FJQWlFeGdBUUJFSnJBQUFDSVRXQUFB
a1Frc0FJREkKQkJZQVFHUUNDd0FnTW9FRkFCQ1p3QUlBaUV4Z0FRQkVKckFBQUNJVFdBQUFrUWtz
QUlESUJCWUFRR1FDQ3dBZ01vRUZBQkNad0FJQQppRXhnQVFCRUpyQUFBQ0lUV0FBQWtRa3NBSURJ
QkJZQVFHUUNDd0FnTW9FRkFCQ1p3QUlBaUV4Z0FRQkVKckFBQUNJVFdBQUFrUWtzCkFJRElCQllB
UUdRQ0N3QWdNb0VGQUJDWndBSUFpRXhnQVFCRUpyQUFBQ0lUV0FBQWtRa3NBSURJQkJZQVFHUUND
d0FnTW9FRkFCQ1oKd0FJQWlFeGdBUUJFSnJBQUFDSVRXQUFBa1Frc0FJRElCQllBUUdRQ0N3QWdN
b0VGQUJDWndBSUFpRXhnQVFCRUpyQUFBQ0lUV0FBQQprUWtzQUlESUJCWUFRR1FDQ3dBZ01vRUZB
QkNad0FJQWlFeGdBUUJFSnJBQUFDSVRXQUFBa1Frc0FJRElCQllBUUdRQ0N3QWdNb0VGCkFCQ1p3
QUlBaUV4Z0FRQkVKckFBQUNJVFdBQUFrUWtzQUlESUJCWUFRR1FDQ3dBZ01vRUZBQkNad0FJQWlF
eGdBUUJFSnJBQUFDSVQKV0FBQWtRa3NBSURJQkJZQVFHUUNDd0FnTW9FRkFCQ1p3QUlBaUV4Z0FR
QkVKckFBQUNJVFdBQUFrUWtzQUlESUJCWUFRR1FDQ3dBZwpNb0VGQUJDWndBSUFpRXhnQVFCRUpy
QUFBQ0lUV0FBQWtRa3NBSURJQkJZQVFHUUNDd0FnTW9FRkFCQ1p3QUlBaUV4Z0FRQkVKckFBCkFD
SVRXQUFBa1Frc0FJRElCQllBUUdRQ0N3QWdNb0VGQUJDWndBSUFpRXhnQVFCRUpyQUFBQ0lUV0FB
QWtRa3NBSURJQkJZQVFHUUMKQ3dBZ01vRUZBQkNad0FJQWlFeGdBUUJFSnJBQUFDSVRXQUFBa1Fr
c0FJRElCQllBUUdRQ0N3QWdNb0VGQUJDWndBSUFpRXhnQVFCRQpKckFBQUNJVFdBQUFrUWtzQUlE
SUJCWUFRR1FDQ3dBZ01vRUZBQkNad0FJQWlFeGdBUUJFSnJBQUFDTDdQN3VvVXkrazhtK2ZBQUFB
CkFFbEZUa1N1UW1DQwoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178596</attachid>
            <date>2012-12-10 11:16:10 -0800</date>
            <delta_ts>2012-12-13 12:51:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101779-20121210111332.patch</filename>
            <type>text/plain</type>
            <size>83486</size>
            <attacher name="Levi Weintraub">leviw</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNjk5MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDc3IEBACisyMDEyLTEyLTA0ICBMZXZpIFdl
aW50cmF1YiAgPGxldml3QGNocm9taXVtLm9yZz4KKworICAgICAgICBBY2N1bXVsYXRlIHVzaW5n
IGEgTGF5b3V0U2l6ZSBpbiBtYXBMb2NhbFRvQ29udGFpbmVyIHdoZW4gcG9zc2libGUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTc3OQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1hcExvY2FsVG9Db250
YWluZXIgcHJldmlvdXNseSBhY2N1bXVsYXRlZCBvZmZzZXRzIGluIFRyYW5zZm9ybVN0YXRlLCB3
aGljaCBpcyBmdW5jdGlvbmFsbHkgaW5jb3JyZWN0IHdoZW4gdGhlcmUKKyAgICAgICAgYXJlIG11
bHRpcGxlIGxldmVscyBvZiBjb250YWluZXJzIHdpdGggc3ViLXBpeGVsIG9mZnNldHMgaW4gdGhl
IHJlbmRlcmVyIGNoYWluLCBhcyB3ZSB3b3VsZCBwaXhlbCBzbmFwIGZyb20gdGhlCisgICAgICAg
IGJvdHRvbSB0b3dhcmRzIHRoZSByb290IGluc3RlYWQgb2YgdmljZS12ZXJzYSwgYXMgd2UgZG8g
d2hlbiB3ZSBwYWludC4gVGhpcyBmdW5jdGlvbmFsbHkgaW5jb3JyZWN0IGJlaGF2aW9yIGxlYWRz
CisgICAgICAgIHRvIHJlcGFpbnQgYXJ0aWZhY3RzLCBlc3BlY2lhbGx5IGluIHdpZGdldHMuIFRo
aXMgY2hhbmdlIHdpbGwgYWxzbyBpbXByb3ZlIHBlcmZvcm1hbmNlIHNpbmNlIHdlIG9ubHkgaGF2
ZSB0byBhcHBseQorICAgICAgICB0aGUgdHJhbnNmb3JtIHRvIG4rMSBvZmZzZXRzIHdoZXJlIG4g
aXMgdGhlIG51bWJlciBvZiB0cmFuc2Zvcm1zIGluIHRoZSBjaGFpbiwgd2hlcmVhcyBjdXJyZW50
bHkgd2UgaGF2ZSB0byBhcHBseQorICAgICAgICBpdCBPKG0pIHdoZXJlIG0gaXMgdGhlIG51bWJl
ciBvZiByZW5kZXJlcnMgaW4gdGhlIGNoYWluLCB3aXRoIHNvbWUgZWxlbWVudHMgYWNjdW11bGF0
aW5nIG11bHRpcGxlIG9mZnNldHMuIEFsc28KKyAgICAgICAgdXBkYXRpbmcgUmVuZGVyR2VvbWV0
cnlNYXAgdG8gYWxzbyByZXNwZWN0IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zICh3aGljaCBJIGlu
dGVuZCB0byByZW5hbWUgYXMgcGVyIHNtZnIncyByZXF1ZXN0KS4KKworICAgICAgICBUZXN0OiBm
YXN0L3N1Yi1waXhlbC90cmFuc2Zvcm1lZC1pZnJhbWUtY29weS1vbi1zY3JvbGwuaHRtbCBhZGRl
ZC4KKyAgICAgICAgICAgICAgZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWlmcmFtZS1jb3B5LW9u
LXNjcm9sbC5odG1sIG1vZGlmaWVkIHRvIGNhdGNoIHRoZSBmYWlsdXJlIGNhc2UuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9MYXlvdXRTaXplLmg6CisgICAgICAgIChMYXlvdXRTaXpl
KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dFNpemU6OmV4cGFuZCk6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6Om1hcExv
Y2FsVG9Db250YWluZXIpOiBDaGFuZ2VkIGNsYXNzLXNwZWNpZmljIGltcGxlbWVudGF0aW9ucyBv
ZiBtYXBMb2NhbFRvQ29udGFpbmVyIHRvCisgICAgICAgIG1hcExvY2FsVG9Db250YWluZXJJbnRl
cm5hbCBhcyB0aGUgY29udHJhY3Qgbm93IGluY2x1ZGVzIGFuIGFjY3VtdWxhdGVkT2Zmc2V0IHZh
bHVlIHRoYXQgbmVlZHMgdG8gYmUgaGFuZGxlZCBieQorICAgICAgICB0aGUgY2FsbGVyLiBUaGUg
Y2FsbGVyIHNob3VsZCBhbHdheXMgYmUgUmVuZGVyT2JqZWN0OjptYXBMb2NhbFRvQ29udGFpbmVy
LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpwdXNoTWFwcGluZ1RvQ29udGFpbmVyKTog
VXBkYXRpbmcgdG8gc25hcCBhY2N1bXVsYXRlZCByZW5kZXJlciBvZmZzZXRzIHRvIG1pcnJvciB3
aGF0J3MgZG9uZQorICAgICAgICBkdXJpbmcgcGFpbnQuCisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlckJveC5oOgorICAgICAgICAoUmVuZGVyQm94KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyR2VvbWV0cnlNYXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR2VvbWV0cnlNYXA6
Om1hcFRvQ29udGFpbmVyKTogVXBkYXRpbmcgdG8gc25hcCBhY2N1bXVsYXRlZCByZW5kZXJlciBv
ZmZzZXRzIHRvIG1pcnJvciB3aGF0J3MgZG9uZQorICAgICAgICBkdXJpbmcgcGFpbnQuCisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJJbmxpbmU6Om1hcExvY2FsVG9Db250YWluZXIpOiBTZWUgYWJvdmUuCisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJJbmxpbmU6OnB1c2hNYXBwaW5nVG9Db250YWluZXIpOiBTZWUgYWJvdmUuCisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlcklubGluZS5oOgorICAgICAgICAoUmVuZGVySW5saW5l
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlck9iamVjdDo6bWFwTG9jYWxUb0NvbnRhaW5lcik6IEJyb2tlIG1hcExvY2FsVG9D
b250YWluZXIgaW50byB0aGlzIHB1YmxpYyBmdW5jdGlvbiBhbmQKKyAgICAgICAgbWFwTG9jYWxU
b0NvbnRhaW5lckludGVybmFsLiBUaGUgaW50ZXJuYWwgZmxhdm9ycyB0cmFjayBhbiBhY2N1bXVs
YXRlZCBvZmZzZXQgd2hpY2ggaXMgdXNlZCB0byByZWNyZWF0ZSB0aGUgcGl4ZWwKKyAgICAgICAg
c25hcHBpbmcgdGhhdCdzIHBlcmZvcm1lZCBkdXJpbmcgcGFpbnQuIFRoaXMgcHVibGljIGZ1bmN0
aW9uIGNhbGxzIHRoZSBpbnRlcm5hbCBvbmUsIHRoZW4gYXBwbGllcyBhbnkgbGVmdG92ZXIKKyAg
ICAgICAgYWNjdW11bGF0ZWQgb2Zmc2V0IGJlZm9yZSByZXR1cm5pbmcgdGhlIFRyYW5zZm9ybVN0
YXRlIHRvIHRoZSBjYWxsZXIuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oOgor
ICAgICAgICAoUmVuZGVyT2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6
YWRqdXN0T2Zmc2V0Rm9yU25hcHBpbmcpOiBOZXcgY29udmVuaWVuY2UgbWV0aG9kLgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclZp
ZXc6Om1hcExvY2FsVG9Db250YWluZXIpOiBTZWUgYWJvdmUuCisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlclZpZXcuaDoKKyAgICAgICAgKFJlbmRlclZpZXcpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJTVkdGb3JlaWduT2JqZWN0OjptYXBMb2NhbFRvQ29udGFpbmVyKTogU2VlIGFib3ZlLgorICAg
ICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9iamVjdC5oOgorICAgICAgICAo
UmVuZGVyU1ZHRm9yZWlnbk9iamVjdCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdJbmxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHSW5saW5lOjptYXBMb2Nh
bFRvQ29udGFpbmVyKTogU2VlIGFib3ZlLgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHSW5saW5lLmg6CisgICAgICAgIChSZW5kZXJTVkdJbmxpbmUpOgorICAgICAgICAqIHJlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyU1ZHTW9kZWxPYmplY3Q6Om1hcExvY2FsVG9Db250YWluZXIpOiBTZWUgYWJvdmUuCisgICAg
ICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5oOgorICAgICAgICAoUmVu
ZGVyU1ZHTW9kZWxPYmplY3QpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9v
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdSb290OjptYXBMb2NhbFRvQ29udGFp
bmVyKTogU2VlIGFib3ZlLgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5o
OgorICAgICAgICAoUmVuZGVyU1ZHUm9vdCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1RleHQ6Om1hcExvY2Fs
VG9Db250YWluZXIpOiBTZWUgYWJvdmUuCisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdUZXh0Lmg6CisgICAgICAgIChSZW5kZXJTVkdUZXh0KToKKyAgICAgICAgKiByZW5kZXJpbmcv
c3ZnL1NWR1JlbmRlclN1cHBvcnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmVuZGVyU3Vw
cG9ydDo6bWFwTG9jYWxUb0NvbnRhaW5lcik6IFNlZSBhYm92ZS4KKyAgICAgICAgKiByZW5kZXJp
bmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuaDoKKyAgICAgICAgKFNWR1JlbmRlclN1cHBvcnQpOgor
CiAyMDEyLTEyLTA3ICBSaWsgQ2FiYW5pZXIgIDxjYWJhbmllckBhZG9iZS5jb20+CiAKICAgICAg
ICAgRXh0ZW5kIHBsYXRmb3JtIGxheWVyIHNvIGl0IGNhbiBwYXNzIGJsZW5kIG1vZGVzIHRvIHRo
ZSBjb21wb3NpdGluZyBjYWxscwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTGF5b3V0U2l6ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0xheW91dFNpemUuaAkocmV2aXNpb24gMTM2OTkzKQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvTGF5b3V0U2l6ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC03MSw3ICs3
MSwxMyBAQCBwdWJsaWM6CiAgICAgICAgIG1fd2lkdGggKz0gd2lkdGg7CiAgICAgICAgIG1faGVp
Z2h0ICs9IGhlaWdodDsKICAgICB9Ci0gICAgCisKKyAgICB2b2lkIGV4cGFuZChjb25zdCBMYXlv
dXRTaXplJiBzKQorICAgIHsKKyAgICAgICAgbV93aWR0aCArPSBzLm1fd2lkdGg7CisgICAgICAg
IG1faGVpZ2h0ICs9IHMubV9oZWlnaHQ7CisgICAgfQorCiAgICAgdm9pZCBzY2FsZShmbG9hdCBz
Y2FsZSkKICAgICB7CiAgICAgICAgIG1fd2lkdGggKj0gc2NhbGU7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAkocmV2aXNpb24gMTM2OTkzKQorKysgU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzODAsNyAr
MTM4MCw3IEBAIExheW91dFVuaXQgUmVuZGVyQm94OjpwZXJwZW5kaWN1bGFyQ29udGEKICAgICBy
ZXR1cm4gY2ItPmFkanVzdENvbnRlbnRCb3hMb2dpY2FsSGVpZ2h0Rm9yQm94U2l6aW5nKGxvZ2lj
YWxIZWlnaHRMZW5ndGgudmFsdWUoKSk7CiB9CiAKLXZvaWQgUmVuZGVyQm94OjptYXBMb2NhbFRv
Q29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIs
IFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2Rl
LCBib29sKiB3YXNGaXhlZCkgY29uc3QKK3ZvaWQgUmVuZGVyQm94OjptYXBMb2NhbFRvQ29udGFp
bmVySW50ZXJuYWwoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5l
ciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBMYXlvdXRTaXplJiBhY2N1bXVsYXRl
ZE9mZnNldCwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBib29sKiB3YXNGaXhlZCkgY29uc3QK
IHsKICAgICBpZiAocmVwYWludENvbnRhaW5lciA9PSB0aGlzKQogICAgICAgICByZXR1cm47CkBA
IC0xMzg4LDEwICsxMzg4LDExIEBAIHZvaWQgUmVuZGVyQm94OjptYXBMb2NhbFRvQ29udGFpbmVy
KGNvbnMKICAgICBpZiAoUmVuZGVyVmlldyogdiA9IHZpZXcoKSkgewogICAgICAgICBpZiAodi0+
bGF5b3V0U3RhdGVFbmFibGVkKCkgJiYgIXJlcGFpbnRDb250YWluZXIpIHsKICAgICAgICAgICAg
IExheW91dFN0YXRlKiBsYXlvdXRTdGF0ZSA9IHYtPmxheW91dFN0YXRlKCk7Ci0gICAgICAgICAg
ICBMYXlvdXRTaXplIG9mZnNldCA9IGxheW91dFN0YXRlLT5tX3BhaW50T2Zmc2V0ICsgbG9jYXRp
b25PZmZzZXQoKTsKKyAgICAgICAgICAgIExheW91dFNpemUgb2Zmc2V0ID0gbGF5b3V0U3RhdGUt
Pm1fcGFpbnRPZmZzZXQgKyBsb2NhdGlvbk9mZnNldCgpICsgYWNjdW11bGF0ZWRPZmZzZXQ7Cisg
ICAgICAgICAgICBhY2N1bXVsYXRlZE9mZnNldCA9IExheW91dFNpemUoKTsKICAgICAgICAgICAg
IGlmIChzdHlsZSgpLT5oYXNJbkZsb3dQb3NpdGlvbigpICYmIGxheWVyKCkpCiAgICAgICAgICAg
ICAgICAgb2Zmc2V0ICs9IGxheWVyKCktPm9mZnNldEZvckluRmxvd1Bvc2l0aW9uKCk7Ci0gICAg
ICAgICAgICB0cmFuc2Zvcm1TdGF0ZS5tb3ZlKG9mZnNldCk7CisgICAgICAgICAgICB0cmFuc2Zv
cm1TdGF0ZS5tb3ZlKGFkanVzdE9mZnNldEZvclNuYXBwaW5nKG1vZGUsIG9mZnNldCkpOwogICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQpAQCAtMTQxMywzNiArMTQxNCw0MiBA
QCB2b2lkIFJlbmRlckJveDo6bWFwTG9jYWxUb0NvbnRhaW5lcihjb25zCiAgICAgaWYgKHdhc0Zp
eGVkKQogICAgICAgICAqd2FzRml4ZWQgPSBtb2RlICYgSXNGaXhlZDsKICAgICAKLSAgICBMYXlv
dXRTaXplIGNvbnRhaW5lck9mZnNldCA9IG9mZnNldEZyb21Db250YWluZXIobywgcm91bmRlZExh
eW91dFBvaW50KHRyYW5zZm9ybVN0YXRlLm1hcHBlZFBvaW50KCkpKTsKLSAgICBpZiAobW9kZSAm
IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKQotICAgICAgICBjb250YWluZXJPZmZzZXQgPSByb3Vu
ZGVkSW50U2l6ZShjb250YWluZXJPZmZzZXQpOwotICAgIAotICAgIGJvb2wgcHJlc2VydmUzRCA9
IG1vZGUgJiBVc2VUcmFuc2Zvcm1zICYmIChvLT5zdHlsZSgpLT5wcmVzZXJ2ZXMzRCgpIHx8IHN0
eWxlKCktPnByZXNlcnZlczNEKCkpOworICAgIExheW91dFNpemUgY29udGFpbmVyT2Zmc2V0ID0g
b2Zmc2V0RnJvbUNvbnRhaW5lcihvLCByb3VuZGVkTGF5b3V0UG9pbnQodHJhbnNmb3JtU3RhdGUu
bWFwcGVkUG9pbnQoKSArIGFjY3VtdWxhdGVkT2Zmc2V0KSk7CisgICAgYm9vbCBwcmVzZXJ2ZTNE
ID0gbW9kZSAmIFVzZVRyYW5zZm9ybXMgJiYgKChvICYmIG8tPnN0eWxlKCktPnByZXNlcnZlczNE
KCkpIHx8IHN0eWxlKCktPnByZXNlcnZlczNEKCkpOwogICAgIGlmIChtb2RlICYgVXNlVHJhbnNm
b3JtcyAmJiBzaG91bGRVc2VUcmFuc2Zvcm1Gcm9tQ29udGFpbmVyKG8pKSB7CisgICAgICAgIGFw
cGx5QWNjdW11bGF0ZWRPZmZzZXQodHJhbnNmb3JtU3RhdGUsIGFjY3VtdWxhdGVkT2Zmc2V0LCBt
b2RlKTsKICAgICAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggdDsKICAgICAgICAgZ2V0VHJhbnNm
b3JtRnJvbUNvbnRhaW5lcihvLCBjb250YWluZXJPZmZzZXQsIHQpOwogICAgICAgICB0cmFuc2Zv
cm1TdGF0ZS5hcHBseVRyYW5zZm9ybSh0LCBwcmVzZXJ2ZTNEID8gVHJhbnNmb3JtU3RhdGU6OkFj
Y3VtdWxhdGVUcmFuc2Zvcm0gOiBUcmFuc2Zvcm1TdGF0ZTo6RmxhdHRlblRyYW5zZm9ybSk7Cisg
ICAgfSBlbHNlIGlmIChwcmVzZXJ2ZTNEKSB7CisgICAgICAgIGFwcGx5QWNjdW11bGF0ZWRPZmZz
ZXQodHJhbnNmb3JtU3RhdGUsIGFjY3VtdWxhdGVkT2Zmc2V0LCBtb2RlKTsKKyAgICAgICAgTGF5
b3V0U2l6ZSBhZGp1c3RlZENvbnRhaW5lck9mZnNldCA9IGFkanVzdE9mZnNldEZvclNuYXBwaW5n
KG1vZGUsIGNvbnRhaW5lck9mZnNldCk7CisgICAgICAgIHRyYW5zZm9ybVN0YXRlLm1vdmUoYWRq
dXN0ZWRDb250YWluZXJPZmZzZXQud2lkdGgoKSwgYWRqdXN0ZWRDb250YWluZXJPZmZzZXQuaGVp
Z2h0KCksIFRyYW5zZm9ybVN0YXRlOjpBY2N1bXVsYXRlVHJhbnNmb3JtKTsKICAgICB9IGVsc2UK
LSAgICAgICAgdHJhbnNmb3JtU3RhdGUubW92ZShjb250YWluZXJPZmZzZXQud2lkdGgoKSwgY29u
dGFpbmVyT2Zmc2V0LmhlaWdodCgpLCBwcmVzZXJ2ZTNEID8gVHJhbnNmb3JtU3RhdGU6OkFjY3Vt
dWxhdGVUcmFuc2Zvcm0gOiBUcmFuc2Zvcm1TdGF0ZTo6RmxhdHRlblRyYW5zZm9ybSk7CisgICAg
ICAgIGFjY3VtdWxhdGVkT2Zmc2V0LmV4cGFuZChjb250YWluZXJPZmZzZXQpOwogCiAgICAgaWYg
KGNvbnRhaW5lclNraXBwZWQpIHsKICAgICAgICAgLy8gVGhlcmUgY2FuJ3QgYmUgYSB0cmFuc2Zv
cm0gYmV0d2VlbiByZXBhaW50Q29udGFpbmVyIGFuZCBvLCBiZWNhdXNlIHRyYW5zZm9ybXMgY3Jl
YXRlIGNvbnRhaW5lcnMsIHNvIGl0IHNob3VsZCBiZSBzYWZlCiAgICAgICAgIC8vIHRvIGp1c3Qg
c3VidHJhY3QgdGhlIGRlbHRhIGJldHdlZW4gdGhlIHJlcGFpbnRDb250YWluZXIgYW5kIG8uCiAg
ICAgICAgIExheW91dFNpemUgY29udGFpbmVyT2Zmc2V0ID0gcmVwYWludENvbnRhaW5lci0+b2Zm
c2V0RnJvbUFuY2VzdG9yQ29udGFpbmVyKG8pOwotICAgICAgICB0cmFuc2Zvcm1TdGF0ZS5tb3Zl
KC1jb250YWluZXJPZmZzZXQud2lkdGgoKSwgLWNvbnRhaW5lck9mZnNldC5oZWlnaHQoKSwgcHJl
c2VydmUzRCA/IFRyYW5zZm9ybVN0YXRlOjpBY2N1bXVsYXRlVHJhbnNmb3JtIDogVHJhbnNmb3Jt
U3RhdGU6OkZsYXR0ZW5UcmFuc2Zvcm0pOworICAgICAgICBpZiAocHJlc2VydmUzRCkKKyAgICAg
ICAgICAgIHRyYW5zZm9ybVN0YXRlLm1vdmUoY29udGFpbmVyT2Zmc2V0LndpZHRoKCksIGNvbnRh
aW5lck9mZnNldC5oZWlnaHQoKSwgVHJhbnNmb3JtU3RhdGU6OkFjY3VtdWxhdGVUcmFuc2Zvcm0p
OworICAgICAgICBlbHNlCisgICAgICAgICAgICBhY2N1bXVsYXRlZE9mZnNldC5leHBhbmQoLWNv
bnRhaW5lck9mZnNldCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBtb2RlICY9IH5B
cHBseUNvbnRhaW5lckZsaXA7CiAgICAgaWYgKG8tPmlzUmVuZGVyRmxvd1RocmVhZCgpKSB7CiAg
ICAgICAgIC8vIFRyYW5zZm9ybSBmcm9tIHJlbmRlciBmbG93IGNvb3JkaW5hdGVzIGludG8gcmVn
aW9uIGNvb3JkaW5hdGVzLgorICAgICAgICBhcHBseUFjY3VtdWxhdGVkT2Zmc2V0KHRyYW5zZm9y
bVN0YXRlLCBhY2N1bXVsYXRlZE9mZnNldCwgbW9kZSk7CiAgICAgICAgIFJlbmRlclJlZ2lvbiog
cmVnaW9uID0gdG9SZW5kZXJGbG93VGhyZWFkKG8pLT5tYXBGcm9tRmxvd1RvUmVnaW9uKHRyYW5z
Zm9ybVN0YXRlKTsKICAgICAgICAgaWYgKHJlZ2lvbikKLSAgICAgICAgICAgIHJlZ2lvbi0+bWFw
TG9jYWxUb0NvbnRhaW5lcihyZWdpb24tPmNvbnRhaW5lckZvclJlcGFpbnQoKSwgdHJhbnNmb3Jt
U3RhdGUsIG1vZGUsIHdhc0ZpeGVkKTsKKyAgICAgICAgICAgIHJlZ2lvbi0+bWFwTG9jYWxUb0Nv
bnRhaW5lckludGVybmFsKHJlZ2lvbi0+Y29udGFpbmVyRm9yUmVwYWludCgpLCB0cmFuc2Zvcm1T
dGF0ZSwgYWNjdW11bGF0ZWRPZmZzZXQsIG1vZGUsIHdhc0ZpeGVkKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAotICAgIG8tPm1hcExvY2FsVG9Db250YWluZXIocmVwYWludENvbnRhaW5lciwg
dHJhbnNmb3JtU3RhdGUsIG1vZGUsIHdhc0ZpeGVkKTsKKyAgICBvLT5tYXBMb2NhbFRvQ29udGFp
bmVySW50ZXJuYWwocmVwYWludENvbnRhaW5lciwgdHJhbnNmb3JtU3RhdGUsIGFjY3VtdWxhdGVk
T2Zmc2V0LCBtb2RlLCB3YXNGaXhlZCk7CiB9CiAKIGNvbnN0IFJlbmRlck9iamVjdCogUmVuZGVy
Qm94OjpwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3Qq
IGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJiBnZW9tZXRyeU1hcCkgY29uc3QK
QEAgLTE0NjYsOCArMTQ3Myw2IEBAIGNvbnN0IFJlbmRlck9iamVjdCogUmVuZGVyQm94OjpwdXNo
TWFwcGkKIAogICAgIGJvb2wgb2Zmc2V0RGVwZW5kc09uUG9pbnQgPSBmYWxzZTsKICAgICBMYXlv
dXRTaXplIGNvbnRhaW5lck9mZnNldCA9IG9mZnNldEZyb21Db250YWluZXIoY29udGFpbmVyLCBM
YXlvdXRQb2ludCgpLCAmb2Zmc2V0RGVwZW5kc09uUG9pbnQpOwotICAgIGlmIChnZW9tZXRyeU1h
cC5tYXBDb29yZGluYXRlc0ZsYWdzKCkgJiBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcykKLSAgICAg
ICAgY29udGFpbmVyT2Zmc2V0ID0gcm91bmRlZEludFNpemUoY29udGFpbmVyT2Zmc2V0KTsKIAog
ICAgIGlmIChjb250YWluZXItPmlzUmVuZGVyRmxvd1RocmVhZCgpKQogICAgICAgICBvZmZzZXRE
ZXBlbmRzT25Qb2ludCA9IHRydWU7CkBAIC0xNDc2LDYgKzE0ODEsNyBAQCBjb25zdCBSZW5kZXJP
YmplY3QqIFJlbmRlckJveDo6cHVzaE1hcHBpCiAgICAgaWYgKHNob3VsZFVzZVRyYW5zZm9ybUZy
b21Db250YWluZXIoY29udGFpbmVyKSkgewogICAgICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCB0
OwogICAgICAgICBnZXRUcmFuc2Zvcm1Gcm9tQ29udGFpbmVyKGNvbnRhaW5lciwgY29udGFpbmVy
T2Zmc2V0LCB0KTsKKyAgICAgICAgYWRqdXN0bWVudEZvclNraXBwZWRBbmNlc3RvciA9IGFkanVz
dE9mZnNldEZvclNuYXBwaW5nKGdlb21ldHJ5TWFwLm1hcENvb3JkaW5hdGVzRmxhZ3MoKSwgYWRq
dXN0bWVudEZvclNraXBwZWRBbmNlc3Rvcik7CiAgICAgICAgIHQudHJhbnNsYXRlUmlnaHQoYWRq
dXN0bWVudEZvclNraXBwZWRBbmNlc3Rvci53aWR0aCgpLCBhZGp1c3RtZW50Rm9yU2tpcHBlZEFu
Y2VzdG9yLmhlaWdodCgpKTsKICAgICAgICAgCiAgICAgICAgIGdlb21ldHJ5TWFwLnB1c2godGhp
cywgdCwgcHJlc2VydmUzRCwgb2Zmc2V0RGVwZW5kc09uUG9pbnQsIGlzRml4ZWRQb3MsIGhhc1Ry
YW5zZm9ybSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCShyZXZpc2lv
biAxMzY5OTMpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgJKHdvcmtp
bmcgY29weSkKQEAgLTU5MSw3ICs1OTEsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgCiAgICAgdmlydHVh
bCBib29sIHNob3VsZENvbXB1dGVTaXplQXNSZXBsYWNlZCgpIGNvbnN0IHsgcmV0dXJuIGlzUmVw
bGFjZWQoKSAmJiAhaXNJbmxpbmVCbG9ja09ySW5saW5lVGFibGUoKTsgfQogCi0gICAgdmlydHVh
bCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCog
cmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBDb29yZGluYXRlc0ZsYWdzID0g
QXBwbHlDb250YWluZXJGbGlwIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMsIGJvb2wqIHdhc0Zp
eGVkID0gMCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250
YWluZXJJbnRlcm5hbChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFp
bmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIExheW91dFNpemUmIGFjY3VtdWxhdGVkT2Zmc2V0LCBNYXBD
b29yZGluYXRlc0ZsYWdzID0gQXBwbHlDb250YWluZXJGbGlwIHwgU25hcE9mZnNldEZvclRyYW5z
Zm9ybXMsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBj
b25zdCBSZW5kZXJPYmplY3QqIHB1c2hNYXBwaW5nVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5
ZXJNb2RlbE9iamVjdCosIFJlbmRlckdlb21ldHJ5TWFwJikgY29uc3QgT1ZFUlJJREU7CiAgICAg
dmlydHVhbCB2b2lkIG1hcEFic29sdXRlVG9Mb2NhbFBvaW50KE1hcENvb3JkaW5hdGVzRmxhZ3Ms
IFRyYW5zZm9ybVN0YXRlJikgY29uc3Q7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJHZW9tZXRyeU1hcC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckdlb21ldHJ5TWFwLmNwcAkocmV2aXNpb24gMTM2OTkzKQorKysgU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdlb21ldHJ5TWFwLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNDYsNiArNDYsMTUgQEAgUmVuZGVyR2VvbWV0cnlNYXA6On5SZW5kZXJHZW9tZXRyeU1hcCgp
CiB7CiB9CiAKK3N0YXRpYyB2b2lkIGFwcGx5QWNjdW11bGF0ZWRPZmZzZXQoVHJhbnNmb3JtU3Rh
dGUmIHRyYW5zZm9ybVN0YXRlLCBMYXlvdXRTaXplJiBhY2N1bXVsYXRlZE9mZnNldCwgTWFwQ29v
cmRpbmF0ZXNGbGFncyBtYXBDb29yZGluYXRlc0ZsYWdzLCBUcmFuc2Zvcm1TdGF0ZTo6VHJhbnNm
b3JtQWNjdW11bGF0aW9uIGFjY3VtdWxhdGUgPSBUcmFuc2Zvcm1TdGF0ZTo6RmxhdHRlblRyYW5z
Zm9ybSkKK3sKKyAgICBhY2N1bXVsYXRlZE9mZnNldCA9IChtYXBDb29yZGluYXRlc0ZsYWdzICYg
U25hcE9mZnNldEZvclRyYW5zZm9ybXMpID8gcm91bmRlZEludFNpemUoYWNjdW11bGF0ZWRPZmZz
ZXQpIDogYWNjdW11bGF0ZWRPZmZzZXQ7CisgICAgaWYgKCFhY2N1bXVsYXRlZE9mZnNldC5pc1pl
cm8oKSkgeworICAgICAgICB0cmFuc2Zvcm1TdGF0ZS5tb3ZlKGFjY3VtdWxhdGVkT2Zmc2V0Lndp
ZHRoKCksIGFjY3VtdWxhdGVkT2Zmc2V0LmhlaWdodCgpLCBhY2N1bXVsYXRlKTsKKyAgICAgICAg
YWNjdW11bGF0ZWRPZmZzZXQgPSBMYXlvdXRTaXplKCk7CisgICAgfQorfQorCiB2b2lkIFJlbmRl
ckdlb21ldHJ5TWFwOjptYXBUb0NvbnRhaW5lcihUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3Rh
dGUsIGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGNvbnRhaW5lcikgY29uc3QKIHsKICAg
ICAvLyBJZiB0aGUgbWFwcGluZyBpbmNsdWRlcyBzb21ldGhpbmcgbGlrZSBjb2x1bW5zLCB3ZSBo
YXZlIHRvIGdvIHZpYSByZW5kZXJlcnMuCkBAIC01OSw2ICs2OCw3IEBAIHZvaWQgUmVuZGVyR2Vv
bWV0cnlNYXA6Om1hcFRvQ29udGFpbmVyKFQKICAgICBib29sIGZvdW5kQ29udGFpbmVyID0gIWNv
bnRhaW5lciB8fCAobV9tYXBwaW5nLnNpemUoKSAmJiBtX21hcHBpbmdbMF0ubV9yZW5kZXJlciA9
PSBjb250YWluZXIpOwogI2VuZGlmCiAKKyAgICBMYXlvdXRTaXplIGFjY3VtdWxhdGVkT2Zmc2V0
OwogICAgIGZvciAoaW50IGkgPSBtX21hcHBpbmcuc2l6ZSgpIC0gMTsgaSA+PSAwOyAtLWkpIHsK
ICAgICAgICAgY29uc3QgUmVuZGVyR2VvbWV0cnlNYXBTdGVwJiBjdXJyZW50U3RlcCA9IG1fbWFw
cGluZ1tpXTsKIApAQCAtODAsMjMgKzkwLDMxIEBAIHZvaWQgUmVuZGVyR2VvbWV0cnlNYXA6Om1h
cFRvQ29udGFpbmVyKFQKIAogICAgICAgICBpZiAoIWkpIHsKICAgICAgICAgICAgIC8vIEEgbnVs
bCBjb250YWluZXIgaW5kaWNhdGVzIG1hcHBpbmcgdGhyb3VnaCB0aGUgUmVuZGVyVmlldywgc28g
aW5jbHVkaW5nIGl0cyB0cmFuc2Zvcm0gKHRoZSBwYWdlIHNjYWxlKS4KLSAgICAgICAgICAgIGlm
ICghY29udGFpbmVyICYmIGN1cnJlbnRTdGVwLm1fdHJhbnNmb3JtKQorICAgICAgICAgICAgaWYg
KCFjb250YWluZXIgJiYgY3VycmVudFN0ZXAubV90cmFuc2Zvcm0pIHsKKyAgICAgICAgICAgICAg
ICBhcHBseUFjY3VtdWxhdGVkT2Zmc2V0KHRyYW5zZm9ybVN0YXRlLCBhY2N1bXVsYXRlZE9mZnNl
dCwgbV9tYXBDb29yZGluYXRlc0ZsYWdzKTsKICAgICAgICAgICAgICAgICB0cmFuc2Zvcm1TdGF0
ZS5hcHBseVRyYW5zZm9ybSgqY3VycmVudFN0ZXAubV90cmFuc2Zvcm0uZ2V0KCkpOworICAgICAg
ICAgICAgfQogCiAgICAgICAgICAgICAvLyBUaGUgcm9vdCBnZXRzIHNwZWNpYWwgdHJlYXRtZW50
IGZvciBmaXhlZCBwb3NpdGlvbgogICAgICAgICAgICAgaWYgKGluRml4ZWQpCi0gICAgICAgICAg
ICAgICAgdHJhbnNmb3JtU3RhdGUubW92ZShjdXJyZW50U3RlcC5tX29mZnNldC53aWR0aCgpLCBj
dXJyZW50U3RlcC5tX29mZnNldC5oZWlnaHQoKSk7CisgICAgICAgICAgICAgICAgYWNjdW11bGF0
ZWRPZmZzZXQuZXhwYW5kKGN1cnJlbnRTdGVwLm1fb2Zmc2V0KTsKICAgICAgICAgfSBlbHNlIHsK
ICAgICAgICAgICAgIFRyYW5zZm9ybVN0YXRlOjpUcmFuc2Zvcm1BY2N1bXVsYXRpb24gYWNjdW11
bGF0ZSA9IGN1cnJlbnRTdGVwLm1fYWNjdW11bGF0aW5nVHJhbnNmb3JtID8gVHJhbnNmb3JtU3Rh
dGU6OkFjY3VtdWxhdGVUcmFuc2Zvcm0gOiBUcmFuc2Zvcm1TdGF0ZTo6RmxhdHRlblRyYW5zZm9y
bTsKLSAgICAgICAgICAgIGlmIChjdXJyZW50U3RlcC5tX3RyYW5zZm9ybSkKKyAgICAgICAgICAg
IGlmIChjdXJyZW50U3RlcC5tX3RyYW5zZm9ybSkgeworICAgICAgICAgICAgICAgIGFwcGx5QWNj
dW11bGF0ZWRPZmZzZXQodHJhbnNmb3JtU3RhdGUsIGFjY3VtdWxhdGVkT2Zmc2V0LCBtX21hcENv
b3JkaW5hdGVzRmxhZ3MpOwogICAgICAgICAgICAgICAgIHRyYW5zZm9ybVN0YXRlLmFwcGx5VHJh
bnNmb3JtKCpjdXJyZW50U3RlcC5tX3RyYW5zZm9ybS5nZXQoKSwgYWNjdW11bGF0ZSk7Ci0gICAg
ICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgdHJhbnNmb3JtU3RhdGUubW92ZShjdXJyZW50
U3RlcC5tX29mZnNldC53aWR0aCgpLCBjdXJyZW50U3RlcC5tX29mZnNldC5oZWlnaHQoKSwgYWNj
dW11bGF0ZSk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGN1cnJlbnRTdGVwLm1fYWNjdW11bGF0
aW5nVHJhbnNmb3JtKSB7CisgICAgICAgICAgICAgICAgYXBwbHlBY2N1bXVsYXRlZE9mZnNldCh0
cmFuc2Zvcm1TdGF0ZSwgYWNjdW11bGF0ZWRPZmZzZXQsIG1fbWFwQ29vcmRpbmF0ZXNGbGFncyk7
CisgICAgICAgICAgICAgICAgTGF5b3V0U2l6ZSBjb250YWluZXJPZmZzZXQgPSBhZGp1c3RPZmZz
ZXRGb3JTbmFwcGluZyhtX21hcENvb3JkaW5hdGVzRmxhZ3MsIGN1cnJlbnRTdGVwLm1fb2Zmc2V0
KTsKKyAgICAgICAgICAgICAgICB0cmFuc2Zvcm1TdGF0ZS5tb3ZlKGNvbnRhaW5lck9mZnNldC53
aWR0aCgpLCBjb250YWluZXJPZmZzZXQuaGVpZ2h0KCksIGFjY3VtdWxhdGUpOworICAgICAgICAg
ICAgfSBlbHNlCisgICAgICAgICAgICAgICAgYWNjdW11bGF0ZWRPZmZzZXQuZXhwYW5kKGN1cnJl
bnRTdGVwLm1fb2Zmc2V0KTsKICAgICAgICAgfQogICAgIH0KIAorICAgIGFwcGx5QWNjdW11bGF0
ZWRPZmZzZXQodHJhbnNmb3JtU3RhdGUsIGFjY3VtdWxhdGVkT2Zmc2V0LCBtX21hcENvb3JkaW5h
dGVzRmxhZ3MpOwogICAgIEFTU0VSVChmb3VuZENvbnRhaW5lcik7Ci0gICAgdHJhbnNmb3JtU3Rh
dGUuZmxhdHRlbigpOyAgICAKKyAgICB0cmFuc2Zvcm1TdGF0ZS5mbGF0dGVuKCk7CiB9CiAKIEZs
b2F0UG9pbnQgUmVuZGVyR2VvbWV0cnlNYXA6Om1hcFRvQ29udGFpbmVyKGNvbnN0IEZsb2F0UG9p
bnQmIHAsIGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGNvbnRhaW5lcikgY29uc3QKQEAg
LTEwNCw3ICsxMjIsNyBAQCBGbG9hdFBvaW50IFJlbmRlckdlb21ldHJ5TWFwOjptYXBUb0NvbnRh
CiAgICAgRmxvYXRQb2ludCByZXN1bHQ7CiAgICAgCiAgICAgaWYgKCFoYXNGaXhlZFBvc2l0aW9u
U3RlcCgpICYmICFoYXNUcmFuc2Zvcm1TdGVwKCkgJiYgIWhhc05vblVuaWZvcm1TdGVwKCkgJiYg
KCFjb250YWluZXIgfHwgKG1fbWFwcGluZy5zaXplKCkgJiYgY29udGFpbmVyID09IG1fbWFwcGlu
Z1swXS5tX3JlbmRlcmVyKSkpCi0gICAgICAgIHJlc3VsdCA9IHAgKyBtX2FjY3VtdWxhdGVkT2Zm
c2V0OworICAgICAgICByZXN1bHQgPSBwICsgYWRqdXN0T2Zmc2V0Rm9yU25hcHBpbmcobV9tYXBD
b29yZGluYXRlc0ZsYWdzLCBtX2FjY3VtdWxhdGVkT2Zmc2V0KTsKICAgICBlbHNlIHsKICAgICAg
ICAgVHJhbnNmb3JtU3RhdGUgdHJhbnNmb3JtU3RhdGUoVHJhbnNmb3JtU3RhdGU6OkFwcGx5VHJh
bnNmb3JtRGlyZWN0aW9uLCBwKTsKICAgICAgICAgbWFwVG9Db250YWluZXIodHJhbnNmb3JtU3Rh
dGUsIGNvbnRhaW5lcik7CkBAIC0xMjcsNyArMTQ1LDcgQEAgRmxvYXRRdWFkIFJlbmRlckdlb21l
dHJ5TWFwOjptYXBUb0NvbnRhaQogICAgIAogICAgIGlmICghaGFzRml4ZWRQb3NpdGlvblN0ZXAo
KSAmJiAhaGFzVHJhbnNmb3JtU3RlcCgpICYmICFoYXNOb25Vbmlmb3JtU3RlcCgpICYmICghY29u
dGFpbmVyIHx8IChtX21hcHBpbmcuc2l6ZSgpICYmIGNvbnRhaW5lciA9PSBtX21hcHBpbmdbMF0u
bV9yZW5kZXJlcikpKSB7CiAgICAgICAgIHJlc3VsdCA9IHJlY3Q7Ci0gICAgICAgIHJlc3VsdC5t
b3ZlKG1fYWNjdW11bGF0ZWRPZmZzZXQpOworICAgICAgICByZXN1bHQubW92ZShhZGp1c3RPZmZz
ZXRGb3JTbmFwcGluZyhtX21hcENvb3JkaW5hdGVzRmxhZ3MsIG1fYWNjdW11bGF0ZWRPZmZzZXQp
KTsKICAgICB9IGVsc2UgewogICAgICAgICBUcmFuc2Zvcm1TdGF0ZSB0cmFuc2Zvcm1TdGF0ZShU
cmFuc2Zvcm1TdGF0ZTo6QXBwbHlUcmFuc2Zvcm1EaXJlY3Rpb24sIHJlY3QuY2VudGVyKCksIHJl
Y3QpOwogICAgICAgICBtYXBUb0NvbnRhaW5lcih0cmFuc2Zvcm1TdGF0ZSwgY29udGFpbmVyKTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCShyZXZpc2lv
biAxMzY5OTMpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTE1Nyw3ICsxMTU3LDcgQEAgTGF5b3V0U2l6ZSBSZW5kZXJJbmxp
bmU6Om9mZnNldEZyb21Db250YQogICAgIHJldHVybiBvZmZzZXQ7CiB9CiAKLXZvaWQgUmVuZGVy
SW5saW5lOjptYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3Qq
IHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFwQ29v
cmRpbmF0ZXNGbGFncyBtb2RlLCBib29sKiB3YXNGaXhlZCkgY29uc3QKK3ZvaWQgUmVuZGVySW5s
aW5lOjptYXBMb2NhbFRvQ29udGFpbmVySW50ZXJuYWwoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9i
amVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBM
YXlvdXRTaXplJiBhY2N1bXVsYXRlZE9mZnNldCwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBi
b29sKiB3YXNGaXhlZCkgY29uc3QKIHsKICAgICBpZiAocmVwYWludENvbnRhaW5lciA9PSB0aGlz
KQogICAgICAgICByZXR1cm47CkBAIC0xMTY1LDEwICsxMTY1LDExIEBAIHZvaWQgUmVuZGVySW5s
aW5lOjptYXBMb2NhbFRvQ29udGFpbmVyKGMKICAgICBpZiAoUmVuZGVyVmlldyAqdiA9IHZpZXco
KSkgewogICAgICAgICBpZiAodi0+bGF5b3V0U3RhdGVFbmFibGVkKCkgJiYgIXJlcGFpbnRDb250
YWluZXIpIHsKICAgICAgICAgICAgIExheW91dFN0YXRlKiBsYXlvdXRTdGF0ZSA9IHYtPmxheW91
dFN0YXRlKCk7Ci0gICAgICAgICAgICBMYXlvdXRTaXplIG9mZnNldCA9IGxheW91dFN0YXRlLT5t
X3BhaW50T2Zmc2V0OworICAgICAgICAgICAgYWNjdW11bGF0ZWRPZmZzZXQuZXhwYW5kKGxheW91
dFN0YXRlLT5tX3BhaW50T2Zmc2V0ICsgYWNjdW11bGF0ZWRPZmZzZXQpOwogICAgICAgICAgICAg
aWYgKHN0eWxlKCktPmhhc0luRmxvd1Bvc2l0aW9uKCkgJiYgbGF5ZXIoKSkKLSAgICAgICAgICAg
ICAgICBvZmZzZXQgKz0gbGF5ZXIoKS0+b2Zmc2V0Rm9ySW5GbG93UG9zaXRpb24oKTsKLSAgICAg
ICAgICAgIHRyYW5zZm9ybVN0YXRlLm1vdmUob2Zmc2V0KTsKKyAgICAgICAgICAgICAgICBhY2N1
bXVsYXRlZE9mZnNldCArPSBsYXllcigpLT5vZmZzZXRGb3JJbkZsb3dQb3NpdGlvbigpOworICAg
ICAgICAgICAgdHJhbnNmb3JtU3RhdGUubW92ZShhZGp1c3RPZmZzZXRGb3JTbmFwcGluZyhtb2Rl
LCBhY2N1bXVsYXRlZE9mZnNldCkpOworICAgICAgICAgICAgYWNjdW11bGF0ZWRPZmZzZXQgPSBM
YXlvdXRTaXplKCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICB9CkBAIC0x
MTgwLDMzICsxMTgxLDM4IEBAIHZvaWQgUmVuZGVySW5saW5lOjptYXBMb2NhbFRvQ29udGFpbmVy
KGMKIAogICAgIGlmIChtb2RlICYgQXBwbHlDb250YWluZXJGbGlwICYmIG8tPmlzQm94KCkpIHsK
ICAgICAgICAgaWYgKG8tPnN0eWxlKCktPmlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdNb2RlKCkpIHsK
LSAgICAgICAgICAgIEludFBvaW50IGNlbnRlclBvaW50ID0gcm91bmRlZEludFBvaW50KHRyYW5z
Zm9ybVN0YXRlLm1hcHBlZFBvaW50KCkpOwotICAgICAgICAgICAgdHJhbnNmb3JtU3RhdGUubW92
ZSh0b1JlbmRlckJveChvKS0+ZmxpcEZvcldyaXRpbmdNb2RlSW5jbHVkaW5nQ29sdW1ucyhjZW50
ZXJQb2ludCkgLSBjZW50ZXJQb2ludCk7CisgICAgICAgICAgICBJbnRQb2ludCBjZW50ZXJQb2lu
dCA9IHJvdW5kZWRJbnRQb2ludCh0cmFuc2Zvcm1TdGF0ZS5tYXBwZWRQb2ludCgpICsgYWNjdW11
bGF0ZWRPZmZzZXQpOworICAgICAgICAgICAgYWNjdW11bGF0ZWRPZmZzZXQuZXhwYW5kKHRvUmVu
ZGVyQm94KG8pLT5mbGlwRm9yV3JpdGluZ01vZGVJbmNsdWRpbmdDb2x1bW5zKGNlbnRlclBvaW50
KSAtIGNlbnRlclBvaW50KTsKICAgICAgICAgfQogICAgICAgICBtb2RlICY9IH5BcHBseUNvbnRh
aW5lckZsaXA7CiAgICAgfQogCiAgICAgTGF5b3V0U2l6ZSBjb250YWluZXJPZmZzZXQgPSBvZmZz
ZXRGcm9tQ29udGFpbmVyKG8sIHJvdW5kZWRMYXlvdXRQb2ludCh0cmFuc2Zvcm1TdGF0ZS5tYXBw
ZWRQb2ludCgpKSk7Ci0gICAgaWYgKG1vZGUgJiBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcykKLSAg
ICAgICAgY29udGFpbmVyT2Zmc2V0ID0gcm91bmRlZEludFNpemUoY29udGFpbmVyT2Zmc2V0KTsK
LQotICAgIGJvb2wgcHJlc2VydmUzRCA9IG1vZGUgJiBVc2VUcmFuc2Zvcm1zICYmIChvLT5zdHls
ZSgpLT5wcmVzZXJ2ZXMzRCgpIHx8IHN0eWxlKCktPnByZXNlcnZlczNEKCkpOworICAgIGJvb2wg
cHJlc2VydmUzRCA9IG1vZGUgJiBVc2VUcmFuc2Zvcm1zICYmICgobyAmJiBvLT5zdHlsZSgpLT5w
cmVzZXJ2ZXMzRCgpKSB8fCBzdHlsZSgpLT5wcmVzZXJ2ZXMzRCgpKTsKICAgICBpZiAobW9kZSAm
IFVzZVRyYW5zZm9ybXMgJiYgc2hvdWxkVXNlVHJhbnNmb3JtRnJvbUNvbnRhaW5lcihvKSkgewor
ICAgICAgICBhcHBseUFjY3VtdWxhdGVkT2Zmc2V0KHRyYW5zZm9ybVN0YXRlLCBhY2N1bXVsYXRl
ZE9mZnNldCwgbW9kZSk7CiAgICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHQ7CiAgICAgICAg
IGdldFRyYW5zZm9ybUZyb21Db250YWluZXIobywgY29udGFpbmVyT2Zmc2V0LCB0KTsKICAgICAg
ICAgdHJhbnNmb3JtU3RhdGUuYXBwbHlUcmFuc2Zvcm0odCwgcHJlc2VydmUzRCA/IFRyYW5zZm9y
bVN0YXRlOjpBY2N1bXVsYXRlVHJhbnNmb3JtIDogVHJhbnNmb3JtU3RhdGU6OkZsYXR0ZW5UcmFu
c2Zvcm0pOworICAgIH0gZWxzZSBpZiAocHJlc2VydmUzRCkgeworICAgICAgICBhcHBseUFjY3Vt
dWxhdGVkT2Zmc2V0KHRyYW5zZm9ybVN0YXRlLCBhY2N1bXVsYXRlZE9mZnNldCwgbW9kZSk7Cisg
ICAgICAgIExheW91dFNpemUgYWRqdXN0ZWRDb250YWluZXJPZmZzZXQgPSBhZGp1c3RPZmZzZXRG
b3JTbmFwcGluZyhtb2RlLCBjb250YWluZXJPZmZzZXQpOworICAgICAgICB0cmFuc2Zvcm1TdGF0
ZS5tb3ZlKGFkanVzdGVkQ29udGFpbmVyT2Zmc2V0LndpZHRoKCksIGFkanVzdGVkQ29udGFpbmVy
T2Zmc2V0LmhlaWdodCgpLCBUcmFuc2Zvcm1TdGF0ZTo6QWNjdW11bGF0ZVRyYW5zZm9ybSk7CiAg
ICAgfSBlbHNlCi0gICAgICAgIHRyYW5zZm9ybVN0YXRlLm1vdmUoY29udGFpbmVyT2Zmc2V0Lndp
ZHRoKCksIGNvbnRhaW5lck9mZnNldC5oZWlnaHQoKSwgcHJlc2VydmUzRCA/IFRyYW5zZm9ybVN0
YXRlOjpBY2N1bXVsYXRlVHJhbnNmb3JtIDogVHJhbnNmb3JtU3RhdGU6OkZsYXR0ZW5UcmFuc2Zv
cm0pOworICAgICAgICBhY2N1bXVsYXRlZE9mZnNldC5leHBhbmQoY29udGFpbmVyT2Zmc2V0KTsg
ICAKIAogICAgIGlmIChjb250YWluZXJTa2lwcGVkKSB7CiAgICAgICAgIC8vIFRoZXJlIGNhbid0
IGJlIGEgdHJhbnNmb3JtIGJldHdlZW4gcmVwYWludENvbnRhaW5lciBhbmQgbywgYmVjYXVzZSB0
cmFuc2Zvcm1zIGNyZWF0ZSBjb250YWluZXJzLCBzbyBpdCBzaG91bGQgYmUgc2FmZQogICAgICAg
ICAvLyB0byBqdXN0IHN1YnRyYWN0IHRoZSBkZWx0YSBiZXR3ZWVuIHRoZSByZXBhaW50Q29udGFp
bmVyIGFuZCBvLgogICAgICAgICBMYXlvdXRTaXplIGNvbnRhaW5lck9mZnNldCA9IHJlcGFpbnRD
b250YWluZXItPm9mZnNldEZyb21BbmNlc3RvckNvbnRhaW5lcihvKTsKLSAgICAgICAgdHJhbnNm
b3JtU3RhdGUubW92ZSgtY29udGFpbmVyT2Zmc2V0LndpZHRoKCksIC1jb250YWluZXJPZmZzZXQu
aGVpZ2h0KCksIHByZXNlcnZlM0QgPyBUcmFuc2Zvcm1TdGF0ZTo6QWNjdW11bGF0ZVRyYW5zZm9y
bSA6IFRyYW5zZm9ybVN0YXRlOjpGbGF0dGVuVHJhbnNmb3JtKTsKKyAgICAgICAgaWYgKHByZXNl
cnZlM0QpCisgICAgICAgICAgICB0cmFuc2Zvcm1TdGF0ZS5tb3ZlKGNvbnRhaW5lck9mZnNldC53
aWR0aCgpLCBjb250YWluZXJPZmZzZXQuaGVpZ2h0KCksIFRyYW5zZm9ybVN0YXRlOjpBY2N1bXVs
YXRlVHJhbnNmb3JtKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgYWNjdW11bGF0ZWRPZmZz
ZXQuZXhwYW5kKC1jb250YWluZXJPZmZzZXQpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0g
ICAgby0+bWFwTG9jYWxUb0NvbnRhaW5lcihyZXBhaW50Q29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0
ZSwgbW9kZSwgd2FzRml4ZWQpOworICAgIG8tPm1hcExvY2FsVG9Db250YWluZXJJbnRlcm5hbChy
ZXBhaW50Q29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwgYWNjdW11bGF0ZWRPZmZzZXQsIG1vZGUs
IHdhc0ZpeGVkKTsKIH0KIAogY29uc3QgUmVuZGVyT2JqZWN0KiBSZW5kZXJJbmxpbmU6OnB1c2hN
YXBwaW5nVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0b3JU
b1N0b3BBdCwgUmVuZGVyR2VvbWV0cnlNYXAmIGdlb21ldHJ5TWFwKSBjb25zdApAQCAtMTIyNywx
MyArMTIzMywxMiBAQCBjb25zdCBSZW5kZXJPYmplY3QqIFJlbmRlcklubGluZTo6cHVzaE1hCiAK
ICAgICBib29sIG9mZnNldERlcGVuZHNPblBvaW50ID0gZmFsc2U7CiAgICAgTGF5b3V0U2l6ZSBj
b250YWluZXJPZmZzZXQgPSBvZmZzZXRGcm9tQ29udGFpbmVyKGNvbnRhaW5lciwgTGF5b3V0UG9p
bnQoKSwgJm9mZnNldERlcGVuZHNPblBvaW50KTsKLSAgICBpZiAoZ2VvbWV0cnlNYXAubWFwQ29v
cmRpbmF0ZXNGbGFncygpICYgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpCi0gICAgICAgIGNvbnRh
aW5lck9mZnNldCA9IHJvdW5kZWRJbnRTaXplKGNvbnRhaW5lck9mZnNldCk7CiAKICAgICBib29s
IHByZXNlcnZlM0QgPSBjb250YWluZXItPnN0eWxlKCktPnByZXNlcnZlczNEKCkgfHwgc3R5bGUo
KS0+cHJlc2VydmVzM0QoKTsKICAgICBpZiAoc2hvdWxkVXNlVHJhbnNmb3JtRnJvbUNvbnRhaW5l
cihjb250YWluZXIpKSB7CiAgICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHQ7CiAgICAgICAg
IGdldFRyYW5zZm9ybUZyb21Db250YWluZXIoY29udGFpbmVyLCBjb250YWluZXJPZmZzZXQsIHQp
OworICAgICAgICBhZGp1c3RtZW50Rm9yU2tpcHBlZEFuY2VzdG9yID0gYWRqdXN0T2Zmc2V0Rm9y
U25hcHBpbmcoZ2VvbWV0cnlNYXAubWFwQ29vcmRpbmF0ZXNGbGFncygpLCBhZGp1c3RtZW50Rm9y
U2tpcHBlZEFuY2VzdG9yKTsKICAgICAgICAgdC50cmFuc2xhdGVSaWdodChhZGp1c3RtZW50Rm9y
U2tpcHBlZEFuY2VzdG9yLndpZHRoKCksIGFkanVzdG1lbnRGb3JTa2lwcGVkQW5jZXN0b3IuaGVp
Z2h0KCkpOyAvLyBGSVhNRTogcmlnaHQ/CiAgICAgICAgIGdlb21ldHJ5TWFwLnB1c2godGhpcywg
dCwgcHJlc2VydmUzRCwgb2Zmc2V0RGVwZW5kc09uUG9pbnQpOwogICAgIH0gZWxzZSB7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5oCShyZXZpc2lvbiAxMzY5OTMp
CisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTE0MCw3ICsxNDAsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBy
ZWN0V2l0aE91dGxpbmVGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJl
cGFpbnRDb250YWluZXIsIExheW91dFVuaXQgb3V0bGluZVdpZHRoKSBjb25zdCBPVkVSUklERTsK
ICAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZVJlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVy
TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIExheW91dFJlY3QmLCBib29sIGZpeGVkKSBj
b25zdCBPVkVSUklERTsKIAotICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKGNv
bnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0
YXRlJiwgTWFwQ29vcmRpbmF0ZXNGbGFncyA9IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNuYXBPZmZz
ZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURFOworICAg
IHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVySW50ZXJuYWwoY29uc3QgUmVuZGVyTGF5
ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBMYXlvdXRT
aXplJiBhY2N1bXVsYXRlZE9mZnNldCwgTWFwQ29vcmRpbmF0ZXNGbGFncyA9IEFwcGx5Q29udGFp
bmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCA9IDApIGNv
bnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgUmVuZGVyT2JqZWN0KiBwdXNoTWFwcGlu
Z1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGFuY2VzdG9yVG9TdG9w
QXQsIFJlbmRlckdlb21ldHJ5TWFwJikgY29uc3QgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIFZp
c2libGVQb3NpdGlvbiBwb3NpdGlvbkZvclBvaW50KGNvbnN0IExheW91dFBvaW50Jik7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAkocmV2aXNpb24gMTM2
OTkzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTIwNjIsMzIgKzIwNjIsNDggQEAgRmxvYXRQb2ludCBSZW5kZXJPYmplY3Q6
OmFic29sdXRlVG9Mb2NhbAogICAgIHJldHVybiB0cmFuc2Zvcm1TdGF0ZS5sYXN0UGxhbmFyUG9p
bnQoKTsKIH0KIAordm9pZCBSZW5kZXJPYmplY3Q6OmFwcGx5QWNjdW11bGF0ZWRPZmZzZXQoVHJh
bnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBMYXlvdXRTaXplJiBhY2N1bXVsYXRlZE9mZnNl
dCwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtYXBDb29yZGluYXRlc0ZsYWdzLCBib29sIHByZXNlcnZl
M0QpIGNvbnN0Cit7CisgICAgYWNjdW11bGF0ZWRPZmZzZXQgPSBhZGp1c3RPZmZzZXRGb3JTbmFw
cGluZyhtYXBDb29yZGluYXRlc0ZsYWdzLCBhY2N1bXVsYXRlZE9mZnNldCk7CisgICAgaWYgKCFh
Y2N1bXVsYXRlZE9mZnNldC5pc1plcm8oKSkgeworICAgICAgICB0cmFuc2Zvcm1TdGF0ZS5tb3Zl
KGFjY3VtdWxhdGVkT2Zmc2V0LndpZHRoKCksIGFjY3VtdWxhdGVkT2Zmc2V0LmhlaWdodCgpLCBw
cmVzZXJ2ZTNEID8gVHJhbnNmb3JtU3RhdGU6OkFjY3VtdWxhdGVUcmFuc2Zvcm0gOiBUcmFuc2Zv
cm1TdGF0ZTo6RmxhdHRlblRyYW5zZm9ybSk7CisgICAgICAgIGFjY3VtdWxhdGVkT2Zmc2V0ID0g
TGF5b3V0U2l6ZSgpOworICAgIH0KK30KKwogdm9pZCBSZW5kZXJPYmplY3Q6Om1hcExvY2FsVG9D
b250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwg
VHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUs
IGJvb2wqIHdhc0ZpeGVkKSBjb25zdAogeworICAgIExheW91dFNpemUgYWNjdW11bGF0ZWRPZmZz
ZXQ7CisgICAgbWFwTG9jYWxUb0NvbnRhaW5lckludGVybmFsKHJlcGFpbnRDb250YWluZXIsIHRy
YW5zZm9ybVN0YXRlLCBhY2N1bXVsYXRlZE9mZnNldCwgbW9kZSwgd2FzRml4ZWQpOworICAgIGFw
cGx5QWNjdW11bGF0ZWRPZmZzZXQodHJhbnNmb3JtU3RhdGUsIGFjY3VtdWxhdGVkT2Zmc2V0LCBt
b2RlKTsKK30KKwordm9pZCBSZW5kZXJPYmplY3Q6Om1hcExvY2FsVG9Db250YWluZXJJbnRlcm5h
bChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zv
cm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIExheW91dFNpemUmIGFjY3VtdWxhdGVkT2Zmc2V0LCBN
YXBDb29yZGluYXRlc0ZsYWdzIG1vZGUsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAorewogICAgIGlm
IChyZXBhaW50Q29udGFpbmVyID09IHRoaXMpCiAgICAgICAgIHJldHVybjsKIAogICAgIFJlbmRl
ck9iamVjdCogbyA9IHBhcmVudCgpOwogICAgIGlmICghbykKLSAgICAgICAgcmV0dXJuOworICAg
ICAgICByZXR1cm4gdHJhbnNmb3JtU3RhdGUubW92ZShhZGp1c3RPZmZzZXRGb3JTbmFwcGluZyht
b2RlLCBhY2N1bXVsYXRlZE9mZnNldCkpOwogCiAgICAgLy8gRklYTUU6IHRoaXMgc2hvdWxkIGNh
bGwgb2Zmc2V0RnJvbUNvbnRhaW5lciB0byBzaGFyZSBjb2RlLCBidXQgSSdtIG5vdCBzdXJlIGl0
J3MgZXZlciBjYWxsZWQuCiAgICAgTGF5b3V0UG9pbnQgY2VudGVyUG9pbnQgPSByb3VuZGVkTGF5
b3V0UG9pbnQodHJhbnNmb3JtU3RhdGUubWFwcGVkUG9pbnQoKSk7CiAgICAgaWYgKG1vZGUgJiBB
cHBseUNvbnRhaW5lckZsaXAgJiYgby0+aXNCb3goKSkgewogICAgICAgICBpZiAoby0+c3R5bGUo
KS0+aXNGbGlwcGVkQmxvY2tzV3JpdGluZ01vZGUoKSkKLSAgICAgICAgICAgIHRyYW5zZm9ybVN0
YXRlLm1vdmUodG9SZW5kZXJCb3gobyktPmZsaXBGb3JXcml0aW5nTW9kZUluY2x1ZGluZ0NvbHVt
bnMocm91bmRlZExheW91dFBvaW50KHRyYW5zZm9ybVN0YXRlLm1hcHBlZFBvaW50KCkpKSAtIGNl
bnRlclBvaW50KTsKKyAgICAgICAgICAgIGFjY3VtdWxhdGVkT2Zmc2V0LmV4cGFuZCh0b1JlbmRl
ckJveChvKS0+ZmxpcEZvcldyaXRpbmdNb2RlSW5jbHVkaW5nQ29sdW1ucyhyb3VuZGVkTGF5b3V0
UG9pbnQodHJhbnNmb3JtU3RhdGUubWFwcGVkUG9pbnQoKSkpIC0gY2VudGVyUG9pbnQpOwogICAg
ICAgICBtb2RlICY9IH5BcHBseUNvbnRhaW5lckZsaXA7CiAgICAgfQogCiAgICAgTGF5b3V0U2l6
ZSBjb2x1bW5PZmZzZXQ7Ci0gICAgby0+YWRqdXN0Rm9yQ29sdW1ucyhjb2x1bW5PZmZzZXQsIHJv
dW5kZWRMYXlvdXRQb2ludCh0cmFuc2Zvcm1TdGF0ZS5tYXBwZWRQb2ludCgpKSk7CisgICAgby0+
YWRqdXN0Rm9yQ29sdW1ucyhjb2x1bW5PZmZzZXQsIHJvdW5kZWRMYXlvdXRQb2ludCh0cmFuc2Zv
cm1TdGF0ZS5tYXBwZWRQb2ludCgpKSArIGFjY3VtdWxhdGVkT2Zmc2V0KTsKICAgICBpZiAoIWNv
bHVtbk9mZnNldC5pc1plcm8oKSkKLSAgICAgICAgdHJhbnNmb3JtU3RhdGUubW92ZShjb2x1bW5P
ZmZzZXQpOworICAgICAgICBhY2N1bXVsYXRlZE9mZnNldC5leHBhbmQoY29sdW1uT2Zmc2V0KTsK
IAogICAgIGlmIChvLT5oYXNPdmVyZmxvd0NsaXAoKSkKLSAgICAgICAgdHJhbnNmb3JtU3RhdGUu
bW92ZSgtdG9SZW5kZXJCb3gobyktPnNjcm9sbGVkQ29udGVudE9mZnNldCgpKTsKKyAgICAgICAg
YWNjdW11bGF0ZWRPZmZzZXQuZXhwYW5kKC10b1JlbmRlckJveChvKS0+c2Nyb2xsZWRDb250ZW50
T2Zmc2V0KCkpOwogCi0gICAgby0+bWFwTG9jYWxUb0NvbnRhaW5lcihyZXBhaW50Q29udGFpbmVy
LCB0cmFuc2Zvcm1TdGF0ZSwgbW9kZSwgd2FzRml4ZWQpOworICAgIG8tPm1hcExvY2FsVG9Db250
YWluZXJJbnRlcm5hbChyZXBhaW50Q29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwgYWNjdW11bGF0
ZWRPZmZzZXQsIG1vZGUsIHdhc0ZpeGVkKTsKIH0KIAogY29uc3QgUmVuZGVyT2JqZWN0KiBSZW5k
ZXJPYmplY3Q6OnB1c2hNYXBwaW5nVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9i
amVjdCogYW5jZXN0b3JUb1N0b3BBdCwgUmVuZGVyR2VvbWV0cnlNYXAmIGdlb21ldHJ5TWFwKSBj
b25zdApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAkocmV2aXNp
b24gMTM2OTkzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCSh3
b3JraW5nIGNvcHkpCkBAIC05NDIsOSArOTQyLDExIEBAIHB1YmxpYzoKIAogICAgIC8vIE1hcCBw
b2ludHMgYW5kIHF1YWRzIHRocm91Z2ggZWxlbWVudHMsIHBvdGVudGlhbGx5IHZpYSAzZCB0cmFu
c2Zvcm1zLiBZb3Ugc2hvdWxkIG5ldmVyIG5lZWQgdG8gY2FsbCB0aGVzZSBkaXJlY3RseTsgdXNl
CiAgICAgLy8gbG9jYWxUb0Fic29sdXRlL2Fic29sdXRlVG9Mb2NhbCBtZXRob2RzIGluc3RlYWQu
Ci0gICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJN
b2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBDb29yZGlu
YXRlc0ZsYWdzID0gQXBwbHlDb250YWluZXJGbGlwLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0
OworICAgIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2Jq
ZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxh
Z3MgPSBBcHBseUNvbnRhaW5lckZsaXAsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3Q7CiAgICAg
dmlydHVhbCB2b2lkIG1hcEFic29sdXRlVG9Mb2NhbFBvaW50KE1hcENvb3JkaW5hdGVzRmxhZ3Ms
IFRyYW5zZm9ybVN0YXRlJikgY29uc3Q7CiAKKyAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0Nv
bnRhaW5lckludGVybmFsKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250
YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTGF5b3V0U2l6ZSYgYWNjdW11bGF0ZWRPZmZzZXQsIE1h
cENvb3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5lckZsaXAsIGJvb2wqIHdhc0ZpeGVkID0g
MCkgY29uc3Q7CisKICAgICAvLyBQdXNoZXMgc3RhdGUgb250byBSZW5kZXJHZW9tZXRyeU1hcCBh
Ym91dCBob3cgdG8gbWFwIGNvb3JkaW5hdGVzIGZyb20gdGhpcyByZW5kZXJlciB0byBpdHMgY29u
dGFpbmVyLCBvciBhbmNlc3RvclRvU3RvcEF0ICh3aGljaGV2ZXIgaXMgZW5jb3VudGVyZWQgZmly
c3QpLgogICAgIC8vIFJldHVybnMgdGhlIHJlbmRlcmVyIHdoaWNoIHdhcyBtYXBwZWQgdG8gKGNv
bnRhaW5lciBvciBhbmNlc3RvclRvU3RvcEF0KS4KICAgICB2aXJ0dWFsIGNvbnN0IFJlbmRlck9i
amVjdCogcHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0
KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1hcCYpIGNvbnN0OwpAQCAtOTY4LDYg
Kzk3MCw4IEBAIHB1YmxpYzoKICAgICBSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbkVudW0gc2hvdWxk
UmVzcGVjdEltYWdlT3JpZW50YXRpb24oKSBjb25zdDsKIAogcHJvdGVjdGVkOgorICAgIHZvaWQg
YXBwbHlBY2N1bXVsYXRlZE9mZnNldChUcmFuc2Zvcm1TdGF0ZSYsIExheW91dFNpemUmLCBNYXBD
b29yZGluYXRlc0ZsYWdzLCBib29sIHByZXNlcnZlM0QgPSBmYWxzZSkgY29uc3Q7CisKICAgICBp
bmxpbmUgYm9vbCBsYXllckNyZWF0aW9uQWxsb3dlZEZvclN1YnRyZWUoKSBjb25zdDsKIAogICAg
IC8vIE92ZXJyaWRlcyBzaG91bGQgY2FsbCB0aGUgc3VwZXJjbGFzcyBhdCB0aGUgZW5kCkBAIC0x
MjYwLDYgKzEyNjQsMTEgQEAgaW5saW5lIHZvaWQgUmVuZGVyT2JqZWN0OjpzZXRTZWxlY3Rpb25T
dAogICAgIHNldFNlbGVjdGlvblN0YXRlKHN0YXRlKTsKIH0KIAoraW5saW5lIExheW91dFNpemUg
YWRqdXN0T2Zmc2V0Rm9yU25hcHBpbmcoTWFwQ29vcmRpbmF0ZXNGbGFncyBmbGFncywgY29uc3Qg
TGF5b3V0U2l6ZSYgb2Zmc2V0KQoreworICAgIHJldHVybiAoZmxhZ3MgJiBTbmFwT2Zmc2V0Rm9y
VHJhbnNmb3JtcykgPyByb3VuZGVkSW50U2l6ZShvZmZzZXQpIDogb2Zmc2V0OworfQorCiBpbmxp
bmUgdm9pZCBtYWtlTWF0cml4UmVuZGVyYWJsZShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgbWF0cml4
LCBib29sIGhhczNEUmVuZGVyaW5nKQogewogI2lmICFFTkFCTEUoM0RfUkVOREVSSU5HKQpJbmRl
eDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAkocmV2aXNpb24gMTM2OTkz
KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yMTIsNyArMjEyLDcgQEAgdm9pZCBSZW5kZXJWaWV3OjpsYXlvdXQoKQogICAgIHNl
dE5lZWRzTGF5b3V0KGZhbHNlKTsKIH0KIAotdm9pZCBSZW5kZXJWaWV3OjptYXBMb2NhbFRvQ29u
dGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRy
YW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBi
b29sKiB3YXNGaXhlZCkgY29uc3QKK3ZvaWQgUmVuZGVyVmlldzo6bWFwTG9jYWxUb0NvbnRhaW5l
ckludGVybmFsKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIs
IFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTGF5b3V0U2l6ZSYgYWNjdW11bGF0ZWRP
ZmZzZXQsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQpIGNvbnN0CiB7
CiAgICAgLy8gSWYgYSBjb250YWluZXIgd2FzIHNwZWNpZmllZCwgYW5kIHdhcyBub3QgMCBvciB0
aGUgUmVuZGVyVmlldywKICAgICAvLyB0aGVuIHdlIHNob3VsZCBoYXZlIGZvdW5kIGl0IGJ5IG5v
dy4KQEAgLTIyMCwxMyArMjIwLDE2IEBAIHZvaWQgUmVuZGVyVmlldzo6bWFwTG9jYWxUb0NvbnRh
aW5lcihjb24KICAgICBBU1NFUlRfVU5VU0VEKHdhc0ZpeGVkLCAhd2FzRml4ZWQgfHwgKndhc0Zp
eGVkID09IChtb2RlICYgSXNGaXhlZCkpOwogCiAgICAgaWYgKCFyZXBhaW50Q29udGFpbmVyICYm
IG1vZGUgJiBVc2VUcmFuc2Zvcm1zICYmIHNob3VsZFVzZVRyYW5zZm9ybUZyb21Db250YWluZXIo
MCkpIHsKKyAgICAgICAgYXBwbHlBY2N1bXVsYXRlZE9mZnNldCh0cmFuc2Zvcm1TdGF0ZSwgYWNj
dW11bGF0ZWRPZmZzZXQsIG1vZGUpOwogICAgICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCB0Owog
ICAgICAgICBnZXRUcmFuc2Zvcm1Gcm9tQ29udGFpbmVyKDAsIExheW91dFNpemUoKSwgdCk7CiAg
ICAgICAgIHRyYW5zZm9ybVN0YXRlLmFwcGx5VHJhbnNmb3JtKHQpOwogICAgIH0KICAgICAKLSAg
ICBpZiAobW9kZSAmIElzRml4ZWQgJiYgbV9mcmFtZVZpZXcpCi0gICAgICAgIHRyYW5zZm9ybVN0
YXRlLm1vdmUobV9mcmFtZVZpZXctPnNjcm9sbE9mZnNldEZvckZpeGVkUG9zaXRpb24oKSk7Cisg
ICAgaWYgKG1vZGUgJiBJc0ZpeGVkICYmIG1fZnJhbWVWaWV3KSB7CisgICAgICAgIHRyYW5zZm9y
bVN0YXRlLm1vdmUoYWRqdXN0T2Zmc2V0Rm9yU25hcHBpbmcobW9kZSwgbV9mcmFtZVZpZXctPnNj
cm9sbE9mZnNldEZvckZpeGVkUG9zaXRpb24oKSArIGFjY3VtdWxhdGVkT2Zmc2V0KSk7CisgICAg
ICAgIGFjY3VtdWxhdGVkT2Zmc2V0ID0gTGF5b3V0U2l6ZSgpOworICAgIH0KIH0KIAogY29uc3Qg
UmVuZGVyT2JqZWN0KiBSZW5kZXJWaWV3OjpwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJl
bmRlckxheWVyTW9kZWxPYmplY3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFw
JiBnZW9tZXRyeU1hcCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJWaWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZp
ZXcuaAkocmV2aXNpb24gMTM2OTkzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtMjI5LDcgKzIyOSw3IEBAIHB1YmxpYzoKICAgICBi
b29sIGhhc1JlbmRlckNvdW50ZXJzKCkgeyByZXR1cm4gbV9yZW5kZXJDb3VudGVyQ291bnQ7IH0K
IAogcHJvdGVjdGVkOgotICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0
IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRl
JiwgTWFwQ29vcmRpbmF0ZXNGbGFncyA9IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNuYXBPZmZzZXRG
b3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURFOworICAgIHZp
cnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVySW50ZXJuYWwoY29uc3QgUmVuZGVyTGF5ZXJN
b2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBMYXlvdXRTaXpl
JiBhY2N1bXVsYXRlZE9mZnNldCwgTWFwQ29vcmRpbmF0ZXNGbGFncyA9IEFwcGx5Q29udGFpbmVy
RmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0
IE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgUmVuZGVyT2JqZWN0KiBwdXNoTWFwcGluZ1Rv
Q29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGFuY2VzdG9yVG9TdG9wQXQs
IFJlbmRlckdlb21ldHJ5TWFwJikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIG1h
cEFic29sdXRlVG9Mb2NhbFBvaW50KE1hcENvb3JkaW5hdGVzRmxhZ3MsIFRyYW5zZm9ybVN0YXRl
JikgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIHJlcXVpcmVzQ29sdW1ucyhpbnQgZGVzaXJlZENv
bHVtbkNvdW50KSBjb25zdCBPVkVSUklERTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWduT2JqZWN0LmNwcAkocmV2aXNpb24g
MTM2OTkzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWdu
T2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTkzLDkgKzE5Myw5IEBAIGJvb2wgUmVuZGVy
U1ZHRm9yZWlnbk9iamVjdDo6bm9kZUF0UG9pbnQKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZv
aWQgUmVuZGVyU1ZHRm9yZWlnbk9iamVjdDo6bWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5k
ZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJh
bnNmb3JtU3RhdGUsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQpIGNv
bnN0Cit2b2lkIFJlbmRlclNWR0ZvcmVpZ25PYmplY3Q6Om1hcExvY2FsVG9Db250YWluZXJJbnRl
cm5hbChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFu
c2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIExheW91dFNpemUmIGFjY3VtdWxhdGVkT2Zmc2V0
LCBNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAogewotICAg
IFNWR1JlbmRlclN1cHBvcnQ6Om1hcExvY2FsVG9Db250YWluZXIodGhpcywgcmVwYWludENvbnRh
aW5lciwgdHJhbnNmb3JtU3RhdGUsIG1vZGUgJiBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jtcywgd2Fz
Rml4ZWQpOworICAgIFNWR1JlbmRlclN1cHBvcnQ6Om1hcExvY2FsVG9Db250YWluZXIodGhpcywg
cmVwYWludENvbnRhaW5lciwgdHJhbnNmb3JtU3RhdGUsIGFjY3VtdWxhdGVkT2Zmc2V0LCBtb2Rl
LCB3YXNGaXhlZCk7CiB9CiAKIGNvbnN0IFJlbmRlck9iamVjdCogUmVuZGVyU1ZHRm9yZWlnbk9i
amVjdDo6cHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0
KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1hcCYgZ2VvbWV0cnlNYXApIGNvbnN0
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ZvcmVpZ25PYmpl
Y3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R0ZvcmVpZ25PYmplY3QuaAkocmV2aXNpb24gMTM2OTkzKQorKysgU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWduT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTU0
LDcgKzU0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBub2RlQXRQb2ludChjb25zdCBI
aXRUZXN0UmVxdWVzdCYsIEhpdFRlc3RSZXN1bHQmLCBjb25zdCBIaXRUZXN0TG9jYXRpb24mIGxv
Y2F0aW9uSW5Db250YWluZXIsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCwg
SGl0VGVzdEFjdGlvbikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGlzU1ZHRm9yZWlnbk9i
amVjdCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBtYXBMb2Nh
bFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWlu
ZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29vcmRpbmF0ZXNGbGFncyA9IEFwcGx5Q29udGFpbmVy
RmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0
IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVySW50ZXJuYWwo
Y29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3Jt
U3RhdGUmLCBMYXlvdXRTaXplJiBhY2N1bXVsYXRlZE9mZnNldCwgTWFwQ29vcmRpbmF0ZXNGbGFn
cyA9IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3
YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgUmVuZGVyT2Jq
ZWN0KiBwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3Qq
IGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJikgY29uc3QgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCB2b2lkIHNldE5lZWRzVHJhbnNmb3JtVXBkYXRlKCkgeyBtX25lZWRzVHJhbnNm
b3JtVXBkYXRlID0gdHJ1ZTsgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR0lubGluZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuY3BwCShyZXZpc2lvbiAxMzY5OTMpCisrKyBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTc5LDkgKzc5LDkgQEAgdm9pZCBSZW5kZXJTVkdJbmxpbmU6OmNvbXB1dGVGbG9hdFJlY3RG
bwogICAgIFNWR1JlbmRlclN1cHBvcnQ6OmNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50KHRoaXMs
IHJlcGFpbnRDb250YWluZXIsIHJlcGFpbnRSZWN0LCBmaXhlZCk7CiB9CiAKLXZvaWQgUmVuZGVy
U1ZHSW5saW5lOjptYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFw
Q29vcmRpbmF0ZXNGbGFncyBtb2RlLCBib29sKiB3YXNGaXhlZCkgY29uc3QKK3ZvaWQgUmVuZGVy
U1ZHSW5saW5lOjptYXBMb2NhbFRvQ29udGFpbmVySW50ZXJuYWwoY29uc3QgUmVuZGVyTGF5ZXJN
b2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0
YXRlLCBMYXlvdXRTaXplJiBhY2N1bXVsYXRlZE9mZnNldCwgTWFwQ29vcmRpbmF0ZXNGbGFncyBt
b2RlLCBib29sKiB3YXNGaXhlZCkgY29uc3QKIHsKLSAgICBTVkdSZW5kZXJTdXBwb3J0OjptYXBM
b2NhbFRvQ29udGFpbmVyKHRoaXMsIHJlcGFpbnRDb250YWluZXIsIHRyYW5zZm9ybVN0YXRlLCBt
b2RlICYgU25hcE9mZnNldEZvclRyYW5zZm9ybXMsIHdhc0ZpeGVkKTsKKyAgICBTVkdSZW5kZXJT
dXBwb3J0OjptYXBMb2NhbFRvQ29udGFpbmVyKHRoaXMsIHJlcGFpbnRDb250YWluZXIsIHRyYW5z
Zm9ybVN0YXRlLCBhY2N1bXVsYXRlZE9mZnNldCwgbW9kZSwgd2FzRml4ZWQpOwogfQogCiBjb25z
dCBSZW5kZXJPYmplY3QqIFJlbmRlclNWR0lubGluZTo6cHVzaE1hcHBpbmdUb0NvbnRhaW5lcihj
b25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5kZXJHZW9t
ZXRyeU1hcCYgZ2VvbWV0cnlNYXApIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR0lubGluZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmgJKHJldmlzaW9uIDEzNjk5MykKKysrIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmgJKHdvcmtpbmcgY29weSkK
QEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBMYXlvdXRSZWN0IGNsaXBw
ZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJl
cGFpbnRDb250YWluZXIpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBjb21wdXRl
RmxvYXRSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50
Q29udGFpbmVyLCBGbG9hdFJlY3QmLCBib29sIGZpeGVkID0gZmFsc2UpIGNvbnN0IE9WRVJSSURF
OwotICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVy
TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29vcmRp
bmF0ZXNGbGFncyA9IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1z
LCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBt
YXBMb2NhbFRvQ29udGFpbmVySW50ZXJuYWwoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCog
cmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBMYXlvdXRTaXplJiBhY2N1bXVsYXRl
ZE9mZnNldCwgTWFwQ29vcmRpbmF0ZXNGbGFncyA9IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNuYXBP
ZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURFOwog
ICAgIHZpcnR1YWwgY29uc3QgUmVuZGVyT2JqZWN0KiBwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNv
bnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21l
dHJ5TWFwJikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGFic29sdXRlUXVhZHMo
VmVjdG9yPEZsb2F0UXVhZD4mLCBib29sKiB3YXNGaXhlZCkgY29uc3Q7CiAKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3Qu
Y3BwCShyZXZpc2lvbiAxMzY5OTMpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR01vZGVsT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTcsOSArNTcsOSBAQCB2
b2lkIFJlbmRlclNWR01vZGVsT2JqZWN0Ojpjb21wdXRlRmxvYXRSCiAgICAgU1ZHUmVuZGVyU3Vw
cG9ydDo6Y29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQodGhpcywgcmVwYWludENvbnRhaW5lciwg
cmVwYWludFJlY3QsIGZpeGVkKTsKIH0KIAotdm9pZCBSZW5kZXJTVkdNb2RlbE9iamVjdDo6bWFw
TG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29u
dGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIE1hcENvb3JkaW5hdGVzRmxh
Z3MgbW9kZSwgYm9vbCogd2FzRml4ZWQpIGNvbnN0Cit2b2lkIFJlbmRlclNWR01vZGVsT2JqZWN0
OjptYXBMb2NhbFRvQ29udGFpbmVySW50ZXJuYWwoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVj
dCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBMYXlv
dXRTaXplJiBhY2N1bXVsYXRlZE9mZnNldCwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBib29s
KiB3YXNGaXhlZCkgY29uc3QKIHsKLSAgICBTVkdSZW5kZXJTdXBwb3J0OjptYXBMb2NhbFRvQ29u
dGFpbmVyKHRoaXMsIHJlcGFpbnRDb250YWluZXIsIHRyYW5zZm9ybVN0YXRlLCBtb2RlICYgU25h
cE9mZnNldEZvclRyYW5zZm9ybXMsIHdhc0ZpeGVkKTsKKyAgICBTVkdSZW5kZXJTdXBwb3J0Ojpt
YXBMb2NhbFRvQ29udGFpbmVyKHRoaXMsIHJlcGFpbnRDb250YWluZXIsIHRyYW5zZm9ybVN0YXRl
LCBhY2N1bXVsYXRlZE9mZnNldCwgbW9kZSwgd2FzRml4ZWQpOwogfQogCiBjb25zdCBSZW5kZXJP
YmplY3QqIFJlbmRlclNWR01vZGVsT2JqZWN0OjpwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0
IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5
TWFwJiBnZW9tZXRyeU1hcCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmgJKHJldmlzaW9uIDEzNjk5MykKKysr
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuaAkod29y
a2luZyBjb3B5KQpAQCAtNTgsNyArNTgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGFi
c29sdXRlUmVjdHMoVmVjdG9yPEludFJlY3Q+JiwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxh
dGVkT2Zmc2V0KSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgYWJzb2x1dGVRdWFkcyhWZWN0b3I8
RmxvYXRRdWFkPiYsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdDsKIAotICAgIHZpcnR1YWwgdm9pZCBt
YXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRD
b250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29vcmRpbmF0ZXNGbGFncyA9IEFwcGx5Q29u
dGFpbmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCA9IDAp
IGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVySW50
ZXJuYWwoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJh
bnNmb3JtU3RhdGUmLCBMYXlvdXRTaXplJiBhY2N1bXVsYXRlZE9mZnNldCwgTWFwQ29vcmRpbmF0
ZXNGbGFncyA9IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBi
b29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgUmVu
ZGVyT2JqZWN0KiBwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxP
YmplY3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJikgY29uc3QgT1ZFUlJJ
REU7CiAgICAgdmlydHVhbCB2b2lkIHN0eWxlV2lsbENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNv
bnN0IFJlbmRlclN0eWxlKiBuZXdTdHlsZSk7CiAgICAgdmlydHVhbCB2b2lkIHN0eWxlRGlkQ2hh
bmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKTsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcAkocmV2
aXNpb24gMTM2OTkzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdS
b290LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDAxLDEyICs0MDEsMTIgQEAgdm9pZCBSZW5kZXJT
VkdSb290Ojpjb21wdXRlRmxvYXRSZWN0Rm9yUgogLy8gVGhpcyBtZXRob2QgZXhwZWN0cyBsb2Nh
bCBDU1MgYm94IGNvb3JkaW5hdGVzLgogLy8gQ2FsbGVycyB3aXRoIGxvY2FsIFNWRyB2aWV3cG9y
dCBjb29yZGluYXRlcyBzaG91bGQgZmlyc3QgYXBwbHkgdGhlIGxvY2FsVG9Cb3JkZXJCb3hUcmFu
c2Zvcm0KIC8vIHRvIGNvbnZlcnQgZnJvbSBTVkcgdmlld3BvcnQgY29vcmRpbmF0ZXMgdG8gbG9j
YWwgQ1NTIGJveCBjb29yZGluYXRlcy4KLXZvaWQgUmVuZGVyU1ZHUm9vdDo6bWFwTG9jYWxUb0Nv
bnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBU
cmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwg
Ym9vbCogd2FzRml4ZWQpIGNvbnN0Cit2b2lkIFJlbmRlclNWR1Jvb3Q6Om1hcExvY2FsVG9Db250
YWluZXJJbnRlcm5hbChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFp
bmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIExheW91dFNpemUmIGFjY3VtdWxh
dGVkT2Zmc2V0LCBNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUsIGJvb2wqIHdhc0ZpeGVkKSBjb25z
dAogewogICAgIEFTU0VSVChtb2RlICYgfklzRml4ZWQpOyAvLyBXZSBzaG91bGQgaGF2ZSBubyBm
aXhlZCBjb250ZW50IGluIHRoZSBTVkcgcmVuZGVyaW5nIHRyZWUuCiAgICAgQVNTRVJUKG1vZGUg
JiBVc2VUcmFuc2Zvcm1zKTsgLy8gbWFwcGluZyBhIHBvaW50IHRocm91Z2ggU1ZHIHcvbyByZXNw
ZWN0aW5nIHRyYXNuZm9ybXMgaXMgdXNlbGVzcy4KIAotICAgIFJlbmRlclJlcGxhY2VkOjptYXBM
b2NhbFRvQ29udGFpbmVyKHJlcGFpbnRDb250YWluZXIsIHRyYW5zZm9ybVN0YXRlLCBtb2RlIHwg
QXBwbHlDb250YWluZXJGbGlwLCB3YXNGaXhlZCk7CisgICAgUmVuZGVyUmVwbGFjZWQ6Om1hcExv
Y2FsVG9Db250YWluZXJJbnRlcm5hbChyZXBhaW50Q29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwg
YWNjdW11bGF0ZWRPZmZzZXQsIG1vZGUgfCBBcHBseUNvbnRhaW5lckZsaXAsIHdhc0ZpeGVkKTsK
IH0KIAogY29uc3QgUmVuZGVyT2JqZWN0KiBSZW5kZXJTVkdSb290OjpwdXNoTWFwcGluZ1RvQ29u
dGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJl
bmRlckdlb21ldHJ5TWFwJiBnZW9tZXRyeU1hcCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5oCShyZXZpc2lvbiAxMzY5OTMpCisrKyBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuaAkod29ya2luZyBjb3B5
KQpAQCAtMTAzLDcgKzEwMyw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBMYXlvdXRSZWN0IGNs
aXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3Qq
IHJlcGFpbnRDb250YWluZXIpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBjb21w
dXRlRmxvYXRSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBh
aW50Q29udGFpbmVyLCBGbG9hdFJlY3QmIHJlcGFpbnRSZWN0LCBib29sIGZpeGVkKSBjb25zdCBP
VkVSUklERTsKIAotICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJl
bmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwg
TWFwQ29vcmRpbmF0ZXNGbGFncyA9IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JU
cmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1
YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVySW50ZXJuYWwoY29uc3QgUmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBMYXlvdXRTaXplJiBh
Y2N1bXVsYXRlZE9mZnNldCwgTWFwQ29vcmRpbmF0ZXNGbGFncyA9IEFwcGx5Q29udGFpbmVyRmxp
cCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9W
RVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgUmVuZGVyT2JqZWN0KiBwdXNoTWFwcGluZ1RvQ29u
dGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJl
bmRlckdlb21ldHJ5TWFwJikgY29uc3QgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIGJvb2wgY2Fu
QmVTZWxlY3Rpb25MZWFmKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmNwcAkocmV2aXNpb24gMTM2
OTkzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTExLDkgKzExMSw5IEBAIHZvaWQgUmVuZGVyU1ZHVGV4dDo6Y29t
cHV0ZUZsb2F0UmVjdEZvclIKICAgICBTVkdSZW5kZXJTdXBwb3J0Ojpjb21wdXRlRmxvYXRSZWN0
Rm9yUmVwYWludCh0aGlzLCByZXBhaW50Q29udGFpbmVyLCByZXBhaW50UmVjdCwgZml4ZWQpOwog
fQogCi12b2lkIFJlbmRlclNWR1RleHQ6Om1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5z
Zm9ybVN0YXRlLCBNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUsIGJvb2wqIHdhc0ZpeGVkKSBjb25z
dAordm9pZCBSZW5kZXJTVkdUZXh0OjptYXBMb2NhbFRvQ29udGFpbmVySW50ZXJuYWwoY29uc3Qg
UmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUm
IHRyYW5zZm9ybVN0YXRlLCBMYXlvdXRTaXplJiBhY2N1bXVsYXRlZE9mZnNldCwgTWFwQ29vcmRp
bmF0ZXNGbGFncyBtb2RlLCBib29sKiB3YXNGaXhlZCkgY29uc3QKIHsKLSAgICBTVkdSZW5kZXJT
dXBwb3J0OjptYXBMb2NhbFRvQ29udGFpbmVyKHRoaXMsIHJlcGFpbnRDb250YWluZXIsIHRyYW5z
Zm9ybVN0YXRlLCBtb2RlICYgU25hcE9mZnNldEZvclRyYW5zZm9ybXMsIHdhc0ZpeGVkKTsKKyAg
ICBTVkdSZW5kZXJTdXBwb3J0OjptYXBMb2NhbFRvQ29udGFpbmVyKHRoaXMsIHJlcGFpbnRDb250
YWluZXIsIHRyYW5zZm9ybVN0YXRlLCBhY2N1bXVsYXRlZE9mZnNldCwgbW9kZSwgd2FzRml4ZWQp
OwogfQogCiBjb25zdCBSZW5kZXJPYmplY3QqIFJlbmRlclNWR1RleHQ6OnB1c2hNYXBwaW5nVG9D
b250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0b3JUb1N0b3BBdCwg
UmVuZGVyR2VvbWV0cnlNYXAmIGdlb21ldHJ5TWFwKSBjb25zdApJbmRleDogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmgJKHJldmlzaW9uIDEzNjk5MykKKysr
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5oCSh3b3JraW5nIGNv
cHkpCkBAIC03NSw3ICs3NSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVS
ZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFp
bmVyLCBMYXlvdXRSZWN0JiwgYm9vbCBmaXhlZCA9IGZhbHNlKSBjb25zdCBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIHZvaWQgY29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5
ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgRmxvYXRSZWN0JiwgYm9vbCBmaXhlZCA9
IGZhbHNlKSBjb25zdCBPVkVSUklERTsKIAotICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29u
dGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRy
YW5zZm9ybVN0YXRlJiwgTWFwQ29vcmRpbmF0ZXNGbGFncyA9IEFwcGx5Q29udGFpbmVyRmxpcCB8
IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJS
SURFOworICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVySW50ZXJuYWwoY29uc3Qg
UmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUm
LCBMYXlvdXRTaXplJiBhY2N1bXVsYXRlZE9mZnNldCwgTWFwQ29vcmRpbmF0ZXNGbGFncyA9IEFw
cGx5Q29udGFpbmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhl
ZCA9IDApIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgUmVuZGVyT2JqZWN0KiBw
dXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGFuY2Vz
dG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmly
dHVhbCB2b2lkIGFkZENoaWxkKFJlbmRlck9iamVjdCogY2hpbGQsIFJlbmRlck9iamVjdCogYmVm
b3JlQ2hpbGQgPSAwKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlQ2hpbGQoUmVuZGVyT2JqZWN0
KikgT1ZFUlJJREU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRl
clN1cHBvcnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
U1ZHUmVuZGVyU3VwcG9ydC5jcHAJKHJldmlzaW9uIDEzNjk5MykKKysrIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg0
LDcgKzg0LDcgQEAgdm9pZCBTVkdSZW5kZXJTdXBwb3J0Ojpjb21wdXRlRmxvYXRSZWN0RgogICAg
IG9iamVjdC0+cGFyZW50KCktPmNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50KHJlcGFpbnRDb250
YWluZXIsIHJlcGFpbnRSZWN0LCBmaXhlZCk7CiB9CiAKLXZvaWQgU1ZHUmVuZGVyU3VwcG9ydDo6
bWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRy
YW5zZm9ybVN0YXRlLCBib29sIHNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhl
ZCkKK3ZvaWQgU1ZHUmVuZGVyU3VwcG9ydDo6bWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5k
ZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENv
bnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBMYXlvdXRTaXplJiBhY2N1
bXVsYXRlZE9mZnNldCwgYm9vbCBzbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCogd2FzRml4
ZWQpCiB7CiAgICAgdHJhbnNmb3JtU3RhdGUuYXBwbHlUcmFuc2Zvcm0ob2JqZWN0LT5sb2NhbFRv
UGFyZW50VHJhbnNmb3JtKCkpOwogCkBAIC05OSw3ICs5OSw3IEBAIHZvaWQgU1ZHUmVuZGVyU3Vw
cG9ydDo6bWFwTG9jYWxUb0NvbnRhaW4KICAgICBNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUgPSBV
c2VUcmFuc2Zvcm1zOwogICAgIGlmIChzbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcykKICAgICAgICAg
bW9kZSB8PSBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtczsKLSAgICBwYXJlbnQtPm1hcExvY2FsVG9D
b250YWluZXIocmVwYWludENvbnRhaW5lciwgdHJhbnNmb3JtU3RhdGUsIG1vZGUsIHdhc0ZpeGVk
KTsKKyAgICBwYXJlbnQtPm1hcExvY2FsVG9Db250YWluZXJJbnRlcm5hbChyZXBhaW50Q29udGFp
bmVyLCB0cmFuc2Zvcm1TdGF0ZSwgYWNjdW11bGF0ZWRPZmZzZXQsIG1vZGUsIHdhc0ZpeGVkKTsK
IH0KIAogY29uc3QgUmVuZGVyT2JqZWN0KiBTVkdSZW5kZXJTdXBwb3J0OjpwdXNoTWFwcGluZ1Rv
Q29udGFpbmVyKGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBSZW5kZXJMYXllck1v
ZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1hcCYgZ2VvbWV0cnlN
YXApCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1
cHBvcnQuaAkocmV2aXNpb24gMTM2OTkzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9TVkdSZW5kZXJTdXBwb3J0LmgJKHdvcmtpbmcgY29weSkKQEAgLTY4LDcgKzY4LDcgQEAgcHVi
bGljOgogICAgIHN0YXRpYyBGbG9hdFJlY3QgcmVwYWludFJlY3RGb3JSZW5kZXJlckluTG9jYWxD
b29yZGluYXRlc0V4Y2x1ZGluZ1NWR1NoYWRvdyhjb25zdCBSZW5kZXJPYmplY3QqKTsKICAgICBz
dGF0aWMgTGF5b3V0UmVjdCBjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChjb25zdCBSZW5k
ZXJPYmplY3QqLCBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVy
KTsKICAgICBzdGF0aWMgdm9pZCBjb21wdXRlRmxvYXRSZWN0Rm9yUmVwYWludChjb25zdCBSZW5k
ZXJPYmplY3QqLCBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVy
LCBGbG9hdFJlY3QmLCBib29sIGZpeGVkKTsKLSAgICBzdGF0aWMgdm9pZCBtYXBMb2NhbFRvQ29u
dGFpbmVyKGNvbnN0IFJlbmRlck9iamVjdCosIGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3Qq
IHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgYm9vbCBzbmFwT2Zmc2V0Rm9yVHJh
bnNmb3JtcyA9IHRydWUsIGJvb2wqIHdhc0ZpeGVkID0gMCk7CisgICAgc3RhdGljIHZvaWQgbWFw
TG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJPYmplY3QqLCBjb25zdCBSZW5kZXJMYXllck1v
ZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIExheW91dFNpemUm
IGFjY3VtdWxhdGVkT2Zmc2V0LCBib29sIHNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zID0gdHJ1ZSwg
Ym9vbCogd2FzRml4ZWQgPSAwKTsKICAgICBzdGF0aWMgY29uc3QgUmVuZGVyT2JqZWN0KiBwdXNo
TWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlck9iamVjdCosIGNvbnN0IFJlbmRlckxheWVy
TW9kZWxPYmplY3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJik7CiAgICAg
c3RhdGljIGJvb2wgY2hlY2tGb3JTVkdSZXBhaW50RHVyaW5nTGF5b3V0KFJlbmRlck9iamVjdCop
OwogCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMzY5OTMpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMSBAQAorMjAxMi0xMi0wNCAgTGV2aSBXZWludHJh
dWIgIDxsZXZpd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQWNjdW11bGF0ZSB1c2luZyBhIExh
eW91dFNpemUgaW4gbWFwTG9jYWxUb0NvbnRhaW5lciB3aGVuIHBvc3NpYmxlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE3NzkKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRpbmcgYWRkaXRpb25hbCBj
b3ZlcmFnZSB0byBleGlzdGluZyB0ZXN0IGZvciB0aGlzIGJlaGF2aW9yIHRvIGNhdGNoIHRoaXMg
YnVnLCBhbmQgYWRkaW5nCisgICAgICAgIGEgdGVzdCBjb3ZlcmluZyBzYW1lIHdpdGggdHJhbnNm
b3Jtcy4KKworICAgICAgICAqIGZhc3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1pZnJhbWUtY29weS1v
bi1zY3JvbGwuaHRtbDoKKyAgICAgICAgKiBmYXN0L3N1Yi1waXhlbC90cmFuc2Zvcm1lZC1pZnJh
bWUtY29weS1vbi1zY3JvbGwuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21p
dW0tbGludXgvZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC1l
eHBlY3RlZC5wbmc6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvZmFzdC9zdWIt
cGl4ZWwvdHJhbnNmb3JtZWQtaWZyYW1lLWNvcHktb24tc2Nyb2xsLWV4cGVjdGVkLnBuZzogQWRk
ZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvZmFzdC9zdWItcGl4ZWwvdHJh
bnNmb3JtZWQtaWZyYW1lLWNvcHktb24tc2Nyb2xsLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL2Zhc3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1pZnJh
bWUtY29weS1vbi1zY3JvbGwtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9t
aXVtL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMTItMTItMDcgIERpbWEgR29yYmlrICA8ZGdvcmJp
a0BhcHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IGdlbmVyYWwgOjpjdWUgcHNldWRvIGVs
ZW1lbnQgZm9yIHRoZSA8dmlkZW8+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3N1Yi1waXhlbC9z
dWItcGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC5odG1s
CShyZXZpc2lvbiAxMzY5OTMpCisrKyBMYXlvdXRUZXN0cy9mYXN0L3N1Yi1waXhlbC9zdWItcGl4
ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIsMTAgKzIs
MTIgQEAKIDxodG1sPgogPGhlYWQ+CiA8c3R5bGUgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJzY3Jl
ZW4iPgorLnN1YnBpeGVsUHVzaGVyIHsKKyAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgdG9w
OiAwLjRweDsKK30KIC5jb250YWluZXIgewotICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAgICBw
YWRkaW5nOiAxMC4zcHg7Ci0gICAgei1pbmRleDogMTsKKyAgICBkaXNwbGF5OiBpbmxpbmUtYmxv
Y2s7CiB9CiA8L3N0eWxlPgogPHNjcmlwdCBzcmM9Ii4uL3JlcGFpbnQvcmVzb3VyY2VzL3JlcGFp
bnQuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+CkBAIC0xMywyNiArMTUsNDMg
QEAKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7
CiAKLWZ1bmN0aW9uIHNldHVwSWZyYW1lKCkgewotICB2YXIgc3ViRG9jdW1lbnQgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnaWZyYW1lJykuY29udGVudFdpbmRvdy5kb2N1bWVudDsKLSAgc3Vi
RG9jdW1lbnQub3BlbigndGV4dC9odG1sJywgJ3JlcGxhY2UnKTsKLSAgc3ViRG9jdW1lbnQud3Jp
dGUoIjwhRE9DVFlQRSBodG1sPlxuPGh0bWw+PGJvZHkgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9y
OiBzaWx2ZXI7aGVpZ2h0OiAxMDAwcHg7XCI+PC9ib2R5PiIpCi0gIHN1YkRvY3VtZW50LmNsb3Nl
KCk7CitmdW5jdGlvbiBzZXR1cElmcmFtZXMoKSB7CisgIHNldHVwSWZyYW1lKGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdpZnJhbWUxJykuY29udGVudFdpbmRvdy5kb2N1bWVudCk7CisgIHNldHVw
SWZyYW1lKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpZnJhbWUyJykuY29udGVudFdpbmRvdy5k
b2N1bWVudCk7CisgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpZnJhbWUxJykuY29udGVudFdp
bmRvdy5zY3JvbGxUbygwLCAxMCk7Cit9CisKK2Z1bmN0aW9uIHNldHVwSWZyYW1lKGlmcmFtZSkg
eworICBpZnJhbWUub3BlbigndGV4dC9odG1sJywgJ3JlcGxhY2UnKTsKKyAgaWZyYW1lLndyaXRl
KCI8IURPQ1RZUEUgaHRtbD5cbjxodG1sPjxib2R5IHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjog
c2lsdmVyO2hlaWdodDogMTAwMHB4O1wiPjwvYm9keT4iKTsKKyAgaWZyYW1lLmNsb3NlKCk7CiB9
CiAKIGZ1bmN0aW9uIHJlcGFpbnRUZXN0KCkgewotICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
aWZyYW1lJykuY29udGVudFdpbmRvdy5zY3JvbGxUbygwLCAxMCk7CisgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdpZnJhbWUxJykuY29udGVudFdpbmRvdy5zY3JvbGxUbygwLCAwKTsKKyAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lmcmFtZTInKS5jb250ZW50V2luZG93LnNjcm9sbFRvKDAs
IDEwKTsKICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAgIHRlc3RSdW5uZXIubm90aWZ5RG9u
ZSgpOwogfQogPC9zY3JpcHQ+CiA8L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InNldHVwSWZyYW1lKCk7
cnVuUmVwYWludFRlc3QoKSI+Ci0gIDxwPlRoZSBpZnJhbWUgYmVsb3cgc2hvdWxkIHJlbWFpbiBn
cmV5IHdoZW4gc2Nyb2xsaW5nLjwvcD4KLSAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KLSAgICA8
aWZyYW1lIGlkPSJpZnJhbWUiICBzdHlsZT0id2lkdGg6IDMwMHB4OyBoZWlnaHQ6IDIwMHB4OyI+
PC9pZnJhbWU+Cis8Ym9keSBvbmxvYWQ9InNldHVwSWZyYW1lcygpO3J1blJlcGFpbnRUZXN0KCki
PgorICA8cD5UaGUgaWZyYW1lcyBiZWxvdyBzaG91bGQgcmVtYWluIGdyZXkgd2l0aCBubyByZXBh
aW50IGFydGlmYWN0cyB3aGVuIHNjcm9sbGluZy48L3A+CisgIDxkaXY+CisgICAgPGRpdiBjbGFz
cz0iY29udGFpbmVyIj4KKyAgICAgIDxkaXYgY2xhc3M9InN1YnBpeGVsUHVzaGVyIj4KKyAgICAg
ICAgPGRpdiBjbGFzcz0ic3VicGl4ZWxQdXNoZXIiPgorICAgICAgICA8aWZyYW1lIGlkPSJpZnJh
bWUxIiAgc3R5bGU9IndpZHRoOiAxNTBweDsgaGVpZ2h0OiAyMDBweDsiPjwvaWZyYW1lPgorICAg
ICAgPC9kaXY+CisgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250
YWluZXIiPgorICAgICAgPGRpdiBjbGFzcz0ic3VicGl4ZWxQdXNoZXIiPgorICAgICAgICA8ZGl2
IGNsYXNzPSJzdWJwaXhlbFB1c2hlciI+CisgICAgICAgICAgPGlmcmFtZSBpZD0iaWZyYW1lMiIg
IHN0eWxlPSJ3aWR0aDogMTUwcHg7IGhlaWdodDogMjAwcHg7Ij48L2lmcmFtZT4KKyAgICAgICAg
PC9kaXY+CisgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KICAgPC9kaXY+Ci0gIDwvZGl2PgotCiA8
L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3N1Yi1waXhlbC90cmFuc2Zv
cm1lZC1pZnJhbWUtY29weS1vbi1zY3JvbGwuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L3N1Yi1waXhlbC90cmFuc2Zvcm1lZC1pZnJhbWUtY29weS1vbi1zY3JvbGwuaHRtbAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qvc3ViLXBpeGVsL3RyYW5zZm9ybWVkLWlm
cmFtZS1jb3B5LW9uLXNjcm9sbC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDc5IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiIG1l
ZGlhPSJzY3JlZW4iPgorLnN1YnBpeGVsUHVzaGVyIHsKKyAgICBwb3NpdGlvbjogcmVsYXRpdmU7
CisgICAgdG9wOiAwLjRweDsKKyAgICB6LWluZGV4OiAxOworfQorLmNvbnRhaW5lciB7CisgICAg
ZGlzcGxheTogaW5saW5lLWJsb2NrOworICAgIHBhZGRpbmctbGVmdDogODBweDsKKyAgICBwYWRk
aW5nLXRvcDogMTBweDsKK30KKy50cmFuc2Zvcm0geworICAtd2Via2l0LXRyYW5zZm9ybTogcm90
YXRlM2QoMCwgMCwgMSwgNDVkZWcpOworfQorPC9zdHlsZT4KKzxzY3JpcHQgc3JjPSIuLi9yZXBh
aW50L3Jlc291cmNlcy9yZXBhaW50LmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0
PgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgdGVzdFJ1bm5lci53YWl0VW50
aWxEb25lKCk7CisKK2Z1bmN0aW9uIHNldHVwSWZyYW1lcygpIHsKKyAgc2V0dXBJZnJhbWUoZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lmcmFtZTEnKS5jb250ZW50V2luZG93LmRvY3VtZW50KTsK
KyAgc2V0dXBJZnJhbWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lmcmFtZTInKS5jb250ZW50
V2luZG93LmRvY3VtZW50KTsKKyAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lmcmFtZTEnKS5j
b250ZW50V2luZG93LnNjcm9sbFRvKDAsIDEwKTsKK30KKworZnVuY3Rpb24gc2V0dXBJZnJhbWUo
aWZyYW1lKSB7CisgIGlmcmFtZS5vcGVuKCd0ZXh0L2h0bWwnLCAncmVwbGFjZScpOworICBpZnJh
bWUud3JpdGUoIjwhRE9DVFlQRSBodG1sPlxuPGh0bWw+PGJvZHkgc3R5bGU9XCJiYWNrZ3JvdW5k
LWNvbG9yOiBzaWx2ZXI7aGVpZ2h0OiAxMDAwcHg7XCI+PC9ib2R5PiIpOworICBpZnJhbWUuY2xv
c2UoKTsKK30KKworZnVuY3Rpb24gcmVwYWludFRlc3QoKSB7CisgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdpZnJhbWUxJykuY29udGVudFdpbmRvdy5zY3JvbGxUbygwLCAwKTsKKyAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2lmcmFtZTInKS5jb250ZW50V2luZG93LnNjcm9sbFRvKDAsIDEw
KTsKKyAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgp
OworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNldHVwSWZyYW1lcygpO3J1
blJlcGFpbnRUZXN0KCkiPgorICA8cD5UaGUgaWZyYW1lcyBiZWxvdyBzaG91bGQgcmVtYWluIGdy
ZXkgd2l0aCBubyByZXBhaW50IGFydGlmYWN0cyB3aGVuIHNjcm9sbGluZy48L3A+CisgIDxkaXY+
CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgIDxkaXYgY2xhc3M9InRyYW5zZm9y
bSI+CisgICAgICAgIDxkaXYgY2xhc3M9InN1YnBpeGVsUHVzaGVyIj4KKyAgICAgICAgICA8ZGl2
IGNsYXNzPSJzdWJwaXhlbFB1c2hlciI+CisgICAgICAgICAgICA8aWZyYW1lIGlkPSJpZnJhbWUx
IiAgc3R5bGU9IndpZHRoOiAxNTBweDsgaGVpZ2h0OiAyMDBweDsiPjwvaWZyYW1lPgorICAgICAg
ICAgIDwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorICAg
IDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICA8ZGl2IGNsYXNzPSJzdWJwaXhlbFB1c2hl
ciI+CisgICAgICAgIDxkaXYgY2xhc3M9InN1YnBpeGVsUHVzaGVyIj4KKyAgICAgICAgICA8ZGl2
IGNsYXNzPSJzdWJwaXhlbFB1c2hlciI+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0cmFuc2Zv
cm0iPgorICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJwaXhlbFB1c2hlciI+CisgICAgICAg
ICAgICAgICAgPGRpdiBjbGFzcz0ic3VicGl4ZWxQdXNoZXIiPgorICAgICAgICAgICAgICAgICAg
PGRpdiBjbGFzcz0ic3VicGl4ZWxQdXNoZXIiPgorICAgICAgICAgICAgICAgICAgICA8ZGl2IGNs
YXNzPSJ0cmFuc2Zvcm0iPgorICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1YnBp
eGVsUHVzaGVyIj4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxpZnJhbWUgaWQ9ImlmcmFtZTIi
ICBzdHlsZT0id2lkdGg6IDE1MHB4OyBoZWlnaHQ6IDIwMHB4OyI+PC9pZnJhbWU+CisgICAgICAg
ICAgICAgICAgICAgICAgPC9kaXY+CisgICAgICAgICAgICAgICAgICAgIDwvZGl2PgorICAgICAg
ICAgICAgICAgICAgPC9kaXY+ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIDwvZGl2
PgorICAgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgICAgIDwvZGl2PgorICAgICAgICAgIDwv
ZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorICA8L2Rpdj4K
KzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxp
bnV4L2Zhc3Qvc3ViLXBpeGVsL3RyYW5zZm9ybWVkLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGlu
dXgvZmFzdC9zdWItcGl4ZWwvdHJhbnNmb3JtZWQtaWZyYW1lLWNvcHktb24tc2Nyb2xsLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxp
bnV4L2Zhc3Qvc3ViLXBpeGVsL3RyYW5zZm9ybWVkLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTIgQEAKK2xheWVyIGF0ICgwLDApIHNp
emUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQg
KDAsMCkgc2l6ZSA4MDB4Mjc5CisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgw
MHgyNzkKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCwxNikgc2l6ZSA3ODR4MjU1CisgICAg
ICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMCkgc2l6ZSA3ODR4MjAKKyAgICAgICAgUmVuZGVyVGV4
dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNDY1eDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAs
MCkgd2lkdGggNDY1OiAiVGhlIGlmcmFtZXMgYmVsb3cgc2hvdWxkIHJlbWFpbiBncmV5IHdpdGgg
bm8gcmVwYWludCBhcnRpZmFjdHMgd2hlbiBzY3JvbGxpbmcuIgorICAgICAgUmVuZGVyQmxvY2sg
e0RJVn0gYXQgKDAsMzYpIHNpemUgNzg0eDIxOQorICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBh
dCAoMCwwKSBzaXplIDIzNHgyMTkKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgyMzQs
MTk5KSBzaXplIDR4MTkKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMjM0LDE5OSkgd2lkdGggNDog
IiAiCisgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgyMzgsMCkgc2l6ZSAyMzR4MjE5Cisg
ICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAorbGF5ZXIgYXQgKDg4
LDYyKSBzaXplIDE1NHgyMDkKKyAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDgwLDEwKSBzaXplIDE1
NHgyMDkKK2xheWVyIGF0ICg4OCw2Mikgc2l6ZSAxNTR4MjA5CisgIFJlbmRlckJsb2NrIChyZWxh
dGl2ZSBwb3NpdGlvbmVkKSB6STogMSB7RElWfSBhdCAoMCwwKSBzaXplIDE1NHgyMDkKK2xheWVy
IGF0ICg4OCw2Mykgc2l6ZSAxNTR4MjA5CisgIFJlbmRlckJsb2NrIChyZWxhdGl2ZSBwb3NpdGlv
bmVkKSB6STogMSB7RElWfSBhdCAoMCwwKSBzaXplIDE1NHgyMDkKKyAgICBSZW5kZXJQYXJ0T2Jq
ZWN0IHtJRlJBTUV9IGF0ICgwLDApIHNpemUgMTU0eDIwNCBbYm9yZGVyOiAoMnB4IGluc2V0ICMw
MDAwMDApXQorICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxMzV4MTAxNgorICAgICAgICBSZW5k
ZXJWaWV3IGF0ICgwLDApIHNpemUgMTM1eDIwMAorICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAx
MzV4MTAxNgorICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAxMzV4MTAx
NgorICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgMTE5eDEwMDAgW2Jn
Y29sb3I9I0MwQzBDMF0KKyAgICBSZW5kZXJUZXh0IHpJOiAxIHsjdGV4dH0gYXQgKDAsMCkgc2l6
ZSAweDAKK2xheWVyIGF0ICgzMjYsNjIpIHNpemUgMTU0eDIwOQorICBSZW5kZXJCbG9jayAocmVs
YXRpdmUgcG9zaXRpb25lZCkgekk6IDEge0RJVn0gYXQgKDgwLDEwKSBzaXplIDE1NHgyMDkKK2xh
eWVyIGF0ICgzMjYsNjMpIHNpemUgMTU0eDIwOQorICBSZW5kZXJCbG9jayAocmVsYXRpdmUgcG9z
aXRpb25lZCkgekk6IDEge0RJVn0gYXQgKDAsMCkgc2l6ZSAxNTR4MjA5CitsYXllciBhdCAoMzI2
LDYzKSBzaXplIDE1NHgyMDkKKyAgUmVuZGVyQmxvY2sgKHJlbGF0aXZlIHBvc2l0aW9uZWQpIHpJ
OiAxIHtESVZ9IGF0ICgwLDApIHNpemUgMTU0eDIwOQorbGF5ZXIgYXQgKDMyNiw2Mykgc2l6ZSAx
NTR4MjA5CisgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgMTU0eDIwOQorbGF5ZXIg
YXQgKDMyNiw2NCkgc2l6ZSAxNTR4MjA5CisgIFJlbmRlckJsb2NrIChyZWxhdGl2ZSBwb3NpdGlv
bmVkKSB6STogMSB7RElWfSBhdCAoMCwwKSBzaXplIDE1NHgyMDkKK2xheWVyIGF0ICgzMjYsNjQp
IHNpemUgMTU0eDIwOQorICBSZW5kZXJCbG9jayAocmVsYXRpdmUgcG9zaXRpb25lZCkgekk6IDEg
e0RJVn0gYXQgKDAsMCkgc2l6ZSAxNTR4MjA5CitsYXllciBhdCAoMzI2LDY0KSBzaXplIDE1NHgy
MDkKKyAgUmVuZGVyQmxvY2sgKHJlbGF0aXZlIHBvc2l0aW9uZWQpIHpJOiAxIHtESVZ9IGF0ICgw
LDApIHNpemUgMTU0eDIwOQorbGF5ZXIgYXQgKDMyNiw2NCkgc2l6ZSAxNTR4MjA5CisgIFJlbmRl
ckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgMTU0eDIwOQorbGF5ZXIgYXQgKDMyNiw2NSkgc2l6
ZSAxNTR4MjA5CisgIFJlbmRlckJsb2NrIChyZWxhdGl2ZSBwb3NpdGlvbmVkKSB6STogMSB7RElW
fSBhdCAoMCwwKSBzaXplIDE1NHgyMDkKKyAgICBSZW5kZXJQYXJ0T2JqZWN0IHtJRlJBTUV9IGF0
ICgwLDApIHNpemUgMTU0eDIwNCBbYm9yZGVyOiAoMnB4IGluc2V0ICMwMDAwMDApXQorICAgICAg
bGF5ZXIgYXQgKDAsMCkgc2l6ZSAxMzV4MTAxNgorICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDAp
IHNpemUgMTM1eDIwMAorICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxMzV4MTAxNgorICAgICAg
ICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAxMzV4MTAxNgorICAgICAgICAgIFJl
bmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgMTE5eDEwMDAgW2JnY29sb3I9I0MwQzBDMF0K
KyAgICBSZW5kZXJUZXh0IHpJOiAxIHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKSW5kZXg6IExh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9mYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwt
aWZyYW1lLWNvcHktb24tc2Nyb2xsLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWlmcmFt
ZS1jb3B5LW9uLXNjcm9sbC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDEzNjk5MykKKysrIExheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9mYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZy
YW1lLWNvcHktb24tc2Nyb2xsLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwxNyAr
MSwzNiBAQAogbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgIFJlbmRlclZpZXcgYXQgKDAs
MCkgc2l6ZSA4MDB4NjAwCi1sYXllciBhdCAoMCwwKSBzaXplIDgwMHg1MgotICBSZW5kZXJCbG9j
ayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NTIKLSAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAo
OCwxNikgc2l6ZSA3ODR4MjAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDI2OQorICBSZW5kZXJC
bG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4MjY5CisgICAgUmVuZGVyQm9keSB7Qk9EWX0g
YXQgKDgsMTYpIHNpemUgNzg0eDI0NQogICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDApIHNp
emUgNzg0eDIwCi0gICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDMxNXgx
OQotICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDMxNTogIlRoZSBpZnJhbWUgYmVs
b3cgc2hvdWxkIHJlbWFpbiBncmV5IHdoZW4gc2Nyb2xsaW5nLiIKLWxheWVyIGF0ICg4LDUyKSBz
aXplIDMyNXgyMzAKLSAgUmVuZGVyQmxvY2sgKHBvc2l0aW9uZWQpIHpJOiAxIHtESVZ9IGF0ICg4
LDUyKSBzaXplIDMyNXgyMzAKLSAgICBSZW5kZXJQYXJ0T2JqZWN0IHtJRlJBTUV9IGF0ICgxMCwx
MCkgc2l6ZSAzMDR4MjA1IFtib3JkZXI6ICgycHggaW5zZXQgIzAwMDAwMCldCi0gICAgICBsYXll
ciBhdCAoMCwwKSBzaXplIDI4NXgxMDE2Ci0gICAgICAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6
ZSAyODV4MjAwCi0gICAgICBsYXllciBhdCAoMCwwKSBzaXplIDI4NXgxMDE2Ci0gICAgICAgIFJl
bmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDI4NXgxMDE2Ci0gICAgICAgICAgUmVuZGVy
Qm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSAyNjl4MTAwMCBbYmdjb2xvcj0jQzBDMEMwXQotICAg
IFJlbmRlclRleHQgekk6IDEgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAorICAgICAgICBSZW5k
ZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0NjV4MTkKKyAgICAgICAgICB0ZXh0IHJ1biBh
dCAoMCwwKSB3aWR0aCA0NjU6ICJUaGUgaWZyYW1lcyBiZWxvdyBzaG91bGQgcmVtYWluIGdyZXkg
d2l0aCBubyByZXBhaW50IGFydGlmYWN0cyB3aGVuIHNjcm9sbGluZy4iCisgICAgICBSZW5kZXJC
bG9jayB7RElWfSBhdCAoMCwzNikgc2l6ZSA3ODR4MjA5CisgICAgICAgIFJlbmRlckJsb2NrIHtE
SVZ9IGF0ICgwLDApIHNpemUgMTU0eDIwOQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQg
KDE1NCwxODkpIHNpemUgNHgxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgxNTQsMTg5KSB3aWR0
aCA0OiAiICIKKyAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDE1OCwwKSBzaXplIDE1NHgy
MDkKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCitsYXllciBh
dCAoOCw1Mikgc2l6ZSAxNTR4MjA5CisgIFJlbmRlckJsb2NrIChyZWxhdGl2ZSBwb3NpdGlvbmVk
KSB7RElWfSBhdCAoMCwwKSBzaXplIDE1NHgyMDkKK2xheWVyIGF0ICg4LDUzKSBzaXplIDE1NHgy
MDkKKyAgUmVuZGVyQmxvY2sgKHJlbGF0aXZlIHBvc2l0aW9uZWQpIHtESVZ9IGF0ICgwLDApIHNp
emUgMTU0eDIwOQorICAgIFJlbmRlclBhcnRPYmplY3Qge0lGUkFNRX0gYXQgKDAsMCkgc2l6ZSAx
NTR4MjA0IFtib3JkZXI6ICgycHggaW5zZXQgIzAwMDAwMCldCisgICAgICBsYXllciBhdCAoMCww
KSBzaXplIDEzNXgxMDE2CisgICAgICAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSAxMzV4MjAw
CisgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDEzNXgxMDE2CisgICAgICAgIFJlbmRlckJsb2Nr
IHtIVE1MfSBhdCAoMCwwKSBzaXplIDEzNXgxMDE2CisgICAgICAgICAgUmVuZGVyQm9keSB7Qk9E
WX0gYXQgKDgsOCkgc2l6ZSAxMTl4MTAwMCBbYmdjb2xvcj0jQzBDMEMwXQorICAgIFJlbmRlclRl
eHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAorbGF5ZXIgYXQgKDE2Niw1Mikgc2l6ZSAxNTR4
MjA5CisgIFJlbmRlckJsb2NrIChyZWxhdGl2ZSBwb3NpdGlvbmVkKSB7RElWfSBhdCAoMCwwKSBz
aXplIDE1NHgyMDkKK2xheWVyIGF0ICgxNjYsNTMpIHNpemUgMTU0eDIwOQorICBSZW5kZXJCbG9j
ayAocmVsYXRpdmUgcG9zaXRpb25lZCkge0RJVn0gYXQgKDAsMCkgc2l6ZSAxNTR4MjA5CisgICAg
UmVuZGVyUGFydE9iamVjdCB7SUZSQU1FfSBhdCAoMCwwKSBzaXplIDE1NHgyMDQgW2JvcmRlcjog
KDJweCBpbnNldCAjMDAwMDAwKV0KKyAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTM1eDEwMTYK
KyAgICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDEzNXgyMDAKKyAgICAgIGxheWVyIGF0
ICgwLDApIHNpemUgMTM1eDEwMTYKKyAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDAp
IHNpemUgMTM1eDEwMTYKKyAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXpl
IDExOXgxMDAwIFtiZ2NvbG9yPSNDMEMwQzBdCisgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgw
LDApIHNpemUgMHgwCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhw
ZWN0YXRpb25zCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rl
c3RFeHBlY3RhdGlvbnMJKHJldmlzaW9uIDEzNjk5MykKKysrIExheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMJKHdvcmtpbmcgY29weSkKQEAgLTQxMDIsNiArNDEw
MiwxMCBAQCBCdWcoZHByYW5rZSkgWyBXaW4gXSB3ZWJhdWRpby9jb2RlYy10ZXN0CiAKIHdlYmtp
dC5vcmcvYi8xMDAwMjMgWyBNYWMgXSBmYXN0L3N1Yi1waXhlbC9maWxlLXVwbG9hZC1jb250cm9s
LWF0LWZyYWN0aW9uYWwtb2Zmc2V0Lmh0bWwgWyBGYWlsdXJlIEltYWdlT25seUZhaWx1cmUgXQog
CisjIE5lZWRzIHJlYmFzZWxpbmUgYWZ0ZXIgYm90cyBjeWNsZQorQnVnKGxldml3KSBbIFdpbiBN
YWMgXSBmYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLmh0bWwg
WyBQYXNzIEltYWdlT25seUZhaWx1cmUgRmFpbHVyZSBdCitCdWcobGV2aXcpIFsgTGludXggV2lu
IE1hYyBdIGZhc3Qvc3ViLXBpeGVsL3RyYW5zZm9ybWVkLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC5o
dG1sIFsgUGFzcyBJbWFnZU9ubHlGYWlsdXJlIEZhaWx1cmUgXQorCiB3ZWJraXQub3JnL2IvMTAw
NDc4ICBbIE1hYyBdIGNzczMvZmlsdGVycy9jdXN0b20vZWZmZWN0LWN1c3RvbS5odG1sIFsgSW1h
Z2VPbmx5RmFpbHVyZSBdCiAKIHdlYmtpdC5vcmcvYi8xMDA0MjQgZWRpdGluZy9zZWxlY3Rpb24v
dXNlci1zZWxlY3QtYWxsLXNlbGVjdGlvbi5odG1sIFsgRmFpbHVyZSBdCkluZGV4OiBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9mYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZy
YW1lLWNvcHktb24tc2Nyb2xsLWV4cGVjdGVkLnBuZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNwbGF5
OiBmaWxlIG1hcmtlZCBhcyBhIGJpbmFyeSB0eXBlLgpzdm46bWltZS10eXBlID0gaW1hZ2UvcG5n
CgppVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBeUFBQUFKWUNBSUFBQUFWRkJVbkFBQUFLWFJGV0hS
amFHVmphM04xYlFBM01EQmhOMlJpCk5HWTNPVGhpT1RKbVkyUmpPR0V3TVdJellXVXlZemhqWkxr
YnluMEFBQnFQU1VSQlZIaWM3ZDFaY3hUbnZjRGhGb05rZ1FDSDRCSmkKTFlQWXdSaEMyRXdNaVYx
RkNtS2NWT0tVYnZoSStRYTU1WWFrNHNSbE80bUpzNUFVdTRMWVpCWmJpRjBnUUt5V3pDYWRpNjR6
WjQ1NgpSaHQvQ2MzVTgxeTR4dEowOTl2dk82UDVNV3BKVlUxTlRRa0FBSEVtdk9vQkFBQlVHb0VG
QUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCCkJRQVFUR0FCQUFRVFdBQUF3UVFXQUVBd2dRVUFFRXhn
QVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllBQURCQkJZQVFEQ0IKQlFBUVRHQUJBQVRM
clZxMXF1Z245dTdkMjFyQ2pCa3ovdk9mL3l4ZXZIaTRCL3Y3My8rK2NPSENKRWw2ZTN0UG5UcDE2
TkNoYytmTwo1WEs1R1RObXZPeDVERk5IUjhmUVQyRllkeDd0d1F4ckQ2TTk4cXo4RW85bjJVR08v
VVM5akxHWjVISHliQjIzUzVNZldPRUl5K0x4CkQ0eU5pUU44YnVYS2xTdFdySmd3WWNMZXZYdWJt
cHA2ZTN0UG56NTk3dHk1bzBlUGZ2ZmRkeU00MlB2dnY1L2VPSFBtVEgxOS9Zb1YKS3pvNk9rNmZQ
cjFreVpLUmpQMGxET3NVamgwNzF0UFRNMDRHVTFTcEViNzhub2NydjhUaldYYVFZejlSTDJOc0pu
bWNQRnZIN2RMawpuM1NGejc2eWVQd0RZNlBrdHdpblRadTJkT25TQ1JQKzd3NFRKa3hZc1dMRnRH
blRkdTNhOVpKSHZYejU4c3laTTZ1cnErZlBuLyt6Cm4vM3NKZmMyQXNNNmhROCsrR0QwUnBJTWN6
QkZsUnJoeSsrNXN1M2R1emU5VVVrVGxUK3BxRzFIOW14OW1XRVVHcmRMazMvU2pmYlgKQjZCTWxR
eXNIVHQyVkZkWDkvdGdkWFgxamgwN0NxdHJaTHE3dTE5K0owUDAvUG56N0FlSGRmUlJHbXArWUMr
Ly8xSjdHTE5KTGtjUApIanpJMzY2WWlTbzhxYWh0Ui9Cc0xicXJvcy9FUVkzRzBveHNKUDNrQjFZ
eER4NGcxa0RmSWh6WTQ4ZVBEeDA2OVBEaHd6VnIxalEyCk5pWko4dUxGaTJQSGpsMjdkbTNLbENs
YnRteVpPblZxNGYwN09qcGFXbHAyN3R5Wi90TTIvZS9XclZ0YldscVdMRmx5NXN5WnlaTW4KYjkr
Ky9lTEZpMTk5OVZWM2QzZHRiZTN5NWN2VFN4eGFXbHEyYmR0MjZOQ2hCdzhlckYyN2RzYU1HWWNQ
SDM3OCtQSGJiNys5YU5HaQpVb2YrNXB0dldscGE1c3laYy9YcTFhYW1wdXdwM0w1OXU3bTV1YWVu
NTYyMzNzcGY1REh3V1NSSmN2WHExZVBIai9mMjlxNWV2YnF4CnNmSHg0OGVmZi81NWtpUkxseTVk
dEdqUjU1OS9YbFZWbGN2bDFxMWJkK2ZPbmJhMnRpUkpQdnJvbzF3dWw5OUQwWUZsNXpON3JQeTgK
cFZzVjNpNTA3ZHExVTZkTzlmVDByRisvUG52VzZYd1d6bm4ybEljeTU2VldhdWZPbmVtTnJWdTNI
ajU4K01HREIvbE5DajE4K1BESQprU1AzNzkrZk0yZk81czJicTZxcUJoM1l2WHYzRGgwNmxDVEp3
b1VMMTY5ZjM5emNuRTd2cjM3MXE0a1RKNlp6T09oYS9PaEhQenA1Cjh1VE9uVHNQSGp5WXp1SGN1
WE8zYk5sU2Fna0tKNjNvR1dYWGFBU3pmZUxFaVUyYk5oMDlldlRSbzBjYk5teVlQMzkrdXZsd0p6
bDcKVW5tbGRwVWYyNHNYTC9MYkxseTRNUHRzYldwcXl1NGtTWksrdnI1VHAwNjF0YlhsY3JsVnEx
WTFOamIyRzBhcForSVFuenRGbDZiVQpnM2JnUjExMkpObkJaNWRzMEZVdVhPc0JIdi9aeDN6Ui9R
Q1ZZZVNCMWRIUjhlTWYvL2pPblR0SGp4NU52K0tjUG4yNm9hRmh3NFlOCnQyN2RPbjc4K0xadDJ3
cnZuNytXb3FtcEtiMm9LMG1TUC8zcFQwK2VQSmswYWRJdmZ2R0w5RzZ0cmEzdnYvLytwRW1UN3R5
NXMzLy8KL3NXTEY2Y2JkbloyYnR1MjdlYk5tOGVPSFh2cnJiZCs4cE9mZEhWMUhUcDBLUDNLVmZU
UTZldm8vZnYzcjE2OVd2UVVlbnA2dG0vZgozdDNkZmVUSWtkcmEybm56NWcxNkZsMWRYVzF0YlR0
MjdPanE2anA0OE9EVXFWUHI2K3MvL1BERGZmdjJMVisrL0xYWFhtdHFhdnJrCmswOSsrdE9mMXRi
V3pwdzU4L3IxNnp0MjdDaXNxMUlEeTg1bjBXTjk4TUVIbjMzMldickp6cDA3Ly96blAvYzdxVnUz
YmwyNGNHSGIKdG0wMU5UVVhMbHpJbnZXUkkwZjZ6WG4ybEljeTU2VldLci9XSFIwZFc3ZHV2WHYz
N3VIRGg3TXZkUWNQSGx5eFlzV2NPWFBPblR2Mwp1OS85THBmTFRadzRjZUNCYmQyNmRmTGt5Y2VP
SFZ1OWVuV1NKRC84NFE5djNMang3cnZ2cG5XVkpNbVVLVk1HWFl1Ly9PVXY2U0IzCjdOaVJmeHlX
V29LOFVtZFVkSTJHTzl2cGZicTZ1dDU3NzcyblQ1OGVQbnc0bDh2Tm1UTm5CSk9jUGFtODdLNnlZ
OHR2Kzhrbm4yU2YKclVWM2tpVEoyYk5uYTJwcWZ2N3puMSs1Y3FXMXRiV3hzYkhmTUVvOUU0ZXlY
dWx6WnloZmJZYnlxTXVPSkR2NDdMUU11c3FGRDVJQgpIaTNaeDN5YWowQkZHdm1iMjRzWEw2NnVy
bTVvYU1oZmducmx5cFVqUjQ3OC92ZS8vL2UvLzMzNzl1MSs5eTk2cGNLSEgzNllKRW42CldwTGF0
V3RYYlcxdGUzdjc4ZVBIMDM5U3B4c3VXTENndXJwNjd0eTV6NTQ5Vzd4NGNVMU56Y3laTTU4K2ZU
ckFvU2RQbm56ejVzM1oKczJjWGZiMUprbVQrL1BtNVhHN3ExS2tiTm13NGUvYnNVTTZpcGFWbC9m
cjFOVFUxRFEwTmE5ZXVQWDc4ZUpJa2t5Wk5talZyMXZYcgoxNU1rNmVycSt1Njc3OUxiVjY1Y2Vm
UE5OMnRxYXZydHBPakFzdk5aOUZoMWRYWDVUYkx2cmlWSmN1Yk1tZlhyMTlmVjFWVlhWeGU5Ckhq
azc1OWxUSHNxY2wxcXA1SCt2bTBrM2FXaG95RzlTNlBIangzUG16TW5sY3N1V0xaczJiZHBISDMw
MDZNQ3FxcXJlZU9PTjJiTm4KdDdlM0owblMyZGxaVjFjM2ZmcjB3dDBPdWhZRFhER1RYWUs4VW1k
VWRJMkdPOXZwemhzYkc2dXJxK3ZxNm43d2d4K2NPSEVpWkpMNwpuVUsvWFdYSGxqZkFWWDM5ZHBJ
a1NWdGIyNkpGaTNLNTNJSUZDNHB1T01BemNZalBuYUY4dFJuS2hHUkhraDE4ZGxvR1hlVitrMVpx
CkpObkhmTkg5QUpWaDVPOWdwUXJmNVg3eTVFbXBsRW1TcE4rN09LbnM1UXYzN3QxcmJtNmVQWHYy
TysrOGs3NDlVN2hoNGVFR1BmUzIKYmR0T25qeDU5dXpaVFpzMnZmSEdHd09jeFpRcFUvSlhqUXg4
RmwxZFhiVzF0ZW50ZWZQbU5UYzNwN2ZuenAzN3pUZmZMRnk0OE91dgp2MTZ5Wk1uVnExY2JHeHZi
Mjl2ZmVlZWQ3RTRHR0ZqaFNaVTYxc0R1M2J1WGo3RHNWWFJKc1RuUG52SlE1bnlBbFNvOFJLbnZn
eXhZCnNPRDgrZk5MbHk2OWNlUEdreWRQaGppd0pFa1dMVnEwZi8vK1pjdVdmZjMxMTBWL2VuL2d0
U2o2T0N4VWRNQ2x6bWpRTlJydWJDZEoKOHZycnIzZDNkNmUzWDNLU0MyVjNOY0RGUTZWbUtidVRK
RWw2ZW5xS1B0THlCbjRtRHYyNU0vQlRmaWdUa2gxSmR2RFphUm5pTTNIUQpwY2srNW9FS0ZubDU1
clJwMC9LM0wxKytQTEtkSERod1lOT21UU3RYcm56dHRkZGU4dENUSjAvZXZIbnpoZzBiMGd0M0J2
RHc0Y1BYClgzOTlnRjBWSHFpam95TzkvZUxGaS95cnhjeVpNKy9ldmZ2NDhlTzdkKysrL2ZiYkR4
NDh1SFhyVmk2WEs5eGIzaEFIVnVwWS9mVDIKOWhiKzc5eTVjKy9kdTVmZWZ2YnNXZllPUlErVXZ6
MzBoUnZaU3VVMU5qYmV1SEhqNDQ4L1BuMzY5S1pObTRZK3NMcTZ1cnE2dWt1WApMdDI1YzJmdTNM
blpyWWExRmk5cGlHdlViNVA4N2NMWnppOVRkM2QzL2o0dk9jbUZRblpWZENmVjFkVjlmWDBEYkRY
d0EzNWs2eld5CkIyMTJKSU1PUGhuUktoYzFsTWM4VURFR0Q2ejAxYnFycXl2L1pTajk1M1g2cTEv
U2QrelQyN05temJwMDZkTHo1OCt2WExtUy9aS1gKYnRYZDNaM2UrZjc5Ky9rTkN3dmc2ZE9uRHg4
KzdPbnB1WFRwVXBJa0wxNjhLSFc0OUwvcFo0c2VldS9ldlZldlhwMDBhVkxSSHhySwo1WEx0N2Uz
UG56OS85T2hSZW8xUit2SHNyZ29Ic0c3ZHVoTW5UdHk5ZS9mSmt5ZkhqeDlmczJaTmZtOHpaODQ4
Y09EQWdnVUxKa3lZCk1HdldyS05Iank1WXNLRG9sUFliV0trVExIV3NtcHFham82T1o4K2VwWmRZ
ZmZiWlo0VjdXTE5tVGJyVjgrZlBXMXRia3lUNTlOTlAKQzQrZW5mT0JUN25VbkpkYXFlN3U3bSsv
L2JibzVvVU9Iank0WmN1V1gvLzYxenQzN214b2FCaml3RktMRmkwNmR1eFlPdFZGVjNhQQp0Y2dQ
TWttU3FxcXEyN2R2Ly9XdmZ5MTF2bm1senFqVUdnMXJ0bE1uVDU1OC92eDVUMC9QZi8vNzMyWExs
cVVmSE1FazUwK3EzMGl5CnU4cU9yZCtFOUh1MkZ0MUpraVFORFEyZG5aMTlmWDBQSHo1TUwxcnZO
NHhCbjRtRHJ0ZFF2dG9NNVZHWEhVbDI4TmxwS2JySytZSDEKdXpIQTBtUWY4MEFGSy9tYjNGTjc5
KzVOZjVibjRzV0xyYTJ0NlowLy92ampKRW5PbnorL2F0V3FQL3poRC9uYk0yYk0rT3FycjQ0ZApP
L2I0OGVQMTY5ZjMrNGR5dXRXRkN4Zk9ueitmSkVsYlcxdHJhMnQ2dTcyOWZlblNwZW5kSms2YzJO
emMzTm5adVhidDJ1dlhyL2YwCjlLUS9rWlE5WEg2SHBRN2QydHJhME5CdzRNQ0IxYXRYZi8vNzMr
OTNhck5teldwdGJXMXBhZW5zN0Z5MWF0WHMyYlBUajJkM1ZYaSsKa3lkUG5qQmh3dEdqUnk5ZXZM
aDA2ZEtaTTJmbWQ5algxM2Z4NHNYTm16ZW4zeWxvYjIvZnVIRmowVysxOUJ0WXFma3NkYXhjTHRm
YwozTnpSMGJGaXhZcWJOMit1VzdmdWIzLzdXMzZyaVJNbnpwZ3g0K0RCZ3hjdVhGaTZkT25kdTNm
WHJWdFhlTFZXZXJqQ09SLzRsRXZOCmVhbVZ1bkRoUWxwKzJjMExKK0hLbFNzdExTM3Azd1k0Zi81
OGJXM3RQLy81ejBFSGxuNTg2dFNwWjgrZTNiaHhZNm52VEEyd0ZvV24KOE9qUm85YlcxbzBiTjM3
eHhSY0REL2lQZi96anNOWm9XTE9kUGlUZWZQUE5mLzNyWDVjdlgxNjRjR0grdDRHUFlKTHpKMVY0
dVY3UgpYUjA0Y0tEZjJQcE5TTDluYTlGRmIyaG9xSyt2YjJscGFXNXV2blBuenZMbHk3LzN2ZThW
N3FxdXJtN2daK0pRMW1zb1gyMUtyVkhoCmdiSWp5UTQrdTJSRlZ6ay9zUHhDcERjR1dKcnNZMzc2
OU9sZmZ2bWxYLzRPRmFscWdPdU5ZSlE4ZVBEZ3laTW42WTlpOWZYMVBYancKNE1zdnZ4ejZOYisz
Yjk4K2QrN2N1KysrTzVwakhGT2xmdlNQaXZHU2ozbWc3UGdWZWJ3QysvZnZmL1RvVWZyVFZjK2VQ
ZXZzN0p3MQphOVlRdCszdDdVMnZGQjdOQVk2cDlMdEk0L01Qd2hEbFpSN3pRRG55RGhhdndMVnIx
ODZkTzNmLy92M2UzdDY2dXJyWnMyZXZYTGt5Cisvc3Nzcjc0NG9zblQ1NXMyTENoa2k1aHlmOVZH
VS9HQ2piaXh6eFFwZ1FXQUVBdzN5SUVBQWdtc0FBQWdna3NBSUJnQWdzQUlKakEKQWdBSUpyQUFB
SUlKTEFDQVlBSUxBQ0NZd0FJQUNDYXdBQUNDQ1N3QWdHQUNDd0FnbU1BQ0FBZ21zQUFBZ2drc0FJ
QmdBZ3NBSUpqQQpBZ0FJSnJBQUFJSk5MUFdKdHJhMnNSd0hvNnF4c1RGLzI4cFdrc0tWQldEODhB
NVc1WnMzYjk2ckhnS2p3c29DakZzbDM4RksvZVkzCnZ4bWJjVEIwMjdadFM1SmszNzU5bloyZHBl
NVRYMSsvZmZ2MkpFbnUzYnVYSk1uMDZkUHpuL3J0YjMrYkpNbVNKVXRHZmFBTTA3QlcKOXBlLy9P
WFlqUXlBWVJva3NCaWY5dXpaczN2MzdwZS9EK09ObFFXb0RMNUZXSDcyN2RzM2xOZlgzYnQzNzl1
M2J3ekdReFFyQzFBeApCRmI1R2VEN1J5TytKK09CbFFXb0dBSUxBQ0NZd0FJQUNDYXdLc1NlUFh0
ZTlSQVlGVlZWVmE5NkNBQU1tOENxQkdsZGFhektrOWFWCnhnSW9Pd0tyN0JWMmxjYXFKSVZkcGJF
QXlvdkFLbS9ab3RKWWxTRmJWQm9Mb0l6NFJhUGx6UytjckZSOWZYMnZlZ2dBakp4M3NBQUEKZ2dr
c0FJQmdBZ3NBSUpocnNNcVNLOWtybFpVRnFBd0NxeXp0MnJVcis4RnZ2LzIyMzBmKzhZOS9qTWx3
QUlEL1IyREJPQ0tkQVNxRAphN0FBQUlJSkxBQ0FZQUlMQUNDWXdBSUFDQ2F3QUFDQ0NTd0FnR0FD
Q3dBZ21NQUNBQWdtc0FBQWdna3NBSUJnQWdzQUlKaS9SVmoyClB2MzAwOEwvZmUrOTkxN1ZTQUNB
bE1BcWUvay9ENXo5azhDVU5la01VTDRFRm94VDBobWdmQW1zc3VkOURnQVlid1JXMmZNK1I2V1MK
emdEbFMyREJPQ1dkQWNxWHdDcDczdWNBZ1BGR1lKVTk3M05VS3VrTVVMNEVGb3hUMGhtZ2ZQbE43
Z0FBd1FRV0FFQXdnUVVBRUV4ZwpBUUFFRTFnQUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJC
QllBUURCL0txY3M5ZnNyZFFEQXVDS3d5dEthTld1R2NyY1RKMDZNCjlraUlKWjBCS29QQWduRkVP
Z05VQnRkZ0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRH
QUIKQUFRVFdBQUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJC
TllBQURCQkJZQVFEQ0JCUUFRVEdBQgpBQVFUV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFN
RUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJCQllBUURDQkJRQVFUR0FCCkFBUVRXQUFBd1FRV0FF
QXdnUVVBRUV4Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFB
UVRHQUIKQUFRVFdBQUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFF
QUJCTllBQURCQkJZQVFEQ0JCUUFRVEdBQgpBQVFUV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFn
QUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJCQllBUURDQkJRQVFUR0FCCkFBUVRXQUFBd1FR
V0FFQXdnUVVBRUV4Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENC
QlFBUVRHQUIKQUFRVFdBQUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJN
WUFFQUJCTllBQURCQkJZQVFEQ0JCUUFRVEdBQgpBQVFUV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFF
RTFnQUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJCQllBUURDQkJRQVFUR0FCCkFBUVRXQUFB
d1FRV0FFQXdnUVVBRUV4Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFR
RENCQlFBUVRHQUIKQUFRVFdBQUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZB
QkJNWUFFQUJCTllBQURCQkJZQVFEQ0JCUUFRVEdBQgpBQVFUV0FBQXdRUVdBRUF3Z1FVQUVFeGdB
UUFFRTFnQUFNRUVGZ0JBc0ltdmVnQ014SWtUSjE3MUVCZ1ZWaGFnTWdpc3NyUjc5KzZoCjNHM1Bu
ajJqUFJKaVdWbUF5dUJiaEFBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFYzVGN2VhdXFxc3Arc0srdmIr
eEhRaXdyQzFEV3ZJTlYKM3JLdnVGNkRLNE9WQlNockFxdnNGYjd1ZWcydUpGWVdvSHdKckVxUXZ2
cDZEYTQ4VmhhZ1RBbXNDdUUxdUZKWldZQnlKTEFBQUlJSgpyUEpUWDE4ZmZrL0dBeXNMVURFRVZ2
blp2bjM3VVA0VTNaNDllN1p2M3o0RzR5R0tsUVdvR0g0UFZsbmF2WHYzdm4zN09qczdTOTJoCnZy
NStpSDgybUhIRnlnSlVocXFtcHFhaW4yaHJhMHVTWk42OGVXTTdIa1pGVFUxTi9yYVZyU1NGS3d2
QStESFF0d2k5QmxjcUt3c0EKbzZya3R3Z2JHeHZIY2h5TUdTc0xBS1BOUmU0QUFNRUVGZ0JBTUlF
RkFCQk1ZQUVBQkJOWUFBREJCQllBUURDQkJRQVFUR0FCQUFRVApXQUFBd1FRV0FFQXdnUVVBRUV4
Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRHQUJBQVFU
CldBQUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllBQURC
QkJZQVFEQ0JCUUFRVEdBQkFBUVQKV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFNRUVGZ0JB
TUlFRkFCQk1ZQUVBQkJOWUFBREJCQllBUURDQkJRQVFUR0FCQUFRVApXQUFBd1FRV0FFQXdnUVVB
RUV4Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRHQUJB
QVFUCldBQUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllB
QURCQkJZQVFEQ0JCUUFRVEdBQkFBUVQKV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFNRUVG
Z0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJCQllBUURDQkJRQVFUR0FCQUFRVApXQUFBd1FRV0FFQXdn
UVVBRUV4Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRH
QUJBQVFUCldBQUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJC
TllBQURCQkJZQVFEQ0JCUUFRVEdBQkFBUVQKV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFN
RUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJCQllBUURDQkJRQVFUR0FCQUFRVApXQUFBd1FRV0FF
QXdnUVVBRUV4Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFB
UVRHQUJBQVFUCldBQUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFF
QUJCTllBQURCQkJZQVFEQ0JCUUFRVEdBQkFBUVQKV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFn
QUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJCQllBUURDQkJRQVFUR0FCQUFRVApXQUFBd1FR
V0FFQXdnUVVBRUV4Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENC
QlFBUVRHQUJBQVFUCldBQUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJN
WUFFQUJCTllBQURCQkJZQVFEQ0JCUUFRVEdBQkFBUVQKV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFF
RTFnQUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJCQllBUURDQkJRQVFUR0FCQUFRVApXQUFB
d1FRV0FFQXdnUVVBRUV4Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFR
RENCQlFBUVRHQUJBQVFUCldBQUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZB
QkJNWUFFQUJCTllBQURCQkJZQVFEQ0JCUUFRVEdBQkFBUVQKV0FBQXdRUVdBRUF3Z1FVQUVFeGdB
UUFFRTFnQUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJCQllBUURDQkJRQVFUR0FCQUFRVApX
QUFBd1FRV0FFQXdnUVVBRUV4Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJC
WUFRRENCQlFBUVRHQUJBQVFUCldBQUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1J
RUZBQkJNWUFFQUJCTllBQURCQkJZQVFEQ0JCUUFRVEdBQkFBUVQKV0FBQXdRUVdBRUF3Z1FVQUVF
eGdBUUFFRTFnQUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJCQllBUURDQkJRQVFUR0FCQUFR
VApXQUFBd1FRV0FFQXdnUVVBRUV4Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFE
QkJCWUFRRENCQlFBUVRHQUJBQVFUCldBQUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdC
QU1JRUZBQkJNWUFFQUJCTllBQURCQkJZQVFEQ0JCUUFRVEdBQkFBUVQKV0FBQXdRUVdBRUF3Z1FV
QUVFeGdBUUFFRTFnQUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJCQllBUURDQkJRQVFUR0FC
QUFRVApXQUFBd1FRV0FFQXdnUVVBRUV4Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5Z
QUFEQkJCWUFRRENCQlFBUVRHQUJBQVFUCldBQUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVF
RmdCQU1JRUZBQkJNWUFFQUJCTllBQURCQkJZQVFEQ0JCUUFRVEdBQkFBUVQKV0FBQXdRUVdBRUF3
Z1FVQUVFeGdBUUFFRTFnQUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJCQllBUURDQkJRQVFU
R0FCQUFRVApXQUFBd1FRV0FFQXdnUVVBRUV4Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFC
Qk5ZQUFEQkJCWUFRTEQvQWVDbnpKaVo3MlVFCkFBQUFBRWxGVGtTdVFtQ0MKCkluZGV4OiBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9mYXN0L3N1Yi1waXhlbC90cmFuc2Zvcm1l
ZC1pZnJhbWUtY29weS1vbi1zY3JvbGwtZXhwZWN0ZWQucG5nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQ2Fubm90IGRp
c3BsYXk6IGZpbGUgbWFya2VkIGFzIGEgYmluYXJ5IHR5cGUuCnN2bjptaW1lLXR5cGUgPSBpbWFn
ZS9wbmcKClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
LWxpbnV4L2Zhc3Qvc3ViLXBpeGVsL3RyYW5zZm9ybWVkLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC1l
eHBlY3RlZC5wbmcKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOm1pbWUtdHlwZQogICArIGltYWdlL3Bu
ZwoKCmlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUF5QUFBQUpZQ0FJQUFBQVZGQlVuQUFBQUtYUkZX
SFJqYUdWamEzTjFiUUE1TnpreU56Tm0KWWpFNE9XSmpOak5qWWpVM00yWTVNV1F4TkRZeFpXVTBP
ZGlKb2RRQUFDQUFTVVJCVkhpYzdkMWJqRnhuWWNEeGIrMzFldGZadGIyeApIZC9pT0hIam1HQUh4
NDV0QlFmU3BDb0Y1UW1wUlVJSTBVYmxVdFMrcEFVaWVLaUVpbEFycWlJaTBxWlE2bEJWSVlDcVhF
UVMwa1lrCkJTVTBnc1FKMkJESHhvNWpiMnBqYit5MTE5NWQ3K1gwNGRCaHNuUFoyWjF2WnM3TS9I
NVBKN1BuOHAzYitwKzViVWVTSkFFQWdIam0KTlhvQUFBQ3RSbUFCQUVRbXNBQUFJaE5ZQUFDUkNT
d0FnTWdFRmdCQVpBSUxBQ0F5Z1FVQUVKbkFBZ0NJVEdBQkFFUW1zQUFBSWhOWQpBQUNSQ1N3QWdN
Z0VGZ0JBWkFJTEFDQXlnUVVBRUpuQUFnQ0lUR0FCQUVRbXNBQUFJaXNaV0IybFBmNzQ0NXMyYlpy
RHh0Nzk3bmVuCkUrUGo0NS81ekdlV0wxKytmUG55cjN6bEszTWNleFZtdFF0ejN0KzZyYi9VR21v
OThrSzVVNXhsaFlPcy80R3FSbjBPY2tidTFzeWUKbXR6QThrZllGTmMvVUNkSkNTR0V2Lzdydng0
YkcwdW5reVFaSFIyOSsrNjdRd2hyMXF3cHMyQWxQdmU1enozMjJHTkRRME1QUHZqZwo3L3pPNzFT
enFybVoxUzVjZWVXVlZlNXZ4TUVVVldxRXExYXRxdW5JVzBiMXA2Q0ZOZlp1emV5cHlkMTB0Zjc5
QURTcGppUkppb2JYCmxpMWJubnZ1dWNXTEY0Y1FPanArTTl2UTBOQXR0OXp5d2dzdmRIZDNsMXF3
RXV2WHJ6OTA2TkNDQlF2bXZJWXFqWTJOVmI0THM1cTUKMW9PWjFScHFQZkptbDd1d1crbEE1WFlx
MXJKenUxdXJHVWEreko2YTNNQXlPMEtnc1VxK1JMaHYzNzYwcnZJdFdiSmszNzU5Q3hjdQpySEty
eDQ4ZnIwOWRKVWx5NGNLRndzZG50UXZWNzIraC9JRlZ2LzVTYTZqRnlGdkcvdjM3YzlNdGM2RHlk
eXJXc25PNFd3dFhWZXBPCm5GSDBVelBua1V5VEcxakxYRHhBWEhOL2svdWhRNGQyN2RxMWVQSGly
My85Nitram82T2pIL25JUnhZdFdyUjE2OWFEQnc5T216LzMKVG9XT2pvNnBxYW4wN1Z4UFBQSEU5
ZGRmLzAvLzlFOHJWNjdjdVhObkNPRmYvL1ZmTjJ6WXNHREJnaXV2dlBMZWUrOE5JYVR6dlBiYQph
N3QzNzE2OGVQRTN2dkdOL2Z2M2I5Kyt2YSt2Nzc3NzdpdXo2WC84eDM5Y3RHalJuLzdwbjNaMGRC
VGRoZi8rNy8vZXZIbHpmMy8vClY3LzYxZHlENWZjaWhQRGQ3MzUzOWVyVnk1Y3YvK2QvL3VmME9L
VDc4cWxQZlNxZDd1enM3T3ZyKytZM3YvbG5mL1puNlk5R1IwZnoKMTFCMFlJWEhzM0JiNGYvZkcx
YzRuZStoaHg2Ni92cnIrL3I2SG56d3djS2ZGaDd6d2wydTVKZ1hucW5jS1U0WC85V3ZmdlhPZDc1
ego4ZUxGdVVYeS9mS1h2N3o1NXBzWExsejR3UTkrY0dKaW9wS0JQZmpnZytrdWYvU2pIdzBoNUE3
djhQQnc3aGpPZUM0ZWZ2amhkSkFmCitNQUgwbVA0UjMvMFIyVk9RZjVCSzdwSGhlZG90a2Y3Kzkv
Ly91Yk5tL2Z1M1h2ampUZGVkdGxsMy9yV3QzS0x6L1lnRis1VW1WVk4KRzF2K3NrWHYxcUlyQ1NG
TVRVMTk1ak9mV2JwMDZlclZxNy8ydGE4VkRxUFVuVmo1dlZQSmI1dEtycnJDa1JRT3Z2Q1V6WGlX
VXpOZQovNFhYUE5ES0tua2RzWEMyRU1JOTk5eHo1c3laSjU1NFl0V3FWZW1Ebi9yVXA3NzV6VytP
am80Ky92amo3MzN2ZTZjdHNucjE2dHg2CmNoTXJWcXdJSVR6eXlDTzUyYTY2NnFxalI0K09qNC8v
OEljL3ZPeXl5M0lMN3RtejU4eVpNOS85N25mNysvdnZ1ZWVlTjk5ODg4a24KbjF5K2ZIbVpUUzll
dlBqSWtTTVBQZlJRMGQwTUlUend3QU1YTGx4NDlkVlgzL25PZDM3NzI5OHVzNnJjR3A1Ly92bmYv
LzNmUDMzNgo5SC8rNTM4dVdiTGs2YWVmVHBMaytQSGpxMWV2UG5ueVpEclBtalZyVHB3NGtTVEp3
TURBbWpWcjNuenp6V21iTGh4WTBlTlpkRnRICmpoekpMWFhnd0lIQ1EvclVVMC9kZXV1dGh3OGZQ
blBtek9jLy8vbkNmUzg4NW9XN1hNa3hMM1dtY2hQMzNIUFA0T0RnWTQ4OWxsc2sKM3p2ZThZNzAr
S2VEN09ucG1YRmdrNU9Ueno3NzdPYk5tMCtkT3BVa3lkVFUxTHAxNjE1ODhjWDgxYzU0TG9wZWg2
Vk9RVTZwUFNwNgpqbVo3dEsrNDRvb1F3bjMzM1RjME5IVDQ4T0YzdmV0ZER6Lzg4SndQY3FtYnVu
QlZoV1BMTFZ2cUtCV3VKRW1TTDN6aEMxLzg0aGRIClJrYjI3Tmx6elRYWEZDNVY1azZzNU42cDhM
ZE5KVmRkNFVnS0IxOTRXRXFkNVdtSGFNWlRVM2pORnoxVFFHdVllMkNsRXhNVEUvUG0KelV1bjB6
ZDdwaFl0V2pSdGtaR1JrY0pmMmVuL25rNmJjM1IwOU90Zi8vcTJiZHZTSDEyOGVERi9jN25weWNu
SjNIVFJUVjkvL2ZYMwozWGZmK1BqNGpEdjF5MS8rY3Z2MjdXVldsWnY1bGx0dU9YTGtTRHE5Wjgr
ZUxWdTJwTk4zM25ubk43N3hqU1JKZnZLVG4zUjBkTngzCjMzMUprdno5My8vOTNYZmZYYmpwd29F
VlBaNmx0alV0Q3dwSCtNb3JyNlRUWjgrZUxYcDRwejFZdU11VkhQT2s0RXpsVG5IK0p2SVgKejdk
bzBhS1JrWkYwVzVzM2I2NXdZRW1TM0gzMzNYLzNkMytYSk1uVFR6LzlybmU5cTNETjVjOUYwZXN3
S1hFS2loNjAvRDBxZFk2SwpMbGhxcDlKWHJISXp2UERDQ3hzM2JzeGZ3NndPY3BuL2E1cTJxc0t4
NWY2ejFGRXFYRW1TSk92WHJ6OXo1c3kwYmVVdlZmNU9uUEhlCnFmQzNUU1ZYWGVGSUNnZGZlRmht
dkJNclBEV0YxenpRd3FvTnJQenBoUXNYVnJpZW9vdW5Ybnp4eFowN2QzNys4NTkvNVpWWFpweS8K
L0thUEhqMzZ3UTkrY01PR0RjOCsrMno1bmJwMDZWTDZOdFZTcThyTjNOWFZkZUhDaFhSNmVIZzRO
L09qano1Nnh4MTNKRW55a1k5OAo1SzY3N25yUGU5NlRKTWtOTjl6d2kxLzhvcEtCRmQycFV0c3FI
MWc5UFQyWExsMHF1cHVsSGl5L3k2V215NStwTXFjNDllZC8vdWQvCjh6ZC9jK0hDaFc5Lys5c3JW
cXlvZkdDSER4Kys3cnJycHFhbS92QVAvL0NCQng0b25HSEdjMUg1ZFpWdlZ1ZW8xSUtsZG1yYTFa
aWIKWnc0SHVWUmd6WGhuVmJMQ29pdVpQMzkrK1QwcWZ5ZFdmcjd5cDJkMTBaWVp5WXlEVHlxNEV5
czhOVVd2ZWFCVnhReXNiZHUyNVI3OAo5My8vOXpMcktmTjdjTU9HRGVrVE1JT0RnNVgvUTFobTB6
LzR3US9XcjE5ZmZxZjI3dDI3WThlT01xdkszOUIvL01kL3BOTW5UNTY4Ci9mYmIwK21Sa1pGbHk1
WWRQSGp3dXV1dUd4c2JXNzE2OVZOUFBiVno1ODdDN1JZZFdLbWRLcnF0RU1MVTFGUnVPdityTkpJ
aytmQ0gKUC96akgvODRuUjRhR3NyTlVHcmZaOXpsVXRQbHo5U00vOVM5L1BMTHUzZnY3dTd1M3JS
cDA1TlBQbG41d0pJa2VkLzczbmYvL2ZldgpXYk9tY05lU0NzNUZ4TUFxZFk1S0xWaHFwMElJdVN3
K2VQRGcxcTFiMCtrNUhPUlNnVFhqblZYSkNvdXVaUG55NVJNVEUrWDNPaWw5CkoxWit2cEszSHZu
Y2d6TmV0R1ZHVXNuZ3k5eUpNMDdrVHhlOTVvRldOVU5nVFUxTi9mU25QdzBoL09RblA1bWNuRXdm
UEhyMGFBaGgKWUdBZ1NaSVRKMDZFRUk0ZE81WWt5V2MvKzluNzc3OS9lSGo0VzkvNlZ2cS9wUGxl
Zi8zMUVNTHJyNzkrN05peEVNTGV2WHVUSkVtbgpSMGRIYzdNdFhicjBvWWNlR2hnWStQS1h2enh2
M3J5TEZ5K21DNmFiZStPTk4zTFRBd01ESVlTalI0K1cyblFJNFR2ZitjNnJyNzY2CmJObXl3bDI3
N0xMTDl1elpNenc4L09xcnIrN2F0ZXZ4eHg5UEh5OWNWVHFBNDhlUEowbnk3TFBQWG5QTk5mL3pQ
Lzl6OHVUSkQzM28KUXkrODhFSnVoUi80d0FlMmJkdjJ0My83dDBtUzNIbm5uVmRkZGRXOTk5NWIv
S0MvZFdDbGptZXBiVjErK2VWUFBQSEVtVE5uMG05OQpYTHQyYmY0SVQ1dzQ4ZTUzdi91NTU1NGJI
aDcrcTcvNnF4REM2dFdyODdkZWVNeEw3WEw1WTE3cVRMMysrdXZwRzhYeUYwLzNLTi9iCjN2YTJk
TUN6R2xqcWtVY2U2ZTd1L3V4blAxdjA4SlkvRjdsQkprblMyZG41d3gvK2NNdVdMYVZPUVU2cFBT
cHpQY3hxcDBJSWQ5MTEKMTdsejV3WUdCdjdnRC80Z1Z3eHpPTWk1blpvMmtzSlZGWTR0dDJ6UnU3
WG9TcElrK2RDSFB2VFVVMDlOVGs3KzRoZS95SDFSVnY0dwp5dCtKNWM5WDViOXRLcm5xQ2tkU09Q
akN3MUwwTE9kdXVta1RaVTVONFRVUHRMQVpBaXU4MWJRSHAwMmZPM2Z1L2U5L2YxZFgxL2J0CjIx
OTk5ZFh5cThxM2J0MjYzR3ozM0hQUG9rV0xkdTNhZGZiczJiZS8vZTJmL3ZTblMyMXV4azJIRVA3
bFgvNWw4ZUxGUlVQbnhSZGYKM0wxN2QxZFgxOWF0VzcvM3ZlL2xIaTljMWJUZHYvZmVlOVBQSEgz
bk85L0pYK0VERHp6UTNkMTkrdlRwSkVrZWZ2amhycTZ1d2NIQgpVa2MxZjJDbGRxclV0cjc4NVM5
ZmR0bGxOOTEwVS9vLy9ZODk5dGkwcFg3MnM1OXQzTGh4N2RxMVR6NzU1TFhYWHB1L2Q3bE41Qi96
CjhydGNhcnJNbVNxelJ6bTMzSEpMN2tkOWZYMjVUNGVWSDFocWZIeDgwYUpGcjczMld0SERXLzVj
NUkvbnd4LytjSDkvL3c5KzhJTVoKQnp6YmN6U3JvNTNPbG43QTdjb3JyL3pxVjcrYW0za09Cem0z
VTlOR1VtcFYrV01yUENEVE5sUzRraVJKVHA0OCtaNzN2S2U3dTN2Nwo5dTMvOW0vL05tMVZ5VXgz
WXVYbkszKzY4b3QyMnVtWU5wTEN3UmNlbHFKbnVlZ2hLbjlxQ3EvNUpFbDI3OTVkOUpnQXpTN09s
d0hDCnJQejg1ejgvZmZyMDdiZmZIa0tZbkp6Y3QyL2Y3dDI3Sy85Mm9oLzk2RWRmK3RLWEhuMzAw
VnFPc2E1aWZTMG5tVlhsTlE4MEhYL3MKbVFhNDQ0NDdEaDQ4bUQ1TGNlN2N1V2VlZWVhT08rNm9j
Tm54OGZGLytJZC8rTXUvL011YWpyQ2VUcDQ4R1VKSVgvK2lWVlZ6elFQTgpTR0RSQUYvNXlsZjI3
Tm16YnQyNmhRc1g3dHk1OCtqUm8rbDNQTTdveGh0djNMQmh3eWMvK2NuYmJydXR4bU9zbi9SUFJx
WmZua1NyCm12TTFEelFwTDB3QUFFVG1HU3dBZ01nRUZnQkFaQUlMQUNBeWdjWE0wajlCQ0FCVVNH
QXhnN0d4c2U5OTczc0hEeDVzOUVBQW9HbDAKTm5vQVpOclkyTmozdi8vOVgvLzYxNy8rOWE5RENC
czNibXowaUFDZ0NYZ0dpNUp5ZFRWLy92d1F3alBQUE9ONUxBQ29oTUNpdUZ4ZApkWFYxWFhYVlZj
dVdMUXNhQ3dBcUk3QW9Jcit1MXE1ZHUyREJnbVhMbG1rc0FLaVF3R0s2d3JwS0g5ZFlBRkFoZ2NW
YmxLcXJsTVlDCmdFb0lMSDZyZkYybE5CWUF6RWhnOFJ1VjFGVktZd0ZBZVFLTEVHWlRWeW1OQlFC
bENDeG1YVmNwalFVQXBRaXNkamUzdWtwcExBQW8KU21DMXRXcnFLcVd4QUtDUXdHcGYxZGRWU21N
QndEUUNxMDNGcXF1VXhnS0FmQUtySGNXdHE1VEdBb0FjZ2RWMmFsRlhLWTBGQUNtQgoxVjVxVjFj
cGpRVUFRV0MxbFZyWFZVcGpBWURBYWhmMXFhdVV4Z0tnelFtc3RsRFB1a3BwTEFEYW1jQnFmZld2
cTVUR0FxQnRDYXdXCjE2aTZTbWtzQU5xVHdHcGxqYTJybE1ZQ29BMEpySmFWaGJwS2FTd0EybzNB
YWszWnFhdVV4Z0tnclFpc0ZwUzF1a3BwTEFEYWg4QnEKTmRtc3E1VEdBcUJOQ0t5V2t1VzZTbWtz
QU5xQndHb2QyYStybE1ZQ29PVUpyQmJSTEhXVjBsZ0F0RGFCMVFxYXE2NVNHZ3VBRmlhdwptbDR6
MWxWS1l3SFFxZ1JXYzJ2ZXVrcHBMQUJha3NCcVlzMWVWeW1OQlVEckVWak5xalhxS3FXeEFHZ3hB
cXNwdFZKZHBUUVdBSzFFCllEV2YxcXVybE1ZQ29HVUlyQ2JUcW5XVjBsZ0F0QWFCMVV4YXU2NVNH
Z3VBRmlDd21rWTcxRlZLWXdIUTdBUldjMmlmdWtwcExBQ2EKbXNCcUF1MVdWeW1OQlVEekVsaFox
NTUxbGRKWUFEUXBnWlZwN1Z4WEtZMEZRRE1TV05tbHJsSWFDNENtSTdBeVNsM2wwMWdBTkJlQgps
VVhxcXBER0FxQ0pDS3pNVVZlbGFDd0Ftb1hBeWhaMVZaN0dBcUFwQ0t3TVVWZVYwRmdBWkovQXln
cDFWVG1OQlVER2RUWjZBSVNnCnJtWXZEYXpCd2NGbm5ua21oTEJ4NDhZR0Q2aHFiN3p4eG1PUFBk
Ym9VZERpUHZheGp6VjZDTkF1UElQVmVPcHFibHJzZWF5bFM1ZHUKM2JxMTBhTUFJQTdQWURXWXVx
cEdLejJQdFdEQmdxdXZ2bnJod29WdnZQRkdvOGRDcXhrYkd6dDE2bFNqUndIdFJXQTFrcnFxWG9z
MQoxckpseTg2ZVBkdm9nUUJRTFM4Uk5veTZpcVUxWGl2czZPaG85QkFBaUVaZ05ZYTZpcXMxR2l1
RWtDUkpvNGNBUUFRQ3F3SFVWUzIwClRHTUIwQUlFVnIycHE5clJXQUJraE1DcUszVlZheG9MZ0N3
UVdQV2pydXBEWXdIUWNBS3JUdFJWUFdrc0FCcExZTldEdXFvL2pRVkEKQXdtc21sTlhqYUt4QUdn
VWdWVmI2cXF4TkJZQURTR3dha2hkWllIR0FxRCtCRmF0cUt2czBGZ0ExSm5BcWdsMWxUVWFDNEI2
RWxqeApxYXRzMGxnQTFJM0Fpa3hkWlpuR0FxQStCRlpNNmlyN05CWUFkU0N3b2xGWHpVSmpBVkJy
QWlzT2RkVmNOQllBTlNXd0lsQlh6VWhqCkFWQTdBcXRhNnFwNWFTd0Fha1JnVlVWZE5UdU5CVUF0
Q0t5NVUxZXRRV01CRUozQW1pTjExVW8wRmdCeENheTVVRmV0UjJNQkVKSEEKbWpWMTFhbzBGZ0N4
Q0t6WlVWZXRUV01CRUlYQW1nVjExUTQwRmdEVkUxaVZVbGZ0UTJNQlVDV0JWUkYxMVc0MEZnRFZF
Rmd6VTFmdApTV01CTUdjQ2F3YnFxcDFwTEFEbVJtQ1ZvNjdRV0FETWdjQXFTVjJSMGxnQXpKYkFL
azVka1U5akFUQXJBcXNJZFVVaGpRVkE1UVRXCmRPcUtValFXQUJVU1dHK2hyaWhQWXdGUUNZSDFX
K3FLU21nc0FHWWtzSDVEWFZFNWpRVkFlUUlyQkhYRjdHa3NBTW9RV09xS09kSlkKQUpUUzdvR2xy
cWlHeGdLZ3FMWU9MSFZGOWE2OTl0cHQyN1lGalFWQW5zNUdENkJoMUJYVlc3Qmd3UTAzM0RBOFBI
eisvUGxEaHc0OQo4OHd6SVlTTkd6YzJlbHdBTkZpYkJwYTZvbnFqbzZQbnpwMDdlUERnME5EUXdv
VUx1N3E2TGwyNnBMRUFDTzBaV09xSzZvMk9qcDQrCmZmcldXMjlkdDI1ZCtwOW56NTQ5ZWZMa3hN
U0V4Z0tnN2Q2RHBhNm8zclM2Q2lGMGQzZmZmdnZ0SzFldTdPenNETjZQQmREMjJpdXcKMUJYVks2
eXJWRTlQajhZQ0lOVkdnYVd1cUY2cHVrcHBMQUJTN1JKWTZvcnFsYStybE1ZQ0lMUkpZS2tycWxk
SlhhVnlqZFhkM1IwMApGa0JiYXYxUEVhb3JxbGRZVjYrOTlscHZiKy9rNU9URml4ZTd1cm9XTDE3
YzE5ZVhtNytucCtmM2Z1LzNYbnJwcGZIeDhWZGVlY1huCkNnSGFUWXNIbHJxaWVrV2Z1enB4NHNU
aHc0ZVRKRW1TWk42OGVlOTk3M3VuTGRYZDNUMCtQcjU5Ky9hZW5wNjllL2YrNkVjLzZ1N3UKbnZI
Wkx3QmFReXNIbHJxaWVtbGQ5ZmYzSHp0MkxEK1Bicjc1NWhEQ29VT0hRZ2hUVTFNakl5T0Z5MTV4
eFJVOVBUM1hYWGZka2lWTAplbnA2cnJqaWlyb05HNERHYXRuM1lLa3JxcGZXMVk0ZE8yNjU1WmJS
MGRIbm5uc3UvNmMzMzN6enRkZGVHMExvNk9oSTMyNlY3OENCCkE2Ky8vdnJnNE9EazVPVEtsU3ZY
cmwzYjFkVlZ2NkVEMEZDdEdWanFpdXJsNm1yVnFsVWhoSnR1dXFsVVkzVjJkdmIwOU9RL2Z1REEK
Z1gzNzlyM3RiVy9yN095Y1AzOStYMTlmUjBkSFhVY1BRRU8xWUdDcEs2bzNyYTVTcFJwci9mcjFR
ME5EdVVmU3V0cTFhMWR2YjYrNgpBbWhQclJaWTZvcnFGYTJyVktuR1dyTm1UVHF0cmdBSUxSWlk2
b3JxbGFtcjFQYnQyeTljdURDdHNWTHFDb0JVNndTV3VxSjZNOVpWCmtpUmpZMk9iTjI4ZUhoNmUx
bGpxQ29DY0Zna3NkVVgxS3F5cnljbkpFTUtXTFZ2eUcwdGRBWkN2RlFKTFhWRzlXZFZWS3RkWTZn
cUEKYVpvK3NOUVYxWnREWGFXMmJObHk2dFFwZFFYQU5NMGRXT3FLNnMyNXJrSUl4NDhmbjVpWVVG
Y0FUTlBFZ2FXdXFGNlZkWFhzMkRGMQpCVUNoWmcwc2RVWDFpdGJWK2ZQbng4ZkgwMmwxQmNEY05H
VmdxU3VxVitxNXF4TW5UanovL1BQajQrUHFDb0E1YTc3QVVsZFVyMmhkClhieDRNWVN3Y2VQRzVj
dVhQLy84ODhQRHcrb0tnTGxwc3NCU1YxU3YxSE5YQnc0YytOblBmaFpDMkxScDA5S2xTL2Z1M1Rz
eE1URnQKV1hVRlFDV2FLYkRVRmRVcldsZGpZMk1oaEczYnRvMk5qYjM4OHN0alkyUFhYSFBOeXBV
cnA2YW04cGRONjJybnpwM3FDb0R5bWlhdwoxQlhWSzFwWGs1T1R6ei8vL0pFalIwSUlPM2JzR0Jr
WjJiOS9md2poeWl1djdPcnF5czJXcTZ1K3ZqNTFCVUI1elJGWTZvcnFsWHBsCmNQNzgrZHUzYno5
eTVNaVJJMGZHeHNadXVPR0dlZlBtNVQ1SW1GSlhBTXhLRXdTV3VxSjY1Yi92cXJlM2Q5ZXVYYi82
MWErT0hqMGEKUXJqdXV1dnlMek4xQmNCc1pUMncxQlhWcStUYlJEczdPN2R1M1RvNE9EanRrNFBx
Q29BNTZHejBBTXBSVjFTdjh1OXFYN1JvMFR2ZQo4WTc4ZmxKWEFNeE5kcC9CVWxkVWI3Wi9DVWRk
QVJCRlJnTkxYVkc5dEs2NnVycDZlM3VMempEamQ3V3JLd0RtSm91QnBhNm9YbHBYClYxOTlkZTVy
MmFmTm9LNEFxSjNNQlphNm9ucTV1bHF5Wk1tS0ZTdjYrL3VuTlphNkFxQ21zaFZZNm9ycTVkZFYr
c2kweGxKWEFOUmEKaGdKTFhWRzl3cnBLNVJyci9Qbno2Z3FBV3N0S1lLa3JxbGVxcmxMNWpWWDRV
M1VGUUVTWkNDeDFSZlhLMTFWcXhZb1ZsMTkrK2Nzdgp2M3p4NHNYOHg5VVZBSEUxUHJEVUZkV3Jw
SzVTaFkybHJnQ0lyc0dCcGE2b1h1VjFsY3B2TEhVRlFDMDA4ay9scUN1cU45dTZTcTFZCnNTS0U4
TUlMTDNSMmRxb3JBS0pyMkROWTZvcnF6YTJ1VWgwZEhlb0tnQnBwVEdDcEs2cFhUVjJkUG4xNmNI
QlFYUUZRSTQxNWlmRHMKMmJQOS9mMTlmWDFYWEhIRjRPQmdROFpBVTFOWEFHUlpZd0pyNWNxVmwx
OStlZnExMnQzZDNRTURBdzBaQmsxS1hRR1FjUTE3RDlhQwpCUXQ2ZTN0RENNdVdMVnU3ZG0yamhr
SFRVVmNBWkY4anY2WkJZekZiNmdxQXB0RGc3OEhTV0ZST1hRSFFMQnIvVGU0YWkwcW9Ld0NhClNP
TURLMmdzWnFLdUFHZ3VtUWlzb0xFb1RWMEIwSFN5RWxoQlkxR011Z0tnR1dVb3NJTEc0cTNVRlFC
TktsdUJGVFFXLzA5ZEFkQzgKTWhkWVFXT2hyZ0JvY2xrTXJLQ3gycHU2QXFEWlpUU3dnc1pxVitv
S2dCYVEzY0FLR3F2OXFDc0FXa09tQXl0b3JIYWlyZ0JvR1ZrUApyS0N4Mm9PNkFxQ1ZORUZnQlkz
VjZ0UVZBQzJtT1FJcmFLeldwYTRBYUQxTkUxaEJZN1VpZFFWQVMycW13QW9hcTdXb0t3QmFWWk1G
ClZ0QllyVUpkQWREQ21pK3dnc1pxZnVvS2dOYldsSUVWTkZZelUxZFFaMjRUcUw5bURheWdzWnFU
dWdLZ0hUUnhZQVdOMVd6VUZRQnQKb3JrREsyaXM1cUd1QUdnZlRSOVlRV00xQTNVRlFGdHBoY0FL
R2l2YjFCVUE3YVpGQWl0b3JLeFNWd0Mwb2RZSnJLQ3hza2RkQWRDZQpXaXF3Z3NiS0VuVUZRTnRx
dGNBS0dpc2IxQlVBN2F3RkF5dG9yRVpUVndDMHVkWU1yS0N4R2tkZEFVRExCbGJRV0kyZ3JnQWd0
SFpnCkJZMVZYK29LQUZJdEhsaEJZOVdMdWdLQW5OWVByS0N4YWs5ZEFVQyt0Z2lzb0xGcVNWMEJ3
RFR0RWxoQlk5V0d1Z0tBUW0wVVdFRmoKeGFhdUFLQ285Z3Fzb0xIaVVWY0FVRXJiQlZiUVdER29L
d0Fvb3gwREsyaXM2cWdyQUNpdnM5RURhSmkwc1lhSGg1Y3RXeFpDR0JnWQphUFNJbW9PNnFxbmUz
dDZ0VzdlZVAzOSsvLzc5NTgrZmIvUndhRzZkbloxcjFxelp0R25UcVZPbmpoMDcxdWpoUUh0cDM4
QUtHbXYyCjFGV3RkWFoyVGt4TURBd003Tnk1YzJKaW9zeWNaODZjMmI5L3YrZGZNMmhrWk9UOCtm
TmJ0bXlwM1NhR2hvYjI3OS9mMzkrL1k4ZU8KTXJOMWRIU01qbzRlT25USWRRTDExOWFCRlRUV2JL
aXJPamgvL3Z6ZzRPQ21UWnY2Ky90bm5IbisvUG5wSzkxa3plam9hUG9ycGFhNgp1cnBXcmx4WmZw
NUxseTZGRUY1NTVaVmFEd2FZcGszZmc1WFArN0Vxb2E3cUl6M09sZFFWVktLcnE2dTd1L3QvLy9k
L0d6MFFhRHNDCkt3U05OUk4xVlRkVFUxTkZYeGw4NmFXWDdycnJydnFQaDJaUjVncEprcVQ4eTgx
QUxRaXMzOUJZcGFpcmhudnBwWmZ1dlBQT2wxNTYKcWRFRElhWno1ODd0MzcrLzZNUWNuRDE3OXY3
NzcxZmhrQjBDNjdjMFZpRjExWERxcWxXTmo0OFBEUTBWblpnYmpRV1pJckRlUW1QbApVMWNOcDY2
WUZZMEYyZEh1bnlJczVIT0ZLWFdWQlZkZmZmVWYvL0VmQzZ5bU16VTFOVG82V242ZVM1Y3VwYk1W
VHN5NC92U3pnVVdsCjE4eXNSd3pFSnJDSzBGanFLaU9XTGwzNkozL3lKeUVFejBrMG5jbkp5VXBt
bUp5Y0xKeVk4OHB2dlBIR1BYdjIzSGpqamJNZUxoQ2IKd0NxdW5SdExYV1ZLcnJFZWVlU1JSbytG
bVByNitqWnUzRmgwWW03VUZXU0t3Q3FwUFJ0TFhXVlEybGkzM1haYm93ZENUSjJkbmVrNwpQZ3Nu
NWtCZFFkWjRrM3M1N2ZhZWQzWFZjS1graVYyNmRLbC9PeW1qekJWU1RiY0JjeWF3WnRBK2phV3Vz
bURKa2lWcjE2Nzk2VTkvCjJ1aUIwQ0xPbkRsejhPREJtdjVoUktBb0x4SE9yQjFlSzFSWEdkSFoy
YmxxMWFvUXdvOS8vT1BoNGVFeWMxNjZkR2xrWk9UUW9VUDEKR2hxVm1weWNIQjhmMzd0M2IrMDJN
VDQrSGtJNGMrYk1mLzNYZjVXWnJiT3pjL255NVpzMmJhcmtrNGxBWEFLcklxM2RXT29xT3lZbgpK
OGZHeHZyNitsYXZYdTNQbTFDbGVmUG1kWGQzZDNaMlhyeDRzZEZqZ2JZanNDclZxbzJscmpJbDky
Zmo1bkE2b0tpSmlZbSt2cjZ0Clc3ZSsvUExMalI0THRKR09KRWthUFlabU1qNCtucjV3TXpnNDJB
S05wYTRBb0JhOHlYMTJXdWs5NytvS0FHcEVZTTFhYXpTV3VnS0EKMmhGWWM5SHNqYVd1QUtDbUJO
WWNOVzlqcVNzQXFEV0JOWGZOMkZqcUNnRHFRR0JWcGJrYVMxMEJRSDBJckdvMVMyT3BLd0NvRzRF
VgpRZlliUzEwQlFEMzVvdEZvTXZzZHBOWFgxYTVkdTNwN2U5VVZBRlRJTTFqUlpQTjVMSFVGQVBV
bnNHTEtXbU9wS3dCb0NJRVZXWFlhClMxMEJRS01JclBpeTBGanFDZ0FhU0dEVlJHTWJTMTBCUUdN
SnJGcHBWR09wS3dCb09JRlZRL1Z2TEhVRkFGa2dzR3Fybm8ybHJnQWcKSXdSV3pkV25zZFFWQUdT
SHdLcUhXamVXdWdLQVRCRllkVks3eGxKWEFKQTFBcXQrYXRGWTZnb0FNa2hnMVZYY3hsSlhBSkJO
QXF2ZQpZalZXV2xmcjE2OVhWd0NRTlFLckFhcHZyTFN1MXE1ZGUvcjA2YW1wcVZrdHE2NEFvTllF
Vm1OVTAxaHBYZDE2NjYyMzNYYmJ1blhyCkRoOCtYSGxqcVNzQXFBT0IxVEJ6YTZ4Y1hhMWJ0eTZF
Y05OTk4xWGVXT29LQU9wRFlEWFNiQnRyV2wybEttd3NkUVVBZFNPd0dxenkKeGlwYVY2a1pHMHRk
QVVBOUNhekdxNlN4eXRSVnFreGpxU3NBcURPQmxRbmxHNnV3cnI3MHBTOTk3V3RmbXpaYjBjWlNW
d0JRZndJcgpLMG8xMXVUazVPRGc0TFRucmxhdVhQbkpUMzV5eHNaU1Z3RFFFSjJOSGdDL2xUYlc4
UER3c21YTFFnZ0RBd1A5L2YzZDNkMXZmL3ZiClY2MWFsVDluK3ZWWG4vakVKMElJSC8vNHgvTi9k
Tk5OTjRVUURoOCt2R1RKa2pmZmZGTmRBVUQ5ZVFZclcvS2Z4OXF3WWNNTk45eHcKN3R5NXdyZFZY
Ymh3SVozNHhDYytVZlI1ck43ZVhuVUZBSTBpc0RJbjExaTl2YjBqSXlNclZxem82K3ViTnMrYU5X
dm16NStmVHYvRgpYL3pGdE1ZNmNPREEwTkNRdWdLQVJ2RVNZUmJsWGlzY0d4c2JHUmw1K3VtbmI3
MzExcVZMbCtabTZPdnJlL1RSUjQ4ZVBkcloyYmx1CjNicFRwMDdsZm5UZ3dJRjkrL2FwS3dCb29J
NGtTUm85Qm9vYkh4OGZIaDRPSVJ3OWV2VElrU08zMzM1N2ZtTVZwYTRBSUF1OFJKaGQKdWRjSzE2
OWZmODAxMXp6OTlOTm56NTR0TTcrNkFvQ01FRmlaVm5sanFTc0F5QTZCbFhXVk5KYTZBb0JNRVZo
Tm9IeGpxU3NBeUJwdgpjbThhK2U5NVAzNzgrTy8rN3UrKytlYWJJWVFYWDN4eHg0NGQ2Z29Bc2tO
Z05aTmNZNTA2ZGFxdnIyOXdjTENucDZlN3UzdlJva1hxCkNnQ3lRMkExbVZ4akxWeTRzTHU3ZTNo
NGVISnlVbDBCUUtZSXJPYVRhNnlPam80a1NkUVZBR1NOd0dwS3VjWlNWd0NRUVFLcldZMlAKajQr
T2p2YjI5cW9yQU1nYWdRVUFFSm52d1FJQUxUNGdrUUFBQmR0SlJFRlVpRXhnQVFCRUpyQUFBQ0lU
V0FBQWtRa3NBSURJQkJZQQpRR1FDQ3dBZ01vRUZBQkNad0FJQWlFeGdBUUJFSnJBQUFDSVRXQUFB
a1Frc0FJRElCQllBUUdRQ0N3QWdNb0VGQUJDWndBSUFpRXhnCkFRQkVKckFBQUNJVFdBQUFrUWtz
QUlESUJCWUFRR1FDQ3dBZ01vRUZBQkNad0FJQWlFeGdBUUJFSnJBQUFDSVRXQUFBa1Frc0FJREkK
QkJZQVFHUUNDd0FnTW9FRkFCQ1p3QUlBaUV4Z0FRQkVKckFBQUNJVFdBQUFrUWtzQUlESUJCWUFR
R1FDQ3dBZ01vRUZBQkNad0FJQQppRXhnQVFCRUpyQUFBQ0lUV0FBQWtRa3NBSURJQkJZQVFHUUND
d0FnTW9FRkFCQ1p3QUlBaUV4Z0FRQkVKckFBQUNJVFdBQUFrUWtzCkFJRElCQllBUUdRQ0N3QWdN
b0VGQUJDWndBSUFpRXhnQVFCRUpyQUFBQ0lUV0FBQWtRa3NBSURJQkJZQVFHUUNDd0FnTW9FRkFC
Q1oKd0FJQWlFeGdBUUJFSnJBQUFDSVRXQUFBa1Frc0FJRElCQllBUUdRQ0N3QWdNb0VGQUJDWndB
SUFpRXhnQVFCRUpyQUFBQ0lUV0FBQQprUWtzQUlESUJCWUFRR1FDQ3dBZ01vRUZBQkNad0FJQWlF
eGdBUUJFSnJBQUFDSVRXQUFBa1Frc0FJRElCQllBUUdRQ0N3QWdNb0VGCkFCQ1p3QUlBaUV4Z0FR
QkVKckFBQUNJVFdBQUFrUWtzQUlESUJCWUFRR1FDQ3dBZ01vRUZBQkNad0FJQWlFeGdBUUJFSnJB
QUFDSVQKV0FBQWtRa3NBSURJQkJZQVFHUUNDd0FnTW9FRkFCQ1p3QUlBaUV4Z0FRQkVKckFBQUNJ
VFdBQUFrUWtzQUlESUJCWUFRR1FDQ3dBZwpNb0VGQUJDWndBSUFpRXhnQVFCRUpyQUFBQ0lUV0FB
QWtRa3NBSURJQkJZQVFHUUNDd0FnTW9FRkFCQ1p3QUlBaUV4Z0FRQkVKckFBCkFDSVRXQUFBa1Fr
c0FJRElCQllBUUdRQ0N3QWdNb0VGQUJDWndBSUFpRXhnQVFCRUpyQUFBQ0lUV0FBQWtRa3NBSURJ
QkJZQVFHUUMKQ3dBZ01vRUZBQkNad0FJQWlFeGdBUUJFSnJBQUFDSVRXQUFBa1Frc0FJRElCQllB
UUdRQ0N3QWdNb0VGQUJDWndBSUFpRXhnQVFCRQpKckFBQUNJVFdBQUFrUWtzQUlESUJCWUFRR1FD
Q3dBZ01vRUZBQkNad0FJQWlFeGdBUUJFSnJBQUFDSVRXQUFBa1Frc0FJRElCQllBClFHUUNDd0Fn
TW9FRkFCQ1p3QUlBaUV4Z0FRQkVKckFBQUNJVFdBQUFrUWtzQUlESUJCWUFRR1FDQ3dBZ01vRUZB
QkNad0FJQWlFeGcKQVFCRUpyQUFBQ0lUV0FBQWtRa3NBSURJQkJZQVFHUUNDd0FnTW9FRkFCQ1p3
QUlBaUV4Z0FRQkVKckFBQUNJVFdBQUFrUWtzQUlESQpCQllBUUdRQ0N3QWdNb0VGQUJDWndBSUFp
RXhnQVFCRUpyQUFBQ0lUV0FBQWtRa3NBSURJQkJZQVFHUUNDd0FnTW9FRkFCQ1p3QUlBCmlFeGdB
UUJFSnJBQUFDSVRXQUFBa1Frc0FJRElCQllBUUdRQ0N3QWdNb0VGQUJDWndBSUFpRXhnQVFCRUpy
QUFBQ0lUV0FBQWtRa3MKQUlESUJCWUFRR1FDQ3dBZ01vRUZBQkNad0FJQWlFeGdBUUJFSnJBQUFD
SVRXQUFBa1Frc0FJRElCQllBUUdRQ0N3QWdNb0VGQUJDWgp3QUlBaUV4Z0FRQkVKckFBQUNJVFdB
QUFrUWtzQUlESUJCWUFRR1FDQ3dBZ01vRUZBQkNad0FJQWlFeGdBUUJFSnJBQUFDSVRXQUFBCmtR
a3NBSURJQkJZQVFHUUNDd0FnTW9FRkFCQ1p3QUlBaUV4Z0FRQkVKckFBQUNJVFdBQUFrUWtzQUlE
SUJCWUFRR1FDQ3dBZ01vRUYKQUJDWndBSUFpRXhnQVFCRUpyQUFBQ0lUV0FBQWtRa3NBSURJQkJZ
QVFHUUNDd0FnTW9FRkFCQ1p3QUlBaUV4Z0FRQkVKckFBQUNJVApXQUFBa1Frc0FJRElCQllBUUdR
Q0N3QWdNb0VGQUJDWndBSUFpRXhnQVFCRUpyQUFBQ0lUV0FBQWtRa3NBSURJQkJZQVFHUUNDd0Fn
Ck1vRUZBQkNad0FJQWlFeGdBUUJFSnJBQUFDSVRXQUFBa1Frc0FJRElCQllBUUdRQ0N3QWdNb0VG
QUJDWndBSUFpRXhnQVFCRUpyQUEKQUNJVFdBQUFrUWtzQUlESUJCWUFRR1FDQ3dBZ01vRUZBQkNa
d0FJQWlFeGdBUUJFSnJBQUFDSVRXQUFBa1Frc0FJRElCQllBUUdRQwpDd0FnTW9FRkFCQ1p3QUlB
aUV4Z0FRQkVKckFBQUNJVFdBQUFrUWtzQUlESUJCWUFRR1FDQ3dBZ01vRUZBQkNad0FJQWlFeGdB
UUJFCkpyQUFBQ0lUV0FBQWtRa3NBSURJQkJZQVFHUUNDd0FnTW9FRkFCQ1p3QUlBaUV4Z0FRQkVK
ckFBQUNMN1A3dW9VeStrOG0rZkFBQUEKQUVsRlRrU3VRbUNDCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179318</attachid>
            <date>2012-12-13 12:51:06 -0800</date>
            <delta_ts>2012-12-13 13:52:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101779-20121213124826.patch</filename>
            <type>text/plain</type>
            <size>108956</size>
            <attacher name="Levi Weintraub">leviw</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNzYyOSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzOSBAQAorMjAxMi0xMi0xMyAgTGV2aSBX
ZWludHJhdWIgIDxsZXZpd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUHVzaCBwaXhlbCBzbmFw
cGluZyBsb2dpYyBpbnRvIFRyYW5zZm9ybVN0YXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE3NzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgb2xkIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zIGJl
aGF2aW9yIGZlbGwgYXBhcnQgd2hlbiB0aGVyZSB3YXMgY29udGVudCBuZXN0ZWQgaW4KKyAgICAg
ICAgbXVsdGlwbGUgbGV2ZWxzIG9mIGNvbnRhaW5lcnMgd2l0aCBzdWItcGl4ZWwgb2Zmc2V0cy4g
VGhlIHBvaW50IG9mIHRoaXMgZmxhZyB3YXMgdG8KKyAgICAgICAgbWlycm9yIHRoZSBwaXhlbCBz
bmFwcGluZyB0aGF0IG9jY3VycyBpbiBwYWludCwgd2hlcmUgb2Zmc2V0cyBhcmUgYWNjdW11bGF0
ZWQgYm90dG9tLQorICAgICAgICB1cCB0aHJvdWdoIHRoZSByZW5kZXIgdHJlZSBhbmQgc25hcHBl
ZCBhdCB0aGUgZW5kLiBUaGlzIGNoYW5nZSBlbGltaW5hdGVzIHRoaXMgZmxhZworICAgICAgICBh
bmQgcHVzaGVzIHBpeGVsIHNuYXBwaW5nIGxvZ2ljIGRvd24gaW50byBUcmFuc2Zvcm1TdGF0ZS4K
KworICAgICAgICBUcmFuc2Zvcm1TdGF0ZSBub3cgdHJhY2tzIGEgTGF5b3V0U2l6ZSBhY2N1bXVs
YXRlZCBvZmZzZXQgd2hlbiB0aGVyZSdzIG5vIHRyYW5zZm9ybQorICAgICAgICBvciB3ZSdyZSBq
dXN0IHRyYW5zbGF0aW5nLiBXZSB0aGVuIHNuYXAgYW5kIGFwcGx5IHRoaXMgb2Zmc2V0IGJlZm9y
ZSBhY2N1bXVsYXRpbmcKKyAgICAgICAgdmFsdWVzIGludG8gYSB0cmFuc2Zvcm0sIGFuZCB3aGVu
IHJldHVybmluZyBwbGFuYXIgY29vcmRpbmF0ZXMgdG8gY2FsbGVycy4KKworICAgICAgICBUZXN0
OiBmYXN0L3N1Yi1waXhlbC90cmFuc2Zvcm1lZC1pZnJhbWUtY29weS1vbi1zY3JvbGwuaHRtbCBh
ZGRlZCwKKyAgICAgICAgICAgICAgZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWlmcmFtZS1jb3B5
LW9uLXNjcm9sbC5odG1sIG1vZGlmaWVkIHRvIGFsc28gY2F0Y2ggdGhpcyBidWcuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybVN0YXRlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlRyYW5zZm9ybVN0YXRlOjpvcGVyYXRvcj0pOiBQYXNzIGFjY3VtdWxh
dGVkIG9mZnNldC4KKyAgICAgICAgKFdlYkNvcmU6OlRyYW5zZm9ybVN0YXRlOjp0cmFuc2xhdGVU
cmFuc2Zvcm0pOiBFeHRyYWN0ZWQgdGhpcyBmdW5jdGlvbmFsaXR5IGZvcgorICAgICAgICByZS11
c2Ugd2hlbiBhcHBseWluZyB0aGUgYWNjdW11bGF0ZWQgb2Zmc2V0LCBvciBhY2N1bXVsYXRpbmcg
ZnJvbSBhIGNhbGwgdG8gbW92ZS4KKyAgICAgICAgKFdlYkNvcmU6OlRyYW5zZm9ybVN0YXRlOjp0
cmFuc2xhdGVNYXBwZWRDb29yZGluYXRlcyk6IFNhbWUgYXMgYWJvdmUgd2hlbiB3ZSdyZSBub3QK
KyAgICAgICAgYWNjdWxhdGluZyBpbnRvIGEgdHJhbnNmb3JtLgorICAgICAgICAoV2ViQ29yZTo6
VHJhbnNmb3JtU3RhdGU6Om1vdmUpOiBDaGFuZ2VkIHRvIGFjY3VtdWxhdGUgaW50byBtX2FjY3Vt
dWxhdGVkT2Zmc2V0IHdoZW4KKyAgICAgICAgbm90IGFjY3VtdWxhdGluZyBpbnRvIGEgdHJhbnNm
b3JtLgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNmb3JtU3RhdGU6OmFwcGx5QWNjdW11bGF0ZWRP
ZmZzZXQpOgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNmb3JtU3RhdGU6OmFwcGx5VHJhbnNmb3Jt
KTogQXBwbGllcyB0aGUgYWNjdW11bGF0ZWQgb2Zmc2V0IGJlZm9yZSB0aGUKKyAgICAgICAgdHJh
bnNmb3JtLgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNmb3JtU3RhdGU6OmZsYXR0ZW4pOiBEaXR0
byBmb3IgZmxhdHRlbmluZy4KKyAgICAgICAgKFdlYkNvcmU6OlRyYW5zZm9ybVN0YXRlOjptYXBw
ZWRQb2ludCk6IFRyYW5zbGF0ZXMgYnkgdGhlIGFjY3VtdWxhdGVkIG9mZnNldCBiZWZvcmUKKyAg
ICAgICAgcmV0dXJuaW5nLgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNmb3JtU3RhdGU6Om1hcHBl
ZFF1YWQpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1Ry
YW5zZm9ybVN0YXRlLmg6CisgICAgICAgIChUcmFuc2Zvcm1TdGF0ZSk6IEFkZGVkIG1fYWNjdW11
bGF0ZWRPZmZzZXQuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckdlb21ldHJ5TWFwLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdlb21ldHJ5TWFwOjptYXBUb0NvbnRhaW5lcik6IFdo
ZW4gbm90IHVzaW5nIGEgdHJhbnNmb3JtLCB3ZSBzdGlsbCBuZWVkCisgICAgICAgIHRvIHNuYXAg
b3VyIG9mZnNldCBiZWZvcmUgYXBwbHlpbmcgdG8gb3VyIGZsb2F0IHJlc3VsdC4gQWxzbywgZmxh
dHRlbiB3aGVuIHdlIGhhdmUgYQorICAgICAgICBub24tdW5pZm9ybSBzdGVwLgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJHZW9tZXRyeU1hcC5oOgorICAgICAgICAoUmVuZGVyR2VvbWV0cnlN
YXApOiBSZW1vdmUgdXNlIG9mIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLgorCisgICAgICAgIEV2
ZXJ5dGhpbmcgYmVsb3cgc2ltcGx5IGRyb3BzIHRoZSB1c2Ugb2YgU25hcE9mZnNldEZvclRyYW5z
Zm9ybXM6CisKKyAgICAgICAgKiBkb20vQ29udGFpbmVyTm9kZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDb250YWluZXJOb2RlOjpnZXRVcHBlckxlZnRDb3JuZXIpOgorICAgICAgICAqIGRvbS9N
b3VzZVJlbGF0ZWRFdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb3VzZVJlbGF0ZWRFdmVu
dDo6Y29tcHV0ZVJlbGF0aXZlUG9zaXRpb24pOgorICAgICAgICAqIGVkaXRpbmcvRnJhbWVTZWxl
Y3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FyZXRCYXNlOjphYnNvbHV0ZUJvdW5kc0Zv
ckxvY2FsUmVjdCk6CisgICAgICAgICogZWRpdGluZy9SZW5kZXJlZFBvc2l0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlcmVkUG9zaXRpb246OmFic29sdXRlUmVjdCk6CisgICAgICAg
ICogZWRpdGluZy9WaXNpYmxlUG9zaXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VmlzaWJs
ZVBvc2l0aW9uOjphYnNvbHV0ZUNhcmV0Qm91bmRzKToKKyAgICAgICAgKiBodG1sL0hUTUxTZWxl
Y3RFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50OjpsaXN0
Qm94RGVmYXVsdEV2ZW50SGFuZGxlcik6CisgICAgICAgICogaHRtbC9zaGFkb3cvU2xpZGVyVGh1
bWJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNsaWRlclRodW1iRWxlbWVudDo6c2V0
UG9zaXRpb25Gcm9tUG9pbnQpOgorICAgICAgICAqIGh0bWwvc2hhZG93L1NwaW5CdXR0b25FbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNwaW5CdXR0b25FbGVtZW50OjpkZWZhdWx0RXZl
bnRIYW5kbGVyKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZVZpZXc6OmNvbnZlcnRGcm9tUmVuZGVyZXIpOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVWaWV3Ojpjb252ZXJ0VG9SZW5kZXJlcik6CisgICAgICAgICogcmVuZGVyaW5nL0lubGlu
ZVRleHRCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lVGV4dEJveDo6cGFpbnREb2N1
bWVudE1hcmtlcik6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVUZXh0Qm94OjpwYWludFRleHRN
YXRjaE1hcmtlcik6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVUZXh0Qm94Ojpjb21wdXRlUmVj
dEZvclJlcGxhY2VtZW50TWFya2VyKToKKyAgICAgICAgKiByZW5kZXJpbmcvTGF5b3V0U3RhdGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0U3RhdGU6OkxheW91dFN0YXRlKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJv
eDo6bWFwTG9jYWxUb0NvbnRhaW5lcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OnB1
c2hNYXBwaW5nVG9Db250YWluZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guaDoK
KyAgICAgICAgKFJlbmRlckJveCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveE1vZGVs
T2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveE1vZGVsT2JqZWN0Ojpjb21w
dXRlU3RpY2t5UG9zaXRpb25Db25zdHJhaW50cyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckVtYmVkZGVkT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckVtYmVkZGVkT2Jq
ZWN0Ojppc0luVW5hdmFpbGFibGVQbHVnaW5JbmRpY2F0b3IpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJGcmFtZVNldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGcmFtZVNldDo6
dXNlclJlc2l6ZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJJbmxpbmU6Om1hcExvY2FsVG9Db250YWluZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVySW5saW5lOjpwdXNoTWFwcGluZ1RvQ29udGFpbmVyKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVySW5saW5lLmg6CisgICAgICAgIChSZW5kZXJJbmxpbmUpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllcjo6YWJzb2x1dGVUb0NvbnRlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyOjpzY3JvbGxUbyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6Y2hpbGRy
ZW5DbGlwUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2VsZkNsaXBSZWN0
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6Y29udGVudHNWaXNpYmxlKToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyTWVkaWFDb250cm9scy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJNZWRpYUNvbnRyb2xzOjp2b2x1bWVTbGlkZXJPZmZzZXRGcm9tTXV0ZUJ1dHRvbik6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlck1lbnVMaXN0OjpzaG93UG9wdXApOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJP
YmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjphYnNvbHV0ZUZvY3Vz
UmluZ1F1YWRzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0Lmg6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4
dDo6YWJzb2x1dGVSZWN0c0ZvclJhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHQ6
OmFic29sdXRlUXVhZHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dDo6YWJzb2x1dGVR
dWFkc0ZvclJhbmdlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OnZvbHVtZVNsaWRlck9mZnNldEZyb21NdXRlQnV0
dG9uKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVmlldy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJWaWV3OjpzZWxlY3Rpb25Cb3VuZHMpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJWaWV3Lmg6CisgICAgICAgIChSZW5kZXJWaWV3KToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyV2lkZ2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlcldpZGdldDo6dXBkYXRl
V2lkZ2V0R2VvbWV0cnkpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWln
bk9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdGb3JlaWduT2JqZWN0Ojpt
YXBMb2NhbFRvQ29udGFpbmVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0Zv
cmVpZ25PYmplY3QuaDoKKyAgICAgICAgKFJlbmRlclNWR0ZvcmVpZ25PYmplY3QpOgorICAgICAg
ICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclNWR0lubGluZTo6bWFwTG9jYWxUb0NvbnRhaW5lcik6CisgICAgICAgICogcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuaDoKKyAgICAgICAgKFJlbmRlclNWR0lubGluZSk6Cisg
ICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJTVkdNb2RlbE9iamVjdDo6bWFwTG9jYWxUb0NvbnRhaW5lcik6Cisg
ICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5oOgorICAgICAgICAo
UmVuZGVyU1ZHTW9kZWxPYmplY3QpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
Um9vdC5oOgorICAgICAgICAoUmVuZGVyU1ZHUm9vdCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1RleHQ6Om1h
cExvY2FsVG9Db250YWluZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4
dC5oOgorICAgICAgICAoUmVuZGVyU1ZHVGV4dCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9T
VkdSZW5kZXJTdXBwb3J0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlbmRlclN1cHBvcnQ6
Om1hcExvY2FsVG9Db250YWluZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvU1ZHUmVuZGVy
U3VwcG9ydC5oOgorICAgICAgICAoU1ZHUmVuZGVyU3VwcG9ydCk6CisKIDIwMTItMTItMTMgIFBh
cnRoIFBhdGVsICA8cGFycGF0ZWxAcmltLmNvbT4sIE1heCBGZWlsIDxtZmVpbEByaW0uY29tPgog
CiAgICAgICAgIEFsbG93IHBsdWdpbnMgdG8gYmUgZGlzYWJsZWQgYnkgc2hhcmVkIGxpYnJhcnkg
ZmlsZW5hbWUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAJKHJldmlzaW9u
IDEzNzQ4NikKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtODY0LDcgKzg2NCw3IEBAIGJvb2wgQ29udGFpbmVyTm9kZTo6Z2V0VXBwZXJM
ZWZ0Q29ybmVyKEYKICAgICAgICAgICAgICAgICBSZW5kZXJCb3gqIGJveCA9IHRvUmVuZGVyQm94
KG8pOwogICAgICAgICAgICAgICAgIHBvaW50Lm1vdmVCeShib3gtPmxvY2F0aW9uKCkpOwogICAg
ICAgICAgICAgfQotICAgICAgICAgICAgcG9pbnQgPSBvLT5jb250YWluZXIoKS0+bG9jYWxUb0Fi
c29sdXRlKHBvaW50LCBVc2VUcmFuc2Zvcm1zIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpOwor
ICAgICAgICAgICAgcG9pbnQgPSBvLT5jb250YWluZXIoKS0+bG9jYWxUb0Fic29sdXRlKHBvaW50
LCBVc2VUcmFuc2Zvcm1zKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAg
ICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vTW91c2VSZWxhdGVkRXZlbnQuY3BwCShyZXZp
c2lvbiAxMzc0ODYpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vTW91c2VSZWxhdGVkRXZlbnQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xNjUsNyArMTY1LDcgQEAgdm9pZCBNb3VzZVJlbGF0ZWRFdmVu
dDo6Y29tcHV0ZVJlbGF0aXZlUAogCiAgICAgLy8gQWRqdXN0IG9mZnNldExvY2F0aW9uIHRvIGJl
IHJlbGF0aXZlIHRvIHRoZSB0YXJnZXQncyBwb3NpdGlvbi4KICAgICBpZiAoUmVuZGVyT2JqZWN0
KiByID0gdGFyZ2V0Tm9kZS0+cmVuZGVyZXIoKSkgewotICAgICAgICBGbG9hdFBvaW50IGxvY2Fs
UG9zID0gci0+YWJzb2x1dGVUb0xvY2FsKGFic29sdXRlTG9jYXRpb24oKSwgVXNlVHJhbnNmb3Jt
cyB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKTsKKyAgICAgICAgRmxvYXRQb2ludCBsb2NhbFBv
cyA9IHItPmFic29sdXRlVG9Mb2NhbChhYnNvbHV0ZUxvY2F0aW9uKCksIFVzZVRyYW5zZm9ybXMp
OwogICAgICAgICBtX29mZnNldExvY2F0aW9uID0gcm91bmRlZExheW91dFBvaW50KGxvY2FsUG9z
KTsKICAgICAgICAgZmxvYXQgc2NhbGVGYWN0b3IgPSAxIC8gKHBhZ2Vab29tRmFjdG9yKHRoaXMp
ICogZnJhbWVTY2FsZUZhY3Rvcih0aGlzKSk7CiAgICAgICAgIGlmIChzY2FsZUZhY3RvciAhPSAx
LjBmKQpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAJKHJl
dmlzaW9uIDEzNzQ4NikKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24u
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzEyLDcgKzEzMTIsNyBAQCBJbnRSZWN0IENhcmV0QmFz
ZTo6YWJzb2x1dGVCb3VuZHNGb3JMb2NhCiAgICAgTGF5b3V0UmVjdCBsb2NhbFJlY3QocmVjdCk7
CiAgICAgaWYgKGNhcmV0UGFpbnRlci0+aXNCb3goKSkKICAgICAgICAgdG9SZW5kZXJCb3goY2Fy
ZXRQYWludGVyKS0+ZmxpcEZvcldyaXRpbmdNb2RlKGxvY2FsUmVjdCk7Ci0gICAgcmV0dXJuIGNh
cmV0UGFpbnRlci0+bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3QobG9jYWxSZWN0KSwgU25h
cE9mZnNldEZvclRyYW5zZm9ybXMpLmVuY2xvc2luZ0JvdW5kaW5nQm94KCk7CisgICAgcmV0dXJu
IGNhcmV0UGFpbnRlci0+bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3QobG9jYWxSZWN0KSku
ZW5jbG9zaW5nQm91bmRpbmdCb3goKTsKIH0KIAogSW50UmVjdCBGcmFtZVNlbGVjdGlvbjo6YWJz
b2x1dGVDYXJldEJvdW5kcygpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbmRlcmVk
UG9zaXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVuZGVy
ZWRQb3NpdGlvbi5jcHAJKHJldmlzaW9uIDEzNzQ4NikKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvUmVuZGVyZWRQb3NpdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzMCw3ICsyMzAsNyBA
QCBJbnRSZWN0IFJlbmRlcmVkUG9zaXRpb246OmFic29sdXRlUmVjdChMCiAgICAgICAgIHJldHVy
biBJbnRSZWN0KCk7CiAKICAgICBJbnRSZWN0IGxvY2FsUmVjdCA9IHBpeGVsU25hcHBlZEludFJl
Y3QobV9yZW5kZXJlci0+bG9jYWxDYXJldFJlY3QobV9pbmxpbmVCb3gsIG1fb2Zmc2V0LCBleHRy
YVdpZHRoVG9FbmRPZkxpbmUpKTsKLSAgICByZXR1cm4gbG9jYWxSZWN0ID09IEludFJlY3QoKSA/
IEludFJlY3QoKSA6IG1fcmVuZGVyZXItPmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRSZWN0KGxv
Y2FsUmVjdCksIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKS5lbmNsb3NpbmdCb3VuZGluZ0JveCgp
OworICAgIHJldHVybiBsb2NhbFJlY3QgPT0gSW50UmVjdCgpID8gSW50UmVjdCgpIDogbV9yZW5k
ZXJlci0+bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3QobG9jYWxSZWN0KSkuZW5jbG9zaW5n
Qm91bmRpbmdCb3goKTsKIH0KIAogYm9vbCByZW5kZXJPYmplY3RDb250YWluc1Bvc2l0aW9uKFJl
bmRlck9iamVjdCogdGFyZ2V0LCBjb25zdCBQb3NpdGlvbiYgcG9zaXRpb24pCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVQb3NpdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlUG9zaXRpb24uY3BwCShyZXZpc2lvbiAxMzc0ODYp
CisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVQb3NpdGlvbi5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTYyNCw3ICs2MjQsNyBAQCBJbnRSZWN0IFZpc2libGVQb3NpdGlvbjo6YWJzb2x1
dGVDYXJldEJvCiAgICAgaWYgKGxvY2FsUmVjdC5pc0VtcHR5KCkgfHwgIXJlbmRlcmVyKQogICAg
ICAgICByZXR1cm4gSW50UmVjdCgpOwogCi0gICAgcmV0dXJuIHJlbmRlcmVyLT5sb2NhbFRvQWJz
b2x1dGVRdWFkKEZsb2F0UmVjdChsb2NhbFJlY3QpLCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jtcyku
ZW5jbG9zaW5nQm91bmRpbmdCb3goKTsKKyAgICByZXR1cm4gcmVuZGVyZXItPmxvY2FsVG9BYnNv
bHV0ZVF1YWQoRmxvYXRSZWN0KGxvY2FsUmVjdCkpLmVuY2xvc2luZ0JvdW5kaW5nQm94KCk7CiB9
CiAKIGludCBWaXNpYmxlUG9zaXRpb246OmxpbmVEaXJlY3Rpb25Qb2ludEZvckJsb2NrRGlyZWN0
aW9uTmF2aWdhdGlvbigpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxl
Y3RFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxl
Y3RFbGVtZW50LmNwcAkocmV2aXNpb24gMTM3NDg2KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MU2VsZWN0RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyODYsNyArMTI4Niw3IEBA
IHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6Omxpc3RCb3hEZWZhdWx0RXYKIAogICAgICAgICAvLyBD
b252ZXJ0IHRvIGNvb3JkcyByZWxhdGl2ZSB0byB0aGUgbGlzdCBib3ggaWYgbmVlZGVkLgogICAg
ICAgICBNb3VzZUV2ZW50KiBtb3VzZUV2ZW50ID0gc3RhdGljX2Nhc3Q8TW91c2VFdmVudCo+KGV2
ZW50KTsKLSAgICAgICAgSW50UG9pbnQgbG9jYWxPZmZzZXQgPSByb3VuZGVkSW50UG9pbnQocmVu
ZGVyZXIoKS0+YWJzb2x1dGVUb0xvY2FsKG1vdXNlRXZlbnQtPmFic29sdXRlTG9jYXRpb24oKSwg
VXNlVHJhbnNmb3JtcyB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKSk7CisgICAgICAgIEludFBv
aW50IGxvY2FsT2Zmc2V0ID0gcm91bmRlZEludFBvaW50KHJlbmRlcmVyKCktPmFic29sdXRlVG9M
b2NhbChtb3VzZUV2ZW50LT5hYnNvbHV0ZUxvY2F0aW9uKCksIFVzZVRyYW5zZm9ybXMpKTsKICAg
ICAgICAgaW50IGxpc3RJbmRleCA9IHRvUmVuZGVyTGlzdEJveChyZW5kZXJlcigpKS0+bGlzdElu
ZGV4QXRPZmZzZXQodG9TaXplKGxvY2FsT2Zmc2V0KSk7CiAgICAgICAgIGlmIChsaXN0SW5kZXgg
Pj0gMCkgewogICAgICAgICAgICAgaWYgKCFkaXNhYmxlZCgpKSB7CkBAIC0xMzA2LDcgKzEzMDYs
NyBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpsaXN0Qm94RGVmYXVsdEV2CiAgICAgICAgIGlm
IChtb3VzZUV2ZW50LT5idXR0b24oKSAhPSBMZWZ0QnV0dG9uIHx8ICFtb3VzZUV2ZW50LT5idXR0
b25Eb3duKCkpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgSW50UG9pbnQgbG9jYWxP
ZmZzZXQgPSByb3VuZGVkSW50UG9pbnQocmVuZGVyZXIoKS0+YWJzb2x1dGVUb0xvY2FsKG1vdXNl
RXZlbnQtPmFic29sdXRlTG9jYXRpb24oKSwgVXNlVHJhbnNmb3JtcyB8IFNuYXBPZmZzZXRGb3JU
cmFuc2Zvcm1zKSk7CisgICAgICAgIEludFBvaW50IGxvY2FsT2Zmc2V0ID0gcm91bmRlZEludFBv
aW50KHJlbmRlcmVyKCktPmFic29sdXRlVG9Mb2NhbChtb3VzZUV2ZW50LT5hYnNvbHV0ZUxvY2F0
aW9uKCksIFVzZVRyYW5zZm9ybXMpKTsKICAgICAgICAgaW50IGxpc3RJbmRleCA9IHRvUmVuZGVy
TGlzdEJveChyZW5kZXJlcigpKS0+bGlzdEluZGV4QXRPZmZzZXQodG9TaXplKGxvY2FsT2Zmc2V0
KSk7CiAgICAgICAgIGlmIChsaXN0SW5kZXggPj0gMCkgewogICAgICAgICAgICAgaWYgKCFkaXNh
YmxlZCgpKSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVs
ZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRl
clRodW1iRWxlbWVudC5jcHAJKHJldmlzaW9uIDEzNzQ4NikKKysrIFNvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1OSw3
ICsyNTksNyBAQCB2b2lkIFNsaWRlclRodW1iRWxlbWVudDo6c2V0UG9zaXRpb25Gcm9tCiAgICAg
ICAgIHJldHVybjsKIAogICAgIGlucHV0LT5zZXRUZXh0QXNPZkxhc3RGb3JtQ29udHJvbENoYW5n
ZUV2ZW50KGlucHV0LT52YWx1ZSgpKTsKLSAgICBMYXlvdXRQb2ludCBvZmZzZXQgPSByb3VuZGVk
TGF5b3V0UG9pbnQoaW5wdXQtPnJlbmRlcmVyKCktPmFic29sdXRlVG9Mb2NhbChwb2ludCwgVXNl
VHJhbnNmb3JtcyB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKSk7CisgICAgTGF5b3V0UG9pbnQg
b2Zmc2V0ID0gcm91bmRlZExheW91dFBvaW50KGlucHV0LT5yZW5kZXJlcigpLT5hYnNvbHV0ZVRv
TG9jYWwocG9pbnQsIFVzZVRyYW5zZm9ybXMpKTsKICAgICBib29sIGlzVmVydGljYWwgPSBoYXNW
ZXJ0aWNhbEFwcGVhcmFuY2UoaW5wdXQpOwogICAgIGJvb2wgaXNMZWZ0VG9SaWdodERpcmVjdGlv
biA9IHJlbmRlckJveCgpLT5zdHlsZSgpLT5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCk7CiAgICAg
TGF5b3V0VW5pdCB0cmFja1NpemU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9T
cGluQnV0dG9uRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvU3BpbkJ1dHRvbkVsZW1lbnQuY3BwCShyZXZpc2lvbiAxMzc0ODYpCisrKyBTb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9TcGluQnV0dG9uRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTkxLDcgKzkxLDcgQEAgdm9pZCBTcGluQnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFu
ZAogICAgIH0KIAogICAgIE1vdXNlRXZlbnQqIG1vdXNlRXZlbnQgPSBzdGF0aWNfY2FzdDxNb3Vz
ZUV2ZW50Kj4oZXZlbnQpOwotICAgIEludFBvaW50IGxvY2FsID0gcm91bmRlZEludFBvaW50KGJv
eC0+YWJzb2x1dGVUb0xvY2FsKG1vdXNlRXZlbnQtPmFic29sdXRlTG9jYXRpb24oKSwgVXNlVHJh
bnNmb3JtcyB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKSk7CisgICAgSW50UG9pbnQgbG9jYWwg
PSByb3VuZGVkSW50UG9pbnQoYm94LT5hYnNvbHV0ZVRvTG9jYWwobW91c2VFdmVudC0+YWJzb2x1
dGVMb2NhdGlvbigpLCBVc2VUcmFuc2Zvcm1zKSk7CiAgICAgaWYgKG1vdXNlRXZlbnQtPnR5cGUo
KSA9PSBldmVudE5hbWVzKCkubW91c2Vkb3duRXZlbnQgJiYgbW91c2VFdmVudC0+YnV0dG9uKCkg
PT0gTGVmdEJ1dHRvbikgewogICAgICAgICBpZiAoYm94LT5waXhlbFNuYXBwZWRCb3JkZXJCb3hS
ZWN0KCkuY29udGFpbnMobG9jYWwpKSB7CiAgICAgICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGZ1
bmN0aW9ucyBvZiBIVE1MSW5wdXRFbGVtZW50IG1heSBydW4gSmF2YVNjcmlwdApJbmRleDogU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAkocmV2aXNpb24gMTM3NDg2KQorKysgU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNTA3LDcgKzM1MDcsNyBA
QCB2b2lkIEZyYW1lVmlldzo6YWRqdXN0UGFnZUhlaWdodERlcHJlY2F0CiAKIEludFJlY3QgRnJh
bWVWaWV3Ojpjb252ZXJ0RnJvbVJlbmRlcmVyKGNvbnN0IFJlbmRlck9iamVjdCogcmVuZGVyZXIs
IGNvbnN0IEludFJlY3QmIHJlbmRlcmVyUmVjdCkgY29uc3QKIHsKLSAgICBJbnRSZWN0IHJlY3Qg
PSByZW5kZXJlci0+bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3QocmVuZGVyZXJSZWN0KSwg
U25hcE9mZnNldEZvclRyYW5zZm9ybXMpLmVuY2xvc2luZ0JvdW5kaW5nQm94KCk7CisgICAgSW50
UmVjdCByZWN0ID0gcmVuZGVyZXItPmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRSZWN0KHJlbmRl
cmVyUmVjdCkpLmVuY2xvc2luZ0JvdW5kaW5nQm94KCk7CiAKICAgICAvLyBDb252ZXJ0IGZyb20g
cGFnZSAoImFic29sdXRlIikgdG8gRnJhbWVWaWV3IGNvb3JkaW5hdGVzLgogICAgIGlmICghZGVs
ZWdhdGVzU2Nyb2xsaW5nKCkpCkBAIC0zNTI2LDEzICszNTI2LDEzIEBAIEludFJlY3QgRnJhbWVW
aWV3Ojpjb252ZXJ0VG9SZW5kZXJlcihjb24KIAogICAgIC8vIEZJWE1FOiB3ZSBkb24ndCBoYXZl
IGEgd2F5IHRvIG1hcCBhbiBhYnNvbHV0ZSByZWN0IGRvd24gdG8gYSBsb2NhbCBxdWFkLCBzbyBq
dXN0CiAgICAgLy8gbW92ZSB0aGUgcmVjdCBmb3Igbm93LgotICAgIHJlY3Quc2V0TG9jYXRpb24o
cm91bmRlZEludFBvaW50KHJlbmRlcmVyLT5hYnNvbHV0ZVRvTG9jYWwocmVjdC5sb2NhdGlvbigp
LCBVc2VUcmFuc2Zvcm1zIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpKSk7CisgICAgcmVjdC5z
ZXRMb2NhdGlvbihyb3VuZGVkSW50UG9pbnQocmVuZGVyZXItPmFic29sdXRlVG9Mb2NhbChyZWN0
LmxvY2F0aW9uKCksIFVzZVRyYW5zZm9ybXMpKSk7CiAgICAgcmV0dXJuIHJlY3Q7CiB9CiAKIElu
dFBvaW50IEZyYW1lVmlldzo6Y29udmVydEZyb21SZW5kZXJlcihjb25zdCBSZW5kZXJPYmplY3Qq
IHJlbmRlcmVyLCBjb25zdCBJbnRQb2ludCYgcmVuZGVyZXJQb2ludCkgY29uc3QKIHsKLSAgICBJ
bnRQb2ludCBwb2ludCA9IHJvdW5kZWRJbnRQb2ludChyZW5kZXJlci0+bG9jYWxUb0Fic29sdXRl
KHJlbmRlcmVyUG9pbnQsIFVzZVRyYW5zZm9ybXMgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jtcykp
OworICAgIEludFBvaW50IHBvaW50ID0gcm91bmRlZEludFBvaW50KHJlbmRlcmVyLT5sb2NhbFRv
QWJzb2x1dGUocmVuZGVyZXJQb2ludCwgVXNlVHJhbnNmb3JtcykpOwogCiAgICAgLy8gQ29udmVy
dCBmcm9tIHBhZ2UgKCJhYnNvbHV0ZSIpIHRvIEZyYW1lVmlldyBjb29yZGluYXRlcy4KICAgICBp
ZiAoIWRlbGVnYXRlc1Njcm9sbGluZygpKQpAQCAtMzU0OCw3ICszNTQ4LDcgQEAgSW50UG9pbnQg
RnJhbWVWaWV3Ojpjb252ZXJ0VG9SZW5kZXJlcihjbwogICAgIGlmICghZGVsZWdhdGVzU2Nyb2xs
aW5nKCkpCiAgICAgICAgIHBvaW50ICs9IEludFNpemUoc2Nyb2xsWCgpLCBzY3JvbGxZKCkpOwog
Ci0gICAgcmV0dXJuIHJvdW5kZWRJbnRQb2ludChyZW5kZXJlci0+YWJzb2x1dGVUb0xvY2FsKHBv
aW50LCBVc2VUcmFuc2Zvcm1zIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpKTsKKyAgICByZXR1
cm4gcm91bmRlZEludFBvaW50KHJlbmRlcmVyLT5hYnNvbHV0ZVRvTG9jYWwocG9pbnQsIFVzZVRy
YW5zZm9ybXMpKTsKIH0KIAogSW50UmVjdCBGcmFtZVZpZXc6OmNvbnZlcnRUb0NvbnRhaW5pbmdW
aWV3KGNvbnN0IEludFJlY3QmIGxvY2FsUmVjdCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtU3RhdGUuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNm
b3JtU3RhdGUuY3BwCShyZXZpc2lvbiAxMzc0ODYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybVN0YXRlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzIsNiArMzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFRyYW5zZm9ybVN0YXRlJiBU
cmFuc2Zvcm1TdGF0ZTo6b3BlcmF0b3I9KGNvbnN0IFRyYW5zZm9ybVN0YXRlJiBvdGhlcikKIHsK
KyAgICBtX2FjY3VtdWxhdGVkT2Zmc2V0ID0gb3RoZXIubV9hY2N1bXVsYXRlZE9mZnNldDsKICAg
ICBtX21hcFBvaW50ID0gb3RoZXIubV9tYXBQb2ludDsKICAgICBtX21hcFF1YWQgPSBvdGhlci5t
X21hcFF1YWQ7CiAgICAgaWYgKG1fbWFwUG9pbnQpCkBAIC00OSwzMiArNTAsNTUgQEAgVHJhbnNm
b3JtU3RhdGUmIFRyYW5zZm9ybVN0YXRlOjpvcGVyYXRvcgogICAgIHJldHVybiAqdGhpczsKIH0K
IAotdm9pZCBUcmFuc2Zvcm1TdGF0ZTo6bW92ZShMYXlvdXRVbml0IHgsIExheW91dFVuaXQgeSwg
VHJhbnNmb3JtQWNjdW11bGF0aW9uIGFjY3VtdWxhdGUpCit2b2lkIFRyYW5zZm9ybVN0YXRlOjp0
cmFuc2xhdGVUcmFuc2Zvcm0oY29uc3QgSW50U2l6ZSYgb2Zmc2V0KQogewotICAgIGlmIChtX2Fj
Y3VtdWxhdGluZ1RyYW5zZm9ybSAmJiBtX2FjY3VtdWxhdGVkVHJhbnNmb3JtKSB7Ci0gICAgICAg
IC8vIElmIHdlJ3JlIGFjY3VtdWxhdGluZyBpbnRvIGFuIGV4aXN0aW5nIHRyYW5zZm9ybSwgYXBw
bHkgdGhlIHRyYW5zbGF0aW9uLgotICAgICAgICBpZiAobV9kaXJlY3Rpb24gPT0gQXBwbHlUcmFu
c2Zvcm1EaXJlY3Rpb24pCi0gICAgICAgICAgICBtX2FjY3VtdWxhdGVkVHJhbnNmb3JtLT50cmFu
c2xhdGVSaWdodCh4LCB5KTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgbV9hY2N1bXVsYXRl
ZFRyYW5zZm9ybS0+dHJhbnNsYXRlKHgsIHkpOwotICAgICAgICAKLSAgICAgICAgLy8gVGhlbiBm
bGF0dGVuIGlmIG5lY2Vzc2FyeS4KLSAgICAgICAgaWYgKGFjY3VtdWxhdGUgPT0gRmxhdHRlblRy
YW5zZm9ybSkKLSAgICAgICAgICAgIGZsYXR0ZW4oKTsKLSAgICB9IGVsc2UgewotICAgICAgICAv
LyBKdXN0IG1vdmUgdGhlIHBvaW50IGFuZCwgb3B0aW9uYWxseSwgdGhlIHF1YWQuCi0gICAgICAg
IGlmIChtX2RpcmVjdGlvbiA9PSBVbmFwcGx5SW52ZXJzZVRyYW5zZm9ybURpcmVjdGlvbikgewot
ICAgICAgICAgICAgeCA9IC14OwotICAgICAgICAgICAgeSA9IC15OwotICAgICAgICB9Ci0gICAg
ICAgIGlmIChtX21hcFBvaW50KQotICAgICAgICAgICAgbV9sYXN0UGxhbmFyUG9pbnQubW92ZSh4
LCB5KTsKLSAgICAgICAgaWYgKG1fbWFwUXVhZCkKLSAgICAgICAgICAgIG1fbGFzdFBsYW5hclF1
YWQubW92ZSh4LCB5KTsKKyAgICBpZiAobV9kaXJlY3Rpb24gPT0gQXBwbHlUcmFuc2Zvcm1EaXJl
Y3Rpb24pCisgICAgICAgIG1fYWNjdW11bGF0ZWRUcmFuc2Zvcm0tPnRyYW5zbGF0ZVJpZ2h0KG9m
ZnNldC53aWR0aCgpLCBvZmZzZXQuaGVpZ2h0KCkpOworICAgIGVsc2UKKyAgICAgICAgbV9hY2N1
bXVsYXRlZFRyYW5zZm9ybS0+dHJhbnNsYXRlKG9mZnNldC53aWR0aCgpLCBvZmZzZXQuaGVpZ2h0
KCkpOworfQorCit2b2lkIFRyYW5zZm9ybVN0YXRlOjp0cmFuc2xhdGVNYXBwZWRDb29yZGluYXRl
cyhjb25zdCBJbnRTaXplJiBvZmZzZXQpCit7CisgICAgSW50U2l6ZSBhZGp1c3RlZE9mZnNldCA9
IChtX2RpcmVjdGlvbiA9PSBBcHBseVRyYW5zZm9ybURpcmVjdGlvbikgPyBvZmZzZXQgOiAtb2Zm
c2V0OworICAgIGlmIChtX21hcFBvaW50KQorICAgICAgICBtX2xhc3RQbGFuYXJQb2ludC5tb3Zl
KGFkanVzdGVkT2Zmc2V0KTsKKyAgICBpZiAobV9tYXBRdWFkKQorICAgICAgICBtX2xhc3RQbGFu
YXJRdWFkLm1vdmUoYWRqdXN0ZWRPZmZzZXQpOworfQorCit2b2lkIFRyYW5zZm9ybVN0YXRlOjpt
b3ZlKGNvbnN0IExheW91dFNpemUmIG9mZnNldCwgVHJhbnNmb3JtQWNjdW11bGF0aW9uIGFjY3Vt
dWxhdGUpCit7CisgICAgaWYgKGFjY3VtdWxhdGUgPT0gRmxhdHRlblRyYW5zZm9ybSB8fCAhbV9h
Y2N1bXVsYXRlZFRyYW5zZm9ybSkKKyAgICAgICAgbV9hY2N1bXVsYXRlZE9mZnNldCArPSBvZmZz
ZXQ7CisgICAgZWxzZSB7CisgICAgICAgIGFwcGx5QWNjdW11bGF0ZWRPZmZzZXQoKTsKKyAgICAg
ICAgaWYgKG1fYWNjdW11bGF0aW5nVHJhbnNmb3JtICYmIG1fYWNjdW11bGF0ZWRUcmFuc2Zvcm0p
IHsKKyAgICAgICAgICAgIC8vIElmIHdlJ3JlIGFjY3VtdWxhdGluZyBpbnRvIGFuIGV4aXN0aW5n
IHRyYW5zZm9ybSwgYXBwbHkgdGhlIHRyYW5zbGF0aW9uLgorICAgICAgICAgICAgdHJhbnNsYXRl
VHJhbnNmb3JtKHJvdW5kZWRJbnRTaXplKG9mZnNldCkpOworCisgICAgICAgICAgICAvLyBUaGVu
IGZsYXR0ZW4gaWYgbmVjZXNzYXJ5LgorICAgICAgICAgICAgaWYgKGFjY3VtdWxhdGUgPT0gRmxh
dHRlblRyYW5zZm9ybSkKKyAgICAgICAgICAgICAgICBmbGF0dGVuKCk7CisgICAgICAgIH0gZWxz
ZQorICAgICAgICAgICAgLy8gSnVzdCBtb3ZlIHRoZSBwb2ludCBhbmQvb3IgcXVhZC4KKyAgICAg
ICAgICAgIHRyYW5zbGF0ZU1hcHBlZENvb3JkaW5hdGVzKHJvdW5kZWRJbnRTaXplKG9mZnNldCkp
OwogICAgIH0KICAgICBtX2FjY3VtdWxhdGluZ1RyYW5zZm9ybSA9IGFjY3VtdWxhdGUgPT0gQWNj
dW11bGF0ZVRyYW5zZm9ybTsKIH0KIAordm9pZCBUcmFuc2Zvcm1TdGF0ZTo6YXBwbHlBY2N1bXVs
YXRlZE9mZnNldCgpCit7CisgICAgSW50U2l6ZSBvZmZzZXQgPSByb3VuZGVkSW50U2l6ZShtX2Fj
Y3VtdWxhdGVkT2Zmc2V0KTsKKyAgICBtX2FjY3VtdWxhdGVkT2Zmc2V0ID0gTGF5b3V0U2l6ZSgp
OworICAgIGlmICghb2Zmc2V0LmlzWmVybygpKSB7CisgICAgICAgIGlmIChtX2FjY3VtdWxhdGVk
VHJhbnNmb3JtKQorICAgICAgICAgICAgdHJhbnNsYXRlVHJhbnNmb3JtKG9mZnNldCk7CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIHRyYW5zbGF0ZU1hcHBlZENvb3JkaW5hdGVzKG9mZnNldCk7
CisgICAgfQorfQorCiAvLyBGSVhNRTogV2UgdHJhbnNmb3JtIEFmZmluZVRyYW5zZm9ybSB0byBU
cmFuc2Zvcm1hdGlvbk1hdHJpeC4gVGhpcyBpcyByYXRoZXIgaW5lZmZpY2llbnQuCiB2b2lkIFRy
YW5zZm9ybVN0YXRlOjphcHBseVRyYW5zZm9ybShjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHRyYW5z
Zm9ybUZyb21Db250YWluZXIsIFRyYW5zZm9ybUFjY3VtdWxhdGlvbiBhY2N1bXVsYXRlLCBib29s
KiB3YXNDbGFtcGVkKQogewpAQCAtODYsNiArMTEwLDggQEAgdm9pZCBUcmFuc2Zvcm1TdGF0ZTo6
YXBwbHlUcmFuc2Zvcm0oY29ucwogICAgIGlmICh3YXNDbGFtcGVkKQogICAgICAgICAqd2FzQ2xh
bXBlZCA9IGZhbHNlOwogCisgICAgYXBwbHlBY2N1bXVsYXRlZE9mZnNldCgpOworCiAgICAgLy8g
SWYgd2UgaGF2ZSBhbiBhY2N1bXVsYXRlZCB0cmFuc2Zvcm0gZnJvbSBsYXN0IHRpbWUsIG11bHRp
cGx5IGluIHRoaXMgdHJhbnNmb3JtCiAgICAgaWYgKG1fYWNjdW11bGF0ZWRUcmFuc2Zvcm0pIHsK
ICAgICAgICAgaWYgKG1fZGlyZWN0aW9uID09IEFwcGx5VHJhbnNmb3JtRGlyZWN0aW9uKQpAQCAt
MTA5LDYgKzEzNSw4IEBAIHZvaWQgVHJhbnNmb3JtU3RhdGU6OmZsYXR0ZW4oYm9vbCogd2FzQ2wK
ICAgICBpZiAod2FzQ2xhbXBlZCkKICAgICAgICAgKndhc0NsYW1wZWQgPSBmYWxzZTsKIAorICAg
IGFwcGx5QWNjdW11bGF0ZWRPZmZzZXQoKTsKKwogICAgIGlmICghbV9hY2N1bXVsYXRlZFRyYW5z
Zm9ybSkgewogICAgICAgICBtX2FjY3VtdWxhdGluZ1RyYW5zZm9ybSA9IGZhbHNlOwogICAgICAg
ICByZXR1cm47CkBAIC0xMjIsMTMgKzE1MCwxNSBAQCBGbG9hdFBvaW50IFRyYW5zZm9ybVN0YXRl
OjptYXBwZWRQb2ludChiCiAgICAgaWYgKHdhc0NsYW1wZWQpCiAgICAgICAgICp3YXNDbGFtcGVk
ID0gZmFsc2U7CiAKKyAgICBGbG9hdFBvaW50IHBvaW50ID0gbV9sYXN0UGxhbmFyUG9pbnQ7Cisg
ICAgcG9pbnQubW92ZSgobV9kaXJlY3Rpb24gPT0gQXBwbHlUcmFuc2Zvcm1EaXJlY3Rpb24pID8g
bV9hY2N1bXVsYXRlZE9mZnNldCA6IC1tX2FjY3VtdWxhdGVkT2Zmc2V0KTsKICAgICBpZiAoIW1f
YWNjdW11bGF0ZWRUcmFuc2Zvcm0pCi0gICAgICAgIHJldHVybiBtX2xhc3RQbGFuYXJQb2ludDsK
KyAgICAgICAgcmV0dXJuIHBvaW50OwogCiAgICAgaWYgKG1fZGlyZWN0aW9uID09IEFwcGx5VHJh
bnNmb3JtRGlyZWN0aW9uKQotICAgICAgICByZXR1cm4gbV9hY2N1bXVsYXRlZFRyYW5zZm9ybS0+
bWFwUG9pbnQobV9sYXN0UGxhbmFyUG9pbnQpOworICAgICAgICByZXR1cm4gbV9hY2N1bXVsYXRl
ZFRyYW5zZm9ybS0+bWFwUG9pbnQocG9pbnQpOwogCi0gICAgcmV0dXJuIG1fYWNjdW11bGF0ZWRU
cmFuc2Zvcm0tPmludmVyc2UoKS5wcm9qZWN0UG9pbnQobV9sYXN0UGxhbmFyUG9pbnQsIHdhc0Ns
YW1wZWQpOworICAgIHJldHVybiBtX2FjY3VtdWxhdGVkVHJhbnNmb3JtLT5pbnZlcnNlKCkucHJv
amVjdFBvaW50KHBvaW50LCB3YXNDbGFtcGVkKTsKIH0KIAogRmxvYXRRdWFkIFRyYW5zZm9ybVN0
YXRlOjptYXBwZWRRdWFkKGJvb2wqIHdhc0NsYW1wZWQpIGNvbnN0CkBAIC0xMzYsMTMgKzE2Niwx
NSBAQCBGbG9hdFF1YWQgVHJhbnNmb3JtU3RhdGU6Om1hcHBlZFF1YWQoYm9vCiAgICAgaWYgKHdh
c0NsYW1wZWQpCiAgICAgICAgICp3YXNDbGFtcGVkID0gZmFsc2U7CiAKKyAgICBGbG9hdFF1YWQg
cXVhZCA9IG1fbGFzdFBsYW5hclF1YWQ7CisgICAgcXVhZC5tb3ZlKChtX2RpcmVjdGlvbiA9PSBB
cHBseVRyYW5zZm9ybURpcmVjdGlvbikgPyBtX2FjY3VtdWxhdGVkT2Zmc2V0IDogLW1fYWNjdW11
bGF0ZWRPZmZzZXQpOwogICAgIGlmICghbV9hY2N1bXVsYXRlZFRyYW5zZm9ybSkKLSAgICAgICAg
cmV0dXJuIG1fbGFzdFBsYW5hclF1YWQ7CisgICAgICAgIHJldHVybiBxdWFkOwogCiAgICAgaWYg
KG1fZGlyZWN0aW9uID09IEFwcGx5VHJhbnNmb3JtRGlyZWN0aW9uKQotICAgICAgICByZXR1cm4g
bV9hY2N1bXVsYXRlZFRyYW5zZm9ybS0+bWFwUXVhZChtX2xhc3RQbGFuYXJRdWFkKTsKKyAgICAg
ICAgcmV0dXJuIG1fYWNjdW11bGF0ZWRUcmFuc2Zvcm0tPm1hcFF1YWQocXVhZCk7CiAKLSAgICBy
ZXR1cm4gbV9hY2N1bXVsYXRlZFRyYW5zZm9ybS0+aW52ZXJzZSgpLnByb2plY3RRdWFkKG1fbGFz
dFBsYW5hclF1YWQsIHdhc0NsYW1wZWQpOworICAgIHJldHVybiBtX2FjY3VtdWxhdGVkVHJhbnNm
b3JtLT5pbnZlcnNlKCkucHJvamVjdFF1YWQocXVhZCwgd2FzQ2xhbXBlZCk7CiB9CiAKIHZvaWQg
VHJhbnNmb3JtU3RhdGU6OmZsYXR0ZW5XaXRoVHJhbnNmb3JtKGNvbnN0IFRyYW5zZm9ybWF0aW9u
TWF0cml4JiB0LCBib29sKiB3YXNDbGFtcGVkKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1TdGF0ZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtU3RhdGUu
aAkocmV2aXNpb24gMTM3NDg2KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dHJhbnNmb3Jtcy9UcmFuc2Zvcm1TdGF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC03NCwxMyArNzQs
MTMgQEAgcHVibGljOgogICAgIFRyYW5zZm9ybVN0YXRlJiBvcGVyYXRvcj0oY29uc3QgVHJhbnNm
b3JtU3RhdGUmKTsKICAgICAKICAgICB2b2lkIHNldFF1YWQoY29uc3QgRmxvYXRRdWFkJiBxdWFk
KSB7IG1fbGFzdFBsYW5hclF1YWQgPSBxdWFkOyB9Ci0gICAgCi0gICAgdm9pZCBtb3ZlKGNvbnN0
IExheW91dFNpemUmIHMsIFRyYW5zZm9ybUFjY3VtdWxhdGlvbiBhY2N1bXVsYXRlID0gRmxhdHRl
blRyYW5zZm9ybSkKKworICAgIHZvaWQgbW92ZShMYXlvdXRVbml0IHgsIExheW91dFVuaXQgeSwg
VHJhbnNmb3JtQWNjdW11bGF0aW9uIGFjY3VtdWxhdGUgPSBGbGF0dGVuVHJhbnNmb3JtKQogICAg
IHsKLSAgICAgICAgbW92ZShzLndpZHRoKCksIHMuaGVpZ2h0KCksIGFjY3VtdWxhdGUpOworICAg
ICAgICBtb3ZlKExheW91dFNpemUoeCwgeSksIGFjY3VtdWxhdGUpOwogICAgIH0KLSAgICAKLSAg
ICB2b2lkIG1vdmUoTGF5b3V0VW5pdCB4LCBMYXlvdXRVbml0IHksIFRyYW5zZm9ybUFjY3VtdWxh
dGlvbiA9IEZsYXR0ZW5UcmFuc2Zvcm0pOworCisgICAgdm9pZCBtb3ZlKGNvbnN0IExheW91dFNp
emUmLCBUcmFuc2Zvcm1BY2N1bXVsYXRpb24gPSBGbGF0dGVuVHJhbnNmb3JtKTsKICAgICB2b2lk
IGFwcGx5VHJhbnNmb3JtKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgdHJhbnNmb3JtRnJvbUNvbnRh
aW5lciwgVHJhbnNmb3JtQWNjdW11bGF0aW9uID0gRmxhdHRlblRyYW5zZm9ybSwgYm9vbCogd2Fz
Q2xhbXBlZCA9IDApOwogICAgIHZvaWQgYXBwbHlUcmFuc2Zvcm0oY29uc3QgVHJhbnNmb3JtYXRp
b25NYXRyaXgmIHRyYW5zZm9ybUZyb21Db250YWluZXIsIFRyYW5zZm9ybUFjY3VtdWxhdGlvbiA9
IEZsYXR0ZW5UcmFuc2Zvcm0sIGJvb2wqIHdhc0NsYW1wZWQgPSAwKTsKICAgICB2b2lkIGZsYXR0
ZW4oYm9vbCogd2FzQ2xhbXBlZCA9IDApOwpAQCAtOTQsMTMgKzk0LDE3IEBAIHB1YmxpYzoKICAg
ICBGbG9hdFF1YWQgbWFwcGVkUXVhZChib29sKiB3YXNDbGFtcGVkID0gMCkgY29uc3Q7CiAKIHBy
aXZhdGU6CisgICAgdm9pZCB0cmFuc2xhdGVUcmFuc2Zvcm0oY29uc3QgSW50U2l6ZSYpOworICAg
IHZvaWQgdHJhbnNsYXRlTWFwcGVkQ29vcmRpbmF0ZXMoY29uc3QgSW50U2l6ZSYpOwogICAgIHZv
aWQgZmxhdHRlbldpdGhUcmFuc2Zvcm0oY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBib29s
KiB3YXNDbGFtcGVkKTsKKyAgICB2b2lkIGFwcGx5QWNjdW11bGF0ZWRPZmZzZXQoKTsKICAgICAK
ICAgICBGbG9hdFBvaW50IG1fbGFzdFBsYW5hclBvaW50OwogICAgIEZsb2F0UXVhZCBtX2xhc3RQ
bGFuYXJRdWFkOwogCiAgICAgLy8gV2Ugb25seSBhbGxvY2F0ZSB0aGUgdHJhbnNmb3JtIGlmIHdl
IG5lZWQgdG8KICAgICBPd25QdHI8VHJhbnNmb3JtYXRpb25NYXRyaXg+IG1fYWNjdW11bGF0ZWRU
cmFuc2Zvcm07CisgICAgTGF5b3V0U2l6ZSBtX2FjY3VtdWxhdGVkT2Zmc2V0OwogICAgIGJvb2wg
bV9hY2N1bXVsYXRpbmdUcmFuc2Zvcm07CiAgICAgYm9vbCBtX21hcFBvaW50LCBtX21hcFF1YWQ7
CiAgICAgVHJhbnNmb3JtRGlyZWN0aW9uIG1fZGlyZWN0aW9uOwpJbmRleDogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcAkocmV2aXNpb24gMTM3NDg2KQorKysgU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xMTI0LDcgKzExMjQsNyBAQCB2b2lkIElubGluZVRleHRCb3g6OnBhaW50RG9jdW1lbnRNYXJr
ZXIoCiAgICAgICAgIC8vIGRpc3BsYXkgYSB0b29sVGlwLiBXZSBkb24ndCBkbyB0aGlzIGZvciBt
aXNzcGVsbGluZyBtYXJrZXJzLgogICAgICAgICBpZiAoZ3JhbW1hciB8fCBpc0RpY3RhdGlvbk1h
cmtlcikgewogICAgICAgICAgICAgbWFya2VyUmVjdC5tb3ZlKC1ib3hPcmlnaW4ueCgpLCAtYm94
T3JpZ2luLnkoKSk7Ci0gICAgICAgICAgICBtYXJrZXJSZWN0ID0gcmVuZGVyZXIoKS0+bG9jYWxU
b0Fic29sdXRlUXVhZChGbG9hdFJlY3QobWFya2VyUmVjdCksIFNuYXBPZmZzZXRGb3JUcmFuc2Zv
cm1zKS5lbmNsb3NpbmdCb3VuZGluZ0JveCgpOworICAgICAgICAgICAgbWFya2VyUmVjdCA9IHJl
bmRlcmVyKCktPmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRSZWN0KG1hcmtlclJlY3QpKS5lbmNs
b3NpbmdCb3VuZGluZ0JveCgpOwogICAgICAgICAgICAgdG9SZW5kZXJlZERvY3VtZW50TWFya2Vy
KG1hcmtlciktPnNldFJlbmRlcmVkUmVjdChtYXJrZXJSZWN0KTsKICAgICAgICAgfQogICAgIH0K
QEAgLTExNjIsNyArMTE2Miw3IEBAIHZvaWQgSW5saW5lVGV4dEJveDo6cGFpbnRUZXh0TWF0Y2hN
YXJrZXIKIAogICAgIC8vIEFsd2F5cyBjb21wdXRlIGFuZCBzdG9yZSB0aGUgcmVjdCBhc3NvY2lh
dGVkIHdpdGggdGhpcyBtYXJrZXIuIFRoZSBjb21wdXRlZCByZWN0IGlzIGluIGFic29sdXRlIGNv
b3JkaW5hdGVzLgogICAgIEludFJlY3QgbWFya2VyUmVjdCA9IGVuY2xvc2luZ0ludFJlY3QoZm9u
dC5zZWxlY3Rpb25SZWN0Rm9yVGV4dChydW4sIEludFBvaW50KHgoKSwgc2VsZWN0aW9uVG9wKCkp
LCBzZWxIZWlnaHQsIHNQb3MsIGVQb3MpKTsKLSAgICBtYXJrZXJSZWN0ID0gcmVuZGVyZXIoKS0+
bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3QobWFya2VyUmVjdCksIFNuYXBPZmZzZXRGb3JU
cmFuc2Zvcm1zKS5lbmNsb3NpbmdCb3VuZGluZ0JveCgpOworICAgIG1hcmtlclJlY3QgPSByZW5k
ZXJlcigpLT5sb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UmVjdChtYXJrZXJSZWN0KSkuZW5jbG9z
aW5nQm91bmRpbmdCb3goKTsKICAgICB0b1JlbmRlcmVkRG9jdW1lbnRNYXJrZXIobWFya2VyKS0+
c2V0UmVuZGVyZWRSZWN0KG1hcmtlclJlY3QpOwogICAgIAogICAgIC8vIE9wdGlvbmFsbHkgaGln
aGxpZ2h0IHRoZSB0ZXh0CkBAIC0xMTkwLDcgKzExOTAsNyBAQCB2b2lkIElubGluZVRleHRCb3g6
OmNvbXB1dGVSZWN0Rm9yUmVwbGFjCiAgICAgCiAgICAgLy8gQ29tcHV0ZSBhbmQgc3RvcmUgdGhl
IHJlY3QgYXNzb2NpYXRlZCB3aXRoIHRoaXMgbWFya2VyLgogICAgIEludFJlY3QgbWFya2VyUmVj
dCA9IGVuY2xvc2luZ0ludFJlY3QoZm9udC5zZWxlY3Rpb25SZWN0Rm9yVGV4dChydW4sIHN0YXJ0
UG9pbnQsIGgsIHNQb3MsIGVQb3MpKTsKLSAgICBtYXJrZXJSZWN0ID0gcmVuZGVyZXIoKS0+bG9j
YWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3QobWFya2VyUmVjdCksIFNuYXBPZmZzZXRGb3JUcmFu
c2Zvcm1zKS5lbmNsb3NpbmdCb3VuZGluZ0JveCgpOworICAgIG1hcmtlclJlY3QgPSByZW5kZXJl
cigpLT5sb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UmVjdChtYXJrZXJSZWN0KSkuZW5jbG9zaW5n
Qm91bmRpbmdCb3goKTsKICAgICB0b1JlbmRlcmVkRG9jdW1lbnRNYXJrZXIobWFya2VyKS0+c2V0
UmVuZGVyZWRSZWN0KG1hcmtlclJlY3QpOwogfQogICAgIApJbmRleDogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0xheW91dFN0YXRlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvTGF5b3V0U3RhdGUuY3BwCShyZXZpc2lvbiAxMzc0ODYpCisrKyBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvTGF5b3V0U3RhdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTYsNyAr
MTU2LDcgQEAgTGF5b3V0U3RhdGU6OkxheW91dFN0YXRlKFJlbmRlck9iamVjdCogcgogI2VuZGlm
CiB7CiAgICAgUmVuZGVyT2JqZWN0KiBjb250YWluZXIgPSByb290LT5jb250YWluZXIoKTsKLSAg
ICBGbG9hdFBvaW50IGFic0NvbnRlbnRQb2ludCA9IGNvbnRhaW5lci0+bG9jYWxUb0Fic29sdXRl
KEZsb2F0UG9pbnQoKSwgVXNlVHJhbnNmb3JtcyB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKTsK
KyAgICBGbG9hdFBvaW50IGFic0NvbnRlbnRQb2ludCA9IGNvbnRhaW5lci0+bG9jYWxUb0Fic29s
dXRlKEZsb2F0UG9pbnQoKSwgVXNlVHJhbnNmb3Jtcyk7CiAgICAgbV9wYWludE9mZnNldCA9IExh
eW91dFNpemUoYWJzQ29udGVudFBvaW50LngoKSwgYWJzQ29udGVudFBvaW50LnkoKSk7CiAKICAg
ICBpZiAoY29udGFpbmVyLT5oYXNPdmVyZmxvd0NsaXAoKSkgewpJbmRleDogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveC5jcHAJKHJldmlzaW9uIDEzNzQ4NikKKysrIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDI2LDggKzE0
MjYsNiBAQCB2b2lkIFJlbmRlckJveDo6bWFwTG9jYWxUb0NvbnRhaW5lcihjb25zCiAgICAgICAg
ICp3YXNGaXhlZCA9IG1vZGUgJiBJc0ZpeGVkOwogICAgIAogICAgIExheW91dFNpemUgY29udGFp
bmVyT2Zmc2V0ID0gb2Zmc2V0RnJvbUNvbnRhaW5lcihvLCByb3VuZGVkTGF5b3V0UG9pbnQodHJh
bnNmb3JtU3RhdGUubWFwcGVkUG9pbnQoKSkpOwotICAgIGlmIChtb2RlICYgU25hcE9mZnNldEZv
clRyYW5zZm9ybXMpCi0gICAgICAgIGNvbnRhaW5lck9mZnNldCA9IHJvdW5kZWRJbnRTaXplKGNv
bnRhaW5lck9mZnNldCk7CiAgICAgCiAgICAgYm9vbCBwcmVzZXJ2ZTNEID0gbW9kZSAmIFVzZVRy
YW5zZm9ybXMgJiYgKG8tPnN0eWxlKCktPnByZXNlcnZlczNEKCkgfHwgc3R5bGUoKS0+cHJlc2Vy
dmVzM0QoKSk7CiAgICAgaWYgKG1vZGUgJiBVc2VUcmFuc2Zvcm1zICYmIHNob3VsZFVzZVRyYW5z
Zm9ybUZyb21Db250YWluZXIobykpIHsKQEAgLTE0NzgsOCArMTQ3Niw2IEBAIGNvbnN0IFJlbmRl
ck9iamVjdCogUmVuZGVyQm94OjpwdXNoTWFwcGkKIAogICAgIGJvb2wgb2Zmc2V0RGVwZW5kc09u
UG9pbnQgPSBmYWxzZTsKICAgICBMYXlvdXRTaXplIGNvbnRhaW5lck9mZnNldCA9IG9mZnNldEZy
b21Db250YWluZXIoY29udGFpbmVyLCBMYXlvdXRQb2ludCgpLCAmb2Zmc2V0RGVwZW5kc09uUG9p
bnQpOwotICAgIGlmIChnZW9tZXRyeU1hcC5tYXBDb29yZGluYXRlc0ZsYWdzKCkgJiBTbmFwT2Zm
c2V0Rm9yVHJhbnNmb3JtcykKLSAgICAgICAgY29udGFpbmVyT2Zmc2V0ID0gcm91bmRlZEludFNp
emUoY29udGFpbmVyT2Zmc2V0KTsKIAogICAgIGlmIChjb250YWluZXItPmlzUmVuZGVyRmxvd1Ro
cmVhZCgpKQogICAgICAgICBvZmZzZXREZXBlbmRzT25Qb2ludCA9IHRydWU7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCShyZXZpc2lvbiAxMzc0ODYpCisrKyBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgJKHdvcmtpbmcgY29weSkKQEAgLTU5NSw3ICs1
OTUsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgCiAgICAgdmlydHVhbCBib29sIHNob3VsZENvbXB1dGVT
aXplQXNSZXBsYWNlZCgpIGNvbnN0IHsgcmV0dXJuIGlzUmVwbGFjZWQoKSAmJiAhaXNJbmxpbmVC
bG9ja09ySW5saW5lVGFibGUoKTsgfQogCi0gICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250
YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJh
bnNmb3JtU3RhdGUmLCBNYXBDb29yZGluYXRlc0ZsYWdzID0gQXBwbHlDb250YWluZXJGbGlwIHwg
U25hcE9mZnNldEZvclRyYW5zZm9ybXMsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3QgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5
ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBDb29y
ZGluYXRlc0ZsYWdzID0gQXBwbHlDb250YWluZXJGbGlwLCBib29sKiB3YXNGaXhlZCA9IDApIGNv
bnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgUmVuZGVyT2JqZWN0KiBwdXNoTWFwcGlu
Z1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqLCBSZW5kZXJHZW9tZXRy
eU1hcCYpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBtYXBBYnNvbHV0ZVRvTG9j
YWxQb2ludChNYXBDb29yZGluYXRlc0ZsYWdzLCBUcmFuc2Zvcm1TdGF0ZSYpIGNvbnN0OwogCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVj
dC5jcHAJKHJldmlzaW9uIDEzNzQ4NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCb3hNb2RlbE9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3MSw3ICs0NzEsNyBAQCB2
b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0Ojpjb21wdXRlU3RpY2t5CiAgICAgLy8gQ29tcHV0ZSB0
aGUgY29udGFpbmVyLXJlbGF0aXZlIGFyZWEgd2l0aGluIHdoaWNoIHRoZSBzdGlja3kgZWxlbWVu
dCBpcyBhbGxvd2VkIHRvIG1vdmUuCiAgICAgY29udGFpbmVyQ29udGVudFJlY3QubW92ZShtaW5M
ZWZ0TWFyZ2luLCBtaW5Ub3BNYXJnaW4pOwogICAgIGNvbnRhaW5lckNvbnRlbnRSZWN0LmNvbnRy
YWN0KG1pbkxlZnRNYXJnaW4gKyBtaW5SaWdodE1hcmdpbiwgbWluVG9wTWFyZ2luICsgbWluQm90
dG9tTWFyZ2luKTsKLSAgICBjb25zdHJhaW50cy5zZXRBYnNvbHV0ZUNvbnRhaW5pbmdCbG9ja1Jl
Y3QoY29udGFpbmluZ0Jsb2NrLT5sb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UmVjdChjb250YWlu
ZXJDb250ZW50UmVjdCksIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKS5ib3VuZGluZ0JveCgpKTsK
KyAgICBjb25zdHJhaW50cy5zZXRBYnNvbHV0ZUNvbnRhaW5pbmdCbG9ja1JlY3QoY29udGFpbmlu
Z0Jsb2NrLT5sb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UmVjdChjb250YWluZXJDb250ZW50UmVj
dCkpLmJvdW5kaW5nQm94KCkpOwogCiAgICAgTGF5b3V0UmVjdCBzdGlja3lCb3hSZWN0ID0gZnJh
bWVSZWN0Rm9yU3RpY2t5UG9zaXRpb25pbmcoKTsKICAgICBMYXlvdXRSZWN0IGZsaXBwZWRTdGlj
a3lCb3hSZWN0ID0gc3RpY2t5Qm94UmVjdDsKQEAgLTQ3OSw3ICs0NzksNyBAQCB2b2lkIFJlbmRl
ckJveE1vZGVsT2JqZWN0Ojpjb21wdXRlU3RpY2t5CiAgICAgTGF5b3V0UG9pbnQgc3RpY2t5TG9j
YXRpb24gPSBmbGlwcGVkU3RpY2t5Qm94UmVjdC5sb2NhdGlvbigpOwogCiAgICAgLy8gRklYTUU6
IHN1Y2tzIHRvIGNhbGwgbG9jYWxUb0Fic29sdXRlIGFnYWluLCBidXQgd2UgY2FuJ3QganVzdCBv
ZmZzZXQgZnJvbSB0aGUgcHJldmlvdXNseSBjb21wdXRlZCByZWN0IGlmIHRoZXJlIGFyZSB0cmFu
c2Zvcm1zLgotICAgIEZsb2F0UmVjdCBhYnNDb250YWluZXJGcmFtZSA9IGNvbnRhaW5pbmdCbG9j
ay0+bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBjb250YWluaW5n
QmxvY2stPnNpemUoKSksIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKS5ib3VuZGluZ0JveCgpOwor
ICAgIEZsb2F0UmVjdCBhYnNDb250YWluZXJGcmFtZSA9IGNvbnRhaW5pbmdCbG9jay0+bG9jYWxU
b0Fic29sdXRlUXVhZChGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBjb250YWluaW5nQmxvY2stPnNp
emUoKSkpLmJvdW5kaW5nQm94KCk7CiAgICAgLy8gV2UgY2FuJ3QgY2FsbCBsb2NhbFRvQWJzb2x1
dGUgb24gfHRoaXN8IGJlY2F1c2UgdGhhdCB3aWxsIHJlY3VyLiBGSVhNRTogRm9yIG5vdywgYXNz
dW1lIHRoYXQgfHRoaXN8IGlzIG5vdCB0cmFuc2Zvcm1lZC4KICAgICBGbG9hdFJlY3QgYWJzb2x1
dGVTdGlja3lCb3hSZWN0KGFic0NvbnRhaW5lckZyYW1lLmxvY2F0aW9uKCkgKyBzdGlja3lMb2Nh
dGlvbiwgZmxpcHBlZFN0aWNreUJveFJlY3Quc2l6ZSgpKTsKICAgICBjb25zdHJhaW50cy5zZXRB
YnNvbHV0ZVN0aWNreUJveFJlY3QoYWJzb2x1dGVTdGlja3lCb3hSZWN0KTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcAkocmV2
aXNpb24gMTM3NDg2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVk
T2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzU4LDcgKzM1OCw3IEBAIGJvb2wgUmVuZGVy
RW1iZWRkZWRPYmplY3Q6OmlzSW5VbmF2YWlsYWIKIAogYm9vbCBSZW5kZXJFbWJlZGRlZE9iamVj
dDo6aXNJblVuYXZhaWxhYmxlUGx1Z2luSW5kaWNhdG9yKE1vdXNlRXZlbnQqIGV2ZW50KSBjb25z
dAogewotICAgIHJldHVybiBpc0luVW5hdmFpbGFibGVQbHVnaW5JbmRpY2F0b3Iocm91bmRlZExh
eW91dFBvaW50KGFic29sdXRlVG9Mb2NhbChldmVudC0+YWJzb2x1dGVMb2NhdGlvbigpLCBVc2VU
cmFuc2Zvcm1zIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpKSk7CisgICAgcmV0dXJuIGlzSW5V
bmF2YWlsYWJsZVBsdWdpbkluZGljYXRvcihyb3VuZGVkTGF5b3V0UG9pbnQoYWJzb2x1dGVUb0xv
Y2FsKGV2ZW50LT5hYnNvbHV0ZUxvY2F0aW9uKCksIFVzZVRyYW5zZm9ybXMpKSk7CiB9CiAKIHN0
YXRpYyBib29sIHNob3VsZFVuYXZhaWxhYmxlUGx1Z2luTWVzc2FnZUJlQnV0dG9uKERvY3VtZW50
KiBkb2N1bWVudCwgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVh
c29uIHBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckZyYW1lU2V0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRnJhbWVTZXQuY3BwCShyZXZpc2lvbiAxMzc0ODYpCisrKyBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhbWVTZXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03
MDEsNyArNzAxLDcgQEAgYm9vbCBSZW5kZXJGcmFtZVNldDo6dXNlclJlc2l6ZShNb3VzZUV2ZQog
ICAgICAgICBpZiAobmVlZHNMYXlvdXQoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICAgICAgaWYgKGV2dC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3VzZWRvd25FdmVudCAmJiBl
dnQtPmJ1dHRvbigpID09IExlZnRCdXR0b24pIHsKLSAgICAgICAgICAgIEZsb2F0UG9pbnQgbG9j
YWxQb3MgPSBhYnNvbHV0ZVRvTG9jYWwoZXZ0LT5hYnNvbHV0ZUxvY2F0aW9uKCksIFVzZVRyYW5z
Zm9ybXMgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jtcyk7CisgICAgICAgICAgICBGbG9hdFBvaW50
IGxvY2FsUG9zID0gYWJzb2x1dGVUb0xvY2FsKGV2dC0+YWJzb2x1dGVMb2NhdGlvbigpLCBVc2VU
cmFuc2Zvcm1zKTsKICAgICAgICAgICAgIHN0YXJ0UmVzaXppbmcobV9jb2xzLCBsb2NhbFBvcy54
KCkpOwogICAgICAgICAgICAgc3RhcnRSZXNpemluZyhtX3Jvd3MsIGxvY2FsUG9zLnkoKSk7CiAg
ICAgICAgICAgICBpZiAobV9jb2xzLm1fc3BsaXRCZWluZ1Jlc2l6ZWQgIT0gbm9TcGxpdCB8fCBt
X3Jvd3MubV9zcGxpdEJlaW5nUmVzaXplZCAhPSBub1NwbGl0KSB7CkBAIC03MTEsNyArNzExLDcg
QEAgYm9vbCBSZW5kZXJGcmFtZVNldDo6dXNlclJlc2l6ZShNb3VzZUV2ZQogICAgICAgICB9CiAg
ICAgfSBlbHNlIHsKICAgICAgICAgaWYgKGV2dC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3Vz
ZW1vdmVFdmVudCB8fCAoZXZ0LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1vdXNldXBFdmVudCAm
JiBldnQtPmJ1dHRvbigpID09IExlZnRCdXR0b24pKSB7Ci0gICAgICAgICAgICBGbG9hdFBvaW50
IGxvY2FsUG9zID0gYWJzb2x1dGVUb0xvY2FsKGV2dC0+YWJzb2x1dGVMb2NhdGlvbigpLCBVc2VU
cmFuc2Zvcm1zIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpOworICAgICAgICAgICAgRmxvYXRQ
b2ludCBsb2NhbFBvcyA9IGFic29sdXRlVG9Mb2NhbChldnQtPmFic29sdXRlTG9jYXRpb24oKSwg
VXNlVHJhbnNmb3Jtcyk7CiAgICAgICAgICAgICBjb250aW51ZVJlc2l6aW5nKG1fY29scywgbG9j
YWxQb3MueCgpKTsKICAgICAgICAgICAgIGNvbnRpbnVlUmVzaXppbmcobV9yb3dzLCBsb2NhbFBv
cy55KCkpOwogICAgICAgICAgICAgaWYgKGV2dC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3Vz
ZXVwRXZlbnQgJiYgZXZ0LT5idXR0b24oKSA9PSBMZWZ0QnV0dG9uKSB7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR2VvbWV0cnlNYXAuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHZW9tZXRyeU1hcC5jcHAJKHJldmlzaW9uIDEz
NzQ4NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHZW9tZXRyeU1hcC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTUxLDYgKzUxLDcgQEAgdm9pZCBSZW5kZXJHZW9tZXRyeU1hcDo6
bWFwVG9Db250YWluZXIoVAogICAgIC8vIElmIHRoZSBtYXBwaW5nIGluY2x1ZGVzIHNvbWV0aGlu
ZyBsaWtlIGNvbHVtbnMsIHdlIGhhdmUgdG8gZ28gdmlhIHJlbmRlcmVycy4KICAgICBpZiAoaGFz
Tm9uVW5pZm9ybVN0ZXAoKSkgewogICAgICAgICBtX21hcHBpbmcubGFzdCgpLm1fcmVuZGVyZXIt
Pm1hcExvY2FsVG9Db250YWluZXIoY29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwgQXBwbHlDb250
YWluZXJGbGlwIHwgbV9tYXBDb29yZGluYXRlc0ZsYWdzKTsKKyAgICAgICAgdHJhbnNmb3JtU3Rh
dGUuZmxhdHRlbigpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIApAQCAtMTA0LDcgKzEw
NSw3IEBAIEZsb2F0UG9pbnQgUmVuZGVyR2VvbWV0cnlNYXA6Om1hcFRvQ29udGEKICAgICBGbG9h
dFBvaW50IHJlc3VsdDsKICAgICAKICAgICBpZiAoIWhhc0ZpeGVkUG9zaXRpb25TdGVwKCkgJiYg
IWhhc1RyYW5zZm9ybVN0ZXAoKSAmJiAhaGFzTm9uVW5pZm9ybVN0ZXAoKSAmJiAoIWNvbnRhaW5l
ciB8fCAobV9tYXBwaW5nLnNpemUoKSAmJiBjb250YWluZXIgPT0gbV9tYXBwaW5nWzBdLm1fcmVu
ZGVyZXIpKSkKLSAgICAgICAgcmVzdWx0ID0gcCArIG1fYWNjdW11bGF0ZWRPZmZzZXQ7CisgICAg
ICAgIHJlc3VsdCA9IHAgKyByb3VuZGVkSW50U2l6ZShtX2FjY3VtdWxhdGVkT2Zmc2V0KTsKICAg
ICBlbHNlIHsKICAgICAgICAgVHJhbnNmb3JtU3RhdGUgdHJhbnNmb3JtU3RhdGUoVHJhbnNmb3Jt
U3RhdGU6OkFwcGx5VHJhbnNmb3JtRGlyZWN0aW9uLCBwKTsKICAgICAgICAgbWFwVG9Db250YWlu
ZXIodHJhbnNmb3JtU3RhdGUsIGNvbnRhaW5lcik7CkBAIC0xMjcsNyArMTI4LDcgQEAgRmxvYXRR
dWFkIFJlbmRlckdlb21ldHJ5TWFwOjptYXBUb0NvbnRhaQogICAgIAogICAgIGlmICghaGFzRml4
ZWRQb3NpdGlvblN0ZXAoKSAmJiAhaGFzVHJhbnNmb3JtU3RlcCgpICYmICFoYXNOb25Vbmlmb3Jt
U3RlcCgpICYmICghY29udGFpbmVyIHx8IChtX21hcHBpbmcuc2l6ZSgpICYmIGNvbnRhaW5lciA9
PSBtX21hcHBpbmdbMF0ubV9yZW5kZXJlcikpKSB7CiAgICAgICAgIHJlc3VsdCA9IHJlY3Q7Ci0g
ICAgICAgIHJlc3VsdC5tb3ZlKG1fYWNjdW11bGF0ZWRPZmZzZXQpOworICAgICAgICByZXN1bHQu
bW92ZShyb3VuZGVkSW50U2l6ZShtX2FjY3VtdWxhdGVkT2Zmc2V0KSk7CiAgICAgfSBlbHNlIHsK
ICAgICAgICAgVHJhbnNmb3JtU3RhdGUgdHJhbnNmb3JtU3RhdGUoVHJhbnNmb3JtU3RhdGU6OkFw
cGx5VHJhbnNmb3JtRGlyZWN0aW9uLCByZWN0LmNlbnRlcigpLCByZWN0KTsKICAgICAgICAgbWFw
VG9Db250YWluZXIodHJhbnNmb3JtU3RhdGUsIGNvbnRhaW5lcik7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyR2VvbWV0cnlNYXAuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR2VvbWV0cnlNYXAuaAkocmV2aXNpb24gMTM3NDg2KQor
KysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdlb21ldHJ5TWFwLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTc0LDcgKzc0LDcgQEAgc3RydWN0IFJlbmRlckdlb21ldHJ5TWFwU3RlcCB7CiBj
bGFzcyBSZW5kZXJHZW9tZXRyeU1hcCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUmVuZGVy
R2VvbWV0cnlNYXApOwogcHVibGljOgotICAgIFJlbmRlckdlb21ldHJ5TWFwKE1hcENvb3JkaW5h
dGVzRmxhZ3MgPSBVc2VUcmFuc2Zvcm1zIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpOworICAg
IFJlbmRlckdlb21ldHJ5TWFwKE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBVc2VUcmFuc2Zvcm1zKTsK
ICAgICB+UmVuZGVyR2VvbWV0cnlNYXAoKTsKIAogICAgIE1hcENvb3JkaW5hdGVzRmxhZ3MgbWFw
Q29vcmRpbmF0ZXNGbGFncygpIGNvbnN0IHsgcmV0dXJuIG1fbWFwQ29vcmRpbmF0ZXNGbGFnczsg
fQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAJKHJldmlz
aW9uIDEzNzQ4NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xMTU3LDggKzExNTcsNiBAQCB2b2lkIFJlbmRlcklubGluZTo6
bWFwTG9jYWxUb0NvbnRhaW5lcihjCiAgICAgfQogCiAgICAgTGF5b3V0U2l6ZSBjb250YWluZXJP
ZmZzZXQgPSBvZmZzZXRGcm9tQ29udGFpbmVyKG8sIHJvdW5kZWRMYXlvdXRQb2ludCh0cmFuc2Zv
cm1TdGF0ZS5tYXBwZWRQb2ludCgpKSk7Ci0gICAgaWYgKG1vZGUgJiBTbmFwT2Zmc2V0Rm9yVHJh
bnNmb3JtcykKLSAgICAgICAgY29udGFpbmVyT2Zmc2V0ID0gcm91bmRlZEludFNpemUoY29udGFp
bmVyT2Zmc2V0KTsKIAogICAgIGJvb2wgcHJlc2VydmUzRCA9IG1vZGUgJiBVc2VUcmFuc2Zvcm1z
ICYmIChvLT5zdHlsZSgpLT5wcmVzZXJ2ZXMzRCgpIHx8IHN0eWxlKCktPnByZXNlcnZlczNEKCkp
OwogICAgIGlmIChtb2RlICYgVXNlVHJhbnNmb3JtcyAmJiBzaG91bGRVc2VUcmFuc2Zvcm1Gcm9t
Q29udGFpbmVyKG8pKSB7CkBAIC0xMTk3LDggKzExOTUsNiBAQCBjb25zdCBSZW5kZXJPYmplY3Qq
IFJlbmRlcklubGluZTo6cHVzaE1hCiAKICAgICBib29sIG9mZnNldERlcGVuZHNPblBvaW50ID0g
ZmFsc2U7CiAgICAgTGF5b3V0U2l6ZSBjb250YWluZXJPZmZzZXQgPSBvZmZzZXRGcm9tQ29udGFp
bmVyKGNvbnRhaW5lciwgTGF5b3V0UG9pbnQoKSwgJm9mZnNldERlcGVuZHNPblBvaW50KTsKLSAg
ICBpZiAoZ2VvbWV0cnlNYXAubWFwQ29vcmRpbmF0ZXNGbGFncygpICYgU25hcE9mZnNldEZvclRy
YW5zZm9ybXMpCi0gICAgICAgIGNvbnRhaW5lck9mZnNldCA9IHJvdW5kZWRJbnRTaXplKGNvbnRh
aW5lck9mZnNldCk7CiAKICAgICBib29sIHByZXNlcnZlM0QgPSBjb250YWluZXItPnN0eWxlKCkt
PnByZXNlcnZlczNEKCkgfHwgc3R5bGUoKS0+cHJlc2VydmVzM0QoKTsKICAgICBpZiAoc2hvdWxk
VXNlVHJhbnNmb3JtRnJvbUNvbnRhaW5lcihjb250YWluZXIpKSB7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5oCShyZXZpc2lvbiAxMzc0ODYpCisrKyBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmgJKHdvcmtpbmcgY29weSkKQEAgLTE0Miw3
ICsxNDIsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgTGF5b3V0UmVjdCByZWN0V2l0aE91dGxp
bmVGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWlu
ZXIsIExheW91dFVuaXQgb3V0bGluZVdpZHRoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFs
IHZvaWQgY29tcHV0ZVJlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3Qq
IHJlcGFpbnRDb250YWluZXIsIExheW91dFJlY3QmLCBib29sIGZpeGVkKSBjb25zdCBPVkVSUklE
RTsKIAotICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxh
eWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29v
cmRpbmF0ZXNGbGFncyA9IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zv
cm1zLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9p
ZCBtYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFp
bnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29vcmRpbmF0ZXNGbGFncyA9IEFwcGx5
Q29udGFpbmVyRmxpcCwgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBPVkVSUklERTsKICAgICB2
aXJ0dWFsIGNvbnN0IFJlbmRlck9iamVjdCogcHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBS
ZW5kZXJMYXllck1vZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1h
cCYpIGNvbnN0IE9WRVJSSURFOwogCiAgICAgdmlydHVhbCBWaXNpYmxlUG9zaXRpb24gcG9zaXRp
b25Gb3JQb2ludChjb25zdCBMYXlvdXRQb2ludCYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCShyZXZpc2lvbiAxMzc0ODYpCisrKyBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjA3LDcgKzEy
MDcsNyBAQCBSZW5kZXJMYXllciogUmVuZGVyTGF5ZXI6OmNsaXBwaW5nUm9vdEZvCiBMYXlvdXRQ
b2ludCBSZW5kZXJMYXllcjo6YWJzb2x1dGVUb0NvbnRlbnRzKGNvbnN0IExheW91dFBvaW50JiBh
YnNvbHV0ZVBvaW50KSBjb25zdAogewogICAgIC8vIFdlIGRvbid0IHVzZSBjb252ZXJ0VG9MYXll
ckNvb3JkcyBiZWNhdXNlIGl0IGRvZXNuJ3Qga25vdyBhYm91dCB0cmFuc2Zvcm1zCi0gICAgcmV0
dXJuIHJvdW5kZWRMYXlvdXRQb2ludChyZW5kZXJlcigpLT5hYnNvbHV0ZVRvTG9jYWwoYWJzb2x1
dGVQb2ludCwgVXNlVHJhbnNmb3JtcyB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKSk7CisgICAg
cmV0dXJuIHJvdW5kZWRMYXlvdXRQb2ludChyZW5kZXJlcigpLT5hYnNvbHV0ZVRvTG9jYWwoYWJz
b2x1dGVQb2ludCwgVXNlVHJhbnNmb3JtcykpOwogfQogCiBib29sIFJlbmRlckxheWVyOjpjYW5u
b3RCbGl0VG9XaW5kb3coKSBjb25zdApAQCAtMTc4OSw3ICsxNzg5LDcgQEAgdm9pZCBSZW5kZXJM
YXllcjo6c2Nyb2xsVG8oaW50IHgsIGludCB5KQogCiAgICAgICAgIEZsb2F0UXVhZCBxdWFkRm9y
RmFrZU1vdXNlTW92ZUV2ZW50ID0gRmxvYXRRdWFkKG1fcmVwYWludFJlY3QpOwogICAgICAgICBp
ZiAocmVwYWludENvbnRhaW5lcikKLSAgICAgICAgICAgIHF1YWRGb3JGYWtlTW91c2VNb3ZlRXZl
bnQgPSByZXBhaW50Q29udGFpbmVyLT5sb2NhbFRvQWJzb2x1dGVRdWFkKHF1YWRGb3JGYWtlTW91
c2VNb3ZlRXZlbnQsIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKTsKKyAgICAgICAgICAgIHF1YWRG
b3JGYWtlTW91c2VNb3ZlRXZlbnQgPSByZXBhaW50Q29udGFpbmVyLT5sb2NhbFRvQWJzb2x1dGVR
dWFkKHF1YWRGb3JGYWtlTW91c2VNb3ZlRXZlbnQpOwogICAgICAgICBmcmFtZS0+ZXZlbnRIYW5k
bGVyKCktPmRpc3BhdGNoRmFrZU1vdXNlTW92ZUV2ZW50U29vbkluUXVhZChxdWFkRm9yRmFrZU1v
dXNlTW92ZUV2ZW50KTsKICAgICB9CiAKQEAgLTQzODEsNyArNDM4MSw3IEBAIExheW91dFJlY3Qg
UmVuZGVyTGF5ZXI6OmNoaWxkcmVuQ2xpcFJlY3QKICAgICBDbGlwUmVjdHNDb250ZXh0IGNsaXBS
ZWN0c0NvbnRleHQoY2xpcHBpbmdSb290TGF5ZXIsIDAsIFRlbXBvcmFyeUNsaXBSZWN0cyk7CiAg
ICAgLy8gTmVlZCB0byB1c2UgdGVtcG9yYXJ5IGNsaXAgcmVjdHMsIGJlY2F1c2UgdGhlIHZhbHVl
IG9mICdkb250Q2xpcFRvT3ZlcmZsb3cnIG1heSBiZSBkaWZmZXJlbnQgZnJvbSB0aGUgcGFpbnRp
bmcgcGF0aCAoPHJkYXI6Ly9wcm9ibGVtLzExODQ0OTA5PikuCiAgICAgY2FsY3VsYXRlUmVjdHMo
Y2xpcFJlY3RzQ29udGV4dCwgcmVuZGVyVmlldy0+dW5zY2FsZWREb2N1bWVudFJlY3QoKSwgbGF5
ZXJCb3VuZHMsIGJhY2tncm91bmRSZWN0LCBmb3JlZ3JvdW5kUmVjdCwgb3V0bGluZVJlY3QpOwot
ICAgIHJldHVybiBjbGlwcGluZ1Jvb3RMYXllci0+cmVuZGVyZXIoKS0+bG9jYWxUb0Fic29sdXRl
UXVhZChGbG9hdFF1YWQoZm9yZWdyb3VuZFJlY3QucmVjdCgpKSwgU25hcE9mZnNldEZvclRyYW5z
Zm9ybXMpLmVuY2xvc2luZ0JvdW5kaW5nQm94KCk7CisgICAgcmV0dXJuIGNsaXBwaW5nUm9vdExh
eWVyLT5yZW5kZXJlcigpLT5sb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UXVhZChmb3JlZ3JvdW5k
UmVjdC5yZWN0KCkpKS5lbmNsb3NpbmdCb3VuZGluZ0JveCgpOwogfQogCiBMYXlvdXRSZWN0IFJl
bmRlckxheWVyOjpzZWxmQ2xpcFJlY3QoKSBjb25zdApAQCAtNDM5NCw3ICs0Mzk0LDcgQEAgTGF5
b3V0UmVjdCBSZW5kZXJMYXllcjo6c2VsZkNsaXBSZWN0KCkgYwogICAgIENsaXBSZWN0IGJhY2tn
cm91bmRSZWN0LCBmb3JlZ3JvdW5kUmVjdCwgb3V0bGluZVJlY3Q7CiAgICAgQ2xpcFJlY3RzQ29u
dGV4dCBjbGlwUmVjdHNDb250ZXh0KGNsaXBwaW5nUm9vdExheWVyLCAwLCBQYWludGluZ0NsaXBS
ZWN0cyk7CiAgICAgY2FsY3VsYXRlUmVjdHMoY2xpcFJlY3RzQ29udGV4dCwgcmVuZGVyVmlldy0+
ZG9jdW1lbnRSZWN0KCksIGxheWVyQm91bmRzLCBiYWNrZ3JvdW5kUmVjdCwgZm9yZWdyb3VuZFJl
Y3QsIG91dGxpbmVSZWN0KTsKLSAgICByZXR1cm4gY2xpcHBpbmdSb290TGF5ZXItPnJlbmRlcmVy
KCktPmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRRdWFkKGJhY2tncm91bmRSZWN0LnJlY3QoKSks
IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKS5lbmNsb3NpbmdCb3VuZGluZ0JveCgpOworICAgIHJl
dHVybiBjbGlwcGluZ1Jvb3RMYXllci0+cmVuZGVyZXIoKS0+bG9jYWxUb0Fic29sdXRlUXVhZChG
bG9hdFF1YWQoYmFja2dyb3VuZFJlY3QucmVjdCgpKSkuZW5jbG9zaW5nQm91bmRpbmdCb3goKTsK
IH0KIAogTGF5b3V0UmVjdCBSZW5kZXJMYXllcjo6bG9jYWxDbGlwUmVjdCgpIGNvbnN0CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAko
cmV2aXNpb24gMTM3NDg2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
QmFja2luZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwMzIsNyArMjAzMiw3IEBAIGJvb2wgUmVu
ZGVyTGF5ZXJCYWNraW5nOjpjb250ZW50c1Zpc2libGUKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CiAgICAgSW50UmVjdCB2aXNpYmxlQ29udGVudFJlY3Qodmlldy0+dmlzaWJsZUNvbnRlbnRSZWN0
KCkpOwotICAgIEZsb2F0UXVhZCBhYnNvbHV0ZUNvbnRlbnRRdWFkID0gcmVuZGVyZXIoKS0+bG9j
YWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3QobG9jYWxDb250ZW50UmVjdCksIFNuYXBPZmZzZXRG
b3JUcmFuc2Zvcm1zKTsKKyAgICBGbG9hdFF1YWQgYWJzb2x1dGVDb250ZW50UXVhZCA9IHJlbmRl
cmVyKCktPmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRSZWN0KGxvY2FsQ29udGVudFJlY3QpKTsK
ICAgICByZXR1cm4gYWJzb2x1dGVDb250ZW50UXVhZC5lbmNsb3NpbmdCb3VuZGluZ0JveCgpLmlu
dGVyc2VjdHModmlzaWJsZUNvbnRlbnRSZWN0KTsKIH0KICNlbmRpZgpJbmRleDogU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHMuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xzLmNwcAkocmV2aXNpb24g
MTM3NDg2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHMu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMTUsNyArMjE1LDcgQEAgSW50UG9pbnQgUmVuZGVyTWVk
aWFDb250cm9sczo6dm9sdW1lU2xpZAogCiAgICAgZmxvYXQgem9vbUxldmVsID0gbXV0ZUJ1dHRv
bkJveC0+c3R5bGUoKS0+ZWZmZWN0aXZlWm9vbSgpOwogICAgIGludCB5ID0geU9mZnNldCAqIHpv
b21MZXZlbCArIG11dGVCdXR0b25Cb3gtPnBpeGVsU25hcHBlZE9mZnNldEhlaWdodCgpIC0gc2l6
ZS5oZWlnaHQoKTsKLSAgICBGbG9hdFBvaW50IGFic1BvaW50ID0gbXV0ZUJ1dHRvbkJveC0+bG9j
YWxUb0Fic29sdXRlKEZsb2F0UG9pbnQobXV0ZUJ1dHRvbkJveC0+cGl4ZWxTbmFwcGVkT2Zmc2V0
TGVmdCgpLCB5KSwgSXNGaXhlZCB8IFVzZVRyYW5zZm9ybXMgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNm
b3Jtcyk7CisgICAgRmxvYXRQb2ludCBhYnNQb2ludCA9IG11dGVCdXR0b25Cb3gtPmxvY2FsVG9B
YnNvbHV0ZShGbG9hdFBvaW50KG11dGVCdXR0b25Cb3gtPnBpeGVsU25hcHBlZE9mZnNldExlZnQo
KSwgeSksIElzRml4ZWQgfCBVc2VUcmFuc2Zvcm1zKTsKICAgICBpZiAoYWJzUG9pbnQueSgpIDwg
MCkKICAgICAgICAgeSA9IG11dGVCdXR0b25Cb3gtPnBpeGVsU25hcHBlZEhlaWdodCgpOwogICAg
IHJldHVybiBJbnRQb2ludCh4T2Zmc2V0ICogem9vbUxldmVsLCB5KTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcAkocmV2aXNpb24gMTM3NDg2KQor
KysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzIwLDcgKzMyMCw3IEBAIHZvaWQgUmVuZGVyTWVudUxpc3Q6OnNob3dQb3B1cCgp
CiAKICAgICAvLyBDb21wdXRlIHRoZSB0b3AgbGVmdCB0YWtpbmcgdHJhbnNmb3JtcyBpbnRvIGFj
Y291bnQsIGJ1dCB1c2UKICAgICAvLyB0aGUgYWN0dWFsIHdpZHRoIG9mIHRoZSBlbGVtZW50IHRv
IHNpemUgdGhlIHBvcHVwLgotICAgIEZsb2F0UG9pbnQgYWJzVG9wTGVmdCA9IGxvY2FsVG9BYnNv
bHV0ZShGbG9hdFBvaW50KCksIFVzZVRyYW5zZm9ybXMgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jt
cyk7CisgICAgRmxvYXRQb2ludCBhYnNUb3BMZWZ0ID0gbG9jYWxUb0Fic29sdXRlKEZsb2F0UG9p
bnQoKSwgVXNlVHJhbnNmb3Jtcyk7CiAgICAgSW50UmVjdCBhYnNCb3VuZHMgPSBhYnNvbHV0ZUJv
dW5kaW5nQm94UmVjdElnbm9yaW5nVHJhbnNmb3JtcygpOwogICAgIGFic0JvdW5kcy5zZXRMb2Nh
dGlvbihyb3VuZGVkSW50UG9pbnQoYWJzVG9wTGVmdCkpOwogICAgIEhUTUxTZWxlY3RFbGVtZW50
KiBzZWxlY3QgPSBzZWxlY3RFbGVtZW50KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyT2JqZWN0LmNwcAkocmV2aXNpb24gMTM3NDg2KQorKysgU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyMTksNyArMTIx
OSw3IEBAIHZvaWQgUmVuZGVyT2JqZWN0OjphYnNvbHV0ZUZvY3VzUmluZ1F1YWQKICAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKICAgICAgICAgSW50UmVjdCByZWN0ID0g
cmVjdHNbaV07CiAgICAgICAgIHJlY3QubW92ZSgtYWJzb2x1dGVQb2ludC54KCksIC1hYnNvbHV0
ZVBvaW50LnkoKSk7Ci0gICAgICAgIHF1YWRzLmFwcGVuZChsb2NhbFRvQWJzb2x1dGVRdWFkKEZs
b2F0UXVhZChyZWN0KSwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpKTsKKyAgICAgICAgcXVhZHMu
YXBwZW5kKGxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRRdWFkKHJlY3QpKSk7CiAgICAgfQogfQog
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCShyZXZpc2lvbiAx
Mzc0ODYpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgJKHdvcmtp
bmcgY29weSkKQEAgLTExNCw4ICsxMTQsNyBAQCBlbnVtIFBsYWNlR2VuZXJhdGVkUnVuSW5GbGFn
IHsKIGVudW0gTWFwQ29vcmRpbmF0ZXNNb2RlIHsKICAgICBJc0ZpeGVkID0gMSA8PCAwLAogICAg
IFVzZVRyYW5zZm9ybXMgPSAxIDw8IDEsCi0gICAgQXBwbHlDb250YWluZXJGbGlwID0gMSA8PCAy
LAotICAgIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zID0gMSA8PCAzCisgICAgQXBwbHlDb250YWlu
ZXJGbGlwID0gMSA8PCAyCiB9OwogdHlwZWRlZiB1bnNpZ25lZCBNYXBDb29yZGluYXRlc0ZsYWdz
OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCShyZXZpc2lv
biAxMzc0ODYpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTM3MSwxMiArMzcxLDEyIEBAIHZvaWQgUmVuZGVyVGV4dDo6YWJzb2x1
dGVSZWN0c0ZvclJhbmdlKFYKICAgICAgICAgICAgICAgICAgICAgci5zZXRYKHNlbGVjdGlvblJl
Y3QueCgpKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBy
ZWN0cy5hcHBlbmQobG9jYWxUb0Fic29sdXRlUXVhZChyLCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jt
cywgd2FzRml4ZWQpLmVuY2xvc2luZ0JvdW5kaW5nQm94KCkpOworICAgICAgICAgICAgcmVjdHMu
YXBwZW5kKGxvY2FsVG9BYnNvbHV0ZVF1YWQociwgMCwgd2FzRml4ZWQpLmVuY2xvc2luZ0JvdW5k
aW5nQm94KCkpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMg
Y29kZSBpcyB3cm9uZy4gSXQncyBjb252ZXJ0aW5nIGxvY2FsIHRvIGFic29sdXRlIHR3aWNlLiBo
dHRwOi8vd2Via2l0Lm9yZy9iLzY1NzIyCiAgICAgICAgICAgICBGbG9hdFJlY3QgcmVjdCA9IGxv
Y2FsUXVhZEZvclRleHRCb3goYm94LCBzdGFydCwgZW5kLCB1c2VTZWxlY3Rpb25IZWlnaHQpOwog
ICAgICAgICAgICAgaWYgKCFyZWN0LmlzWmVybygpKQotICAgICAgICAgICAgICAgIHJlY3RzLmFw
cGVuZChsb2NhbFRvQWJzb2x1dGVRdWFkKHJlY3QsIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCB3
YXNGaXhlZCkuZW5jbG9zaW5nQm91bmRpbmdCb3goKSk7CisgICAgICAgICAgICAgICAgcmVjdHMu
YXBwZW5kKGxvY2FsVG9BYnNvbHV0ZVF1YWQocmVjdCwgMCwgd2FzRml4ZWQpLmVuY2xvc2luZ0Jv
dW5kaW5nQm94KCkpOwogICAgICAgICB9CiAgICAgfQogfQpAQCAtNDE5LDcgKzQxOSw3IEBAIHZv
aWQgUmVuZGVyVGV4dDo6YWJzb2x1dGVRdWFkcyhWZWN0b3I8RmwKICAgICAgICAgICAgIGVsc2UK
ICAgICAgICAgICAgICAgICBib3VuZGFyaWVzLnNldEhlaWdodChlbGxpcHNpc1JlY3QubWF4WSgp
IC0gYm91bmRhcmllcy55KCkpOwogICAgICAgICB9Ci0gICAgICAgIHF1YWRzLmFwcGVuZChsb2Nh
bFRvQWJzb2x1dGVRdWFkKGJvdW5kYXJpZXMsIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCB3YXNG
aXhlZCkpOworICAgICAgICBxdWFkcy5hcHBlbmQobG9jYWxUb0Fic29sdXRlUXVhZChib3VuZGFy
aWVzLCAwLCB3YXNGaXhlZCkpOwogICAgIH0KIH0KICAgICAKQEAgLTQ1NCwxMSArNDU0LDExIEBA
IHZvaWQgUmVuZGVyVGV4dDo6YWJzb2x1dGVRdWFkc0ZvclJhbmdlKFYKICAgICAgICAgICAgICAg
ICAgICAgci5zZXRYKHNlbGVjdGlvblJlY3QueCgpKTsKICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICBxdWFkcy5hcHBlbmQobG9jYWxUb0Fic29sdXRlUXVhZChy
LCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jtcywgd2FzRml4ZWQpKTsKKyAgICAgICAgICAgIHF1YWRz
LmFwcGVuZChsb2NhbFRvQWJzb2x1dGVRdWFkKHIsIDAsIHdhc0ZpeGVkKSk7CiAgICAgICAgIH0g
ZWxzZSB7CiAgICAgICAgICAgICBGbG9hdFJlY3QgcmVjdCA9IGxvY2FsUXVhZEZvclRleHRCb3go
Ym94LCBzdGFydCwgZW5kLCB1c2VTZWxlY3Rpb25IZWlnaHQpOwogICAgICAgICAgICAgaWYgKCFy
ZWN0LmlzWmVybygpKQotICAgICAgICAgICAgICAgIHF1YWRzLmFwcGVuZChsb2NhbFRvQWJzb2x1
dGVRdWFkKHJlY3QsIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCB3YXNGaXhlZCkpOworICAgICAg
ICAgICAgICAgIHF1YWRzLmFwcGVuZChsb2NhbFRvQWJzb2x1dGVRdWFkKHJlY3QsIDAsIHdhc0Zp
eGVkKSk7CiAgICAgICAgIH0KICAgICB9CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZS5jcHAJKHJldmlzaW9uIDEzNzQ4NikKKysrIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUaGVtZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUyMyw3ICs1MjMsNyBA
QCBTdHJpbmcgUmVuZGVyVGhlbWU6OmZvcm1hdE1lZGlhQ29udHJvbHNSCiBJbnRQb2ludCBSZW5k
ZXJUaGVtZTo6dm9sdW1lU2xpZGVyT2Zmc2V0RnJvbU11dGVCdXR0b24oUmVuZGVyQm94KiBtdXRl
QnV0dG9uQm94LCBjb25zdCBJbnRTaXplJiBzaXplKSBjb25zdAogewogICAgIGludCB5ID0gLXNp
emUuaGVpZ2h0KCk7Ci0gICAgRmxvYXRQb2ludCBhYnNQb2ludCA9IG11dGVCdXR0b25Cb3gtPmxv
Y2FsVG9BYnNvbHV0ZShGbG9hdFBvaW50KG11dGVCdXR0b25Cb3gtPnBpeGVsU25hcHBlZE9mZnNl
dExlZnQoKSwgeSksIElzRml4ZWQgfCBVc2VUcmFuc2Zvcm1zIHwgU25hcE9mZnNldEZvclRyYW5z
Zm9ybXMpOworICAgIEZsb2F0UG9pbnQgYWJzUG9pbnQgPSBtdXRlQnV0dG9uQm94LT5sb2NhbFRv
QWJzb2x1dGUoRmxvYXRQb2ludChtdXRlQnV0dG9uQm94LT5waXhlbFNuYXBwZWRPZmZzZXRMZWZ0
KCksIHkpLCBJc0ZpeGVkIHwgVXNlVHJhbnNmb3Jtcyk7CiAgICAgaWYgKGFic1BvaW50LnkoKSA8
IDApCiAgICAgICAgIHkgPSBtdXRlQnV0dG9uQm94LT5oZWlnaHQoKTsKICAgICByZXR1cm4gSW50
UG9pbnQoMCwgeSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3Bw
CShyZXZpc2lvbiAxMzc0ODYpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmll
dy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUzNiw3ICs1MzYsNyBAQCBJbnRSZWN0IFJlbmRlclZp
ZXc6OnNlbGVjdGlvbkJvdW5kcyhib29sCiAgICAgICAgIC8vIFJlbmRlclNlbGVjdGlvbkluZm86
OnJlY3QoKSBpcyBpbiB0aGUgY29vcmRpbmF0ZXMgb2YgdGhlIHJlcGFpbnRDb250YWluZXIsIHNv
IG1hcCB0byBwYWdlIGNvb3JkaW5hdGVzLgogICAgICAgICBMYXlvdXRSZWN0IGN1cnJSZWN0ID0g
aW5mby0+cmVjdCgpOwogICAgICAgICBpZiAoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWlu
dENvbnRhaW5lciA9IGluZm8tPnJlcGFpbnRDb250YWluZXIoKSkgewotICAgICAgICAgICAgRmxv
YXRRdWFkIGFic1F1YWQgPSByZXBhaW50Q29udGFpbmVyLT5sb2NhbFRvQWJzb2x1dGVRdWFkKEZs
b2F0UmVjdChjdXJyUmVjdCksIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKTsKKyAgICAgICAgICAg
IEZsb2F0UXVhZCBhYnNRdWFkID0gcmVwYWludENvbnRhaW5lci0+bG9jYWxUb0Fic29sdXRlUXVh
ZChGbG9hdFJlY3QoY3VyclJlY3QpKTsKICAgICAgICAgICAgIGN1cnJSZWN0ID0gYWJzUXVhZC5l
bmNsb3NpbmdCb3VuZGluZ0JveCgpOyAKICAgICAgICAgfQogICAgICAgICBzZWxSZWN0LnVuaXRl
KGN1cnJSZWN0KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaAkocmV2
aXNpb24gMTM3NDg2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaAko
d29ya2luZyBjb3B5KQpAQCAtMjI5LDcgKzIyOSw3IEBAIHB1YmxpYzoKICAgICBib29sIGhhc1Jl
bmRlckNvdW50ZXJzKCkgeyByZXR1cm4gbV9yZW5kZXJDb3VudGVyQ291bnQ7IH0KIAogcHJvdGVj
dGVkOgotICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxh
eWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29v
cmRpbmF0ZXNGbGFncyA9IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zv
cm1zLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9p
ZCBtYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFp
bnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29vcmRpbmF0ZXNGbGFncyA9IEFwcGx5
Q29udGFpbmVyRmxpcCwgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBPVkVSUklERTsKICAgICB2
aXJ0dWFsIGNvbnN0IFJlbmRlck9iamVjdCogcHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBS
ZW5kZXJMYXllck1vZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1h
cCYpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBtYXBBYnNvbHV0ZVRvTG9jYWxQ
b2ludChNYXBDb29yZGluYXRlc0ZsYWdzLCBUcmFuc2Zvcm1TdGF0ZSYpIGNvbnN0OwogICAgIHZp
cnR1YWwgYm9vbCByZXF1aXJlc0NvbHVtbnMoaW50IGRlc2lyZWRDb2x1bW5Db3VudCkgY29uc3Qg
T1ZFUlJJREU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNw
cAkocmV2aXNpb24gMTM3NDg2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldp
ZGdldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2OSw3ICsxNjksNyBAQCBib29sIFJlbmRlcldp
ZGdldDo6dXBkYXRlV2lkZ2V0R2VvbWV0cnkoCiAgICAgaWYgKCFtX3dpZGdldC0+dHJhbnNmb3Jt
c0FmZmVjdEZyYW1lUmVjdCgpKQogICAgICAgICByZXR1cm4gc2V0V2lkZ2V0R2VvbWV0cnkoYWJz
b2x1dGVDb250ZW50Qm94KCkpOwogCi0gICAgTGF5b3V0UmVjdCBhYnNvbHV0ZUNvbnRlbnRCb3go
bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFF1YWQoY29udGVudEJveCksIFNuYXBPZmZzZXRGb3JU
cmFuc2Zvcm1zKS5ib3VuZGluZ0JveCgpKTsKKyAgICBMYXlvdXRSZWN0IGFic29sdXRlQ29udGVu
dEJveChsb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UXVhZChjb250ZW50Qm94KSkuYm91bmRpbmdC
b3goKSk7CiAgICAgaWYgKG1fd2lkZ2V0LT5pc0ZyYW1lVmlldygpKSB7CiAgICAgICAgIGNvbnRl
bnRCb3guc2V0TG9jYXRpb24oYWJzb2x1dGVDb250ZW50Qm94LmxvY2F0aW9uKCkpOwogICAgICAg
ICByZXR1cm4gc2V0V2lkZ2V0R2VvbWV0cnkoY29udGVudEJveCk7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ZvcmVpZ25PYmplY3QuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9iamVjdC5j
cHAJKHJldmlzaW9uIDEzNzQ4NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHRm9yZWlnbk9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE5NSw3ICsxOTUsNyBA
QCBib29sIFJlbmRlclNWR0ZvcmVpZ25PYmplY3Q6Om5vZGVBdFBvaW50CiAKIHZvaWQgUmVuZGVy
U1ZHRm9yZWlnbk9iamVjdDo6bWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1v
ZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3Rh
dGUsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQpIGNvbnN0CiB7Ci0g
ICAgU1ZHUmVuZGVyU3VwcG9ydDo6bWFwTG9jYWxUb0NvbnRhaW5lcih0aGlzLCByZXBhaW50Q29u
dGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwgbW9kZSAmIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCB3
YXNGaXhlZCk7CisgICAgU1ZHUmVuZGVyU3VwcG9ydDo6bWFwTG9jYWxUb0NvbnRhaW5lcih0aGlz
LCByZXBhaW50Q29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwgd2FzRml4ZWQpOwogfQogCiBjb25z
dCBSZW5kZXJPYmplY3QqIFJlbmRlclNWR0ZvcmVpZ25PYmplY3Q6OnB1c2hNYXBwaW5nVG9Db250
YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0b3JUb1N0b3BBdCwgUmVu
ZGVyR2VvbWV0cnlNYXAmIGdlb21ldHJ5TWFwKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWduT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWduT2JqZWN0LmgJKHJldmlz
aW9uIDEzNzQ4NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9y
ZWlnbk9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC01NCw3ICs1NCw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIGJvb2wgbm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRUZXN0
UmVzdWx0JiwgY29uc3QgSGl0VGVzdExvY2F0aW9uJiBsb2NhdGlvbkluQ29udGFpbmVyLCBjb25z
dCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQsIEhpdFRlc3RBY3Rpb24pIE9WRVJSSURF
OwogICAgIHZpcnR1YWwgYm9vbCBpc1NWR0ZvcmVpZ25PYmplY3QoKSBjb25zdCB7IHJldHVybiB0
cnVlOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5k
ZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1h
cENvb3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJh
bnNmb3JtcywgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBy
ZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBB
cHBseUNvbnRhaW5lckZsaXAsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3QgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCBjb25zdCBSZW5kZXJPYmplY3QqIHB1c2hNYXBwaW5nVG9Db250YWluZXIoY29u
c3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0b3JUb1N0b3BBdCwgUmVuZGVyR2VvbWV0
cnlNYXAmKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNUcmFuc2Zv
cm1VcGRhdGUoKSB7IG1fbmVlZHNUcmFuc2Zvcm1VcGRhdGUgPSB0cnVlOyB9CiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5jcHAJKHJl
dmlzaW9uIDEzNzQ4NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
SW5saW5lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODEsNyArODEsNyBAQCB2b2lkIFJlbmRlclNW
R0lubGluZTo6Y29tcHV0ZUZsb2F0UmVjdEZvCiAKIHZvaWQgUmVuZGVyU1ZHSW5saW5lOjptYXBM
b2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250
YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFwQ29vcmRpbmF0ZXNGbGFn
cyBtb2RlLCBib29sKiB3YXNGaXhlZCkgY29uc3QKIHsKLSAgICBTVkdSZW5kZXJTdXBwb3J0Ojpt
YXBMb2NhbFRvQ29udGFpbmVyKHRoaXMsIHJlcGFpbnRDb250YWluZXIsIHRyYW5zZm9ybVN0YXRl
LCBtb2RlICYgU25hcE9mZnNldEZvclRyYW5zZm9ybXMsIHdhc0ZpeGVkKTsKKyAgICBTVkdSZW5k
ZXJTdXBwb3J0OjptYXBMb2NhbFRvQ29udGFpbmVyKHRoaXMsIHJlcGFpbnRDb250YWluZXIsIHRy
YW5zZm9ybVN0YXRlLCB3YXNGaXhlZCk7CiB9CiAKIGNvbnN0IFJlbmRlck9iamVjdCogUmVuZGVy
U1ZHSW5saW5lOjpwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxP
YmplY3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJiBnZW9tZXRyeU1hcCkg
Y29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5l
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJ
bmxpbmUuaAkocmV2aXNpb24gMTM3NDg2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdJbmxpbmUuaAkod29ya2luZyBjb3B5KQpAQCAtNDcsNyArNDcsNyBAQCBwdWJs
aWM6CiAKICAgICB2aXJ0dWFsIExheW91dFJlY3QgY2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFp
bnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lcikgY29uc3Qg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50KGNv
bnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIEZsb2F0UmVjdCYs
IGJvb2wgZml4ZWQgPSBmYWxzZSkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIG1h
cExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENv
bnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBDb29yZGluYXRlc0ZsYWdzID0gQXBwbHlDb250
YWluZXJGbGlwIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMsIGJvb2wqIHdhc0ZpeGVkID0gMCkg
Y29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoY29u
c3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3Rh
dGUmLCBNYXBDb29yZGluYXRlc0ZsYWdzID0gQXBwbHlDb250YWluZXJGbGlwLCBib29sKiB3YXNG
aXhlZCA9IDApIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgUmVuZGVyT2JqZWN0
KiBwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGFu
Y2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJikgY29uc3QgT1ZFUlJJREU7CiAgICAg
dmlydHVhbCB2b2lkIGFic29sdXRlUXVhZHMoVmVjdG9yPEZsb2F0UXVhZD4mLCBib29sKiB3YXNG
aXhlZCkgY29uc3Q7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHTW9kZWxPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwCShyZXZpc2lvbiAxMzc0ODYpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNTksNyArNTksNyBAQCB2b2lkIFJlbmRlclNWR01vZGVsT2JqZWN0Ojpjb21w
dXRlRmxvYXRSCiAKIHZvaWQgUmVuZGVyU1ZHTW9kZWxPYmplY3Q6Om1hcExvY2FsVG9Db250YWlu
ZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNm
b3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUsIGJvb2wq
IHdhc0ZpeGVkKSBjb25zdAogewotICAgIFNWR1JlbmRlclN1cHBvcnQ6Om1hcExvY2FsVG9Db250
YWluZXIodGhpcywgcmVwYWludENvbnRhaW5lciwgdHJhbnNmb3JtU3RhdGUsIG1vZGUgJiBTbmFw
T2Zmc2V0Rm9yVHJhbnNmb3Jtcywgd2FzRml4ZWQpOworICAgIFNWR1JlbmRlclN1cHBvcnQ6Om1h
cExvY2FsVG9Db250YWluZXIodGhpcywgcmVwYWludENvbnRhaW5lciwgdHJhbnNmb3JtU3RhdGUs
IHdhc0ZpeGVkKTsKIH0KIAogY29uc3QgUmVuZGVyT2JqZWN0KiBSZW5kZXJTVkdNb2RlbE9iamVj
dDo6cHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBh
bmNlc3RvclRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1hcCYgZ2VvbWV0cnlNYXApIGNvbnN0Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2Rl
bE9iamVjdC5oCShyZXZpc2lvbiAxMzc0ODYpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTU4LDcgKzU4LDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBhYnNvbHV0ZVJlY3RzKFZlY3RvcjxJbnRSZWN0
PiYsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCkgY29uc3Q7CiAgICAgdmly
dHVhbCB2b2lkIGFic29sdXRlUXVhZHMoVmVjdG9yPEZsb2F0UXVhZD4mLCBib29sKiB3YXNGaXhl
ZCkgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBS
ZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYs
IE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9y
VHJhbnNmb3JtcywgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0
KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3Mg
PSBBcHBseUNvbnRhaW5lckZsaXAsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3QgT1ZFUlJJREU7
CiAgICAgdmlydHVhbCBjb25zdCBSZW5kZXJPYmplY3QqIHB1c2hNYXBwaW5nVG9Db250YWluZXIo
Y29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0b3JUb1N0b3BBdCwgUmVuZGVyR2Vv
bWV0cnlNYXAmKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc3R5bGVXaWxsQ2hh
bmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG5ld1N0eWxlKTsKICAgICB2
aXJ0dWFsIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJT
dHlsZSogb2xkU3R5bGUpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdSb290LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdSb290LmgJKHJldmlzaW9uIDEzNzQ4NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDQsNyArMTA0LDcg
QEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIExheW91dFJlY3QgY2xpcHBlZE92ZXJmbG93UmVjdEZv
clJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lcikg
Y29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVGbG9hdFJlY3RGb3JSZXBh
aW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIEZsb2F0
UmVjdCYgcmVwYWludFJlY3QsIGJvb2wgZml4ZWQpIGNvbnN0IE9WRVJSSURFOwogCi0gICAgdmly
dHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVj
dCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBDb29yZGluYXRlc0ZsYWdz
ID0gQXBwbHlDb250YWluZXJGbGlwIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMsIGJvb2wqIHdh
c0ZpeGVkID0gMCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9D
b250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwg
VHJhbnNmb3JtU3RhdGUmLCBNYXBDb29yZGluYXRlc0ZsYWdzID0gQXBwbHlDb250YWluZXJGbGlw
LCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3Qg
UmVuZGVyT2JqZWN0KiBwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9k
ZWxPYmplY3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJikgY29uc3QgT1ZF
UlJJREU7CiAKICAgICB2aXJ0dWFsIGJvb2wgY2FuQmVTZWxlY3Rpb25MZWFmKCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHVGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdUZXh0LmNwcAkocmV2aXNpb24gMTM3NDg2KQorKysgU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTEzLDcgKzEx
Myw3IEBAIHZvaWQgUmVuZGVyU1ZHVGV4dDo6Y29tcHV0ZUZsb2F0UmVjdEZvclIKIAogdm9pZCBS
ZW5kZXJTVkdUZXh0OjptYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxP
YmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwg
TWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBib29sKiB3YXNGaXhlZCkgY29uc3QKIHsKLSAgICBT
VkdSZW5kZXJTdXBwb3J0OjptYXBMb2NhbFRvQ29udGFpbmVyKHRoaXMsIHJlcGFpbnRDb250YWlu
ZXIsIHRyYW5zZm9ybVN0YXRlLCBtb2RlICYgU25hcE9mZnNldEZvclRyYW5zZm9ybXMsIHdhc0Zp
eGVkKTsKKyAgICBTVkdSZW5kZXJTdXBwb3J0OjptYXBMb2NhbFRvQ29udGFpbmVyKHRoaXMsIHJl
cGFpbnRDb250YWluZXIsIHRyYW5zZm9ybVN0YXRlLCB3YXNGaXhlZCk7CiB9CiAKIGNvbnN0IFJl
bmRlck9iamVjdCogUmVuZGVyU1ZHVGV4dDo6cHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBS
ZW5kZXJMYXllck1vZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1h
cCYgZ2VvbWV0cnlNYXApIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1RleHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR1RleHQuaAkocmV2aXNpb24gMTM3NDg2KQorKysgU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTc1LDcgKzc1
LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZVJlY3RGb3JSZXBhaW50KGNv
bnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIExheW91dFJlY3Qm
LCBib29sIGZpeGVkID0gZmFsc2UpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBj
b21wdXRlRmxvYXRSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBy
ZXBhaW50Q29udGFpbmVyLCBGbG9hdFJlY3QmLCBib29sIGZpeGVkID0gZmFsc2UpIGNvbnN0IE9W
RVJSSURFOwogCi0gICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBN
YXBDb29yZGluYXRlc0ZsYWdzID0gQXBwbHlDb250YWluZXJGbGlwIHwgU25hcE9mZnNldEZvclRy
YW5zZm9ybXMsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVh
bCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCog
cmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBDb29yZGluYXRlc0ZsYWdzID0g
QXBwbHlDb250YWluZXJGbGlwLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURFOwog
ICAgIHZpcnR1YWwgY29uc3QgUmVuZGVyT2JqZWN0KiBwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNv
bnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21l
dHJ5TWFwJikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGFkZENoaWxkKFJlbmRl
ck9iamVjdCogY2hpbGQsIFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQgPSAwKTsKICAgICB2aXJ0
dWFsIHZvaWQgcmVtb3ZlQ2hpbGQoUmVuZGVyT2JqZWN0KikgT1ZFUlJJREU7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5jcHAJKHJl
dmlzaW9uIDEzNzQ4NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVy
U3VwcG9ydC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg0LDcgKzg0LDcgQEAgdm9pZCBTVkdSZW5k
ZXJTdXBwb3J0Ojpjb21wdXRlRmxvYXRSZWN0RgogICAgIG9iamVjdC0+cGFyZW50KCktPmNvbXB1
dGVGbG9hdFJlY3RGb3JSZXBhaW50KHJlcGFpbnRDb250YWluZXIsIHJlcGFpbnRSZWN0LCBmaXhl
ZCk7CiB9CiAKLXZvaWQgU1ZHUmVuZGVyU3VwcG9ydDo6bWFwTG9jYWxUb0NvbnRhaW5lcihjb25z
dCBSZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVw
YWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBib29sIHNuYXBP
ZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCkKK3ZvaWQgU1ZHUmVuZGVyU3VwcG9y
dDo6bWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3Qg
UmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUm
IHRyYW5zZm9ybVN0YXRlLCBib29sKiB3YXNGaXhlZCkKIHsKICAgICB0cmFuc2Zvcm1TdGF0ZS5h
cHBseVRyYW5zZm9ybShvYmplY3QtPmxvY2FsVG9QYXJlbnRUcmFuc2Zvcm0oKSk7CiAKQEAgLTk3
LDggKzk3LDYgQEAgdm9pZCBTVkdSZW5kZXJTdXBwb3J0OjptYXBMb2NhbFRvQ29udGFpbgogICAg
ICAgICB0cmFuc2Zvcm1TdGF0ZS5hcHBseVRyYW5zZm9ybSh0b1JlbmRlclNWR1Jvb3QocGFyZW50
KS0+bG9jYWxUb0JvcmRlckJveFRyYW5zZm9ybSgpKTsKIAogICAgIE1hcENvb3JkaW5hdGVzRmxh
Z3MgbW9kZSA9IFVzZVRyYW5zZm9ybXM7Ci0gICAgaWYgKHNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1z
KQotICAgICAgICBtb2RlIHw9IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zOwogICAgIHBhcmVudC0+
bWFwTG9jYWxUb0NvbnRhaW5lcihyZXBhaW50Q29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwgbW9k
ZSwgd2FzRml4ZWQpOwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NW
R1JlbmRlclN1cHBvcnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1NWR1JlbmRlclN1cHBvcnQuaAkocmV2aXNpb24gMTM3NDg2KQorKysgU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmgJKHdvcmtpbmcgY29weSkKQEAgLTY4
LDcgKzY4LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBGbG9hdFJlY3QgcmVwYWludFJlY3RGb3JS
ZW5kZXJlckluTG9jYWxDb29yZGluYXRlc0V4Y2x1ZGluZ1NWR1NoYWRvdyhjb25zdCBSZW5kZXJP
YmplY3QqKTsKICAgICBzdGF0aWMgTGF5b3V0UmVjdCBjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVw
YWludChjb25zdCBSZW5kZXJPYmplY3QqLCBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBy
ZXBhaW50Q29udGFpbmVyKTsKICAgICBzdGF0aWMgdm9pZCBjb21wdXRlRmxvYXRSZWN0Rm9yUmVw
YWludChjb25zdCBSZW5kZXJPYmplY3QqLCBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBy
ZXBhaW50Q29udGFpbmVyLCBGbG9hdFJlY3QmLCBib29sIGZpeGVkKTsKLSAgICBzdGF0aWMgdm9p
ZCBtYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlck9iamVjdCosIGNvbnN0IFJlbmRlckxh
eWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgYm9vbCBz
bmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcyA9IHRydWUsIGJvb2wqIHdhc0ZpeGVkID0gMCk7CisgICAg
c3RhdGljIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJPYmplY3QqLCBjb25z
dCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0
ZSYsIGJvb2wqIHdhc0ZpeGVkID0gMCk7CiAgICAgc3RhdGljIGNvbnN0IFJlbmRlck9iamVjdCog
cHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJPYmplY3QqLCBjb25zdCBSZW5kZXJM
YXllck1vZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1hcCYpOwog
ICAgIHN0YXRpYyBib29sIGNoZWNrRm9yU1ZHUmVwYWludER1cmluZ0xheW91dChSZW5kZXJPYmpl
Y3QqKTsKIApJbmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gMTM3NjI5KQorKysgU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMTItMTMg
IExldmkgV2VpbnRyYXViICA8bGV2aXdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFB1c2ggcGl4
ZWwgc25hcHBpbmcgbG9naWMgaW50byBUcmFuc2Zvcm1TdGF0ZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxNzc5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRWxpbWluYXRpbmcgdXNlIG9mIFNuYXBPZmZz
ZXRGb3JUcmFuc2Zvcm1zIGFzIGl0J3Mgbm8gbG9uZ2VyIG5lZWRlZC4KKworICAgICAgICAqIFdl
YlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OnNjcmVlblJlY3RPZkNvbnRlbnRzKToKKwogMjAxMi0xMi0xMyAgQW5kZXJzIENhcmxz
c29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSB1bnVzZWQgaW5pdGlh
dGluZ1BhZ2UgcGFyYW1ldGVyIGZyb20gZG93bmxvYWQgb2JqZWN0cwpJbmRleDogU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNj
cmVlbk1hbmFnZXIuY3BwCShyZXZpc2lvbiAxMzc0ODYpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC01Miw3ICs1Miw3IEBAIHN0YXRpYyBJbnRSZWN0IHNjcmVlblJlY3RPZkNvbnRlbnRzKEVs
ZW0KICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKGVsZW1lbnQtPnJl
bmRlcmVyKCkgJiYgZWxlbWVudC0+cmVuZGVyZXIoKS0+aGFzTGF5ZXIoKSAmJiBlbGVtZW50LT5y
ZW5kZXJlcigpLT5lbmNsb3NpbmdMYXllcigpLT5pc0NvbXBvc2l0ZWQoKSkgewogICAgICAgICBG
bG9hdFF1YWQgY29udGVudHNCb3ggPSBzdGF0aWNfY2FzdDxGbG9hdFJlY3Q+KGVsZW1lbnQtPnJl
bmRlcmVyKCktPmVuY2xvc2luZ0xheWVyKCktPmJhY2tpbmcoKS0+Y29udGVudHNCb3goKSk7Ci0g
ICAgICAgIGNvbnRlbnRzQm94ID0gZWxlbWVudC0+cmVuZGVyZXIoKS0+bG9jYWxUb0Fic29sdXRl
UXVhZChjb250ZW50c0JveCwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpOworICAgICAgICBjb250
ZW50c0JveCA9IGVsZW1lbnQtPnJlbmRlcmVyKCktPmxvY2FsVG9BYnNvbHV0ZVF1YWQoY29udGVu
dHNCb3gpOwogICAgICAgICByZXR1cm4gZWxlbWVudC0+cmVuZGVyZXIoKS0+dmlldygpLT5mcmFt
ZVZpZXcoKS0+Y29udGVudHNUb1NjcmVlbihjb250ZW50c0JveC5lbmNsb3NpbmdCb3VuZGluZ0Jv
eCgpKTsKICAgICB9CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZp
c2lvbiAxMzc2MjkpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDEyLTEyLTEzICBMZXZpIFdlaW50cmF1YiAgPGxl
dml3QGNocm9taXVtLm9yZz4KKworICAgICAgICBQdXNoIHBpeGVsIHNuYXBwaW5nIGxvZ2ljIGlu
dG8gVHJhbnNmb3JtU3RhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEwMTc3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEVsaW1pbmF0aW5nIHVzZSBvZiBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcyBhcyBp
dCdzIG5vIGxvbmdlciBuZWVkZWQuCisKKyAgICAgICAgKiBzcmMvRmluZEluUGFnZUNvb3JkaW5h
dGVzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6dG9Ob3JtYWxpemVkUmVjdCk6CisgICAgICAgICog
c3JjL0xpbmtIaWdobGlnaHQuY3BwOgorICAgICAgICAoV2ViS2l0Ojpjb252ZXJ0VGFyZ2V0U3Bh
Y2VRdWFkVG9Db21wb3NpdGVkTGF5ZXIpOgorICAgICAgICAqIHNyYy9XZWJJbnB1dEV2ZW50Q29u
dmVyc2lvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OmNvbnZlcnRBYnNvbHV0ZUxvY2F0aW9uRm9y
UmVuZGVyT2JqZWN0KToKKyAgICAgICAgKiBzcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlBsdWdpbkNvbnRhaW5lckltcGw6OndpbmRvd1RvTG9jYWxQ
b2ludCk6CisKIDIwMTItMTItMTMgIFl1c3VmIE96dXlzYWwgIDx5dXN1Zm9AZ29vZ2xlLmNvbT4K
IAogICAgICAgICBDaGVjayB3aGV0aGVyIGEgdG91Y2hEb3duIGxhbmRzIG9uIGEgcmVnaXN0ZXJl
ZCB0b3VjaCBldmVudCBoYW5kbGVyIGZyb20gdGhlIGNvbXBvc2l0b3IKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0ZpbmRJblBhZ2VDb29yZGluYXRlcy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRmluZEluUGFnZUNvb3JkaW5hdGVzLmNwcAko
cmV2aXNpb24gMTM3NDg2KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRmluZEluUGFn
ZUNvb3JkaW5hdGVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjcsNyArNjcsNyBAQCBzdGF0aWMg
RmxvYXRSZWN0IHRvTm9ybWFsaXplZFJlY3QoY29uc3QgCiAgICAgICAgIHNjcm9sbGVkT3JpZ2lu
ID0gLUludFBvaW50KGNvbnRhaW5lci0+c2Nyb2xsZWRDb250ZW50T2Zmc2V0KCkpOwogCiAgICAg
RmxvYXRSZWN0IG92ZXJmbG93UmVjdChzY3JvbGxlZE9yaWdpbiwgY29udGFpbmVyLT5tYXhMYXlv
dXRPdmVyZmxvdygpKTsKLSAgICBGbG9hdFJlY3QgY29udGFpbmVyUmVjdCA9IGNvbnRhaW5lci0+
bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFF1YWQob3ZlcmZsb3dSZWN0KSwgU25hcE9mZnNldEZv
clRyYW5zZm9ybXMpLmVuY2xvc2luZ0JvdW5kaW5nQm94KCk7CisgICAgRmxvYXRSZWN0IGNvbnRh
aW5lclJlY3QgPSBjb250YWluZXItPmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRRdWFkKG92ZXJm
bG93UmVjdCkpLmVuY2xvc2luZ0JvdW5kaW5nQm94KCk7CiAKICAgICBpZiAoY29udGFpbmVyUmVj
dC5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBGbG9hdFJlY3QoKTsKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0xpbmtIaWdobGlnaHQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL0xpbmtIaWdobGlnaHQuY3BwCShyZXZpc2lvbiAxMzc0ODYp
CisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9MaW5rSGlnaGxpZ2h0LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTYxLDcgKzE2MSw3IEBAIHN0YXRpYyB2b2lkIGNvbnZlcnRUYXJnZXRTcGFj
ZVF1YWRUb0NvbXAKIAogICAgICAgICBwb2ludCA9IHRhcmdldFJlbmRlcmVyLT5mcmFtZSgpLT52
aWV3KCktPmNvbnRlbnRzVG9XaW5kb3cocG9pbnQpOwogICAgICAgICBwb2ludCA9IGNvbXBvc2l0
ZWRSZW5kZXJlci0+ZnJhbWUoKS0+dmlldygpLT53aW5kb3dUb0NvbnRlbnRzKHBvaW50KTsKLSAg
ICAgICAgRmxvYXRQb2ludCBmbG9hdFBvaW50ID0gY29tcG9zaXRlZFJlbmRlcmVyLT5hYnNvbHV0
ZVRvTG9jYWwocG9pbnQsIFVzZVRyYW5zZm9ybXMgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jtcyk7
CisgICAgICAgIEZsb2F0UG9pbnQgZmxvYXRQb2ludCA9IGNvbXBvc2l0ZWRSZW5kZXJlci0+YWJz
b2x1dGVUb0xvY2FsKHBvaW50LCBVc2VUcmFuc2Zvcm1zKTsKIAogICAgICAgICBzd2l0Y2ggKGkp
IHsKICAgICAgICAgY2FzZSAwOiBjb21wb3NpdGVkU3BhY2VRdWFkLnNldFAxKGZsb2F0UG9pbnQp
OyBicmVhazsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklucHV0RXZlbnRD
b252ZXJzaW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJJbnB1dEV2ZW50Q29udmVyc2lvbi5jcHAJKHJldmlzaW9uIDEzNzQ4NikKKysrIFNvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYklucHV0RXZlbnRDb252ZXJzaW9uLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDA0LDcgKzQwNCw3IEBAIHN0YXRpYyBpbnQgZ2V0V2ViSW5wdXRNb2RpZmllcnMo
Y29uc3QgVUkKIAogc3RhdGljIEludFBvaW50IGNvbnZlcnRBYnNvbHV0ZUxvY2F0aW9uRm9yUmVu
ZGVyT2JqZWN0KGNvbnN0IExheW91dFBvaW50JiBsb2NhdGlvbiwgY29uc3QgV2ViQ29yZTo6UmVu
ZGVyT2JqZWN0JiByZW5kZXJPYmplY3QpCiB7Ci0gICAgcmV0dXJuIHJvdW5kZWRJbnRQb2ludChy
ZW5kZXJPYmplY3QuYWJzb2x1dGVUb0xvY2FsKGxvY2F0aW9uLCBVc2VUcmFuc2Zvcm1zIHwgU25h
cE9mZnNldEZvclRyYW5zZm9ybXMpKTsKKyAgICByZXR1cm4gcm91bmRlZEludFBvaW50KHJlbmRl
ck9iamVjdC5hYnNvbHV0ZVRvTG9jYWwobG9jYXRpb24sIFVzZVRyYW5zZm9ybXMpKTsKIH0KIAog
c3RhdGljIHZvaWQgdXBkYXRlV2ViTW91c2VFdmVudEZyb21XZWJDb3JlTW91c2VFdmVudChjb25z
dCBNb3VzZVJlbGF0ZWRFdmVudCYgZXZlbnQsIGNvbnN0IFdpZGdldCYgd2lkZ2V0LCBjb25zdCBX
ZWJDb3JlOjpSZW5kZXJPYmplY3QmIHJlbmRlck9iamVjdCwgV2ViTW91c2VFdmVudCYgd2ViRXZl
bnQpCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJ
bXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVn
aW5Db250YWluZXJJbXBsLmNwcAkocmV2aXNpb24gMTM3NDg2KQorKysgU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTU1NCw3ICs1NTQsNyBAQCBXZWJQb2ludCBXZWJQbHVnaW5Db250YWluZXJJbXBsOjp3aW5kb3dU
CiAgICAgaWYgKCF2aWV3KQogICAgICAgICByZXR1cm4gcG9pbnQ7CiAgICAgV2ViUG9pbnQgd2lu
ZG93UG9pbnQgPSB2aWV3LT53aW5kb3dUb0NvbnRlbnRzKHBvaW50KTsKLSAgICByZXR1cm4gcm91
bmRlZEludFBvaW50KG1fZWxlbWVudC0+cmVuZGVyZXIoKS0+YWJzb2x1dGVUb0xvY2FsKExheW91
dFBvaW50KHdpbmRvd1BvaW50KSwgVXNlVHJhbnNmb3JtcyB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zv
cm1zKSk7CisgICAgcmV0dXJuIHJvdW5kZWRJbnRQb2ludChtX2VsZW1lbnQtPnJlbmRlcmVyKCkt
PmFic29sdXRlVG9Mb2NhbChMYXlvdXRQb2ludCh3aW5kb3dQb2ludCksIFVzZVRyYW5zZm9ybXMp
KTsKIH0KIAogdm9pZCBXZWJQbHVnaW5Db250YWluZXJJbXBsOjpkaWRSZWNlaXZlUmVzcG9uc2Uo
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMzc2
MjkpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwy
MyBAQAorMjAxMi0xMi0xMyAgTGV2aSBXZWludHJhdWIgIDxsZXZpd0BjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgUHVzaCBwaXhlbCBzbmFwcGluZyBsb2dpYyBpbnRvIFRyYW5zZm9ybVN0YXRlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE3NzkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZG9t
L1dpbmRvdy93ZWJraXRDb252ZXJ0UG9pbnQuaHRtbDogVXBkYXRpbmcgdmFsdWVzIHRvIG1hdGNo
IGNvcnJlY3RlZCBwaXhlbCBzbmFwcGluZy4KKyAgICAgICAgKiBmYXN0L211bHRpY29sL2JyZWFr
LXByb3BlcnRpZXMuaHRtbDogRml4aW5nIHN1Yi1waXhlbCBsYXlvdXQgZmVhdHVyZSBjaGVja2lu
Zy4KKyAgICAgICAgKiBmYXN0L211bHRpY29sL3ZlcnRpY2FsLWxyL2JyZWFrLXByb3BlcnRpZXMu
aHRtbDogRGl0dG8uCisgICAgICAgICogZmFzdC9tdWx0aWNvbC92ZXJ0aWNhbC1ybC9icmVhay1w
cm9wZXJ0aWVzLmh0bWw6IERpdHRvLgorICAgICAgICAqIGZhc3Qvc3ViLXBpeGVsL3N1Yi1waXhl
bC1pZnJhbWUtY29weS1vbi1zY3JvbGwuaHRtbDogVXBkYXRpbmcgdG8gY2F0Y2ggdGhlIGJ1ZyB3
aGVyZSB0aGUgb2xkCisgICAgICAgIHBpeGVsIHNuYXBwaW5nIGxvZ2ljIGRpZCB0aGUgd3Jvbmcg
dGhpbmcgd2hlbiBuZXN0ZWQuCisgICAgICAgICogZmFzdC9zdWItcGl4ZWwvdHJhbnNmb3JtZWQt
aWZyYW1lLWNvcHktb24tc2Nyb2xsLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2No
cm9taXVtLWxpbnV4L2Zhc3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1pZnJhbWUtY29weS1vbi1zY3Jv
bGwtZXhwZWN0ZWQucG5nOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2Zhc3Qv
c3ViLXBpeGVsL3RyYW5zZm9ybWVkLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC1leHBlY3RlZC5wbmc6
IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2Zhc3Qvc3ViLXBpeGVs
L3RyYW5zZm9ybWVkLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9mYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwt
aWZyYW1lLWNvcHktb24tc2Nyb2xsLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9j
aHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDEyLTEyLTEzICBKb2FubWFyaWUgRGlnZ3Mg
IDxqZGlnZ3NAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBhY2Nlc3NpYmlsdGl5L2FyaWEt
aGlkZGVuLmh0bWwgaXMgZmFpbGluZwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93
L3dlYmtpdENvbnZlcnRQb2ludC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL1dpbmRvdy93ZWJraXRDb252ZXJ0UG9pbnQuaHRtbAkocmV2aXNpb24gMTM3NDg2KQorKysg
TGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dlYmtpdENvbnZlcnRQb2ludC5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNDUsOCArMTQ1LDggQEAKICAgICAgICAgICAgICAgICBydW5UZXN0KCJU
ZXN0IDgiLCAgInRlc3Q4IiwgIDgsIDI3MywgMTMsIDMxMyk7CiAgICAgICAgICAgICAgICAgcnVu
VGVzdCgiVGVzdCA5IiwgICJ0ZXN0OSIsICAyOCwgMjkxLCAzMywgMzMxKTsKICAgICAgICAgICAg
ICAgICBydW5UZXN0KCJUZXN0IDEwIiwgInRlc3QxMCIsIDI4LCAzMDksIDMzLCAzNDkpOwotICAg
ICAgICAgICAgICAgIHJ1blRlc3QoIlRlc3QgMTEiLCAidGVzdDExIiwgMTU4LCAzNTUsIDE3NCwg
MzczKTsKLSAgICAgICAgICAgICAgICBydW5UZXN0KCJUZXN0IDEyIiwgInRlc3QxMiIsIDE2OCwg
NDI4LCAxODQsIDQ0Nik7CisgICAgICAgICAgICAgICAgcnVuVGVzdCgiVGVzdCAxMSIsICJ0ZXN0
MTEiLCAxNTgsIDM1NiwgMTc0LCAzNzQpOworICAgICAgICAgICAgICAgIHJ1blRlc3QoIlRlc3Qg
MTIiLCAidGVzdDEyIiwgMTY4LCA0MjksIDE4NCwgNDQ3KTsKICAgICAgICAgICAgICAgICBydW5U
ZXN0KCJUZXN0IDEzIiwgInRlc3QxMyIsIDI4LCA0ODcsIDMzLCA1MjcpOwogICAgICAgICAgICAg
fSBlbHNlIHsKICAgICAgICAgICAgICAgICBydW5UZXN0KCJUZXN0IDEiLCAgInRlc3QxIiwgIDgs
IDEyLCAxMywgNTIpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9tdWx0aWNvbC9icmVhay1wcm9w
ZXJ0aWVzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9tdWx0aWNvbC9icmVh
ay1wcm9wZXJ0aWVzLmh0bWwJKHJldmlzaW9uIDEzNzQ4NikKKysrIExheW91dFRlc3RzL2Zhc3Qv
bXVsdGljb2wvYnJlYWstcHJvcGVydGllcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMCw2ICsx
MCw3IEBACiAgICAgPGRpdiBjbGFzcz0ic2hvcnRlciBib3giIHN0eWxlPSItd2Via2l0LWNvbHVt
bi1icmVhay1hZnRlcjogYWx3YXlzOyI+PC9kaXY+CiAgICAgPGRpdiBpZD0iYWZ0ZXItYnJlYWsi
IGNsYXNzPSJzaG9ydGVyIGJveCI+PC9kaXY+CiAgICAgPGRpdiBpZD0ibm8tYnJlYWsiIGNsYXNz
PSJzaG9ydGVyIGJveCIgc3R5bGU9Ii13ZWJraXQtY29sdW1uLWJyZWFrLWluc2lkZTogYXZvaWQ7
Ij48L2Rpdj4KKyAgICA8ZGl2IGlkPSJzdWJQaXhlbFRlc3QiIHN0eWxlPSJ3aWR0aDoxMC41cHgi
PjwvZGl2PgogPC9kaXY+CiA8cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KIDxzY3JpcHQ+CkBAIC0z
MCw4ICszMSw4IEBACiAgICAgICAgICAgICBsb2coIkZBSUw6ICciICsgaWQgKyAiJyBpcyBhdCAo
IiArIE1hdGgucm91bmQocmVjdC5sZWZ0KSArICIsICIgKyBNYXRoLnJvdW5kKHJlY3QudG9wKSAr
ICIpIGluc3RlYWQgb2YgKCIgKyBleHBlY3RlZExlZnQgKyAiICwiICsgZXhwZWN0ZWRUb3AgKyAi
KSIpOwogICAgIH0KIAotICAgIHZhciByZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Jy
ZWFrLWJlZm9yZScpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwotICAgIHZhciBoYXNTdWJwaXhl
bFN1cHBvcnQgPSBNYXRoLnJvdW5kKHJlY3QubGVmdCkgIT0gcmVjdC5sZWZ0OworICAgIHZhciBy
ZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N1YlBpeGVsVGVzdCcpLmdldEJvdW5kaW5n
Q2xpZW50UmVjdCgpOworICAgIHZhciBoYXNTdWJwaXhlbFN1cHBvcnQgPSBNYXRoLnJvdW5kKHJl
Y3QucmlnaHQpICE9IHJlY3QucmlnaHQ7CiAKICAgICB0ZXN0Qm94UG9zaXRpb24oImJyZWFrLWJl
Zm9yZSIsIGhhc1N1YnBpeGVsU3VwcG9ydCA/IDIyMCA6IDIxOCwgOCk7CiAgICAgdGVzdEJveFBv
c2l0aW9uKCJhZnRlci1icmVhayIsIGhhc1N1YnBpeGVsU3VwcG9ydCA/IDQzMSA6IDQyOCwgOCk7
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L211bHRpY29sL3ZlcnRpY2FsLWxyL2JyZWFrLXByb3Bl
cnRpZXMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L211bHRpY29sL3ZlcnRp
Y2FsLWxyL2JyZWFrLXByb3BlcnRpZXMuaHRtbAkocmV2aXNpb24gMTM3NDg2KQorKysgTGF5b3V0
VGVzdHMvZmFzdC9tdWx0aWNvbC92ZXJ0aWNhbC1sci9icmVhay1wcm9wZXJ0aWVzLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTExLDYgKzExLDcgQEAKICAgICA8ZGl2IGNsYXNzPSJzaG9ydGVyIGJv
eCIgc3R5bGU9Ii13ZWJraXQtY29sdW1uLWJyZWFrLWFmdGVyOiBhbHdheXM7Ij48L2Rpdj4KICAg
ICA8ZGl2IGlkPSJhZnRlci1icmVhayIgY2xhc3M9InNob3J0ZXIgYm94Ij48L2Rpdj4KICAgICA8
ZGl2IGlkPSJuby1icmVhayIgY2xhc3M9InNob3J0ZXIgYm94IiBzdHlsZT0iLXdlYmtpdC1jb2x1
bW4tYnJlYWstaW5zaWRlOiBhdm9pZDsiPjwvZGl2PgorICAgIDxkaXYgaWQ9InN1YlBpeGVsVGVz
dCIgc3R5bGU9IndpZHRoOjEwLjVweCI+PC9kaXY+CiA8L2Rpdj4KIDxwcmUgaWQ9ImNvbnNvbGUi
PjwvcHJlPgogPHNjcmlwdD4KQEAgLTMxLDggKzMyLDggQEAKICAgICAgICAgICAgIGxvZygiRkFJ
TDogJyIgKyBpZCArICInIGlzIGF0ICgiICsgTWF0aC5yb3VuZChyZWN0LmxlZnQpICsgIiwgIiAr
IE1hdGgucm91bmQocmVjdC50b3ApICsgIikgaW5zdGVhZCBvZiAoIiArIGV4cGVjdGVkTGVmdCAr
ICIgLCIgKyBleHBlY3RlZFRvcCArICIpIik7CiAgICAgfQogCi0gICAgdmFyIHJlY3QgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnYnJlYWstYmVmb3JlJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0
KCk7Ci0gICAgdmFyIGhhc1N1YnBpeGVsU3VwcG9ydCA9IE1hdGgucm91bmQocmVjdC50b3ApICE9
IHJlY3QudG9wOworICAgIHZhciByZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N1YlBp
eGVsVGVzdCcpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAgIHZhciBoYXNTdWJwaXhlbFN1
cHBvcnQgPSBNYXRoLnJvdW5kKHJlY3QuYm90dG9tKSAhPSByZWN0LmJvdHRvbTsKIAogICAgIHRl
c3RCb3hQb3NpdGlvbigiYnJlYWstYmVmb3JlIiwgOCwgaGFzU3VicGl4ZWxTdXBwb3J0ID8gMjIw
IDogMjE4KTsKICAgICB0ZXN0Qm94UG9zaXRpb24oImFmdGVyLWJyZWFrIiwgOCwgaGFzU3VicGl4
ZWxTdXBwb3J0ID8gNDMxIDogNDI4KTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbXVsdGljb2wv
dmVydGljYWwtcmwvYnJlYWstcHJvcGVydGllcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvbXVsdGljb2wvdmVydGljYWwtcmwvYnJlYWstcHJvcGVydGllcy5odG1sCShyZXZp
c2lvbiAxMzc0ODYpCisrKyBMYXlvdXRUZXN0cy9mYXN0L211bHRpY29sL3ZlcnRpY2FsLXJsL2Jy
ZWFrLXByb3BlcnRpZXMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTQsNiArMTQsNyBAQAogICAg
IDxkaXYgY2xhc3M9InNob3J0ZXIgYm94IiBzdHlsZT0iLXdlYmtpdC1jb2x1bW4tYnJlYWstYWZ0
ZXI6IGFsd2F5czsiPjwvZGl2PgogICAgIDxkaXYgaWQ9ImFmdGVyLWJyZWFrIiBjbGFzcz0ic2hv
cnRlciBib3giPjwvZGl2PgogICAgIDxkaXYgaWQ9Im5vLWJyZWFrIiBjbGFzcz0ic2hvcnRlciBi
b3giIHN0eWxlPSItd2Via2l0LWNvbHVtbi1icmVhay1pbnNpZGU6IGF2b2lkOyI+PC9kaXY+Cisg
ICAgPGRpdiBpZD0ic3ViUGl4ZWxUZXN0IiBzdHlsZT0id2lkdGg6MTAuNXB4Ij48L2Rpdj4KIDwv
ZGl2PgogPHByZSBpZD0iY29uc29sZSI+PC9wcmU+CiA8c2NyaXB0PgpAQCAtMzQsOCArMzUsOCBA
QAogICAgICAgICAgICAgbG9nKCJGQUlMOiAnIiArIGlkICsgIicgaXMgYXQgKCIgKyBNYXRoLnJv
dW5kKHJlY3QubGVmdCkgKyAiLCAiICsgTWF0aC5yb3VuZChyZWN0LnRvcCkgKyAiKSBpbnN0ZWFk
IG9mICgiICsgZXhwZWN0ZWRMZWZ0ICsgIiAsIiArIGV4cGVjdGVkVG9wICsgIikiKTsKICAgICB9
CiAKLSAgICB2YXIgcmVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdicmVhay1iZWZvcmUn
KS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKLSAgICB2YXIgaGFzU3VicGl4ZWxTdXBwb3J0ID0g
TWF0aC5yb3VuZChyZWN0LnRvcCkgIT0gcmVjdC50b3A7CisgICAgdmFyIHJlY3QgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnc3ViUGl4ZWxUZXN0JykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7
CisgICAgdmFyIGhhc1N1YnBpeGVsU3VwcG9ydCA9IE1hdGgucm91bmQocmVjdC5ib3R0b20pICE9
IHJlY3QuYm90dG9tOwogCiAgICAgdGVzdEJveFBvc2l0aW9uKCJicmVhay1iZWZvcmUiLCA3NDgs
IGhhc1N1YnBpeGVsU3VwcG9ydCA/IDIyMCA6IDIxOCk7CiAgICAgdGVzdEJveFBvc2l0aW9uKCJh
ZnRlci1icmVhayIsIDc0OCwgaGFzU3VicGl4ZWxTdXBwb3J0ID8gNDMxIDogNDI4KTsKSW5kZXg6
IExheW91dFRlc3RzL2Zhc3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1pZnJhbWUtY29weS1vbi1zY3Jv
bGwuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3N1Yi1waXhlbC9zdWItcGl4
ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLmh0bWwJKHJldmlzaW9uIDEzNzQ4NikKKysrIExheW91
dFRlc3RzL2Zhc3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1pZnJhbWUtY29weS1vbi1zY3JvbGwuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMiwxMCArMiwxMiBAQAogPGh0bWw+CiA8aGVhZD4KIDxzdHls
ZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+Cisuc3VicGl4ZWxQdXNoZXIgeworICAg
IHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICB0b3A6IDAuNHB4OworfQogLmNvbnRhaW5lciB7Ci0g
ICAgcG9zaXRpb246IGFic29sdXRlOwotICAgIHBhZGRpbmc6IDEwLjNweDsKLSAgICB6LWluZGV4
OiAxOworICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKIH0KIDwvc3R5bGU+CiA8c2NyaXB0IHNy
Yz0iLi4vcmVwYWludC9yZXNvdXJjZXMvcmVwYWludC5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0
Ij48L3NjcmlwdD4KQEAgLTEzLDI2ICsxNSw0MyBAQAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKQog
ICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKIAotZnVuY3Rpb24gc2V0dXBJZnJhbWUoKSB7
Ci0gIHZhciBzdWJEb2N1bWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpZnJhbWUnKS5j
b250ZW50V2luZG93LmRvY3VtZW50OwotICBzdWJEb2N1bWVudC5vcGVuKCd0ZXh0L2h0bWwnLCAn
cmVwbGFjZScpOwotICBzdWJEb2N1bWVudC53cml0ZSgiPCFET0NUWVBFIGh0bWw+XG48aHRtbD48
Ym9keSBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6IHNpbHZlcjtoZWlnaHQ6IDEwMDBweDtcIj48
L2JvZHk+IikKLSAgc3ViRG9jdW1lbnQuY2xvc2UoKTsKK2Z1bmN0aW9uIHNldHVwSWZyYW1lcygp
IHsKKyAgc2V0dXBJZnJhbWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lmcmFtZTEnKS5jb250
ZW50V2luZG93LmRvY3VtZW50KTsKKyAgc2V0dXBJZnJhbWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2lmcmFtZTInKS5jb250ZW50V2luZG93LmRvY3VtZW50KTsKKyAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2lmcmFtZTEnKS5jb250ZW50V2luZG93LnNjcm9sbFRvKDAsIDEwKTsKK30KKwor
ZnVuY3Rpb24gc2V0dXBJZnJhbWUoaWZyYW1lKSB7CisgIGlmcmFtZS5vcGVuKCd0ZXh0L2h0bWwn
LCAncmVwbGFjZScpOworICBpZnJhbWUud3JpdGUoIjwhRE9DVFlQRSBodG1sPlxuPGh0bWw+PGJv
ZHkgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiBzaWx2ZXI7aGVpZ2h0OiAxMDAwcHg7XCI+PC9i
b2R5PiIpOworICBpZnJhbWUuY2xvc2UoKTsKIH0KIAogZnVuY3Rpb24gcmVwYWludFRlc3QoKSB7
Ci0gIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpZnJhbWUnKS5jb250ZW50V2luZG93LnNjcm9s
bFRvKDAsIDEwKTsKKyAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lmcmFtZTEnKS5jb250ZW50
V2luZG93LnNjcm9sbFRvKDAsIDApOworICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaWZyYW1l
MicpLmNvbnRlbnRXaW5kb3cuc2Nyb2xsVG8oMCwgMTApOwogICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpCiAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiB9CiA8L3NjcmlwdD4KIDwvaGVhZD4K
LTxib2R5IG9ubG9hZD0ic2V0dXBJZnJhbWUoKTtydW5SZXBhaW50VGVzdCgpIj4KLSAgPHA+VGhl
IGlmcmFtZSBiZWxvdyBzaG91bGQgcmVtYWluIGdyZXkgd2hlbiBzY3JvbGxpbmcuPC9wPgotICA8
ZGl2IGNsYXNzPSJjb250YWluZXIiPgotICAgIDxpZnJhbWUgaWQ9ImlmcmFtZSIgIHN0eWxlPSJ3
aWR0aDogMzAwcHg7IGhlaWdodDogMjAwcHg7Ij48L2lmcmFtZT4KKzxib2R5IG9ubG9hZD0ic2V0
dXBJZnJhbWVzKCk7cnVuUmVwYWludFRlc3QoKSI+CisgIDxwPlRoZSBpZnJhbWVzIGJlbG93IHNo
b3VsZCByZW1haW4gZ3JleSB3aXRoIG5vIHJlcGFpbnQgYXJ0aWZhY3RzIHdoZW4gc2Nyb2xsaW5n
LjwvcD4KKyAgPGRpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgPGRpdiBj
bGFzcz0ic3VicGl4ZWxQdXNoZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJzdWJwaXhlbFB1c2hl
ciI+CisgICAgICAgIDxpZnJhbWUgaWQ9ImlmcmFtZTEiICBzdHlsZT0id2lkdGg6IDE1MHB4OyBo
ZWlnaHQ6IDIwMHB4OyI+PC9pZnJhbWU+CisgICAgICA8L2Rpdj4KKyAgICAgIDwvZGl2PgorICAg
IDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICA8ZGl2IGNsYXNzPSJz
dWJwaXhlbFB1c2hlciI+CisgICAgICAgIDxkaXYgY2xhc3M9InN1YnBpeGVsUHVzaGVyIj4KKyAg
ICAgICAgICA8aWZyYW1lIGlkPSJpZnJhbWUyIiAgc3R5bGU9IndpZHRoOiAxNTBweDsgaGVpZ2h0
OiAyMDBweDsiPjwvaWZyYW1lPgorICAgICAgICA8L2Rpdj4KKyAgICAgIDwvZGl2PgorICAgIDwv
ZGl2PgogICA8L2Rpdj4KLSAgPC9kaXY+Ci0KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91
dFRlc3RzL2Zhc3Qvc3ViLXBpeGVsL3RyYW5zZm9ybWVkLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qvc3ViLXBpeGVsL3RyYW5zZm9ybWVk
LWlmcmFtZS1jb3B5LW9uLXNjcm9sbC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9zdWItcGl4ZWwvdHJhbnNmb3JtZWQtaWZyYW1lLWNvcHktb24tc2Nyb2xsLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSw3OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0ic2NyZWVuIj4KKy5zdWJwaXhlbFB1
c2hlciB7CisgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgIHRvcDogMC40cHg7CisgICAgei1p
bmRleDogMTsKK30KKy5jb250YWluZXIgeworICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAg
ICBwYWRkaW5nLWxlZnQ6IDgwcHg7CisgICAgcGFkZGluZy10b3A6IDEwcHg7Cit9CisudHJhbnNm
b3JtIHsKKyAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNkKDAsIDAsIDEsIDQ1ZGVnKTsKK30K
Kzwvc3R5bGU+Cis8c2NyaXB0IHNyYz0iLi4vcmVwYWludC9yZXNvdXJjZXMvcmVwYWludC5qcyIg
dHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRl
c3RSdW5uZXIpCisgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCitmdW5jdGlvbiBzZXR1
cElmcmFtZXMoKSB7CisgIHNldHVwSWZyYW1lKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpZnJh
bWUxJykuY29udGVudFdpbmRvdy5kb2N1bWVudCk7CisgIHNldHVwSWZyYW1lKGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdpZnJhbWUyJykuY29udGVudFdpbmRvdy5kb2N1bWVudCk7CisgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdpZnJhbWUxJykuY29udGVudFdpbmRvdy5zY3JvbGxUbygwLCAx
MCk7Cit9CisKK2Z1bmN0aW9uIHNldHVwSWZyYW1lKGlmcmFtZSkgeworICBpZnJhbWUub3Blbign
dGV4dC9odG1sJywgJ3JlcGxhY2UnKTsKKyAgaWZyYW1lLndyaXRlKCI8IURPQ1RZUEUgaHRtbD5c
bjxodG1sPjxib2R5IHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogc2lsdmVyO2hlaWdodDogMTAw
MHB4O1wiPjwvYm9keT4iKTsKKyAgaWZyYW1lLmNsb3NlKCk7Cit9CisKK2Z1bmN0aW9uIHJlcGFp
bnRUZXN0KCkgeworICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaWZyYW1lMScpLmNvbnRlbnRX
aW5kb3cuc2Nyb2xsVG8oMCwgMCk7CisgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpZnJhbWUy
JykuY29udGVudFdpbmRvdy5zY3JvbGxUbygwLCAxMCk7CisgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikKKyAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHkgb25sb2FkPSJzZXR1cElmcmFtZXMoKTtydW5SZXBhaW50VGVzdCgpIj4KKyAgPHA+VGhl
IGlmcmFtZXMgYmVsb3cgc2hvdWxkIHJlbWFpbiBncmV5IHdpdGggbm8gcmVwYWludCBhcnRpZmFj
dHMgd2hlbiBzY3JvbGxpbmcuPC9wPgorICA8ZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5l
ciI+CisgICAgICA8ZGl2IGNsYXNzPSJ0cmFuc2Zvcm0iPgorICAgICAgICA8ZGl2IGNsYXNzPSJz
dWJwaXhlbFB1c2hlciI+CisgICAgICAgICAgPGRpdiBjbGFzcz0ic3VicGl4ZWxQdXNoZXIiPgor
ICAgICAgICAgICAgPGlmcmFtZSBpZD0iaWZyYW1lMSIgIHN0eWxlPSJ3aWR0aDogMTUwcHg7IGhl
aWdodDogMjAwcHg7Ij48L2lmcmFtZT4KKyAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgPC9kaXY+
CisgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgor
ICAgICAgPGRpdiBjbGFzcz0ic3VicGl4ZWxQdXNoZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJz
dWJwaXhlbFB1c2hlciI+CisgICAgICAgICAgPGRpdiBjbGFzcz0ic3VicGl4ZWxQdXNoZXIiPgor
ICAgICAgICAgICAgPGRpdiBjbGFzcz0idHJhbnNmb3JtIj4KKyAgICAgICAgICAgICAgPGRpdiBj
bGFzcz0ic3VicGl4ZWxQdXNoZXIiPgorICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1YnBp
eGVsUHVzaGVyIj4KKyAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InN1YnBpeGVsUHVzaGVy
Ij4KKyAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0idHJhbnNmb3JtIj4KKyAgICAgICAg
ICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJwaXhlbFB1c2hlciI+CisgICAgICAgICAgICAg
ICAgICAgICAgICA8aWZyYW1lIGlkPSJpZnJhbWUyIiAgc3R5bGU9IndpZHRoOiAxNTBweDsgaGVp
Z2h0OiAyMDBweDsiPjwvaWZyYW1lPgorICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgorICAg
ICAgICAgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgICAgICAgICAgIDwvZGl2PiAgICAgICAg
ICAgICAgICAKKyAgICAgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgICAgICAgPC9kaXY+Cisg
ICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAg
ICA8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9mYXN0L3N1Yi1waXhlbC90cmFuc2Zv
cm1lZC1pZnJhbWUtY29weS1vbi1zY3JvbGwtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2Zhc3Qvc3ViLXBpeGVsL3RyYW5zZm9y
bWVkLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9mYXN0L3N1Yi1waXhlbC90cmFuc2Zv
cm1lZC1pZnJhbWUtY29weS1vbi1zY3JvbGwtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsNTIgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3
IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4Mjc5CisgIFJl
bmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHgyNzkKKyAgICBSZW5kZXJCb2R5IHtC
T0RZfSBhdCAoOCwxNikgc2l6ZSA3ODR4MjU1CisgICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAs
MCkgc2l6ZSA3ODR4MjAKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUg
NDY1eDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNDY1OiAiVGhlIGlmcmFt
ZXMgYmVsb3cgc2hvdWxkIHJlbWFpbiBncmV5IHdpdGggbm8gcmVwYWludCBhcnRpZmFjdHMgd2hl
biBzY3JvbGxpbmcuIgorICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMzYpIHNpemUgNzg0
eDIxOQorICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDIzNHgyMTkKKyAg
ICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgyMzQsMTk5KSBzaXplIDR4MTkKKyAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoMjM0LDE5OSkgd2lkdGggNDogIiAiCisgICAgICAgIFJlbmRlckJsb2Nr
IHtESVZ9IGF0ICgyMzgsMCkgc2l6ZSAyMzR4MjE5CisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0
fSBhdCAoMCwwKSBzaXplIDB4MAorbGF5ZXIgYXQgKDg4LDYyKSBzaXplIDE1NHgyMDkKKyAgUmVu
ZGVyQmxvY2sge0RJVn0gYXQgKDgwLDEwKSBzaXplIDE1NHgyMDkKK2xheWVyIGF0ICg4OCw2Mikg
c2l6ZSAxNTR4MjA5CisgIFJlbmRlckJsb2NrIChyZWxhdGl2ZSBwb3NpdGlvbmVkKSB6STogMSB7
RElWfSBhdCAoMCwwKSBzaXplIDE1NHgyMDkKK2xheWVyIGF0ICg4OCw2Mykgc2l6ZSAxNTR4MjA5
CisgIFJlbmRlckJsb2NrIChyZWxhdGl2ZSBwb3NpdGlvbmVkKSB6STogMSB7RElWfSBhdCAoMCww
KSBzaXplIDE1NHgyMDkKKyAgICBSZW5kZXJQYXJ0T2JqZWN0IHtJRlJBTUV9IGF0ICgwLDApIHNp
emUgMTU0eDIwNCBbYm9yZGVyOiAoMnB4IGluc2V0ICMwMDAwMDApXQorICAgICAgbGF5ZXIgYXQg
KDAsMCkgc2l6ZSAxMzV4MTAxNgorICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgMTM1
eDIwMAorICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxMzV4MTAxNgorICAgICAgICBSZW5kZXJC
bG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAxMzV4MTAxNgorICAgICAgICAgIFJlbmRlckJvZHkg
e0JPRFl9IGF0ICg4LDgpIHNpemUgMTE5eDEwMDAgW2JnY29sb3I9I0MwQzBDMF0KKyAgICBSZW5k
ZXJUZXh0IHpJOiAxIHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKK2xheWVyIGF0ICgzMjYsNjIp
IHNpemUgMTU0eDIwOQorICBSZW5kZXJCbG9jayAocmVsYXRpdmUgcG9zaXRpb25lZCkgekk6IDEg
e0RJVn0gYXQgKDgwLDEwKSBzaXplIDE1NHgyMDkKK2xheWVyIGF0ICgzMjYsNjMpIHNpemUgMTU0
eDIwOQorICBSZW5kZXJCbG9jayAocmVsYXRpdmUgcG9zaXRpb25lZCkgekk6IDEge0RJVn0gYXQg
KDAsMCkgc2l6ZSAxNTR4MjA5CitsYXllciBhdCAoMzI2LDYzKSBzaXplIDE1NHgyMDkKKyAgUmVu
ZGVyQmxvY2sgKHJlbGF0aXZlIHBvc2l0aW9uZWQpIHpJOiAxIHtESVZ9IGF0ICgwLDApIHNpemUg
MTU0eDIwOQorbGF5ZXIgYXQgKDMyNiw2Mykgc2l6ZSAxNTR4MjA5CisgIFJlbmRlckJsb2NrIHtE
SVZ9IGF0ICgwLDApIHNpemUgMTU0eDIwOQorbGF5ZXIgYXQgKDMyNiw2NCkgc2l6ZSAxNTR4MjA5
CisgIFJlbmRlckJsb2NrIChyZWxhdGl2ZSBwb3NpdGlvbmVkKSB6STogMSB7RElWfSBhdCAoMCww
KSBzaXplIDE1NHgyMDkKK2xheWVyIGF0ICgzMjYsNjQpIHNpemUgMTU0eDIwOQorICBSZW5kZXJC
bG9jayAocmVsYXRpdmUgcG9zaXRpb25lZCkgekk6IDEge0RJVn0gYXQgKDAsMCkgc2l6ZSAxNTR4
MjA5CitsYXllciBhdCAoMzI2LDY0KSBzaXplIDE1NHgyMDkKKyAgUmVuZGVyQmxvY2sgKHJlbGF0
aXZlIHBvc2l0aW9uZWQpIHpJOiAxIHtESVZ9IGF0ICgwLDApIHNpemUgMTU0eDIwOQorbGF5ZXIg
YXQgKDMyNiw2NCkgc2l6ZSAxNTR4MjA5CisgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNp
emUgMTU0eDIwOQorbGF5ZXIgYXQgKDMyNiw2NSkgc2l6ZSAxNTR4MjA5CisgIFJlbmRlckJsb2Nr
IChyZWxhdGl2ZSBwb3NpdGlvbmVkKSB6STogMSB7RElWfSBhdCAoMCwwKSBzaXplIDE1NHgyMDkK
KyAgICBSZW5kZXJQYXJ0T2JqZWN0IHtJRlJBTUV9IGF0ICgwLDApIHNpemUgMTU0eDIwNCBbYm9y
ZGVyOiAoMnB4IGluc2V0ICMwMDAwMDApXQorICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxMzV4
MTAxNgorICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgMTM1eDIwMAorICAgICAgbGF5
ZXIgYXQgKDAsMCkgc2l6ZSAxMzV4MTAxNgorICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQg
KDAsMCkgc2l6ZSAxMzV4MTAxNgorICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgp
IHNpemUgMTE5eDEwMDAgW2JnY29sb3I9I0MwQzBDMF0KKyAgICBSZW5kZXJUZXh0IHpJOiAxIHsj
dGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtLXdpbi9mYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13
aW4vZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDEzNzQ4NikKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
LXdpbi9mYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLWV4cGVj
dGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwxNyArMSwzNiBAQAogbGF5ZXIgYXQgKDAsMCkg
c2l6ZSA4MDB4NjAwCiAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCi1sYXllciBh
dCAoMCwwKSBzaXplIDgwMHg1MgotICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4
MDB4NTIKLSAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCwxNikgc2l6ZSA3ODR4MjAKK2xheWVy
IGF0ICgwLDApIHNpemUgODAweDI2OQorICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6
ZSA4MDB4MjY5CisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsMTYpIHNpemUgNzg0eDI0NQog
ICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDApIHNpemUgNzg0eDIwCi0gICAgICAgIFJlbmRl
clRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDMxNXgxOQotICAgICAgICAgIHRleHQgcnVuIGF0
ICgwLDApIHdpZHRoIDMxNTogIlRoZSBpZnJhbWUgYmVsb3cgc2hvdWxkIHJlbWFpbiBncmV5IHdo
ZW4gc2Nyb2xsaW5nLiIKLWxheWVyIGF0ICg4LDUyKSBzaXplIDMyNXgyMzAKLSAgUmVuZGVyQmxv
Y2sgKHBvc2l0aW9uZWQpIHpJOiAxIHtESVZ9IGF0ICg4LDUyKSBzaXplIDMyNXgyMzAKLSAgICBS
ZW5kZXJQYXJ0T2JqZWN0IHtJRlJBTUV9IGF0ICgxMCwxMCkgc2l6ZSAzMDR4MjA1IFtib3JkZXI6
ICgycHggaW5zZXQgIzAwMDAwMCldCi0gICAgICBsYXllciBhdCAoMCwwKSBzaXplIDI4NXgxMDE2
Ci0gICAgICAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSAyODV4MjAwCi0gICAgICBsYXllciBh
dCAoMCwwKSBzaXplIDI4NXgxMDE2Ci0gICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCww
KSBzaXplIDI4NXgxMDE2Ci0gICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6
ZSAyNjl4MTAwMCBbYmdjb2xvcj0jQzBDMEMwXQotICAgIFJlbmRlclRleHQgekk6IDEgeyN0ZXh0
fSBhdCAoMCwwKSBzaXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkg
c2l6ZSA0NjV4MTkKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0NjU6ICJUaGUg
aWZyYW1lcyBiZWxvdyBzaG91bGQgcmVtYWluIGdyZXkgd2l0aCBubyByZXBhaW50IGFydGlmYWN0
cyB3aGVuIHNjcm9sbGluZy4iCisgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwzNikgc2l6
ZSA3ODR4MjA5CisgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgMTU0eDIw
OQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDE1NCwxODkpIHNpemUgNHgxOQorICAg
ICAgICAgIHRleHQgcnVuIGF0ICgxNTQsMTg5KSB3aWR0aCA0OiAiICIKKyAgICAgICAgUmVuZGVy
QmxvY2sge0RJVn0gYXQgKDE1OCwwKSBzaXplIDE1NHgyMDkKKyAgICAgICAgUmVuZGVyVGV4dCB7
I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCitsYXllciBhdCAoOCw1Mikgc2l6ZSAxNTR4MjA5Cisg
IFJlbmRlckJsb2NrIChyZWxhdGl2ZSBwb3NpdGlvbmVkKSB7RElWfSBhdCAoMCwwKSBzaXplIDE1
NHgyMDkKK2xheWVyIGF0ICg4LDUzKSBzaXplIDE1NHgyMDkKKyAgUmVuZGVyQmxvY2sgKHJlbGF0
aXZlIHBvc2l0aW9uZWQpIHtESVZ9IGF0ICgwLDApIHNpemUgMTU0eDIwOQorICAgIFJlbmRlclBh
cnRPYmplY3Qge0lGUkFNRX0gYXQgKDAsMCkgc2l6ZSAxNTR4MjA0IFtib3JkZXI6ICgycHggaW5z
ZXQgIzAwMDAwMCldCisgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDEzNXgxMDE2CisgICAgICAg
IFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSAxMzV4MjAwCisgICAgICBsYXllciBhdCAoMCwwKSBz
aXplIDEzNXgxMDE2CisgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDEz
NXgxMDE2CisgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSAxMTl4MTAw
MCBbYmdjb2xvcj0jQzBDMEMwXQorICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXpl
IDB4MAorbGF5ZXIgYXQgKDE2Niw1Mikgc2l6ZSAxNTR4MjA5CisgIFJlbmRlckJsb2NrIChyZWxh
dGl2ZSBwb3NpdGlvbmVkKSB7RElWfSBhdCAoMCwwKSBzaXplIDE1NHgyMDkKK2xheWVyIGF0ICgx
NjYsNTMpIHNpemUgMTU0eDIwOQorICBSZW5kZXJCbG9jayAocmVsYXRpdmUgcG9zaXRpb25lZCkg
e0RJVn0gYXQgKDAsMCkgc2l6ZSAxNTR4MjA5CisgICAgUmVuZGVyUGFydE9iamVjdCB7SUZSQU1F
fSBhdCAoMCwwKSBzaXplIDE1NHgyMDQgW2JvcmRlcjogKDJweCBpbnNldCAjMDAwMDAwKV0KKyAg
ICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTM1eDEwMTYKKyAgICAgICAgUmVuZGVyVmlldyBhdCAo
MCwwKSBzaXplIDEzNXgyMDAKKyAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTM1eDEwMTYKKyAg
ICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgMTM1eDEwMTYKKyAgICAgICAg
ICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDExOXgxMDAwIFtiZ2NvbG9yPSNDMEMw
QzBdCisgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCkluZGV4OiBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlzaW9u
IDEzNzQ4NikKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlv
bnMJKHdvcmtpbmcgY29weSkKQEAgLTQwNTEsNiArNDA1MSwxMyBAQCBCdWcoZHByYW5rZSkgWyBX
aW4gXSB3ZWJhdWRpby9jb2RlYy10ZXN0CiAKIHdlYmtpdC5vcmcvYi8xMDAwMjMgWyBNYWMgXSBm
YXN0L3N1Yi1waXhlbC9maWxlLXVwbG9hZC1jb250cm9sLWF0LWZyYWN0aW9uYWwtb2Zmc2V0Lmh0
bWwgWyBGYWlsdXJlIEltYWdlT25seUZhaWx1cmUgXQogCisjIE5lZWRzIHJlYmFzZWxpbmUgYWZ0
ZXIgYm90cyBjeWNsZQorQnVnKGxldml3KSBbIExpbnV4IFdpbiBNYWMgXSBmYXN0L3N1Yi1waXhl
bC9zdWItcGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLmh0bWwgWyBQYXNzIEltYWdlT25seUZh
aWx1cmUgRmFpbHVyZSBdCitCdWcobGV2aXcpIFsgTGludXggV2luIE1hYyBdIGZhc3Qvc3ViLXBp
eGVsL3RyYW5zZm9ybWVkLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC5odG1sIFsgUGFzcyBJbWFnZU9u
bHlGYWlsdXJlIEZhaWx1cmUgXQorQnVnKGxldml3KSBbIExpbnV4IFdpbiBNYWMgXSBwbGF0Zm9y
bS9jaHJvbWl1bS9mYXN0L2Zvcm1zL3N1Z2dlc3Rpb24tcGlja2VyL2RhdGUtc3VnZ2VzdGlvbi1w
aWNrZXItYXBwZWFyYW5jZS13aXRoLXNjcm9sbC1iYXIuaHRtbCBbIFBhc3MgSW1hZ2VPbmx5RmFp
bHVyZSBdCitCdWcobGV2aXcpIFsgTGludXggV2luIE1hYyBdIHBsYXRmb3JtL2Nocm9taXVtL2Zh
c3QvZm9ybXMvc3VnZ2VzdGlvbi1waWNrZXIvbW9udGgtc3VnZ2VzdGlvbi1waWNrZXItYXBwZWFy
YW5jZS13aXRoLXNjcm9sbC1iYXIuaHRtbCBbIFBhc3MgSW1hZ2VPbmx5RmFpbHVyZSBdCitCdWco
bGV2aXcpIFsgTGludXggV2luIE1hYyBdIHBsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZm9ybXMvc3Vn
Z2VzdGlvbi1waWNrZXIvd2Vlay1zdWdnZXN0aW9uLXBpY2tlci1hcHBlYXJhbmNlLXdpdGgtc2Ny
b2xsLWJhci5odG1sIFsgUGFzcyBJbWFnZU9ubHlGYWlsdXJlIF0KKwogd2Via2l0Lm9yZy9iLzEw
MDQ3OCAgWyBNYWMgXSBjc3MzL2ZpbHRlcnMvY3VzdG9tL2VmZmVjdC1jdXN0b20uaHRtbCBbIElt
YWdlT25seUZhaWx1cmUgXQogCiB3ZWJraXQub3JnL2IvMTAwNDI0IGVkaXRpbmcvc2VsZWN0aW9u
L3VzZXItc2VsZWN0LWFsbC1zZWxlY3Rpb24uaHRtbCBbIEZhaWx1cmUgXQpJbmRleDogTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWlm
cmFtZS1jb3B5LW9uLXNjcm9sbC1leHBlY3RlZC5wbmcKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpDYW5ub3QgZGlzcGxh
eTogZmlsZSBtYXJrZWQgYXMgYSBiaW5hcnkgdHlwZS4Kc3ZuOm1pbWUtdHlwZSA9IGltYWdlL3Bu
ZwoKaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQXlBQUFBSllDQUlBQUFBVkZCVW5BQUFBS1hSRldI
UmphR1ZqYTNOMWJRQTNNREJoTjJSaQpOR1kzT1RoaU9USm1ZMlJqT0dFd01XSXpZV1V5WXpoalpM
a2J5bjBBQUJxUFNVUkJWSGljN2QxWmN4VG52Y0RoRm9Oa2dRQ0g0QkppCkxZUFl3UmhDMkV3TWlW
MUZDbUtjVk9LVWJ2aEkrUWE1NVlhazRzUmxPNG1KczVBVXU0TFlaQlpiaUYwZ1FLeVd6Q2FkaTY0
elo0NTYKUmh0L0NjM1U4MXk0eHRKMDk5dnZPNlA1TVdwSlZVMU5UUWtBQUhFbXZPb0JBQUJVR29F
RkFCQk1ZQUVBQkJOWUFBREJCQllBUURDQgpCUUFRVEdBQkFBUVRXQUFBd1FRV0FFQXdnUVVBRUV4
Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCCkJRQVFUR0FCQUFU
THJWcTFxdWduOXU3ZDIxckNqQmt6L3ZPZi95eGV2SGk0Qi92NzMvKytjT0hDSkVsNmUzdFBuVHAx
Nk5DaGMrZk8KNVhLNUdUTm12T3g1REZOSFI4ZlFUMkZZZHg3dHdReHJENk05OHF6OEVvOW4yVUdP
L1VTOWpMR1o1SEh5YkIyM1M1TWZXT0VJeStMeApENHlOaVFOOGJ1WEtsU3RXckpnd1ljTGV2WHVi
bXBwNmUzdFBuejU5N3R5NW8wZVBmdmZkZHlNNDJQdnZ2NS9lT0hQbVRIMTkvWW9WCkt6bzZPazZm
UHIxa3laS1JqUDBsRE9zVWpoMDcxdFBUTTA0R1UxU3BFYjc4bm9jcnY4VGpXWGFRWXo5UkwyTnNK
bm1jUEZ2SDdkTGsKbjNTRno3NnllUHdEWTZQa3R3aW5UWnUyZE9uU0NSUCs3dzRUSmt4WXNXTEZ0
R25UZHUzYTlaSkh2WHo1OHN5Wk02dXJxK2ZQbi8regpuLzNzSmZjMkFzTTZoUTgrK0dEMFJwSU1j
ekJGbFJyaHkrKzVzdTNkdXplOVVVa1RsVCtwcUcxSDlteDltV0VVR3JkTGszL1NqZmJYCkI2Qk1s
UXlzSFR0MlZGZFg5L3RnZFhYMWpoMDdDcXRyWkxxN3UxOStKMFAwL1BuejdBZUhkZlJSR21wK1lD
Ky8vMUo3R0xOSkxrY1AKSGp6STM2NllpU284cWFodFIvQnNMYnFyb3MvRVFZM0cwb3hzSlAza0Ix
WXhEeDRnMWtEZkloelk0OGVQRHgwNjlQRGh3elZyMWpRMgpOaVpKOHVMRmkyUEhqbDI3ZG0zS2xD
bGJ0bXlaT25WcTRmMDdPanBhV2xwMjd0eVovdE0yL2UvV3JWdGJXbHFXTEZseTVzeVp5Wk1uCmI5
KysvZUxGaTE5OTlWVjNkM2R0YmUzeTVjdlRTeHhhV2xxMmJkdDI2TkNoQnc4ZXJGMjdkc2FNR1lj
UEgzNzgrUEhiYjcrOWFOR2kKVW9mKzVwdHZXbHBhNXN5WmMvWHExYWFtcHV3cDNMNTl1N201dWFl
bjU2MjMzc3BmNURId1dTUkpjdlhxMWVQSGovZjI5cTVldmJxeApzZkh4NDhlZmYvNTVraVJMbHk1
ZHRHalI1NTkvWGxWVmxjdmwxcTFiZCtmT25iYTJ0aVJKUHZyb28xd3VsOTlEMFlGbDV6TjdyUHk4
CnBWc1YzaTUwN2RxMVU2ZE85ZlQwckYrL1Budlc2WHdXem5uMmxJY3k1NlZXYXVmT25lbU5yVnUz
SGo1OCtNR0RCL2xOQ2oxOCtQREkKa1NQMzc5K2ZNMmZPNXMyYnE2cXFCaDNZdlh2M0RoMDZsQ1RK
d29VTDE2OWYzOXpjbkU3dnIzNzFxNGtUSjZaek9PaGEvT2hIUHpwNQo4dVRPblRzUEhqeVl6dUhj
dVhPM2JObFNhZ2tLSjYzb0dXWFhhQVN6ZmVMRWlVMmJOaDA5ZXZUUm8wY2JObXlZUDM5K3V2bHdK
emw3ClVubWxkcFVmMjRzWEwvTGJMbHk0TVB0c2JXcHF5dTRrU1pLK3ZyNVRwMDYxdGJYbGNybFZx
MVkxTmpiMkcwYXBaK0lRbnp0Rmw2YlUKZzNiZ1IxMTJKTm5CWjVkczBGVXVYT3NCSHYvWngzelIv
UUNWWWVTQjFkSFI4ZU1mLy9qT25UdEhqeDVOditLY1BuMjZvYUZodzRZTgp0MjdkT243OCtMWnQy
d3J2bjcrV29xbXBLYjJvSzBtU1AvM3BUMCtlUEprMGFkSXZmdkdMOUc2dHJhM3Z2Ly8rcEVtVDd0
eTVzMy8vCi9zV0xGNmNiZG5aMmJ0dTI3ZWJObThlT0hYdnJyYmQrOHBPZmRIVjFIVHAwS1AzS1Zm
VFE2ZXZvL2Z2M3IxNjlXdlFVZW5wNnRtL2YKM3QzZGZlVElrZHJhMm5uejVnMTZGbDFkWFcxdGJU
dDI3T2pxNmpwNDhPRFVxVlByNitzLy9QRERmZnYyTFYrKy9MWFhYbXRxYXZyawprMDkrK3RPZjF0
Yld6cHc1OC9yMTZ6dDI3Q2lzcTFJRHk4NW4wV045OE1FSG4zMzJXYnJKenAwNy8vem5QL2M3cVZ1
M2JsMjRjR0hiCnRtMDFOVFVYTGx6SW52V1JJMGY2elhuMmxJY3k1NlZXS3IvV0hSMGRXN2R1dlh2
Mzd1SERoN012ZFFjUEhseXhZc1djT1hQT25UdjMKdTkvOUxwZkxUWnc0Y2VDQmJkMjZkZkxreWNl
T0hWdTllbldTSkQvODRROXYzTGp4N3J2dnBuV1ZKTW1VS1ZNR1hZdS8vT1V2NlNCMwo3TmlSZnh5
V1dvSzhVbWRVZEkyR085dnBmYnE2dXQ1Nzc3Mm5UNThlUG53NGw4dk5tVE5uQkpPY1BhbTg3SzZ5
WTh0dis4a25uMlNmCnJVVjNraVRKMmJObmEycHFmdjd6bjErNWNxVzF0Yld4c2JIZk1FbzlFNGV5
WHVselp5aGZiWWJ5cU11T0pEdjQ3TFFNdXNxRkQ1SUIKSGkzWngzeWFqMEJGR3ZtYjI0c1hMNjZ1
cm01b2FNaGZnbnJseXBValI0NzgvdmUvLy9lLy8zMzc5dTErOXk5NnBjS0hIMzZZSkVuNgpXcExh
dFd0WGJXMXRlM3Y3OGVQSDAzOVNweHN1V0xDZ3VycDY3dHk1ejU0OVc3eDRjVTFOemN5Wk01OCtm
VHJBb1NkUG5ueno1czNaCnMyY1hmYjFKa21UKy9QbTVYRzdxMUtrYk5tdzRlL2JzVU02aXBhVmwv
ZnIxTlRVMURRME5hOWV1UFg3OGVKSWtreVpObWpWcjF2WHIKMTVNazZlcnErdTY3NzlMYlY2NWNl
ZlBOTjJ0cWF2cnRwT2pBc3ZOWjlGaDFkWFg1VGJMdnJpVkpjdWJNbWZYcjE5ZlYxVlZYVnhlOQpI
ams3NTlsVEhzcWNsMXFwNUgrdm0wazNhV2hveUc5UzZQSGp4M1Btek1ubGNzdVdMWnMyYmRwSEgz
MDA2TUNxcXFyZWVPT04yYk5uCnQ3ZTNKMG5TMmRsWlYxYzNmZnIwd3QwT3VoWURYREdUWFlLOFVt
ZFVkSTJHTzl2cHpoc2JHNnVycSt2cTZuN3dneCtjT0hFaVpKTDcKblVLL1hXWEhsamZBVlgzOWRw
SWtTVnRiMjZKRmkzSzUzSUlGQzRwdU9NQXpjWWpQbmFGOHRSbktoR1JIa2gxOGRsb0dYZVYrazFa
cQpKTm5IZk5IOUFKVmg1TzlncFFyZjVYN3k1RW1wbEVtU3BOKzdPS25zNVF2Mzd0MXJibTZlUFh2
Mk8rKzhrNzQ5VTdoaDRlRUdQZlMyCmJkdE9uang1OXV6WlRaczJ2ZkhHR3dPY3haUXBVL0pYalF4
OEZsMWRYYlcxdGVudGVmUG1OVGMzcDdmbnpwMzd6VGZmTEZ5NDhPdXYKdjE2eVpNblZxMWNiR3h2
YjI5dmZlZWVkN0U0R0dGamhTWlU2MXNEdTNidVhqN0RzVlhSSnNUblBudkpRNW55QWxTbzhSS252
Z3l4WQpzT0Q4K2ZOTGx5NjljZVBHa3lkUGhqaXdKRWtXTFZxMGYvLytaY3VXZmYzMTEwVi9lbi9n
dFNqNk9DeFVkTUNsem1qUU5ScnViQ2RKCjh2cnJyM2QzZDZlM1gzS1NDMlYzTmNERlE2Vm1LYnVU
SkVsNmVucUtQdEx5Qm40bUR2MjVNL0JUZmlnVGtoMUpkdkRaYVJuaU0zSFEKcGNrKzVvRUtGbmw1
NXJScDAvSzNMMSsrUExLZEhEaHdZTk9tVFN0WHJuenR0ZGRlOHRDVEowL2V2SG56aGcwYjBndDNC
dkR3NGNQWApYMzk5Z0YwVkhxaWpveU85L2VMRmkveXJ4Y3laTSsvZXZmdjQ4ZU83ZCsrKy9mYmJE
eDQ4dUhYclZpNlhLOXhiM2hBSFZ1cFkvZlQyCjloYis3OXk1YysvZHU1ZmVmdmJzV2ZZT1JRK1V2
ejMwaFJ2WlN1VTFOamJldUhIajQ0OC9QbjM2OUtaTm00WStzTHE2dXJxNnVrdVgKTHQyNWMyZnUz
TG5acllhMUZpOXBpR3ZVYjVQODdjTFp6aTlUZDNkMy9qNHZPY21GUW5aVmRDZlYxZFY5ZlgwRGJE
WHdBMzVrNnpXeQpCMjEySklNT1BoblJLaGMxbE1jOFVERUdENnowMWJxcnF5di9aU2o5NTNYNnEx
L1NkK3pUMjdObXpicDA2ZEx6NTgrdlhMbVMvWktYCmJ0WGQzWjNlK2Y3OSsva05Dd3ZnNmRPbkR4
OCs3T25wdVhUcFVwSWtMMTY4S0hXNDlML3BaNHNlZXUvZXZWZXZYcDAwYVZMUkh4cksKNVhMdDdl
M1BuejkvOU9oUmVvMVIrdkhzcmdvSHNHN2R1aE1uVHR5OWUvZkpreWZIang5ZnMyWk5mbTh6Wjg0
OGNPREFnZ1VMSmt5WQpNR3ZXcktOSGp5NVlzS0RvbFBZYldLa1RMSFdzbXBxYWpvNk9aOCtlcFpk
WWZmYlpaNFY3V0xObVRiclY4K2ZQVzF0Ymt5VDU5Tk5QCkM0K2VuZk9CVDduVW5KZGFxZTd1N20r
Ly9iYm81b1VPSGp5NFpjdVdYLy82MXp0MzdteG9hQmppd0ZLTEZpMDZkdXhZT3RWRlYzYUEKdGNn
UE1rbVNxcXFxMjdkdi8vV3ZmeTExdm5tbHpxalVHZzFydGxNblQ1NTgvdng1VDAvUGYvLzczMlhM
bHFVZkhNRWs1MCtxMzBpeQp1OHFPcmQrRTlIdTJGdDFKa2lRTkRRMmRuWjE5ZlgwUEh6NU1MMXJ2
TjR4Qm40bURydGRRdnRvTTVWR1hIVWwyOE5scEticksrWUgxCnV6SEEwbVFmODBBRksvbWIzRk43
OSs1TmY1Ym40c1dMcmEydDZaMC8vdmpqSkVuT256Ky9hdFdxUC96aEQvbmJNMmJNK09xcnI0NGQK
Ty9iNDhlUDE2OWYzKzRkeXV0V0ZDeGZPbnorZkpFbGJXMXRyYTJ0NnU3MjlmZW5TcGVuZEprNmMy
TnpjM05uWnVYYnQydXZYci9mMAo5S1Eva1pROVhINkhwUTdkMnRyYTBOQnc0TUNCMWF0WGYvLzcz
KzkzYXJObXpXcHRiVzFwYWVuczdGeTFhdFhzMmJQVGoyZDNWWGkrCmt5ZFBuakJod3RHalJ5OWV2
TGgwNmRLWk0yZm1kOWpYMTNmeDRzWE5temVuM3lsb2IyL2Z1SEZqMFcrMTlCdFlxZmtzZGF4Y0x0
ZmMKM056UjBiRml4WXFiTjIrdVc3ZnViMy83VzM2cmlSTW56cGd4NCtEQmd4Y3VYRmk2ZE9uZHUz
ZlhyVnRYZUxWV2VyakNPUi80bEV2TgplYW1WdW5EaFFscCsyYzBMSitIS2xTc3RMUzNwM3dZNGYv
NThiVzN0UC8vNXowRUhsbjU4NnRTcFo4K2UzYmh4WTZudlRBMndGb1duCjhPalJvOWJXMW8wYk4z
N3h4UmNERC9pUGYvempzTlpvV0xPZFBpVGVmUFBOZi8zclg1Y3ZYMTY0Y0dIK3Q0R1BZSkx6SjFW
NHVWN1IKWFIwNGNLRGYyUHBOU0w5bmE5RkZiMmhvcUsrdmIybHBhVzV1dm5Qbnp2TGx5Ny8zdmU4
VjdxcXVybTdnWitKUTFtc29YMjFLclZIaApnYklqeVE0K3UyUkZWemsvc1B4Q3BEY0dXSnJzWTM3
NjlPbGZmdm1sWC80T0ZhbHFnT3VOWUpROGVQRGd5Wk1uNlk5aTlmWDFQWGp3CjRNc3Z2eHo2TmIr
M2I5OCtkKzdjdSsrK081cGpIRk9sZnZTUGl2R1NqM21nN1BnVmVid0MrL2Z2Zi9Ub1VmclRWYytl
UGV2czdKdzEKYTlZUXQrM3Q3VTJ2RkI3TkFZNnA5THRJNC9NUHdoRGxaUjd6UURueURoYXZ3TFZy
MTg2ZE8zZi8vdjNlM3Q2NnVyclpzMmV2WExreQorL3Nzc3I3NDRvc25UNTVzMkxDaGtpNWh5ZjlW
R1UvR0NqYml4enhRcGdRV0FFQXczeUlFQUFnbXNBQUFnZ2tzQUlCZ0Fnc0FJSmpBCkFnQUlKckFB
QUlJSkxBQ0FZQUlMQUNDWXdBSUFDQ2F3QUFDQ0NTd0FnR0FDQ3dBZ21NQUNBQWdtc0FBQWdna3NB
SUJnQWdzQUlKakEKQWdBSUpyQUFBSUpOTFBXSnRyYTJzUndIbzZxeHNURi8yOHBXa3NLVkJXRDg4
QTVXNVpzM2I5NnJIZ0tqd3NvQ2pGc2wzOEZLL2VZMwp2eG1iY1RCMDI3WnRTNUprMzc1OW5aMmRw
ZTVUWDErL2ZmdjJKRW51M2J1WEpNbjA2ZFB6bi9ydGIzK2JKTW1TSlV0R2ZhQU0wN0JXCjlwZS8v
T1hZalF5QVlSb2tzQmlmOXV6WnMzdjM3cGUvRCtPTmxRV29ETDVGV0g3MjdkczNsTmZYM2J0Mzc5
dTNid3pHUXhRckMxQXgKQkZiNUdlRDdSeU8rSitPQmxRV29HQUlMQUNDWXdBSUFDQ2F3S3NTZVBY
dGU5UkFZRlZWVlZhOTZDQUFNbThDcUJHbGRhYXpLazlhVgp4Z0lvT3dLcjdCVjJsY2FxSklWZHBi
RUF5b3ZBS20vWm90SllsU0ZiVkJvTG9JejRSYVBselMrY3JGUjlmWDJ2ZWdnQWpKeDNzQUFBCmdn
a3NBSUJnQWdzQUlKaHJzTXFTSzlrcmxaVUZxQXdDcXl6dDJyVXIrOEZ2di8yMjMwZis4WTkvak1s
d0FJRC9SMkRCT0NLZEFTcUQKYTdBQUFJSUpMQUNBWUFJTEFDQ1l3QUlBQ0Nhd0FBQ0NDU3dBZ0dB
Q0N3QWdtTUFDQUFnbXNBQUFnZ2tzQUlCZ0Fnc0FJSmkvUlZqMgpQdjMwMDhML2ZlKzk5MTdWU0FD
QWxNQXFlL2svRDV6OWs4Q1VOZWtNVUw0RUZveFQwaG1nZkFtc3N1ZDlEZ0FZYndSVzJmTStSNldT
CnpnRGxTMkRCT0NXZEFjcVh3Q3A3M3VjQWdQRkdZSlU5NzNOVUt1a01VTDRFRm94VDBobWdmUGxO
N2dBQXdRUVdBRUF3Z1FVQUVFeGcKQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllBQURC
QkJZQVFEQi9LcWNzOWZzcmRRREF1Q0t3eXRLYU5XdUdjcmNUSjA2TQo5a2lJSlowQktvUEFnbkZF
T2dOVUJ0ZGdBUUFFRTFnQUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJCQllBUURDQkJRQVFU
R0FCCkFBUVRXQUFBd1FRV0FFQXdnUVVBRUV4Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFC
Qk5ZQUFEQkJCWUFRRENCQlFBUVRHQUIKQUFRVFdBQUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FB
TUVFRmdCQU1JRUZBQkJNWUFFQUJCTllBQURCQkJZQVFEQ0JCUUFRVEdBQgpBQVFUV0FBQXdRUVdB
RUF3Z1FVQUVFeGdBUUFFRTFnQUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJCQllBUURDQkJR
QVFUR0FCCkFBUVRXQUFBd1FRV0FFQXdnUVVBRUV4Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlB
RUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRHQUIKQUFRVFdBQUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUx
Z0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllBQURCQkJZQVFEQ0JCUUFRVEdBQgpBQVFUV0FBQXdR
UVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJCQllBUURD
QkJRQVFUR0FCCkFBUVRXQUFBd1FRV0FFQXdnUVVBRUV4Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJC
TVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRHQUIKQUFRVFdBQUF3UVFXQUVBd2dRVUFFRXhnQVFB
RUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllBQURCQkJZQVFEQ0JCUUFRVEdBQgpBQVFUV0FB
QXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJCQllB
UURDQkJRQVFUR0FCCkFBUVRXQUFBd1FRV0FFQXdnUVVBRUV4Z0FRQUVFMWdBQU1FRUZnQkFNSUVG
QUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRHQUIKQUFRVFdBQUF3UVFXQUVBd2dRVUFFRXhn
QVFBRUUxZ0FBTUVFRmdCQXNJbXZlZ0NNeElrVEoxNzFFQmdWVmhhZ01naXNzclI3OSs2aAozRzNQ
bmoyalBSSmlXVm1BeXVCYmhBQUF3UVFXQUVBd2dRVUFFRXhnQVFBRWM1RjdlYXVxcXNwK3NLK3Zi
K3hIUWl3ckMxRFd2SU5WCjNyS3Z1RjZESzRPVkJTaHJBcXZzRmI3dWVnMnVKRllXb0h3SnJFcVF2
dnA2RGE0OFZoYWdUQW1zQ3VFMXVGSlpXWUJ5SkxBQUFJSUoKclBKVFgxOGZmay9HQXlzTFVERUVW
dm5adm4zN1VQNFUzWjQ5ZTdadjN6NEc0eUdLbFFXb0dINFBWbG5hdlh2M3ZuMzdPanM3UzkyaAp2
cjUraUg4Mm1ISEZ5Z0pVaHFxbXBxYWluMmhyYTB1U1pONjhlV003SGtaRlRVMU4vcmFWclNTRkt3
dkErREhRdHdpOUJsY3FLd3NBCm82cmt0d2diR3h2SGNoeU1HU3NMQUtQTlJlNEFBTUVFRmdCQU1J
RUZBQkJNWUFFQUJCTllBQURCQkJZQVFEQ0JCUUFRVEdBQkFBUVQKV0FBQXdRUVdBRUF3Z1FVQUVF
eGdBUUFFRTFnQUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJCQllBUURDQkJRQVFUR0FCQUFR
VApXQUFBd1FRV0FFQXdnUVVBRUV4Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFE
QkJCWUFRRENCQlFBUVRHQUJBQVFUCldBQUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdC
QU1JRUZBQkJNWUFFQUJCTllBQURCQkJZQVFEQ0JCUUFRVEdBQkFBUVQKV0FBQXdRUVdBRUF3Z1FV
QUVFeGdBUUFFRTFnQUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJCQllBUURDQkJRQVFUR0FC
QUFRVApXQUFBd1FRV0FFQXdnUVVBRUV4Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5Z
QUFEQkJCWUFRRENCQlFBUVRHQUJBQVFUCldBQUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVF
RmdCQU1JRUZBQkJNWUFFQUJCTllBQURCQkJZQVFEQ0JCUUFRVEdBQkFBUVQKV0FBQXdRUVdBRUF3
Z1FVQUVFeGdBUUFFRTFnQUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJCQllBUURDQkJRQVFU
R0FCQUFRVApXQUFBd1FRV0FFQXdnUVVBRUV4Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFC
Qk5ZQUFEQkJCWUFRRENCQlFBUVRHQUJBQVFUCldBQUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FB
TUVFRmdCQU1JRUZBQkJNWUFFQUJCTllBQURCQkJZQVFEQ0JCUUFRVEdBQkFBUVQKV0FBQXdRUVdB
RUF3Z1FVQUVFeGdBUUFFRTFnQUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJCQllBUURDQkJR
QVFUR0FCQUFRVApXQUFBd1FRV0FFQXdnUVVBRUV4Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlB
RUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRHQUJBQVFUCldBQUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUx
Z0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllBQURCQkJZQVFEQ0JCUUFRVEdBQkFBUVQKV0FBQXdR
UVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJCQllBUURD
QkJRQVFUR0FCQUFRVApXQUFBd1FRV0FFQXdnUVVBRUV4Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJC
TVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRHQUJBQVFUCldBQUF3UVFXQUVBd2dRVUFFRXhnQVFB
RUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllBQURCQkJZQVFEQ0JCUUFRVEdBQkFBUVQKV0FB
QXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJCQllB
UURDQkJRQVFUR0FCQUFRVApXQUFBd1FRV0FFQXdnUVVBRUV4Z0FRQUVFMWdBQU1FRUZnQkFNSUVG
QUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRHQUJBQVFUCldBQUF3UVFXQUVBd2dRVUFFRXhn
QVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllBQURCQkJZQVFEQ0JCUUFRVEdBQkFBUVQK
V0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJC
QllBUURDQkJRQVFUR0FCQUFRVApXQUFBd1FRV0FFQXdnUVVBRUV4Z0FRQUVFMWdBQU1FRUZnQkFN
SUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRHQUJBQVFUCldBQUF3UVFXQUVBd2dRVUFF
RXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllBQURCQkJZQVFEQ0JCUUFRVEdBQkFB
UVQKV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFB
REJCQllBUURDQkJRQVFUR0FCQUFRVApXQUFBd1FRV0FFQXdnUVVBRUV4Z0FRQUVFMWdBQU1FRUZn
QkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRHQUJBQVFUCldBQUF3UVFXQUVBd2dR
VUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllBQURCQkJZQVFEQ0JCUUFRVEdB
QkFBUVQKV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJO
WUFBREJCQllBUURDQkJRQVFUR0FCQUFRVApXQUFBd1FRV0FFQXdnUVVBRUV4Z0FRQUVFMWdBQU1F
RUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRHQUJBQVFUCldBQUF3UVFXQUVB
d2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllBQURCQkJZQVFEQ0JCUUFR
VEdBQkFBUVQKV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFNRUVGZ0JBTUlFRkFCQk1ZQUVB
QkJOWUFBREJCQllBUUxEL0FlQ256SmlaNzJVRQpBQUFBQUVsRlRrU3VRbUNDCgpJbmRleDogTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvZmFzdC9zdWItcGl4ZWwvdHJhbnNmb3Jt
ZWQtaWZyYW1lLWNvcHktb24tc2Nyb2xsLWV4cGVjdGVkLnBuZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNhbm5vdCBk
aXNwbGF5OiBmaWxlIG1hcmtlZCBhcyBhIGJpbmFyeSB0eXBlLgpzdm46bWltZS10eXBlID0gaW1h
Z2UvcG5nCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9mYXN0L3N1
Yi1waXhlbC90cmFuc2Zvcm1lZC1pZnJhbWUtY29weS1vbi1zY3JvbGwtZXhwZWN0ZWQucG5nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2Zhc3Qvc3Vi
LXBpeGVsL3RyYW5zZm9ybWVkLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC1leHBlY3RlZC5wbmcJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9mYXN0L3N1
Yi1waXhlbC90cmFuc2Zvcm1lZC1pZnJhbWUtY29weS1vbi1zY3JvbGwtZXhwZWN0ZWQucG5nCSh3
b3JraW5nIGNvcHkpCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS1saW51eC9mYXN0L3N1Yi1waXhlbC90cmFuc2Zvcm1lZC1pZnJhbWUtY29weS1vbi1z
Y3JvbGwtZXhwZWN0ZWQucG5nCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjptaW1lLXR5cGUKIyMgLTAs
MCArMSAjIworaW1hZ2UvcG5nClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKCmlWQk9S
dzBLR2dvQUFBQU5TVWhFVWdBQUF5QUFBQUpZQ0FJQUFBQVZGQlVuQUFBQUtYUkZXSFJqYUdWamEz
TjFiUUE1TnpreU56Tm0KWWpFNE9XSmpOak5qWWpVM00yWTVNV1F4TkRZeFpXVTBPZGlKb2RRQUFD
QUFTVVJCVkhpYzdkMWJqRnhuWWNEeGIrMzFldGZadGIyeApIZC9pT0hIam1HQUh4NDV0QlFmU3BD
b0Y1UW1wUlVJSTBVYmxVdFMrcEFVaWVLaUVpbEFycWlJaTBxWlE2bEJWSVlDcVhFUVMwa1lrCkJT
VTBnc1FKMkJESHhvNWpiMnBqYit5MTE5NWQ3K1gwNGRCaHNuUFoyWjF2WnM3TS9INVBKN1BuOHAz
YitwKzViVWVTSkFFQWdIam0KTlhvQUFBQ3RSbUFCQUVRbXNBQUFJaE5ZQUFDUkNTd0FnTWdFRmdC
QVpBSUxBQ0F5Z1FVQUVKbkFBZ0NJVEdBQkFFUW1zQUFBSWhOWQpBQUNSQ1N3QWdNZ0VGZ0JBWkFJ
TEFDQXlnUVVBRUpuQUFnQ0lUR0FCQUVRbXNBQUFJaXNaV0IybFBmNzQ0NXMyYlpyRHh0Nzk3bmVu
CkUrUGo0NS81ekdlV0wxKytmUG55cjN6bEszTWNleFZtdFF0ejN0KzZyYi9VR21vOThrSzVVNXhs
aFlPcy80R3FSbjBPY2tidTFzeWUKbXR6QThrZllGTmMvVUNkSkNTR0V2Lzdydng0YkcwdW5reVFa
SFIyOSsrNjdRd2hyMXF3cHMyQWxQdmU1enozMjJHTkRRME1QUHZqZwo3L3pPNzFTenFybVoxUzVj
ZWVXVlZlNXZ4TUVVVldxRXExYXRxdW5JVzBiMXA2Q0ZOZlp1emV5cHlkMTB0Zjc5QURTcGppUkpp
b2JYCmxpMWJubnZ1dWNXTEY0Y1FPanArTTl2UTBOQXR0OXp5d2dzdmRIZDNsMXF3RXV2WHJ6OTA2
TkNDQlF2bXZJWXFqWTJOVmI0THM1cTUKMW9PWjFScHFQZkptbDd1d1crbEE1WFlxMXJKenUxdXJH
VWEreko2YTNNQXlPMEtnc1VxK1JMaHYzNzYwcnZJdFdiSmszNzU5Q3hjdQpySEtyeDQ4ZnIwOWRK
VWx5NGNLRndzZG50UXZWNzIraC9JRlZ2LzVTYTZqRnlGdkcvdjM3YzlNdGM2RHlkeXJXc25PNFd3
dFhWZXBPCm5GSDBVelBua1V5VEcxakxYRHhBWEhOL2svdWhRNGQyN2RxMWVQSGlyMy85Nitram82
T2pIL25JUnhZdFdyUjE2OWFEQnc5T216LzMKVG9XT2pvNnBxYW4wN1Z4UFBQSEU5ZGRmLzAvLzlF
OHJWNjdjdVhObkNPRmYvL1ZmTjJ6WXNHREJnaXV2dlBMZWUrOE5JYVR6dlBiYQphN3QzNzE2OGVQ
RTN2dkdOL2Z2M2I5Kyt2YSt2Nzc3NzdpdXo2WC84eDM5Y3RHalJuLzdwbjNaMGRCVGRoZi8rNy8v
ZXZIbHpmMy8vClY3LzYxZHlENWZjaWhQRGQ3MzUzOWVyVnk1Y3YvK2QvL3VmME9LVDc4cWxQZlNx
ZDd1enM3T3ZyKytZM3YvbG5mL1puNlk5R1IwZnoKMTFCMFlJWEhzM0JiNGYvZkcxYzRuZStoaHg2
Ni92cnIrL3I2SG56d3djS2ZGaDd6d2wydTVKZ1hucW5jS1U0WC85V3ZmdlhPZDc1ego4ZUxGdVVY
eS9mS1h2N3o1NXBzWExsejR3UTkrY0dKaW9wS0JQZmpnZytrdWYvU2pIdzBoNUE3djhQQnc3aGpP
ZUM0ZWZ2amhkSkFmCitNQUgwbVA0UjMvMFIyVk9RZjVCSzdwSGhlZG90a2Y3KzkvLy91Yk5tL2Z1
M1h2ampUZGVkdGxsMy9yV3QzS0x6L1lnRis1VW1WVk4KRzF2K3NrWHYxcUlyQ1NGTVRVMTk1ak9m
V2JwMDZlclZxNy8ydGE4VkRxUFVuVmo1dlZQSmI1dEtycnJDa1JRT3Z2Q1V6WGlXVXpOZQovNFhY
UE5ES0tua2RzWEMyRU1JOTk5eHo1c3laSjU1NFl0V3FWZW1Ebi9yVXA3NzV6VytPam80Ky92amo3
MzN2ZTZjdHNucjE2dHg2CmNoTXJWcXdJSVR6eXlDTzUyYTY2NnFxalI0K09qNC8vOEljL3ZPeXl5
M0lMN3RtejU4eVpNOS85N25mNysvdnZ1ZWVlTjk5ODg4a24KbjF5K2ZIbVpUUzlldlBqSWtTTVBQ
ZlJRMGQwTUlUend3QU1YTGx4NDlkVlgzL25PZDM3NzI5OHVzNnJjR3A1Ly92bmYvLzNmUDMzNgo5
SC8rNTM4dVdiTGs2YWVmVHBMaytQSGpxMWV2UG5ueVpEclBtalZyVHB3NGtTVEp3TURBbWpWcjNu
enp6V21iTGh4WTBlTlpkRnRICmpoekpMWFhnd0lIQ1EvclVVMC9kZXV1dGh3OGZQblBtek9jLy8v
bkNmUzg4NW9XN1hNa3hMM1dtY2hQMzNIUFA0T0RnWTQ4OWxsc2sKM3p2ZThZNzArS2VEN09ucG1Y
RmdrNU9Ueno3NzdPYk5tMCtkT3BVa3lkVFUxTHAxNjE1ODhjWDgxYzU0TG9wZWg2Vk9RVTZwUFNw
NgpqbVo3dEsrNDRvb1F3bjMzM1RjME5IVDQ4T0YzdmV0ZER6Lzg4SndQY3FtYnVuQlZoV1BMTFZ2
cUtCV3VKRW1TTDN6aEMxLzg0aGRIClJrYjI3Tmx6elRYWEZDNVY1azZzNU42cDhMZE5KVmRkNFVn
S0IxOTRXRXFkNVdtSGFNWlRVM2pORnoxVFFHdVllMkNsRXhNVEUvUG0KelV1bjB6ZDdwaFl0V2pS
dGtaR1JrY0pmMmVuL25rNmJjM1IwOU90Zi8vcTJiZHZTSDEyOGVERi9jN25weWNuSjNIVFJUVjkv
L2ZYMwozWGZmK1BqNGpEdjF5MS8rY3Z2MjdXVldsWnY1bGx0dU9YTGtTRHE5WjgrZUxWdTJwTk4z
M25ubk43N3hqU1JKZnZLVG4zUjBkTngzCjMzMUprdno5My8vOTNYZmZYYmpwd29FVlBaNmx0alV0
Q3dwSCtNb3JyNlRUWjgrZUxYcDRwejFZdU11VkhQT2s0RXpsVG5IK0p2SVgKejdkbzBhS1JrWkYw
VzVzM2I2NXdZRW1TM0gzMzNYLzNkMytYSk1uVFR6LzlybmU5cTNETjVjOUYwZXN3S1hFS2loNjAv
RDBxZFk2SwpMbGhxcDlKWHJISXp2UERDQ3hzM2JzeGZ3NndPY3BuL2E1cTJxc0t4NWY2ejFGRXFY
RW1TSk92WHJ6OXo1c3kwYmVVdlZmNU9uUEhlCnFmQzNUU1ZYWGVGSUNnZGZlRmhtdkJNclBEV0Yx
enpRd3FvTnJQenBoUXNYVnJpZW9vdW5Ybnp4eFowN2QzNys4NTkvNVpWWFpweS8KL0thUEhqMzZ3
UTkrY01PR0RjOCsrMno1bmJwMDZWTDZOdFZTcThyTjNOWFZkZUhDaFhSNmVIZzROL09qano1Nnh4
MTNKRW55a1k5OAo1SzY3N25yUGU5NlRKTWtOTjl6d2kxLzhvcEtCRmQycFV0c3FIMWc5UFQyWExs
MHF1cHVsSGl5L3k2V215NStwTXFjNDllZC8vdWQvCjh6ZC9jK0hDaFc5Lys5c3JWcXlvZkdDSER4
Kys3cnJycHFhbS92QVAvL0NCQng0b25HSEdjMUg1ZFpWdlZ1ZW8xSUtsZG1yYTFaaWIKWnc0SHVW
Umd6WGhuVmJMQ29pdVpQMzkrK1QwcWZ5ZFdmcjd5cDJkMTBaWVp5WXlEVHlxNEV5czhOVVd2ZWFC
VnhReXNiZHUyNVI3OAo5My8vOXpMcktmTjdjTU9HRGVrVE1JT0RnNVgvUTFobTB6LzR3US9XcjE5
ZmZxZjI3dDI3WThlT01xdkszOUIvL01kL3BOTW5UNTY4Ci9mYmIwK21Sa1pGbHk1WWRQSGp3dXV1
dUd4c2JXNzE2OVZOUFBiVno1ODdDN1JZZFdLbWRLcnF0RU1MVTFGUnVPdityTkpJaytmQ0gKUC96
akgvODRuUjRhR3NyTlVHcmZaOXpsVXRQbHo5U00vOVM5L1BMTHUzZnY3dTd1M3JScDA1TlBQbG41
d0pJa2VkLzczbmYvL2ZldgpXYk9tY05lU0NzNUZ4TUFxZFk1S0xWaHFwMElJdVN3K2VQRGcxcTFi
MCtrNUhPUlNnVFhqblZYSkNvdXVaUG55NVJNVEUrWDNPaWw5CkoxWit2cEszSHZuY2d6TmV0R1ZH
VXNuZ3k5eUpNMDdrVHhlOTVvRldOVU5nVFUxTi9mU25QdzBoL09RblA1bWNuRXdmUEhyMGFBaGgK
WUdBZ1NaSVRKMDZFRUk0ZE81WWt5V2MvKzluNzc3OS9lSGo0VzkvNlZ2cS9wUGxlZi8zMUVNTHJy
NzkrN05peEVNTGV2WHVUSkVtbgpSMGRIYzdNdFhicjBvWWNlR2hnWStQS1h2enh2M3J5TEZ5K21D
NmFiZStPTk4zTFRBd01ESVlTalI0K1cyblFJNFR2ZitjNnJyNzY2CmJObXl3bDI3N0xMTDl1elpN
enc4L09xcnIrN2F0ZXZ4eHg5UEh5OWNWVHFBNDhlUEowbnk3TFBQWG5QTk5mL3pQLzl6OHVUSkQz
M28KUXkrODhFSnVoUi80d0FlMmJkdjJ0My83dDBtUzNIbm5uVmRkZGRXOTk5NWIvS0MvZFdDbGpt
ZXBiVjErK2VWUFBQSEVtVE5uMG05OQpYTHQyYmY0SVQ1dzQ4ZTUzdi91NTU1NGJIaDcrcTcvNnF4
REM2dFdyODdkZWVNeEw3WEw1WTE3cVRMMysrdXZwRzhYeUYwLzNLTi9iCjN2YTJkTUN6R2xqcWtV
Y2U2ZTd1L3V4blAxdjA4SlkvRjdsQkprblMyZG41d3gvK2NNdVdMYVZPUVU2cFBTcHpQY3hxcDBJ
SWQ5MTEKMTdsejV3WUdCdjdnRC80Z1Z3eHpPTWk1blpvMmtzSlZGWTR0dDJ6UnU3WG9TcElrK2RD
SFB2VFVVMDlOVGs3KzRoZS95SDFSVnY0dwp5dCtKNWM5WDViOXRLcm5xQ2tkU09QakN3MUwwTE9k
dXVta1RaVTVONFRVUHRMQVpBaXU4MWJRSHAwMmZPM2Z1L2U5L2YxZFgxL2J0CjIxOTk5ZFh5cThx
M2J0MjYzR3ozM0hQUG9rV0xkdTNhZGZiczJiZS8vZTJmL3ZTblMyMXV4azJIRVA3bFgvNWw4ZUxG
UlVQbnhSZGYKM0wxN2QxZFgxOWF0VzcvM3ZlL2xIaTljMWJUZHYvZmVlOVBQSEgzbk85L0pYK0VE
RHp6UTNkMTkrdlRwSkVrZWZ2amhycTZ1d2NIQgpVa2MxZjJDbGRxclV0cjc4NVM5ZmR0bGxOOTEw
VS9vLy9ZODk5dGkwcFg3MnM1OXQzTGh4N2RxMVR6NzU1TFhYWHB1L2Q3bE41Qi96CjhydGNhcnJN
bVNxelJ6bTMzSEpMN2tkOWZYMjVUNGVWSDFocWZIeDgwYUpGcjczMld0SERXLzVjNUkvbnd4Lytj
SDkvL3c5KzhJTVoKQnp6YmN6U3JvNTNPbG43QTdjb3JyL3pxVjcrYW0za09Cem0zVTlOR1VtcFYr
V01yUENEVE5sUzRraVJKVHA0OCtaNzN2S2U3dTN2Nwo5dTMvOW0vL05tMVZ5VXgzWXVYbkszKzY4
b3QyMnVtWU5wTEN3UmNlbHFKbnVlZ2hLbjlxQ3EvNUpFbDI3OTVkOUpnQXpTN09sd0hDCnJQejg1
ejgvZmZyMDdiZmZIa0tZbkp6Y3QyL2Y3dDI3Sy85Mm9oLzk2RWRmK3RLWEhuMzAwVnFPc2E1aWZT
MG5tVlhsTlE4MEhYL3MKbVFhNDQ0NDdEaDQ4bUQ1TGNlN2N1V2VlZWVhT08rNm9jTm54OGZGLytJ
ZC8rTXUvL011YWpyQ2VUcDQ4R1VKSVgvK2lWVlZ6elFQTgpTR0RSQUYvNXlsZjI3Tm16YnQyNmhR
c1g3dHk1OCtqUm8rbDNQTTdveGh0djNMQmh3eWMvK2NuYmJydXR4bU9zbi9SUFJxWmZua1NyCm12
TTFEelFwTDB3QUFFVG1HU3dBZ01nRUZnQkFaQUlMQUNBeWdjWE0wajlCQ0FCVVNHQXhnN0d4c2U5
OTczc0hEeDVzOUVBQW9HbDAKTm5vQVpOclkyTmozdi8vOVgvLzYxNy8rOWE5RENCczNibXowaUFD
Z0NYZ0dpNUp5ZFRWLy92d1F3alBQUE9ONUxBQ29oTUNpdUZ4ZApkWFYxWFhYVlZjdVdMUXNhQ3dB
cUk3QW9Jcit1MXE1ZHUyREJnbVhMbG1rc0FLaVF3R0s2d3JwS0g5ZFlBRkFoZ2NWYmxLcXJsTVlD
CmdFb0lMSDZyZkYybE5CWUF6RWhnOFJ1VjFGVktZd0ZBZVFLTEVHWlRWeW1OQlFCbENDeG1YVmNw
alFVQXBRaXNkamUzdWtwcExBQW8KU21DMXRXcnFLcVd4QUtDUXdHcGYxZGRWU21NQndEUUNxMDNG
cXF1VXhnS0FmQUtySGNXdHE1VEdBb0FjZ2RWMmFsRlhLWTBGQUNtQgoxVjVxVjFjcGpRVUFRV0Mx
bFZyWFZVcGpBWURBYWhmMXFhdVV4Z0tnelFtc3RsRFB1a3BwTEFEYW1jQnFmZld2cTVUR0FxQnRD
YXdXCjE2aTZTbWtzQU5xVHdHcGxqYTJybE1ZQ29BMEpySmFWaGJwS2FTd0EybzNBYWszWnFhdVV4
Z0tnclFpc0ZwUzF1a3BwTEFEYWg4QnEKTmRtc3E1VEdBcUJOQ0t5V2t1VzZTbWtzQU5xQndHb2Qy
YStybE1ZQ29PVUpyQmJSTEhXVjBsZ0F0RGFCMVFxYXE2NVNHZ3VBRmlhdwptbDR6MWxWS1l3SFFx
Z1JXYzJ2ZXVrcHBMQUJha3NCcVlzMWVWeW1OQlVEckVWak5xalhxS3FXeEFHZ3hBcXNwdFZKZHBU
UVdBSzFFCllEV2YxcXVybE1ZQ29HVUlyQ2JUcW5XVjBsZ0F0QWFCMVV4YXU2NVNHZ3VBRmlDd21r
WTcxRlZLWXdIUTdBUldjMmlmdWtwcExBQ2EKbXNCcUF1MVdWeW1OQlVEekVsaFoxNTUxbGRKWUFE
UXBnWlZwN1Z4WEtZMEZRRE1TV05tbHJsSWFDNENtSTdBeVNsM2wwMWdBTkJlQgpsVVhxcXBER0Fx
Q0pDS3pNVVZlbGFDd0Ftb1hBeWhaMVZaN0dBcUFwQ0t3TVVWZVYwRmdBWkovQXlncDFWVG1OQlVE
R2RUWjZBSVNnCnJtWXZEYXpCd2NGbm5ua21oTEJ4NDhZR0Q2aHFiN3p4eG1PUFBkYm9VZERpUHZh
eGp6VjZDTkF1UElQVmVPcHFibHJzZWF5bFM1ZHUKM2JxMTBhTUFJQTdQWURXWXVxcEdLejJQdFdE
QmdxdXZ2bnJod29WdnZQRkdvOGRDcXhrYkd6dDE2bFNqUndIdFJXQTFrcnFxWG9zMQoxckpseTg2
ZVBkdm9nUUJRTFM4Uk5veTZpcVUxWGl2czZPaG85QkFBaUVaZ05ZYTZpcXMxR2l1RWtDUkpvNGNB
UUFRQ3F3SFVWUzIwClRHTUIwQUlFVnIycHE5clJXQUJraE1DcUszVlZheG9MZ0N3UVdQV2pydXBE
WXdIUWNBS3JUdFJWUFdrc0FCcExZTldEdXFvL2pRVkEKQXdtc21sTlhqYUt4QUdnVWdWVmI2cXF4
TkJZQURTR3dha2hkWllIR0FxRCtCRmF0cUt2czBGZ0ExSm5BcWdsMWxUVWFDNEI2RWxqeApxYXRz
MGxnQTFJM0Fpa3hkWlpuR0FxQStCRlpNNmlyN05CWUFkU0N3b2xGWHpVSmpBVkJyQWlzT2RkVmNO
QllBTlNXd0lsQlh6VWhqCkFWQTdBcXRhNnFwNWFTd0Fha1JnVlVWZE5UdU5CVUF0Q0t5NVUxZXRR
V01CRUozQW1pTjExVW8wRmdCeENheTVVRmV0UjJNQkVKSEEKbWpWMTFhbzBGZ0N4Q0t6WlVWZXRU
V01CRUlYQW1nVjExUTQwRmdEVkUxaVZVbGZ0UTJNQlVDV0JWUkYxMVc0MEZnRFZFRmd6VTFmdApT
V01CTUdjQ2F3YnFxcDFwTEFEbVJtQ1ZvNjdRV0FETWdjQXFTVjJSMGxnQXpKYkFLazVka1U5akFU
QXJBcXNJZFVVaGpRVkE1UVRXCmRPcUtValFXQUJVU1dHK2hyaWhQWXdGUUNZSDFXK3FLU21nc0FH
WWtzSDVEWFZFNWpRVkFlUUlyQkhYRjdHa3NBTW9RV09xS09kSlkKQUpUUzdvR2xycWlHeGdLZ3FM
WU9MSFZGOWE2OTl0cHQyN1lGalFWQW5zNUdENkJoMUJYVlc3Qmd3UTAzM0RBOFBIeisvUGxEaHc0
OQo4OHd6SVlTTkd6YzJlbHdBTkZpYkJwYTZvbnFqbzZQbnpwMDdlUERnME5EUXdvVUx1N3E2TGwy
NnBMRUFDTzBaV09xSzZvMk9qcDQrCmZmcldXMjlkdDI1ZCtwOW56NTQ5ZWZMa3hNU0V4Z0tnN2Q2
RHBhNm8zclM2Q2lGMGQzZmZmdnZ0SzFldTdPenNETjZQQmREMjJpdXcKMUJYVks2eXJWRTlQajhZ
Q0lOVkdnYVd1cUY2cHVrcHBMQUJTN1JKWTZvcnFsYStybE1ZQ0lMUkpZS2tycWxkSlhhVnlqZFhk
M1IwMApGa0JiYXYxUEVhb3JxbGRZVjYrOTlscHZiKy9rNU9URml4ZTd1cm9XTDE3YzE5ZVhtNytu
cCtmM2Z1LzNYbnJwcGZIeDhWZGVlY1huCkNnSGFUWXNIbHJxaWVrV2Z1enB4NHNUaHc0ZVRKRW1T
Wk42OGVlOTk3M3VuTGRYZDNUMCtQcjU5Ky9hZW5wNjllL2YrNkVjLzZ1N3UKbnZIWkx3QmFReXNI
bHJxaWVtbGQ5ZmYzSHp0MkxEK1Bicjc1NWhEQ29VT0hRZ2hUVTFNakl5T0Z5MTV4eFJVOVBUM1hY
WGZka2lWTAplbnA2cnJqaWlyb05HNERHYXRuM1lLa3JxcGZXMVk0ZE8yNjU1WmJSMGRIbm5uc3Uv
NmMzMzN6enRkZGVHMExvNk9oSTMyNlY3OENCCkE2Ky8vdnJnNE9EazVPVEtsU3ZYcmwzYjFkVlZ2
NkVEMEZDdEdWanFpdXJsNm1yVnFsVWhoSnR1dXFsVVkzVjJkdmIwOU9RL2Z1REEKZ1gzNzlyM3Ri
Vy9yN095Y1AzOStYMTlmUjBkSFhVY1BRRU8xWUdDcEs2bzNyYTVTcFJwci9mcjFRME5EdVVmU3V0
cTFhMWR2YjYrNgpBbWhQclJaWTZvcnFGYTJyVktuR1dyTm1UVHF0cmdBSUxSWlk2b3JxbGFtcjFQ
YnQyeTljdURDdHNWTHFDb0JVNndTV3VxSjZNOVpWCmtpUmpZMk9iTjI4ZUhoNmUxbGpxQ29DY0Zn
a3NkVVgxS3F5cnljbkpFTUtXTFZ2eUcwdGRBWkN2RlFKTFhWRzlXZFZWS3RkWTZncUEKYVpvK3NO
UVYxWnREWGFXMmJObHk2dFFwZFFYQU5NMGRXT3FLNnMyNXJrSUl4NDhmbjVpWVVGY0FUTlBFZ2FX
dXFGNlZkWFhzMkRGMQpCVUNoWmcwc2RVWDFpdGJWK2ZQbng4ZkgwMmwxQmNEY05HVmdxU3VxVitx
NXF4TW5UanovL1BQajQrUHFDb0E1YTc3QVVsZFVyMmhkClhieDRNWVN3Y2VQRzVjdVhQLy84ODhQ
RHcrb0tnTGxwc3NCU1YxU3YxSE5YQnc0YytOblBmaFpDMkxScDA5S2xTL2Z1M1RzeE1URnQKV1hV
RlFDV2FLYkRVRmRVcldsZGpZMk1oaEczYnRvMk5qYjM4OHN0alkyUFhYSFBOeXBVcnA2YW04cGRO
NjJybnpwM3FDb0R5bWlhdwoxQlhWSzFwWGs1T1R6ei8vL0pFalIwSUlPM2JzR0JrWjJiOS9md2po
eWl1djdPcnF5czJXcTZ1K3ZqNTFCVUI1elJGWTZvcnFsWHBsCmNQNzgrZHUzYno5eTVNaVJJMGZH
eHNadXVPR0dlZlBtNVQ1SW1GSlhBTXhLRXdTV3VxSjY1Yi92cXJlM2Q5ZXVYYi82MWErT0hqMGEK
UXJqdXV1dnlMek4xQmNCc1pUMncxQlhWcStUYlJEczdPN2R1M1RvNE9EanRrNFBxQ29BNTZHejBB
TXBSVjFTdjh1OXFYN1JvMFR2ZQo4WTc4ZmxKWEFNeE5kcC9CVWxkVWI3Wi9DVWRkQVJCRlJnTkxY
Vkc5dEs2NnVycDZlM3VMempEamQ3V3JLd0RtSm91QnBhNm9YbHBYClYxOTlkZTVyMmFmTm9LNEFx
SjNNQlphNm9ucTV1bHF5Wk1tS0ZTdjYrL3VuTlphNkFxQ21zaFZZNm9ycTVkZFYrc2kweGxKWEFO
UmEKaGdKTFhWRzl3cnBLNVJyci9Qbno2Z3FBV3N0S1lLa3JxbGVxcmxMNWpWWDRVM1VGUUVTWkND
eDFSZlhLMTFWcXhZb1ZsMTkrK2Nzdgp2M3p4NHNYOHg5VVZBSEUxUHJEVUZkV3JwSzVTaFkybHJn
Q0lyc0dCcGE2b1h1VjFsY3B2TEhVRlFDMDA4ay9scUN1cU45dTZTcTFZCnNTS0U4TUlMTDNSMmRx
b3JBS0pyMkROWTZvcnF6YTJ1VWgwZEhlb0tnQnBwVEdDcEs2cFhUVjJkUG4xNmNIQlFYUUZRSTQx
NWlmRHMKMmJQOS9mMTlmWDFYWEhIRjRPQmdROFpBVTFOWEFHUlpZd0pyNWNxVmwxOStlZnExMnQz
ZDNRTURBdzBaQmsxS1hRR1FjUTE3RDlhQwpCUXQ2ZTN0RENNdVdMVnU3ZG0yamhrSFRVVmNBWkY4
anY2WkJZekZiNmdxQXB0RGc3OEhTV0ZST1hRSFFMQnIvVGU0YWkwcW9Ld0NhClNPTURLMmdzWnFL
dUFHZ3VtUWlzb0xFb1RWMEIwSFN5RWxoQlkxR011Z0tnR1dVb3NJTEc0cTNVRlFCTktsdUJGVFFX
LzA5ZEFkQzgKTWhkWVFXT2hyZ0JvY2xrTXJLQ3gycHU2QXFEWlpUU3dnc1pxVitvS2dCYVEzY0FL
R3F2OXFDc0FXa09tQXl0b3JIYWlyZ0JvR1ZrUApyS0N4Mm9PNkFxQ1ZORUZnQlkzVjZ0UVZBQzJt
T1FJcmFLeldwYTRBYUQxTkUxaEJZN1VpZFFWQVMycW13QW9hcTdXb0t3QmFWWk1GClZ0QllyVUpk
QWREQ21pK3dnc1pxZnVvS2dOYldsSUVWTkZZelUxZFFaMjRUcUw5bURheWdzWnFUdWdLZ0hUUnhZ
QVdOMVd6VUZRQnQKb3JrREsyaXM1cUd1QUdnZlRSOVlRV00xQTNVRlFGdHBoY0FLR2l2YjFCVUE3
YVpGQWl0b3JLeFNWd0Mwb2RZSnJLQ3hza2RkQWRDZQpXaXF3Z3NiS0VuVUZRTnRxdGNBS0dpc2Ix
QlVBN2F3RkF5dG9yRVpUVndDMHVkWU1yS0N4R2tkZEFVRExCbGJRV0kyZ3JnQWd0SFpnCkJZMVZY
K29LQUZJdEhsaEJZOVdMdWdLQW5OWVByS0N4YWs5ZEFVQyt0Z2lzb0xGcVNWMEJ3RFR0RWxoQlk5
V0d1Z0tBUW0wVVdFRmoKeGFhdUFLQ285Z3Fzb0xIaVVWY0FVRXJiQlZiUVdER29Ld0Fvb3gwREsy
aXM2cWdyQUNpdnM5RURhSmkwc1lhSGg1Y3RXeFpDR0JnWQphUFNJbW9PNnFxbmUzdDZ0VzdlZVAz
OSsvLzc5NTgrZmIvUndhRzZkbloxcjFxelp0R25UcVZPbmpoMDcxdWpoUUh0cDM4QUtHbXYyCjFG
V3RkWFoyVGt4TURBd003Tnk1YzJKaW9zeWNaODZjMmI5L3YrZGZNMmhrWk9UOCtmTmJ0bXlwM1Nh
R2hvYjI3OS9mMzkrL1k4ZU8KTXJOMWRIU01qbzRlT25USWRRTDExOWFCRlRUV2JLaXJPamgvL3Z6
ZzRPQ21UWnY2Ky90bm5IbisvUG5wSzkxa3plam9hUG9ycGFhNgp1cnBXcmx4WmZwNUxseTZGRUY1
NTVaVmFEd2FZcGszZmc1WFArN0Vxb2E3cUl6M09sZFFWVktLcnE2dTd1L3QvLy9kL0d6MFFhRHND
Ckt3U05OUk4xVlRkVFUxTkZYeGw4NmFXWDdycnJydnFQaDJaUjVncEprcVQ4eTgxQUxRaXMzOUJZ
cGFpcmhudnBwWmZ1dlBQT2wxNTYKcWRFRElhWno1ODd0MzcrLzZNUWNuRDE3OXY3NzcxZmhrQjBD
NjdjMFZpRjExWERxcWxXTmo0OFBEUTBWblpnYmpRV1pJckRlUW1QbApVMWNOcDY2WUZZMEYyZEh1
bnlJczVIT0ZLWFdWQlZkZmZmVWYvL0VmQzZ5bU16VTFOVG82V242ZVM1Y3VwYk1WVHN5NC92U3pn
VVdsCjE4eXNSd3pFSnJDSzBGanFLaU9XTGwzNkozL3lKeUVFejBrMG5jbkp5VXBtbUp5Y0xKeVk4
OHB2dlBIR1BYdjIzSGpqamJNZUxoQ2IKd0NxdW5SdExYV1ZLcnJFZWVlU1JSbytGbVByNitqWnUz
RmgwWW03VUZXU0t3Q3FwUFJ0TFhXVlEybGkzM1haYm93ZENUSjJkbmVrNwpQZ3NuNWtCZFFkWjRr
M3M1N2ZhZWQzWFZjS1graVYyNmRLbC9PeW1qekJWU1RiY0JjeWF3WnRBK2phV3VzbURKa2lWcjE2
Nzk2VTkvCjJ1aUIwQ0xPbkRsejhPREJtdjVoUktBb0x4SE9yQjFlSzFSWEdkSFoyYmxxMWFvUXdv
OS8vT1BoNGVFeWMxNjZkR2xrWk9UUW9VUDEKR2hxVm1weWNIQjhmMzd0M2IrMDJNVDQrSGtJNGMr
Yk1mLzNYZjVXWnJiT3pjL255NVpzMmJhcmtrNGxBWEFLcklxM2RXT29xT3lZbgpKOGZHeHZyNits
YXZYdTNQbTFDbGVmUG1kWGQzZDNaMlhyeDRzZEZqZ2JZanNDclZxbzJscmpJbDkyZmo1bkE2b0tp
SmlZbSt2cjZ0Clc3ZSsvUExMalI0THRKR09KRWthUFlabU1qNCtucjV3TXpnNDJBS05wYTRBb0Jh
OHlYMTJXdWs5NytvS0FHcEVZTTFhYXpTV3VnS0EKMmhGWWM5SHNqYVd1QUtDbUJOWWNOVzlqcVNz
QXFEV0JOWGZOMkZqcUNnRHFRR0JWcGJrYVMxMEJRSDBJckdvMVMyT3BLd0NvRzRFVgpRZlliUzEw
QlFEMzVvdEZvTXZzZHBOWFgxYTVkdTNwN2U5VVZBRlRJTTFqUlpQTjVMSFVGQVBVbnNHTEtXbU9w
S3dCb0NJRVZXWFlhClMxMEJRS01JclBpeTBGanFDZ0FhU0dEVlJHTWJTMTBCUUdNSnJGcHBWR09w
S3dCb09JRlZRL1Z2TEhVRkFGa2dzR3Fybm8ybHJnQWcKSXdSV3pkV25zZFFWQUdTSHdLcUhXamVX
dWdLQVRCRllkVks3eGxKWEFKQTFBcXQrYXRGWTZnb0FNa2hnMVZYY3hsSlhBSkJOQXF2ZQpZalZX
V2xmcjE2OVhWd0NRTlFLckFhcHZyTFN1MXE1ZGUvcjA2YW1wcVZrdHE2NEFvTllFVm1OVTAxaHBY
ZDE2NjYyMzNYYmJ1blhyCkRoOCtYSGxqcVNzQXFBT0IxVEJ6YTZ4Y1hhMWJ0eTZFY05OTk4xWGVX
T29LQU9wRFlEWFNiQnRyV2wybEttd3NkUVVBZFNPd0dxenkKeGlwYVY2a1pHMHRkQVVBOUNhekdx
NlN4eXRSVnFreGpxU3NBcURPQmxRbmxHNnV3cnI3MHBTOTk3V3RmbXpaYjBjWlNWd0JRZndJcgpL
MG8xMXVUazVPRGc0TFRucmxhdVhQbkpUMzV5eHNaU1Z3RFFFSjJOSGdDL2xUYlc4UER3c21YTFFn
Z0RBd1A5L2YzZDNkMXZmL3ZiClY2MWFsVDluK3ZWWG4vakVKMElJSC8vNHgvTi9kTk5OTjRVUURo
OCt2R1RKa2pmZmZGTmRBVUQ5ZVFZclcvS2Z4OXF3WWNNTk45eHcKN3R5NXdyZFZYYmh3SVozNHhD
YytVZlI1ck43ZVhuVUZBSTBpc0RJbjExaTl2YjBqSXlNclZxem82K3ViTnMrYU5Xdm16NStmVHYv
RgpYL3pGdE1ZNmNPREEwTkNRdWdLQVJ2RVNZUmJsWGlzY0d4c2JHUmw1K3VtbmI3MzExcVZMbCta
bTZPdnJlL1RSUjQ4ZVBkcloyYmx1CjNicFRwMDdsZm5UZ3dJRjkrL2FwS3dCb29JNGtTUm85Qm9v
Ykh4OGZIaDRPSVJ3OWV2VElrU08zMzM1N2ZtTVZwYTRBSUF1OFJKaGQKdWRjSzE2OWZmODAxMXp6
OTlOTm56NTR0TTcrNkFvQ01FRmlaVm5sanFTc0F5QTZCbFhXVk5KYTZBb0JNRVZoTm9IeGpxU3NB
eUJwdgpjbThhK2U5NVAzNzgrTy8rN3UrKytlYWJJWVFYWDN4eHg0NGQ2Z29Bc2tOZ05aTmNZNTA2
ZGFxdnIyOXdjTENucDZlN3UzdlJva1hxCkNnQ3lRMkExbVZ4akxWeTRzTHU3ZTNoNGVISnlVbDBC
UUtZSXJPYVRhNnlPam80a1NkUVZBR1NOd0dwS3VjWlNWd0NRUVFLcldZMlAKajQrT2p2YjI5cW9y
QU1nYWdRVUFFSm52d1FJQUxUNGdrUUFBQmR0SlJFRlVpRXhnQVFCRUpyQUFBQ0lUV0FBQWtRa3NB
SURJQkJZQQpRR1FDQ3dBZ01vRUZBQkNad0FJQWlFeGdBUUJFSnJBQUFDSVRXQUFBa1Frc0FJRElC
QllBUUdRQ0N3QWdNb0VGQUJDWndBSUFpRXhnCkFRQkVKckFBQUNJVFdBQUFrUWtzQUlESUJCWUFR
R1FDQ3dBZ01vRUZBQkNad0FJQWlFeGdBUUJFSnJBQUFDSVRXQUFBa1Frc0FJREkKQkJZQVFHUUND
d0FnTW9FRkFCQ1p3QUlBaUV4Z0FRQkVKckFBQUNJVFdBQUFrUWtzQUlESUJCWUFRR1FDQ3dBZ01v
RUZBQkNad0FJQQppRXhnQVFCRUpyQUFBQ0lUV0FBQWtRa3NBSURJQkJZQVFHUUNDd0FnTW9FRkFC
Q1p3QUlBaUV4Z0FRQkVKckFBQUNJVFdBQUFrUWtzCkFJRElCQllBUUdRQ0N3QWdNb0VGQUJDWndB
SUFpRXhnQVFCRUpyQUFBQ0lUV0FBQWtRa3NBSURJQkJZQVFHUUNDd0FnTW9FRkFCQ1oKd0FJQWlF
eGdBUUJFSnJBQUFDSVRXQUFBa1Frc0FJRElCQllBUUdRQ0N3QWdNb0VGQUJDWndBSUFpRXhnQVFC
RUpyQUFBQ0lUV0FBQQprUWtzQUlESUJCWUFRR1FDQ3dBZ01vRUZBQkNad0FJQWlFeGdBUUJFSnJB
QUFDSVRXQUFBa1Frc0FJRElCQllBUUdRQ0N3QWdNb0VGCkFCQ1p3QUlBaUV4Z0FRQkVKckFBQUNJ
VFdBQUFrUWtzQUlESUJCWUFRR1FDQ3dBZ01vRUZBQkNad0FJQWlFeGdBUUJFSnJBQUFDSVQKV0FB
QWtRa3NBSURJQkJZQVFHUUNDd0FnTW9FRkFCQ1p3QUlBaUV4Z0FRQkVKckFBQUNJVFdBQUFrUWtz
QUlESUJCWUFRR1FDQ3dBZwpNb0VGQUJDWndBSUFpRXhnQVFCRUpyQUFBQ0lUV0FBQWtRa3NBSURJ
QkJZQVFHUUNDd0FnTW9FRkFCQ1p3QUlBaUV4Z0FRQkVKckFBCkFDSVRXQUFBa1Frc0FJRElCQllB
UUdRQ0N3QWdNb0VGQUJDWndBSUFpRXhnQVFCRUpyQUFBQ0lUV0FBQWtRa3NBSURJQkJZQVFHUUMK
Q3dBZ01vRUZBQkNad0FJQWlFeGdBUUJFSnJBQUFDSVRXQUFBa1Frc0FJRElCQllBUUdRQ0N3QWdN
b0VGQUJDWndBSUFpRXhnQVFCRQpKckFBQUNJVFdBQUFrUWtzQUlESUJCWUFRR1FDQ3dBZ01vRUZB
QkNad0FJQWlFeGdBUUJFSnJBQUFDSVRXQUFBa1Frc0FJRElCQllBClFHUUNDd0FnTW9FRkFCQ1p3
QUlBaUV4Z0FRQkVKckFBQUNJVFdBQUFrUWtzQUlESUJCWUFRR1FDQ3dBZ01vRUZBQkNad0FJQWlF
eGcKQVFCRUpyQUFBQ0lUV0FBQWtRa3NBSURJQkJZQVFHUUNDd0FnTW9FRkFCQ1p3QUlBaUV4Z0FR
QkVKckFBQUNJVFdBQUFrUWtzQUlESQpCQllBUUdRQ0N3QWdNb0VGQUJDWndBSUFpRXhnQVFCRUpy
QUFBQ0lUV0FBQWtRa3NBSURJQkJZQVFHUUNDd0FnTW9FRkFCQ1p3QUlBCmlFeGdBUUJFSnJBQUFD
SVRXQUFBa1Frc0FJRElCQllBUUdRQ0N3QWdNb0VGQUJDWndBSUFpRXhnQVFCRUpyQUFBQ0lUV0FB
QWtRa3MKQUlESUJCWUFRR1FDQ3dBZ01vRUZBQkNad0FJQWlFeGdBUUJFSnJBQUFDSVRXQUFBa1Fr
c0FJRElCQllBUUdRQ0N3QWdNb0VGQUJDWgp3QUlBaUV4Z0FRQkVKckFBQUNJVFdBQUFrUWtzQUlE
SUJCWUFRR1FDQ3dBZ01vRUZBQkNad0FJQWlFeGdBUUJFSnJBQUFDSVRXQUFBCmtRa3NBSURJQkJZ
QVFHUUNDd0FnTW9FRkFCQ1p3QUlBaUV4Z0FRQkVKckFBQUNJVFdBQUFrUWtzQUlESUJCWUFRR1FD
Q3dBZ01vRUYKQUJDWndBSUFpRXhnQVFCRUpyQUFBQ0lUV0FBQWtRa3NBSURJQkJZQVFHUUNDd0Fn
TW9FRkFCQ1p3QUlBaUV4Z0FRQkVKckFBQUNJVApXQUFBa1Frc0FJRElCQllBUUdRQ0N3QWdNb0VG
QUJDWndBSUFpRXhnQVFCRUpyQUFBQ0lUV0FBQWtRa3NBSURJQkJZQVFHUUNDd0FnCk1vRUZBQkNa
d0FJQWlFeGdBUUJFSnJBQUFDSVRXQUFBa1Frc0FJRElCQllBUUdRQ0N3QWdNb0VGQUJDWndBSUFp
RXhnQVFCRUpyQUEKQUNJVFdBQUFrUWtzQUlESUJCWUFRR1FDQ3dBZ01vRUZBQkNad0FJQWlFeGdB
UUJFSnJBQUFDSVRXQUFBa1Frc0FJRElCQllBUUdRQwpDd0FnTW9FRkFCQ1p3QUlBaUV4Z0FRQkVK
ckFBQUNJVFdBQUFrUWtzQUlESUJCWUFRR1FDQ3dBZ01vRUZBQkNad0FJQWlFeGdBUUJFCkpyQUFB
Q0lUV0FBQWtRa3NBSURJQkJZQVFHUUNDd0FnTW9FRkFCQ1p3QUlBaUV4Z0FRQkVKckFBQUNMN1A3
dW9VeStrOG0rZkFBQUEKQUVsRlRrU3VRbUNDCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179325</attachid>
            <date>2012-12-13 13:52:52 -0800</date>
            <delta_ts>2012-12-13 16:09:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101779-20121213135012.patch</filename>
            <type>text/plain</type>
            <size>110020</size>
            <attacher name="Levi Weintraub">leviw</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNzYyOSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzOSBAQAorMjAxMi0xMi0xMyAgTGV2aSBX
ZWludHJhdWIgIDxsZXZpd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUHVzaCBwaXhlbCBzbmFw
cGluZyBsb2dpYyBpbnRvIFRyYW5zZm9ybVN0YXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE3NzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgb2xkIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zIGJl
aGF2aW9yIGZlbGwgYXBhcnQgd2hlbiB0aGVyZSB3YXMgY29udGVudCBuZXN0ZWQgaW4KKyAgICAg
ICAgbXVsdGlwbGUgbGV2ZWxzIG9mIGNvbnRhaW5lcnMgd2l0aCBzdWItcGl4ZWwgb2Zmc2V0cy4g
VGhlIHBvaW50IG9mIHRoaXMgZmxhZyB3YXMgdG8KKyAgICAgICAgbWlycm9yIHRoZSBwaXhlbCBz
bmFwcGluZyB0aGF0IG9jY3VycyBpbiBwYWludCwgd2hlcmUgb2Zmc2V0cyBhcmUgYWNjdW11bGF0
ZWQgYm90dG9tLQorICAgICAgICB1cCB0aHJvdWdoIHRoZSByZW5kZXIgdHJlZSBhbmQgc25hcHBl
ZCBhdCB0aGUgZW5kLiBUaGlzIGNoYW5nZSBlbGltaW5hdGVzIHRoaXMgZmxhZworICAgICAgICBh
bmQgcHVzaGVzIHBpeGVsIHNuYXBwaW5nIGxvZ2ljIGRvd24gaW50byBUcmFuc2Zvcm1TdGF0ZS4K
KworICAgICAgICBUcmFuc2Zvcm1TdGF0ZSBub3cgdHJhY2tzIGEgTGF5b3V0U2l6ZSBhY2N1bXVs
YXRlZCBvZmZzZXQgd2hlbiB0aGVyZSdzIG5vIHRyYW5zZm9ybQorICAgICAgICBvciB3ZSdyZSBq
dXN0IHRyYW5zbGF0aW5nLiBXZSB0aGVuIHNuYXAgYW5kIGFwcGx5IHRoaXMgb2Zmc2V0IGJlZm9y
ZSBhY2N1bXVsYXRpbmcKKyAgICAgICAgdmFsdWVzIGludG8gYSB0cmFuc2Zvcm0sIGFuZCB3aGVu
IHJldHVybmluZyBwbGFuYXIgY29vcmRpbmF0ZXMgdG8gY2FsbGVycy4KKworICAgICAgICBUZXN0
OiBmYXN0L3N1Yi1waXhlbC90cmFuc2Zvcm1lZC1pZnJhbWUtY29weS1vbi1zY3JvbGwuaHRtbCBh
ZGRlZCwKKyAgICAgICAgICAgICAgZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWlmcmFtZS1jb3B5
LW9uLXNjcm9sbC5odG1sIG1vZGlmaWVkIHRvIGFsc28gY2F0Y2ggdGhpcyBidWcuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybVN0YXRlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlRyYW5zZm9ybVN0YXRlOjpvcGVyYXRvcj0pOiBQYXNzIGFjY3VtdWxh
dGVkIG9mZnNldC4KKyAgICAgICAgKFdlYkNvcmU6OlRyYW5zZm9ybVN0YXRlOjp0cmFuc2xhdGVU
cmFuc2Zvcm0pOiBFeHRyYWN0ZWQgdGhpcyBmdW5jdGlvbmFsaXR5IGZvcgorICAgICAgICByZS11
c2Ugd2hlbiBhcHBseWluZyB0aGUgYWNjdW11bGF0ZWQgb2Zmc2V0LCBvciBhY2N1bXVsYXRpbmcg
ZnJvbSBhIGNhbGwgdG8gbW92ZS4KKyAgICAgICAgKFdlYkNvcmU6OlRyYW5zZm9ybVN0YXRlOjp0
cmFuc2xhdGVNYXBwZWRDb29yZGluYXRlcyk6IFNhbWUgYXMgYWJvdmUgd2hlbiB3ZSdyZSBub3QK
KyAgICAgICAgYWNjdWxhdGluZyBpbnRvIGEgdHJhbnNmb3JtLgorICAgICAgICAoV2ViQ29yZTo6
VHJhbnNmb3JtU3RhdGU6Om1vdmUpOiBDaGFuZ2VkIHRvIGFjY3VtdWxhdGUgaW50byBtX2FjY3Vt
dWxhdGVkT2Zmc2V0IHdoZW4KKyAgICAgICAgbm90IGFjY3VtdWxhdGluZyBpbnRvIGEgdHJhbnNm
b3JtLgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNmb3JtU3RhdGU6OmFwcGx5QWNjdW11bGF0ZWRP
ZmZzZXQpOgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNmb3JtU3RhdGU6OmFwcGx5VHJhbnNmb3Jt
KTogQXBwbGllcyB0aGUgYWNjdW11bGF0ZWQgb2Zmc2V0IGJlZm9yZSB0aGUKKyAgICAgICAgdHJh
bnNmb3JtLgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNmb3JtU3RhdGU6OmZsYXR0ZW4pOiBEaXR0
byBmb3IgZmxhdHRlbmluZy4KKyAgICAgICAgKFdlYkNvcmU6OlRyYW5zZm9ybVN0YXRlOjptYXBw
ZWRQb2ludCk6IFRyYW5zbGF0ZXMgYnkgdGhlIGFjY3VtdWxhdGVkIG9mZnNldCBiZWZvcmUKKyAg
ICAgICAgcmV0dXJuaW5nLgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNmb3JtU3RhdGU6Om1hcHBl
ZFF1YWQpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1Ry
YW5zZm9ybVN0YXRlLmg6CisgICAgICAgIChUcmFuc2Zvcm1TdGF0ZSk6IEFkZGVkIG1fYWNjdW11
bGF0ZWRPZmZzZXQuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckdlb21ldHJ5TWFwLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdlb21ldHJ5TWFwOjptYXBUb0NvbnRhaW5lcik6IFdo
ZW4gbm90IHVzaW5nIGEgdHJhbnNmb3JtLCB3ZSBzdGlsbCBuZWVkCisgICAgICAgIHRvIHNuYXAg
b3VyIG9mZnNldCBiZWZvcmUgYXBwbHlpbmcgdG8gb3VyIGZsb2F0IHJlc3VsdC4gQWxzbywgZmxh
dHRlbiB3aGVuIHdlIGhhdmUgYQorICAgICAgICBub24tdW5pZm9ybSBzdGVwLgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJHZW9tZXRyeU1hcC5oOgorICAgICAgICAoUmVuZGVyR2VvbWV0cnlN
YXApOiBSZW1vdmUgdXNlIG9mIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLgorCisgICAgICAgIEV2
ZXJ5dGhpbmcgYmVsb3cgc2ltcGx5IGRyb3BzIHRoZSB1c2Ugb2YgU25hcE9mZnNldEZvclRyYW5z
Zm9ybXM6CisKKyAgICAgICAgKiBkb20vQ29udGFpbmVyTm9kZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDb250YWluZXJOb2RlOjpnZXRVcHBlckxlZnRDb3JuZXIpOgorICAgICAgICAqIGRvbS9N
b3VzZVJlbGF0ZWRFdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb3VzZVJlbGF0ZWRFdmVu
dDo6Y29tcHV0ZVJlbGF0aXZlUG9zaXRpb24pOgorICAgICAgICAqIGVkaXRpbmcvRnJhbWVTZWxl
Y3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FyZXRCYXNlOjphYnNvbHV0ZUJvdW5kc0Zv
ckxvY2FsUmVjdCk6CisgICAgICAgICogZWRpdGluZy9SZW5kZXJlZFBvc2l0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlcmVkUG9zaXRpb246OmFic29sdXRlUmVjdCk6CisgICAgICAg
ICogZWRpdGluZy9WaXNpYmxlUG9zaXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VmlzaWJs
ZVBvc2l0aW9uOjphYnNvbHV0ZUNhcmV0Qm91bmRzKToKKyAgICAgICAgKiBodG1sL0hUTUxTZWxl
Y3RFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50OjpsaXN0
Qm94RGVmYXVsdEV2ZW50SGFuZGxlcik6CisgICAgICAgICogaHRtbC9zaGFkb3cvU2xpZGVyVGh1
bWJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNsaWRlclRodW1iRWxlbWVudDo6c2V0
UG9zaXRpb25Gcm9tUG9pbnQpOgorICAgICAgICAqIGh0bWwvc2hhZG93L1NwaW5CdXR0b25FbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNwaW5CdXR0b25FbGVtZW50OjpkZWZhdWx0RXZl
bnRIYW5kbGVyKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZVZpZXc6OmNvbnZlcnRGcm9tUmVuZGVyZXIpOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVWaWV3Ojpjb252ZXJ0VG9SZW5kZXJlcik6CisgICAgICAgICogcmVuZGVyaW5nL0lubGlu
ZVRleHRCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lVGV4dEJveDo6cGFpbnREb2N1
bWVudE1hcmtlcik6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVUZXh0Qm94OjpwYWludFRleHRN
YXRjaE1hcmtlcik6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVUZXh0Qm94Ojpjb21wdXRlUmVj
dEZvclJlcGxhY2VtZW50TWFya2VyKToKKyAgICAgICAgKiByZW5kZXJpbmcvTGF5b3V0U3RhdGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0U3RhdGU6OkxheW91dFN0YXRlKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJv
eDo6bWFwTG9jYWxUb0NvbnRhaW5lcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OnB1
c2hNYXBwaW5nVG9Db250YWluZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guaDoK
KyAgICAgICAgKFJlbmRlckJveCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveE1vZGVs
T2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveE1vZGVsT2JqZWN0Ojpjb21w
dXRlU3RpY2t5UG9zaXRpb25Db25zdHJhaW50cyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckVtYmVkZGVkT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckVtYmVkZGVkT2Jq
ZWN0Ojppc0luVW5hdmFpbGFibGVQbHVnaW5JbmRpY2F0b3IpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJGcmFtZVNldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGcmFtZVNldDo6
dXNlclJlc2l6ZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJJbmxpbmU6Om1hcExvY2FsVG9Db250YWluZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVySW5saW5lOjpwdXNoTWFwcGluZ1RvQ29udGFpbmVyKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVySW5saW5lLmg6CisgICAgICAgIChSZW5kZXJJbmxpbmUpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllcjo6YWJzb2x1dGVUb0NvbnRlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyOjpzY3JvbGxUbyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6Y2hpbGRy
ZW5DbGlwUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2VsZkNsaXBSZWN0
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6Y29udGVudHNWaXNpYmxlKToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyTWVkaWFDb250cm9scy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJNZWRpYUNvbnRyb2xzOjp2b2x1bWVTbGlkZXJPZmZzZXRGcm9tTXV0ZUJ1dHRvbik6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlck1lbnVMaXN0OjpzaG93UG9wdXApOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJP
YmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjphYnNvbHV0ZUZvY3Vz
UmluZ1F1YWRzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0Lmg6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4
dDo6YWJzb2x1dGVSZWN0c0ZvclJhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHQ6
OmFic29sdXRlUXVhZHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dDo6YWJzb2x1dGVR
dWFkc0ZvclJhbmdlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OnZvbHVtZVNsaWRlck9mZnNldEZyb21NdXRlQnV0
dG9uKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVmlldy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJWaWV3OjpzZWxlY3Rpb25Cb3VuZHMpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJWaWV3Lmg6CisgICAgICAgIChSZW5kZXJWaWV3KToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyV2lkZ2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlcldpZGdldDo6dXBkYXRl
V2lkZ2V0R2VvbWV0cnkpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWln
bk9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdGb3JlaWduT2JqZWN0Ojpt
YXBMb2NhbFRvQ29udGFpbmVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0Zv
cmVpZ25PYmplY3QuaDoKKyAgICAgICAgKFJlbmRlclNWR0ZvcmVpZ25PYmplY3QpOgorICAgICAg
ICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclNWR0lubGluZTo6bWFwTG9jYWxUb0NvbnRhaW5lcik6CisgICAgICAgICogcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuaDoKKyAgICAgICAgKFJlbmRlclNWR0lubGluZSk6Cisg
ICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJTVkdNb2RlbE9iamVjdDo6bWFwTG9jYWxUb0NvbnRhaW5lcik6Cisg
ICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5oOgorICAgICAgICAo
UmVuZGVyU1ZHTW9kZWxPYmplY3QpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
Um9vdC5oOgorICAgICAgICAoUmVuZGVyU1ZHUm9vdCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1RleHQ6Om1h
cExvY2FsVG9Db250YWluZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4
dC5oOgorICAgICAgICAoUmVuZGVyU1ZHVGV4dCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9T
VkdSZW5kZXJTdXBwb3J0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlbmRlclN1cHBvcnQ6
Om1hcExvY2FsVG9Db250YWluZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvU1ZHUmVuZGVy
U3VwcG9ydC5oOgorICAgICAgICAoU1ZHUmVuZGVyU3VwcG9ydCk6CisKIDIwMTItMTItMTMgIFBh
cnRoIFBhdGVsICA8cGFycGF0ZWxAcmltLmNvbT4sIE1heCBGZWlsIDxtZmVpbEByaW0uY29tPgog
CiAgICAgICAgIEFsbG93IHBsdWdpbnMgdG8gYmUgZGlzYWJsZWQgYnkgc2hhcmVkIGxpYnJhcnkg
ZmlsZW5hbWUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAJKHJldmlzaW9u
IDEzNzQ4NikKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtODY0LDcgKzg2NCw3IEBAIGJvb2wgQ29udGFpbmVyTm9kZTo6Z2V0VXBwZXJM
ZWZ0Q29ybmVyKEYKICAgICAgICAgICAgICAgICBSZW5kZXJCb3gqIGJveCA9IHRvUmVuZGVyQm94
KG8pOwogICAgICAgICAgICAgICAgIHBvaW50Lm1vdmVCeShib3gtPmxvY2F0aW9uKCkpOwogICAg
ICAgICAgICAgfQotICAgICAgICAgICAgcG9pbnQgPSBvLT5jb250YWluZXIoKS0+bG9jYWxUb0Fi
c29sdXRlKHBvaW50LCBVc2VUcmFuc2Zvcm1zIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpOwor
ICAgICAgICAgICAgcG9pbnQgPSBvLT5jb250YWluZXIoKS0+bG9jYWxUb0Fic29sdXRlKHBvaW50
LCBVc2VUcmFuc2Zvcm1zKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAg
ICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vTW91c2VSZWxhdGVkRXZlbnQuY3BwCShyZXZp
c2lvbiAxMzc0ODYpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vTW91c2VSZWxhdGVkRXZlbnQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xNjUsNyArMTY1LDcgQEAgdm9pZCBNb3VzZVJlbGF0ZWRFdmVu
dDo6Y29tcHV0ZVJlbGF0aXZlUAogCiAgICAgLy8gQWRqdXN0IG9mZnNldExvY2F0aW9uIHRvIGJl
IHJlbGF0aXZlIHRvIHRoZSB0YXJnZXQncyBwb3NpdGlvbi4KICAgICBpZiAoUmVuZGVyT2JqZWN0
KiByID0gdGFyZ2V0Tm9kZS0+cmVuZGVyZXIoKSkgewotICAgICAgICBGbG9hdFBvaW50IGxvY2Fs
UG9zID0gci0+YWJzb2x1dGVUb0xvY2FsKGFic29sdXRlTG9jYXRpb24oKSwgVXNlVHJhbnNmb3Jt
cyB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKTsKKyAgICAgICAgRmxvYXRQb2ludCBsb2NhbFBv
cyA9IHItPmFic29sdXRlVG9Mb2NhbChhYnNvbHV0ZUxvY2F0aW9uKCksIFVzZVRyYW5zZm9ybXMp
OwogICAgICAgICBtX29mZnNldExvY2F0aW9uID0gcm91bmRlZExheW91dFBvaW50KGxvY2FsUG9z
KTsKICAgICAgICAgZmxvYXQgc2NhbGVGYWN0b3IgPSAxIC8gKHBhZ2Vab29tRmFjdG9yKHRoaXMp
ICogZnJhbWVTY2FsZUZhY3Rvcih0aGlzKSk7CiAgICAgICAgIGlmIChzY2FsZUZhY3RvciAhPSAx
LjBmKQpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAJKHJl
dmlzaW9uIDEzNzQ4NikKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24u
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzEyLDcgKzEzMTIsNyBAQCBJbnRSZWN0IENhcmV0QmFz
ZTo6YWJzb2x1dGVCb3VuZHNGb3JMb2NhCiAgICAgTGF5b3V0UmVjdCBsb2NhbFJlY3QocmVjdCk7
CiAgICAgaWYgKGNhcmV0UGFpbnRlci0+aXNCb3goKSkKICAgICAgICAgdG9SZW5kZXJCb3goY2Fy
ZXRQYWludGVyKS0+ZmxpcEZvcldyaXRpbmdNb2RlKGxvY2FsUmVjdCk7Ci0gICAgcmV0dXJuIGNh
cmV0UGFpbnRlci0+bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3QobG9jYWxSZWN0KSwgU25h
cE9mZnNldEZvclRyYW5zZm9ybXMpLmVuY2xvc2luZ0JvdW5kaW5nQm94KCk7CisgICAgcmV0dXJu
IGNhcmV0UGFpbnRlci0+bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3QobG9jYWxSZWN0KSku
ZW5jbG9zaW5nQm91bmRpbmdCb3goKTsKIH0KIAogSW50UmVjdCBGcmFtZVNlbGVjdGlvbjo6YWJz
b2x1dGVDYXJldEJvdW5kcygpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbmRlcmVk
UG9zaXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVuZGVy
ZWRQb3NpdGlvbi5jcHAJKHJldmlzaW9uIDEzNzQ4NikKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvUmVuZGVyZWRQb3NpdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzMCw3ICsyMzAsNyBA
QCBJbnRSZWN0IFJlbmRlcmVkUG9zaXRpb246OmFic29sdXRlUmVjdChMCiAgICAgICAgIHJldHVy
biBJbnRSZWN0KCk7CiAKICAgICBJbnRSZWN0IGxvY2FsUmVjdCA9IHBpeGVsU25hcHBlZEludFJl
Y3QobV9yZW5kZXJlci0+bG9jYWxDYXJldFJlY3QobV9pbmxpbmVCb3gsIG1fb2Zmc2V0LCBleHRy
YVdpZHRoVG9FbmRPZkxpbmUpKTsKLSAgICByZXR1cm4gbG9jYWxSZWN0ID09IEludFJlY3QoKSA/
IEludFJlY3QoKSA6IG1fcmVuZGVyZXItPmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRSZWN0KGxv
Y2FsUmVjdCksIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKS5lbmNsb3NpbmdCb3VuZGluZ0JveCgp
OworICAgIHJldHVybiBsb2NhbFJlY3QgPT0gSW50UmVjdCgpID8gSW50UmVjdCgpIDogbV9yZW5k
ZXJlci0+bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3QobG9jYWxSZWN0KSkuZW5jbG9zaW5n
Qm91bmRpbmdCb3goKTsKIH0KIAogYm9vbCByZW5kZXJPYmplY3RDb250YWluc1Bvc2l0aW9uKFJl
bmRlck9iamVjdCogdGFyZ2V0LCBjb25zdCBQb3NpdGlvbiYgcG9zaXRpb24pCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVQb3NpdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlUG9zaXRpb24uY3BwCShyZXZpc2lvbiAxMzc0ODYp
CisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVQb3NpdGlvbi5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTYyNCw3ICs2MjQsNyBAQCBJbnRSZWN0IFZpc2libGVQb3NpdGlvbjo6YWJzb2x1
dGVDYXJldEJvCiAgICAgaWYgKGxvY2FsUmVjdC5pc0VtcHR5KCkgfHwgIXJlbmRlcmVyKQogICAg
ICAgICByZXR1cm4gSW50UmVjdCgpOwogCi0gICAgcmV0dXJuIHJlbmRlcmVyLT5sb2NhbFRvQWJz
b2x1dGVRdWFkKEZsb2F0UmVjdChsb2NhbFJlY3QpLCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jtcyku
ZW5jbG9zaW5nQm91bmRpbmdCb3goKTsKKyAgICByZXR1cm4gcmVuZGVyZXItPmxvY2FsVG9BYnNv
bHV0ZVF1YWQoRmxvYXRSZWN0KGxvY2FsUmVjdCkpLmVuY2xvc2luZ0JvdW5kaW5nQm94KCk7CiB9
CiAKIGludCBWaXNpYmxlUG9zaXRpb246OmxpbmVEaXJlY3Rpb25Qb2ludEZvckJsb2NrRGlyZWN0
aW9uTmF2aWdhdGlvbigpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxl
Y3RFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxl
Y3RFbGVtZW50LmNwcAkocmV2aXNpb24gMTM3NDg2KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MU2VsZWN0RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyODYsNyArMTI4Niw3IEBA
IHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6Omxpc3RCb3hEZWZhdWx0RXYKIAogICAgICAgICAvLyBD
b252ZXJ0IHRvIGNvb3JkcyByZWxhdGl2ZSB0byB0aGUgbGlzdCBib3ggaWYgbmVlZGVkLgogICAg
ICAgICBNb3VzZUV2ZW50KiBtb3VzZUV2ZW50ID0gc3RhdGljX2Nhc3Q8TW91c2VFdmVudCo+KGV2
ZW50KTsKLSAgICAgICAgSW50UG9pbnQgbG9jYWxPZmZzZXQgPSByb3VuZGVkSW50UG9pbnQocmVu
ZGVyZXIoKS0+YWJzb2x1dGVUb0xvY2FsKG1vdXNlRXZlbnQtPmFic29sdXRlTG9jYXRpb24oKSwg
VXNlVHJhbnNmb3JtcyB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKSk7CisgICAgICAgIEludFBv
aW50IGxvY2FsT2Zmc2V0ID0gcm91bmRlZEludFBvaW50KHJlbmRlcmVyKCktPmFic29sdXRlVG9M
b2NhbChtb3VzZUV2ZW50LT5hYnNvbHV0ZUxvY2F0aW9uKCksIFVzZVRyYW5zZm9ybXMpKTsKICAg
ICAgICAgaW50IGxpc3RJbmRleCA9IHRvUmVuZGVyTGlzdEJveChyZW5kZXJlcigpKS0+bGlzdElu
ZGV4QXRPZmZzZXQodG9TaXplKGxvY2FsT2Zmc2V0KSk7CiAgICAgICAgIGlmIChsaXN0SW5kZXgg
Pj0gMCkgewogICAgICAgICAgICAgaWYgKCFkaXNhYmxlZCgpKSB7CkBAIC0xMzA2LDcgKzEzMDYs
NyBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpsaXN0Qm94RGVmYXVsdEV2CiAgICAgICAgIGlm
IChtb3VzZUV2ZW50LT5idXR0b24oKSAhPSBMZWZ0QnV0dG9uIHx8ICFtb3VzZUV2ZW50LT5idXR0
b25Eb3duKCkpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgSW50UG9pbnQgbG9jYWxP
ZmZzZXQgPSByb3VuZGVkSW50UG9pbnQocmVuZGVyZXIoKS0+YWJzb2x1dGVUb0xvY2FsKG1vdXNl
RXZlbnQtPmFic29sdXRlTG9jYXRpb24oKSwgVXNlVHJhbnNmb3JtcyB8IFNuYXBPZmZzZXRGb3JU
cmFuc2Zvcm1zKSk7CisgICAgICAgIEludFBvaW50IGxvY2FsT2Zmc2V0ID0gcm91bmRlZEludFBv
aW50KHJlbmRlcmVyKCktPmFic29sdXRlVG9Mb2NhbChtb3VzZUV2ZW50LT5hYnNvbHV0ZUxvY2F0
aW9uKCksIFVzZVRyYW5zZm9ybXMpKTsKICAgICAgICAgaW50IGxpc3RJbmRleCA9IHRvUmVuZGVy
TGlzdEJveChyZW5kZXJlcigpKS0+bGlzdEluZGV4QXRPZmZzZXQodG9TaXplKGxvY2FsT2Zmc2V0
KSk7CiAgICAgICAgIGlmIChsaXN0SW5kZXggPj0gMCkgewogICAgICAgICAgICAgaWYgKCFkaXNh
YmxlZCgpKSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVs
ZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRl
clRodW1iRWxlbWVudC5jcHAJKHJldmlzaW9uIDEzNzQ4NikKKysrIFNvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1OSw3
ICsyNTksNyBAQCB2b2lkIFNsaWRlclRodW1iRWxlbWVudDo6c2V0UG9zaXRpb25Gcm9tCiAgICAg
ICAgIHJldHVybjsKIAogICAgIGlucHV0LT5zZXRUZXh0QXNPZkxhc3RGb3JtQ29udHJvbENoYW5n
ZUV2ZW50KGlucHV0LT52YWx1ZSgpKTsKLSAgICBMYXlvdXRQb2ludCBvZmZzZXQgPSByb3VuZGVk
TGF5b3V0UG9pbnQoaW5wdXQtPnJlbmRlcmVyKCktPmFic29sdXRlVG9Mb2NhbChwb2ludCwgVXNl
VHJhbnNmb3JtcyB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKSk7CisgICAgTGF5b3V0UG9pbnQg
b2Zmc2V0ID0gcm91bmRlZExheW91dFBvaW50KGlucHV0LT5yZW5kZXJlcigpLT5hYnNvbHV0ZVRv
TG9jYWwocG9pbnQsIFVzZVRyYW5zZm9ybXMpKTsKICAgICBib29sIGlzVmVydGljYWwgPSBoYXNW
ZXJ0aWNhbEFwcGVhcmFuY2UoaW5wdXQpOwogICAgIGJvb2wgaXNMZWZ0VG9SaWdodERpcmVjdGlv
biA9IHJlbmRlckJveCgpLT5zdHlsZSgpLT5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCk7CiAgICAg
TGF5b3V0VW5pdCB0cmFja1NpemU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9T
cGluQnV0dG9uRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvU3BpbkJ1dHRvbkVsZW1lbnQuY3BwCShyZXZpc2lvbiAxMzc0ODYpCisrKyBTb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9TcGluQnV0dG9uRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTkxLDcgKzkxLDcgQEAgdm9pZCBTcGluQnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFu
ZAogICAgIH0KIAogICAgIE1vdXNlRXZlbnQqIG1vdXNlRXZlbnQgPSBzdGF0aWNfY2FzdDxNb3Vz
ZUV2ZW50Kj4oZXZlbnQpOwotICAgIEludFBvaW50IGxvY2FsID0gcm91bmRlZEludFBvaW50KGJv
eC0+YWJzb2x1dGVUb0xvY2FsKG1vdXNlRXZlbnQtPmFic29sdXRlTG9jYXRpb24oKSwgVXNlVHJh
bnNmb3JtcyB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKSk7CisgICAgSW50UG9pbnQgbG9jYWwg
PSByb3VuZGVkSW50UG9pbnQoYm94LT5hYnNvbHV0ZVRvTG9jYWwobW91c2VFdmVudC0+YWJzb2x1
dGVMb2NhdGlvbigpLCBVc2VUcmFuc2Zvcm1zKSk7CiAgICAgaWYgKG1vdXNlRXZlbnQtPnR5cGUo
KSA9PSBldmVudE5hbWVzKCkubW91c2Vkb3duRXZlbnQgJiYgbW91c2VFdmVudC0+YnV0dG9uKCkg
PT0gTGVmdEJ1dHRvbikgewogICAgICAgICBpZiAoYm94LT5waXhlbFNuYXBwZWRCb3JkZXJCb3hS
ZWN0KCkuY29udGFpbnMobG9jYWwpKSB7CiAgICAgICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGZ1
bmN0aW9ucyBvZiBIVE1MSW5wdXRFbGVtZW50IG1heSBydW4gSmF2YVNjcmlwdApJbmRleDogU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAkocmV2aXNpb24gMTM3NDg2KQorKysgU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNTA3LDcgKzM1MDcsNyBA
QCB2b2lkIEZyYW1lVmlldzo6YWRqdXN0UGFnZUhlaWdodERlcHJlY2F0CiAKIEludFJlY3QgRnJh
bWVWaWV3Ojpjb252ZXJ0RnJvbVJlbmRlcmVyKGNvbnN0IFJlbmRlck9iamVjdCogcmVuZGVyZXIs
IGNvbnN0IEludFJlY3QmIHJlbmRlcmVyUmVjdCkgY29uc3QKIHsKLSAgICBJbnRSZWN0IHJlY3Qg
PSByZW5kZXJlci0+bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3QocmVuZGVyZXJSZWN0KSwg
U25hcE9mZnNldEZvclRyYW5zZm9ybXMpLmVuY2xvc2luZ0JvdW5kaW5nQm94KCk7CisgICAgSW50
UmVjdCByZWN0ID0gcmVuZGVyZXItPmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRSZWN0KHJlbmRl
cmVyUmVjdCkpLmVuY2xvc2luZ0JvdW5kaW5nQm94KCk7CiAKICAgICAvLyBDb252ZXJ0IGZyb20g
cGFnZSAoImFic29sdXRlIikgdG8gRnJhbWVWaWV3IGNvb3JkaW5hdGVzLgogICAgIGlmICghZGVs
ZWdhdGVzU2Nyb2xsaW5nKCkpCkBAIC0zNTI2LDEzICszNTI2LDEzIEBAIEludFJlY3QgRnJhbWVW
aWV3Ojpjb252ZXJ0VG9SZW5kZXJlcihjb24KIAogICAgIC8vIEZJWE1FOiB3ZSBkb24ndCBoYXZl
IGEgd2F5IHRvIG1hcCBhbiBhYnNvbHV0ZSByZWN0IGRvd24gdG8gYSBsb2NhbCBxdWFkLCBzbyBq
dXN0CiAgICAgLy8gbW92ZSB0aGUgcmVjdCBmb3Igbm93LgotICAgIHJlY3Quc2V0TG9jYXRpb24o
cm91bmRlZEludFBvaW50KHJlbmRlcmVyLT5hYnNvbHV0ZVRvTG9jYWwocmVjdC5sb2NhdGlvbigp
LCBVc2VUcmFuc2Zvcm1zIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpKSk7CisgICAgcmVjdC5z
ZXRMb2NhdGlvbihyb3VuZGVkSW50UG9pbnQocmVuZGVyZXItPmFic29sdXRlVG9Mb2NhbChyZWN0
LmxvY2F0aW9uKCksIFVzZVRyYW5zZm9ybXMpKSk7CiAgICAgcmV0dXJuIHJlY3Q7CiB9CiAKIElu
dFBvaW50IEZyYW1lVmlldzo6Y29udmVydEZyb21SZW5kZXJlcihjb25zdCBSZW5kZXJPYmplY3Qq
IHJlbmRlcmVyLCBjb25zdCBJbnRQb2ludCYgcmVuZGVyZXJQb2ludCkgY29uc3QKIHsKLSAgICBJ
bnRQb2ludCBwb2ludCA9IHJvdW5kZWRJbnRQb2ludChyZW5kZXJlci0+bG9jYWxUb0Fic29sdXRl
KHJlbmRlcmVyUG9pbnQsIFVzZVRyYW5zZm9ybXMgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jtcykp
OworICAgIEludFBvaW50IHBvaW50ID0gcm91bmRlZEludFBvaW50KHJlbmRlcmVyLT5sb2NhbFRv
QWJzb2x1dGUocmVuZGVyZXJQb2ludCwgVXNlVHJhbnNmb3JtcykpOwogCiAgICAgLy8gQ29udmVy
dCBmcm9tIHBhZ2UgKCJhYnNvbHV0ZSIpIHRvIEZyYW1lVmlldyBjb29yZGluYXRlcy4KICAgICBp
ZiAoIWRlbGVnYXRlc1Njcm9sbGluZygpKQpAQCAtMzU0OCw3ICszNTQ4LDcgQEAgSW50UG9pbnQg
RnJhbWVWaWV3Ojpjb252ZXJ0VG9SZW5kZXJlcihjbwogICAgIGlmICghZGVsZWdhdGVzU2Nyb2xs
aW5nKCkpCiAgICAgICAgIHBvaW50ICs9IEludFNpemUoc2Nyb2xsWCgpLCBzY3JvbGxZKCkpOwog
Ci0gICAgcmV0dXJuIHJvdW5kZWRJbnRQb2ludChyZW5kZXJlci0+YWJzb2x1dGVUb0xvY2FsKHBv
aW50LCBVc2VUcmFuc2Zvcm1zIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpKTsKKyAgICByZXR1
cm4gcm91bmRlZEludFBvaW50KHJlbmRlcmVyLT5hYnNvbHV0ZVRvTG9jYWwocG9pbnQsIFVzZVRy
YW5zZm9ybXMpKTsKIH0KIAogSW50UmVjdCBGcmFtZVZpZXc6OmNvbnZlcnRUb0NvbnRhaW5pbmdW
aWV3KGNvbnN0IEludFJlY3QmIGxvY2FsUmVjdCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtU3RhdGUuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNm
b3JtU3RhdGUuY3BwCShyZXZpc2lvbiAxMzc0ODYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybVN0YXRlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzIsNiArMzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFRyYW5zZm9ybVN0YXRlJiBU
cmFuc2Zvcm1TdGF0ZTo6b3BlcmF0b3I9KGNvbnN0IFRyYW5zZm9ybVN0YXRlJiBvdGhlcikKIHsK
KyAgICBtX2FjY3VtdWxhdGVkT2Zmc2V0ID0gb3RoZXIubV9hY2N1bXVsYXRlZE9mZnNldDsKICAg
ICBtX21hcFBvaW50ID0gb3RoZXIubV9tYXBQb2ludDsKICAgICBtX21hcFF1YWQgPSBvdGhlci5t
X21hcFF1YWQ7CiAgICAgaWYgKG1fbWFwUG9pbnQpCkBAIC00OSwzMiArNTAsNTUgQEAgVHJhbnNm
b3JtU3RhdGUmIFRyYW5zZm9ybVN0YXRlOjpvcGVyYXRvcgogICAgIHJldHVybiAqdGhpczsKIH0K
IAotdm9pZCBUcmFuc2Zvcm1TdGF0ZTo6bW92ZShMYXlvdXRVbml0IHgsIExheW91dFVuaXQgeSwg
VHJhbnNmb3JtQWNjdW11bGF0aW9uIGFjY3VtdWxhdGUpCit2b2lkIFRyYW5zZm9ybVN0YXRlOjp0
cmFuc2xhdGVUcmFuc2Zvcm0oY29uc3QgSW50U2l6ZSYgb2Zmc2V0KQogewotICAgIGlmIChtX2Fj
Y3VtdWxhdGluZ1RyYW5zZm9ybSAmJiBtX2FjY3VtdWxhdGVkVHJhbnNmb3JtKSB7Ci0gICAgICAg
IC8vIElmIHdlJ3JlIGFjY3VtdWxhdGluZyBpbnRvIGFuIGV4aXN0aW5nIHRyYW5zZm9ybSwgYXBw
bHkgdGhlIHRyYW5zbGF0aW9uLgotICAgICAgICBpZiAobV9kaXJlY3Rpb24gPT0gQXBwbHlUcmFu
c2Zvcm1EaXJlY3Rpb24pCi0gICAgICAgICAgICBtX2FjY3VtdWxhdGVkVHJhbnNmb3JtLT50cmFu
c2xhdGVSaWdodCh4LCB5KTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgbV9hY2N1bXVsYXRl
ZFRyYW5zZm9ybS0+dHJhbnNsYXRlKHgsIHkpOwotICAgICAgICAKLSAgICAgICAgLy8gVGhlbiBm
bGF0dGVuIGlmIG5lY2Vzc2FyeS4KLSAgICAgICAgaWYgKGFjY3VtdWxhdGUgPT0gRmxhdHRlblRy
YW5zZm9ybSkKLSAgICAgICAgICAgIGZsYXR0ZW4oKTsKLSAgICB9IGVsc2UgewotICAgICAgICAv
LyBKdXN0IG1vdmUgdGhlIHBvaW50IGFuZCwgb3B0aW9uYWxseSwgdGhlIHF1YWQuCi0gICAgICAg
IGlmIChtX2RpcmVjdGlvbiA9PSBVbmFwcGx5SW52ZXJzZVRyYW5zZm9ybURpcmVjdGlvbikgewot
ICAgICAgICAgICAgeCA9IC14OwotICAgICAgICAgICAgeSA9IC15OwotICAgICAgICB9Ci0gICAg
ICAgIGlmIChtX21hcFBvaW50KQotICAgICAgICAgICAgbV9sYXN0UGxhbmFyUG9pbnQubW92ZSh4
LCB5KTsKLSAgICAgICAgaWYgKG1fbWFwUXVhZCkKLSAgICAgICAgICAgIG1fbGFzdFBsYW5hclF1
YWQubW92ZSh4LCB5KTsKKyAgICBpZiAobV9kaXJlY3Rpb24gPT0gQXBwbHlUcmFuc2Zvcm1EaXJl
Y3Rpb24pCisgICAgICAgIG1fYWNjdW11bGF0ZWRUcmFuc2Zvcm0tPnRyYW5zbGF0ZVJpZ2h0KG9m
ZnNldC53aWR0aCgpLCBvZmZzZXQuaGVpZ2h0KCkpOworICAgIGVsc2UKKyAgICAgICAgbV9hY2N1
bXVsYXRlZFRyYW5zZm9ybS0+dHJhbnNsYXRlKG9mZnNldC53aWR0aCgpLCBvZmZzZXQuaGVpZ2h0
KCkpOworfQorCit2b2lkIFRyYW5zZm9ybVN0YXRlOjp0cmFuc2xhdGVNYXBwZWRDb29yZGluYXRl
cyhjb25zdCBJbnRTaXplJiBvZmZzZXQpCit7CisgICAgSW50U2l6ZSBhZGp1c3RlZE9mZnNldCA9
IChtX2RpcmVjdGlvbiA9PSBBcHBseVRyYW5zZm9ybURpcmVjdGlvbikgPyBvZmZzZXQgOiAtb2Zm
c2V0OworICAgIGlmIChtX21hcFBvaW50KQorICAgICAgICBtX2xhc3RQbGFuYXJQb2ludC5tb3Zl
KGFkanVzdGVkT2Zmc2V0KTsKKyAgICBpZiAobV9tYXBRdWFkKQorICAgICAgICBtX2xhc3RQbGFu
YXJRdWFkLm1vdmUoYWRqdXN0ZWRPZmZzZXQpOworfQorCit2b2lkIFRyYW5zZm9ybVN0YXRlOjpt
b3ZlKGNvbnN0IExheW91dFNpemUmIG9mZnNldCwgVHJhbnNmb3JtQWNjdW11bGF0aW9uIGFjY3Vt
dWxhdGUpCit7CisgICAgaWYgKGFjY3VtdWxhdGUgPT0gRmxhdHRlblRyYW5zZm9ybSB8fCAhbV9h
Y2N1bXVsYXRlZFRyYW5zZm9ybSkKKyAgICAgICAgbV9hY2N1bXVsYXRlZE9mZnNldCArPSBvZmZz
ZXQ7CisgICAgZWxzZSB7CisgICAgICAgIGFwcGx5QWNjdW11bGF0ZWRPZmZzZXQoKTsKKyAgICAg
ICAgaWYgKG1fYWNjdW11bGF0aW5nVHJhbnNmb3JtICYmIG1fYWNjdW11bGF0ZWRUcmFuc2Zvcm0p
IHsKKyAgICAgICAgICAgIC8vIElmIHdlJ3JlIGFjY3VtdWxhdGluZyBpbnRvIGFuIGV4aXN0aW5n
IHRyYW5zZm9ybSwgYXBwbHkgdGhlIHRyYW5zbGF0aW9uLgorICAgICAgICAgICAgdHJhbnNsYXRl
VHJhbnNmb3JtKHJvdW5kZWRJbnRTaXplKG9mZnNldCkpOworCisgICAgICAgICAgICAvLyBUaGVu
IGZsYXR0ZW4gaWYgbmVjZXNzYXJ5LgorICAgICAgICAgICAgaWYgKGFjY3VtdWxhdGUgPT0gRmxh
dHRlblRyYW5zZm9ybSkKKyAgICAgICAgICAgICAgICBmbGF0dGVuKCk7CisgICAgICAgIH0gZWxz
ZQorICAgICAgICAgICAgLy8gSnVzdCBtb3ZlIHRoZSBwb2ludCBhbmQvb3IgcXVhZC4KKyAgICAg
ICAgICAgIHRyYW5zbGF0ZU1hcHBlZENvb3JkaW5hdGVzKHJvdW5kZWRJbnRTaXplKG9mZnNldCkp
OwogICAgIH0KICAgICBtX2FjY3VtdWxhdGluZ1RyYW5zZm9ybSA9IGFjY3VtdWxhdGUgPT0gQWNj
dW11bGF0ZVRyYW5zZm9ybTsKIH0KIAordm9pZCBUcmFuc2Zvcm1TdGF0ZTo6YXBwbHlBY2N1bXVs
YXRlZE9mZnNldCgpCit7CisgICAgSW50U2l6ZSBvZmZzZXQgPSByb3VuZGVkSW50U2l6ZShtX2Fj
Y3VtdWxhdGVkT2Zmc2V0KTsKKyAgICBtX2FjY3VtdWxhdGVkT2Zmc2V0ID0gTGF5b3V0U2l6ZSgp
OworICAgIGlmICghb2Zmc2V0LmlzWmVybygpKSB7CisgICAgICAgIGlmIChtX2FjY3VtdWxhdGVk
VHJhbnNmb3JtKQorICAgICAgICAgICAgdHJhbnNsYXRlVHJhbnNmb3JtKG9mZnNldCk7CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIHRyYW5zbGF0ZU1hcHBlZENvb3JkaW5hdGVzKG9mZnNldCk7
CisgICAgfQorfQorCiAvLyBGSVhNRTogV2UgdHJhbnNmb3JtIEFmZmluZVRyYW5zZm9ybSB0byBU
cmFuc2Zvcm1hdGlvbk1hdHJpeC4gVGhpcyBpcyByYXRoZXIgaW5lZmZpY2llbnQuCiB2b2lkIFRy
YW5zZm9ybVN0YXRlOjphcHBseVRyYW5zZm9ybShjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHRyYW5z
Zm9ybUZyb21Db250YWluZXIsIFRyYW5zZm9ybUFjY3VtdWxhdGlvbiBhY2N1bXVsYXRlLCBib29s
KiB3YXNDbGFtcGVkKQogewpAQCAtODYsNiArMTEwLDggQEAgdm9pZCBUcmFuc2Zvcm1TdGF0ZTo6
YXBwbHlUcmFuc2Zvcm0oY29ucwogICAgIGlmICh3YXNDbGFtcGVkKQogICAgICAgICAqd2FzQ2xh
bXBlZCA9IGZhbHNlOwogCisgICAgYXBwbHlBY2N1bXVsYXRlZE9mZnNldCgpOworCiAgICAgLy8g
SWYgd2UgaGF2ZSBhbiBhY2N1bXVsYXRlZCB0cmFuc2Zvcm0gZnJvbSBsYXN0IHRpbWUsIG11bHRp
cGx5IGluIHRoaXMgdHJhbnNmb3JtCiAgICAgaWYgKG1fYWNjdW11bGF0ZWRUcmFuc2Zvcm0pIHsK
ICAgICAgICAgaWYgKG1fZGlyZWN0aW9uID09IEFwcGx5VHJhbnNmb3JtRGlyZWN0aW9uKQpAQCAt
MTA5LDYgKzEzNSw4IEBAIHZvaWQgVHJhbnNmb3JtU3RhdGU6OmZsYXR0ZW4oYm9vbCogd2FzQ2wK
ICAgICBpZiAod2FzQ2xhbXBlZCkKICAgICAgICAgKndhc0NsYW1wZWQgPSBmYWxzZTsKIAorICAg
IGFwcGx5QWNjdW11bGF0ZWRPZmZzZXQoKTsKKwogICAgIGlmICghbV9hY2N1bXVsYXRlZFRyYW5z
Zm9ybSkgewogICAgICAgICBtX2FjY3VtdWxhdGluZ1RyYW5zZm9ybSA9IGZhbHNlOwogICAgICAg
ICByZXR1cm47CkBAIC0xMjIsMTMgKzE1MCwxNSBAQCBGbG9hdFBvaW50IFRyYW5zZm9ybVN0YXRl
OjptYXBwZWRQb2ludChiCiAgICAgaWYgKHdhc0NsYW1wZWQpCiAgICAgICAgICp3YXNDbGFtcGVk
ID0gZmFsc2U7CiAKKyAgICBGbG9hdFBvaW50IHBvaW50ID0gbV9sYXN0UGxhbmFyUG9pbnQ7Cisg
ICAgcG9pbnQubW92ZSgobV9kaXJlY3Rpb24gPT0gQXBwbHlUcmFuc2Zvcm1EaXJlY3Rpb24pID8g
bV9hY2N1bXVsYXRlZE9mZnNldCA6IC1tX2FjY3VtdWxhdGVkT2Zmc2V0KTsKICAgICBpZiAoIW1f
YWNjdW11bGF0ZWRUcmFuc2Zvcm0pCi0gICAgICAgIHJldHVybiBtX2xhc3RQbGFuYXJQb2ludDsK
KyAgICAgICAgcmV0dXJuIHBvaW50OwogCiAgICAgaWYgKG1fZGlyZWN0aW9uID09IEFwcGx5VHJh
bnNmb3JtRGlyZWN0aW9uKQotICAgICAgICByZXR1cm4gbV9hY2N1bXVsYXRlZFRyYW5zZm9ybS0+
bWFwUG9pbnQobV9sYXN0UGxhbmFyUG9pbnQpOworICAgICAgICByZXR1cm4gbV9hY2N1bXVsYXRl
ZFRyYW5zZm9ybS0+bWFwUG9pbnQocG9pbnQpOwogCi0gICAgcmV0dXJuIG1fYWNjdW11bGF0ZWRU
cmFuc2Zvcm0tPmludmVyc2UoKS5wcm9qZWN0UG9pbnQobV9sYXN0UGxhbmFyUG9pbnQsIHdhc0Ns
YW1wZWQpOworICAgIHJldHVybiBtX2FjY3VtdWxhdGVkVHJhbnNmb3JtLT5pbnZlcnNlKCkucHJv
amVjdFBvaW50KHBvaW50LCB3YXNDbGFtcGVkKTsKIH0KIAogRmxvYXRRdWFkIFRyYW5zZm9ybVN0
YXRlOjptYXBwZWRRdWFkKGJvb2wqIHdhc0NsYW1wZWQpIGNvbnN0CkBAIC0xMzYsMTMgKzE2Niwx
NSBAQCBGbG9hdFF1YWQgVHJhbnNmb3JtU3RhdGU6Om1hcHBlZFF1YWQoYm9vCiAgICAgaWYgKHdh
c0NsYW1wZWQpCiAgICAgICAgICp3YXNDbGFtcGVkID0gZmFsc2U7CiAKKyAgICBGbG9hdFF1YWQg
cXVhZCA9IG1fbGFzdFBsYW5hclF1YWQ7CisgICAgcXVhZC5tb3ZlKChtX2RpcmVjdGlvbiA9PSBB
cHBseVRyYW5zZm9ybURpcmVjdGlvbikgPyBtX2FjY3VtdWxhdGVkT2Zmc2V0IDogLW1fYWNjdW11
bGF0ZWRPZmZzZXQpOwogICAgIGlmICghbV9hY2N1bXVsYXRlZFRyYW5zZm9ybSkKLSAgICAgICAg
cmV0dXJuIG1fbGFzdFBsYW5hclF1YWQ7CisgICAgICAgIHJldHVybiBxdWFkOwogCiAgICAgaWYg
KG1fZGlyZWN0aW9uID09IEFwcGx5VHJhbnNmb3JtRGlyZWN0aW9uKQotICAgICAgICByZXR1cm4g
bV9hY2N1bXVsYXRlZFRyYW5zZm9ybS0+bWFwUXVhZChtX2xhc3RQbGFuYXJRdWFkKTsKKyAgICAg
ICAgcmV0dXJuIG1fYWNjdW11bGF0ZWRUcmFuc2Zvcm0tPm1hcFF1YWQocXVhZCk7CiAKLSAgICBy
ZXR1cm4gbV9hY2N1bXVsYXRlZFRyYW5zZm9ybS0+aW52ZXJzZSgpLnByb2plY3RRdWFkKG1fbGFz
dFBsYW5hclF1YWQsIHdhc0NsYW1wZWQpOworICAgIHJldHVybiBtX2FjY3VtdWxhdGVkVHJhbnNm
b3JtLT5pbnZlcnNlKCkucHJvamVjdFF1YWQocXVhZCwgd2FzQ2xhbXBlZCk7CiB9CiAKIHZvaWQg
VHJhbnNmb3JtU3RhdGU6OmZsYXR0ZW5XaXRoVHJhbnNmb3JtKGNvbnN0IFRyYW5zZm9ybWF0aW9u
TWF0cml4JiB0LCBib29sKiB3YXNDbGFtcGVkKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1TdGF0ZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtU3RhdGUu
aAkocmV2aXNpb24gMTM3NDg2KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dHJhbnNmb3Jtcy9UcmFuc2Zvcm1TdGF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC03NCwxMyArNzQs
MTMgQEAgcHVibGljOgogICAgIFRyYW5zZm9ybVN0YXRlJiBvcGVyYXRvcj0oY29uc3QgVHJhbnNm
b3JtU3RhdGUmKTsKICAgICAKICAgICB2b2lkIHNldFF1YWQoY29uc3QgRmxvYXRRdWFkJiBxdWFk
KSB7IG1fbGFzdFBsYW5hclF1YWQgPSBxdWFkOyB9Ci0gICAgCi0gICAgdm9pZCBtb3ZlKGNvbnN0
IExheW91dFNpemUmIHMsIFRyYW5zZm9ybUFjY3VtdWxhdGlvbiBhY2N1bXVsYXRlID0gRmxhdHRl
blRyYW5zZm9ybSkKKworICAgIHZvaWQgbW92ZShMYXlvdXRVbml0IHgsIExheW91dFVuaXQgeSwg
VHJhbnNmb3JtQWNjdW11bGF0aW9uIGFjY3VtdWxhdGUgPSBGbGF0dGVuVHJhbnNmb3JtKQogICAg
IHsKLSAgICAgICAgbW92ZShzLndpZHRoKCksIHMuaGVpZ2h0KCksIGFjY3VtdWxhdGUpOworICAg
ICAgICBtb3ZlKExheW91dFNpemUoeCwgeSksIGFjY3VtdWxhdGUpOwogICAgIH0KLSAgICAKLSAg
ICB2b2lkIG1vdmUoTGF5b3V0VW5pdCB4LCBMYXlvdXRVbml0IHksIFRyYW5zZm9ybUFjY3VtdWxh
dGlvbiA9IEZsYXR0ZW5UcmFuc2Zvcm0pOworCisgICAgdm9pZCBtb3ZlKGNvbnN0IExheW91dFNp
emUmLCBUcmFuc2Zvcm1BY2N1bXVsYXRpb24gPSBGbGF0dGVuVHJhbnNmb3JtKTsKICAgICB2b2lk
IGFwcGx5VHJhbnNmb3JtKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgdHJhbnNmb3JtRnJvbUNvbnRh
aW5lciwgVHJhbnNmb3JtQWNjdW11bGF0aW9uID0gRmxhdHRlblRyYW5zZm9ybSwgYm9vbCogd2Fz
Q2xhbXBlZCA9IDApOwogICAgIHZvaWQgYXBwbHlUcmFuc2Zvcm0oY29uc3QgVHJhbnNmb3JtYXRp
b25NYXRyaXgmIHRyYW5zZm9ybUZyb21Db250YWluZXIsIFRyYW5zZm9ybUFjY3VtdWxhdGlvbiA9
IEZsYXR0ZW5UcmFuc2Zvcm0sIGJvb2wqIHdhc0NsYW1wZWQgPSAwKTsKICAgICB2b2lkIGZsYXR0
ZW4oYm9vbCogd2FzQ2xhbXBlZCA9IDApOwpAQCAtOTQsMTMgKzk0LDE3IEBAIHB1YmxpYzoKICAg
ICBGbG9hdFF1YWQgbWFwcGVkUXVhZChib29sKiB3YXNDbGFtcGVkID0gMCkgY29uc3Q7CiAKIHBy
aXZhdGU6CisgICAgdm9pZCB0cmFuc2xhdGVUcmFuc2Zvcm0oY29uc3QgSW50U2l6ZSYpOworICAg
IHZvaWQgdHJhbnNsYXRlTWFwcGVkQ29vcmRpbmF0ZXMoY29uc3QgSW50U2l6ZSYpOwogICAgIHZv
aWQgZmxhdHRlbldpdGhUcmFuc2Zvcm0oY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBib29s
KiB3YXNDbGFtcGVkKTsKKyAgICB2b2lkIGFwcGx5QWNjdW11bGF0ZWRPZmZzZXQoKTsKICAgICAK
ICAgICBGbG9hdFBvaW50IG1fbGFzdFBsYW5hclBvaW50OwogICAgIEZsb2F0UXVhZCBtX2xhc3RQ
bGFuYXJRdWFkOwogCiAgICAgLy8gV2Ugb25seSBhbGxvY2F0ZSB0aGUgdHJhbnNmb3JtIGlmIHdl
IG5lZWQgdG8KICAgICBPd25QdHI8VHJhbnNmb3JtYXRpb25NYXRyaXg+IG1fYWNjdW11bGF0ZWRU
cmFuc2Zvcm07CisgICAgTGF5b3V0U2l6ZSBtX2FjY3VtdWxhdGVkT2Zmc2V0OwogICAgIGJvb2wg
bV9hY2N1bXVsYXRpbmdUcmFuc2Zvcm07CiAgICAgYm9vbCBtX21hcFBvaW50LCBtX21hcFF1YWQ7
CiAgICAgVHJhbnNmb3JtRGlyZWN0aW9uIG1fZGlyZWN0aW9uOwpJbmRleDogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcAkocmV2aXNpb24gMTM3NDg2KQorKysgU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xMTI0LDcgKzExMjQsNyBAQCB2b2lkIElubGluZVRleHRCb3g6OnBhaW50RG9jdW1lbnRNYXJr
ZXIoCiAgICAgICAgIC8vIGRpc3BsYXkgYSB0b29sVGlwLiBXZSBkb24ndCBkbyB0aGlzIGZvciBt
aXNzcGVsbGluZyBtYXJrZXJzLgogICAgICAgICBpZiAoZ3JhbW1hciB8fCBpc0RpY3RhdGlvbk1h
cmtlcikgewogICAgICAgICAgICAgbWFya2VyUmVjdC5tb3ZlKC1ib3hPcmlnaW4ueCgpLCAtYm94
T3JpZ2luLnkoKSk7Ci0gICAgICAgICAgICBtYXJrZXJSZWN0ID0gcmVuZGVyZXIoKS0+bG9jYWxU
b0Fic29sdXRlUXVhZChGbG9hdFJlY3QobWFya2VyUmVjdCksIFNuYXBPZmZzZXRGb3JUcmFuc2Zv
cm1zKS5lbmNsb3NpbmdCb3VuZGluZ0JveCgpOworICAgICAgICAgICAgbWFya2VyUmVjdCA9IHJl
bmRlcmVyKCktPmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRSZWN0KG1hcmtlclJlY3QpKS5lbmNs
b3NpbmdCb3VuZGluZ0JveCgpOwogICAgICAgICAgICAgdG9SZW5kZXJlZERvY3VtZW50TWFya2Vy
KG1hcmtlciktPnNldFJlbmRlcmVkUmVjdChtYXJrZXJSZWN0KTsKICAgICAgICAgfQogICAgIH0K
QEAgLTExNjIsNyArMTE2Miw3IEBAIHZvaWQgSW5saW5lVGV4dEJveDo6cGFpbnRUZXh0TWF0Y2hN
YXJrZXIKIAogICAgIC8vIEFsd2F5cyBjb21wdXRlIGFuZCBzdG9yZSB0aGUgcmVjdCBhc3NvY2lh
dGVkIHdpdGggdGhpcyBtYXJrZXIuIFRoZSBjb21wdXRlZCByZWN0IGlzIGluIGFic29sdXRlIGNv
b3JkaW5hdGVzLgogICAgIEludFJlY3QgbWFya2VyUmVjdCA9IGVuY2xvc2luZ0ludFJlY3QoZm9u
dC5zZWxlY3Rpb25SZWN0Rm9yVGV4dChydW4sIEludFBvaW50KHgoKSwgc2VsZWN0aW9uVG9wKCkp
LCBzZWxIZWlnaHQsIHNQb3MsIGVQb3MpKTsKLSAgICBtYXJrZXJSZWN0ID0gcmVuZGVyZXIoKS0+
bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3QobWFya2VyUmVjdCksIFNuYXBPZmZzZXRGb3JU
cmFuc2Zvcm1zKS5lbmNsb3NpbmdCb3VuZGluZ0JveCgpOworICAgIG1hcmtlclJlY3QgPSByZW5k
ZXJlcigpLT5sb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UmVjdChtYXJrZXJSZWN0KSkuZW5jbG9z
aW5nQm91bmRpbmdCb3goKTsKICAgICB0b1JlbmRlcmVkRG9jdW1lbnRNYXJrZXIobWFya2VyKS0+
c2V0UmVuZGVyZWRSZWN0KG1hcmtlclJlY3QpOwogICAgIAogICAgIC8vIE9wdGlvbmFsbHkgaGln
aGxpZ2h0IHRoZSB0ZXh0CkBAIC0xMTkwLDcgKzExOTAsNyBAQCB2b2lkIElubGluZVRleHRCb3g6
OmNvbXB1dGVSZWN0Rm9yUmVwbGFjCiAgICAgCiAgICAgLy8gQ29tcHV0ZSBhbmQgc3RvcmUgdGhl
IHJlY3QgYXNzb2NpYXRlZCB3aXRoIHRoaXMgbWFya2VyLgogICAgIEludFJlY3QgbWFya2VyUmVj
dCA9IGVuY2xvc2luZ0ludFJlY3QoZm9udC5zZWxlY3Rpb25SZWN0Rm9yVGV4dChydW4sIHN0YXJ0
UG9pbnQsIGgsIHNQb3MsIGVQb3MpKTsKLSAgICBtYXJrZXJSZWN0ID0gcmVuZGVyZXIoKS0+bG9j
YWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3QobWFya2VyUmVjdCksIFNuYXBPZmZzZXRGb3JUcmFu
c2Zvcm1zKS5lbmNsb3NpbmdCb3VuZGluZ0JveCgpOworICAgIG1hcmtlclJlY3QgPSByZW5kZXJl
cigpLT5sb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UmVjdChtYXJrZXJSZWN0KSkuZW5jbG9zaW5n
Qm91bmRpbmdCb3goKTsKICAgICB0b1JlbmRlcmVkRG9jdW1lbnRNYXJrZXIobWFya2VyKS0+c2V0
UmVuZGVyZWRSZWN0KG1hcmtlclJlY3QpOwogfQogICAgIApJbmRleDogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0xheW91dFN0YXRlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvTGF5b3V0U3RhdGUuY3BwCShyZXZpc2lvbiAxMzc0ODYpCisrKyBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvTGF5b3V0U3RhdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTYsNyAr
MTU2LDcgQEAgTGF5b3V0U3RhdGU6OkxheW91dFN0YXRlKFJlbmRlck9iamVjdCogcgogI2VuZGlm
CiB7CiAgICAgUmVuZGVyT2JqZWN0KiBjb250YWluZXIgPSByb290LT5jb250YWluZXIoKTsKLSAg
ICBGbG9hdFBvaW50IGFic0NvbnRlbnRQb2ludCA9IGNvbnRhaW5lci0+bG9jYWxUb0Fic29sdXRl
KEZsb2F0UG9pbnQoKSwgVXNlVHJhbnNmb3JtcyB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKTsK
KyAgICBGbG9hdFBvaW50IGFic0NvbnRlbnRQb2ludCA9IGNvbnRhaW5lci0+bG9jYWxUb0Fic29s
dXRlKEZsb2F0UG9pbnQoKSwgVXNlVHJhbnNmb3Jtcyk7CiAgICAgbV9wYWludE9mZnNldCA9IExh
eW91dFNpemUoYWJzQ29udGVudFBvaW50LngoKSwgYWJzQ29udGVudFBvaW50LnkoKSk7CiAKICAg
ICBpZiAoY29udGFpbmVyLT5oYXNPdmVyZmxvd0NsaXAoKSkgewpJbmRleDogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveC5jcHAJKHJldmlzaW9uIDEzNzQ4NikKKysrIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDI2LDggKzE0
MjYsNiBAQCB2b2lkIFJlbmRlckJveDo6bWFwTG9jYWxUb0NvbnRhaW5lcihjb25zCiAgICAgICAg
ICp3YXNGaXhlZCA9IG1vZGUgJiBJc0ZpeGVkOwogICAgIAogICAgIExheW91dFNpemUgY29udGFp
bmVyT2Zmc2V0ID0gb2Zmc2V0RnJvbUNvbnRhaW5lcihvLCByb3VuZGVkTGF5b3V0UG9pbnQodHJh
bnNmb3JtU3RhdGUubWFwcGVkUG9pbnQoKSkpOwotICAgIGlmIChtb2RlICYgU25hcE9mZnNldEZv
clRyYW5zZm9ybXMpCi0gICAgICAgIGNvbnRhaW5lck9mZnNldCA9IHJvdW5kZWRJbnRTaXplKGNv
bnRhaW5lck9mZnNldCk7CiAgICAgCiAgICAgYm9vbCBwcmVzZXJ2ZTNEID0gbW9kZSAmIFVzZVRy
YW5zZm9ybXMgJiYgKG8tPnN0eWxlKCktPnByZXNlcnZlczNEKCkgfHwgc3R5bGUoKS0+cHJlc2Vy
dmVzM0QoKSk7CiAgICAgaWYgKG1vZGUgJiBVc2VUcmFuc2Zvcm1zICYmIHNob3VsZFVzZVRyYW5z
Zm9ybUZyb21Db250YWluZXIobykpIHsKQEAgLTE0NzgsOCArMTQ3Niw2IEBAIGNvbnN0IFJlbmRl
ck9iamVjdCogUmVuZGVyQm94OjpwdXNoTWFwcGkKIAogICAgIGJvb2wgb2Zmc2V0RGVwZW5kc09u
UG9pbnQgPSBmYWxzZTsKICAgICBMYXlvdXRTaXplIGNvbnRhaW5lck9mZnNldCA9IG9mZnNldEZy
b21Db250YWluZXIoY29udGFpbmVyLCBMYXlvdXRQb2ludCgpLCAmb2Zmc2V0RGVwZW5kc09uUG9p
bnQpOwotICAgIGlmIChnZW9tZXRyeU1hcC5tYXBDb29yZGluYXRlc0ZsYWdzKCkgJiBTbmFwT2Zm
c2V0Rm9yVHJhbnNmb3JtcykKLSAgICAgICAgY29udGFpbmVyT2Zmc2V0ID0gcm91bmRlZEludFNp
emUoY29udGFpbmVyT2Zmc2V0KTsKIAogICAgIGlmIChjb250YWluZXItPmlzUmVuZGVyRmxvd1Ro
cmVhZCgpKQogICAgICAgICBvZmZzZXREZXBlbmRzT25Qb2ludCA9IHRydWU7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCShyZXZpc2lvbiAxMzc0ODYpCisrKyBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgJKHdvcmtpbmcgY29weSkKQEAgLTU5NSw3ICs1
OTUsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgCiAgICAgdmlydHVhbCBib29sIHNob3VsZENvbXB1dGVT
aXplQXNSZXBsYWNlZCgpIGNvbnN0IHsgcmV0dXJuIGlzUmVwbGFjZWQoKSAmJiAhaXNJbmxpbmVC
bG9ja09ySW5saW5lVGFibGUoKTsgfQogCi0gICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250
YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJh
bnNmb3JtU3RhdGUmLCBNYXBDb29yZGluYXRlc0ZsYWdzID0gQXBwbHlDb250YWluZXJGbGlwIHwg
U25hcE9mZnNldEZvclRyYW5zZm9ybXMsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3QgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5
ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBDb29y
ZGluYXRlc0ZsYWdzID0gQXBwbHlDb250YWluZXJGbGlwLCBib29sKiB3YXNGaXhlZCA9IDApIGNv
bnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgUmVuZGVyT2JqZWN0KiBwdXNoTWFwcGlu
Z1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqLCBSZW5kZXJHZW9tZXRy
eU1hcCYpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBtYXBBYnNvbHV0ZVRvTG9j
YWxQb2ludChNYXBDb29yZGluYXRlc0ZsYWdzLCBUcmFuc2Zvcm1TdGF0ZSYpIGNvbnN0OwogCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVj
dC5jcHAJKHJldmlzaW9uIDEzNzQ4NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCb3hNb2RlbE9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3MSw3ICs0NzEsNyBAQCB2
b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0Ojpjb21wdXRlU3RpY2t5CiAgICAgLy8gQ29tcHV0ZSB0
aGUgY29udGFpbmVyLXJlbGF0aXZlIGFyZWEgd2l0aGluIHdoaWNoIHRoZSBzdGlja3kgZWxlbWVu
dCBpcyBhbGxvd2VkIHRvIG1vdmUuCiAgICAgY29udGFpbmVyQ29udGVudFJlY3QubW92ZShtaW5M
ZWZ0TWFyZ2luLCBtaW5Ub3BNYXJnaW4pOwogICAgIGNvbnRhaW5lckNvbnRlbnRSZWN0LmNvbnRy
YWN0KG1pbkxlZnRNYXJnaW4gKyBtaW5SaWdodE1hcmdpbiwgbWluVG9wTWFyZ2luICsgbWluQm90
dG9tTWFyZ2luKTsKLSAgICBjb25zdHJhaW50cy5zZXRBYnNvbHV0ZUNvbnRhaW5pbmdCbG9ja1Jl
Y3QoY29udGFpbmluZ0Jsb2NrLT5sb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UmVjdChjb250YWlu
ZXJDb250ZW50UmVjdCksIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKS5ib3VuZGluZ0JveCgpKTsK
KyAgICBjb25zdHJhaW50cy5zZXRBYnNvbHV0ZUNvbnRhaW5pbmdCbG9ja1JlY3QoY29udGFpbmlu
Z0Jsb2NrLT5sb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UmVjdChjb250YWluZXJDb250ZW50UmVj
dCkpLmJvdW5kaW5nQm94KCkpOwogCiAgICAgTGF5b3V0UmVjdCBzdGlja3lCb3hSZWN0ID0gZnJh
bWVSZWN0Rm9yU3RpY2t5UG9zaXRpb25pbmcoKTsKICAgICBMYXlvdXRSZWN0IGZsaXBwZWRTdGlj
a3lCb3hSZWN0ID0gc3RpY2t5Qm94UmVjdDsKQEAgLTQ3OSw3ICs0NzksNyBAQCB2b2lkIFJlbmRl
ckJveE1vZGVsT2JqZWN0Ojpjb21wdXRlU3RpY2t5CiAgICAgTGF5b3V0UG9pbnQgc3RpY2t5TG9j
YXRpb24gPSBmbGlwcGVkU3RpY2t5Qm94UmVjdC5sb2NhdGlvbigpOwogCiAgICAgLy8gRklYTUU6
IHN1Y2tzIHRvIGNhbGwgbG9jYWxUb0Fic29sdXRlIGFnYWluLCBidXQgd2UgY2FuJ3QganVzdCBv
ZmZzZXQgZnJvbSB0aGUgcHJldmlvdXNseSBjb21wdXRlZCByZWN0IGlmIHRoZXJlIGFyZSB0cmFu
c2Zvcm1zLgotICAgIEZsb2F0UmVjdCBhYnNDb250YWluZXJGcmFtZSA9IGNvbnRhaW5pbmdCbG9j
ay0+bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBjb250YWluaW5n
QmxvY2stPnNpemUoKSksIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKS5ib3VuZGluZ0JveCgpOwor
ICAgIEZsb2F0UmVjdCBhYnNDb250YWluZXJGcmFtZSA9IGNvbnRhaW5pbmdCbG9jay0+bG9jYWxU
b0Fic29sdXRlUXVhZChGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBjb250YWluaW5nQmxvY2stPnNp
emUoKSkpLmJvdW5kaW5nQm94KCk7CiAgICAgLy8gV2UgY2FuJ3QgY2FsbCBsb2NhbFRvQWJzb2x1
dGUgb24gfHRoaXN8IGJlY2F1c2UgdGhhdCB3aWxsIHJlY3VyLiBGSVhNRTogRm9yIG5vdywgYXNz
dW1lIHRoYXQgfHRoaXN8IGlzIG5vdCB0cmFuc2Zvcm1lZC4KICAgICBGbG9hdFJlY3QgYWJzb2x1
dGVTdGlja3lCb3hSZWN0KGFic0NvbnRhaW5lckZyYW1lLmxvY2F0aW9uKCkgKyBzdGlja3lMb2Nh
dGlvbiwgZmxpcHBlZFN0aWNreUJveFJlY3Quc2l6ZSgpKTsKICAgICBjb25zdHJhaW50cy5zZXRB
YnNvbHV0ZVN0aWNreUJveFJlY3QoYWJzb2x1dGVTdGlja3lCb3hSZWN0KTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcAkocmV2
aXNpb24gMTM3NDg2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVk
T2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzU4LDcgKzM1OCw3IEBAIGJvb2wgUmVuZGVy
RW1iZWRkZWRPYmplY3Q6OmlzSW5VbmF2YWlsYWIKIAogYm9vbCBSZW5kZXJFbWJlZGRlZE9iamVj
dDo6aXNJblVuYXZhaWxhYmxlUGx1Z2luSW5kaWNhdG9yKE1vdXNlRXZlbnQqIGV2ZW50KSBjb25z
dAogewotICAgIHJldHVybiBpc0luVW5hdmFpbGFibGVQbHVnaW5JbmRpY2F0b3Iocm91bmRlZExh
eW91dFBvaW50KGFic29sdXRlVG9Mb2NhbChldmVudC0+YWJzb2x1dGVMb2NhdGlvbigpLCBVc2VU
cmFuc2Zvcm1zIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpKSk7CisgICAgcmV0dXJuIGlzSW5V
bmF2YWlsYWJsZVBsdWdpbkluZGljYXRvcihyb3VuZGVkTGF5b3V0UG9pbnQoYWJzb2x1dGVUb0xv
Y2FsKGV2ZW50LT5hYnNvbHV0ZUxvY2F0aW9uKCksIFVzZVRyYW5zZm9ybXMpKSk7CiB9CiAKIHN0
YXRpYyBib29sIHNob3VsZFVuYXZhaWxhYmxlUGx1Z2luTWVzc2FnZUJlQnV0dG9uKERvY3VtZW50
KiBkb2N1bWVudCwgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVh
c29uIHBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckZyYW1lU2V0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRnJhbWVTZXQuY3BwCShyZXZpc2lvbiAxMzc0ODYpCisrKyBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhbWVTZXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03
MDEsNyArNzAxLDcgQEAgYm9vbCBSZW5kZXJGcmFtZVNldDo6dXNlclJlc2l6ZShNb3VzZUV2ZQog
ICAgICAgICBpZiAobmVlZHNMYXlvdXQoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICAgICAgaWYgKGV2dC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3VzZWRvd25FdmVudCAmJiBl
dnQtPmJ1dHRvbigpID09IExlZnRCdXR0b24pIHsKLSAgICAgICAgICAgIEZsb2F0UG9pbnQgbG9j
YWxQb3MgPSBhYnNvbHV0ZVRvTG9jYWwoZXZ0LT5hYnNvbHV0ZUxvY2F0aW9uKCksIFVzZVRyYW5z
Zm9ybXMgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jtcyk7CisgICAgICAgICAgICBGbG9hdFBvaW50
IGxvY2FsUG9zID0gYWJzb2x1dGVUb0xvY2FsKGV2dC0+YWJzb2x1dGVMb2NhdGlvbigpLCBVc2VU
cmFuc2Zvcm1zKTsKICAgICAgICAgICAgIHN0YXJ0UmVzaXppbmcobV9jb2xzLCBsb2NhbFBvcy54
KCkpOwogICAgICAgICAgICAgc3RhcnRSZXNpemluZyhtX3Jvd3MsIGxvY2FsUG9zLnkoKSk7CiAg
ICAgICAgICAgICBpZiAobV9jb2xzLm1fc3BsaXRCZWluZ1Jlc2l6ZWQgIT0gbm9TcGxpdCB8fCBt
X3Jvd3MubV9zcGxpdEJlaW5nUmVzaXplZCAhPSBub1NwbGl0KSB7CkBAIC03MTEsNyArNzExLDcg
QEAgYm9vbCBSZW5kZXJGcmFtZVNldDo6dXNlclJlc2l6ZShNb3VzZUV2ZQogICAgICAgICB9CiAg
ICAgfSBlbHNlIHsKICAgICAgICAgaWYgKGV2dC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3Vz
ZW1vdmVFdmVudCB8fCAoZXZ0LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1vdXNldXBFdmVudCAm
JiBldnQtPmJ1dHRvbigpID09IExlZnRCdXR0b24pKSB7Ci0gICAgICAgICAgICBGbG9hdFBvaW50
IGxvY2FsUG9zID0gYWJzb2x1dGVUb0xvY2FsKGV2dC0+YWJzb2x1dGVMb2NhdGlvbigpLCBVc2VU
cmFuc2Zvcm1zIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpOworICAgICAgICAgICAgRmxvYXRQ
b2ludCBsb2NhbFBvcyA9IGFic29sdXRlVG9Mb2NhbChldnQtPmFic29sdXRlTG9jYXRpb24oKSwg
VXNlVHJhbnNmb3Jtcyk7CiAgICAgICAgICAgICBjb250aW51ZVJlc2l6aW5nKG1fY29scywgbG9j
YWxQb3MueCgpKTsKICAgICAgICAgICAgIGNvbnRpbnVlUmVzaXppbmcobV9yb3dzLCBsb2NhbFBv
cy55KCkpOwogICAgICAgICAgICAgaWYgKGV2dC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3Vz
ZXVwRXZlbnQgJiYgZXZ0LT5idXR0b24oKSA9PSBMZWZ0QnV0dG9uKSB7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR2VvbWV0cnlNYXAuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHZW9tZXRyeU1hcC5jcHAJKHJldmlzaW9uIDEz
NzQ4NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHZW9tZXRyeU1hcC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTUxLDYgKzUxLDcgQEAgdm9pZCBSZW5kZXJHZW9tZXRyeU1hcDo6
bWFwVG9Db250YWluZXIoVAogICAgIC8vIElmIHRoZSBtYXBwaW5nIGluY2x1ZGVzIHNvbWV0aGlu
ZyBsaWtlIGNvbHVtbnMsIHdlIGhhdmUgdG8gZ28gdmlhIHJlbmRlcmVycy4KICAgICBpZiAoaGFz
Tm9uVW5pZm9ybVN0ZXAoKSkgewogICAgICAgICBtX21hcHBpbmcubGFzdCgpLm1fcmVuZGVyZXIt
Pm1hcExvY2FsVG9Db250YWluZXIoY29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwgQXBwbHlDb250
YWluZXJGbGlwIHwgbV9tYXBDb29yZGluYXRlc0ZsYWdzKTsKKyAgICAgICAgdHJhbnNmb3JtU3Rh
dGUuZmxhdHRlbigpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIApAQCAtMTA0LDcgKzEw
NSw3IEBAIEZsb2F0UG9pbnQgUmVuZGVyR2VvbWV0cnlNYXA6Om1hcFRvQ29udGEKICAgICBGbG9h
dFBvaW50IHJlc3VsdDsKICAgICAKICAgICBpZiAoIWhhc0ZpeGVkUG9zaXRpb25TdGVwKCkgJiYg
IWhhc1RyYW5zZm9ybVN0ZXAoKSAmJiAhaGFzTm9uVW5pZm9ybVN0ZXAoKSAmJiAoIWNvbnRhaW5l
ciB8fCAobV9tYXBwaW5nLnNpemUoKSAmJiBjb250YWluZXIgPT0gbV9tYXBwaW5nWzBdLm1fcmVu
ZGVyZXIpKSkKLSAgICAgICAgcmVzdWx0ID0gcCArIG1fYWNjdW11bGF0ZWRPZmZzZXQ7CisgICAg
ICAgIHJlc3VsdCA9IHAgKyByb3VuZGVkSW50U2l6ZShtX2FjY3VtdWxhdGVkT2Zmc2V0KTsKICAg
ICBlbHNlIHsKICAgICAgICAgVHJhbnNmb3JtU3RhdGUgdHJhbnNmb3JtU3RhdGUoVHJhbnNmb3Jt
U3RhdGU6OkFwcGx5VHJhbnNmb3JtRGlyZWN0aW9uLCBwKTsKICAgICAgICAgbWFwVG9Db250YWlu
ZXIodHJhbnNmb3JtU3RhdGUsIGNvbnRhaW5lcik7CkBAIC0xMjcsNyArMTI4LDcgQEAgRmxvYXRR
dWFkIFJlbmRlckdlb21ldHJ5TWFwOjptYXBUb0NvbnRhaQogICAgIAogICAgIGlmICghaGFzRml4
ZWRQb3NpdGlvblN0ZXAoKSAmJiAhaGFzVHJhbnNmb3JtU3RlcCgpICYmICFoYXNOb25Vbmlmb3Jt
U3RlcCgpICYmICghY29udGFpbmVyIHx8IChtX21hcHBpbmcuc2l6ZSgpICYmIGNvbnRhaW5lciA9
PSBtX21hcHBpbmdbMF0ubV9yZW5kZXJlcikpKSB7CiAgICAgICAgIHJlc3VsdCA9IHJlY3Q7Ci0g
ICAgICAgIHJlc3VsdC5tb3ZlKG1fYWNjdW11bGF0ZWRPZmZzZXQpOworICAgICAgICByZXN1bHQu
bW92ZShyb3VuZGVkSW50U2l6ZShtX2FjY3VtdWxhdGVkT2Zmc2V0KSk7CiAgICAgfSBlbHNlIHsK
ICAgICAgICAgVHJhbnNmb3JtU3RhdGUgdHJhbnNmb3JtU3RhdGUoVHJhbnNmb3JtU3RhdGU6OkFw
cGx5VHJhbnNmb3JtRGlyZWN0aW9uLCByZWN0LmNlbnRlcigpLCByZWN0KTsKICAgICAgICAgbWFw
VG9Db250YWluZXIodHJhbnNmb3JtU3RhdGUsIGNvbnRhaW5lcik7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyR2VvbWV0cnlNYXAuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR2VvbWV0cnlNYXAuaAkocmV2aXNpb24gMTM3NDg2KQor
KysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdlb21ldHJ5TWFwLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTc0LDcgKzc0LDcgQEAgc3RydWN0IFJlbmRlckdlb21ldHJ5TWFwU3RlcCB7CiBj
bGFzcyBSZW5kZXJHZW9tZXRyeU1hcCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUmVuZGVy
R2VvbWV0cnlNYXApOwogcHVibGljOgotICAgIFJlbmRlckdlb21ldHJ5TWFwKE1hcENvb3JkaW5h
dGVzRmxhZ3MgPSBVc2VUcmFuc2Zvcm1zIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpOworICAg
IFJlbmRlckdlb21ldHJ5TWFwKE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBVc2VUcmFuc2Zvcm1zKTsK
ICAgICB+UmVuZGVyR2VvbWV0cnlNYXAoKTsKIAogICAgIE1hcENvb3JkaW5hdGVzRmxhZ3MgbWFw
Q29vcmRpbmF0ZXNGbGFncygpIGNvbnN0IHsgcmV0dXJuIG1fbWFwQ29vcmRpbmF0ZXNGbGFnczsg
fQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAJKHJldmlz
aW9uIDEzNzQ4NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xMTU3LDggKzExNTcsNiBAQCB2b2lkIFJlbmRlcklubGluZTo6
bWFwTG9jYWxUb0NvbnRhaW5lcihjCiAgICAgfQogCiAgICAgTGF5b3V0U2l6ZSBjb250YWluZXJP
ZmZzZXQgPSBvZmZzZXRGcm9tQ29udGFpbmVyKG8sIHJvdW5kZWRMYXlvdXRQb2ludCh0cmFuc2Zv
cm1TdGF0ZS5tYXBwZWRQb2ludCgpKSk7Ci0gICAgaWYgKG1vZGUgJiBTbmFwT2Zmc2V0Rm9yVHJh
bnNmb3JtcykKLSAgICAgICAgY29udGFpbmVyT2Zmc2V0ID0gcm91bmRlZEludFNpemUoY29udGFp
bmVyT2Zmc2V0KTsKIAogICAgIGJvb2wgcHJlc2VydmUzRCA9IG1vZGUgJiBVc2VUcmFuc2Zvcm1z
ICYmIChvLT5zdHlsZSgpLT5wcmVzZXJ2ZXMzRCgpIHx8IHN0eWxlKCktPnByZXNlcnZlczNEKCkp
OwogICAgIGlmIChtb2RlICYgVXNlVHJhbnNmb3JtcyAmJiBzaG91bGRVc2VUcmFuc2Zvcm1Gcm9t
Q29udGFpbmVyKG8pKSB7CkBAIC0xMTk3LDggKzExOTUsNiBAQCBjb25zdCBSZW5kZXJPYmplY3Qq
IFJlbmRlcklubGluZTo6cHVzaE1hCiAKICAgICBib29sIG9mZnNldERlcGVuZHNPblBvaW50ID0g
ZmFsc2U7CiAgICAgTGF5b3V0U2l6ZSBjb250YWluZXJPZmZzZXQgPSBvZmZzZXRGcm9tQ29udGFp
bmVyKGNvbnRhaW5lciwgTGF5b3V0UG9pbnQoKSwgJm9mZnNldERlcGVuZHNPblBvaW50KTsKLSAg
ICBpZiAoZ2VvbWV0cnlNYXAubWFwQ29vcmRpbmF0ZXNGbGFncygpICYgU25hcE9mZnNldEZvclRy
YW5zZm9ybXMpCi0gICAgICAgIGNvbnRhaW5lck9mZnNldCA9IHJvdW5kZWRJbnRTaXplKGNvbnRh
aW5lck9mZnNldCk7CiAKICAgICBib29sIHByZXNlcnZlM0QgPSBjb250YWluZXItPnN0eWxlKCkt
PnByZXNlcnZlczNEKCkgfHwgc3R5bGUoKS0+cHJlc2VydmVzM0QoKTsKICAgICBpZiAoc2hvdWxk
VXNlVHJhbnNmb3JtRnJvbUNvbnRhaW5lcihjb250YWluZXIpKSB7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5oCShyZXZpc2lvbiAxMzc0ODYpCisrKyBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmgJKHdvcmtpbmcgY29weSkKQEAgLTE0Miw3
ICsxNDIsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgTGF5b3V0UmVjdCByZWN0V2l0aE91dGxp
bmVGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWlu
ZXIsIExheW91dFVuaXQgb3V0bGluZVdpZHRoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFs
IHZvaWQgY29tcHV0ZVJlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3Qq
IHJlcGFpbnRDb250YWluZXIsIExheW91dFJlY3QmLCBib29sIGZpeGVkKSBjb25zdCBPVkVSUklE
RTsKIAotICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxh
eWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29v
cmRpbmF0ZXNGbGFncyA9IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zv
cm1zLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9p
ZCBtYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFp
bnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29vcmRpbmF0ZXNGbGFncyA9IEFwcGx5
Q29udGFpbmVyRmxpcCwgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBPVkVSUklERTsKICAgICB2
aXJ0dWFsIGNvbnN0IFJlbmRlck9iamVjdCogcHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBS
ZW5kZXJMYXllck1vZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1h
cCYpIGNvbnN0IE9WRVJSSURFOwogCiAgICAgdmlydHVhbCBWaXNpYmxlUG9zaXRpb24gcG9zaXRp
b25Gb3JQb2ludChjb25zdCBMYXlvdXRQb2ludCYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCShyZXZpc2lvbiAxMzc0ODYpCisrKyBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjA3LDcgKzEy
MDcsNyBAQCBSZW5kZXJMYXllciogUmVuZGVyTGF5ZXI6OmNsaXBwaW5nUm9vdEZvCiBMYXlvdXRQ
b2ludCBSZW5kZXJMYXllcjo6YWJzb2x1dGVUb0NvbnRlbnRzKGNvbnN0IExheW91dFBvaW50JiBh
YnNvbHV0ZVBvaW50KSBjb25zdAogewogICAgIC8vIFdlIGRvbid0IHVzZSBjb252ZXJ0VG9MYXll
ckNvb3JkcyBiZWNhdXNlIGl0IGRvZXNuJ3Qga25vdyBhYm91dCB0cmFuc2Zvcm1zCi0gICAgcmV0
dXJuIHJvdW5kZWRMYXlvdXRQb2ludChyZW5kZXJlcigpLT5hYnNvbHV0ZVRvTG9jYWwoYWJzb2x1
dGVQb2ludCwgVXNlVHJhbnNmb3JtcyB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKSk7CisgICAg
cmV0dXJuIHJvdW5kZWRMYXlvdXRQb2ludChyZW5kZXJlcigpLT5hYnNvbHV0ZVRvTG9jYWwoYWJz
b2x1dGVQb2ludCwgVXNlVHJhbnNmb3JtcykpOwogfQogCiBib29sIFJlbmRlckxheWVyOjpjYW5u
b3RCbGl0VG9XaW5kb3coKSBjb25zdApAQCAtMTc4OSw3ICsxNzg5LDcgQEAgdm9pZCBSZW5kZXJM
YXllcjo6c2Nyb2xsVG8oaW50IHgsIGludCB5KQogCiAgICAgICAgIEZsb2F0UXVhZCBxdWFkRm9y
RmFrZU1vdXNlTW92ZUV2ZW50ID0gRmxvYXRRdWFkKG1fcmVwYWludFJlY3QpOwogICAgICAgICBp
ZiAocmVwYWludENvbnRhaW5lcikKLSAgICAgICAgICAgIHF1YWRGb3JGYWtlTW91c2VNb3ZlRXZl
bnQgPSByZXBhaW50Q29udGFpbmVyLT5sb2NhbFRvQWJzb2x1dGVRdWFkKHF1YWRGb3JGYWtlTW91
c2VNb3ZlRXZlbnQsIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKTsKKyAgICAgICAgICAgIHF1YWRG
b3JGYWtlTW91c2VNb3ZlRXZlbnQgPSByZXBhaW50Q29udGFpbmVyLT5sb2NhbFRvQWJzb2x1dGVR
dWFkKHF1YWRGb3JGYWtlTW91c2VNb3ZlRXZlbnQpOwogICAgICAgICBmcmFtZS0+ZXZlbnRIYW5k
bGVyKCktPmRpc3BhdGNoRmFrZU1vdXNlTW92ZUV2ZW50U29vbkluUXVhZChxdWFkRm9yRmFrZU1v
dXNlTW92ZUV2ZW50KTsKICAgICB9CiAKQEAgLTQzODEsNyArNDM4MSw3IEBAIExheW91dFJlY3Qg
UmVuZGVyTGF5ZXI6OmNoaWxkcmVuQ2xpcFJlY3QKICAgICBDbGlwUmVjdHNDb250ZXh0IGNsaXBS
ZWN0c0NvbnRleHQoY2xpcHBpbmdSb290TGF5ZXIsIDAsIFRlbXBvcmFyeUNsaXBSZWN0cyk7CiAg
ICAgLy8gTmVlZCB0byB1c2UgdGVtcG9yYXJ5IGNsaXAgcmVjdHMsIGJlY2F1c2UgdGhlIHZhbHVl
IG9mICdkb250Q2xpcFRvT3ZlcmZsb3cnIG1heSBiZSBkaWZmZXJlbnQgZnJvbSB0aGUgcGFpbnRp
bmcgcGF0aCAoPHJkYXI6Ly9wcm9ibGVtLzExODQ0OTA5PikuCiAgICAgY2FsY3VsYXRlUmVjdHMo
Y2xpcFJlY3RzQ29udGV4dCwgcmVuZGVyVmlldy0+dW5zY2FsZWREb2N1bWVudFJlY3QoKSwgbGF5
ZXJCb3VuZHMsIGJhY2tncm91bmRSZWN0LCBmb3JlZ3JvdW5kUmVjdCwgb3V0bGluZVJlY3QpOwot
ICAgIHJldHVybiBjbGlwcGluZ1Jvb3RMYXllci0+cmVuZGVyZXIoKS0+bG9jYWxUb0Fic29sdXRl
UXVhZChGbG9hdFF1YWQoZm9yZWdyb3VuZFJlY3QucmVjdCgpKSwgU25hcE9mZnNldEZvclRyYW5z
Zm9ybXMpLmVuY2xvc2luZ0JvdW5kaW5nQm94KCk7CisgICAgcmV0dXJuIGNsaXBwaW5nUm9vdExh
eWVyLT5yZW5kZXJlcigpLT5sb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UXVhZChmb3JlZ3JvdW5k
UmVjdC5yZWN0KCkpKS5lbmNsb3NpbmdCb3VuZGluZ0JveCgpOwogfQogCiBMYXlvdXRSZWN0IFJl
bmRlckxheWVyOjpzZWxmQ2xpcFJlY3QoKSBjb25zdApAQCAtNDM5NCw3ICs0Mzk0LDcgQEAgTGF5
b3V0UmVjdCBSZW5kZXJMYXllcjo6c2VsZkNsaXBSZWN0KCkgYwogICAgIENsaXBSZWN0IGJhY2tn
cm91bmRSZWN0LCBmb3JlZ3JvdW5kUmVjdCwgb3V0bGluZVJlY3Q7CiAgICAgQ2xpcFJlY3RzQ29u
dGV4dCBjbGlwUmVjdHNDb250ZXh0KGNsaXBwaW5nUm9vdExheWVyLCAwLCBQYWludGluZ0NsaXBS
ZWN0cyk7CiAgICAgY2FsY3VsYXRlUmVjdHMoY2xpcFJlY3RzQ29udGV4dCwgcmVuZGVyVmlldy0+
ZG9jdW1lbnRSZWN0KCksIGxheWVyQm91bmRzLCBiYWNrZ3JvdW5kUmVjdCwgZm9yZWdyb3VuZFJl
Y3QsIG91dGxpbmVSZWN0KTsKLSAgICByZXR1cm4gY2xpcHBpbmdSb290TGF5ZXItPnJlbmRlcmVy
KCktPmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRRdWFkKGJhY2tncm91bmRSZWN0LnJlY3QoKSks
IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKS5lbmNsb3NpbmdCb3VuZGluZ0JveCgpOworICAgIHJl
dHVybiBjbGlwcGluZ1Jvb3RMYXllci0+cmVuZGVyZXIoKS0+bG9jYWxUb0Fic29sdXRlUXVhZChG
bG9hdFF1YWQoYmFja2dyb3VuZFJlY3QucmVjdCgpKSkuZW5jbG9zaW5nQm91bmRpbmdCb3goKTsK
IH0KIAogTGF5b3V0UmVjdCBSZW5kZXJMYXllcjo6bG9jYWxDbGlwUmVjdCgpIGNvbnN0CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAko
cmV2aXNpb24gMTM3NDg2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
QmFja2luZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwMzIsNyArMjAzMiw3IEBAIGJvb2wgUmVu
ZGVyTGF5ZXJCYWNraW5nOjpjb250ZW50c1Zpc2libGUKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CiAgICAgSW50UmVjdCB2aXNpYmxlQ29udGVudFJlY3Qodmlldy0+dmlzaWJsZUNvbnRlbnRSZWN0
KCkpOwotICAgIEZsb2F0UXVhZCBhYnNvbHV0ZUNvbnRlbnRRdWFkID0gcmVuZGVyZXIoKS0+bG9j
YWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3QobG9jYWxDb250ZW50UmVjdCksIFNuYXBPZmZzZXRG
b3JUcmFuc2Zvcm1zKTsKKyAgICBGbG9hdFF1YWQgYWJzb2x1dGVDb250ZW50UXVhZCA9IHJlbmRl
cmVyKCktPmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRSZWN0KGxvY2FsQ29udGVudFJlY3QpKTsK
ICAgICByZXR1cm4gYWJzb2x1dGVDb250ZW50UXVhZC5lbmNsb3NpbmdCb3VuZGluZ0JveCgpLmlu
dGVyc2VjdHModmlzaWJsZUNvbnRlbnRSZWN0KTsKIH0KICNlbmRpZgpJbmRleDogU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHMuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xzLmNwcAkocmV2aXNpb24g
MTM3NDg2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHMu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMTUsNyArMjE1LDcgQEAgSW50UG9pbnQgUmVuZGVyTWVk
aWFDb250cm9sczo6dm9sdW1lU2xpZAogCiAgICAgZmxvYXQgem9vbUxldmVsID0gbXV0ZUJ1dHRv
bkJveC0+c3R5bGUoKS0+ZWZmZWN0aXZlWm9vbSgpOwogICAgIGludCB5ID0geU9mZnNldCAqIHpv
b21MZXZlbCArIG11dGVCdXR0b25Cb3gtPnBpeGVsU25hcHBlZE9mZnNldEhlaWdodCgpIC0gc2l6
ZS5oZWlnaHQoKTsKLSAgICBGbG9hdFBvaW50IGFic1BvaW50ID0gbXV0ZUJ1dHRvbkJveC0+bG9j
YWxUb0Fic29sdXRlKEZsb2F0UG9pbnQobXV0ZUJ1dHRvbkJveC0+cGl4ZWxTbmFwcGVkT2Zmc2V0
TGVmdCgpLCB5KSwgSXNGaXhlZCB8IFVzZVRyYW5zZm9ybXMgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNm
b3Jtcyk7CisgICAgRmxvYXRQb2ludCBhYnNQb2ludCA9IG11dGVCdXR0b25Cb3gtPmxvY2FsVG9B
YnNvbHV0ZShGbG9hdFBvaW50KG11dGVCdXR0b25Cb3gtPnBpeGVsU25hcHBlZE9mZnNldExlZnQo
KSwgeSksIElzRml4ZWQgfCBVc2VUcmFuc2Zvcm1zKTsKICAgICBpZiAoYWJzUG9pbnQueSgpIDwg
MCkKICAgICAgICAgeSA9IG11dGVCdXR0b25Cb3gtPnBpeGVsU25hcHBlZEhlaWdodCgpOwogICAg
IHJldHVybiBJbnRQb2ludCh4T2Zmc2V0ICogem9vbUxldmVsLCB5KTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcAkocmV2aXNpb24gMTM3NDg2KQor
KysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzIwLDcgKzMyMCw3IEBAIHZvaWQgUmVuZGVyTWVudUxpc3Q6OnNob3dQb3B1cCgp
CiAKICAgICAvLyBDb21wdXRlIHRoZSB0b3AgbGVmdCB0YWtpbmcgdHJhbnNmb3JtcyBpbnRvIGFj
Y291bnQsIGJ1dCB1c2UKICAgICAvLyB0aGUgYWN0dWFsIHdpZHRoIG9mIHRoZSBlbGVtZW50IHRv
IHNpemUgdGhlIHBvcHVwLgotICAgIEZsb2F0UG9pbnQgYWJzVG9wTGVmdCA9IGxvY2FsVG9BYnNv
bHV0ZShGbG9hdFBvaW50KCksIFVzZVRyYW5zZm9ybXMgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jt
cyk7CisgICAgRmxvYXRQb2ludCBhYnNUb3BMZWZ0ID0gbG9jYWxUb0Fic29sdXRlKEZsb2F0UG9p
bnQoKSwgVXNlVHJhbnNmb3Jtcyk7CiAgICAgSW50UmVjdCBhYnNCb3VuZHMgPSBhYnNvbHV0ZUJv
dW5kaW5nQm94UmVjdElnbm9yaW5nVHJhbnNmb3JtcygpOwogICAgIGFic0JvdW5kcy5zZXRMb2Nh
dGlvbihyb3VuZGVkSW50UG9pbnQoYWJzVG9wTGVmdCkpOwogICAgIEhUTUxTZWxlY3RFbGVtZW50
KiBzZWxlY3QgPSBzZWxlY3RFbGVtZW50KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyT2JqZWN0LmNwcAkocmV2aXNpb24gMTM3NDg2KQorKysgU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyMTksNyArMTIx
OSw3IEBAIHZvaWQgUmVuZGVyT2JqZWN0OjphYnNvbHV0ZUZvY3VzUmluZ1F1YWQKICAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKICAgICAgICAgSW50UmVjdCByZWN0ID0g
cmVjdHNbaV07CiAgICAgICAgIHJlY3QubW92ZSgtYWJzb2x1dGVQb2ludC54KCksIC1hYnNvbHV0
ZVBvaW50LnkoKSk7Ci0gICAgICAgIHF1YWRzLmFwcGVuZChsb2NhbFRvQWJzb2x1dGVRdWFkKEZs
b2F0UXVhZChyZWN0KSwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpKTsKKyAgICAgICAgcXVhZHMu
YXBwZW5kKGxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRRdWFkKHJlY3QpKSk7CiAgICAgfQogfQog
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCShyZXZpc2lvbiAx
Mzc0ODYpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgJKHdvcmtp
bmcgY29weSkKQEAgLTExNCw4ICsxMTQsNyBAQCBlbnVtIFBsYWNlR2VuZXJhdGVkUnVuSW5GbGFn
IHsKIGVudW0gTWFwQ29vcmRpbmF0ZXNNb2RlIHsKICAgICBJc0ZpeGVkID0gMSA8PCAwLAogICAg
IFVzZVRyYW5zZm9ybXMgPSAxIDw8IDEsCi0gICAgQXBwbHlDb250YWluZXJGbGlwID0gMSA8PCAy
LAotICAgIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zID0gMSA8PCAzCisgICAgQXBwbHlDb250YWlu
ZXJGbGlwID0gMSA8PCAyCiB9OwogdHlwZWRlZiB1bnNpZ25lZCBNYXBDb29yZGluYXRlc0ZsYWdz
OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCShyZXZpc2lv
biAxMzc0ODYpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTM3MSwxMiArMzcxLDEyIEBAIHZvaWQgUmVuZGVyVGV4dDo6YWJzb2x1
dGVSZWN0c0ZvclJhbmdlKFYKICAgICAgICAgICAgICAgICAgICAgci5zZXRYKHNlbGVjdGlvblJl
Y3QueCgpKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBy
ZWN0cy5hcHBlbmQobG9jYWxUb0Fic29sdXRlUXVhZChyLCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jt
cywgd2FzRml4ZWQpLmVuY2xvc2luZ0JvdW5kaW5nQm94KCkpOworICAgICAgICAgICAgcmVjdHMu
YXBwZW5kKGxvY2FsVG9BYnNvbHV0ZVF1YWQociwgMCwgd2FzRml4ZWQpLmVuY2xvc2luZ0JvdW5k
aW5nQm94KCkpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMg
Y29kZSBpcyB3cm9uZy4gSXQncyBjb252ZXJ0aW5nIGxvY2FsIHRvIGFic29sdXRlIHR3aWNlLiBo
dHRwOi8vd2Via2l0Lm9yZy9iLzY1NzIyCiAgICAgICAgICAgICBGbG9hdFJlY3QgcmVjdCA9IGxv
Y2FsUXVhZEZvclRleHRCb3goYm94LCBzdGFydCwgZW5kLCB1c2VTZWxlY3Rpb25IZWlnaHQpOwog
ICAgICAgICAgICAgaWYgKCFyZWN0LmlzWmVybygpKQotICAgICAgICAgICAgICAgIHJlY3RzLmFw
cGVuZChsb2NhbFRvQWJzb2x1dGVRdWFkKHJlY3QsIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCB3
YXNGaXhlZCkuZW5jbG9zaW5nQm91bmRpbmdCb3goKSk7CisgICAgICAgICAgICAgICAgcmVjdHMu
YXBwZW5kKGxvY2FsVG9BYnNvbHV0ZVF1YWQocmVjdCwgMCwgd2FzRml4ZWQpLmVuY2xvc2luZ0Jv
dW5kaW5nQm94KCkpOwogICAgICAgICB9CiAgICAgfQogfQpAQCAtNDE5LDcgKzQxOSw3IEBAIHZv
aWQgUmVuZGVyVGV4dDo6YWJzb2x1dGVRdWFkcyhWZWN0b3I8RmwKICAgICAgICAgICAgIGVsc2UK
ICAgICAgICAgICAgICAgICBib3VuZGFyaWVzLnNldEhlaWdodChlbGxpcHNpc1JlY3QubWF4WSgp
IC0gYm91bmRhcmllcy55KCkpOwogICAgICAgICB9Ci0gICAgICAgIHF1YWRzLmFwcGVuZChsb2Nh
bFRvQWJzb2x1dGVRdWFkKGJvdW5kYXJpZXMsIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCB3YXNG
aXhlZCkpOworICAgICAgICBxdWFkcy5hcHBlbmQobG9jYWxUb0Fic29sdXRlUXVhZChib3VuZGFy
aWVzLCAwLCB3YXNGaXhlZCkpOwogICAgIH0KIH0KICAgICAKQEAgLTQ1NCwxMSArNDU0LDExIEBA
IHZvaWQgUmVuZGVyVGV4dDo6YWJzb2x1dGVRdWFkc0ZvclJhbmdlKFYKICAgICAgICAgICAgICAg
ICAgICAgci5zZXRYKHNlbGVjdGlvblJlY3QueCgpKTsKICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICBxdWFkcy5hcHBlbmQobG9jYWxUb0Fic29sdXRlUXVhZChy
LCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jtcywgd2FzRml4ZWQpKTsKKyAgICAgICAgICAgIHF1YWRz
LmFwcGVuZChsb2NhbFRvQWJzb2x1dGVRdWFkKHIsIDAsIHdhc0ZpeGVkKSk7CiAgICAgICAgIH0g
ZWxzZSB7CiAgICAgICAgICAgICBGbG9hdFJlY3QgcmVjdCA9IGxvY2FsUXVhZEZvclRleHRCb3go
Ym94LCBzdGFydCwgZW5kLCB1c2VTZWxlY3Rpb25IZWlnaHQpOwogICAgICAgICAgICAgaWYgKCFy
ZWN0LmlzWmVybygpKQotICAgICAgICAgICAgICAgIHF1YWRzLmFwcGVuZChsb2NhbFRvQWJzb2x1
dGVRdWFkKHJlY3QsIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCB3YXNGaXhlZCkpOworICAgICAg
ICAgICAgICAgIHF1YWRzLmFwcGVuZChsb2NhbFRvQWJzb2x1dGVRdWFkKHJlY3QsIDAsIHdhc0Zp
eGVkKSk7CiAgICAgICAgIH0KICAgICB9CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZS5jcHAJKHJldmlzaW9uIDEzNzQ4NikKKysrIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUaGVtZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUyMyw3ICs1MjMsNyBA
QCBTdHJpbmcgUmVuZGVyVGhlbWU6OmZvcm1hdE1lZGlhQ29udHJvbHNSCiBJbnRQb2ludCBSZW5k
ZXJUaGVtZTo6dm9sdW1lU2xpZGVyT2Zmc2V0RnJvbU11dGVCdXR0b24oUmVuZGVyQm94KiBtdXRl
QnV0dG9uQm94LCBjb25zdCBJbnRTaXplJiBzaXplKSBjb25zdAogewogICAgIGludCB5ID0gLXNp
emUuaGVpZ2h0KCk7Ci0gICAgRmxvYXRQb2ludCBhYnNQb2ludCA9IG11dGVCdXR0b25Cb3gtPmxv
Y2FsVG9BYnNvbHV0ZShGbG9hdFBvaW50KG11dGVCdXR0b25Cb3gtPnBpeGVsU25hcHBlZE9mZnNl
dExlZnQoKSwgeSksIElzRml4ZWQgfCBVc2VUcmFuc2Zvcm1zIHwgU25hcE9mZnNldEZvclRyYW5z
Zm9ybXMpOworICAgIEZsb2F0UG9pbnQgYWJzUG9pbnQgPSBtdXRlQnV0dG9uQm94LT5sb2NhbFRv
QWJzb2x1dGUoRmxvYXRQb2ludChtdXRlQnV0dG9uQm94LT5waXhlbFNuYXBwZWRPZmZzZXRMZWZ0
KCksIHkpLCBJc0ZpeGVkIHwgVXNlVHJhbnNmb3Jtcyk7CiAgICAgaWYgKGFic1BvaW50LnkoKSA8
IDApCiAgICAgICAgIHkgPSBtdXRlQnV0dG9uQm94LT5oZWlnaHQoKTsKICAgICByZXR1cm4gSW50
UG9pbnQoMCwgeSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3Bw
CShyZXZpc2lvbiAxMzc0ODYpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmll
dy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUzNiw3ICs1MzYsNyBAQCBJbnRSZWN0IFJlbmRlclZp
ZXc6OnNlbGVjdGlvbkJvdW5kcyhib29sCiAgICAgICAgIC8vIFJlbmRlclNlbGVjdGlvbkluZm86
OnJlY3QoKSBpcyBpbiB0aGUgY29vcmRpbmF0ZXMgb2YgdGhlIHJlcGFpbnRDb250YWluZXIsIHNv
IG1hcCB0byBwYWdlIGNvb3JkaW5hdGVzLgogICAgICAgICBMYXlvdXRSZWN0IGN1cnJSZWN0ID0g
aW5mby0+cmVjdCgpOwogICAgICAgICBpZiAoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWlu
dENvbnRhaW5lciA9IGluZm8tPnJlcGFpbnRDb250YWluZXIoKSkgewotICAgICAgICAgICAgRmxv
YXRRdWFkIGFic1F1YWQgPSByZXBhaW50Q29udGFpbmVyLT5sb2NhbFRvQWJzb2x1dGVRdWFkKEZs
b2F0UmVjdChjdXJyUmVjdCksIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKTsKKyAgICAgICAgICAg
IEZsb2F0UXVhZCBhYnNRdWFkID0gcmVwYWludENvbnRhaW5lci0+bG9jYWxUb0Fic29sdXRlUXVh
ZChGbG9hdFJlY3QoY3VyclJlY3QpKTsKICAgICAgICAgICAgIGN1cnJSZWN0ID0gYWJzUXVhZC5l
bmNsb3NpbmdCb3VuZGluZ0JveCgpOyAKICAgICAgICAgfQogICAgICAgICBzZWxSZWN0LnVuaXRl
KGN1cnJSZWN0KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaAkocmV2
aXNpb24gMTM3NDg2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaAko
d29ya2luZyBjb3B5KQpAQCAtMjI5LDcgKzIyOSw3IEBAIHB1YmxpYzoKICAgICBib29sIGhhc1Jl
bmRlckNvdW50ZXJzKCkgeyByZXR1cm4gbV9yZW5kZXJDb3VudGVyQ291bnQ7IH0KIAogcHJvdGVj
dGVkOgotICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxh
eWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29v
cmRpbmF0ZXNGbGFncyA9IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zv
cm1zLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9p
ZCBtYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFp
bnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29vcmRpbmF0ZXNGbGFncyA9IEFwcGx5
Q29udGFpbmVyRmxpcCwgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBPVkVSUklERTsKICAgICB2
aXJ0dWFsIGNvbnN0IFJlbmRlck9iamVjdCogcHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBS
ZW5kZXJMYXllck1vZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1h
cCYpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBtYXBBYnNvbHV0ZVRvTG9jYWxQ
b2ludChNYXBDb29yZGluYXRlc0ZsYWdzLCBUcmFuc2Zvcm1TdGF0ZSYpIGNvbnN0OwogICAgIHZp
cnR1YWwgYm9vbCByZXF1aXJlc0NvbHVtbnMoaW50IGRlc2lyZWRDb2x1bW5Db3VudCkgY29uc3Qg
T1ZFUlJJREU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNw
cAkocmV2aXNpb24gMTM3NDg2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldp
ZGdldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2OSw3ICsxNjksNyBAQCBib29sIFJlbmRlcldp
ZGdldDo6dXBkYXRlV2lkZ2V0R2VvbWV0cnkoCiAgICAgaWYgKCFtX3dpZGdldC0+dHJhbnNmb3Jt
c0FmZmVjdEZyYW1lUmVjdCgpKQogICAgICAgICByZXR1cm4gc2V0V2lkZ2V0R2VvbWV0cnkoYWJz
b2x1dGVDb250ZW50Qm94KCkpOwogCi0gICAgTGF5b3V0UmVjdCBhYnNvbHV0ZUNvbnRlbnRCb3go
bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFF1YWQoY29udGVudEJveCksIFNuYXBPZmZzZXRGb3JU
cmFuc2Zvcm1zKS5ib3VuZGluZ0JveCgpKTsKKyAgICBMYXlvdXRSZWN0IGFic29sdXRlQ29udGVu
dEJveChsb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UXVhZChjb250ZW50Qm94KSkuYm91bmRpbmdC
b3goKSk7CiAgICAgaWYgKG1fd2lkZ2V0LT5pc0ZyYW1lVmlldygpKSB7CiAgICAgICAgIGNvbnRl
bnRCb3guc2V0TG9jYXRpb24oYWJzb2x1dGVDb250ZW50Qm94LmxvY2F0aW9uKCkpOwogICAgICAg
ICByZXR1cm4gc2V0V2lkZ2V0R2VvbWV0cnkoY29udGVudEJveCk7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ZvcmVpZ25PYmplY3QuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9iamVjdC5j
cHAJKHJldmlzaW9uIDEzNzQ4NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHRm9yZWlnbk9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE5Myw5ICsxOTMsOSBA
QCBib29sIFJlbmRlclNWR0ZvcmVpZ25PYmplY3Q6Om5vZGVBdFBvaW50CiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCi12b2lkIFJlbmRlclNWR0ZvcmVpZ25PYmplY3Q6Om1hcExvY2FsVG9Db250YWlu
ZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNm
b3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUsIGJvb2wq
IHdhc0ZpeGVkKSBjb25zdAordm9pZCBSZW5kZXJTVkdGb3JlaWduT2JqZWN0OjptYXBMb2NhbFRv
Q29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIs
IFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFwQ29vcmRpbmF0ZXNGbGFncywgYm9v
bCogd2FzRml4ZWQpIGNvbnN0CiB7Ci0gICAgU1ZHUmVuZGVyU3VwcG9ydDo6bWFwTG9jYWxUb0Nv
bnRhaW5lcih0aGlzLCByZXBhaW50Q29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwgbW9kZSAmIFNu
YXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCB3YXNGaXhlZCk7CisgICAgU1ZHUmVuZGVyU3VwcG9ydDo6
bWFwTG9jYWxUb0NvbnRhaW5lcih0aGlzLCByZXBhaW50Q29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0
ZSwgd2FzRml4ZWQpOwogfQogCiBjb25zdCBSZW5kZXJPYmplY3QqIFJlbmRlclNWR0ZvcmVpZ25P
YmplY3Q6OnB1c2hNYXBwaW5nVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVj
dCogYW5jZXN0b3JUb1N0b3BBdCwgUmVuZGVyR2VvbWV0cnlNYXAmIGdlb21ldHJ5TWFwKSBjb25z
dApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWduT2Jq
ZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdGb3JlaWduT2JqZWN0LmgJKHJldmlzaW9uIDEzNzQ4NikKKysrIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC01
NCw3ICs1NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgbm9kZUF0UG9pbnQoY29uc3Qg
SGl0VGVzdFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgSGl0VGVzdExvY2F0aW9uJiBs
b2NhdGlvbkluQ29udGFpbmVyLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQs
IEhpdFRlc3RBY3Rpb24pIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBpc1NWR0ZvcmVpZ25P
YmplY3QoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgbWFwTG9j
YWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFp
bmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5l
ckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25z
dCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBS
ZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYs
IE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5lckZsaXAsIGJvb2wqIHdhc0ZpeGVk
ID0gMCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBSZW5kZXJPYmplY3QqIHB1
c2hNYXBwaW5nVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0
b3JUb1N0b3BBdCwgUmVuZGVyR2VvbWV0cnlNYXAmKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0
dWFsIHZvaWQgc2V0TmVlZHNUcmFuc2Zvcm1VcGRhdGUoKSB7IG1fbmVlZHNUcmFuc2Zvcm1VcGRh
dGUgPSB0cnVlOyB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHSW5saW5lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR0lubGluZS5jcHAJKHJldmlzaW9uIDEzNzQ4NikKKysrIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzks
OSArNzksOSBAQCB2b2lkIFJlbmRlclNWR0lubGluZTo6Y29tcHV0ZUZsb2F0UmVjdEZvCiAgICAg
U1ZHUmVuZGVyU3VwcG9ydDo6Y29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQodGhpcywgcmVwYWlu
dENvbnRhaW5lciwgcmVwYWludFJlY3QsIGZpeGVkKTsKIH0KIAotdm9pZCBSZW5kZXJTVkdJbmxp
bmU6Om1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVw
YWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBDb29yZGlu
YXRlc0ZsYWdzIG1vZGUsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAordm9pZCBSZW5kZXJTVkdJbmxp
bmU6Om1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVw
YWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBDb29yZGlu
YXRlc0ZsYWdzLCBib29sKiB3YXNGaXhlZCkgY29uc3QKIHsKLSAgICBTVkdSZW5kZXJTdXBwb3J0
OjptYXBMb2NhbFRvQ29udGFpbmVyKHRoaXMsIHJlcGFpbnRDb250YWluZXIsIHRyYW5zZm9ybVN0
YXRlLCBtb2RlICYgU25hcE9mZnNldEZvclRyYW5zZm9ybXMsIHdhc0ZpeGVkKTsKKyAgICBTVkdS
ZW5kZXJTdXBwb3J0OjptYXBMb2NhbFRvQ29udGFpbmVyKHRoaXMsIHJlcGFpbnRDb250YWluZXIs
IHRyYW5zZm9ybVN0YXRlLCB3YXNGaXhlZCk7CiB9CiAKIGNvbnN0IFJlbmRlck9iamVjdCogUmVu
ZGVyU1ZHSW5saW5lOjpwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9k
ZWxPYmplY3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJiBnZW9tZXRyeU1h
cCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5s
aW5lLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdJbmxpbmUuaAkocmV2aXNpb24gMTM3NDg2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdJbmxpbmUuaAkod29ya2luZyBjb3B5KQpAQCAtNDcsNyArNDcsNyBAQCBw
dWJsaWM6CiAKICAgICB2aXJ0dWFsIExheW91dFJlY3QgY2xpcHBlZE92ZXJmbG93UmVjdEZvclJl
cGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lcikgY29u
c3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50
KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIEZsb2F0UmVj
dCYsIGJvb2wgZml4ZWQgPSBmYWxzZSkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lk
IG1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWlu
dENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBDb29yZGluYXRlc0ZsYWdzID0gQXBwbHlD
b250YWluZXJGbGlwIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMsIGJvb2wqIHdhc0ZpeGVkID0g
MCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIo
Y29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3Jt
U3RhdGUmLCBNYXBDb29yZGluYXRlc0ZsYWdzID0gQXBwbHlDb250YWluZXJGbGlwLCBib29sKiB3
YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgUmVuZGVyT2Jq
ZWN0KiBwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3Qq
IGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJikgY29uc3QgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCB2b2lkIGFic29sdXRlUXVhZHMoVmVjdG9yPEZsb2F0UXVhZD4mLCBib29sKiB3
YXNGaXhlZCkgY29uc3Q7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHTW9kZWxPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwCShyZXZpc2lvbiAxMzc0ODYpCisrKyBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNTcsOSArNTcsOSBAQCB2b2lkIFJlbmRlclNWR01vZGVsT2JqZWN0Ojpj
b21wdXRlRmxvYXRSCiAgICAgU1ZHUmVuZGVyU3VwcG9ydDo6Y29tcHV0ZUZsb2F0UmVjdEZvclJl
cGFpbnQodGhpcywgcmVwYWludENvbnRhaW5lciwgcmVwYWludFJlY3QsIGZpeGVkKTsKIH0KIAot
dm9pZCBSZW5kZXJTVkdNb2RlbE9iamVjdDo6bWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5k
ZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJh
bnNmb3JtU3RhdGUsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQpIGNv
bnN0Cit2b2lkIFJlbmRlclNWR01vZGVsT2JqZWN0OjptYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0
IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRl
JiB0cmFuc2Zvcm1TdGF0ZSwgTWFwQ29vcmRpbmF0ZXNGbGFncywgYm9vbCogd2FzRml4ZWQpIGNv
bnN0CiB7Ci0gICAgU1ZHUmVuZGVyU3VwcG9ydDo6bWFwTG9jYWxUb0NvbnRhaW5lcih0aGlzLCBy
ZXBhaW50Q29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwgbW9kZSAmIFNuYXBPZmZzZXRGb3JUcmFu
c2Zvcm1zLCB3YXNGaXhlZCk7CisgICAgU1ZHUmVuZGVyU3VwcG9ydDo6bWFwTG9jYWxUb0NvbnRh
aW5lcih0aGlzLCByZXBhaW50Q29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwgd2FzRml4ZWQpOwog
fQogCiBjb25zdCBSZW5kZXJPYmplY3QqIFJlbmRlclNWR01vZGVsT2JqZWN0OjpwdXNoTWFwcGlu
Z1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGFuY2VzdG9yVG9TdG9w
QXQsIFJlbmRlckdlb21ldHJ5TWFwJiBnZW9tZXRyeU1hcCkgY29uc3QKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmgJKHJl
dmlzaW9uIDEzNzQ4NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
TW9kZWxPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtNTgsNyArNTgsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIGFic29sdXRlUmVjdHMoVmVjdG9yPEludFJlY3Q+JiwgY29uc3QgTGF5
b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0KSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgYWJz
b2x1dGVRdWFkcyhWZWN0b3I8RmxvYXRRdWFkPiYsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdDsKIAot
ICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9k
ZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29vcmRpbmF0
ZXNGbGFncyA9IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBi
b29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBtYXBM
b2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250
YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29vcmRpbmF0ZXNGbGFncyA9IEFwcGx5Q29udGFp
bmVyRmxpcCwgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFs
IGNvbnN0IFJlbmRlck9iamVjdCogcHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJM
YXllck1vZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1hcCYpIGNv
bnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzdHlsZVdpbGxDaGFuZ2UoU3R5bGVEaWZm
ZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSogbmV3U3R5bGUpOwogICAgIHZpcnR1YWwgdm9pZCBz
dHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHls
ZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3Qu
aAkocmV2aXNpb24gMTM3NDg2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdSb290LmgJKHdvcmtpbmcgY29weSkKQEAgLTEwNCw3ICsxMDQsNyBAQCBwcml2YXRlOgog
ICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChjb25z
dCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyKSBjb25zdCBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQoY29uc3QgUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgRmxvYXRSZWN0JiByZXBhaW50
UmVjdCwgYm9vbCBmaXhlZCkgY29uc3QgT1ZFUlJJREU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgbWFw
TG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29u
dGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRh
aW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCogd2FzRml4ZWQgPSAwKSBj
b25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25z
dCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0
ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5lckZsaXAsIGJvb2wqIHdhc0Zp
eGVkID0gMCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBSZW5kZXJPYmplY3Qq
IHB1c2hNYXBwaW5nVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5j
ZXN0b3JUb1N0b3BBdCwgUmVuZGVyR2VvbWV0cnlNYXAmKSBjb25zdCBPVkVSUklERTsKIAogICAg
IHZpcnR1YWwgYm9vbCBjYW5CZVNlbGVjdGlvbkxlYWYoKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQu
Y3BwCShyZXZpc2lvbiAxMzc0ODYpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR1RleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTEsOSArMTExLDkgQEAgdm9pZCBS
ZW5kZXJTVkdUZXh0Ojpjb21wdXRlRmxvYXRSZWN0Rm9yUgogICAgIFNWR1JlbmRlclN1cHBvcnQ6
OmNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50KHRoaXMsIHJlcGFpbnRDb250YWluZXIsIHJlcGFp
bnRSZWN0LCBmaXhlZCk7CiB9CiAKLXZvaWQgUmVuZGVyU1ZHVGV4dDo6bWFwTG9jYWxUb0NvbnRh
aW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFu
c2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwgYm9v
bCogd2FzRml4ZWQpIGNvbnN0Cit2b2lkIFJlbmRlclNWR1RleHQ6Om1hcExvY2FsVG9Db250YWlu
ZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNm
b3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBDb29yZGluYXRlc0ZsYWdzLCBib29sKiB3YXNG
aXhlZCkgY29uc3QKIHsKLSAgICBTVkdSZW5kZXJTdXBwb3J0OjptYXBMb2NhbFRvQ29udGFpbmVy
KHRoaXMsIHJlcGFpbnRDb250YWluZXIsIHRyYW5zZm9ybVN0YXRlLCBtb2RlICYgU25hcE9mZnNl
dEZvclRyYW5zZm9ybXMsIHdhc0ZpeGVkKTsKKyAgICBTVkdSZW5kZXJTdXBwb3J0OjptYXBMb2Nh
bFRvQ29udGFpbmVyKHRoaXMsIHJlcGFpbnRDb250YWluZXIsIHRyYW5zZm9ybVN0YXRlLCB3YXNG
aXhlZCk7CiB9CiAKIGNvbnN0IFJlbmRlck9iamVjdCogUmVuZGVyU1ZHVGV4dDo6cHVzaE1hcHBp
bmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBhbmNlc3RvclRvU3Rv
cEF0LCBSZW5kZXJHZW9tZXRyeU1hcCYgZ2VvbWV0cnlNYXApIGNvbnN0CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuaAkocmV2aXNpb24gMTM3NDg2
KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmgJKHdvcmtp
bmcgY29weSkKQEAgLTc1LDcgKzc1LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgY29t
cHV0ZVJlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRD
b250YWluZXIsIExheW91dFJlY3QmLCBib29sIGZpeGVkID0gZmFsc2UpIGNvbnN0IE9WRVJSSURF
OwogICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlRmxvYXRSZWN0Rm9yUmVwYWludChjb25zdCBSZW5k
ZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBGbG9hdFJlY3QmLCBib29sIGZp
eGVkID0gZmFsc2UpIGNvbnN0IE9WRVJSSURFOwogCi0gICAgdmlydHVhbCB2b2lkIG1hcExvY2Fs
VG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5l
ciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBDb29yZGluYXRlc0ZsYWdzID0gQXBwbHlDb250YWluZXJG
bGlwIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3Qg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBN
YXBDb29yZGluYXRlc0ZsYWdzID0gQXBwbHlDb250YWluZXJGbGlwLCBib29sKiB3YXNGaXhlZCA9
IDApIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgUmVuZGVyT2JqZWN0KiBwdXNo
TWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGFuY2VzdG9y
VG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCB2b2lkIGFkZENoaWxkKFJlbmRlck9iamVjdCogY2hpbGQsIFJlbmRlck9iamVjdCogYmVmb3Jl
Q2hpbGQgPSAwKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlQ2hpbGQoUmVuZGVyT2JqZWN0Kikg
T1ZFUlJJREU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1
cHBvcnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZH
UmVuZGVyU3VwcG9ydC5jcHAJKHJldmlzaW9uIDEzNzQ4NikKKysrIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg0LDcg
Kzg0LDcgQEAgdm9pZCBTVkdSZW5kZXJTdXBwb3J0Ojpjb21wdXRlRmxvYXRSZWN0RgogICAgIG9i
amVjdC0+cGFyZW50KCktPmNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50KHJlcGFpbnRDb250YWlu
ZXIsIHJlcGFpbnRSZWN0LCBmaXhlZCk7CiB9CiAKLXZvaWQgU1ZHUmVuZGVyU3VwcG9ydDo6bWFw
TG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5z
Zm9ybVN0YXRlLCBib29sIHNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCkK
K3ZvaWQgU1ZHUmVuZGVyU3VwcG9ydDo6bWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJP
YmplY3QqIG9iamVjdCwgY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRh
aW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBib29sKiB3YXNGaXhlZCkKIHsK
ICAgICB0cmFuc2Zvcm1TdGF0ZS5hcHBseVRyYW5zZm9ybShvYmplY3QtPmxvY2FsVG9QYXJlbnRU
cmFuc2Zvcm0oKSk7CiAKQEAgLTk3LDggKzk3LDYgQEAgdm9pZCBTVkdSZW5kZXJTdXBwb3J0Ojpt
YXBMb2NhbFRvQ29udGFpbgogICAgICAgICB0cmFuc2Zvcm1TdGF0ZS5hcHBseVRyYW5zZm9ybSh0
b1JlbmRlclNWR1Jvb3QocGFyZW50KS0+bG9jYWxUb0JvcmRlckJveFRyYW5zZm9ybSgpKTsKIAog
ICAgIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSA9IFVzZVRyYW5zZm9ybXM7Ci0gICAgaWYgKHNu
YXBPZmZzZXRGb3JUcmFuc2Zvcm1zKQotICAgICAgICBtb2RlIHw9IFNuYXBPZmZzZXRGb3JUcmFu
c2Zvcm1zOwogICAgIHBhcmVudC0+bWFwTG9jYWxUb0NvbnRhaW5lcihyZXBhaW50Q29udGFpbmVy
LCB0cmFuc2Zvcm1TdGF0ZSwgbW9kZSwgd2FzRml4ZWQpOwogfQogCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuaAkocmV2aXNpb24gMTM3
NDg2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTY4LDcgKzY4LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBGbG9h
dFJlY3QgcmVwYWludFJlY3RGb3JSZW5kZXJlckluTG9jYWxDb29yZGluYXRlc0V4Y2x1ZGluZ1NW
R1NoYWRvdyhjb25zdCBSZW5kZXJPYmplY3QqKTsKICAgICBzdGF0aWMgTGF5b3V0UmVjdCBjbGlw
cGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJPYmplY3QqLCBjb25zdCBSZW5k
ZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyKTsKICAgICBzdGF0aWMgdm9pZCBj
b21wdXRlRmxvYXRSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJPYmplY3QqLCBjb25zdCBSZW5k
ZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBGbG9hdFJlY3QmLCBib29sIGZp
eGVkKTsKLSAgICBzdGF0aWMgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlck9i
amVjdCosIGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRy
YW5zZm9ybVN0YXRlJiwgYm9vbCBzbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcyA9IHRydWUsIGJvb2wq
IHdhc0ZpeGVkID0gMCk7CisgICAgc3RhdGljIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25z
dCBSZW5kZXJPYmplY3QqLCBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29u
dGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIGJvb2wqIHdhc0ZpeGVkID0gMCk7CiAgICAgc3RhdGlj
IGNvbnN0IFJlbmRlck9iamVjdCogcHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJP
YmplY3QqLCBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBS
ZW5kZXJHZW9tZXRyeU1hcCYpOwogICAgIHN0YXRpYyBib29sIGNoZWNrRm9yU1ZHUmVwYWludER1
cmluZ0xheW91dChSZW5kZXJPYmplY3QqKTsKIApJbmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gMTM3
NjI5KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTUgQEAKKzIwMTItMTItMTMgIExldmkgV2VpbnRyYXViICA8bGV2aXdAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFB1c2ggcGl4ZWwgc25hcHBpbmcgbG9naWMgaW50byBUcmFuc2Zvcm1TdGF0
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxNzc5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRWxpbWlu
YXRpbmcgdXNlIG9mIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zIGFzIGl0J3Mgbm8gbG9uZ2VyIG5l
ZWRlZC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFu
YWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OnNjcmVlblJlY3RPZkNvbnRlbnRzKToKKwogMjAx
Mi0xMi0xMyAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAg
IFJlbW92ZSB1bnVzZWQgaW5pdGlhdGluZ1BhZ2UgcGFyYW1ldGVyIGZyb20gZG93bmxvYWQgb2Jq
ZWN0cwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxT
Y3JlZW5NYW5hZ2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIuY3BwCShyZXZpc2lvbiAxMzc0ODYpCisr
KyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFn
ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Miw3ICs1Miw3IEBAIHN0YXRpYyBJbnRSZWN0IHNj
cmVlblJlY3RPZkNvbnRlbnRzKEVsZW0KICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
CiAgICAgaWYgKGVsZW1lbnQtPnJlbmRlcmVyKCkgJiYgZWxlbWVudC0+cmVuZGVyZXIoKS0+aGFz
TGF5ZXIoKSAmJiBlbGVtZW50LT5yZW5kZXJlcigpLT5lbmNsb3NpbmdMYXllcigpLT5pc0NvbXBv
c2l0ZWQoKSkgewogICAgICAgICBGbG9hdFF1YWQgY29udGVudHNCb3ggPSBzdGF0aWNfY2FzdDxG
bG9hdFJlY3Q+KGVsZW1lbnQtPnJlbmRlcmVyKCktPmVuY2xvc2luZ0xheWVyKCktPmJhY2tpbmco
KS0+Y29udGVudHNCb3goKSk7Ci0gICAgICAgIGNvbnRlbnRzQm94ID0gZWxlbWVudC0+cmVuZGVy
ZXIoKS0+bG9jYWxUb0Fic29sdXRlUXVhZChjb250ZW50c0JveCwgU25hcE9mZnNldEZvclRyYW5z
Zm9ybXMpOworICAgICAgICBjb250ZW50c0JveCA9IGVsZW1lbnQtPnJlbmRlcmVyKCktPmxvY2Fs
VG9BYnNvbHV0ZVF1YWQoY29udGVudHNCb3gpOwogICAgICAgICByZXR1cm4gZWxlbWVudC0+cmVu
ZGVyZXIoKS0+dmlldygpLT5mcmFtZVZpZXcoKS0+Y29udGVudHNUb1NjcmVlbihjb250ZW50c0Jv
eC5lbmNsb3NpbmdCb3VuZGluZ0JveCgpKTsKICAgICB9CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiAxMzc2MjkpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDEyLTEyLTEz
ICBMZXZpIFdlaW50cmF1YiAgPGxldml3QGNocm9taXVtLm9yZz4KKworICAgICAgICBQdXNoIHBp
eGVsIHNuYXBwaW5nIGxvZ2ljIGludG8gVHJhbnNmb3JtU3RhdGUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTc3OQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEVsaW1pbmF0aW5nIHVzZSBvZiBTbmFwT2Zm
c2V0Rm9yVHJhbnNmb3JtcyBhcyBpdCdzIG5vIGxvbmdlciBuZWVkZWQuCisKKyAgICAgICAgKiBz
cmMvRmluZEluUGFnZUNvb3JkaW5hdGVzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6dG9Ob3JtYWxp
emVkUmVjdCk6CisgICAgICAgICogc3JjL0xpbmtIaWdobGlnaHQuY3BwOgorICAgICAgICAoV2Vi
S2l0Ojpjb252ZXJ0VGFyZ2V0U3BhY2VRdWFkVG9Db21wb3NpdGVkTGF5ZXIpOgorICAgICAgICAq
IHNyYy9XZWJJbnB1dEV2ZW50Q29udmVyc2lvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OmNvbnZl
cnRBYnNvbHV0ZUxvY2F0aW9uRm9yUmVuZGVyT2JqZWN0KToKKyAgICAgICAgKiBzcmMvV2ViUGx1
Z2luQ29udGFpbmVySW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBsdWdpbkNvbnRhaW5l
ckltcGw6OndpbmRvd1RvTG9jYWxQb2ludCk6CisKIDIwMTItMTItMTMgIFl1c3VmIE96dXlzYWwg
IDx5dXN1Zm9AZ29vZ2xlLmNvbT4KIAogICAgICAgICBDaGVjayB3aGV0aGVyIGEgdG91Y2hEb3du
IGxhbmRzIG9uIGEgcmVnaXN0ZXJlZCB0b3VjaCBldmVudCBoYW5kbGVyIGZyb20gdGhlIGNvbXBv
c2l0b3IKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0ZpbmRJblBhZ2VDb29yZGlu
YXRlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRmluZElu
UGFnZUNvb3JkaW5hdGVzLmNwcAkocmV2aXNpb24gMTM3NDg2KQorKysgU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvRmluZEluUGFnZUNvb3JkaW5hdGVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NjcsNyArNjcsNyBAQCBzdGF0aWMgRmxvYXRSZWN0IHRvTm9ybWFsaXplZFJlY3QoY29uc3QgCiAg
ICAgICAgIHNjcm9sbGVkT3JpZ2luID0gLUludFBvaW50KGNvbnRhaW5lci0+c2Nyb2xsZWRDb250
ZW50T2Zmc2V0KCkpOwogCiAgICAgRmxvYXRSZWN0IG92ZXJmbG93UmVjdChzY3JvbGxlZE9yaWdp
biwgY29udGFpbmVyLT5tYXhMYXlvdXRPdmVyZmxvdygpKTsKLSAgICBGbG9hdFJlY3QgY29udGFp
bmVyUmVjdCA9IGNvbnRhaW5lci0+bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFF1YWQob3ZlcmZs
b3dSZWN0KSwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpLmVuY2xvc2luZ0JvdW5kaW5nQm94KCk7
CisgICAgRmxvYXRSZWN0IGNvbnRhaW5lclJlY3QgPSBjb250YWluZXItPmxvY2FsVG9BYnNvbHV0
ZVF1YWQoRmxvYXRRdWFkKG92ZXJmbG93UmVjdCkpLmVuY2xvc2luZ0JvdW5kaW5nQm94KCk7CiAK
ICAgICBpZiAoY29udGFpbmVyUmVjdC5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBGbG9hdFJl
Y3QoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0xpbmtIaWdobGlnaHQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0xpbmtIaWdobGlnaHQu
Y3BwCShyZXZpc2lvbiAxMzc0ODYpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9MaW5r
SGlnaGxpZ2h0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTYxLDcgKzE2MSw3IEBAIHN0YXRpYyB2
b2lkIGNvbnZlcnRUYXJnZXRTcGFjZVF1YWRUb0NvbXAKIAogICAgICAgICBwb2ludCA9IHRhcmdl
dFJlbmRlcmVyLT5mcmFtZSgpLT52aWV3KCktPmNvbnRlbnRzVG9XaW5kb3cocG9pbnQpOwogICAg
ICAgICBwb2ludCA9IGNvbXBvc2l0ZWRSZW5kZXJlci0+ZnJhbWUoKS0+dmlldygpLT53aW5kb3dU
b0NvbnRlbnRzKHBvaW50KTsKLSAgICAgICAgRmxvYXRQb2ludCBmbG9hdFBvaW50ID0gY29tcG9z
aXRlZFJlbmRlcmVyLT5hYnNvbHV0ZVRvTG9jYWwocG9pbnQsIFVzZVRyYW5zZm9ybXMgfCBTbmFw
T2Zmc2V0Rm9yVHJhbnNmb3Jtcyk7CisgICAgICAgIEZsb2F0UG9pbnQgZmxvYXRQb2ludCA9IGNv
bXBvc2l0ZWRSZW5kZXJlci0+YWJzb2x1dGVUb0xvY2FsKHBvaW50LCBVc2VUcmFuc2Zvcm1zKTsK
IAogICAgICAgICBzd2l0Y2ggKGkpIHsKICAgICAgICAgY2FzZSAwOiBjb21wb3NpdGVkU3BhY2VR
dWFkLnNldFAxKGZsb2F0UG9pbnQpOyBicmVhazsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYklucHV0RXZlbnRDb252ZXJzaW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbnB1dEV2ZW50Q29udmVyc2lvbi5jcHAJKHJldmlzaW9u
IDEzNzQ4NikKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklucHV0RXZlbnRDb252
ZXJzaW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDA0LDcgKzQwNCw3IEBAIHN0YXRpYyBpbnQg
Z2V0V2ViSW5wdXRNb2RpZmllcnMoY29uc3QgVUkKIAogc3RhdGljIEludFBvaW50IGNvbnZlcnRB
YnNvbHV0ZUxvY2F0aW9uRm9yUmVuZGVyT2JqZWN0KGNvbnN0IExheW91dFBvaW50JiBsb2NhdGlv
biwgY29uc3QgV2ViQ29yZTo6UmVuZGVyT2JqZWN0JiByZW5kZXJPYmplY3QpCiB7Ci0gICAgcmV0
dXJuIHJvdW5kZWRJbnRQb2ludChyZW5kZXJPYmplY3QuYWJzb2x1dGVUb0xvY2FsKGxvY2F0aW9u
LCBVc2VUcmFuc2Zvcm1zIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpKTsKKyAgICByZXR1cm4g
cm91bmRlZEludFBvaW50KHJlbmRlck9iamVjdC5hYnNvbHV0ZVRvTG9jYWwobG9jYXRpb24sIFVz
ZVRyYW5zZm9ybXMpKTsKIH0KIAogc3RhdGljIHZvaWQgdXBkYXRlV2ViTW91c2VFdmVudEZyb21X
ZWJDb3JlTW91c2VFdmVudChjb25zdCBNb3VzZVJlbGF0ZWRFdmVudCYgZXZlbnQsIGNvbnN0IFdp
ZGdldCYgd2lkZ2V0LCBjb25zdCBXZWJDb3JlOjpSZW5kZXJPYmplY3QmIHJlbmRlck9iamVjdCwg
V2ViTW91c2VFdmVudCYgd2ViRXZlbnQpCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmNwcAkocmV2aXNpb24gMTM3NDg2
KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTU1NCw3ICs1NTQsNyBAQCBXZWJQb2ludCBXZWJQbHVnaW5D
b250YWluZXJJbXBsOjp3aW5kb3dUCiAgICAgaWYgKCF2aWV3KQogICAgICAgICByZXR1cm4gcG9p
bnQ7CiAgICAgV2ViUG9pbnQgd2luZG93UG9pbnQgPSB2aWV3LT53aW5kb3dUb0NvbnRlbnRzKHBv
aW50KTsKLSAgICByZXR1cm4gcm91bmRlZEludFBvaW50KG1fZWxlbWVudC0+cmVuZGVyZXIoKS0+
YWJzb2x1dGVUb0xvY2FsKExheW91dFBvaW50KHdpbmRvd1BvaW50KSwgVXNlVHJhbnNmb3JtcyB8
IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKSk7CisgICAgcmV0dXJuIHJvdW5kZWRJbnRQb2ludCht
X2VsZW1lbnQtPnJlbmRlcmVyKCktPmFic29sdXRlVG9Mb2NhbChMYXlvdXRQb2ludCh3aW5kb3dQ
b2ludCksIFVzZVRyYW5zZm9ybXMpKTsKIH0KIAogdm9pZCBXZWJQbHVnaW5Db250YWluZXJJbXBs
OjpkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCklu
ZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxMzc2MjkpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSwyMyBAQAorMjAxMi0xMi0xMyAgTGV2aSBXZWludHJhdWIgIDxs
ZXZpd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUHVzaCBwaXhlbCBzbmFwcGluZyBsb2dpYyBp
bnRvIFRyYW5zZm9ybVN0YXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDE3NzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy93ZWJraXRDb252ZXJ0UG9pbnQuaHRtbDogVXBk
YXRpbmcgdmFsdWVzIHRvIG1hdGNoIGNvcnJlY3RlZCBwaXhlbCBzbmFwcGluZy4KKyAgICAgICAg
KiBmYXN0L211bHRpY29sL2JyZWFrLXByb3BlcnRpZXMuaHRtbDogRml4aW5nIHN1Yi1waXhlbCBs
YXlvdXQgZmVhdHVyZSBjaGVja2luZy4KKyAgICAgICAgKiBmYXN0L211bHRpY29sL3ZlcnRpY2Fs
LWxyL2JyZWFrLXByb3BlcnRpZXMuaHRtbDogRGl0dG8uCisgICAgICAgICogZmFzdC9tdWx0aWNv
bC92ZXJ0aWNhbC1ybC9icmVhay1wcm9wZXJ0aWVzLmh0bWw6IERpdHRvLgorICAgICAgICAqIGZh
c3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1pZnJhbWUtY29weS1vbi1zY3JvbGwuaHRtbDogVXBkYXRp
bmcgdG8gY2F0Y2ggdGhlIGJ1ZyB3aGVyZSB0aGUgb2xkCisgICAgICAgIHBpeGVsIHNuYXBwaW5n
IGxvZ2ljIGRpZCB0aGUgd3JvbmcgdGhpbmcgd2hlbiBuZXN0ZWQuCisgICAgICAgICogZmFzdC9z
dWItcGl4ZWwvdHJhbnNmb3JtZWQtaWZyYW1lLWNvcHktb24tc2Nyb2xsLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2Zhc3Qvc3ViLXBpeGVsL3N1Yi1waXhl
bC1pZnJhbWUtY29weS1vbi1zY3JvbGwtZXhwZWN0ZWQucG5nOgorICAgICAgICAqIHBsYXRmb3Jt
L2Nocm9taXVtLWxpbnV4L2Zhc3Qvc3ViLXBpeGVsL3RyYW5zZm9ybWVkLWlmcmFtZS1jb3B5LW9u
LXNjcm9sbC1leHBlY3RlZC5wbmc6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVt
LWxpbnV4L2Zhc3Qvc3ViLXBpeGVsL3RyYW5zZm9ybWVkLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9mYXN0
L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDEyLTEy
LTEzICBKb2FubWFyaWUgRGlnZ3MgIDxqZGlnZ3NAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RL
XSBhY2Nlc3NpYmlsdGl5L2FyaWEtaGlkZGVuLmh0bWwgaXMgZmFpbGluZwpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9kb20vV2luZG93L3dlYmtpdENvbnZlcnRQb2ludC5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93ZWJraXRDb252ZXJ0UG9pbnQuaHRtbAko
cmV2aXNpb24gMTM3NDg2KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dlYmtpdENv
bnZlcnRQb2ludC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xNDUsOCArMTQ1LDggQEAKICAgICAg
ICAgICAgICAgICBydW5UZXN0KCJUZXN0IDgiLCAgInRlc3Q4IiwgIDgsIDI3MywgMTMsIDMxMyk7
CiAgICAgICAgICAgICAgICAgcnVuVGVzdCgiVGVzdCA5IiwgICJ0ZXN0OSIsICAyOCwgMjkxLCAz
MywgMzMxKTsKICAgICAgICAgICAgICAgICBydW5UZXN0KCJUZXN0IDEwIiwgInRlc3QxMCIsIDI4
LCAzMDksIDMzLCAzNDkpOwotICAgICAgICAgICAgICAgIHJ1blRlc3QoIlRlc3QgMTEiLCAidGVz
dDExIiwgMTU4LCAzNTUsIDE3NCwgMzczKTsKLSAgICAgICAgICAgICAgICBydW5UZXN0KCJUZXN0
IDEyIiwgInRlc3QxMiIsIDE2OCwgNDI4LCAxODQsIDQ0Nik7CisgICAgICAgICAgICAgICAgcnVu
VGVzdCgiVGVzdCAxMSIsICJ0ZXN0MTEiLCAxNTgsIDM1NiwgMTc0LCAzNzQpOworICAgICAgICAg
ICAgICAgIHJ1blRlc3QoIlRlc3QgMTIiLCAidGVzdDEyIiwgMTY4LCA0MjksIDE4NCwgNDQ3KTsK
ICAgICAgICAgICAgICAgICBydW5UZXN0KCJUZXN0IDEzIiwgInRlc3QxMyIsIDI4LCA0ODcsIDMz
LCA1MjcpOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBydW5UZXN0KCJU
ZXN0IDEiLCAgInRlc3QxIiwgIDgsIDEyLCAxMywgNTIpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9tdWx0aWNvbC9icmVhay1wcm9wZXJ0aWVzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9tdWx0aWNvbC9icmVhay1wcm9wZXJ0aWVzLmh0bWwJKHJldmlzaW9uIDEzNzQ4NikK
KysrIExheW91dFRlc3RzL2Zhc3QvbXVsdGljb2wvYnJlYWstcHJvcGVydGllcy5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMCw2ICsxMCw3IEBACiAgICAgPGRpdiBjbGFzcz0ic2hvcnRlciBib3gi
IHN0eWxlPSItd2Via2l0LWNvbHVtbi1icmVhay1hZnRlcjogYWx3YXlzOyI+PC9kaXY+CiAgICAg
PGRpdiBpZD0iYWZ0ZXItYnJlYWsiIGNsYXNzPSJzaG9ydGVyIGJveCI+PC9kaXY+CiAgICAgPGRp
diBpZD0ibm8tYnJlYWsiIGNsYXNzPSJzaG9ydGVyIGJveCIgc3R5bGU9Ii13ZWJraXQtY29sdW1u
LWJyZWFrLWluc2lkZTogYXZvaWQ7Ij48L2Rpdj4KKyAgICA8ZGl2IGlkPSJzdWJQaXhlbFRlc3Qi
IHN0eWxlPSJ3aWR0aDoxMC41cHgiPjwvZGl2PgogPC9kaXY+CiA8cHJlIGlkPSJjb25zb2xlIj48
L3ByZT4KIDxzY3JpcHQ+CkBAIC0zMCw4ICszMSw4IEBACiAgICAgICAgICAgICBsb2coIkZBSUw6
ICciICsgaWQgKyAiJyBpcyBhdCAoIiArIE1hdGgucm91bmQocmVjdC5sZWZ0KSArICIsICIgKyBN
YXRoLnJvdW5kKHJlY3QudG9wKSArICIpIGluc3RlYWQgb2YgKCIgKyBleHBlY3RlZExlZnQgKyAi
ICwiICsgZXhwZWN0ZWRUb3AgKyAiKSIpOwogICAgIH0KIAotICAgIHZhciByZWN0ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2JyZWFrLWJlZm9yZScpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgp
OwotICAgIHZhciBoYXNTdWJwaXhlbFN1cHBvcnQgPSBNYXRoLnJvdW5kKHJlY3QubGVmdCkgIT0g
cmVjdC5sZWZ0OworICAgIHZhciByZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N1YlBp
eGVsVGVzdCcpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAgIHZhciBoYXNTdWJwaXhlbFN1
cHBvcnQgPSBNYXRoLnJvdW5kKHJlY3QucmlnaHQpICE9IHJlY3QucmlnaHQ7CiAKICAgICB0ZXN0
Qm94UG9zaXRpb24oImJyZWFrLWJlZm9yZSIsIGhhc1N1YnBpeGVsU3VwcG9ydCA/IDIyMCA6IDIx
OCwgOCk7CiAgICAgdGVzdEJveFBvc2l0aW9uKCJhZnRlci1icmVhayIsIGhhc1N1YnBpeGVsU3Vw
cG9ydCA/IDQzMSA6IDQyOCwgOCk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L211bHRpY29sL3Zl
cnRpY2FsLWxyL2JyZWFrLXByb3BlcnRpZXMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L211bHRpY29sL3ZlcnRpY2FsLWxyL2JyZWFrLXByb3BlcnRpZXMuaHRtbAkocmV2aXNp
b24gMTM3NDg2KQorKysgTGF5b3V0VGVzdHMvZmFzdC9tdWx0aWNvbC92ZXJ0aWNhbC1sci9icmVh
ay1wcm9wZXJ0aWVzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTExLDYgKzExLDcgQEAKICAgICA8
ZGl2IGNsYXNzPSJzaG9ydGVyIGJveCIgc3R5bGU9Ii13ZWJraXQtY29sdW1uLWJyZWFrLWFmdGVy
OiBhbHdheXM7Ij48L2Rpdj4KICAgICA8ZGl2IGlkPSJhZnRlci1icmVhayIgY2xhc3M9InNob3J0
ZXIgYm94Ij48L2Rpdj4KICAgICA8ZGl2IGlkPSJuby1icmVhayIgY2xhc3M9InNob3J0ZXIgYm94
IiBzdHlsZT0iLXdlYmtpdC1jb2x1bW4tYnJlYWstaW5zaWRlOiBhdm9pZDsiPjwvZGl2PgorICAg
IDxkaXYgaWQ9InN1YlBpeGVsVGVzdCIgc3R5bGU9IndpZHRoOjEwLjVweCI+PC9kaXY+CiA8L2Rp
dj4KIDxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgogPHNjcmlwdD4KQEAgLTMxLDggKzMyLDggQEAK
ICAgICAgICAgICAgIGxvZygiRkFJTDogJyIgKyBpZCArICInIGlzIGF0ICgiICsgTWF0aC5yb3Vu
ZChyZWN0LmxlZnQpICsgIiwgIiArIE1hdGgucm91bmQocmVjdC50b3ApICsgIikgaW5zdGVhZCBv
ZiAoIiArIGV4cGVjdGVkTGVmdCArICIgLCIgKyBleHBlY3RlZFRvcCArICIpIik7CiAgICAgfQog
Ci0gICAgdmFyIHJlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnJlYWstYmVmb3JlJyku
Z2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Ci0gICAgdmFyIGhhc1N1YnBpeGVsU3VwcG9ydCA9IE1h
dGgucm91bmQocmVjdC50b3ApICE9IHJlY3QudG9wOworICAgIHZhciByZWN0ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3N1YlBpeGVsVGVzdCcpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwor
ICAgIHZhciBoYXNTdWJwaXhlbFN1cHBvcnQgPSBNYXRoLnJvdW5kKHJlY3QuYm90dG9tKSAhPSBy
ZWN0LmJvdHRvbTsKIAogICAgIHRlc3RCb3hQb3NpdGlvbigiYnJlYWstYmVmb3JlIiwgOCwgaGFz
U3VicGl4ZWxTdXBwb3J0ID8gMjIwIDogMjE4KTsKICAgICB0ZXN0Qm94UG9zaXRpb24oImFmdGVy
LWJyZWFrIiwgOCwgaGFzU3VicGl4ZWxTdXBwb3J0ID8gNDMxIDogNDI4KTsKSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvbXVsdGljb2wvdmVydGljYWwtcmwvYnJlYWstcHJvcGVydGllcy5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbXVsdGljb2wvdmVydGljYWwtcmwvYnJlYWst
cHJvcGVydGllcy5odG1sCShyZXZpc2lvbiAxMzc0ODYpCisrKyBMYXlvdXRUZXN0cy9mYXN0L211
bHRpY29sL3ZlcnRpY2FsLXJsL2JyZWFrLXByb3BlcnRpZXMuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMTQsNiArMTQsNyBAQAogICAgIDxkaXYgY2xhc3M9InNob3J0ZXIgYm94IiBzdHlsZT0iLXdl
YmtpdC1jb2x1bW4tYnJlYWstYWZ0ZXI6IGFsd2F5czsiPjwvZGl2PgogICAgIDxkaXYgaWQ9ImFm
dGVyLWJyZWFrIiBjbGFzcz0ic2hvcnRlciBib3giPjwvZGl2PgogICAgIDxkaXYgaWQ9Im5vLWJy
ZWFrIiBjbGFzcz0ic2hvcnRlciBib3giIHN0eWxlPSItd2Via2l0LWNvbHVtbi1icmVhay1pbnNp
ZGU6IGF2b2lkOyI+PC9kaXY+CisgICAgPGRpdiBpZD0ic3ViUGl4ZWxUZXN0IiBzdHlsZT0id2lk
dGg6MTAuNXB4Ij48L2Rpdj4KIDwvZGl2PgogPHByZSBpZD0iY29uc29sZSI+PC9wcmU+CiA8c2Ny
aXB0PgpAQCAtMzQsOCArMzUsOCBAQAogICAgICAgICAgICAgbG9nKCJGQUlMOiAnIiArIGlkICsg
IicgaXMgYXQgKCIgKyBNYXRoLnJvdW5kKHJlY3QubGVmdCkgKyAiLCAiICsgTWF0aC5yb3VuZChy
ZWN0LnRvcCkgKyAiKSBpbnN0ZWFkIG9mICgiICsgZXhwZWN0ZWRMZWZ0ICsgIiAsIiArIGV4cGVj
dGVkVG9wICsgIikiKTsKICAgICB9CiAKLSAgICB2YXIgcmVjdCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdicmVhay1iZWZvcmUnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKLSAgICB2YXIg
aGFzU3VicGl4ZWxTdXBwb3J0ID0gTWF0aC5yb3VuZChyZWN0LnRvcCkgIT0gcmVjdC50b3A7Cisg
ICAgdmFyIHJlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3ViUGl4ZWxUZXN0JykuZ2V0
Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgICAgdmFyIGhhc1N1YnBpeGVsU3VwcG9ydCA9IE1hdGgu
cm91bmQocmVjdC5ib3R0b20pICE9IHJlY3QuYm90dG9tOwogCiAgICAgdGVzdEJveFBvc2l0aW9u
KCJicmVhay1iZWZvcmUiLCA3NDgsIGhhc1N1YnBpeGVsU3VwcG9ydCA/IDIyMCA6IDIxOCk7CiAg
ICAgdGVzdEJveFBvc2l0aW9uKCJhZnRlci1icmVhayIsIDc0OCwgaGFzU3VicGl4ZWxTdXBwb3J0
ID8gNDMxIDogNDI4KTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qvc3ViLXBpeGVsL3N1Yi1waXhl
bC1pZnJhbWUtY29weS1vbi1zY3JvbGwuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLmh0bWwJKHJldmlz
aW9uIDEzNzQ4NikKKysrIExheW91dFRlc3RzL2Zhc3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1pZnJh
bWUtY29weS1vbi1zY3JvbGwuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMiwxMCArMiwxMiBAQAog
PGh0bWw+CiA8aGVhZD4KIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+Cisu
c3VicGl4ZWxQdXNoZXIgeworICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICB0b3A6IDAuNHB4
OworfQogLmNvbnRhaW5lciB7Ci0gICAgcG9zaXRpb246IGFic29sdXRlOwotICAgIHBhZGRpbmc6
IDEwLjNweDsKLSAgICB6LWluZGV4OiAxOworICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKIH0K
IDwvc3R5bGU+CiA8c2NyaXB0IHNyYz0iLi4vcmVwYWludC9yZXNvdXJjZXMvcmVwYWludC5qcyIg
dHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KQEAgLTEzLDI2ICsxNSw0MyBAQAogaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQogICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKIAotZnVu
Y3Rpb24gc2V0dXBJZnJhbWUoKSB7Ci0gIHZhciBzdWJEb2N1bWVudCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdpZnJhbWUnKS5jb250ZW50V2luZG93LmRvY3VtZW50OwotICBzdWJEb2N1bWVu
dC5vcGVuKCd0ZXh0L2h0bWwnLCAncmVwbGFjZScpOwotICBzdWJEb2N1bWVudC53cml0ZSgiPCFE
T0NUWVBFIGh0bWw+XG48aHRtbD48Ym9keSBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6IHNpbHZl
cjtoZWlnaHQ6IDEwMDBweDtcIj48L2JvZHk+IikKLSAgc3ViRG9jdW1lbnQuY2xvc2UoKTsKK2Z1
bmN0aW9uIHNldHVwSWZyYW1lcygpIHsKKyAgc2V0dXBJZnJhbWUoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2lmcmFtZTEnKS5jb250ZW50V2luZG93LmRvY3VtZW50KTsKKyAgc2V0dXBJZnJhbWUo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lmcmFtZTInKS5jb250ZW50V2luZG93LmRvY3VtZW50
KTsKKyAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lmcmFtZTEnKS5jb250ZW50V2luZG93LnNj
cm9sbFRvKDAsIDEwKTsKK30KKworZnVuY3Rpb24gc2V0dXBJZnJhbWUoaWZyYW1lKSB7CisgIGlm
cmFtZS5vcGVuKCd0ZXh0L2h0bWwnLCAncmVwbGFjZScpOworICBpZnJhbWUud3JpdGUoIjwhRE9D
VFlQRSBodG1sPlxuPGh0bWw+PGJvZHkgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiBzaWx2ZXI7
aGVpZ2h0OiAxMDAwcHg7XCI+PC9ib2R5PiIpOworICBpZnJhbWUuY2xvc2UoKTsKIH0KIAogZnVu
Y3Rpb24gcmVwYWludFRlc3QoKSB7Ci0gIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpZnJhbWUn
KS5jb250ZW50V2luZG93LnNjcm9sbFRvKDAsIDEwKTsKKyAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2lmcmFtZTEnKS5jb250ZW50V2luZG93LnNjcm9sbFRvKDAsIDApOworICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnaWZyYW1lMicpLmNvbnRlbnRXaW5kb3cuc2Nyb2xsVG8oMCwgMTApOwog
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpCiAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiB9
CiA8L3NjcmlwdD4KIDwvaGVhZD4KLTxib2R5IG9ubG9hZD0ic2V0dXBJZnJhbWUoKTtydW5SZXBh
aW50VGVzdCgpIj4KLSAgPHA+VGhlIGlmcmFtZSBiZWxvdyBzaG91bGQgcmVtYWluIGdyZXkgd2hl
biBzY3JvbGxpbmcuPC9wPgotICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgotICAgIDxpZnJhbWUg
aWQ9ImlmcmFtZSIgIHN0eWxlPSJ3aWR0aDogMzAwcHg7IGhlaWdodDogMjAwcHg7Ij48L2lmcmFt
ZT4KKzxib2R5IG9ubG9hZD0ic2V0dXBJZnJhbWVzKCk7cnVuUmVwYWludFRlc3QoKSI+CisgIDxw
PlRoZSBpZnJhbWVzIGJlbG93IHNob3VsZCByZW1haW4gZ3JleSB3aXRoIG5vIHJlcGFpbnQgYXJ0
aWZhY3RzIHdoZW4gc2Nyb2xsaW5nLjwvcD4KKyAgPGRpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250
YWluZXIiPgorICAgICAgPGRpdiBjbGFzcz0ic3VicGl4ZWxQdXNoZXIiPgorICAgICAgICA8ZGl2
IGNsYXNzPSJzdWJwaXhlbFB1c2hlciI+CisgICAgICAgIDxpZnJhbWUgaWQ9ImlmcmFtZTEiICBz
dHlsZT0id2lkdGg6IDE1MHB4OyBoZWlnaHQ6IDIwMHB4OyI+PC9pZnJhbWU+CisgICAgICA8L2Rp
dj4KKyAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+
CisgICAgICA8ZGl2IGNsYXNzPSJzdWJwaXhlbFB1c2hlciI+CisgICAgICAgIDxkaXYgY2xhc3M9
InN1YnBpeGVsUHVzaGVyIj4KKyAgICAgICAgICA8aWZyYW1lIGlkPSJpZnJhbWUyIiAgc3R5bGU9
IndpZHRoOiAxNTBweDsgaGVpZ2h0OiAyMDBweDsiPjwvaWZyYW1lPgorICAgICAgICA8L2Rpdj4K
KyAgICAgIDwvZGl2PgorICAgIDwvZGl2PgogICA8L2Rpdj4KLSAgPC9kaXY+Ci0KIDwvYm9keT4K
IDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qvc3ViLXBpeGVsL3RyYW5zZm9ybWVkLWlm
cmFtZS1jb3B5LW9uLXNjcm9sbC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
c3ViLXBpeGVsL3RyYW5zZm9ybWVkLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC5odG1sCShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9zdWItcGl4ZWwvdHJhbnNmb3JtZWQtaWZyYW1lLWNv
cHktb24tc2Nyb2xsLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3OSBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0i
c2NyZWVuIj4KKy5zdWJwaXhlbFB1c2hlciB7CisgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAg
IHRvcDogMC40cHg7CisgICAgei1pbmRleDogMTsKK30KKy5jb250YWluZXIgeworICAgIGRpc3Bs
YXk6IGlubGluZS1ibG9jazsKKyAgICBwYWRkaW5nLWxlZnQ6IDgwcHg7CisgICAgcGFkZGluZy10
b3A6IDEwcHg7Cit9CisudHJhbnNmb3JtIHsKKyAgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZTNk
KDAsIDAsIDEsIDQ1ZGVnKTsKK30KKzwvc3R5bGU+Cis8c2NyaXB0IHNyYz0iLi4vcmVwYWludC9y
ZXNvdXJjZXMvcmVwYWludC5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KKzxz
Y3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9u
ZSgpOworCitmdW5jdGlvbiBzZXR1cElmcmFtZXMoKSB7CisgIHNldHVwSWZyYW1lKGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdpZnJhbWUxJykuY29udGVudFdpbmRvdy5kb2N1bWVudCk7CisgIHNl
dHVwSWZyYW1lKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpZnJhbWUyJykuY29udGVudFdpbmRv
dy5kb2N1bWVudCk7CisgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpZnJhbWUxJykuY29udGVu
dFdpbmRvdy5zY3JvbGxUbygwLCAxMCk7Cit9CisKK2Z1bmN0aW9uIHNldHVwSWZyYW1lKGlmcmFt
ZSkgeworICBpZnJhbWUub3BlbigndGV4dC9odG1sJywgJ3JlcGxhY2UnKTsKKyAgaWZyYW1lLndy
aXRlKCI8IURPQ1RZUEUgaHRtbD5cbjxodG1sPjxib2R5IHN0eWxlPVwiYmFja2dyb3VuZC1jb2xv
cjogc2lsdmVyO2hlaWdodDogMTAwMHB4O1wiPjwvYm9keT4iKTsKKyAgaWZyYW1lLmNsb3NlKCk7
Cit9CisKK2Z1bmN0aW9uIHJlcGFpbnRUZXN0KCkgeworICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnaWZyYW1lMScpLmNvbnRlbnRXaW5kb3cuc2Nyb2xsVG8oMCwgMCk7CisgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdpZnJhbWUyJykuY29udGVudFdpbmRvdy5zY3JvbGxUbygwLCAxMCk7Cisg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30K
Kzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJzZXR1cElmcmFtZXMoKTtydW5SZXBh
aW50VGVzdCgpIj4KKyAgPHA+VGhlIGlmcmFtZXMgYmVsb3cgc2hvdWxkIHJlbWFpbiBncmV5IHdp
dGggbm8gcmVwYWludCBhcnRpZmFjdHMgd2hlbiBzY3JvbGxpbmcuPC9wPgorICA8ZGl2PgorICAg
IDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICA8ZGl2IGNsYXNzPSJ0cmFuc2Zvcm0iPgor
ICAgICAgICA8ZGl2IGNsYXNzPSJzdWJwaXhlbFB1c2hlciI+CisgICAgICAgICAgPGRpdiBjbGFz
cz0ic3VicGl4ZWxQdXNoZXIiPgorICAgICAgICAgICAgPGlmcmFtZSBpZD0iaWZyYW1lMSIgIHN0
eWxlPSJ3aWR0aDogMTUwcHg7IGhlaWdodDogMjAwcHg7Ij48L2lmcmFtZT4KKyAgICAgICAgICA8
L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2
IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgPGRpdiBjbGFzcz0ic3VicGl4ZWxQdXNoZXIiPgor
ICAgICAgICA8ZGl2IGNsYXNzPSJzdWJwaXhlbFB1c2hlciI+CisgICAgICAgICAgPGRpdiBjbGFz
cz0ic3VicGl4ZWxQdXNoZXIiPgorICAgICAgICAgICAgPGRpdiBjbGFzcz0idHJhbnNmb3JtIj4K
KyAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3VicGl4ZWxQdXNoZXIiPgorICAgICAgICAgICAg
ICAgIDxkaXYgY2xhc3M9InN1YnBpeGVsUHVzaGVyIj4KKyAgICAgICAgICAgICAgICAgIDxkaXYg
Y2xhc3M9InN1YnBpeGVsUHVzaGVyIj4KKyAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0i
dHJhbnNmb3JtIj4KKyAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJwaXhlbFB1
c2hlciI+CisgICAgICAgICAgICAgICAgICAgICAgICA8aWZyYW1lIGlkPSJpZnJhbWUyIiAgc3R5
bGU9IndpZHRoOiAxNTBweDsgaGVpZ2h0OiAyMDBweDsiPjwvaWZyYW1lPgorICAgICAgICAgICAg
ICAgICAgICAgIDwvZGl2PgorICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgICAg
ICAgICAgIDwvZGl2PiAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICA8L2Rpdj4KKyAg
ICAgICAgICAgICAgPC9kaXY+CisgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgICA8L2Rpdj4K
KyAgICAgICAgPC9kaXY+CisgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKyAgPC9kaXY+Cis8L2Jv
ZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9m
YXN0L3N1Yi1waXhlbC90cmFuc2Zvcm1lZC1pZnJhbWUtY29weS1vbi1zY3JvbGwtZXhwZWN0ZWQu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2Zh
c3Qvc3ViLXBpeGVsL3RyYW5zZm9ybWVkLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9m
YXN0L3N1Yi1waXhlbC90cmFuc2Zvcm1lZC1pZnJhbWUtY29weS1vbi1zY3JvbGwtZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTIgQEAKK2xheWVyIGF0ICgwLDApIHNpemUg
ODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAs
MCkgc2l6ZSA4MDB4Mjc5CisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHgy
NzkKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCwxNikgc2l6ZSA3ODR4MjU1CisgICAgICBS
ZW5kZXJCbG9jayB7UH0gYXQgKDAsMCkgc2l6ZSA3ODR4MjAKKyAgICAgICAgUmVuZGVyVGV4dCB7
I3RleHR9IGF0ICgwLDApIHNpemUgNDY1eDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkg
d2lkdGggNDY1OiAiVGhlIGlmcmFtZXMgYmVsb3cgc2hvdWxkIHJlbWFpbiBncmV5IHdpdGggbm8g
cmVwYWludCBhcnRpZmFjdHMgd2hlbiBzY3JvbGxpbmcuIgorICAgICAgUmVuZGVyQmxvY2sge0RJ
Vn0gYXQgKDAsMzYpIHNpemUgNzg0eDIxOQorICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAo
MCwwKSBzaXplIDIzNHgyMTkKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgyMzQsMTk5
KSBzaXplIDR4MTkKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMjM0LDE5OSkgd2lkdGggNDogIiAi
CisgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgyMzgsMCkgc2l6ZSAyMzR4MjE5CisgICAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAorbGF5ZXIgYXQgKDg4LDYy
KSBzaXplIDE1NHgyMDkKKyAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDgwLDEwKSBzaXplIDE1NHgy
MDkKK2xheWVyIGF0ICg4OCw2Mikgc2l6ZSAxNTR4MjA5CisgIFJlbmRlckJsb2NrIChyZWxhdGl2
ZSBwb3NpdGlvbmVkKSB6STogMSB7RElWfSBhdCAoMCwwKSBzaXplIDE1NHgyMDkKK2xheWVyIGF0
ICg4OCw2Mykgc2l6ZSAxNTR4MjA5CisgIFJlbmRlckJsb2NrIChyZWxhdGl2ZSBwb3NpdGlvbmVk
KSB6STogMSB7RElWfSBhdCAoMCwwKSBzaXplIDE1NHgyMDkKKyAgICBSZW5kZXJQYXJ0T2JqZWN0
IHtJRlJBTUV9IGF0ICgwLDApIHNpemUgMTU0eDIwNCBbYm9yZGVyOiAoMnB4IGluc2V0ICMwMDAw
MDApXQorICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxMzV4MTAxNgorICAgICAgICBSZW5kZXJW
aWV3IGF0ICgwLDApIHNpemUgMTM1eDIwMAorICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxMzV4
MTAxNgorICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAxMzV4MTAxNgor
ICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgMTE5eDEwMDAgW2JnY29s
b3I9I0MwQzBDMF0KKyAgICBSZW5kZXJUZXh0IHpJOiAxIHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAw
eDAKK2xheWVyIGF0ICgzMjYsNjIpIHNpemUgMTU0eDIwOQorICBSZW5kZXJCbG9jayAocmVsYXRp
dmUgcG9zaXRpb25lZCkgekk6IDEge0RJVn0gYXQgKDgwLDEwKSBzaXplIDE1NHgyMDkKK2xheWVy
IGF0ICgzMjYsNjMpIHNpemUgMTU0eDIwOQorICBSZW5kZXJCbG9jayAocmVsYXRpdmUgcG9zaXRp
b25lZCkgekk6IDEge0RJVn0gYXQgKDAsMCkgc2l6ZSAxNTR4MjA5CitsYXllciBhdCAoMzI2LDYz
KSBzaXplIDE1NHgyMDkKKyAgUmVuZGVyQmxvY2sgKHJlbGF0aXZlIHBvc2l0aW9uZWQpIHpJOiAx
IHtESVZ9IGF0ICgwLDApIHNpemUgMTU0eDIwOQorbGF5ZXIgYXQgKDMyNiw2Mykgc2l6ZSAxNTR4
MjA5CisgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgMTU0eDIwOQorbGF5ZXIgYXQg
KDMyNiw2NCkgc2l6ZSAxNTR4MjA5CisgIFJlbmRlckJsb2NrIChyZWxhdGl2ZSBwb3NpdGlvbmVk
KSB6STogMSB7RElWfSBhdCAoMCwwKSBzaXplIDE1NHgyMDkKK2xheWVyIGF0ICgzMjYsNjQpIHNp
emUgMTU0eDIwOQorICBSZW5kZXJCbG9jayAocmVsYXRpdmUgcG9zaXRpb25lZCkgekk6IDEge0RJ
Vn0gYXQgKDAsMCkgc2l6ZSAxNTR4MjA5CitsYXllciBhdCAoMzI2LDY0KSBzaXplIDE1NHgyMDkK
KyAgUmVuZGVyQmxvY2sgKHJlbGF0aXZlIHBvc2l0aW9uZWQpIHpJOiAxIHtESVZ9IGF0ICgwLDAp
IHNpemUgMTU0eDIwOQorbGF5ZXIgYXQgKDMyNiw2NCkgc2l6ZSAxNTR4MjA5CisgIFJlbmRlckJs
b2NrIHtESVZ9IGF0ICgwLDApIHNpemUgMTU0eDIwOQorbGF5ZXIgYXQgKDMyNiw2NSkgc2l6ZSAx
NTR4MjA5CisgIFJlbmRlckJsb2NrIChyZWxhdGl2ZSBwb3NpdGlvbmVkKSB6STogMSB7RElWfSBh
dCAoMCwwKSBzaXplIDE1NHgyMDkKKyAgICBSZW5kZXJQYXJ0T2JqZWN0IHtJRlJBTUV9IGF0ICgw
LDApIHNpemUgMTU0eDIwNCBbYm9yZGVyOiAoMnB4IGluc2V0ICMwMDAwMDApXQorICAgICAgbGF5
ZXIgYXQgKDAsMCkgc2l6ZSAxMzV4MTAxNgorICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNp
emUgMTM1eDIwMAorICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxMzV4MTAxNgorICAgICAgICBS
ZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAxMzV4MTAxNgorICAgICAgICAgIFJlbmRl
ckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgMTE5eDEwMDAgW2JnY29sb3I9I0MwQzBDMF0KKyAg
ICBSZW5kZXJUZXh0IHpJOiAxIHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKSW5kZXg6IExheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9mYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZy
YW1lLWNvcHktb24tc2Nyb2xsLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWlmcmFtZS1j
b3B5LW9uLXNjcm9sbC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDEzNzQ4NikKKysrIExheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9mYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZyYW1l
LWNvcHktb24tc2Nyb2xsLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwxNyArMSwz
NiBAQAogbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgIFJlbmRlclZpZXcgYXQgKDAsMCkg
c2l6ZSA4MDB4NjAwCi1sYXllciBhdCAoMCwwKSBzaXplIDgwMHg1MgotICBSZW5kZXJCbG9jayB7
SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NTIKLSAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCwx
Nikgc2l6ZSA3ODR4MjAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDI2OQorICBSZW5kZXJCbG9j
ayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4MjY5CisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQg
KDgsMTYpIHNpemUgNzg0eDI0NQogICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDApIHNpemUg
Nzg0eDIwCi0gICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDMxNXgxOQot
ICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDMxNTogIlRoZSBpZnJhbWUgYmVsb3cg
c2hvdWxkIHJlbWFpbiBncmV5IHdoZW4gc2Nyb2xsaW5nLiIKLWxheWVyIGF0ICg4LDUyKSBzaXpl
IDMyNXgyMzAKLSAgUmVuZGVyQmxvY2sgKHBvc2l0aW9uZWQpIHpJOiAxIHtESVZ9IGF0ICg4LDUy
KSBzaXplIDMyNXgyMzAKLSAgICBSZW5kZXJQYXJ0T2JqZWN0IHtJRlJBTUV9IGF0ICgxMCwxMCkg
c2l6ZSAzMDR4MjA1IFtib3JkZXI6ICgycHggaW5zZXQgIzAwMDAwMCldCi0gICAgICBsYXllciBh
dCAoMCwwKSBzaXplIDI4NXgxMDE2Ci0gICAgICAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSAy
ODV4MjAwCi0gICAgICBsYXllciBhdCAoMCwwKSBzaXplIDI4NXgxMDE2Ci0gICAgICAgIFJlbmRl
ckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDI4NXgxMDE2Ci0gICAgICAgICAgUmVuZGVyQm9k
eSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSAyNjl4MTAwMCBbYmdjb2xvcj0jQzBDMEMwXQotICAgIFJl
bmRlclRleHQgekk6IDEgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAorICAgICAgICBSZW5kZXJU
ZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0NjV4MTkKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAo
MCwwKSB3aWR0aCA0NjU6ICJUaGUgaWZyYW1lcyBiZWxvdyBzaG91bGQgcmVtYWluIGdyZXkgd2l0
aCBubyByZXBhaW50IGFydGlmYWN0cyB3aGVuIHNjcm9sbGluZy4iCisgICAgICBSZW5kZXJCbG9j
ayB7RElWfSBhdCAoMCwzNikgc2l6ZSA3ODR4MjA5CisgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9
IGF0ICgwLDApIHNpemUgMTU0eDIwOQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDE1
NCwxODkpIHNpemUgNHgxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgxNTQsMTg5KSB3aWR0aCA0
OiAiICIKKyAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDE1OCwwKSBzaXplIDE1NHgyMDkK
KyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCitsYXllciBhdCAo
OCw1Mikgc2l6ZSAxNTR4MjA5CisgIFJlbmRlckJsb2NrIChyZWxhdGl2ZSBwb3NpdGlvbmVkKSB7
RElWfSBhdCAoMCwwKSBzaXplIDE1NHgyMDkKK2xheWVyIGF0ICg4LDUzKSBzaXplIDE1NHgyMDkK
KyAgUmVuZGVyQmxvY2sgKHJlbGF0aXZlIHBvc2l0aW9uZWQpIHtESVZ9IGF0ICgwLDApIHNpemUg
MTU0eDIwOQorICAgIFJlbmRlclBhcnRPYmplY3Qge0lGUkFNRX0gYXQgKDAsMCkgc2l6ZSAxNTR4
MjA0IFtib3JkZXI6ICgycHggaW5zZXQgIzAwMDAwMCldCisgICAgICBsYXllciBhdCAoMCwwKSBz
aXplIDEzNXgxMDE2CisgICAgICAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSAxMzV4MjAwCisg
ICAgICBsYXllciBhdCAoMCwwKSBzaXplIDEzNXgxMDE2CisgICAgICAgIFJlbmRlckJsb2NrIHtI
VE1MfSBhdCAoMCwwKSBzaXplIDEzNXgxMDE2CisgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0g
YXQgKDgsOCkgc2l6ZSAxMTl4MTAwMCBbYmdjb2xvcj0jQzBDMEMwXQorICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAorbGF5ZXIgYXQgKDE2Niw1Mikgc2l6ZSAxNTR4MjA5
CisgIFJlbmRlckJsb2NrIChyZWxhdGl2ZSBwb3NpdGlvbmVkKSB7RElWfSBhdCAoMCwwKSBzaXpl
IDE1NHgyMDkKK2xheWVyIGF0ICgxNjYsNTMpIHNpemUgMTU0eDIwOQorICBSZW5kZXJCbG9jayAo
cmVsYXRpdmUgcG9zaXRpb25lZCkge0RJVn0gYXQgKDAsMCkgc2l6ZSAxNTR4MjA5CisgICAgUmVu
ZGVyUGFydE9iamVjdCB7SUZSQU1FfSBhdCAoMCwwKSBzaXplIDE1NHgyMDQgW2JvcmRlcjogKDJw
eCBpbnNldCAjMDAwMDAwKV0KKyAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTM1eDEwMTYKKyAg
ICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDEzNXgyMDAKKyAgICAgIGxheWVyIGF0ICgw
LDApIHNpemUgMTM1eDEwMTYKKyAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNp
emUgMTM1eDEwMTYKKyAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDEx
OXgxMDAwIFtiZ2NvbG9yPSNDMEMwQzBdCisgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDAp
IHNpemUgMHgwCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0
YXRpb25zCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RF
eHBlY3RhdGlvbnMJKHJldmlzaW9uIDEzNzQ4NikKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMJKHdvcmtpbmcgY29weSkKQEAgLTQwNTEsNiArNDA1MSwx
NCBAQCBCdWcoZHByYW5rZSkgWyBXaW4gXSB3ZWJhdWRpby9jb2RlYy10ZXN0CiAKIHdlYmtpdC5v
cmcvYi8xMDAwMjMgWyBNYWMgXSBmYXN0L3N1Yi1waXhlbC9maWxlLXVwbG9hZC1jb250cm9sLWF0
LWZyYWN0aW9uYWwtb2Zmc2V0Lmh0bWwgWyBGYWlsdXJlIEltYWdlT25seUZhaWx1cmUgXQogCisj
IE5lZWRzIHJlYmFzZWxpbmUgYWZ0ZXIgYm90cyBjeWNsZQorQnVnKGxldml3KSBbIExpbnV4IFdp
biBNYWMgXSBmYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLmh0
bWwgWyBQYXNzIEltYWdlT25seUZhaWx1cmUgRmFpbHVyZSBdCitCdWcobGV2aXcpIFsgTGludXgg
V2luIE1hYyBdIGZhc3Qvc3ViLXBpeGVsL3RyYW5zZm9ybWVkLWlmcmFtZS1jb3B5LW9uLXNjcm9s
bC5odG1sIFsgUGFzcyBJbWFnZU9ubHlGYWlsdXJlIEZhaWx1cmUgXQorQnVnKGxldml3KSBbIExp
bnV4IFdpbiBNYWMgXSBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Zvcm1zL3N1Z2dlc3Rpb24tcGlj
a2VyL2RhdGUtc3VnZ2VzdGlvbi1waWNrZXItYXBwZWFyYW5jZS13aXRoLXNjcm9sbC1iYXIuaHRt
bCBbIFBhc3MgSW1hZ2VPbmx5RmFpbHVyZSBdCitCdWcobGV2aXcpIFsgTGludXggV2luIE1hYyBd
IHBsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZm9ybXMvc3VnZ2VzdGlvbi1waWNrZXIvbW9udGgtc3Vn
Z2VzdGlvbi1waWNrZXItYXBwZWFyYW5jZS13aXRoLXNjcm9sbC1iYXIuaHRtbCBbIFBhc3MgSW1h
Z2VPbmx5RmFpbHVyZSBdCitCdWcobGV2aXcpIFsgTGludXggV2luIE1hYyBdIHBsYXRmb3JtL2No
cm9taXVtL2Zhc3QvZm9ybXMvc3VnZ2VzdGlvbi1waWNrZXIvd2Vlay1zdWdnZXN0aW9uLXBpY2tl
ci1hcHBlYXJhbmNlLXdpdGgtc2Nyb2xsLWJhci5odG1sIFsgUGFzcyBJbWFnZU9ubHlGYWlsdXJl
IF0KK0J1ZyhsZXZpdykgWyBMaW51eCBdIGZhc3QvZG9tL1dpbmRvdy93ZWJraXRDb252ZXJ0UG9p
bnQuaHRtbCBbIEZhaWx1cmUgXQorCiB3ZWJraXQub3JnL2IvMTAwNDc4ICBbIE1hYyBdIGNzczMv
ZmlsdGVycy9jdXN0b20vZWZmZWN0LWN1c3RvbS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAK
IHdlYmtpdC5vcmcvYi8xMDA0MjQgZWRpdGluZy9zZWxlY3Rpb24vdXNlci1zZWxlY3QtYWxsLXNl
bGVjdGlvbi5odG1sIFsgRmFpbHVyZSBdCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS1saW51eC9mYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xs
LWV4cGVjdGVkLnBuZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNwbGF5OiBmaWxlIG1hcmtlZCBhcyBh
IGJpbmFyeSB0eXBlLgpzdm46bWltZS10eXBlID0gaW1hZ2UvcG5nCgppVkJPUncwS0dnb0FBQUFO
U1VoRVVnQUFBeUFBQUFKWUNBSUFBQUFWRkJVbkFBQUFLWFJGV0hSamFHVmphM04xYlFBM01EQmhO
MlJpCk5HWTNPVGhpT1RKbVkyUmpPR0V3TVdJellXVXlZemhqWkxrYnluMEFBQnFQU1VSQlZIaWM3
ZDFaY3hUbnZjRGhGb05rZ1FDSDRCSmkKTFlQWXdSaEMyRXdNaVYxRkNtS2NWT0tVYnZoSStRYTU1
WWFrNHNSbE80bUpzNUFVdTRMWVpCWmJpRjBnUUt5V3pDYWRpNjR6WjQ1NgpSaHQvQ2MzVTgxeTR4
dEowOTl2dk82UDVNV3BKVlUxTlRRa0FBSEVtdk9vQkFBQlVHb0VGQUJCTVlBRUFCQk5ZQUFEQkJC
WUFRRENCCkJRQVFUR0FCQUFRVFdBQUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1J
RUZBQkJNWUFFQUJCTllBQURCQkJZQVFEQ0IKQlFBUVRHQUJBQVRMclZxMXF1Z245dTdkMjFyQ2pC
a3ovdk9mL3l4ZXZIaTRCL3Y3My8rK2NPSENKRWw2ZTN0UG5UcDE2TkNoYytmTwo1WEs1R1RObXZP
eDVERk5IUjhmUVQyRllkeDd0d1F4ckQ2TTk4cXo4RW85bjJVR08vVVM5akxHWjVISHliQjIzUzVN
ZldPRUl5K0x4CkQ0eU5pUU44YnVYS2xTdFdySmd3WWNMZXZYdWJtcHA2ZTN0UG56NTk3dHk1bzBl
UGZ2ZmRkeU00MlB2dnY1L2VPSFBtVEgxOS9Zb1YKS3pvNk9rNmZQcjFreVpLUmpQMGxET3NVamgw
NzF0UFRNMDRHVTFTcEViNzhub2NydjhUaldYYVFZejlSTDJOc0pubWNQRnZIN2RMawpuM1NGejc2
eWVQd0RZNlBrdHdpblRadTJkT25TQ1JQKzd3NFRKa3hZc1dMRnRHblRkdTNhOVpKSHZYejU4c3la
TTZ1cnErZlBuLyt6Cm4vM3NKZmMyQXNNNmhROCsrR0QwUnBJTWN6QkZsUnJoeSsrNXN1M2R1emU5
VVVrVGxUK3BxRzFIOW14OW1XRVVHcmRMazMvU2pmYlgKQjZCTWxReXNIVHQyVkZkWDkvdGdkWFgx
amgwN0NxdHJaTHE3dTE5K0owUDAvUG56N0FlSGRmUlJHbXArWUMrLy8xSjdHTE5KTGtjUApIanpJ
MzY2WWlTbzhxYWh0Ui9Cc0xicXJvcy9FUVkzRzBveHNKUDNrQjFZeER4NGcxa0RmSWh6WTQ4ZVBE
eDA2OVBEaHd6VnIxalEyCk5pWko4dUxGaTJQSGpsMjdkbTNLbENsYnRteVpPblZxNGYwN09qcGFX
bHAyN3R5Wi90TTIvZS9XclZ0YldscVdMRmx5NXN5WnlaTW4KYjkrKy9lTEZpMTk5OVZWM2QzZHRi
ZTN5NWN2VFN4eGFXbHEyYmR0MjZOQ2hCdzhlckYyN2RzYU1HWWNQSDM3OCtQSGJiNys5YU5HaQpV
b2YrNXB0dldscGE1c3laYy9YcTFhYW1wdXdwM0w1OXU3bTV1YWVuNTYyMzNzcGY1REh3V1NSSmN2
WHExZVBIai9mMjlxNWV2YnF4CnNmSHg0OGVmZi81NWtpUkxseTVkdEdqUjU1OS9YbFZWbGN2bDFx
MWJkK2ZPbmJhMnRpUkpQdnJvbzF3dWw5OUQwWUZsNXpON3JQeTgKcFZzVjNpNTA3ZHExVTZkTzlm
VDByRisvUG52VzZYd1d6bm4ybEljeTU2VldhdWZPbmVtTnJWdTNIajU4K01HREIvbE5DajE4K1BE
SQprU1AzNzkrZk0yZk81czJicTZxcUJoM1l2WHYzRGgwNmxDVEp3b1VMMTY5ZjM5emNuRTd2cjM3
MXE0a1RKNlp6T09oYS9PaEhQenA1Cjh1VE9uVHNQSGp5WXp1SGN1WE8zYk5sU2Fna0tKNjNvR1dY
WGFBU3pmZUxFaVUyYk5oMDlldlRSbzBjYk5teVlQMzkrdXZsd0p6bDcKVW5tbGRwVWYyNHNYTC9M
YkxseTRNUHRzYldwcXl1NGtTWksrdnI1VHAwNjF0YlhsY3JsVnExWTFOamIyRzBhcForSVFuenRG
bDZiVQpnM2JnUjExMkpObkJaNWRzMEZVdVhPc0JIdi9aeDN6Ui9RQ1ZZZVNCMWRIUjhlTWYvL2pP
blR0SGp4NU52K0tjUG4yNm9hRmh3NFlOCnQyN2RPbjc4K0xadDJ3cnZuNytXb3FtcEtiMm9LMG1T
UC8zcFQwK2VQSmswYWRJdmZ2R0w5RzZ0cmEzdnYvLytwRW1UN3R5NXMzLy8KL3NXTEY2Y2Jkbloy
YnR1MjdlYk5tOGVPSFh2cnJiZCs4cE9mZEhWMUhUcDBLUDNLVmZUUTZldm8vZnYzcjE2OVd2UVVl
bnA2dG0vZgozdDNkZmVUSWtkcmEybm56NWcxNkZsMWRYVzF0YlR0MjdPanE2anA0OE9EVXFWUHI2
K3MvL1BERGZmdjJMVisrL0xYWFhtdHFhdnJrCmswOSsrdE9mMXRiV3pwdzU4L3IxNnp0MjdDaXNx
MUlEeTg1bjBXTjk4TUVIbjMzMldickp6cDA3Ly96blAvYzdxVnUzYmwyNGNHSGIKdG0wMU5UVVhM
bHpJbnZXUkkwZjZ6WG4ybEljeTU2VldLci9XSFIwZFc3ZHV2WHYzN3VIRGg3TXZkUWNQSGx5eFlz
V2NPWFBPblR2Mwp1OS85THBmTFRadzRjZUNCYmQyNmRmTGt5Y2VPSFZ1OWVuV1NKRC84NFE5djNM
ang3cnZ2cG5XVkpNbVVLVk1HWFl1Ly9PVXY2U0IzCjdOaVJmeHlXV29LOFVtZFVkSTJHTzl2cGZi
cTZ1dDU3NzcyblQ1OGVQbnc0bDh2Tm1UTm5CSk9jUGFtODdLNnlZOHR2Kzhrbm4yU2YKclVWM2tp
VEoyYk5uYTJwcWZ2N3puMSs1Y3FXMXRiV3hzYkhmTUVvOUU0ZXlYdWx6WnloZmJZYnlxTXVPSkR2
NDdMUU11c3FGRDVJQgpIaTNaeDN5YWowQkZHdm1iMjRzWEw2NnVybTVvYU1oZmducmx5cFVqUjQ3
OC92ZS8vL2UvLzMzNzl1MSs5eTk2cGNLSEgzNllKRW42CldwTGF0V3RYYlcxdGUzdjc4ZVBIMDM5
U3B4c3VXTENndXJwNjd0eTV6NTQ5Vzd4NGNVMU56Y3laTTU4K2ZUckFvU2RQbm56ejVzM1oKczJj
WGZiMUprbVQrL1BtNVhHN3ExS2tiTm13NGUvYnNVTTZpcGFWbC9mcjFOVFUxRFEwTmE5ZXVQWDc4
ZUpJa2t5Wk5talZyMXZYcgoxNU1rNmVycSt1Njc3OUxiVjY1Y2VmUE5OMnRxYXZydHBPakFzdk5a
OUZoMWRYWDVUYkx2cmlWSmN1Yk1tZlhyMTlmVjFWVlhWeGU5Ckhqazc1OWxUSHNxY2wxcXA1SCt2
bTBrM2FXaG95RzlTNlBIangzUG16TW5sY3N1V0xaczJiZHBISDMwMDZNQ3FxcXJlZU9PTjJiTm4K
dDdlM0owblMyZGxaVjFjM2ZmcjB3dDBPdWhZRFhER1RYWUs4VW1kVWRJMkdPOXZwemhzYkc2dXJx
K3ZxNm43d2d4K2NPSEVpWkpMNwpuVUsvWFdYSGxqZkFWWDM5ZHBJa1NWdGIyNkpGaTNLNTNJSUZD
NHB1T01BemNZalBuYUY4dFJuS2hHUkhraDE4ZGxvR1hlVitrMVpxCkpObkhmTkg5QUpWaDVPOWdw
UXJmNVg3eTVFbXBsRW1TcE4rN09LbnM1UXYzN3QxcmJtNmVQWHYyTysrOGs3NDlVN2hoNGVFR1Bm
UzIKYmR0T25qeDU5dXpaVFpzMnZmSEdHd09jeFpRcFUvSlhqUXg4RmwxZFhiVzF0ZW50ZWZQbU5U
YzNwN2ZuenAzN3pUZmZMRnk0OE91dgp2MTZ5Wk1uVnExY2JHeHZiMjl2ZmVlZWQ3RTRHR0ZqaFNa
VTYxc0R1M2J1WGo3RHNWWFJKc1RuUG52SlE1bnlBbFNvOFJLbnZneXhZCnNPRDgrZk5MbHk2OWNl
UEdreWRQaGppd0pFa1dMVnEwZi8vK1pjdVdmZjMxMTBWL2VuL2d0U2o2T0N4VWRNQ2x6bWpRTlJy
dWJDZEoKOHZycnIzZDNkNmUzWDNLU0MyVjNOY0RGUTZWbUtidVRKRWw2ZW5xS1B0THlCbjRtRHYy
NU0vQlRmaWdUa2gxSmR2RFphUm5pTTNIUQpwY2srNW9FS0ZubDU1clJwMC9LM0wxKytQTEtkSERo
d1lOT21UU3RYcm56dHRkZGU4dENUSjAvZXZIbnpoZzBiMGd0M0J2RHc0Y1BYClgzOTlnRjBWSHFp
am95TzkvZUxGaS95cnhjeVpNKy9ldmZ2NDhlTzdkKysrL2ZiYkR4NDh1SFhyVmk2WEs5eGIzaEFI
VnVwWS9mVDIKOWhiKzc5eTVjKy9kdTVmZWZ2YnNXZllPUlErVXZ6MzBoUnZaU3VVMU5qYmV1SEhq
NDQ4L1BuMzY5S1pObTRZK3NMcTZ1cnE2dWt1WApMdDI1YzJmdTNMblpyWWExRmk5cGlHdlViNVA4
N2NMWnppOVRkM2QzL2o0dk9jbUZRblpWZENmVjFkVjlmWDBEYkRYd0EzNWs2eld5CkIyMTJKSU1P
UGhuUktoYzFsTWM4VURFR0Q2ejAxYnFycXl2L1pTajk1M1g2cTEvU2QrelQyN05temJwMDZkTHo1
OCt2WExtUy9aS1gKYnRYZDNaM2UrZjc5Ky9rTkN3dmc2ZE9uRHg4KzdPbnB1WFRwVXBJa0wxNjhL
SFc0OUwvcFo0c2VldS9ldlZldlhwMDBhVkxSSHhySwo1WEx0N2UzUG56OS85T2hSZW8xUit2SHNy
Z29Ic0c3ZHVoTW5UdHk5ZS9mSmt5ZkhqeDlmczJaTmZtOHpaODQ4Y09EQWdnVUxKa3lZCk1Hdldy
S05Iank1WXNLRG9sUFliV0trVExIV3NtcHFham82T1o4K2VwWmRZZmZiWlo0VjdXTE5tVGJyVjgr
ZlBXMXRia3lUNTlOTlAKQzQrZW5mT0JUN25VbkpkYXFlN3U3bSsvL2JibzVvVU9Iank0WmN1V1gv
LzYxenQzN214b2FCaml3RktMRmkwNmR1eFlPdFZGVjNhQQp0Y2dQTWttU3FxcXEyN2R2Ly9XdmZ5
MTF2bm1senFqVUdnMXJ0bE1uVDU1OC92eDVUMC9QZi8vNzMyWExscVVmSE1FazUwK3EzMGl5CnU4
cU9yZCtFOUh1MkZ0MUpraVFORFEyZG5aMTlmWDBQSHo1TUwxcnZONHhCbjRtRHJ0ZFF2dG9NNVZH
WEhVbDI4TmxwS2JySytZSDEKdXpIQTBtUWY4MEFGSy9tYjNGTjc5KzVOZjVibjRzV0xyYTJ0Nlow
Ly92ampKRW5PbnorL2F0V3FQL3poRC9uYk0yYk0rT3FycjQ0ZApPL2I0OGVQMTY5ZjMrNGR5dXRX
RkN4Zk9ueitmSkVsYlcxdHJhMnQ2dTcyOWZlblNwZW5kSms2YzJOemMzTm5adVhidDJ1dlhyL2Yw
CjlLUS9rWlE5WEg2SHBRN2QydHJhME5CdzRNQ0IxYXRYZi8vNzMrOTNhck5teldwdGJXMXBhZW5z
N0Z5MWF0WHMyYlBUajJkM1ZYaSsKa3lkUG5qQmh3dEdqUnk5ZXZMaDA2ZEtaTTJmbWQ5algxM2Z4
NHNYTm16ZW4zeWxvYjIvZnVIRmowVysxOUJ0WXFma3NkYXhjTHRmYwozTnpSMGJGaXhZcWJOMit1
VzdmdWIzLzdXMzZyaVJNbnpwZ3g0K0RCZ3hjdVhGaTZkT25kdTNmWHJWdFhlTFZXZXJqQ09SLzRs
RXZOCmVhbVZ1bkRoUWxwKzJjMExKK0hLbFNzdExTM3Azd1k0Zi81OGJXM3RQLy81ejBFSGxuNTg2
dFNwWjgrZTNiaHhZNm52VEEyd0ZvV24KOE9qUm85YlcxbzBiTjM3eHhSY0REL2lQZi96anNOWm9X
TE9kUGlUZWZQUE5mLzNyWDVjdlgxNjRjR0grdDRHUFlKTHpKMVY0dVY3UgpYUjA0Y0tEZjJQcE5T
TDluYTlGRmIyaG9xSyt2YjJscGFXNXV2blBuenZMbHk3LzN2ZThWN3FxdXJtN2daK0pRMW1zb1gy
MUtyVkhoCmdiSWp5UTQrdTJSRlZ6ay9zUHhDcERjR1dKcnNZMzc2OU9sZmZ2bWxYLzRPRmFscWdP
dU5ZSlE4ZVBEZ3laTW42WTlpOWZYMVBYancKNE1zdnZ4ejZOYiszYjk4K2QrN2N1KysrTzVwakhG
T2xmdlNQaXZHU2ozbWc3UGdWZWJ3QysvZnZmL1RvVWZyVFZjK2VQZXZzN0p3MQphOVlRdCszdDdV
MnZGQjdOQVk2cDlMdEk0L01Qd2hEbFpSN3pRRG55RGhhdndMVnIxODZkTzNmLy92M2UzdDY2dXJy
WnMyZXZYTGt5Cisvc3Nzcjc0NG9zblQ1NXMyTENoa2k1aHlmOVZHVS9HQ2piaXh6eFFwZ1FXQUVB
dzN5SUVBQWdtc0FBQWdna3NBSUJnQWdzQUlKakEKQWdBSUpyQUFBSUlKTEFDQVlBSUxBQ0NZd0FJ
QUNDYXdBQUNDQ1N3QWdHQUNDd0FnbU1BQ0FBZ21zQUFBZ2drc0FJQmdBZ3NBSUpqQQpBZ0FJSnJB
QUFJSk5MUFdKdHJhMnNSd0hvNnF4c1RGLzI4cFdrc0tWQldEODhBNVc1WnMzYjk2ckhnS2p3c29D
akZzbDM4RksvZVkzCnZ4bWJjVEIwMjdadFM1SmszNzU5bloyZHBlNVRYMSsvZmZ2MkpFbnUzYnVY
Sk1uMDZkUHpuL3J0YjMrYkpNbVNKVXRHZmFBTTA3QlcKOXBlLy9PWFlqUXlBWVJva3NCaWY5dXpa
czN2MzdwZS9EK09ObFFXb0RMNUZXSDcyN2RzM2xOZlgzYnQzNzl1M2J3ekdReFFyQzFBeApCRmI1
R2VEN1J5TytKK09CbFFXb0dBSUxBQ0NZd0FJQUNDYXdLc1NlUFh0ZTlSQVlGVlZWVmE5NkNBQU1t
OENxQkdsZGFhektrOWFWCnhnSW9Pd0tyN0JWMmxjYXFKSVZkcGJFQXlvdkFLbS9ab3RKWWxTRmJW
Qm9Mb0l6NFJhUGx6UytjckZSOWZYMnZlZ2dBakp4M3NBQUEKZ2drc0FJQmdBZ3NBSUpocnNNcVNL
OWtybFpVRnFBd0NxeXp0MnJVcis4RnZ2LzIyMzBmKzhZOS9qTWx3QUlEL1IyREJPQ0tkQVNxRAph
N0FBQUlJSkxBQ0FZQUlMQUNDWXdBSUFDQ2F3QUFDQ0NTd0FnR0FDQ3dBZ21NQUNBQWdtc0FBQWdn
a3NBSUJnQWdzQUlKaS9SVmoyClB2MzAwOEwvZmUrOTkxN1ZTQUNBbE1BcWUvay9ENXo5azhDVU5l
a01VTDRFRm94VDBobWdmQW1zc3VkOURnQVlid1JXMmZNK1I2V1MKemdEbFMyREJPQ1dkQWNxWHdD
cDczdWNBZ1BGR1lKVTk3M05VS3VrTVVMNEVGb3hUMGhtZ2ZQbE43Z0FBd1FRV0FFQXdnUVVBRUV4
ZwpBUUFFRTFnQUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJCQllBUURCL0txY3M5ZnNyZFFE
QXVDS3d5dEthTld1R2NyY1RKMDZNCjlraUlKWjBCS29QQWduRkVPZ05VQnRkZ0FRQUVFMWdBQU1F
RUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRHQUIKQUFRVFdBQUF3UVFXQUVB
d2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllBQURCQkJZQVFEQ0JCUUFR
VEdBQgpBQVFUV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFNRUVGZ0JBTUlFRkFCQk1ZQUVB
QkJOWUFBREJCQllBUURDQkJRQVFUR0FCCkFBUVRXQUFBd1FRV0FFQXdnUVVBRUV4Z0FRQUVFMWdB
QU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRHQUIKQUFRVFdBQUF3UVFX
QUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllBQURCQkJZQVFEQ0JC
UUFRVEdBQgpBQVFUV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFNRUVGZ0JBTUlFRkFCQk1Z
QUVBQkJOWUFBREJCQllBUURDQkJRQVFUR0FCCkFBUVRXQUFBd1FRV0FFQXdnUVVBRUV4Z0FRQUVF
MWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRHQUIKQUFRVFdBQUF3
UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllBQURCQkJZQVFE
Q0JCUUFRVEdBQgpBQVFUV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFNRUVGZ0JBTUlFRkFC
Qk1ZQUVBQkJOWUFBREJCQllBUURDQkJRQVFUR0FCCkFBUVRXQUFBd1FRV0FFQXdnUVVBRUV4Z0FR
QUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRHQUIKQUFRVFdB
QUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllBQURCQkJZ
QVFEQ0JCUUFRVEdBQgpBQVFUV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFNRUVGZ0JBc0lt
dmVnQ014SWtUSjE3MUVCZ1ZWaGFnTWdpc3NyUjc5KzZoCjNHM1BuajJqUFJKaVdWbUF5dUJiaEFB
QXdRUVdBRUF3Z1FVQUVFeGdBUUFFYzVGN2VhdXFxc3Arc0srdmIreEhRaXdyQzFEV3ZJTlYKM3JL
dnVGNkRLNE9WQlNockFxdnNGYjd1ZWcydUpGWVdvSHdKckVxUXZ2cDZEYTQ4VmhhZ1RBbXNDdUUx
dUZKWldZQnlKTEFBQUlJSgpyUEpUWDE4ZmZrL0dBeXNMVURFRVZ2blp2bjM3VVA0VTNaNDllN1p2
M3o0RzR5R0tsUVdvR0g0UFZsbmF2WHYzdm4zN09qczdTOTJoCnZyNStpSDgybUhIRnlnSlVocXFt
cHFhaW4yaHJhMHVTWk42OGVXTTdIa1pGVFUxTi9yYVZyU1NGS3d2QStESFF0d2k5QmxjcUt3c0EK
bzZya3R3Z2JHeHZIY2h5TUdTc0xBS1BOUmU0QUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJC
QllBUURDQkJRQVFUR0FCQUFRVApXQUFBd1FRV0FFQXdnUVVBRUV4Z0FRQUVFMWdBQU1FRUZnQkFN
SUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRHQUJBQVFUCldBQUF3UVFXQUVBd2dRVUFF
RXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllBQURCQkJZQVFEQ0JCUUFRVEdBQkFB
UVQKV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFB
REJCQllBUURDQkJRQVFUR0FCQUFRVApXQUFBd1FRV0FFQXdnUVVBRUV4Z0FRQUVFMWdBQU1FRUZn
QkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRHQUJBQVFUCldBQUF3UVFXQUVBd2dR
VUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllBQURCQkJZQVFEQ0JCUUFRVEdB
QkFBUVQKV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJO
WUFBREJCQllBUURDQkJRQVFUR0FCQUFRVApXQUFBd1FRV0FFQXdnUVVBRUV4Z0FRQUVFMWdBQU1F
RUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRHQUJBQVFUCldBQUF3UVFXQUVB
d2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllBQURCQkJZQVFEQ0JCUUFR
VEdBQkFBUVQKV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFNRUVGZ0JBTUlFRkFCQk1ZQUVB
QkJOWUFBREJCQllBUURDQkJRQVFUR0FCQUFRVApXQUFBd1FRV0FFQXdnUVVBRUV4Z0FRQUVFMWdB
QU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRHQUJBQVFUCldBQUF3UVFX
QUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllBQURCQkJZQVFEQ0JC
UUFRVEdBQkFBUVQKV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFNRUVGZ0JBTUlFRkFCQk1Z
QUVBQkJOWUFBREJCQllBUURDQkJRQVFUR0FCQUFRVApXQUFBd1FRV0FFQXdnUVVBRUV4Z0FRQUVF
MWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRHQUJBQVFUCldBQUF3
UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllBQURCQkJZQVFE
Q0JCUUFRVEdBQkFBUVQKV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFNRUVGZ0JBTUlFRkFC
Qk1ZQUVBQkJOWUFBREJCQllBUURDQkJRQVFUR0FCQUFRVApXQUFBd1FRV0FFQXdnUVVBRUV4Z0FR
QUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRHQUJBQVFUCldB
QUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllBQURCQkJZ
QVFEQ0JCUUFRVEdBQkFBUVQKV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFNRUVGZ0JBTUlF
RkFCQk1ZQUVBQkJOWUFBREJCQllBUURDQkJRQVFUR0FCQUFRVApXQUFBd1FRV0FFQXdnUVVBRUV4
Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRHQUJBQVFU
CldBQUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllBQURC
QkJZQVFEQ0JCUUFRVEdBQkFBUVQKV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFNRUVGZ0JB
TUlFRkFCQk1ZQUVBQkJOWUFBREJCQllBUURDQkJRQVFUR0FCQUFRVApXQUFBd1FRV0FFQXdnUVVB
RUV4Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRHQUJB
QVFUCldBQUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllB
QURCQkJZQVFEQ0JCUUFRVEdBQkFBUVQKV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFNRUVG
Z0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJCQllBUURDQkJRQVFUR0FCQUFRVApXQUFBd1FRV0FFQXdn
UVVBRUV4Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRH
QUJBQVFUCldBQUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJC
TllBQURCQkJZQVFEQ0JCUUFRVEdBQkFBUVQKV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFN
RUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJCQllBUURDQkJRQVFUR0FCQUFRVApXQUFBd1FRV0FF
QXdnUVVBRUV4Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRTEQvQWVD
bnpKaVo3MlVFCkFBQUFBRWxGVGtTdVFtQ0MKCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS1saW51eC9mYXN0L3N1Yi1waXhlbC90cmFuc2Zvcm1lZC1pZnJhbWUtY29weS1vbi1z
Y3JvbGwtZXhwZWN0ZWQucG5nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQ2Fubm90IGRpc3BsYXk6IGZpbGUgbWFya2Vk
IGFzIGEgYmluYXJ5IHR5cGUuCnN2bjptaW1lLXR5cGUgPSBpbWFnZS9wbmcKSW5kZXg6IExheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2Zhc3Qvc3ViLXBpeGVsL3RyYW5zZm9ybWVk
LWlmcmFtZS1jb3B5LW9uLXNjcm9sbC1leHBlY3RlZC5wbmcKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvZmFzdC9zdWItcGl4ZWwvdHJhbnNmb3JtZWQt
aWZyYW1lLWNvcHktb24tc2Nyb2xsLWV4cGVjdGVkLnBuZwkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2Zhc3Qvc3ViLXBpeGVsL3RyYW5zZm9ybWVk
LWlmcmFtZS1jb3B5LW9uLXNjcm9sbC1leHBlY3RlZC5wbmcJKHdvcmtpbmcgY29weSkKClByb3Bl
cnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2Zhc3Qv
c3ViLXBpeGVsL3RyYW5zZm9ybWVkLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC1leHBlY3RlZC5wbmcK
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fXwpBZGRlZDogc3ZuOm1pbWUtdHlwZQojIyAtMCwwICsxICMjCitpbWFnZS9wbmcK
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQoKaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FB
QXlBQUFBSllDQUlBQUFBVkZCVW5BQUFBS1hSRldIUmphR1ZqYTNOMWJRQTVOemt5TnpObQpZakU0
T1dKak5qTmpZalUzTTJZNU1XUXhORFl4WldVME9kaUpvZFFBQUNBQVNVUkJWSGljN2QxYmpGeG5Z
Y0R4YiszMWV0Zlp0YjJ4CkhkL2lPSEhqbUdBSHg0NXRCUWZTcENvRjVRbXBSVUlJMFVibFV0Uytw
QVVpZUtpRWlsQXJxaUlpMHFaUTZsQlZJWUNxWEVRUzBrWWsKQlNVMGdzUUoyQkRIeG81amIycGpi
K3kxMTk1ZDcrWDA0ZEJoc25QWjJaMXZaczdNL0g1UEo3UG44cDNiK3ArNWJVZVNKQUVBZ0hqbQpO
WG9BQUFDdFJtQUJBRVFtc0FBQUloTllBQUNSQ1N3QWdNZ0VGZ0JBWkFJTEFDQXlnUVVBRUpuQUFn
Q0lUR0FCQUVRbXNBQUFJaE5ZCkFBQ1JDU3dBZ01nRUZnQkFaQUlMQUNBeWdRVUFFSm5BQWdDSVRH
QUJBRVFtc0FBQUlpc1pXQjJsUGY3NDQ1czJiWnJEeHQ3OTduZW4KRStQajQ1LzV6R2VXTDErK2ZQ
bnlyM3psSzNNY2V4Vm10UXR6M3QrNnJiL1VHbW85OGtLNVU1eGxoWU9zLzRHcVJuME9ja2J1MXN5
ZQptdHpBOGtmWUZOYy9VQ2RKQ1NHRXYvN3J2eDRiRzB1bmt5UVpIUjI5Kys2N1F3aHIxcXdwczJB
bFB2ZTV6ejMyMkdORFEwTVBQdmpnCjcvek83MVN6cXJtWjFTNWNlZVdWVmU1dnhNRVVWV3FFcTFh
dHF1bklXMGIxcDZDRk5mWnV6ZXlweWQxMHRmNzlBRFNwamlSSmlvYlgKbGkxYm5udnV1Y1dMRjRj
UU9qcCtNOXZRME5BdHQ5enl3Z3N2ZEhkM2wxcXdFdXZYcno5MDZOQ0NCUXZtdklZcWpZMk5WYjRM
czVxNQoxb09aMVJwcVBmSm1sN3V3VytsQTVYWXExckp6dTF1ckdVYSt6SjZhM01BeU8wS2dzVXEr
UkxodjM3NjBydkl0V2JKazM3NTlDeGN1CnJIS3J4NDhmcjA5ZEpVbHk0Y0tGd3NkbnRRdlY3Mito
L0lGVnYvNVNhNmpGeUZ2Ry92MzdjOU10YzZEeWR5cldzbk80V3d0WFZlcE8KbkZIMFV6UG5rVXlU
RzFqTFhEeEFYSE4vay91aFE0ZDI3ZHExZVBIaXIzLzk2K2tqbzZPakgvbklSeFl0V3JSMTY5YURC
dzlPbXovMwpUb1dPam82cHFhbjA3VnhQUFBIRTlkZGYvMC8vOUU4clY2N2N1WE5uQ09GZi8vVmZO
MnpZc0dEQmdpdXZ2UExlZSs4TklhVHp2UGJhCmE3dDM3MTY4ZVBFM3Z2R04vZnYzYjkrK3ZhK3Y3
Nzc3N2l1ejZYLzh4MzljdEdqUm4vN3BuM1owZEJUZGhmLys3Ly9ldkhsemYzLy8KVjcvNjFkeUQ1
ZmNpaFBEZDczNTM5ZXJWeTVjdi8rZC8vdWYwT0tUNzhxbFBmU3FkN3V6czdPdnIrK1kzdi9sbmYv
Wm42WTlHUjBmegoxMUIwWUlYSHMzQmI0Zi9mRzFjNG5lK2hoeDY2L3ZycisvcjZIbnp3d2NLZkZo
N3p3bDJ1NUpnWG5xbmNLVTRYLzlXdmZ2WE9kNzV6CjhlTEZ1VVh5L2ZLWHY3ejU1cHNYTGx6NHdR
OStjR0ppb3BLQlBmamdnK2t1Zi9Takh3MGg1QTd2OFBCdzdoak9lQzRlZnZqaGRKQWYKK01BSDBt
UDRSMy8wUjJWT1FmNUJLN3BIaGVkb3RrZjcrOS8vL3ViTm0vZnUzWHZqalRkZWR0bGwzL3JXdDNL
THovWWdGKzVVbVZWTgpHMXYrc2tYdjFxSXJDU0ZNVFUxOTVqT2ZXYnAwNmVyVnE3LzJ0YThWRHFQ
VW5WajV2VlBKYjV0S3JyckNrUlFPdnZDVXpYaVdVek5lCi80WFhQTkRLS25rZHNYQzJFTUk5OTl4
ejVzeVpKNTU0WXRXcVZlbURuL3JVcDc3NXpXK09qbzQrL3ZqajczM3ZlNmN0c25yMTZ0eDYKY2hN
clZxd0lJVHp5eUNPNTJhNjY2cXFqUjQrT2o0Ly84SWMvdk95eXkzSUw3dG16NTh5Wk05Lzk3bmY3
Ky92dnVlZWVOOTk4ODhrbgpuMXkrZkhtWlRTOWV2UGpJa1NNUFBmUlEwZDBNSVR6d3dBTVhMbHg0
OWRWWDMvbk9kMzc3Mjk4dXM2cmNHcDUvL3ZuZi8vM2ZQMzM2CjlILys1Mzh1V2JMazZhZWZUcExr
K1BIanExZXZQbm55WkRyUG1qVnJUcHc0a1NUSndNREFtalZyM256enpXbWJMaHhZMGVOWmRGdEgK
amh6SkxYWGd3SUhDUS9yVVUwL2RldXV0aHc4ZlBuUG16T2MvLy9uQ2ZTODg1b1c3WE1reEwzV21j
aFAzM0hQUDRPRGdZNDg5bGxzawozenZlOFk3MCtLZUQ3T25wbVhGZ2s1T1R6ejc3N09iTm0wK2RP
cFVreWRUVTFMcDE2MTU4OGNYODFjNTRMb3BlaDZWT1FVNnBQU3A2CmptWjd0Sys0NG9vUXduMzMz
VGMwTkhUNDhPRjN2ZXRkRHovODhKd1BjcW1idW5CVmhXUExMVnZxS0JXdUpFbVNMM3poQzEvODRo
ZEgKUmtiMjdObHp6VFhYRkM1VjVrNnM1TjZwOExkTkpWZGQ0VWdLQjE5NFdFcWQ1V21IYU1aVFUz
ak5GejFUUUd1WWUyQ2xFeE1URS9QbQp6VXVuMHpkN3BoWXRXalJ0a1pHUmtjSmYyZW4vbms2YmMz
UjA5T3RmLy9xMmJkdlNIMTI4ZURGL2M3bnB5Y25KM0hUUlRWOS8vZlgzCjNYZmYrUGo0akR2MXkx
LytjdnYyN1dWV2xadjVsbHR1T1hMa1NEcTlaOCtlTFZ1MnBOTjMzbm5uTjc3eGpTUkpmdktUbjNS
MGROeDMKMzMxSmt2ejkzLy85M1hmZlhianB3b0VWUFo2bHRqVXRDd3BIK01vcnI2VFRaOCtlTFhw
NHB6MVl1TXVWSFBPazRFemxUbkgrSnZJWAp6N2RvMGFLUmtaRjBXNXMzYjY1d1lFbVMzSDMzM1gv
M2QzK1hKTW5UVHovOXJuZTlxM0RONWM5RjBlc3dLWEVLaWg2MC9EMHFkWTZLCkxsaHFwOUpYckhJ
enZQRENDeHMzYnN4Znc2d09jcG4vYTVxMnFzS3g1ZjZ6MUZFcVhFbVNKT3ZYcno5ejVzeTBiZVV2
VmY1T25QSGUKcWZDM1RTVlhYZUZJQ2dkZmVGaG12Qk1yUERXRjF6elF3cW9OclB6cGhRc1hWcmll
b291blhuenh4WjA3ZDM3Kzg1OS81WlZYWnB5LwovS2FQSGozNndROStjTU9HRGM4KysyejVuYnAw
NlZMNk50VlNxOHJOM05YVmRlSENoWFI2ZUhnNE4vT2pqejU2eHgxM0pFbnlrWTk4CjVLNjc3bnJQ
ZTk2VEpNa05OOXp3aTEvOG9wS0JGZDJwVXRzcUgxZzlQVDJYTGwwcXVwdWxIaXkveTZXbXk1K3BN
cWM0OWVkLy91ZC8KOHpkL2MrSENoVzkvKzlzclZxeW9mR0NIRHgrKzdycnJwcWFtL3ZBUC8vQ0JC
eDRvbkdIR2MxSDVkWlZ2VnVlbzFJS2xkbXJhMVppYgpadzRIdVZSZ3pYaG5WYkxDb2l1WlAzOSsr
VDBxZnlkV2ZyN3lwMmQxMFpZWnlZeURUeXE0RXlzOE5VV3ZlYUJWeFF5c2JkdTI1Ujc4CjkzLy85
ekxyS2ZON2NNT0dEZWtUTUlPRGc1WC9RMWhtMHovNHdRL1dyMTlmZnFmMjd0MjdZOGVPTXF2SzM5
Qi8vTWQvcE5NblQ1NjgKL2ZiYjArbVJrWkZseTVZZFBIand1dXV1R3hzYlc3MTY5Vk5QUGJWejU4
N0M3UllkV0ttZEtycXRFTUxVMUZSdU92K3JOSklrK2ZDSApQL3pqSC84NG5SNGFHc3JOVUdyZlo5
emxVdFBsejlTTS85UzkvUExMdTNmdjd1N3UzclJwMDVOUFBsbjV3SklrZWQvNzNuZi8vZmV2Cldi
T21jTmVTQ3M1RnhNQXFkWTVLTFZocXAwSUl1U3crZVBEZzFxMWIwK2s1SE9SU2dUWGpuVlhKQ291
dVpQbnk1Uk1URStYM09pbDkKSjFaK3ZwSzNIdm5jZ3pOZXRHVkdVc25neTl5Sk0wN2tUeGU5NW9G
V05VTmdUVTFOL2ZTblB3MGgvT1FuUDVtY25Fd2ZQSHIwYUFoaApZR0FnU1pJVEowNkVFSTRkTzVZ
a3lXYy8rOW43Nzc5L2VIajRXOS82VnZxL3BQbGVmLzMxRU1McnI3OSs3Tml4RU1MZXZYdVRKRW1u
ClIwZEhjN010WGJyMG9ZY2VHaGdZK1BLWHZ6eHYzcnlMRnkrbUM2YWJlK09OTjNMVEF3TURJWVNq
UjQrVzJuUUk0VHZmK2M2cnI3NjYKYk5teXdsMjc3TExMOXV6Wk16dzgvT3Fycis3YXRldnh4eDlQ
SHk5Y1ZUcUE0OGVQSjBueTdMUFBYblBOTmYvelAvOXo4dVRKRDMzbwpReSs4OEVKdWhSLzR3QWUy
YmR2MnQzLzd0MG1TM0hubm5WZGRkZFc5OTk1Yi9LQy9kV0Nsam1lcGJWMSsrZVZQUFBIRW1UTm4w
bTk5ClhMdDJiZjRJVDV3NDhlNTN2L3U1NTU0YkhoNytxNy82cXhEQzZ0V3I4N2RlZU14TDdYTDVZ
MTdxVEwzKyt1dnBHOFh5RjAvM0tOL2IKM3ZhMmRNQ3pHbGpxa1VjZTZlN3UvdXhuUDF2MDhKWS9G
N2xCSmtuUzJkbjV3eC8rY011V0xhVk9RVTZwUFNwelBjeHFwMElJZDkxMQoxN2x6NXdZR0J2N2dE
LzRnVnd4ek9NaTVuWm8ya3NKVkZZNHR0MnpSdTdYb1NwSWsrZENIUHZUVVUwOU5UazcrNGhlL3lI
MVJWdjR3Cnl0K0o1YzlYNWI5dEtybnFDa2RTT1BqQ3cxTDBMT2R1dW1rVFpVNU40VFVQdExBWkFp
dTgxYlFIcDAyZk8zZnUvZTkvZjFkWDEvYnQKMjE5OTlkWHlxOHEzYnQyNjNHejMzSFBQb2tXTGR1
M2FkZmJzMmJlLy9lMmYvdlNuUzIxdXhrMkhFUDdsWC81bDhlTEZSVVBueFJkZgozTDE3ZDFkWDE5
YXRXNy8zdmUvbEhpOWMxYlRkdi9mZWU5UFBISDNuTzkvSlgrRUREenpRM2QxOSt2VHBKRWtlZnZq
aHJxNnV3Y0hCClVrYzFmMkNsZHFyVXRyNzg1UzlmZHRsbE45MTBVL28vL1k4OTl0aTBwWDcyczU5
dDNMaHg3ZHExVHo3NTVMWFhYcHUvZDdsTjVCL3oKOHJ0Y2Fyck1tU3F6UnptMzNISkw3a2Q5Zlgy
NVQ0ZVZIMWhxZkh4ODBhSkZyNzMyV3RIRFcvNWM1SS9ud3gvK2NIOS8vdzkrOElNWgpCenpiY3pT
cm81M09sbjdBN2NvcnIvenFWNythbTNrT0J6bTNVOU5HVW1wVitXTXJQQ0RUTmxTNGtpUkpUcDQ4
K1o3M3ZLZTd1M3Y3Cjl1My85bS8vTm0xVnlVeDNZdVhuSzMrNjhvdDIydW1ZTnBMQ3dSY2VscUpu
dWVnaEtuOXFDcS81SkVsMjc5NWQ5SmdBelM3T2x3SEMKclB6ODV6OC9mZnIwN2JmZkhrS1luSnpj
dDIvZjd0MjdLLzkyb2gvOTZFZGYrdEtYSG4zMDBWcU9zYTVpZlMwbm1WWGxOUTgwSFgvcwptUWE0
NDQ0N0RoNDhtRDVMY2U3Y3VXZWVlZWFPTys2b2NObng4ZkYvK0lkLytNdS8vTXVhanJDZVRwNDhH
VUpJWC8raVZWVnp6UVBOClNHRFJBRi81eWxmMjdObXpidDI2aFFzWDd0eTU4K2pSbytsM1BNN294
aHR2M0xCaHd5Yy8rY25iYnJ1dHhtT3NuL1JQUnFaZm5rU3IKbXZNMUR6UXBMMHdBQUVUbUdTd0Fn
TWdFRmdCQVpBSUxBQ0F5Z2NYTTBqOUJDQUJVU0dBeGc3R3hzZTk5NzNzSER4NXM5RUFBb0dsMApO
bm9BWk5yWTJOajN2Ly85WC8vNjE3Lys5YTlEQ0JzM2JtejBpQUNnQ1hnR2k1SnlkVFYvL3Z3UXdq
UFBQT041TEFDb2hNQ2l1RnhkCmRYVjFYWFhWVmN1V0xRc2FDd0FxSTdBb0lyK3UxcTVkdTJEQmdt
WExsbWtzQUtpUXdHSzZ3cnBLSDlkWUFGQWhnY1ZibEtxcmxNWUMKZ0VvSUxINnJmRjJsTkJZQXpF
aGc4UnVWMUZWS1l3RkFlUUtMRUdaVFZ5bU5CUUJsQ0N4bVhWY3BqUVVBcFFpc2RqZTN1a3BwTEFB
bwpTbUMxdFdycUtxV3hBS0NRd0dwZjFkZFZTbU1Cd0RRQ3EwM0ZxcXVVeGdLQWZBS3JIY1d0cTVU
R0FvQWNnZFYyYWxGWEtZMEZBQ21CCjFWNXFWMWNwalFVQVFXQzFsVnJYVlVwakFZREFhaGYxcWF1
VXhnS2d6UW1zdGxEUHVrcHBMQURhbWNCcWZmV3ZxNVRHQXFCdENhd1cKMTZpNlNta3NBTnFUd0dw
bGphMnJsTVlDb0EwSnJKYVZoYnBLYVN3QTJvM0FhazNacWF1VXhnS2dyUWlzRnBTMXVrcHBMQURh
aDhCcQpOZG1zcTVUR0FxQk5DS3lXa3VXNlNta3NBTnFCd0dvZDJhK3JsTVlDb09VSnJCYlJMSFdW
MGxnQXREYUIxUXFhcTY1U0dndUFGaWF3Cm1sNHoxbFZLWXdIUXFnUldjMnZldWtwcExBQmFrc0Jx
WXMxZVZ5bU5CVURyRVZqTnFqWHFLcVd4QUdneEFxc3B0VkpkcFRRV0FLMUUKWURXZjFxdXJsTVlD
b0dVSXJDYlRxbldWMGxnQXRBYUIxVXhhdTY1U0dndUFGaUN3bWtZNzFGVktZd0hRN0FSV2MyaWZ1
a3BwTEFDYQptc0JxQXUxV1Z5bU5CVUR6RWxoWjE1NTFsZEpZQURRcGdaVnA3VnhYS1kwRlFETVNX
Tm1scmxJYUM0Q21JN0F5U2wzbDAxZ0FOQmVCCmxVWHFxcERHQXFDSkNLek1VVmVsYUN3QW1vWEF5
aFoxVlo3R0FxQXBDS3dNVVZlVjBGZ0FaSi9BeWdwMVZUbU5CVURHZFRaNkFJU2cKcm1ZdkRhekJ3
Y0Zubm5rbWhMQng0OFlHRDZocWI3enh4bU9QUGRib1VkRGlQdmF4anpWNkNOQXVQSVBWZU9wcWJs
cnNlYXlsUzVkdQozYnExMGFNQUlBN1BZRFdZdXFwR0t6MlB0V0RCZ3F1dnZucmh3b1Z2dlBGR284
ZENxeGtiR3p0MTZsU2pSd0h0UldBMWtycXFYb3MxCjFySmx5ODZlUGR2b2dRQlFMUzhSTm95Nmlx
VTFYaXZzNk9obzlCQUFpRVpnTllhNmlxczFHaXVFa0NSSm80Y0FRQVFDcXdIVVZTMjAKVEdNQjBB
SUVWcjJwcTlyUldBQmtoTUNxSzNWVmF4b0xnQ3dRV1BXanJ1cERZd0hRY0FLclR0UlZQV2tzQUJw
TFlOV0R1cW8valFWQQpBd21zbWxOWGphS3hBR2dVZ1ZWYjZxcXhOQllBRFNHd2FraGRaWUhHQXFE
K0JGYXRxS3ZzMEZnQTFKbkFxZ2wxbFRVYUM0QjZFbGp4CnFhdHMwbGdBMUkzQWlreGRaWm5HQXFB
K0JGWk02aXI3TkJZQWRTQ3dvbEZYelVKakFWQnJBaXNPZGRWY05CWUFOU1d3SWxCWHpVaGoKQVZB
N0FxdGE2cXA1YVN3QWFrUmdWVVZkTlR1TkJVQXRDS3k1VTFldFFXTUJFSjNBbWlOMTFVbzBGZ0J4
Q2F5NVVGZXRSMk1CRUpIQQptalYxMWFvMEZnQ3hDS3paVVZldFRXTUJFSVhBbWdWMTFRNDBGZ0RW
RTFpVlVsZnRRMk1CVUNXQlZSRjExVzQwRmdEVkVGZ3pVMWZ0ClNXTUJNR2NDYXdicXFwMXBMQURt
Um1DVm82N1FXQURNZ2NBcVNWMlIwbGdBekpiQUtrNWRrVTlqQVRBckFxc0lkVVVoalFWQTVRVFcK
ZE9xS1VqUVdBQlVTV0craHJpaFBZd0ZRQ1lIMVcrcUtTbWdzQUdZa3NINURYVkU1alFWQWVRSXJC
SFhGN0drc0FNb1FXT3FLT2RKWQpBSlRTN29HbHJxaUd4Z0tncUxZT0xIVkY5YTY5OXRwdDI3WUZq
UVZBbnM1R0Q2QmgxQlhWVzdCZ3dRMDMzREE4UEh6Ky9QbERodzQ5Cjg4d3pJWVNOR3pjMmVsd0FO
RmliQnBhNm9ucWpvNlBuenAwN2VQRGcwTkRRd29VTHU3cTZMbDI2cExFQUNPMFpXT3FLNm8yT2pw
NCsKZmZyV1cyOWR0MjVkK3A5bno1NDllZkxreE1TRXhnS2c3ZDZEcGE2bzNyUzZDaUYwZDNmZmZ2
dnRLMWV1N096c0RONlBCZEQyMml1dwoxQlhWSzZ5clZFOVBqOFlDSU5WR2dhV3VxRjZwdWtwcExB
QlM3UkpZNm9ycWxhK3JsTVlDSUxSSllLa3JxbGRKWGFWeWpkWGQzUjAwCkZrQmJhdjFQRWFvcnFs
ZFlWNis5OWxwdmIrL2s1T1RGaXhlN3Vyb1dMMTdjMTllWG03K25wK2YzZnUvM1hucnBwZkh4OFZk
ZWVjWG4KQ2dIYVRZc0hscnFpZWtXZnV6cHg0c1RodzRlVEpFbVNaTjY4ZWU5OTczdW5MZFhkM1Qw
K1ByNTkrL2FlbnA2OWUvZis2RWMvNnU3dQpudkhaTHdCYVF5c0hscnFpZW1sZDlmZjNIenQyTEQr
UGJyNzU1aERDb1VPSFFnaFRVMU1qSXlPRnkxNXh4UlU5UFQzWFhYZmRraVZMCmVucDZycmppaXJv
Tkc0REdhdG4zWUtrcnFwZlcxWTRkTzI2NTVaYlIwZEhubm5zdS82YzMzM3p6dGRkZUcwTG82T2hJ
MzI2Vjc4Q0IKQTYrLy92cmc0T0RrNU9US2xTdlhybDNiMWRWVnY2RUQwRkN0R1ZqcWl1cmw2bXJW
cWxVaGhKdHV1cWxVWTNWMmR2YjA5T1EvZnVEQQpnWDM3OXIzdGJXL3I3T3ljUDM5K1gxOWZSMGRI
WFVjUFFFTzFZR0NwSzZvM3JhNVNwUnByL2ZyMVEwTkR1VWZTdXRxMWExZHZiNis2CkFtaFByUlpZ
Nm9ycUZhMnJWS25HV3JObVRUcXRyZ0FJTFJaWTZvcnFsYW1yMVBidDJ5OWN1REN0c1ZMcUNvQlU2
d1NXdXFKNk05WlYKa2lSalkyT2JOMjhlSGg2ZTFsanFDb0NjRmdrc2RVWDFLcXlyeWNuSkVNS1dM
VnZ5RzB0ZEFaQ3ZGUUpMWFZHOVdkVlZLdGRZNmdxQQphWm8rc05RVjFadERYYVcyYk5seTZ0UXBk
UVhBTk0wZFdPcUs2czI1cmtJSXg0OGZuNWlZVUZjQVROUEVnYVd1cUY2VmRYWHMyREYxCkJVQ2ha
ZzBzZFVYMWl0YlYrZlBueDhmSDAybDFCY0RjTkdWZ3FTdXFWK3E1cXhNblRqei8vUFBqNCtQcUNv
QTVhNzdBVWxkVXIyaGQKWGJ4NE1ZU3djZVBHNWN1WFAvLzg4OFBEdytvS2dMbHBzc0JTVjFTdjFI
TlhCdzRjK05uUGZoWkMyTFJwMDlLbFMvZnUzVHN4TVRGdApXWFVGUUNXYUtiRFVGZFVyV2xkalky
TWhoRzNidG8yTmpiMzg4c3RqWTJQWFhIUE55cFVycDZhbThwZE42MnJuenAzcUNvRHltaWF3CjFC
WFZLMXBYazVPVHp6Ly8vSkVqUjBJSU8zYnNHQmtaMmI5L2Z3amh5aXV2N09ycXlzMldxNnUrdmo1
MUJVQjV6UkZZNm9ycWxYcGwKY1A3OCtkdTNiejl5NU1pUkkwZkd4c1p1dU9HR2VmUG01VDVJbUZK
WEFNeEtFd1NXdXFKNjViL3ZxcmUzZDlldVhiLzYxYStPSGowYQpRcmp1dXV2eUx6TjFCY0JzWlQy
dzFCWFZxK1RiUkRzN083ZHUzVG80T0RqdGs0UHFDb0E1Nkd6MEFNcFJWMVN2OHU5cVg3Um8wVHZl
CjhZNzhmbEpYQU14TmRwL0JVbGRVYjdaL0NVZGRBUkJGUmdOTFhWRzl0SzY2dXJwNmUzdUx6akRq
ZDdXckt3RG1Kb3VCcGE2b1hscFgKVjE5OWRlNXIyYWZOb0s0QXFKM01CWmE2b25xNXVscXlaTW1L
RlN2NisvdW5OWmE2QXFDbXNoVlk2b3JxNWRkVitzaTB4bEpYQU5SYQpoZ0pMWFZHOXdycEs1UnJy
L1BuejZncUFXc3RLWUtrcnFsZXFybEw1alZYNFUzVUZRRVNaQ0N4MVJmWEsxMVZxeFlvVmwxOSsr
Y3N2CnYzeng0c1g4eDlVVkFIRTFQckRVRmRXcnBLNVNoWTJscmdDSXJzR0JwYTZvWHVWMWxjcHZM
SFVGUUMwMDhrL2xxQ3VxTjl1NlNxMVkKc1NLRThNSUxMM1IyZHFvckFLSnIyRE5ZNm9ycXphMnVV
aDBkSGVvS2dCcHBUR0NwSzZwWFRWMmRQbjE2Y0hCUVhRRlFJNDE1aWZEcwoyYlA5L2YxOWZYMVhY
SEhGNE9CZ1E4WkFVMU5YQUdSWll3SnI1Y3FWbDE5K2VmcTEydDNkM1FNREF3MFpCazFLWFFHUWNR
MTdEOWFDCkJRdDZlM3REQ011V0xWdTdkbTJqaGtIVFVWY0FaRjhqdjZaQll6RmI2Z3FBcHREZzc4
SFNXRlJPWFFIUUxCci9UZTRhaTBxb0t3Q2EKU09NREsyZ3NacUt1QUdndW1RaXNvTEVvVFYwQjBI
U3lFbGhCWTFHTXVnS2dHV1Vvc0lMRzRxM1VGUUJOS2x1QkZUUVcvMDlkQWRDOApNaGRZUVdPaHJn
Qm9jbGtNcktDeDJwdTZBcURaWlRTd2dzWnFWK29LZ0JhUTNjQUtHcXY5cUNzQVdrT21BeXRvckhh
aXJnQm9HVmtQCnJLQ3gyb082QXFDVk5FRmdCWTNWNnRRVkFDMm1PUUlyYUt6V3BhNEFhRDFORTFo
Qlk3VWlkUVZBUzJxbXdBb2FxN1dvS3dCYVZaTUYKVnRCWXJVSmRBZERDbWkrd2dzWnFmdW9LZ05i
V2xJRVZORll6VTFkUVoyNFRxTDltRGF5Z3NacVR1Z0tnSFRSeFlBV04xV3pVRlFCdApvcmtESzJp
czVxR3VBR2dmVFI5WVFXTTFBM1VGUUZ0cGhjQUtHaXZiMUJVQTdhWkZBaXRvckt4U1Z3QzBvZFlK
cktDeHNrZGRBZENlCldpcXdnc2JLRW5VRlFOdHF0Y0FLR2lzYjFCVUE3YXdGQXl0b3JFWlRWd0Mw
dWRZTXJLQ3hHa2RkQVVETEJsYlFXSTJncmdBZ3RIWmcKQlkxVlgrb0tBRkl0SGxoQlk5V0x1Z0tB
bk5ZUHJLQ3hhazlkQVVDK3RnaXNvTEZxU1YwQndEVHRFbGhCWTlXR3VnS0FRbTBVV0VGagp4YWF1
QUtDbzlncXNvTEhpVVZjQVVFcmJCVmJRV0RHb0t3QW9veDBESzJpczZxZ3JBQ2l2czlFRGFKaTBz
WWFIaDVjdFd4WkNHQmdZCmFQU0ltb082cXFuZTN0NnRXN2VlUDM5Ky8vNzk1OCtmYi9Sd2FHNmRu
WjFyMXF6WnRHblRxVk9uamgwNzF1amhRSHRwMzhBS0dtdjIKMUZXdGRYWjJUa3hNREF3TTdOeTVj
Mkppb3N5Y1o4NmMyYjkvditkZk0yaGtaT1Q4K2ZOYnRteXAzU2FHaG9iMjc5L2YzOSsvWThlTwpN
ck4xZEhTTWpvNGVPblRJZFFMMTE5YUJGVFRXYktpck9qaC8vdnpnNE9DbVRadjYrL3RubkhuKy9Q
bnBLOTFremVqb2FQb3JwYWE2CnVycFdybHhaZnA1TGx5NkZFRjU1NVpWYUR3YVlwazNmZzVYUCs3
RXFvYTdxSXozT2xkUVZWS0tycTZ1N3UvdC8vL2QvR3owUWFEc0MKS3dTTk5STjFWVGRUVTFORlh4
bDg2YVdYN3JycnJ2cVBoMlpSNWdwSmtxVDh5ODFBTFFpczM5QllwYWlyaG52cHBaZnV2UFBPbDE1
NgpxZEVESWFaejU4N3QzNysvNk1RY25EMTc5djc3NzFmaGtCMEM2N2MwVmlGMTFYRHFxbFdOajQ4
UERRMFZuWmdialFXWklyRGVRbVBsClUxY05wNjZZRlkwRjJkSHVueUlzNUhPRktYV1ZCVmRmZmZV
Zi8vRWZDNnltTXpVMU5UbzZXbjZlUzVjdXBiTVZUc3k0L3ZTemdVV2wKMTh5c1J3ekVKckNLMEZq
cUtpT1dMbDM2SjMveUp5RUV6MGswbmNuSnlVcG1tSnljTEp5WTg4cHZ2UEhHUFh2MjNIampqYk1l
TGhDYgp3Q3F1blJ0TFhXVktyckVlZWVTUlJvK0ZtUHI2K2padTNGaDBZbTdVRldTS3dDcXBQUnRM
WFdWUTJsaTMzWFpib3dkQ1RKMmRuZWs3ClBnc241a0JkUWRaNGszczU3ZmFlZDNYVmNLWCtpVjI2
ZEtsL095bWp6QlZTVGJjQmN5YXdadEEramFXdXNtREpraVZyMTY3OTZVOS8KMnVpQjBDTE9uRGx6
OE9EQm12NWhSS0FvTHhIT3JCMWVLMVJYR2RIWjJibHExYW9Rd285Ly9PUGg0ZUV5YzE2NmRHbGta
T1RRb1VQMQpHaHFWbXB5Y0hCOGYzN3QzYiswMk1UNCtIa0k0YytiTWYvM1hmNVdacmJPemMvbnk1
WnMyYmFya2s0bEFYQUtySXEzZFdPb3FPeVluCko4Zkd4dnI2K2xhdlh1M1BtMUNsZWZQbWRYZDNk
M1oyWHJ4NHNkRmpnYllqc0NyVnFvMmxyaklsOTJmajVuQTZvS2lKaVltK3ZyNnQKVzdlKy9QTExq
UjRMdEpHT0pFa2FQWVptTWo0K25yNXdNemc0MkFLTnBhNEFvQmE4eVgxMld1azk3K29LQUdwRVlN
MWFhelNXdWdLQQoyaEZZYzlIc2phV3VBS0NtQk5ZY05XOWpxU3NBcURXQk5YZk4yRmpxQ2dEcVFH
QlZwYmthUzEwQlFIMElyR28xUzJPcEt3Q29HNEVWClFmWWJTMTBCUUQzNW90Rm9NdnNkcE5YWDFh
NWR1M3A3ZTlVVkFGVElNMWpSWlBONUxIVUZBUFVuc0dMS1dtT3BLd0JvQ0lFVldYWWEKUzEwQlFL
TUlyUGl5MEZqcUNnQWFTR0RWUkdNYlMxMEJRR01KckZwcFZHT3BLd0JvT0lGVlEvVnZMSFVGQUZr
Z3NHcXJubzJscmdBZwpJd1JXemRXbnNkUVZBR1NId0txSFdqZVd1Z0tBVEJGWWRWSzd4bEpYQUpB
MUFxdCthdEZZNmdvQU1raGcxVlhjeGxKWEFKQk5BcXZlCllqVldXbGZyMTY5WFZ3Q1FOUUtyQWFw
dnJMU3UxcTVkZS9yMDZhbXBxVmt0cTY0QW9OWUVWbU5VMDFocFhkMTY2NjIzM1hiYnVuWHIKRGg4
K1hIbGpxU3NBcUFPQjFUQnphNnhjWGExYnR5NkVjTk5OTjFYZVdPb0tBT3BEWURYU2JCdHJXbDJs
S213c2RRVUFkU093R3F6eQp4aXBhVjZrWkcwdGRBVUE5Q2F6R3E2U3h5dFJWcWt4anFTc0FxRE9C
bFFubEc2dXdycjcwcFM5OTdXdGZtelpiMGNaU1Z3QlFmd0lyCkswbzExdVRrNU9EZzRMVG5ybGF1
WFBuSlQzNXl4c1pTVndEUUVKMk5IZ0MvbFRiVzhQRHdzbVhMUWdnREF3UDkvZjNkM2QxdmYvdmIK
VjYxYWxUOW4rdlZYbi9qRUowSUlILy80eC9OL2ROTk5ONFVRRGg4K3ZHVEpramZmZkZOZEFVRDll
UVlyVy9LZng5cXdZY01OTjl4dwo3dHk1d3JkVlhiaHdJWjM0eENjK1VmUjVyTjdlWG5VRkFJMGlz
REluMTFpOXZiMGpJeU1yVnF6bzYrdWJOcythTld2bXo1K2ZUdi9GClgvekZ0TVk2Y09EQTBOQ1F1
Z0tBUnZFU1lSYmxYaXNjR3hzYkdSbDUrdW1uYjczMTFxVkxsK1ptNk92cmUvVFJSNDhlUGRyWjJi
bHUKM2JwVHAwN2xmblRnd0lGOSsvYXBLd0Jvb0k0a1NSbzlCb29iSHg4ZkhoNE9JUnc5ZXZUSWtT
TzMzMzU3Zm1NVnBhNEFJQXU4UkpoZAp1ZGNLMTY5ZmY4MDExeno5OU5Obno1NHRNNys2QW9DTUVG
aVpWbmxqcVNzQXlBNkJsWFdWTkphNkFvQk1FVmhOb0h4anFTc0F5QnB2CmNtOGErZTk1UDM3OCtP
Lys3dSsrK2VhYklZUVhYM3h4eDQ0ZDZnb0Fza05nTlpOY1k1MDZkYXF2cjI5d2NMQ25wNmU3dTN2
Um9rWHEKQ2dDeVEyQTFtVnhqTFZ5NHNMdTdlM2g0ZUhKeVVsMEJRS1lJck9hVGE2eU9qbzRrU2RR
VkFHU053R3BLdWNaU1Z3Q1FRUUtyV1kyUApqNCtPanZiMjlxb3JBTWdhZ1FVQUVKbnZ3UUlBTFQ0
Z2tRQUFCZHRKUkVGVWlFeGdBUUJFSnJBQUFDSVRXQUFBa1Frc0FJRElCQllBClFHUUNDd0FnTW9F
RkFCQ1p3QUlBaUV4Z0FRQkVKckFBQUNJVFdBQUFrUWtzQUlESUJCWUFRR1FDQ3dBZ01vRUZBQkNa
d0FJQWlFeGcKQVFCRUpyQUFBQ0lUV0FBQWtRa3NBSURJQkJZQVFHUUNDd0FnTW9FRkFCQ1p3QUlB
aUV4Z0FRQkVKckFBQUNJVFdBQUFrUWtzQUlESQpCQllBUUdRQ0N3QWdNb0VGQUJDWndBSUFpRXhn
QVFCRUpyQUFBQ0lUV0FBQWtRa3NBSURJQkJZQVFHUUNDd0FnTW9FRkFCQ1p3QUlBCmlFeGdBUUJF
SnJBQUFDSVRXQUFBa1Frc0FJRElCQllBUUdRQ0N3QWdNb0VGQUJDWndBSUFpRXhnQVFCRUpyQUFB
Q0lUV0FBQWtRa3MKQUlESUJCWUFRR1FDQ3dBZ01vRUZBQkNad0FJQWlFeGdBUUJFSnJBQUFDSVRX
QUFBa1Frc0FJRElCQllBUUdRQ0N3QWdNb0VGQUJDWgp3QUlBaUV4Z0FRQkVKckFBQUNJVFdBQUFr
UWtzQUlESUJCWUFRR1FDQ3dBZ01vRUZBQkNad0FJQWlFeGdBUUJFSnJBQUFDSVRXQUFBCmtRa3NB
SURJQkJZQVFHUUNDd0FnTW9FRkFCQ1p3QUlBaUV4Z0FRQkVKckFBQUNJVFdBQUFrUWtzQUlESUJC
WUFRR1FDQ3dBZ01vRUYKQUJDWndBSUFpRXhnQVFCRUpyQUFBQ0lUV0FBQWtRa3NBSURJQkJZQVFH
UUNDd0FnTW9FRkFCQ1p3QUlBaUV4Z0FRQkVKckFBQUNJVApXQUFBa1Frc0FJRElCQllBUUdRQ0N3
QWdNb0VGQUJDWndBSUFpRXhnQVFCRUpyQUFBQ0lUV0FBQWtRa3NBSURJQkJZQVFHUUNDd0FnCk1v
RUZBQkNad0FJQWlFeGdBUUJFSnJBQUFDSVRXQUFBa1Frc0FJRElCQllBUUdRQ0N3QWdNb0VGQUJD
WndBSUFpRXhnQVFCRUpyQUEKQUNJVFdBQUFrUWtzQUlESUJCWUFRR1FDQ3dBZ01vRUZBQkNad0FJ
QWlFeGdBUUJFSnJBQUFDSVRXQUFBa1Frc0FJRElCQllBUUdRQwpDd0FnTW9FRkFCQ1p3QUlBaUV4
Z0FRQkVKckFBQUNJVFdBQUFrUWtzQUlESUJCWUFRR1FDQ3dBZ01vRUZBQkNad0FJQWlFeGdBUUJF
CkpyQUFBQ0lUV0FBQWtRa3NBSURJQkJZQVFHUUNDd0FnTW9FRkFCQ1p3QUlBaUV4Z0FRQkVKckFB
QUNJVFdBQUFrUWtzQUlESUJCWUEKUUdRQ0N3QWdNb0VGQUJDWndBSUFpRXhnQVFCRUpyQUFBQ0lU
V0FBQWtRa3NBSURJQkJZQVFHUUNDd0FnTW9FRkFCQ1p3QUlBaUV4ZwpBUUJFSnJBQUFDSVRXQUFB
a1Frc0FJRElCQllBUUdRQ0N3QWdNb0VGQUJDWndBSUFpRXhnQVFCRUpyQUFBQ0lUV0FBQWtRa3NB
SURJCkJCWUFRR1FDQ3dBZ01vRUZBQkNad0FJQWlFeGdBUUJFSnJBQUFDSVRXQUFBa1Frc0FJRElC
QllBUUdRQ0N3QWdNb0VGQUJDWndBSUEKaUV4Z0FRQkVKckFBQUNJVFdBQUFrUWtzQUlESUJCWUFR
R1FDQ3dBZ01vRUZBQkNad0FJQWlFeGdBUUJFSnJBQUFDSVRXQUFBa1FrcwpBSURJQkJZQVFHUUND
d0FnTW9FRkFCQ1p3QUlBaUV4Z0FRQkVKckFBQUNJVFdBQUFrUWtzQUlESUJCWUFRR1FDQ3dBZ01v
RUZBQkNaCndBSUFpRXhnQVFCRUpyQUFBQ0lUV0FBQWtRa3NBSURJQkJZQVFHUUNDd0FnTW9FRkFC
Q1p3QUlBaUV4Z0FRQkVKckFBQUNJVFdBQUEKa1Frc0FJRElCQllBUUdRQ0N3QWdNb0VGQUJDWndB
SUFpRXhnQVFCRUpyQUFBQ0lUV0FBQWtRa3NBSURJQkJZQVFHUUNDd0FnTW9FRgpBQkNad0FJQWlF
eGdBUUJFSnJBQUFDSVRXQUFBa1Frc0FJRElCQllBUUdRQ0N3QWdNb0VGQUJDWndBSUFpRXhnQVFC
RUpyQUFBQ0lUCldBQUFrUWtzQUlESUJCWUFRR1FDQ3dBZ01vRUZBQkNad0FJQWlFeGdBUUJFSnJB
QUFDSVRXQUFBa1Frc0FJRElCQllBUUdRQ0N3QWcKTW9FRkFCQ1p3QUlBaUV4Z0FRQkVKckFBQUNJ
VFdBQUFrUWtzQUlESUJCWUFRR1FDQ3dBZ01vRUZBQkNad0FJQWlFeGdBUUJFSnJBQQpBQ0lUV0FB
QWtRa3NBSURJQkJZQVFHUUNDd0FnTW9FRkFCQ1p3QUlBaUV4Z0FRQkVKckFBQUNJVFdBQUFrUWtz
QUlESUJCWUFRR1FDCkN3QWdNb0VGQUJDWndBSUFpRXhnQVFCRUpyQUFBQ0lUV0FBQWtRa3NBSURJ
QkJZQVFHUUNDd0FnTW9FRkFCQ1p3QUlBaUV4Z0FRQkUKSnJBQUFDSVRXQUFBa1Frc0FJRElCQllB
UUdRQ0N3QWdNb0VGQUJDWndBSUFpRXhnQVFCRUpyQUFBQ0w3UDd1b1V5K2s4bStmQUFBQQpBRWxG
VGtTdVFtQ0MKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179366</attachid>
            <date>2012-12-13 16:09:43 -0800</date>
            <delta_ts>2012-12-16 13:07:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101779-20121213160703.patch</filename>
            <type>text/plain</type>
            <size>111627</size>
            <attacher name="Levi Weintraub">leviw</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNzYyOSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzOSBAQAorMjAxMi0xMi0xMyAgTGV2aSBX
ZWludHJhdWIgIDxsZXZpd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUHVzaCBwaXhlbCBzbmFw
cGluZyBsb2dpYyBpbnRvIFRyYW5zZm9ybVN0YXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE3NzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgb2xkIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zIGJl
aGF2aW9yIGZlbGwgYXBhcnQgd2hlbiB0aGVyZSB3YXMgY29udGVudCBuZXN0ZWQgaW4KKyAgICAg
ICAgbXVsdGlwbGUgbGV2ZWxzIG9mIGNvbnRhaW5lcnMgd2l0aCBzdWItcGl4ZWwgb2Zmc2V0cy4g
VGhlIHBvaW50IG9mIHRoaXMgZmxhZyB3YXMgdG8KKyAgICAgICAgbWlycm9yIHRoZSBwaXhlbCBz
bmFwcGluZyB0aGF0IG9jY3VycyBpbiBwYWludCwgd2hlcmUgb2Zmc2V0cyBhcmUgYWNjdW11bGF0
ZWQgYm90dG9tLQorICAgICAgICB1cCB0aHJvdWdoIHRoZSByZW5kZXIgdHJlZSBhbmQgc25hcHBl
ZCBhdCB0aGUgZW5kLiBUaGlzIGNoYW5nZSBlbGltaW5hdGVzIHRoaXMgZmxhZworICAgICAgICBh
bmQgcHVzaGVzIHBpeGVsIHNuYXBwaW5nIGxvZ2ljIGRvd24gaW50byBUcmFuc2Zvcm1TdGF0ZS4K
KworICAgICAgICBUcmFuc2Zvcm1TdGF0ZSBub3cgdHJhY2tzIGEgTGF5b3V0U2l6ZSBhY2N1bXVs
YXRlZCBvZmZzZXQgd2hlbiB0aGVyZSdzIG5vIHRyYW5zZm9ybQorICAgICAgICBvciB3ZSdyZSBq
dXN0IHRyYW5zbGF0aW5nLiBXZSB0aGVuIHNuYXAgYW5kIGFwcGx5IHRoaXMgb2Zmc2V0IGJlZm9y
ZSBhY2N1bXVsYXRpbmcKKyAgICAgICAgdmFsdWVzIGludG8gYSB0cmFuc2Zvcm0sIGFuZCB3aGVu
IHJldHVybmluZyBwbGFuYXIgY29vcmRpbmF0ZXMgdG8gY2FsbGVycy4KKworICAgICAgICBUZXN0
OiBmYXN0L3N1Yi1waXhlbC90cmFuc2Zvcm1lZC1pZnJhbWUtY29weS1vbi1zY3JvbGwuaHRtbCBh
ZGRlZCwKKyAgICAgICAgICAgICAgZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWlmcmFtZS1jb3B5
LW9uLXNjcm9sbC5odG1sIG1vZGlmaWVkIHRvIGFsc28gY2F0Y2ggdGhpcyBidWcuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybVN0YXRlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlRyYW5zZm9ybVN0YXRlOjpvcGVyYXRvcj0pOiBQYXNzIGFjY3VtdWxh
dGVkIG9mZnNldC4KKyAgICAgICAgKFdlYkNvcmU6OlRyYW5zZm9ybVN0YXRlOjp0cmFuc2xhdGVU
cmFuc2Zvcm0pOiBFeHRyYWN0ZWQgdGhpcyBmdW5jdGlvbmFsaXR5IGZvcgorICAgICAgICByZS11
c2Ugd2hlbiBhcHBseWluZyB0aGUgYWNjdW11bGF0ZWQgb2Zmc2V0LCBvciBhY2N1bXVsYXRpbmcg
ZnJvbSBhIGNhbGwgdG8gbW92ZS4KKyAgICAgICAgKFdlYkNvcmU6OlRyYW5zZm9ybVN0YXRlOjp0
cmFuc2xhdGVNYXBwZWRDb29yZGluYXRlcyk6IFNhbWUgYXMgYWJvdmUgd2hlbiB3ZSdyZSBub3QK
KyAgICAgICAgYWNjdWxhdGluZyBpbnRvIGEgdHJhbnNmb3JtLgorICAgICAgICAoV2ViQ29yZTo6
VHJhbnNmb3JtU3RhdGU6Om1vdmUpOiBDaGFuZ2VkIHRvIGFjY3VtdWxhdGUgaW50byBtX2FjY3Vt
dWxhdGVkT2Zmc2V0IHdoZW4KKyAgICAgICAgbm90IGFjY3VtdWxhdGluZyBpbnRvIGEgdHJhbnNm
b3JtLgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNmb3JtU3RhdGU6OmFwcGx5QWNjdW11bGF0ZWRP
ZmZzZXQpOgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNmb3JtU3RhdGU6OmFwcGx5VHJhbnNmb3Jt
KTogQXBwbGllcyB0aGUgYWNjdW11bGF0ZWQgb2Zmc2V0IGJlZm9yZSB0aGUKKyAgICAgICAgdHJh
bnNmb3JtLgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNmb3JtU3RhdGU6OmZsYXR0ZW4pOiBEaXR0
byBmb3IgZmxhdHRlbmluZy4KKyAgICAgICAgKFdlYkNvcmU6OlRyYW5zZm9ybVN0YXRlOjptYXBw
ZWRQb2ludCk6IFRyYW5zbGF0ZXMgYnkgdGhlIGFjY3VtdWxhdGVkIG9mZnNldCBiZWZvcmUKKyAg
ICAgICAgcmV0dXJuaW5nLgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNmb3JtU3RhdGU6Om1hcHBl
ZFF1YWQpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1Ry
YW5zZm9ybVN0YXRlLmg6CisgICAgICAgIChUcmFuc2Zvcm1TdGF0ZSk6IEFkZGVkIG1fYWNjdW11
bGF0ZWRPZmZzZXQuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckdlb21ldHJ5TWFwLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdlb21ldHJ5TWFwOjptYXBUb0NvbnRhaW5lcik6IFdo
ZW4gbm90IHVzaW5nIGEgdHJhbnNmb3JtLCB3ZSBzdGlsbCBuZWVkCisgICAgICAgIHRvIHNuYXAg
b3VyIG9mZnNldCBiZWZvcmUgYXBwbHlpbmcgdG8gb3VyIGZsb2F0IHJlc3VsdC4gQWxzbywgZmxh
dHRlbiB3aGVuIHdlIGhhdmUgYQorICAgICAgICBub24tdW5pZm9ybSBzdGVwLgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJHZW9tZXRyeU1hcC5oOgorICAgICAgICAoUmVuZGVyR2VvbWV0cnlN
YXApOiBSZW1vdmUgdXNlIG9mIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLgorCisgICAgICAgIEV2
ZXJ5dGhpbmcgYmVsb3cgc2ltcGx5IGRyb3BzIHRoZSB1c2Ugb2YgU25hcE9mZnNldEZvclRyYW5z
Zm9ybXM6CisKKyAgICAgICAgKiBkb20vQ29udGFpbmVyTm9kZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDb250YWluZXJOb2RlOjpnZXRVcHBlckxlZnRDb3JuZXIpOgorICAgICAgICAqIGRvbS9N
b3VzZVJlbGF0ZWRFdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb3VzZVJlbGF0ZWRFdmVu
dDo6Y29tcHV0ZVJlbGF0aXZlUG9zaXRpb24pOgorICAgICAgICAqIGVkaXRpbmcvRnJhbWVTZWxl
Y3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FyZXRCYXNlOjphYnNvbHV0ZUJvdW5kc0Zv
ckxvY2FsUmVjdCk6CisgICAgICAgICogZWRpdGluZy9SZW5kZXJlZFBvc2l0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlcmVkUG9zaXRpb246OmFic29sdXRlUmVjdCk6CisgICAgICAg
ICogZWRpdGluZy9WaXNpYmxlUG9zaXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VmlzaWJs
ZVBvc2l0aW9uOjphYnNvbHV0ZUNhcmV0Qm91bmRzKToKKyAgICAgICAgKiBodG1sL0hUTUxTZWxl
Y3RFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50OjpsaXN0
Qm94RGVmYXVsdEV2ZW50SGFuZGxlcik6CisgICAgICAgICogaHRtbC9zaGFkb3cvU2xpZGVyVGh1
bWJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNsaWRlclRodW1iRWxlbWVudDo6c2V0
UG9zaXRpb25Gcm9tUG9pbnQpOgorICAgICAgICAqIGh0bWwvc2hhZG93L1NwaW5CdXR0b25FbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNwaW5CdXR0b25FbGVtZW50OjpkZWZhdWx0RXZl
bnRIYW5kbGVyKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZVZpZXc6OmNvbnZlcnRGcm9tUmVuZGVyZXIpOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVWaWV3Ojpjb252ZXJ0VG9SZW5kZXJlcik6CisgICAgICAgICogcmVuZGVyaW5nL0lubGlu
ZVRleHRCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lVGV4dEJveDo6cGFpbnREb2N1
bWVudE1hcmtlcik6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVUZXh0Qm94OjpwYWludFRleHRN
YXRjaE1hcmtlcik6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVUZXh0Qm94Ojpjb21wdXRlUmVj
dEZvclJlcGxhY2VtZW50TWFya2VyKToKKyAgICAgICAgKiByZW5kZXJpbmcvTGF5b3V0U3RhdGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0U3RhdGU6OkxheW91dFN0YXRlKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJv
eDo6bWFwTG9jYWxUb0NvbnRhaW5lcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OnB1
c2hNYXBwaW5nVG9Db250YWluZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guaDoK
KyAgICAgICAgKFJlbmRlckJveCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveE1vZGVs
T2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveE1vZGVsT2JqZWN0Ojpjb21w
dXRlU3RpY2t5UG9zaXRpb25Db25zdHJhaW50cyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckVtYmVkZGVkT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckVtYmVkZGVkT2Jq
ZWN0Ojppc0luVW5hdmFpbGFibGVQbHVnaW5JbmRpY2F0b3IpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJGcmFtZVNldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGcmFtZVNldDo6
dXNlclJlc2l6ZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJJbmxpbmU6Om1hcExvY2FsVG9Db250YWluZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVySW5saW5lOjpwdXNoTWFwcGluZ1RvQ29udGFpbmVyKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVySW5saW5lLmg6CisgICAgICAgIChSZW5kZXJJbmxpbmUpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllcjo6YWJzb2x1dGVUb0NvbnRlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyOjpzY3JvbGxUbyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6Y2hpbGRy
ZW5DbGlwUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2VsZkNsaXBSZWN0
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6Y29udGVudHNWaXNpYmxlKToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyTWVkaWFDb250cm9scy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJNZWRpYUNvbnRyb2xzOjp2b2x1bWVTbGlkZXJPZmZzZXRGcm9tTXV0ZUJ1dHRvbik6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlck1lbnVMaXN0OjpzaG93UG9wdXApOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJP
YmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjphYnNvbHV0ZUZvY3Vz
UmluZ1F1YWRzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0Lmg6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4
dDo6YWJzb2x1dGVSZWN0c0ZvclJhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHQ6
OmFic29sdXRlUXVhZHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dDo6YWJzb2x1dGVR
dWFkc0ZvclJhbmdlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OnZvbHVtZVNsaWRlck9mZnNldEZyb21NdXRlQnV0
dG9uKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVmlldy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJWaWV3OjpzZWxlY3Rpb25Cb3VuZHMpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJWaWV3Lmg6CisgICAgICAgIChSZW5kZXJWaWV3KToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyV2lkZ2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlcldpZGdldDo6dXBkYXRl
V2lkZ2V0R2VvbWV0cnkpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWln
bk9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdGb3JlaWduT2JqZWN0Ojpt
YXBMb2NhbFRvQ29udGFpbmVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0Zv
cmVpZ25PYmplY3QuaDoKKyAgICAgICAgKFJlbmRlclNWR0ZvcmVpZ25PYmplY3QpOgorICAgICAg
ICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclNWR0lubGluZTo6bWFwTG9jYWxUb0NvbnRhaW5lcik6CisgICAgICAgICogcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuaDoKKyAgICAgICAgKFJlbmRlclNWR0lubGluZSk6Cisg
ICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJTVkdNb2RlbE9iamVjdDo6bWFwTG9jYWxUb0NvbnRhaW5lcik6Cisg
ICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5oOgorICAgICAgICAo
UmVuZGVyU1ZHTW9kZWxPYmplY3QpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
Um9vdC5oOgorICAgICAgICAoUmVuZGVyU1ZHUm9vdCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1RleHQ6Om1h
cExvY2FsVG9Db250YWluZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4
dC5oOgorICAgICAgICAoUmVuZGVyU1ZHVGV4dCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9T
VkdSZW5kZXJTdXBwb3J0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlbmRlclN1cHBvcnQ6
Om1hcExvY2FsVG9Db250YWluZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvU1ZHUmVuZGVy
U3VwcG9ydC5oOgorICAgICAgICAoU1ZHUmVuZGVyU3VwcG9ydCk6CisKIDIwMTItMTItMTMgIFBh
cnRoIFBhdGVsICA8cGFycGF0ZWxAcmltLmNvbT4sIE1heCBGZWlsIDxtZmVpbEByaW0uY29tPgog
CiAgICAgICAgIEFsbG93IHBsdWdpbnMgdG8gYmUgZGlzYWJsZWQgYnkgc2hhcmVkIGxpYnJhcnkg
ZmlsZW5hbWUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAJKHJldmlzaW9u
IDEzNzQ4NikKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtODY0LDcgKzg2NCw3IEBAIGJvb2wgQ29udGFpbmVyTm9kZTo6Z2V0VXBwZXJM
ZWZ0Q29ybmVyKEYKICAgICAgICAgICAgICAgICBSZW5kZXJCb3gqIGJveCA9IHRvUmVuZGVyQm94
KG8pOwogICAgICAgICAgICAgICAgIHBvaW50Lm1vdmVCeShib3gtPmxvY2F0aW9uKCkpOwogICAg
ICAgICAgICAgfQotICAgICAgICAgICAgcG9pbnQgPSBvLT5jb250YWluZXIoKS0+bG9jYWxUb0Fi
c29sdXRlKHBvaW50LCBVc2VUcmFuc2Zvcm1zIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpOwor
ICAgICAgICAgICAgcG9pbnQgPSBvLT5jb250YWluZXIoKS0+bG9jYWxUb0Fic29sdXRlKHBvaW50
LCBVc2VUcmFuc2Zvcm1zKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAg
ICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vTW91c2VSZWxhdGVkRXZlbnQuY3BwCShyZXZp
c2lvbiAxMzc0ODYpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vTW91c2VSZWxhdGVkRXZlbnQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xNjUsNyArMTY1LDcgQEAgdm9pZCBNb3VzZVJlbGF0ZWRFdmVu
dDo6Y29tcHV0ZVJlbGF0aXZlUAogCiAgICAgLy8gQWRqdXN0IG9mZnNldExvY2F0aW9uIHRvIGJl
IHJlbGF0aXZlIHRvIHRoZSB0YXJnZXQncyBwb3NpdGlvbi4KICAgICBpZiAoUmVuZGVyT2JqZWN0
KiByID0gdGFyZ2V0Tm9kZS0+cmVuZGVyZXIoKSkgewotICAgICAgICBGbG9hdFBvaW50IGxvY2Fs
UG9zID0gci0+YWJzb2x1dGVUb0xvY2FsKGFic29sdXRlTG9jYXRpb24oKSwgVXNlVHJhbnNmb3Jt
cyB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKTsKKyAgICAgICAgRmxvYXRQb2ludCBsb2NhbFBv
cyA9IHItPmFic29sdXRlVG9Mb2NhbChhYnNvbHV0ZUxvY2F0aW9uKCksIFVzZVRyYW5zZm9ybXMp
OwogICAgICAgICBtX29mZnNldExvY2F0aW9uID0gcm91bmRlZExheW91dFBvaW50KGxvY2FsUG9z
KTsKICAgICAgICAgZmxvYXQgc2NhbGVGYWN0b3IgPSAxIC8gKHBhZ2Vab29tRmFjdG9yKHRoaXMp
ICogZnJhbWVTY2FsZUZhY3Rvcih0aGlzKSk7CiAgICAgICAgIGlmIChzY2FsZUZhY3RvciAhPSAx
LjBmKQpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAJKHJl
dmlzaW9uIDEzNzQ4NikKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24u
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzEyLDcgKzEzMTIsNyBAQCBJbnRSZWN0IENhcmV0QmFz
ZTo6YWJzb2x1dGVCb3VuZHNGb3JMb2NhCiAgICAgTGF5b3V0UmVjdCBsb2NhbFJlY3QocmVjdCk7
CiAgICAgaWYgKGNhcmV0UGFpbnRlci0+aXNCb3goKSkKICAgICAgICAgdG9SZW5kZXJCb3goY2Fy
ZXRQYWludGVyKS0+ZmxpcEZvcldyaXRpbmdNb2RlKGxvY2FsUmVjdCk7Ci0gICAgcmV0dXJuIGNh
cmV0UGFpbnRlci0+bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3QobG9jYWxSZWN0KSwgU25h
cE9mZnNldEZvclRyYW5zZm9ybXMpLmVuY2xvc2luZ0JvdW5kaW5nQm94KCk7CisgICAgcmV0dXJu
IGNhcmV0UGFpbnRlci0+bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3QobG9jYWxSZWN0KSku
ZW5jbG9zaW5nQm91bmRpbmdCb3goKTsKIH0KIAogSW50UmVjdCBGcmFtZVNlbGVjdGlvbjo6YWJz
b2x1dGVDYXJldEJvdW5kcygpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbmRlcmVk
UG9zaXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVuZGVy
ZWRQb3NpdGlvbi5jcHAJKHJldmlzaW9uIDEzNzQ4NikKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvUmVuZGVyZWRQb3NpdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzMCw3ICsyMzAsNyBA
QCBJbnRSZWN0IFJlbmRlcmVkUG9zaXRpb246OmFic29sdXRlUmVjdChMCiAgICAgICAgIHJldHVy
biBJbnRSZWN0KCk7CiAKICAgICBJbnRSZWN0IGxvY2FsUmVjdCA9IHBpeGVsU25hcHBlZEludFJl
Y3QobV9yZW5kZXJlci0+bG9jYWxDYXJldFJlY3QobV9pbmxpbmVCb3gsIG1fb2Zmc2V0LCBleHRy
YVdpZHRoVG9FbmRPZkxpbmUpKTsKLSAgICByZXR1cm4gbG9jYWxSZWN0ID09IEludFJlY3QoKSA/
IEludFJlY3QoKSA6IG1fcmVuZGVyZXItPmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRSZWN0KGxv
Y2FsUmVjdCksIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKS5lbmNsb3NpbmdCb3VuZGluZ0JveCgp
OworICAgIHJldHVybiBsb2NhbFJlY3QgPT0gSW50UmVjdCgpID8gSW50UmVjdCgpIDogbV9yZW5k
ZXJlci0+bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3QobG9jYWxSZWN0KSkuZW5jbG9zaW5n
Qm91bmRpbmdCb3goKTsKIH0KIAogYm9vbCByZW5kZXJPYmplY3RDb250YWluc1Bvc2l0aW9uKFJl
bmRlck9iamVjdCogdGFyZ2V0LCBjb25zdCBQb3NpdGlvbiYgcG9zaXRpb24pCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVQb3NpdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlUG9zaXRpb24uY3BwCShyZXZpc2lvbiAxMzc0ODYp
CisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVQb3NpdGlvbi5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTYyNCw3ICs2MjQsNyBAQCBJbnRSZWN0IFZpc2libGVQb3NpdGlvbjo6YWJzb2x1
dGVDYXJldEJvCiAgICAgaWYgKGxvY2FsUmVjdC5pc0VtcHR5KCkgfHwgIXJlbmRlcmVyKQogICAg
ICAgICByZXR1cm4gSW50UmVjdCgpOwogCi0gICAgcmV0dXJuIHJlbmRlcmVyLT5sb2NhbFRvQWJz
b2x1dGVRdWFkKEZsb2F0UmVjdChsb2NhbFJlY3QpLCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jtcyku
ZW5jbG9zaW5nQm91bmRpbmdCb3goKTsKKyAgICByZXR1cm4gcmVuZGVyZXItPmxvY2FsVG9BYnNv
bHV0ZVF1YWQoRmxvYXRSZWN0KGxvY2FsUmVjdCkpLmVuY2xvc2luZ0JvdW5kaW5nQm94KCk7CiB9
CiAKIGludCBWaXNpYmxlUG9zaXRpb246OmxpbmVEaXJlY3Rpb25Qb2ludEZvckJsb2NrRGlyZWN0
aW9uTmF2aWdhdGlvbigpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxl
Y3RFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxl
Y3RFbGVtZW50LmNwcAkocmV2aXNpb24gMTM3NDg2KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MU2VsZWN0RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyODYsNyArMTI4Niw3IEBA
IHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6Omxpc3RCb3hEZWZhdWx0RXYKIAogICAgICAgICAvLyBD
b252ZXJ0IHRvIGNvb3JkcyByZWxhdGl2ZSB0byB0aGUgbGlzdCBib3ggaWYgbmVlZGVkLgogICAg
ICAgICBNb3VzZUV2ZW50KiBtb3VzZUV2ZW50ID0gc3RhdGljX2Nhc3Q8TW91c2VFdmVudCo+KGV2
ZW50KTsKLSAgICAgICAgSW50UG9pbnQgbG9jYWxPZmZzZXQgPSByb3VuZGVkSW50UG9pbnQocmVu
ZGVyZXIoKS0+YWJzb2x1dGVUb0xvY2FsKG1vdXNlRXZlbnQtPmFic29sdXRlTG9jYXRpb24oKSwg
VXNlVHJhbnNmb3JtcyB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKSk7CisgICAgICAgIEludFBv
aW50IGxvY2FsT2Zmc2V0ID0gcm91bmRlZEludFBvaW50KHJlbmRlcmVyKCktPmFic29sdXRlVG9M
b2NhbChtb3VzZUV2ZW50LT5hYnNvbHV0ZUxvY2F0aW9uKCksIFVzZVRyYW5zZm9ybXMpKTsKICAg
ICAgICAgaW50IGxpc3RJbmRleCA9IHRvUmVuZGVyTGlzdEJveChyZW5kZXJlcigpKS0+bGlzdElu
ZGV4QXRPZmZzZXQodG9TaXplKGxvY2FsT2Zmc2V0KSk7CiAgICAgICAgIGlmIChsaXN0SW5kZXgg
Pj0gMCkgewogICAgICAgICAgICAgaWYgKCFkaXNhYmxlZCgpKSB7CkBAIC0xMzA2LDcgKzEzMDYs
NyBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpsaXN0Qm94RGVmYXVsdEV2CiAgICAgICAgIGlm
IChtb3VzZUV2ZW50LT5idXR0b24oKSAhPSBMZWZ0QnV0dG9uIHx8ICFtb3VzZUV2ZW50LT5idXR0
b25Eb3duKCkpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgSW50UG9pbnQgbG9jYWxP
ZmZzZXQgPSByb3VuZGVkSW50UG9pbnQocmVuZGVyZXIoKS0+YWJzb2x1dGVUb0xvY2FsKG1vdXNl
RXZlbnQtPmFic29sdXRlTG9jYXRpb24oKSwgVXNlVHJhbnNmb3JtcyB8IFNuYXBPZmZzZXRGb3JU
cmFuc2Zvcm1zKSk7CisgICAgICAgIEludFBvaW50IGxvY2FsT2Zmc2V0ID0gcm91bmRlZEludFBv
aW50KHJlbmRlcmVyKCktPmFic29sdXRlVG9Mb2NhbChtb3VzZUV2ZW50LT5hYnNvbHV0ZUxvY2F0
aW9uKCksIFVzZVRyYW5zZm9ybXMpKTsKICAgICAgICAgaW50IGxpc3RJbmRleCA9IHRvUmVuZGVy
TGlzdEJveChyZW5kZXJlcigpKS0+bGlzdEluZGV4QXRPZmZzZXQodG9TaXplKGxvY2FsT2Zmc2V0
KSk7CiAgICAgICAgIGlmIChsaXN0SW5kZXggPj0gMCkgewogICAgICAgICAgICAgaWYgKCFkaXNh
YmxlZCgpKSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVs
ZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRl
clRodW1iRWxlbWVudC5jcHAJKHJldmlzaW9uIDEzNzQ4NikKKysrIFNvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1OSw3
ICsyNTksNyBAQCB2b2lkIFNsaWRlclRodW1iRWxlbWVudDo6c2V0UG9zaXRpb25Gcm9tCiAgICAg
ICAgIHJldHVybjsKIAogICAgIGlucHV0LT5zZXRUZXh0QXNPZkxhc3RGb3JtQ29udHJvbENoYW5n
ZUV2ZW50KGlucHV0LT52YWx1ZSgpKTsKLSAgICBMYXlvdXRQb2ludCBvZmZzZXQgPSByb3VuZGVk
TGF5b3V0UG9pbnQoaW5wdXQtPnJlbmRlcmVyKCktPmFic29sdXRlVG9Mb2NhbChwb2ludCwgVXNl
VHJhbnNmb3JtcyB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKSk7CisgICAgTGF5b3V0UG9pbnQg
b2Zmc2V0ID0gcm91bmRlZExheW91dFBvaW50KGlucHV0LT5yZW5kZXJlcigpLT5hYnNvbHV0ZVRv
TG9jYWwocG9pbnQsIFVzZVRyYW5zZm9ybXMpKTsKICAgICBib29sIGlzVmVydGljYWwgPSBoYXNW
ZXJ0aWNhbEFwcGVhcmFuY2UoaW5wdXQpOwogICAgIGJvb2wgaXNMZWZ0VG9SaWdodERpcmVjdGlv
biA9IHJlbmRlckJveCgpLT5zdHlsZSgpLT5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCk7CiAgICAg
TGF5b3V0VW5pdCB0cmFja1NpemU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9T
cGluQnV0dG9uRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvU3BpbkJ1dHRvbkVsZW1lbnQuY3BwCShyZXZpc2lvbiAxMzc0ODYpCisrKyBTb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9TcGluQnV0dG9uRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTkxLDcgKzkxLDcgQEAgdm9pZCBTcGluQnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFu
ZAogICAgIH0KIAogICAgIE1vdXNlRXZlbnQqIG1vdXNlRXZlbnQgPSBzdGF0aWNfY2FzdDxNb3Vz
ZUV2ZW50Kj4oZXZlbnQpOwotICAgIEludFBvaW50IGxvY2FsID0gcm91bmRlZEludFBvaW50KGJv
eC0+YWJzb2x1dGVUb0xvY2FsKG1vdXNlRXZlbnQtPmFic29sdXRlTG9jYXRpb24oKSwgVXNlVHJh
bnNmb3JtcyB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKSk7CisgICAgSW50UG9pbnQgbG9jYWwg
PSByb3VuZGVkSW50UG9pbnQoYm94LT5hYnNvbHV0ZVRvTG9jYWwobW91c2VFdmVudC0+YWJzb2x1
dGVMb2NhdGlvbigpLCBVc2VUcmFuc2Zvcm1zKSk7CiAgICAgaWYgKG1vdXNlRXZlbnQtPnR5cGUo
KSA9PSBldmVudE5hbWVzKCkubW91c2Vkb3duRXZlbnQgJiYgbW91c2VFdmVudC0+YnV0dG9uKCkg
PT0gTGVmdEJ1dHRvbikgewogICAgICAgICBpZiAoYm94LT5waXhlbFNuYXBwZWRCb3JkZXJCb3hS
ZWN0KCkuY29udGFpbnMobG9jYWwpKSB7CiAgICAgICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGZ1
bmN0aW9ucyBvZiBIVE1MSW5wdXRFbGVtZW50IG1heSBydW4gSmF2YVNjcmlwdApJbmRleDogU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAkocmV2aXNpb24gMTM3NDg2KQorKysgU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNTA3LDcgKzM1MDcsNyBA
QCB2b2lkIEZyYW1lVmlldzo6YWRqdXN0UGFnZUhlaWdodERlcHJlY2F0CiAKIEludFJlY3QgRnJh
bWVWaWV3Ojpjb252ZXJ0RnJvbVJlbmRlcmVyKGNvbnN0IFJlbmRlck9iamVjdCogcmVuZGVyZXIs
IGNvbnN0IEludFJlY3QmIHJlbmRlcmVyUmVjdCkgY29uc3QKIHsKLSAgICBJbnRSZWN0IHJlY3Qg
PSByZW5kZXJlci0+bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3QocmVuZGVyZXJSZWN0KSwg
U25hcE9mZnNldEZvclRyYW5zZm9ybXMpLmVuY2xvc2luZ0JvdW5kaW5nQm94KCk7CisgICAgSW50
UmVjdCByZWN0ID0gcmVuZGVyZXItPmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRSZWN0KHJlbmRl
cmVyUmVjdCkpLmVuY2xvc2luZ0JvdW5kaW5nQm94KCk7CiAKICAgICAvLyBDb252ZXJ0IGZyb20g
cGFnZSAoImFic29sdXRlIikgdG8gRnJhbWVWaWV3IGNvb3JkaW5hdGVzLgogICAgIGlmICghZGVs
ZWdhdGVzU2Nyb2xsaW5nKCkpCkBAIC0zNTI2LDEzICszNTI2LDEzIEBAIEludFJlY3QgRnJhbWVW
aWV3Ojpjb252ZXJ0VG9SZW5kZXJlcihjb24KIAogICAgIC8vIEZJWE1FOiB3ZSBkb24ndCBoYXZl
IGEgd2F5IHRvIG1hcCBhbiBhYnNvbHV0ZSByZWN0IGRvd24gdG8gYSBsb2NhbCBxdWFkLCBzbyBq
dXN0CiAgICAgLy8gbW92ZSB0aGUgcmVjdCBmb3Igbm93LgotICAgIHJlY3Quc2V0TG9jYXRpb24o
cm91bmRlZEludFBvaW50KHJlbmRlcmVyLT5hYnNvbHV0ZVRvTG9jYWwocmVjdC5sb2NhdGlvbigp
LCBVc2VUcmFuc2Zvcm1zIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpKSk7CisgICAgcmVjdC5z
ZXRMb2NhdGlvbihyb3VuZGVkSW50UG9pbnQocmVuZGVyZXItPmFic29sdXRlVG9Mb2NhbChyZWN0
LmxvY2F0aW9uKCksIFVzZVRyYW5zZm9ybXMpKSk7CiAgICAgcmV0dXJuIHJlY3Q7CiB9CiAKIElu
dFBvaW50IEZyYW1lVmlldzo6Y29udmVydEZyb21SZW5kZXJlcihjb25zdCBSZW5kZXJPYmplY3Qq
IHJlbmRlcmVyLCBjb25zdCBJbnRQb2ludCYgcmVuZGVyZXJQb2ludCkgY29uc3QKIHsKLSAgICBJ
bnRQb2ludCBwb2ludCA9IHJvdW5kZWRJbnRQb2ludChyZW5kZXJlci0+bG9jYWxUb0Fic29sdXRl
KHJlbmRlcmVyUG9pbnQsIFVzZVRyYW5zZm9ybXMgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jtcykp
OworICAgIEludFBvaW50IHBvaW50ID0gcm91bmRlZEludFBvaW50KHJlbmRlcmVyLT5sb2NhbFRv
QWJzb2x1dGUocmVuZGVyZXJQb2ludCwgVXNlVHJhbnNmb3JtcykpOwogCiAgICAgLy8gQ29udmVy
dCBmcm9tIHBhZ2UgKCJhYnNvbHV0ZSIpIHRvIEZyYW1lVmlldyBjb29yZGluYXRlcy4KICAgICBp
ZiAoIWRlbGVnYXRlc1Njcm9sbGluZygpKQpAQCAtMzU0OCw3ICszNTQ4LDcgQEAgSW50UG9pbnQg
RnJhbWVWaWV3Ojpjb252ZXJ0VG9SZW5kZXJlcihjbwogICAgIGlmICghZGVsZWdhdGVzU2Nyb2xs
aW5nKCkpCiAgICAgICAgIHBvaW50ICs9IEludFNpemUoc2Nyb2xsWCgpLCBzY3JvbGxZKCkpOwog
Ci0gICAgcmV0dXJuIHJvdW5kZWRJbnRQb2ludChyZW5kZXJlci0+YWJzb2x1dGVUb0xvY2FsKHBv
aW50LCBVc2VUcmFuc2Zvcm1zIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpKTsKKyAgICByZXR1
cm4gcm91bmRlZEludFBvaW50KHJlbmRlcmVyLT5hYnNvbHV0ZVRvTG9jYWwocG9pbnQsIFVzZVRy
YW5zZm9ybXMpKTsKIH0KIAogSW50UmVjdCBGcmFtZVZpZXc6OmNvbnZlcnRUb0NvbnRhaW5pbmdW
aWV3KGNvbnN0IEludFJlY3QmIGxvY2FsUmVjdCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtU3RhdGUuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNm
b3JtU3RhdGUuY3BwCShyZXZpc2lvbiAxMzc0ODYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybVN0YXRlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzIsNiArMzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFRyYW5zZm9ybVN0YXRlJiBU
cmFuc2Zvcm1TdGF0ZTo6b3BlcmF0b3I9KGNvbnN0IFRyYW5zZm9ybVN0YXRlJiBvdGhlcikKIHsK
KyAgICBtX2FjY3VtdWxhdGVkT2Zmc2V0ID0gb3RoZXIubV9hY2N1bXVsYXRlZE9mZnNldDsKICAg
ICBtX21hcFBvaW50ID0gb3RoZXIubV9tYXBQb2ludDsKICAgICBtX21hcFF1YWQgPSBvdGhlci5t
X21hcFF1YWQ7CiAgICAgaWYgKG1fbWFwUG9pbnQpCkBAIC00OSwzMiArNTAsNTUgQEAgVHJhbnNm
b3JtU3RhdGUmIFRyYW5zZm9ybVN0YXRlOjpvcGVyYXRvcgogICAgIHJldHVybiAqdGhpczsKIH0K
IAotdm9pZCBUcmFuc2Zvcm1TdGF0ZTo6bW92ZShMYXlvdXRVbml0IHgsIExheW91dFVuaXQgeSwg
VHJhbnNmb3JtQWNjdW11bGF0aW9uIGFjY3VtdWxhdGUpCit2b2lkIFRyYW5zZm9ybVN0YXRlOjp0
cmFuc2xhdGVUcmFuc2Zvcm0oY29uc3QgSW50U2l6ZSYgb2Zmc2V0KQogewotICAgIGlmIChtX2Fj
Y3VtdWxhdGluZ1RyYW5zZm9ybSAmJiBtX2FjY3VtdWxhdGVkVHJhbnNmb3JtKSB7Ci0gICAgICAg
IC8vIElmIHdlJ3JlIGFjY3VtdWxhdGluZyBpbnRvIGFuIGV4aXN0aW5nIHRyYW5zZm9ybSwgYXBw
bHkgdGhlIHRyYW5zbGF0aW9uLgotICAgICAgICBpZiAobV9kaXJlY3Rpb24gPT0gQXBwbHlUcmFu
c2Zvcm1EaXJlY3Rpb24pCi0gICAgICAgICAgICBtX2FjY3VtdWxhdGVkVHJhbnNmb3JtLT50cmFu
c2xhdGVSaWdodCh4LCB5KTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgbV9hY2N1bXVsYXRl
ZFRyYW5zZm9ybS0+dHJhbnNsYXRlKHgsIHkpOwotICAgICAgICAKLSAgICAgICAgLy8gVGhlbiBm
bGF0dGVuIGlmIG5lY2Vzc2FyeS4KLSAgICAgICAgaWYgKGFjY3VtdWxhdGUgPT0gRmxhdHRlblRy
YW5zZm9ybSkKLSAgICAgICAgICAgIGZsYXR0ZW4oKTsKLSAgICB9IGVsc2UgewotICAgICAgICAv
LyBKdXN0IG1vdmUgdGhlIHBvaW50IGFuZCwgb3B0aW9uYWxseSwgdGhlIHF1YWQuCi0gICAgICAg
IGlmIChtX2RpcmVjdGlvbiA9PSBVbmFwcGx5SW52ZXJzZVRyYW5zZm9ybURpcmVjdGlvbikgewot
ICAgICAgICAgICAgeCA9IC14OwotICAgICAgICAgICAgeSA9IC15OwotICAgICAgICB9Ci0gICAg
ICAgIGlmIChtX21hcFBvaW50KQotICAgICAgICAgICAgbV9sYXN0UGxhbmFyUG9pbnQubW92ZSh4
LCB5KTsKLSAgICAgICAgaWYgKG1fbWFwUXVhZCkKLSAgICAgICAgICAgIG1fbGFzdFBsYW5hclF1
YWQubW92ZSh4LCB5KTsKKyAgICBpZiAobV9kaXJlY3Rpb24gPT0gQXBwbHlUcmFuc2Zvcm1EaXJl
Y3Rpb24pCisgICAgICAgIG1fYWNjdW11bGF0ZWRUcmFuc2Zvcm0tPnRyYW5zbGF0ZVJpZ2h0KG9m
ZnNldC53aWR0aCgpLCBvZmZzZXQuaGVpZ2h0KCkpOworICAgIGVsc2UKKyAgICAgICAgbV9hY2N1
bXVsYXRlZFRyYW5zZm9ybS0+dHJhbnNsYXRlKG9mZnNldC53aWR0aCgpLCBvZmZzZXQuaGVpZ2h0
KCkpOworfQorCit2b2lkIFRyYW5zZm9ybVN0YXRlOjp0cmFuc2xhdGVNYXBwZWRDb29yZGluYXRl
cyhjb25zdCBJbnRTaXplJiBvZmZzZXQpCit7CisgICAgSW50U2l6ZSBhZGp1c3RlZE9mZnNldCA9
IChtX2RpcmVjdGlvbiA9PSBBcHBseVRyYW5zZm9ybURpcmVjdGlvbikgPyBvZmZzZXQgOiAtb2Zm
c2V0OworICAgIGlmIChtX21hcFBvaW50KQorICAgICAgICBtX2xhc3RQbGFuYXJQb2ludC5tb3Zl
KGFkanVzdGVkT2Zmc2V0KTsKKyAgICBpZiAobV9tYXBRdWFkKQorICAgICAgICBtX2xhc3RQbGFu
YXJRdWFkLm1vdmUoYWRqdXN0ZWRPZmZzZXQpOworfQorCit2b2lkIFRyYW5zZm9ybVN0YXRlOjpt
b3ZlKGNvbnN0IExheW91dFNpemUmIG9mZnNldCwgVHJhbnNmb3JtQWNjdW11bGF0aW9uIGFjY3Vt
dWxhdGUpCit7CisgICAgaWYgKGFjY3VtdWxhdGUgPT0gRmxhdHRlblRyYW5zZm9ybSB8fCAhbV9h
Y2N1bXVsYXRlZFRyYW5zZm9ybSkKKyAgICAgICAgbV9hY2N1bXVsYXRlZE9mZnNldCArPSBvZmZz
ZXQ7CisgICAgZWxzZSB7CisgICAgICAgIGFwcGx5QWNjdW11bGF0ZWRPZmZzZXQoKTsKKyAgICAg
ICAgaWYgKG1fYWNjdW11bGF0aW5nVHJhbnNmb3JtICYmIG1fYWNjdW11bGF0ZWRUcmFuc2Zvcm0p
IHsKKyAgICAgICAgICAgIC8vIElmIHdlJ3JlIGFjY3VtdWxhdGluZyBpbnRvIGFuIGV4aXN0aW5n
IHRyYW5zZm9ybSwgYXBwbHkgdGhlIHRyYW5zbGF0aW9uLgorICAgICAgICAgICAgdHJhbnNsYXRl
VHJhbnNmb3JtKHJvdW5kZWRJbnRTaXplKG9mZnNldCkpOworCisgICAgICAgICAgICAvLyBUaGVu
IGZsYXR0ZW4gaWYgbmVjZXNzYXJ5LgorICAgICAgICAgICAgaWYgKGFjY3VtdWxhdGUgPT0gRmxh
dHRlblRyYW5zZm9ybSkKKyAgICAgICAgICAgICAgICBmbGF0dGVuKCk7CisgICAgICAgIH0gZWxz
ZQorICAgICAgICAgICAgLy8gSnVzdCBtb3ZlIHRoZSBwb2ludCBhbmQvb3IgcXVhZC4KKyAgICAg
ICAgICAgIHRyYW5zbGF0ZU1hcHBlZENvb3JkaW5hdGVzKHJvdW5kZWRJbnRTaXplKG9mZnNldCkp
OwogICAgIH0KICAgICBtX2FjY3VtdWxhdGluZ1RyYW5zZm9ybSA9IGFjY3VtdWxhdGUgPT0gQWNj
dW11bGF0ZVRyYW5zZm9ybTsKIH0KIAordm9pZCBUcmFuc2Zvcm1TdGF0ZTo6YXBwbHlBY2N1bXVs
YXRlZE9mZnNldCgpCit7CisgICAgSW50U2l6ZSBvZmZzZXQgPSByb3VuZGVkSW50U2l6ZShtX2Fj
Y3VtdWxhdGVkT2Zmc2V0KTsKKyAgICBtX2FjY3VtdWxhdGVkT2Zmc2V0ID0gTGF5b3V0U2l6ZSgp
OworICAgIGlmICghb2Zmc2V0LmlzWmVybygpKSB7CisgICAgICAgIGlmIChtX2FjY3VtdWxhdGVk
VHJhbnNmb3JtKQorICAgICAgICAgICAgdHJhbnNsYXRlVHJhbnNmb3JtKG9mZnNldCk7CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIHRyYW5zbGF0ZU1hcHBlZENvb3JkaW5hdGVzKG9mZnNldCk7
CisgICAgfQorfQorCiAvLyBGSVhNRTogV2UgdHJhbnNmb3JtIEFmZmluZVRyYW5zZm9ybSB0byBU
cmFuc2Zvcm1hdGlvbk1hdHJpeC4gVGhpcyBpcyByYXRoZXIgaW5lZmZpY2llbnQuCiB2b2lkIFRy
YW5zZm9ybVN0YXRlOjphcHBseVRyYW5zZm9ybShjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHRyYW5z
Zm9ybUZyb21Db250YWluZXIsIFRyYW5zZm9ybUFjY3VtdWxhdGlvbiBhY2N1bXVsYXRlLCBib29s
KiB3YXNDbGFtcGVkKQogewpAQCAtODYsNiArMTEwLDggQEAgdm9pZCBUcmFuc2Zvcm1TdGF0ZTo6
YXBwbHlUcmFuc2Zvcm0oY29ucwogICAgIGlmICh3YXNDbGFtcGVkKQogICAgICAgICAqd2FzQ2xh
bXBlZCA9IGZhbHNlOwogCisgICAgYXBwbHlBY2N1bXVsYXRlZE9mZnNldCgpOworCiAgICAgLy8g
SWYgd2UgaGF2ZSBhbiBhY2N1bXVsYXRlZCB0cmFuc2Zvcm0gZnJvbSBsYXN0IHRpbWUsIG11bHRp
cGx5IGluIHRoaXMgdHJhbnNmb3JtCiAgICAgaWYgKG1fYWNjdW11bGF0ZWRUcmFuc2Zvcm0pIHsK
ICAgICAgICAgaWYgKG1fZGlyZWN0aW9uID09IEFwcGx5VHJhbnNmb3JtRGlyZWN0aW9uKQpAQCAt
MTA5LDYgKzEzNSw4IEBAIHZvaWQgVHJhbnNmb3JtU3RhdGU6OmZsYXR0ZW4oYm9vbCogd2FzQ2wK
ICAgICBpZiAod2FzQ2xhbXBlZCkKICAgICAgICAgKndhc0NsYW1wZWQgPSBmYWxzZTsKIAorICAg
IGFwcGx5QWNjdW11bGF0ZWRPZmZzZXQoKTsKKwogICAgIGlmICghbV9hY2N1bXVsYXRlZFRyYW5z
Zm9ybSkgewogICAgICAgICBtX2FjY3VtdWxhdGluZ1RyYW5zZm9ybSA9IGZhbHNlOwogICAgICAg
ICByZXR1cm47CkBAIC0xMjIsMTMgKzE1MCwxNSBAQCBGbG9hdFBvaW50IFRyYW5zZm9ybVN0YXRl
OjptYXBwZWRQb2ludChiCiAgICAgaWYgKHdhc0NsYW1wZWQpCiAgICAgICAgICp3YXNDbGFtcGVk
ID0gZmFsc2U7CiAKKyAgICBGbG9hdFBvaW50IHBvaW50ID0gbV9sYXN0UGxhbmFyUG9pbnQ7Cisg
ICAgcG9pbnQubW92ZSgobV9kaXJlY3Rpb24gPT0gQXBwbHlUcmFuc2Zvcm1EaXJlY3Rpb24pID8g
bV9hY2N1bXVsYXRlZE9mZnNldCA6IC1tX2FjY3VtdWxhdGVkT2Zmc2V0KTsKICAgICBpZiAoIW1f
YWNjdW11bGF0ZWRUcmFuc2Zvcm0pCi0gICAgICAgIHJldHVybiBtX2xhc3RQbGFuYXJQb2ludDsK
KyAgICAgICAgcmV0dXJuIHBvaW50OwogCiAgICAgaWYgKG1fZGlyZWN0aW9uID09IEFwcGx5VHJh
bnNmb3JtRGlyZWN0aW9uKQotICAgICAgICByZXR1cm4gbV9hY2N1bXVsYXRlZFRyYW5zZm9ybS0+
bWFwUG9pbnQobV9sYXN0UGxhbmFyUG9pbnQpOworICAgICAgICByZXR1cm4gbV9hY2N1bXVsYXRl
ZFRyYW5zZm9ybS0+bWFwUG9pbnQocG9pbnQpOwogCi0gICAgcmV0dXJuIG1fYWNjdW11bGF0ZWRU
cmFuc2Zvcm0tPmludmVyc2UoKS5wcm9qZWN0UG9pbnQobV9sYXN0UGxhbmFyUG9pbnQsIHdhc0Ns
YW1wZWQpOworICAgIHJldHVybiBtX2FjY3VtdWxhdGVkVHJhbnNmb3JtLT5pbnZlcnNlKCkucHJv
amVjdFBvaW50KHBvaW50LCB3YXNDbGFtcGVkKTsKIH0KIAogRmxvYXRRdWFkIFRyYW5zZm9ybVN0
YXRlOjptYXBwZWRRdWFkKGJvb2wqIHdhc0NsYW1wZWQpIGNvbnN0CkBAIC0xMzYsMTMgKzE2Niwx
NSBAQCBGbG9hdFF1YWQgVHJhbnNmb3JtU3RhdGU6Om1hcHBlZFF1YWQoYm9vCiAgICAgaWYgKHdh
c0NsYW1wZWQpCiAgICAgICAgICp3YXNDbGFtcGVkID0gZmFsc2U7CiAKKyAgICBGbG9hdFF1YWQg
cXVhZCA9IG1fbGFzdFBsYW5hclF1YWQ7CisgICAgcXVhZC5tb3ZlKChtX2RpcmVjdGlvbiA9PSBB
cHBseVRyYW5zZm9ybURpcmVjdGlvbikgPyBtX2FjY3VtdWxhdGVkT2Zmc2V0IDogLW1fYWNjdW11
bGF0ZWRPZmZzZXQpOwogICAgIGlmICghbV9hY2N1bXVsYXRlZFRyYW5zZm9ybSkKLSAgICAgICAg
cmV0dXJuIG1fbGFzdFBsYW5hclF1YWQ7CisgICAgICAgIHJldHVybiBxdWFkOwogCiAgICAgaWYg
KG1fZGlyZWN0aW9uID09IEFwcGx5VHJhbnNmb3JtRGlyZWN0aW9uKQotICAgICAgICByZXR1cm4g
bV9hY2N1bXVsYXRlZFRyYW5zZm9ybS0+bWFwUXVhZChtX2xhc3RQbGFuYXJRdWFkKTsKKyAgICAg
ICAgcmV0dXJuIG1fYWNjdW11bGF0ZWRUcmFuc2Zvcm0tPm1hcFF1YWQocXVhZCk7CiAKLSAgICBy
ZXR1cm4gbV9hY2N1bXVsYXRlZFRyYW5zZm9ybS0+aW52ZXJzZSgpLnByb2plY3RRdWFkKG1fbGFz
dFBsYW5hclF1YWQsIHdhc0NsYW1wZWQpOworICAgIHJldHVybiBtX2FjY3VtdWxhdGVkVHJhbnNm
b3JtLT5pbnZlcnNlKCkucHJvamVjdFF1YWQocXVhZCwgd2FzQ2xhbXBlZCk7CiB9CiAKIHZvaWQg
VHJhbnNmb3JtU3RhdGU6OmZsYXR0ZW5XaXRoVHJhbnNmb3JtKGNvbnN0IFRyYW5zZm9ybWF0aW9u
TWF0cml4JiB0LCBib29sKiB3YXNDbGFtcGVkKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1TdGF0ZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtU3RhdGUu
aAkocmV2aXNpb24gMTM3NDg2KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dHJhbnNmb3Jtcy9UcmFuc2Zvcm1TdGF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC03NCwxMyArNzQs
MTMgQEAgcHVibGljOgogICAgIFRyYW5zZm9ybVN0YXRlJiBvcGVyYXRvcj0oY29uc3QgVHJhbnNm
b3JtU3RhdGUmKTsKICAgICAKICAgICB2b2lkIHNldFF1YWQoY29uc3QgRmxvYXRRdWFkJiBxdWFk
KSB7IG1fbGFzdFBsYW5hclF1YWQgPSBxdWFkOyB9Ci0gICAgCi0gICAgdm9pZCBtb3ZlKGNvbnN0
IExheW91dFNpemUmIHMsIFRyYW5zZm9ybUFjY3VtdWxhdGlvbiBhY2N1bXVsYXRlID0gRmxhdHRl
blRyYW5zZm9ybSkKKworICAgIHZvaWQgbW92ZShMYXlvdXRVbml0IHgsIExheW91dFVuaXQgeSwg
VHJhbnNmb3JtQWNjdW11bGF0aW9uIGFjY3VtdWxhdGUgPSBGbGF0dGVuVHJhbnNmb3JtKQogICAg
IHsKLSAgICAgICAgbW92ZShzLndpZHRoKCksIHMuaGVpZ2h0KCksIGFjY3VtdWxhdGUpOworICAg
ICAgICBtb3ZlKExheW91dFNpemUoeCwgeSksIGFjY3VtdWxhdGUpOwogICAgIH0KLSAgICAKLSAg
ICB2b2lkIG1vdmUoTGF5b3V0VW5pdCB4LCBMYXlvdXRVbml0IHksIFRyYW5zZm9ybUFjY3VtdWxh
dGlvbiA9IEZsYXR0ZW5UcmFuc2Zvcm0pOworCisgICAgdm9pZCBtb3ZlKGNvbnN0IExheW91dFNp
emUmLCBUcmFuc2Zvcm1BY2N1bXVsYXRpb24gPSBGbGF0dGVuVHJhbnNmb3JtKTsKICAgICB2b2lk
IGFwcGx5VHJhbnNmb3JtKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgdHJhbnNmb3JtRnJvbUNvbnRh
aW5lciwgVHJhbnNmb3JtQWNjdW11bGF0aW9uID0gRmxhdHRlblRyYW5zZm9ybSwgYm9vbCogd2Fz
Q2xhbXBlZCA9IDApOwogICAgIHZvaWQgYXBwbHlUcmFuc2Zvcm0oY29uc3QgVHJhbnNmb3JtYXRp
b25NYXRyaXgmIHRyYW5zZm9ybUZyb21Db250YWluZXIsIFRyYW5zZm9ybUFjY3VtdWxhdGlvbiA9
IEZsYXR0ZW5UcmFuc2Zvcm0sIGJvb2wqIHdhc0NsYW1wZWQgPSAwKTsKICAgICB2b2lkIGZsYXR0
ZW4oYm9vbCogd2FzQ2xhbXBlZCA9IDApOwpAQCAtOTQsMTMgKzk0LDE3IEBAIHB1YmxpYzoKICAg
ICBGbG9hdFF1YWQgbWFwcGVkUXVhZChib29sKiB3YXNDbGFtcGVkID0gMCkgY29uc3Q7CiAKIHBy
aXZhdGU6CisgICAgdm9pZCB0cmFuc2xhdGVUcmFuc2Zvcm0oY29uc3QgSW50U2l6ZSYpOworICAg
IHZvaWQgdHJhbnNsYXRlTWFwcGVkQ29vcmRpbmF0ZXMoY29uc3QgSW50U2l6ZSYpOwogICAgIHZv
aWQgZmxhdHRlbldpdGhUcmFuc2Zvcm0oY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBib29s
KiB3YXNDbGFtcGVkKTsKKyAgICB2b2lkIGFwcGx5QWNjdW11bGF0ZWRPZmZzZXQoKTsKICAgICAK
ICAgICBGbG9hdFBvaW50IG1fbGFzdFBsYW5hclBvaW50OwogICAgIEZsb2F0UXVhZCBtX2xhc3RQ
bGFuYXJRdWFkOwogCiAgICAgLy8gV2Ugb25seSBhbGxvY2F0ZSB0aGUgdHJhbnNmb3JtIGlmIHdl
IG5lZWQgdG8KICAgICBPd25QdHI8VHJhbnNmb3JtYXRpb25NYXRyaXg+IG1fYWNjdW11bGF0ZWRU
cmFuc2Zvcm07CisgICAgTGF5b3V0U2l6ZSBtX2FjY3VtdWxhdGVkT2Zmc2V0OwogICAgIGJvb2wg
bV9hY2N1bXVsYXRpbmdUcmFuc2Zvcm07CiAgICAgYm9vbCBtX21hcFBvaW50LCBtX21hcFF1YWQ7
CiAgICAgVHJhbnNmb3JtRGlyZWN0aW9uIG1fZGlyZWN0aW9uOwpJbmRleDogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcAkocmV2aXNpb24gMTM3NDg2KQorKysgU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xMTI0LDcgKzExMjQsNyBAQCB2b2lkIElubGluZVRleHRCb3g6OnBhaW50RG9jdW1lbnRNYXJr
ZXIoCiAgICAgICAgIC8vIGRpc3BsYXkgYSB0b29sVGlwLiBXZSBkb24ndCBkbyB0aGlzIGZvciBt
aXNzcGVsbGluZyBtYXJrZXJzLgogICAgICAgICBpZiAoZ3JhbW1hciB8fCBpc0RpY3RhdGlvbk1h
cmtlcikgewogICAgICAgICAgICAgbWFya2VyUmVjdC5tb3ZlKC1ib3hPcmlnaW4ueCgpLCAtYm94
T3JpZ2luLnkoKSk7Ci0gICAgICAgICAgICBtYXJrZXJSZWN0ID0gcmVuZGVyZXIoKS0+bG9jYWxU
b0Fic29sdXRlUXVhZChGbG9hdFJlY3QobWFya2VyUmVjdCksIFNuYXBPZmZzZXRGb3JUcmFuc2Zv
cm1zKS5lbmNsb3NpbmdCb3VuZGluZ0JveCgpOworICAgICAgICAgICAgbWFya2VyUmVjdCA9IHJl
bmRlcmVyKCktPmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRSZWN0KG1hcmtlclJlY3QpKS5lbmNs
b3NpbmdCb3VuZGluZ0JveCgpOwogICAgICAgICAgICAgdG9SZW5kZXJlZERvY3VtZW50TWFya2Vy
KG1hcmtlciktPnNldFJlbmRlcmVkUmVjdChtYXJrZXJSZWN0KTsKICAgICAgICAgfQogICAgIH0K
QEAgLTExNjIsNyArMTE2Miw3IEBAIHZvaWQgSW5saW5lVGV4dEJveDo6cGFpbnRUZXh0TWF0Y2hN
YXJrZXIKIAogICAgIC8vIEFsd2F5cyBjb21wdXRlIGFuZCBzdG9yZSB0aGUgcmVjdCBhc3NvY2lh
dGVkIHdpdGggdGhpcyBtYXJrZXIuIFRoZSBjb21wdXRlZCByZWN0IGlzIGluIGFic29sdXRlIGNv
b3JkaW5hdGVzLgogICAgIEludFJlY3QgbWFya2VyUmVjdCA9IGVuY2xvc2luZ0ludFJlY3QoZm9u
dC5zZWxlY3Rpb25SZWN0Rm9yVGV4dChydW4sIEludFBvaW50KHgoKSwgc2VsZWN0aW9uVG9wKCkp
LCBzZWxIZWlnaHQsIHNQb3MsIGVQb3MpKTsKLSAgICBtYXJrZXJSZWN0ID0gcmVuZGVyZXIoKS0+
bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3QobWFya2VyUmVjdCksIFNuYXBPZmZzZXRGb3JU
cmFuc2Zvcm1zKS5lbmNsb3NpbmdCb3VuZGluZ0JveCgpOworICAgIG1hcmtlclJlY3QgPSByZW5k
ZXJlcigpLT5sb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UmVjdChtYXJrZXJSZWN0KSkuZW5jbG9z
aW5nQm91bmRpbmdCb3goKTsKICAgICB0b1JlbmRlcmVkRG9jdW1lbnRNYXJrZXIobWFya2VyKS0+
c2V0UmVuZGVyZWRSZWN0KG1hcmtlclJlY3QpOwogICAgIAogICAgIC8vIE9wdGlvbmFsbHkgaGln
aGxpZ2h0IHRoZSB0ZXh0CkBAIC0xMTkwLDcgKzExOTAsNyBAQCB2b2lkIElubGluZVRleHRCb3g6
OmNvbXB1dGVSZWN0Rm9yUmVwbGFjCiAgICAgCiAgICAgLy8gQ29tcHV0ZSBhbmQgc3RvcmUgdGhl
IHJlY3QgYXNzb2NpYXRlZCB3aXRoIHRoaXMgbWFya2VyLgogICAgIEludFJlY3QgbWFya2VyUmVj
dCA9IGVuY2xvc2luZ0ludFJlY3QoZm9udC5zZWxlY3Rpb25SZWN0Rm9yVGV4dChydW4sIHN0YXJ0
UG9pbnQsIGgsIHNQb3MsIGVQb3MpKTsKLSAgICBtYXJrZXJSZWN0ID0gcmVuZGVyZXIoKS0+bG9j
YWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3QobWFya2VyUmVjdCksIFNuYXBPZmZzZXRGb3JUcmFu
c2Zvcm1zKS5lbmNsb3NpbmdCb3VuZGluZ0JveCgpOworICAgIG1hcmtlclJlY3QgPSByZW5kZXJl
cigpLT5sb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UmVjdChtYXJrZXJSZWN0KSkuZW5jbG9zaW5n
Qm91bmRpbmdCb3goKTsKICAgICB0b1JlbmRlcmVkRG9jdW1lbnRNYXJrZXIobWFya2VyKS0+c2V0
UmVuZGVyZWRSZWN0KG1hcmtlclJlY3QpOwogfQogICAgIApJbmRleDogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0xheW91dFN0YXRlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvTGF5b3V0U3RhdGUuY3BwCShyZXZpc2lvbiAxMzc0ODYpCisrKyBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvTGF5b3V0U3RhdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTYsNyAr
MTU2LDcgQEAgTGF5b3V0U3RhdGU6OkxheW91dFN0YXRlKFJlbmRlck9iamVjdCogcgogI2VuZGlm
CiB7CiAgICAgUmVuZGVyT2JqZWN0KiBjb250YWluZXIgPSByb290LT5jb250YWluZXIoKTsKLSAg
ICBGbG9hdFBvaW50IGFic0NvbnRlbnRQb2ludCA9IGNvbnRhaW5lci0+bG9jYWxUb0Fic29sdXRl
KEZsb2F0UG9pbnQoKSwgVXNlVHJhbnNmb3JtcyB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKTsK
KyAgICBGbG9hdFBvaW50IGFic0NvbnRlbnRQb2ludCA9IGNvbnRhaW5lci0+bG9jYWxUb0Fic29s
dXRlKEZsb2F0UG9pbnQoKSwgVXNlVHJhbnNmb3Jtcyk7CiAgICAgbV9wYWludE9mZnNldCA9IExh
eW91dFNpemUoYWJzQ29udGVudFBvaW50LngoKSwgYWJzQ29udGVudFBvaW50LnkoKSk7CiAKICAg
ICBpZiAoY29udGFpbmVyLT5oYXNPdmVyZmxvd0NsaXAoKSkgewpJbmRleDogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveC5jcHAJKHJldmlzaW9uIDEzNzQ4NikKKysrIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDI2LDggKzE0
MjYsNiBAQCB2b2lkIFJlbmRlckJveDo6bWFwTG9jYWxUb0NvbnRhaW5lcihjb25zCiAgICAgICAg
ICp3YXNGaXhlZCA9IG1vZGUgJiBJc0ZpeGVkOwogICAgIAogICAgIExheW91dFNpemUgY29udGFp
bmVyT2Zmc2V0ID0gb2Zmc2V0RnJvbUNvbnRhaW5lcihvLCByb3VuZGVkTGF5b3V0UG9pbnQodHJh
bnNmb3JtU3RhdGUubWFwcGVkUG9pbnQoKSkpOwotICAgIGlmIChtb2RlICYgU25hcE9mZnNldEZv
clRyYW5zZm9ybXMpCi0gICAgICAgIGNvbnRhaW5lck9mZnNldCA9IHJvdW5kZWRJbnRTaXplKGNv
bnRhaW5lck9mZnNldCk7CiAgICAgCiAgICAgYm9vbCBwcmVzZXJ2ZTNEID0gbW9kZSAmIFVzZVRy
YW5zZm9ybXMgJiYgKG8tPnN0eWxlKCktPnByZXNlcnZlczNEKCkgfHwgc3R5bGUoKS0+cHJlc2Vy
dmVzM0QoKSk7CiAgICAgaWYgKG1vZGUgJiBVc2VUcmFuc2Zvcm1zICYmIHNob3VsZFVzZVRyYW5z
Zm9ybUZyb21Db250YWluZXIobykpIHsKQEAgLTE0NzgsOCArMTQ3Niw2IEBAIGNvbnN0IFJlbmRl
ck9iamVjdCogUmVuZGVyQm94OjpwdXNoTWFwcGkKIAogICAgIGJvb2wgb2Zmc2V0RGVwZW5kc09u
UG9pbnQgPSBmYWxzZTsKICAgICBMYXlvdXRTaXplIGNvbnRhaW5lck9mZnNldCA9IG9mZnNldEZy
b21Db250YWluZXIoY29udGFpbmVyLCBMYXlvdXRQb2ludCgpLCAmb2Zmc2V0RGVwZW5kc09uUG9p
bnQpOwotICAgIGlmIChnZW9tZXRyeU1hcC5tYXBDb29yZGluYXRlc0ZsYWdzKCkgJiBTbmFwT2Zm
c2V0Rm9yVHJhbnNmb3JtcykKLSAgICAgICAgY29udGFpbmVyT2Zmc2V0ID0gcm91bmRlZEludFNp
emUoY29udGFpbmVyT2Zmc2V0KTsKIAogICAgIGlmIChjb250YWluZXItPmlzUmVuZGVyRmxvd1Ro
cmVhZCgpKQogICAgICAgICBvZmZzZXREZXBlbmRzT25Qb2ludCA9IHRydWU7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCShyZXZpc2lvbiAxMzc0ODYpCisrKyBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgJKHdvcmtpbmcgY29weSkKQEAgLTU5NSw3ICs1
OTUsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgCiAgICAgdmlydHVhbCBib29sIHNob3VsZENvbXB1dGVT
aXplQXNSZXBsYWNlZCgpIGNvbnN0IHsgcmV0dXJuIGlzUmVwbGFjZWQoKSAmJiAhaXNJbmxpbmVC
bG9ja09ySW5saW5lVGFibGUoKTsgfQogCi0gICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250
YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJh
bnNmb3JtU3RhdGUmLCBNYXBDb29yZGluYXRlc0ZsYWdzID0gQXBwbHlDb250YWluZXJGbGlwIHwg
U25hcE9mZnNldEZvclRyYW5zZm9ybXMsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3QgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5
ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBDb29y
ZGluYXRlc0ZsYWdzID0gQXBwbHlDb250YWluZXJGbGlwLCBib29sKiB3YXNGaXhlZCA9IDApIGNv
bnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgUmVuZGVyT2JqZWN0KiBwdXNoTWFwcGlu
Z1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqLCBSZW5kZXJHZW9tZXRy
eU1hcCYpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBtYXBBYnNvbHV0ZVRvTG9j
YWxQb2ludChNYXBDb29yZGluYXRlc0ZsYWdzLCBUcmFuc2Zvcm1TdGF0ZSYpIGNvbnN0OwogCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVj
dC5jcHAJKHJldmlzaW9uIDEzNzQ4NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCb3hNb2RlbE9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3MSw3ICs0NzEsNyBAQCB2
b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0Ojpjb21wdXRlU3RpY2t5CiAgICAgLy8gQ29tcHV0ZSB0
aGUgY29udGFpbmVyLXJlbGF0aXZlIGFyZWEgd2l0aGluIHdoaWNoIHRoZSBzdGlja3kgZWxlbWVu
dCBpcyBhbGxvd2VkIHRvIG1vdmUuCiAgICAgY29udGFpbmVyQ29udGVudFJlY3QubW92ZShtaW5M
ZWZ0TWFyZ2luLCBtaW5Ub3BNYXJnaW4pOwogICAgIGNvbnRhaW5lckNvbnRlbnRSZWN0LmNvbnRy
YWN0KG1pbkxlZnRNYXJnaW4gKyBtaW5SaWdodE1hcmdpbiwgbWluVG9wTWFyZ2luICsgbWluQm90
dG9tTWFyZ2luKTsKLSAgICBjb25zdHJhaW50cy5zZXRBYnNvbHV0ZUNvbnRhaW5pbmdCbG9ja1Jl
Y3QoY29udGFpbmluZ0Jsb2NrLT5sb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UmVjdChjb250YWlu
ZXJDb250ZW50UmVjdCksIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKS5ib3VuZGluZ0JveCgpKTsK
KyAgICBjb25zdHJhaW50cy5zZXRBYnNvbHV0ZUNvbnRhaW5pbmdCbG9ja1JlY3QoY29udGFpbmlu
Z0Jsb2NrLT5sb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UmVjdChjb250YWluZXJDb250ZW50UmVj
dCkpLmJvdW5kaW5nQm94KCkpOwogCiAgICAgTGF5b3V0UmVjdCBzdGlja3lCb3hSZWN0ID0gZnJh
bWVSZWN0Rm9yU3RpY2t5UG9zaXRpb25pbmcoKTsKICAgICBMYXlvdXRSZWN0IGZsaXBwZWRTdGlj
a3lCb3hSZWN0ID0gc3RpY2t5Qm94UmVjdDsKQEAgLTQ3OSw3ICs0NzksNyBAQCB2b2lkIFJlbmRl
ckJveE1vZGVsT2JqZWN0Ojpjb21wdXRlU3RpY2t5CiAgICAgTGF5b3V0UG9pbnQgc3RpY2t5TG9j
YXRpb24gPSBmbGlwcGVkU3RpY2t5Qm94UmVjdC5sb2NhdGlvbigpOwogCiAgICAgLy8gRklYTUU6
IHN1Y2tzIHRvIGNhbGwgbG9jYWxUb0Fic29sdXRlIGFnYWluLCBidXQgd2UgY2FuJ3QganVzdCBv
ZmZzZXQgZnJvbSB0aGUgcHJldmlvdXNseSBjb21wdXRlZCByZWN0IGlmIHRoZXJlIGFyZSB0cmFu
c2Zvcm1zLgotICAgIEZsb2F0UmVjdCBhYnNDb250YWluZXJGcmFtZSA9IGNvbnRhaW5pbmdCbG9j
ay0+bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBjb250YWluaW5n
QmxvY2stPnNpemUoKSksIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKS5ib3VuZGluZ0JveCgpOwor
ICAgIEZsb2F0UmVjdCBhYnNDb250YWluZXJGcmFtZSA9IGNvbnRhaW5pbmdCbG9jay0+bG9jYWxU
b0Fic29sdXRlUXVhZChGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBjb250YWluaW5nQmxvY2stPnNp
emUoKSkpLmJvdW5kaW5nQm94KCk7CiAgICAgLy8gV2UgY2FuJ3QgY2FsbCBsb2NhbFRvQWJzb2x1
dGUgb24gfHRoaXN8IGJlY2F1c2UgdGhhdCB3aWxsIHJlY3VyLiBGSVhNRTogRm9yIG5vdywgYXNz
dW1lIHRoYXQgfHRoaXN8IGlzIG5vdCB0cmFuc2Zvcm1lZC4KICAgICBGbG9hdFJlY3QgYWJzb2x1
dGVTdGlja3lCb3hSZWN0KGFic0NvbnRhaW5lckZyYW1lLmxvY2F0aW9uKCkgKyBzdGlja3lMb2Nh
dGlvbiwgZmxpcHBlZFN0aWNreUJveFJlY3Quc2l6ZSgpKTsKICAgICBjb25zdHJhaW50cy5zZXRB
YnNvbHV0ZVN0aWNreUJveFJlY3QoYWJzb2x1dGVTdGlja3lCb3hSZWN0KTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcAkocmV2
aXNpb24gMTM3NDg2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVk
T2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzU4LDcgKzM1OCw3IEBAIGJvb2wgUmVuZGVy
RW1iZWRkZWRPYmplY3Q6OmlzSW5VbmF2YWlsYWIKIAogYm9vbCBSZW5kZXJFbWJlZGRlZE9iamVj
dDo6aXNJblVuYXZhaWxhYmxlUGx1Z2luSW5kaWNhdG9yKE1vdXNlRXZlbnQqIGV2ZW50KSBjb25z
dAogewotICAgIHJldHVybiBpc0luVW5hdmFpbGFibGVQbHVnaW5JbmRpY2F0b3Iocm91bmRlZExh
eW91dFBvaW50KGFic29sdXRlVG9Mb2NhbChldmVudC0+YWJzb2x1dGVMb2NhdGlvbigpLCBVc2VU
cmFuc2Zvcm1zIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpKSk7CisgICAgcmV0dXJuIGlzSW5V
bmF2YWlsYWJsZVBsdWdpbkluZGljYXRvcihyb3VuZGVkTGF5b3V0UG9pbnQoYWJzb2x1dGVUb0xv
Y2FsKGV2ZW50LT5hYnNvbHV0ZUxvY2F0aW9uKCksIFVzZVRyYW5zZm9ybXMpKSk7CiB9CiAKIHN0
YXRpYyBib29sIHNob3VsZFVuYXZhaWxhYmxlUGx1Z2luTWVzc2FnZUJlQnV0dG9uKERvY3VtZW50
KiBkb2N1bWVudCwgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVh
c29uIHBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckZyYW1lU2V0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRnJhbWVTZXQuY3BwCShyZXZpc2lvbiAxMzc0ODYpCisrKyBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhbWVTZXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03
MDEsNyArNzAxLDcgQEAgYm9vbCBSZW5kZXJGcmFtZVNldDo6dXNlclJlc2l6ZShNb3VzZUV2ZQog
ICAgICAgICBpZiAobmVlZHNMYXlvdXQoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICAgICAgaWYgKGV2dC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3VzZWRvd25FdmVudCAmJiBl
dnQtPmJ1dHRvbigpID09IExlZnRCdXR0b24pIHsKLSAgICAgICAgICAgIEZsb2F0UG9pbnQgbG9j
YWxQb3MgPSBhYnNvbHV0ZVRvTG9jYWwoZXZ0LT5hYnNvbHV0ZUxvY2F0aW9uKCksIFVzZVRyYW5z
Zm9ybXMgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jtcyk7CisgICAgICAgICAgICBGbG9hdFBvaW50
IGxvY2FsUG9zID0gYWJzb2x1dGVUb0xvY2FsKGV2dC0+YWJzb2x1dGVMb2NhdGlvbigpLCBVc2VU
cmFuc2Zvcm1zKTsKICAgICAgICAgICAgIHN0YXJ0UmVzaXppbmcobV9jb2xzLCBsb2NhbFBvcy54
KCkpOwogICAgICAgICAgICAgc3RhcnRSZXNpemluZyhtX3Jvd3MsIGxvY2FsUG9zLnkoKSk7CiAg
ICAgICAgICAgICBpZiAobV9jb2xzLm1fc3BsaXRCZWluZ1Jlc2l6ZWQgIT0gbm9TcGxpdCB8fCBt
X3Jvd3MubV9zcGxpdEJlaW5nUmVzaXplZCAhPSBub1NwbGl0KSB7CkBAIC03MTEsNyArNzExLDcg
QEAgYm9vbCBSZW5kZXJGcmFtZVNldDo6dXNlclJlc2l6ZShNb3VzZUV2ZQogICAgICAgICB9CiAg
ICAgfSBlbHNlIHsKICAgICAgICAgaWYgKGV2dC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3Vz
ZW1vdmVFdmVudCB8fCAoZXZ0LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1vdXNldXBFdmVudCAm
JiBldnQtPmJ1dHRvbigpID09IExlZnRCdXR0b24pKSB7Ci0gICAgICAgICAgICBGbG9hdFBvaW50
IGxvY2FsUG9zID0gYWJzb2x1dGVUb0xvY2FsKGV2dC0+YWJzb2x1dGVMb2NhdGlvbigpLCBVc2VU
cmFuc2Zvcm1zIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpOworICAgICAgICAgICAgRmxvYXRQ
b2ludCBsb2NhbFBvcyA9IGFic29sdXRlVG9Mb2NhbChldnQtPmFic29sdXRlTG9jYXRpb24oKSwg
VXNlVHJhbnNmb3Jtcyk7CiAgICAgICAgICAgICBjb250aW51ZVJlc2l6aW5nKG1fY29scywgbG9j
YWxQb3MueCgpKTsKICAgICAgICAgICAgIGNvbnRpbnVlUmVzaXppbmcobV9yb3dzLCBsb2NhbFBv
cy55KCkpOwogICAgICAgICAgICAgaWYgKGV2dC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3Vz
ZXVwRXZlbnQgJiYgZXZ0LT5idXR0b24oKSA9PSBMZWZ0QnV0dG9uKSB7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR2VvbWV0cnlNYXAuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHZW9tZXRyeU1hcC5jcHAJKHJldmlzaW9uIDEz
NzQ4NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHZW9tZXRyeU1hcC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTUxLDYgKzUxLDcgQEAgdm9pZCBSZW5kZXJHZW9tZXRyeU1hcDo6
bWFwVG9Db250YWluZXIoVAogICAgIC8vIElmIHRoZSBtYXBwaW5nIGluY2x1ZGVzIHNvbWV0aGlu
ZyBsaWtlIGNvbHVtbnMsIHdlIGhhdmUgdG8gZ28gdmlhIHJlbmRlcmVycy4KICAgICBpZiAoaGFz
Tm9uVW5pZm9ybVN0ZXAoKSkgewogICAgICAgICBtX21hcHBpbmcubGFzdCgpLm1fcmVuZGVyZXIt
Pm1hcExvY2FsVG9Db250YWluZXIoY29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwgQXBwbHlDb250
YWluZXJGbGlwIHwgbV9tYXBDb29yZGluYXRlc0ZsYWdzKTsKKyAgICAgICAgdHJhbnNmb3JtU3Rh
dGUuZmxhdHRlbigpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIApAQCAtMTA0LDcgKzEw
NSw3IEBAIEZsb2F0UG9pbnQgUmVuZGVyR2VvbWV0cnlNYXA6Om1hcFRvQ29udGEKICAgICBGbG9h
dFBvaW50IHJlc3VsdDsKICAgICAKICAgICBpZiAoIWhhc0ZpeGVkUG9zaXRpb25TdGVwKCkgJiYg
IWhhc1RyYW5zZm9ybVN0ZXAoKSAmJiAhaGFzTm9uVW5pZm9ybVN0ZXAoKSAmJiAoIWNvbnRhaW5l
ciB8fCAobV9tYXBwaW5nLnNpemUoKSAmJiBjb250YWluZXIgPT0gbV9tYXBwaW5nWzBdLm1fcmVu
ZGVyZXIpKSkKLSAgICAgICAgcmVzdWx0ID0gcCArIG1fYWNjdW11bGF0ZWRPZmZzZXQ7CisgICAg
ICAgIHJlc3VsdCA9IHAgKyByb3VuZGVkSW50U2l6ZShtX2FjY3VtdWxhdGVkT2Zmc2V0KTsKICAg
ICBlbHNlIHsKICAgICAgICAgVHJhbnNmb3JtU3RhdGUgdHJhbnNmb3JtU3RhdGUoVHJhbnNmb3Jt
U3RhdGU6OkFwcGx5VHJhbnNmb3JtRGlyZWN0aW9uLCBwKTsKICAgICAgICAgbWFwVG9Db250YWlu
ZXIodHJhbnNmb3JtU3RhdGUsIGNvbnRhaW5lcik7CkBAIC0xMjcsNyArMTI4LDcgQEAgRmxvYXRR
dWFkIFJlbmRlckdlb21ldHJ5TWFwOjptYXBUb0NvbnRhaQogICAgIAogICAgIGlmICghaGFzRml4
ZWRQb3NpdGlvblN0ZXAoKSAmJiAhaGFzVHJhbnNmb3JtU3RlcCgpICYmICFoYXNOb25Vbmlmb3Jt
U3RlcCgpICYmICghY29udGFpbmVyIHx8IChtX21hcHBpbmcuc2l6ZSgpICYmIGNvbnRhaW5lciA9
PSBtX21hcHBpbmdbMF0ubV9yZW5kZXJlcikpKSB7CiAgICAgICAgIHJlc3VsdCA9IHJlY3Q7Ci0g
ICAgICAgIHJlc3VsdC5tb3ZlKG1fYWNjdW11bGF0ZWRPZmZzZXQpOworICAgICAgICByZXN1bHQu
bW92ZShyb3VuZGVkSW50U2l6ZShtX2FjY3VtdWxhdGVkT2Zmc2V0KSk7CiAgICAgfSBlbHNlIHsK
ICAgICAgICAgVHJhbnNmb3JtU3RhdGUgdHJhbnNmb3JtU3RhdGUoVHJhbnNmb3JtU3RhdGU6OkFw
cGx5VHJhbnNmb3JtRGlyZWN0aW9uLCByZWN0LmNlbnRlcigpLCByZWN0KTsKICAgICAgICAgbWFw
VG9Db250YWluZXIodHJhbnNmb3JtU3RhdGUsIGNvbnRhaW5lcik7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyR2VvbWV0cnlNYXAuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR2VvbWV0cnlNYXAuaAkocmV2aXNpb24gMTM3NDg2KQor
KysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdlb21ldHJ5TWFwLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTc0LDcgKzc0LDcgQEAgc3RydWN0IFJlbmRlckdlb21ldHJ5TWFwU3RlcCB7CiBj
bGFzcyBSZW5kZXJHZW9tZXRyeU1hcCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUmVuZGVy
R2VvbWV0cnlNYXApOwogcHVibGljOgotICAgIFJlbmRlckdlb21ldHJ5TWFwKE1hcENvb3JkaW5h
dGVzRmxhZ3MgPSBVc2VUcmFuc2Zvcm1zIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpOworICAg
IFJlbmRlckdlb21ldHJ5TWFwKE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBVc2VUcmFuc2Zvcm1zKTsK
ICAgICB+UmVuZGVyR2VvbWV0cnlNYXAoKTsKIAogICAgIE1hcENvb3JkaW5hdGVzRmxhZ3MgbWFw
Q29vcmRpbmF0ZXNGbGFncygpIGNvbnN0IHsgcmV0dXJuIG1fbWFwQ29vcmRpbmF0ZXNGbGFnczsg
fQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHAJKHJldmlz
aW9uIDEzNzQ4NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xMTU3LDggKzExNTcsNiBAQCB2b2lkIFJlbmRlcklubGluZTo6
bWFwTG9jYWxUb0NvbnRhaW5lcihjCiAgICAgfQogCiAgICAgTGF5b3V0U2l6ZSBjb250YWluZXJP
ZmZzZXQgPSBvZmZzZXRGcm9tQ29udGFpbmVyKG8sIHJvdW5kZWRMYXlvdXRQb2ludCh0cmFuc2Zv
cm1TdGF0ZS5tYXBwZWRQb2ludCgpKSk7Ci0gICAgaWYgKG1vZGUgJiBTbmFwT2Zmc2V0Rm9yVHJh
bnNmb3JtcykKLSAgICAgICAgY29udGFpbmVyT2Zmc2V0ID0gcm91bmRlZEludFNpemUoY29udGFp
bmVyT2Zmc2V0KTsKIAogICAgIGJvb2wgcHJlc2VydmUzRCA9IG1vZGUgJiBVc2VUcmFuc2Zvcm1z
ICYmIChvLT5zdHlsZSgpLT5wcmVzZXJ2ZXMzRCgpIHx8IHN0eWxlKCktPnByZXNlcnZlczNEKCkp
OwogICAgIGlmIChtb2RlICYgVXNlVHJhbnNmb3JtcyAmJiBzaG91bGRVc2VUcmFuc2Zvcm1Gcm9t
Q29udGFpbmVyKG8pKSB7CkBAIC0xMTk3LDggKzExOTUsNiBAQCBjb25zdCBSZW5kZXJPYmplY3Qq
IFJlbmRlcklubGluZTo6cHVzaE1hCiAKICAgICBib29sIG9mZnNldERlcGVuZHNPblBvaW50ID0g
ZmFsc2U7CiAgICAgTGF5b3V0U2l6ZSBjb250YWluZXJPZmZzZXQgPSBvZmZzZXRGcm9tQ29udGFp
bmVyKGNvbnRhaW5lciwgTGF5b3V0UG9pbnQoKSwgJm9mZnNldERlcGVuZHNPblBvaW50KTsKLSAg
ICBpZiAoZ2VvbWV0cnlNYXAubWFwQ29vcmRpbmF0ZXNGbGFncygpICYgU25hcE9mZnNldEZvclRy
YW5zZm9ybXMpCi0gICAgICAgIGNvbnRhaW5lck9mZnNldCA9IHJvdW5kZWRJbnRTaXplKGNvbnRh
aW5lck9mZnNldCk7CiAKICAgICBib29sIHByZXNlcnZlM0QgPSBjb250YWluZXItPnN0eWxlKCkt
PnByZXNlcnZlczNEKCkgfHwgc3R5bGUoKS0+cHJlc2VydmVzM0QoKTsKICAgICBpZiAoc2hvdWxk
VXNlVHJhbnNmb3JtRnJvbUNvbnRhaW5lcihjb250YWluZXIpKSB7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5oCShyZXZpc2lvbiAxMzc0ODYpCisrKyBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmgJKHdvcmtpbmcgY29weSkKQEAgLTE0Miw3
ICsxNDIsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgTGF5b3V0UmVjdCByZWN0V2l0aE91dGxp
bmVGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWlu
ZXIsIExheW91dFVuaXQgb3V0bGluZVdpZHRoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFs
IHZvaWQgY29tcHV0ZVJlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3Qq
IHJlcGFpbnRDb250YWluZXIsIExheW91dFJlY3QmLCBib29sIGZpeGVkKSBjb25zdCBPVkVSUklE
RTsKIAotICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxh
eWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29v
cmRpbmF0ZXNGbGFncyA9IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zv
cm1zLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9p
ZCBtYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFp
bnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29vcmRpbmF0ZXNGbGFncyA9IEFwcGx5
Q29udGFpbmVyRmxpcCwgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBPVkVSUklERTsKICAgICB2
aXJ0dWFsIGNvbnN0IFJlbmRlck9iamVjdCogcHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBS
ZW5kZXJMYXllck1vZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1h
cCYpIGNvbnN0IE9WRVJSSURFOwogCiAgICAgdmlydHVhbCBWaXNpYmxlUG9zaXRpb24gcG9zaXRp
b25Gb3JQb2ludChjb25zdCBMYXlvdXRQb2ludCYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCShyZXZpc2lvbiAxMzc0ODYpCisrKyBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjA3LDcgKzEy
MDcsNyBAQCBSZW5kZXJMYXllciogUmVuZGVyTGF5ZXI6OmNsaXBwaW5nUm9vdEZvCiBMYXlvdXRQ
b2ludCBSZW5kZXJMYXllcjo6YWJzb2x1dGVUb0NvbnRlbnRzKGNvbnN0IExheW91dFBvaW50JiBh
YnNvbHV0ZVBvaW50KSBjb25zdAogewogICAgIC8vIFdlIGRvbid0IHVzZSBjb252ZXJ0VG9MYXll
ckNvb3JkcyBiZWNhdXNlIGl0IGRvZXNuJ3Qga25vdyBhYm91dCB0cmFuc2Zvcm1zCi0gICAgcmV0
dXJuIHJvdW5kZWRMYXlvdXRQb2ludChyZW5kZXJlcigpLT5hYnNvbHV0ZVRvTG9jYWwoYWJzb2x1
dGVQb2ludCwgVXNlVHJhbnNmb3JtcyB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKSk7CisgICAg
cmV0dXJuIHJvdW5kZWRMYXlvdXRQb2ludChyZW5kZXJlcigpLT5hYnNvbHV0ZVRvTG9jYWwoYWJz
b2x1dGVQb2ludCwgVXNlVHJhbnNmb3JtcykpOwogfQogCiBib29sIFJlbmRlckxheWVyOjpjYW5u
b3RCbGl0VG9XaW5kb3coKSBjb25zdApAQCAtMTc4OSw3ICsxNzg5LDcgQEAgdm9pZCBSZW5kZXJM
YXllcjo6c2Nyb2xsVG8oaW50IHgsIGludCB5KQogCiAgICAgICAgIEZsb2F0UXVhZCBxdWFkRm9y
RmFrZU1vdXNlTW92ZUV2ZW50ID0gRmxvYXRRdWFkKG1fcmVwYWludFJlY3QpOwogICAgICAgICBp
ZiAocmVwYWludENvbnRhaW5lcikKLSAgICAgICAgICAgIHF1YWRGb3JGYWtlTW91c2VNb3ZlRXZl
bnQgPSByZXBhaW50Q29udGFpbmVyLT5sb2NhbFRvQWJzb2x1dGVRdWFkKHF1YWRGb3JGYWtlTW91
c2VNb3ZlRXZlbnQsIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKTsKKyAgICAgICAgICAgIHF1YWRG
b3JGYWtlTW91c2VNb3ZlRXZlbnQgPSByZXBhaW50Q29udGFpbmVyLT5sb2NhbFRvQWJzb2x1dGVR
dWFkKHF1YWRGb3JGYWtlTW91c2VNb3ZlRXZlbnQpOwogICAgICAgICBmcmFtZS0+ZXZlbnRIYW5k
bGVyKCktPmRpc3BhdGNoRmFrZU1vdXNlTW92ZUV2ZW50U29vbkluUXVhZChxdWFkRm9yRmFrZU1v
dXNlTW92ZUV2ZW50KTsKICAgICB9CiAKQEAgLTQzODEsNyArNDM4MSw3IEBAIExheW91dFJlY3Qg
UmVuZGVyTGF5ZXI6OmNoaWxkcmVuQ2xpcFJlY3QKICAgICBDbGlwUmVjdHNDb250ZXh0IGNsaXBS
ZWN0c0NvbnRleHQoY2xpcHBpbmdSb290TGF5ZXIsIDAsIFRlbXBvcmFyeUNsaXBSZWN0cyk7CiAg
ICAgLy8gTmVlZCB0byB1c2UgdGVtcG9yYXJ5IGNsaXAgcmVjdHMsIGJlY2F1c2UgdGhlIHZhbHVl
IG9mICdkb250Q2xpcFRvT3ZlcmZsb3cnIG1heSBiZSBkaWZmZXJlbnQgZnJvbSB0aGUgcGFpbnRp
bmcgcGF0aCAoPHJkYXI6Ly9wcm9ibGVtLzExODQ0OTA5PikuCiAgICAgY2FsY3VsYXRlUmVjdHMo
Y2xpcFJlY3RzQ29udGV4dCwgcmVuZGVyVmlldy0+dW5zY2FsZWREb2N1bWVudFJlY3QoKSwgbGF5
ZXJCb3VuZHMsIGJhY2tncm91bmRSZWN0LCBmb3JlZ3JvdW5kUmVjdCwgb3V0bGluZVJlY3QpOwot
ICAgIHJldHVybiBjbGlwcGluZ1Jvb3RMYXllci0+cmVuZGVyZXIoKS0+bG9jYWxUb0Fic29sdXRl
UXVhZChGbG9hdFF1YWQoZm9yZWdyb3VuZFJlY3QucmVjdCgpKSwgU25hcE9mZnNldEZvclRyYW5z
Zm9ybXMpLmVuY2xvc2luZ0JvdW5kaW5nQm94KCk7CisgICAgcmV0dXJuIGNsaXBwaW5nUm9vdExh
eWVyLT5yZW5kZXJlcigpLT5sb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UXVhZChmb3JlZ3JvdW5k
UmVjdC5yZWN0KCkpKS5lbmNsb3NpbmdCb3VuZGluZ0JveCgpOwogfQogCiBMYXlvdXRSZWN0IFJl
bmRlckxheWVyOjpzZWxmQ2xpcFJlY3QoKSBjb25zdApAQCAtNDM5NCw3ICs0Mzk0LDcgQEAgTGF5
b3V0UmVjdCBSZW5kZXJMYXllcjo6c2VsZkNsaXBSZWN0KCkgYwogICAgIENsaXBSZWN0IGJhY2tn
cm91bmRSZWN0LCBmb3JlZ3JvdW5kUmVjdCwgb3V0bGluZVJlY3Q7CiAgICAgQ2xpcFJlY3RzQ29u
dGV4dCBjbGlwUmVjdHNDb250ZXh0KGNsaXBwaW5nUm9vdExheWVyLCAwLCBQYWludGluZ0NsaXBS
ZWN0cyk7CiAgICAgY2FsY3VsYXRlUmVjdHMoY2xpcFJlY3RzQ29udGV4dCwgcmVuZGVyVmlldy0+
ZG9jdW1lbnRSZWN0KCksIGxheWVyQm91bmRzLCBiYWNrZ3JvdW5kUmVjdCwgZm9yZWdyb3VuZFJl
Y3QsIG91dGxpbmVSZWN0KTsKLSAgICByZXR1cm4gY2xpcHBpbmdSb290TGF5ZXItPnJlbmRlcmVy
KCktPmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRRdWFkKGJhY2tncm91bmRSZWN0LnJlY3QoKSks
IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKS5lbmNsb3NpbmdCb3VuZGluZ0JveCgpOworICAgIHJl
dHVybiBjbGlwcGluZ1Jvb3RMYXllci0+cmVuZGVyZXIoKS0+bG9jYWxUb0Fic29sdXRlUXVhZChG
bG9hdFF1YWQoYmFja2dyb3VuZFJlY3QucmVjdCgpKSkuZW5jbG9zaW5nQm91bmRpbmdCb3goKTsK
IH0KIAogTGF5b3V0UmVjdCBSZW5kZXJMYXllcjo6bG9jYWxDbGlwUmVjdCgpIGNvbnN0CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAko
cmV2aXNpb24gMTM3NDg2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
QmFja2luZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwMzIsNyArMjAzMiw3IEBAIGJvb2wgUmVu
ZGVyTGF5ZXJCYWNraW5nOjpjb250ZW50c1Zpc2libGUKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CiAgICAgSW50UmVjdCB2aXNpYmxlQ29udGVudFJlY3Qodmlldy0+dmlzaWJsZUNvbnRlbnRSZWN0
KCkpOwotICAgIEZsb2F0UXVhZCBhYnNvbHV0ZUNvbnRlbnRRdWFkID0gcmVuZGVyZXIoKS0+bG9j
YWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3QobG9jYWxDb250ZW50UmVjdCksIFNuYXBPZmZzZXRG
b3JUcmFuc2Zvcm1zKTsKKyAgICBGbG9hdFF1YWQgYWJzb2x1dGVDb250ZW50UXVhZCA9IHJlbmRl
cmVyKCktPmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRSZWN0KGxvY2FsQ29udGVudFJlY3QpKTsK
ICAgICByZXR1cm4gYWJzb2x1dGVDb250ZW50UXVhZC5lbmNsb3NpbmdCb3VuZGluZ0JveCgpLmlu
dGVyc2VjdHModmlzaWJsZUNvbnRlbnRSZWN0KTsKIH0KICNlbmRpZgpJbmRleDogU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHMuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xzLmNwcAkocmV2aXNpb24g
MTM3NDg2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHMu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMTUsNyArMjE1LDcgQEAgSW50UG9pbnQgUmVuZGVyTWVk
aWFDb250cm9sczo6dm9sdW1lU2xpZAogCiAgICAgZmxvYXQgem9vbUxldmVsID0gbXV0ZUJ1dHRv
bkJveC0+c3R5bGUoKS0+ZWZmZWN0aXZlWm9vbSgpOwogICAgIGludCB5ID0geU9mZnNldCAqIHpv
b21MZXZlbCArIG11dGVCdXR0b25Cb3gtPnBpeGVsU25hcHBlZE9mZnNldEhlaWdodCgpIC0gc2l6
ZS5oZWlnaHQoKTsKLSAgICBGbG9hdFBvaW50IGFic1BvaW50ID0gbXV0ZUJ1dHRvbkJveC0+bG9j
YWxUb0Fic29sdXRlKEZsb2F0UG9pbnQobXV0ZUJ1dHRvbkJveC0+cGl4ZWxTbmFwcGVkT2Zmc2V0
TGVmdCgpLCB5KSwgSXNGaXhlZCB8IFVzZVRyYW5zZm9ybXMgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNm
b3Jtcyk7CisgICAgRmxvYXRQb2ludCBhYnNQb2ludCA9IG11dGVCdXR0b25Cb3gtPmxvY2FsVG9B
YnNvbHV0ZShGbG9hdFBvaW50KG11dGVCdXR0b25Cb3gtPnBpeGVsU25hcHBlZE9mZnNldExlZnQo
KSwgeSksIElzRml4ZWQgfCBVc2VUcmFuc2Zvcm1zKTsKICAgICBpZiAoYWJzUG9pbnQueSgpIDwg
MCkKICAgICAgICAgeSA9IG11dGVCdXR0b25Cb3gtPnBpeGVsU25hcHBlZEhlaWdodCgpOwogICAg
IHJldHVybiBJbnRQb2ludCh4T2Zmc2V0ICogem9vbUxldmVsLCB5KTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcAkocmV2aXNpb24gMTM3NDg2KQor
KysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzIwLDcgKzMyMCw3IEBAIHZvaWQgUmVuZGVyTWVudUxpc3Q6OnNob3dQb3B1cCgp
CiAKICAgICAvLyBDb21wdXRlIHRoZSB0b3AgbGVmdCB0YWtpbmcgdHJhbnNmb3JtcyBpbnRvIGFj
Y291bnQsIGJ1dCB1c2UKICAgICAvLyB0aGUgYWN0dWFsIHdpZHRoIG9mIHRoZSBlbGVtZW50IHRv
IHNpemUgdGhlIHBvcHVwLgotICAgIEZsb2F0UG9pbnQgYWJzVG9wTGVmdCA9IGxvY2FsVG9BYnNv
bHV0ZShGbG9hdFBvaW50KCksIFVzZVRyYW5zZm9ybXMgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jt
cyk7CisgICAgRmxvYXRQb2ludCBhYnNUb3BMZWZ0ID0gbG9jYWxUb0Fic29sdXRlKEZsb2F0UG9p
bnQoKSwgVXNlVHJhbnNmb3Jtcyk7CiAgICAgSW50UmVjdCBhYnNCb3VuZHMgPSBhYnNvbHV0ZUJv
dW5kaW5nQm94UmVjdElnbm9yaW5nVHJhbnNmb3JtcygpOwogICAgIGFic0JvdW5kcy5zZXRMb2Nh
dGlvbihyb3VuZGVkSW50UG9pbnQoYWJzVG9wTGVmdCkpOwogICAgIEhUTUxTZWxlY3RFbGVtZW50
KiBzZWxlY3QgPSBzZWxlY3RFbGVtZW50KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyT2JqZWN0LmNwcAkocmV2aXNpb24gMTM3NDg2KQorKysgU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyMTksNyArMTIx
OSw3IEBAIHZvaWQgUmVuZGVyT2JqZWN0OjphYnNvbHV0ZUZvY3VzUmluZ1F1YWQKICAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKICAgICAgICAgSW50UmVjdCByZWN0ID0g
cmVjdHNbaV07CiAgICAgICAgIHJlY3QubW92ZSgtYWJzb2x1dGVQb2ludC54KCksIC1hYnNvbHV0
ZVBvaW50LnkoKSk7Ci0gICAgICAgIHF1YWRzLmFwcGVuZChsb2NhbFRvQWJzb2x1dGVRdWFkKEZs
b2F0UXVhZChyZWN0KSwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpKTsKKyAgICAgICAgcXVhZHMu
YXBwZW5kKGxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRRdWFkKHJlY3QpKSk7CiAgICAgfQogfQog
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCShyZXZpc2lvbiAx
Mzc0ODYpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgJKHdvcmtp
bmcgY29weSkKQEAgLTExNCw4ICsxMTQsNyBAQCBlbnVtIFBsYWNlR2VuZXJhdGVkUnVuSW5GbGFn
IHsKIGVudW0gTWFwQ29vcmRpbmF0ZXNNb2RlIHsKICAgICBJc0ZpeGVkID0gMSA8PCAwLAogICAg
IFVzZVRyYW5zZm9ybXMgPSAxIDw8IDEsCi0gICAgQXBwbHlDb250YWluZXJGbGlwID0gMSA8PCAy
LAotICAgIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zID0gMSA8PCAzCisgICAgQXBwbHlDb250YWlu
ZXJGbGlwID0gMSA8PCAyCiB9OwogdHlwZWRlZiB1bnNpZ25lZCBNYXBDb29yZGluYXRlc0ZsYWdz
OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCShyZXZpc2lv
biAxMzc0ODYpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTM3MSwxMiArMzcxLDEyIEBAIHZvaWQgUmVuZGVyVGV4dDo6YWJzb2x1
dGVSZWN0c0ZvclJhbmdlKFYKICAgICAgICAgICAgICAgICAgICAgci5zZXRYKHNlbGVjdGlvblJl
Y3QueCgpKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBy
ZWN0cy5hcHBlbmQobG9jYWxUb0Fic29sdXRlUXVhZChyLCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jt
cywgd2FzRml4ZWQpLmVuY2xvc2luZ0JvdW5kaW5nQm94KCkpOworICAgICAgICAgICAgcmVjdHMu
YXBwZW5kKGxvY2FsVG9BYnNvbHV0ZVF1YWQociwgMCwgd2FzRml4ZWQpLmVuY2xvc2luZ0JvdW5k
aW5nQm94KCkpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMg
Y29kZSBpcyB3cm9uZy4gSXQncyBjb252ZXJ0aW5nIGxvY2FsIHRvIGFic29sdXRlIHR3aWNlLiBo
dHRwOi8vd2Via2l0Lm9yZy9iLzY1NzIyCiAgICAgICAgICAgICBGbG9hdFJlY3QgcmVjdCA9IGxv
Y2FsUXVhZEZvclRleHRCb3goYm94LCBzdGFydCwgZW5kLCB1c2VTZWxlY3Rpb25IZWlnaHQpOwog
ICAgICAgICAgICAgaWYgKCFyZWN0LmlzWmVybygpKQotICAgICAgICAgICAgICAgIHJlY3RzLmFw
cGVuZChsb2NhbFRvQWJzb2x1dGVRdWFkKHJlY3QsIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCB3
YXNGaXhlZCkuZW5jbG9zaW5nQm91bmRpbmdCb3goKSk7CisgICAgICAgICAgICAgICAgcmVjdHMu
YXBwZW5kKGxvY2FsVG9BYnNvbHV0ZVF1YWQocmVjdCwgMCwgd2FzRml4ZWQpLmVuY2xvc2luZ0Jv
dW5kaW5nQm94KCkpOwogICAgICAgICB9CiAgICAgfQogfQpAQCAtNDE5LDcgKzQxOSw3IEBAIHZv
aWQgUmVuZGVyVGV4dDo6YWJzb2x1dGVRdWFkcyhWZWN0b3I8RmwKICAgICAgICAgICAgIGVsc2UK
ICAgICAgICAgICAgICAgICBib3VuZGFyaWVzLnNldEhlaWdodChlbGxpcHNpc1JlY3QubWF4WSgp
IC0gYm91bmRhcmllcy55KCkpOwogICAgICAgICB9Ci0gICAgICAgIHF1YWRzLmFwcGVuZChsb2Nh
bFRvQWJzb2x1dGVRdWFkKGJvdW5kYXJpZXMsIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCB3YXNG
aXhlZCkpOworICAgICAgICBxdWFkcy5hcHBlbmQobG9jYWxUb0Fic29sdXRlUXVhZChib3VuZGFy
aWVzLCAwLCB3YXNGaXhlZCkpOwogICAgIH0KIH0KICAgICAKQEAgLTQ1NCwxMSArNDU0LDExIEBA
IHZvaWQgUmVuZGVyVGV4dDo6YWJzb2x1dGVRdWFkc0ZvclJhbmdlKFYKICAgICAgICAgICAgICAg
ICAgICAgci5zZXRYKHNlbGVjdGlvblJlY3QueCgpKTsKICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICBxdWFkcy5hcHBlbmQobG9jYWxUb0Fic29sdXRlUXVhZChy
LCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jtcywgd2FzRml4ZWQpKTsKKyAgICAgICAgICAgIHF1YWRz
LmFwcGVuZChsb2NhbFRvQWJzb2x1dGVRdWFkKHIsIDAsIHdhc0ZpeGVkKSk7CiAgICAgICAgIH0g
ZWxzZSB7CiAgICAgICAgICAgICBGbG9hdFJlY3QgcmVjdCA9IGxvY2FsUXVhZEZvclRleHRCb3go
Ym94LCBzdGFydCwgZW5kLCB1c2VTZWxlY3Rpb25IZWlnaHQpOwogICAgICAgICAgICAgaWYgKCFy
ZWN0LmlzWmVybygpKQotICAgICAgICAgICAgICAgIHF1YWRzLmFwcGVuZChsb2NhbFRvQWJzb2x1
dGVRdWFkKHJlY3QsIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCB3YXNGaXhlZCkpOworICAgICAg
ICAgICAgICAgIHF1YWRzLmFwcGVuZChsb2NhbFRvQWJzb2x1dGVRdWFkKHJlY3QsIDAsIHdhc0Zp
eGVkKSk7CiAgICAgICAgIH0KICAgICB9CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZS5jcHAJKHJldmlzaW9uIDEzNzQ4NikKKysrIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUaGVtZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUyMyw3ICs1MjMsNyBA
QCBTdHJpbmcgUmVuZGVyVGhlbWU6OmZvcm1hdE1lZGlhQ29udHJvbHNSCiBJbnRQb2ludCBSZW5k
ZXJUaGVtZTo6dm9sdW1lU2xpZGVyT2Zmc2V0RnJvbU11dGVCdXR0b24oUmVuZGVyQm94KiBtdXRl
QnV0dG9uQm94LCBjb25zdCBJbnRTaXplJiBzaXplKSBjb25zdAogewogICAgIGludCB5ID0gLXNp
emUuaGVpZ2h0KCk7Ci0gICAgRmxvYXRQb2ludCBhYnNQb2ludCA9IG11dGVCdXR0b25Cb3gtPmxv
Y2FsVG9BYnNvbHV0ZShGbG9hdFBvaW50KG11dGVCdXR0b25Cb3gtPnBpeGVsU25hcHBlZE9mZnNl
dExlZnQoKSwgeSksIElzRml4ZWQgfCBVc2VUcmFuc2Zvcm1zIHwgU25hcE9mZnNldEZvclRyYW5z
Zm9ybXMpOworICAgIEZsb2F0UG9pbnQgYWJzUG9pbnQgPSBtdXRlQnV0dG9uQm94LT5sb2NhbFRv
QWJzb2x1dGUoRmxvYXRQb2ludChtdXRlQnV0dG9uQm94LT5waXhlbFNuYXBwZWRPZmZzZXRMZWZ0
KCksIHkpLCBJc0ZpeGVkIHwgVXNlVHJhbnNmb3Jtcyk7CiAgICAgaWYgKGFic1BvaW50LnkoKSA8
IDApCiAgICAgICAgIHkgPSBtdXRlQnV0dG9uQm94LT5oZWlnaHQoKTsKICAgICByZXR1cm4gSW50
UG9pbnQoMCwgeSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3Bw
CShyZXZpc2lvbiAxMzc0ODYpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmll
dy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUzNiw3ICs1MzYsNyBAQCBJbnRSZWN0IFJlbmRlclZp
ZXc6OnNlbGVjdGlvbkJvdW5kcyhib29sCiAgICAgICAgIC8vIFJlbmRlclNlbGVjdGlvbkluZm86
OnJlY3QoKSBpcyBpbiB0aGUgY29vcmRpbmF0ZXMgb2YgdGhlIHJlcGFpbnRDb250YWluZXIsIHNv
IG1hcCB0byBwYWdlIGNvb3JkaW5hdGVzLgogICAgICAgICBMYXlvdXRSZWN0IGN1cnJSZWN0ID0g
aW5mby0+cmVjdCgpOwogICAgICAgICBpZiAoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWlu
dENvbnRhaW5lciA9IGluZm8tPnJlcGFpbnRDb250YWluZXIoKSkgewotICAgICAgICAgICAgRmxv
YXRRdWFkIGFic1F1YWQgPSByZXBhaW50Q29udGFpbmVyLT5sb2NhbFRvQWJzb2x1dGVRdWFkKEZs
b2F0UmVjdChjdXJyUmVjdCksIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKTsKKyAgICAgICAgICAg
IEZsb2F0UXVhZCBhYnNRdWFkID0gcmVwYWludENvbnRhaW5lci0+bG9jYWxUb0Fic29sdXRlUXVh
ZChGbG9hdFJlY3QoY3VyclJlY3QpKTsKICAgICAgICAgICAgIGN1cnJSZWN0ID0gYWJzUXVhZC5l
bmNsb3NpbmdCb3VuZGluZ0JveCgpOyAKICAgICAgICAgfQogICAgICAgICBzZWxSZWN0LnVuaXRl
KGN1cnJSZWN0KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaAkocmV2
aXNpb24gMTM3NDg2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaAko
d29ya2luZyBjb3B5KQpAQCAtMjI5LDcgKzIyOSw3IEBAIHB1YmxpYzoKICAgICBib29sIGhhc1Jl
bmRlckNvdW50ZXJzKCkgeyByZXR1cm4gbV9yZW5kZXJDb3VudGVyQ291bnQ7IH0KIAogcHJvdGVj
dGVkOgotICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxh
eWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29v
cmRpbmF0ZXNGbGFncyA9IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zv
cm1zLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9p
ZCBtYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFp
bnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29vcmRpbmF0ZXNGbGFncyA9IEFwcGx5
Q29udGFpbmVyRmxpcCwgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBPVkVSUklERTsKICAgICB2
aXJ0dWFsIGNvbnN0IFJlbmRlck9iamVjdCogcHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBS
ZW5kZXJMYXllck1vZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1h
cCYpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBtYXBBYnNvbHV0ZVRvTG9jYWxQ
b2ludChNYXBDb29yZGluYXRlc0ZsYWdzLCBUcmFuc2Zvcm1TdGF0ZSYpIGNvbnN0OwogICAgIHZp
cnR1YWwgYm9vbCByZXF1aXJlc0NvbHVtbnMoaW50IGRlc2lyZWRDb2x1bW5Db3VudCkgY29uc3Qg
T1ZFUlJJREU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNw
cAkocmV2aXNpb24gMTM3NDg2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldp
ZGdldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2OSw3ICsxNjksNyBAQCBib29sIFJlbmRlcldp
ZGdldDo6dXBkYXRlV2lkZ2V0R2VvbWV0cnkoCiAgICAgaWYgKCFtX3dpZGdldC0+dHJhbnNmb3Jt
c0FmZmVjdEZyYW1lUmVjdCgpKQogICAgICAgICByZXR1cm4gc2V0V2lkZ2V0R2VvbWV0cnkoYWJz
b2x1dGVDb250ZW50Qm94KCkpOwogCi0gICAgTGF5b3V0UmVjdCBhYnNvbHV0ZUNvbnRlbnRCb3go
bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFF1YWQoY29udGVudEJveCksIFNuYXBPZmZzZXRGb3JU
cmFuc2Zvcm1zKS5ib3VuZGluZ0JveCgpKTsKKyAgICBMYXlvdXRSZWN0IGFic29sdXRlQ29udGVu
dEJveChsb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UXVhZChjb250ZW50Qm94KSkuYm91bmRpbmdC
b3goKSk7CiAgICAgaWYgKG1fd2lkZ2V0LT5pc0ZyYW1lVmlldygpKSB7CiAgICAgICAgIGNvbnRl
bnRCb3guc2V0TG9jYXRpb24oYWJzb2x1dGVDb250ZW50Qm94LmxvY2F0aW9uKCkpOwogICAgICAg
ICByZXR1cm4gc2V0V2lkZ2V0R2VvbWV0cnkoY29udGVudEJveCk7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ZvcmVpZ25PYmplY3QuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9iamVjdC5j
cHAJKHJldmlzaW9uIDEzNzQ4NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHRm9yZWlnbk9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE5Myw5ICsxOTMsOSBA
QCBib29sIFJlbmRlclNWR0ZvcmVpZ25PYmplY3Q6Om5vZGVBdFBvaW50CiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCi12b2lkIFJlbmRlclNWR0ZvcmVpZ25PYmplY3Q6Om1hcExvY2FsVG9Db250YWlu
ZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNm
b3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBDb29yZGluYXRlc0ZsYWdzIG1vZGUsIGJvb2wq
IHdhc0ZpeGVkKSBjb25zdAordm9pZCBSZW5kZXJTVkdGb3JlaWduT2JqZWN0OjptYXBMb2NhbFRv
Q29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIs
IFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFwQ29vcmRpbmF0ZXNGbGFncywgYm9v
bCogd2FzRml4ZWQpIGNvbnN0CiB7Ci0gICAgU1ZHUmVuZGVyU3VwcG9ydDo6bWFwTG9jYWxUb0Nv
bnRhaW5lcih0aGlzLCByZXBhaW50Q29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwgbW9kZSAmIFNu
YXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCB3YXNGaXhlZCk7CisgICAgU1ZHUmVuZGVyU3VwcG9ydDo6
bWFwTG9jYWxUb0NvbnRhaW5lcih0aGlzLCByZXBhaW50Q29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0
ZSwgd2FzRml4ZWQpOwogfQogCiBjb25zdCBSZW5kZXJPYmplY3QqIFJlbmRlclNWR0ZvcmVpZ25P
YmplY3Q6OnB1c2hNYXBwaW5nVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVj
dCogYW5jZXN0b3JUb1N0b3BBdCwgUmVuZGVyR2VvbWV0cnlNYXAmIGdlb21ldHJ5TWFwKSBjb25z
dApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWduT2Jq
ZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdGb3JlaWduT2JqZWN0LmgJKHJldmlzaW9uIDEzNzQ4NikKKysrIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC01
NCw3ICs1NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgbm9kZUF0UG9pbnQoY29uc3Qg
SGl0VGVzdFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgSGl0VGVzdExvY2F0aW9uJiBs
b2NhdGlvbkluQ29udGFpbmVyLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQs
IEhpdFRlc3RBY3Rpb24pIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBpc1NWR0ZvcmVpZ25P
YmplY3QoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgbWFwTG9j
YWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFp
bmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5l
ckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25z
dCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBS
ZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYs
IE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5lckZsaXAsIGJvb2wqIHdhc0ZpeGVk
ID0gMCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBSZW5kZXJPYmplY3QqIHB1
c2hNYXBwaW5nVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0
b3JUb1N0b3BBdCwgUmVuZGVyR2VvbWV0cnlNYXAmKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0
dWFsIHZvaWQgc2V0TmVlZHNUcmFuc2Zvcm1VcGRhdGUoKSB7IG1fbmVlZHNUcmFuc2Zvcm1VcGRh
dGUgPSB0cnVlOyB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHSW5saW5lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR0lubGluZS5jcHAJKHJldmlzaW9uIDEzNzQ4NikKKysrIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzks
OSArNzksOSBAQCB2b2lkIFJlbmRlclNWR0lubGluZTo6Y29tcHV0ZUZsb2F0UmVjdEZvCiAgICAg
U1ZHUmVuZGVyU3VwcG9ydDo6Y29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQodGhpcywgcmVwYWlu
dENvbnRhaW5lciwgcmVwYWludFJlY3QsIGZpeGVkKTsKIH0KIAotdm9pZCBSZW5kZXJTVkdJbmxp
bmU6Om1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVw
YWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBDb29yZGlu
YXRlc0ZsYWdzIG1vZGUsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAordm9pZCBSZW5kZXJTVkdJbmxp
bmU6Om1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVw
YWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBDb29yZGlu
YXRlc0ZsYWdzLCBib29sKiB3YXNGaXhlZCkgY29uc3QKIHsKLSAgICBTVkdSZW5kZXJTdXBwb3J0
OjptYXBMb2NhbFRvQ29udGFpbmVyKHRoaXMsIHJlcGFpbnRDb250YWluZXIsIHRyYW5zZm9ybVN0
YXRlLCBtb2RlICYgU25hcE9mZnNldEZvclRyYW5zZm9ybXMsIHdhc0ZpeGVkKTsKKyAgICBTVkdS
ZW5kZXJTdXBwb3J0OjptYXBMb2NhbFRvQ29udGFpbmVyKHRoaXMsIHJlcGFpbnRDb250YWluZXIs
IHRyYW5zZm9ybVN0YXRlLCB3YXNGaXhlZCk7CiB9CiAKIGNvbnN0IFJlbmRlck9iamVjdCogUmVu
ZGVyU1ZHSW5saW5lOjpwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9k
ZWxPYmplY3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJiBnZW9tZXRyeU1h
cCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5s
aW5lLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdJbmxpbmUuaAkocmV2aXNpb24gMTM3NDg2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdJbmxpbmUuaAkod29ya2luZyBjb3B5KQpAQCAtNDcsNyArNDcsNyBAQCBw
dWJsaWM6CiAKICAgICB2aXJ0dWFsIExheW91dFJlY3QgY2xpcHBlZE92ZXJmbG93UmVjdEZvclJl
cGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lcikgY29u
c3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50
KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIEZsb2F0UmVj
dCYsIGJvb2wgZml4ZWQgPSBmYWxzZSkgY29uc3QgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lk
IG1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWlu
dENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBDb29yZGluYXRlc0ZsYWdzID0gQXBwbHlD
b250YWluZXJGbGlwIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMsIGJvb2wqIHdhc0ZpeGVkID0g
MCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIo
Y29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3Jt
U3RhdGUmLCBNYXBDb29yZGluYXRlc0ZsYWdzID0gQXBwbHlDb250YWluZXJGbGlwLCBib29sKiB3
YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgUmVuZGVyT2Jq
ZWN0KiBwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3Qq
IGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJikgY29uc3QgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCB2b2lkIGFic29sdXRlUXVhZHMoVmVjdG9yPEZsb2F0UXVhZD4mLCBib29sKiB3
YXNGaXhlZCkgY29uc3Q7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHTW9kZWxPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwCShyZXZpc2lvbiAxMzc0ODYpCisrKyBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNTcsOSArNTcsOSBAQCB2b2lkIFJlbmRlclNWR01vZGVsT2JqZWN0Ojpj
b21wdXRlRmxvYXRSCiAgICAgU1ZHUmVuZGVyU3VwcG9ydDo6Y29tcHV0ZUZsb2F0UmVjdEZvclJl
cGFpbnQodGhpcywgcmVwYWludENvbnRhaW5lciwgcmVwYWludFJlY3QsIGZpeGVkKTsKIH0KIAot
dm9pZCBSZW5kZXJTVkdNb2RlbE9iamVjdDo6bWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5k
ZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJh
bnNmb3JtU3RhdGUsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQpIGNv
bnN0Cit2b2lkIFJlbmRlclNWR01vZGVsT2JqZWN0OjptYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0
IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRl
JiB0cmFuc2Zvcm1TdGF0ZSwgTWFwQ29vcmRpbmF0ZXNGbGFncywgYm9vbCogd2FzRml4ZWQpIGNv
bnN0CiB7Ci0gICAgU1ZHUmVuZGVyU3VwcG9ydDo6bWFwTG9jYWxUb0NvbnRhaW5lcih0aGlzLCBy
ZXBhaW50Q29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwgbW9kZSAmIFNuYXBPZmZzZXRGb3JUcmFu
c2Zvcm1zLCB3YXNGaXhlZCk7CisgICAgU1ZHUmVuZGVyU3VwcG9ydDo6bWFwTG9jYWxUb0NvbnRh
aW5lcih0aGlzLCByZXBhaW50Q29udGFpbmVyLCB0cmFuc2Zvcm1TdGF0ZSwgd2FzRml4ZWQpOwog
fQogCiBjb25zdCBSZW5kZXJPYmplY3QqIFJlbmRlclNWR01vZGVsT2JqZWN0OjpwdXNoTWFwcGlu
Z1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGFuY2VzdG9yVG9TdG9w
QXQsIFJlbmRlckdlb21ldHJ5TWFwJiBnZW9tZXRyeU1hcCkgY29uc3QKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmgJKHJl
dmlzaW9uIDEzNzQ4NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
TW9kZWxPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtNTgsNyArNTgsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIGFic29sdXRlUmVjdHMoVmVjdG9yPEludFJlY3Q+JiwgY29uc3QgTGF5
b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0KSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgYWJz
b2x1dGVRdWFkcyhWZWN0b3I8RmxvYXRRdWFkPiYsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdDsKIAot
ICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9k
ZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29vcmRpbmF0
ZXNGbGFncyA9IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBi
b29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBtYXBM
b2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250
YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29vcmRpbmF0ZXNGbGFncyA9IEFwcGx5Q29udGFp
bmVyRmxpcCwgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFs
IGNvbnN0IFJlbmRlck9iamVjdCogcHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJM
YXllck1vZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1hcCYpIGNv
bnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzdHlsZVdpbGxDaGFuZ2UoU3R5bGVEaWZm
ZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSogbmV3U3R5bGUpOwogICAgIHZpcnR1YWwgdm9pZCBz
dHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHls
ZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3Qu
aAkocmV2aXNpb24gMTM3NDg2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdSb290LmgJKHdvcmtpbmcgY29weSkKQEAgLTEwNCw3ICsxMDQsNyBAQCBwcml2YXRlOgog
ICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChjb25z
dCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyKSBjb25zdCBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQoY29uc3QgUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgRmxvYXRSZWN0JiByZXBhaW50
UmVjdCwgYm9vbCBmaXhlZCkgY29uc3QgT1ZFUlJJREU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgbWFw
TG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29u
dGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRh
aW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCogd2FzRml4ZWQgPSAwKSBj
b25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25z
dCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0
ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5lckZsaXAsIGJvb2wqIHdhc0Zp
eGVkID0gMCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBSZW5kZXJPYmplY3Qq
IHB1c2hNYXBwaW5nVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5j
ZXN0b3JUb1N0b3BBdCwgUmVuZGVyR2VvbWV0cnlNYXAmKSBjb25zdCBPVkVSUklERTsKIAogICAg
IHZpcnR1YWwgYm9vbCBjYW5CZVNlbGVjdGlvbkxlYWYoKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQu
Y3BwCShyZXZpc2lvbiAxMzc0ODYpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR1RleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTEsOSArMTExLDkgQEAgdm9pZCBS
ZW5kZXJTVkdUZXh0Ojpjb21wdXRlRmxvYXRSZWN0Rm9yUgogICAgIFNWR1JlbmRlclN1cHBvcnQ6
OmNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50KHRoaXMsIHJlcGFpbnRDb250YWluZXIsIHJlcGFp
bnRSZWN0LCBmaXhlZCk7CiB9CiAKLXZvaWQgUmVuZGVyU1ZHVGV4dDo6bWFwTG9jYWxUb0NvbnRh
aW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFu
c2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwgYm9v
bCogd2FzRml4ZWQpIGNvbnN0Cit2b2lkIFJlbmRlclNWR1RleHQ6Om1hcExvY2FsVG9Db250YWlu
ZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNm
b3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBDb29yZGluYXRlc0ZsYWdzLCBib29sKiB3YXNG
aXhlZCkgY29uc3QKIHsKLSAgICBTVkdSZW5kZXJTdXBwb3J0OjptYXBMb2NhbFRvQ29udGFpbmVy
KHRoaXMsIHJlcGFpbnRDb250YWluZXIsIHRyYW5zZm9ybVN0YXRlLCBtb2RlICYgU25hcE9mZnNl
dEZvclRyYW5zZm9ybXMsIHdhc0ZpeGVkKTsKKyAgICBTVkdSZW5kZXJTdXBwb3J0OjptYXBMb2Nh
bFRvQ29udGFpbmVyKHRoaXMsIHJlcGFpbnRDb250YWluZXIsIHRyYW5zZm9ybVN0YXRlLCB3YXNG
aXhlZCk7CiB9CiAKIGNvbnN0IFJlbmRlck9iamVjdCogUmVuZGVyU1ZHVGV4dDo6cHVzaE1hcHBp
bmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBhbmNlc3RvclRvU3Rv
cEF0LCBSZW5kZXJHZW9tZXRyeU1hcCYgZ2VvbWV0cnlNYXApIGNvbnN0CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuaAkocmV2aXNpb24gMTM3NDg2
KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmgJKHdvcmtp
bmcgY29weSkKQEAgLTc1LDcgKzc1LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgY29t
cHV0ZVJlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRD
b250YWluZXIsIExheW91dFJlY3QmLCBib29sIGZpeGVkID0gZmFsc2UpIGNvbnN0IE9WRVJSSURF
OwogICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlRmxvYXRSZWN0Rm9yUmVwYWludChjb25zdCBSZW5k
ZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBGbG9hdFJlY3QmLCBib29sIGZp
eGVkID0gZmFsc2UpIGNvbnN0IE9WRVJSSURFOwogCi0gICAgdmlydHVhbCB2b2lkIG1hcExvY2Fs
VG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5l
ciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBDb29yZGluYXRlc0ZsYWdzID0gQXBwbHlDb250YWluZXJG
bGlwIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3Qg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBN
YXBDb29yZGluYXRlc0ZsYWdzID0gQXBwbHlDb250YWluZXJGbGlwLCBib29sKiB3YXNGaXhlZCA9
IDApIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgUmVuZGVyT2JqZWN0KiBwdXNo
TWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGFuY2VzdG9y
VG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCB2b2lkIGFkZENoaWxkKFJlbmRlck9iamVjdCogY2hpbGQsIFJlbmRlck9iamVjdCogYmVmb3Jl
Q2hpbGQgPSAwKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlQ2hpbGQoUmVuZGVyT2JqZWN0Kikg
T1ZFUlJJREU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1
cHBvcnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZH
UmVuZGVyU3VwcG9ydC5jcHAJKHJldmlzaW9uIDEzNzQ4NikKKysrIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg0LDcg
Kzg0LDcgQEAgdm9pZCBTVkdSZW5kZXJTdXBwb3J0Ojpjb21wdXRlRmxvYXRSZWN0RgogICAgIG9i
amVjdC0+cGFyZW50KCktPmNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50KHJlcGFpbnRDb250YWlu
ZXIsIHJlcGFpbnRSZWN0LCBmaXhlZCk7CiB9CiAKLXZvaWQgU1ZHUmVuZGVyU3VwcG9ydDo6bWFw
TG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5z
Zm9ybVN0YXRlLCBib29sIHNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNGaXhlZCkK
K3ZvaWQgU1ZHUmVuZGVyU3VwcG9ydDo6bWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJP
YmplY3QqIG9iamVjdCwgY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRh
aW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBib29sKiB3YXNGaXhlZCkKIHsK
ICAgICB0cmFuc2Zvcm1TdGF0ZS5hcHBseVRyYW5zZm9ybShvYmplY3QtPmxvY2FsVG9QYXJlbnRU
cmFuc2Zvcm0oKSk7CiAKQEAgLTk3LDggKzk3LDYgQEAgdm9pZCBTVkdSZW5kZXJTdXBwb3J0Ojpt
YXBMb2NhbFRvQ29udGFpbgogICAgICAgICB0cmFuc2Zvcm1TdGF0ZS5hcHBseVRyYW5zZm9ybSh0
b1JlbmRlclNWR1Jvb3QocGFyZW50KS0+bG9jYWxUb0JvcmRlckJveFRyYW5zZm9ybSgpKTsKIAog
ICAgIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSA9IFVzZVRyYW5zZm9ybXM7Ci0gICAgaWYgKHNu
YXBPZmZzZXRGb3JUcmFuc2Zvcm1zKQotICAgICAgICBtb2RlIHw9IFNuYXBPZmZzZXRGb3JUcmFu
c2Zvcm1zOwogICAgIHBhcmVudC0+bWFwTG9jYWxUb0NvbnRhaW5lcihyZXBhaW50Q29udGFpbmVy
LCB0cmFuc2Zvcm1TdGF0ZSwgbW9kZSwgd2FzRml4ZWQpOwogfQogCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuaAkocmV2aXNpb24gMTM3
NDg2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTY4LDcgKzY4LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBGbG9h
dFJlY3QgcmVwYWludFJlY3RGb3JSZW5kZXJlckluTG9jYWxDb29yZGluYXRlc0V4Y2x1ZGluZ1NW
R1NoYWRvdyhjb25zdCBSZW5kZXJPYmplY3QqKTsKICAgICBzdGF0aWMgTGF5b3V0UmVjdCBjbGlw
cGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJPYmplY3QqLCBjb25zdCBSZW5k
ZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyKTsKICAgICBzdGF0aWMgdm9pZCBj
b21wdXRlRmxvYXRSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJPYmplY3QqLCBjb25zdCBSZW5k
ZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBGbG9hdFJlY3QmLCBib29sIGZp
eGVkKTsKLSAgICBzdGF0aWMgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlck9i
amVjdCosIGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRy
YW5zZm9ybVN0YXRlJiwgYm9vbCBzbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcyA9IHRydWUsIGJvb2wq
IHdhc0ZpeGVkID0gMCk7CisgICAgc3RhdGljIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25z
dCBSZW5kZXJPYmplY3QqLCBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29u
dGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIGJvb2wqIHdhc0ZpeGVkID0gMCk7CiAgICAgc3RhdGlj
IGNvbnN0IFJlbmRlck9iamVjdCogcHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJP
YmplY3QqLCBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBS
ZW5kZXJHZW9tZXRyeU1hcCYpOwogICAgIHN0YXRpYyBib29sIGNoZWNrRm9yU1ZHUmVwYWludER1
cmluZ0xheW91dChSZW5kZXJPYmplY3QqKTsKIApJbmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gMTM3
NjI5KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTUgQEAKKzIwMTItMTItMTMgIExldmkgV2VpbnRyYXViICA8bGV2aXdAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFB1c2ggcGl4ZWwgc25hcHBpbmcgbG9naWMgaW50byBUcmFuc2Zvcm1TdGF0
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxNzc5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRWxpbWlu
YXRpbmcgdXNlIG9mIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zIGFzIGl0J3Mgbm8gbG9uZ2VyIG5l
ZWRlZC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFu
YWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OnNjcmVlblJlY3RPZkNvbnRlbnRzKToKKwogMjAx
Mi0xMi0xMyAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAg
IFJlbW92ZSB1bnVzZWQgaW5pdGlhdGluZ1BhZ2UgcGFyYW1ldGVyIGZyb20gZG93bmxvYWQgb2Jq
ZWN0cwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxT
Y3JlZW5NYW5hZ2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIuY3BwCShyZXZpc2lvbiAxMzc0ODYpCisr
KyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFn
ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Miw3ICs1Miw3IEBAIHN0YXRpYyBJbnRSZWN0IHNj
cmVlblJlY3RPZkNvbnRlbnRzKEVsZW0KICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
CiAgICAgaWYgKGVsZW1lbnQtPnJlbmRlcmVyKCkgJiYgZWxlbWVudC0+cmVuZGVyZXIoKS0+aGFz
TGF5ZXIoKSAmJiBlbGVtZW50LT5yZW5kZXJlcigpLT5lbmNsb3NpbmdMYXllcigpLT5pc0NvbXBv
c2l0ZWQoKSkgewogICAgICAgICBGbG9hdFF1YWQgY29udGVudHNCb3ggPSBzdGF0aWNfY2FzdDxG
bG9hdFJlY3Q+KGVsZW1lbnQtPnJlbmRlcmVyKCktPmVuY2xvc2luZ0xheWVyKCktPmJhY2tpbmco
KS0+Y29udGVudHNCb3goKSk7Ci0gICAgICAgIGNvbnRlbnRzQm94ID0gZWxlbWVudC0+cmVuZGVy
ZXIoKS0+bG9jYWxUb0Fic29sdXRlUXVhZChjb250ZW50c0JveCwgU25hcE9mZnNldEZvclRyYW5z
Zm9ybXMpOworICAgICAgICBjb250ZW50c0JveCA9IGVsZW1lbnQtPnJlbmRlcmVyKCktPmxvY2Fs
VG9BYnNvbHV0ZVF1YWQoY29udGVudHNCb3gpOwogICAgICAgICByZXR1cm4gZWxlbWVudC0+cmVu
ZGVyZXIoKS0+dmlldygpLT5mcmFtZVZpZXcoKS0+Y29udGVudHNUb1NjcmVlbihjb250ZW50c0Jv
eC5lbmNsb3NpbmdCb3VuZGluZ0JveCgpKTsKICAgICB9CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiAxMzc2MjkpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDEyLTEyLTEz
ICBMZXZpIFdlaW50cmF1YiAgPGxldml3QGNocm9taXVtLm9yZz4KKworICAgICAgICBQdXNoIHBp
eGVsIHNuYXBwaW5nIGxvZ2ljIGludG8gVHJhbnNmb3JtU3RhdGUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTc3OQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEVsaW1pbmF0aW5nIHVzZSBvZiBTbmFwT2Zm
c2V0Rm9yVHJhbnNmb3JtcyBhcyBpdCdzIG5vIGxvbmdlciBuZWVkZWQuCisKKyAgICAgICAgKiBz
cmMvRmluZEluUGFnZUNvb3JkaW5hdGVzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6dG9Ob3JtYWxp
emVkUmVjdCk6CisgICAgICAgICogc3JjL0xpbmtIaWdobGlnaHQuY3BwOgorICAgICAgICAoV2Vi
S2l0Ojpjb252ZXJ0VGFyZ2V0U3BhY2VRdWFkVG9Db21wb3NpdGVkTGF5ZXIpOgorICAgICAgICAq
IHNyYy9XZWJJbnB1dEV2ZW50Q29udmVyc2lvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OmNvbnZl
cnRBYnNvbHV0ZUxvY2F0aW9uRm9yUmVuZGVyT2JqZWN0KToKKyAgICAgICAgKiBzcmMvV2ViUGx1
Z2luQ29udGFpbmVySW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBsdWdpbkNvbnRhaW5l
ckltcGw6OndpbmRvd1RvTG9jYWxQb2ludCk6CisKIDIwMTItMTItMTMgIFl1c3VmIE96dXlzYWwg
IDx5dXN1Zm9AZ29vZ2xlLmNvbT4KIAogICAgICAgICBDaGVjayB3aGV0aGVyIGEgdG91Y2hEb3du
IGxhbmRzIG9uIGEgcmVnaXN0ZXJlZCB0b3VjaCBldmVudCBoYW5kbGVyIGZyb20gdGhlIGNvbXBv
c2l0b3IKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0ZpbmRJblBhZ2VDb29yZGlu
YXRlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRmluZElu
UGFnZUNvb3JkaW5hdGVzLmNwcAkocmV2aXNpb24gMTM3NDg2KQorKysgU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvRmluZEluUGFnZUNvb3JkaW5hdGVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NjcsNyArNjcsNyBAQCBzdGF0aWMgRmxvYXRSZWN0IHRvTm9ybWFsaXplZFJlY3QoY29uc3QgCiAg
ICAgICAgIHNjcm9sbGVkT3JpZ2luID0gLUludFBvaW50KGNvbnRhaW5lci0+c2Nyb2xsZWRDb250
ZW50T2Zmc2V0KCkpOwogCiAgICAgRmxvYXRSZWN0IG92ZXJmbG93UmVjdChzY3JvbGxlZE9yaWdp
biwgY29udGFpbmVyLT5tYXhMYXlvdXRPdmVyZmxvdygpKTsKLSAgICBGbG9hdFJlY3QgY29udGFp
bmVyUmVjdCA9IGNvbnRhaW5lci0+bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFF1YWQob3ZlcmZs
b3dSZWN0KSwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpLmVuY2xvc2luZ0JvdW5kaW5nQm94KCk7
CisgICAgRmxvYXRSZWN0IGNvbnRhaW5lclJlY3QgPSBjb250YWluZXItPmxvY2FsVG9BYnNvbHV0
ZVF1YWQoRmxvYXRRdWFkKG92ZXJmbG93UmVjdCkpLmVuY2xvc2luZ0JvdW5kaW5nQm94KCk7CiAK
ICAgICBpZiAoY29udGFpbmVyUmVjdC5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBGbG9hdFJl
Y3QoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0xpbmtIaWdobGlnaHQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0xpbmtIaWdobGlnaHQu
Y3BwCShyZXZpc2lvbiAxMzc0ODYpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9MaW5r
SGlnaGxpZ2h0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTYxLDcgKzE2MSw3IEBAIHN0YXRpYyB2
b2lkIGNvbnZlcnRUYXJnZXRTcGFjZVF1YWRUb0NvbXAKIAogICAgICAgICBwb2ludCA9IHRhcmdl
dFJlbmRlcmVyLT5mcmFtZSgpLT52aWV3KCktPmNvbnRlbnRzVG9XaW5kb3cocG9pbnQpOwogICAg
ICAgICBwb2ludCA9IGNvbXBvc2l0ZWRSZW5kZXJlci0+ZnJhbWUoKS0+dmlldygpLT53aW5kb3dU
b0NvbnRlbnRzKHBvaW50KTsKLSAgICAgICAgRmxvYXRQb2ludCBmbG9hdFBvaW50ID0gY29tcG9z
aXRlZFJlbmRlcmVyLT5hYnNvbHV0ZVRvTG9jYWwocG9pbnQsIFVzZVRyYW5zZm9ybXMgfCBTbmFw
T2Zmc2V0Rm9yVHJhbnNmb3Jtcyk7CisgICAgICAgIEZsb2F0UG9pbnQgZmxvYXRQb2ludCA9IGNv
bXBvc2l0ZWRSZW5kZXJlci0+YWJzb2x1dGVUb0xvY2FsKHBvaW50LCBVc2VUcmFuc2Zvcm1zKTsK
IAogICAgICAgICBzd2l0Y2ggKGkpIHsKICAgICAgICAgY2FzZSAwOiBjb21wb3NpdGVkU3BhY2VR
dWFkLnNldFAxKGZsb2F0UG9pbnQpOyBicmVhazsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYklucHV0RXZlbnRDb252ZXJzaW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbnB1dEV2ZW50Q29udmVyc2lvbi5jcHAJKHJldmlzaW9u
IDEzNzQ4NikKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklucHV0RXZlbnRDb252
ZXJzaW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDA0LDcgKzQwNCw3IEBAIHN0YXRpYyBpbnQg
Z2V0V2ViSW5wdXRNb2RpZmllcnMoY29uc3QgVUkKIAogc3RhdGljIEludFBvaW50IGNvbnZlcnRB
YnNvbHV0ZUxvY2F0aW9uRm9yUmVuZGVyT2JqZWN0KGNvbnN0IExheW91dFBvaW50JiBsb2NhdGlv
biwgY29uc3QgV2ViQ29yZTo6UmVuZGVyT2JqZWN0JiByZW5kZXJPYmplY3QpCiB7Ci0gICAgcmV0
dXJuIHJvdW5kZWRJbnRQb2ludChyZW5kZXJPYmplY3QuYWJzb2x1dGVUb0xvY2FsKGxvY2F0aW9u
LCBVc2VUcmFuc2Zvcm1zIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpKTsKKyAgICByZXR1cm4g
cm91bmRlZEludFBvaW50KHJlbmRlck9iamVjdC5hYnNvbHV0ZVRvTG9jYWwobG9jYXRpb24sIFVz
ZVRyYW5zZm9ybXMpKTsKIH0KIAogc3RhdGljIHZvaWQgdXBkYXRlV2ViTW91c2VFdmVudEZyb21X
ZWJDb3JlTW91c2VFdmVudChjb25zdCBNb3VzZVJlbGF0ZWRFdmVudCYgZXZlbnQsIGNvbnN0IFdp
ZGdldCYgd2lkZ2V0LCBjb25zdCBXZWJDb3JlOjpSZW5kZXJPYmplY3QmIHJlbmRlck9iamVjdCwg
V2ViTW91c2VFdmVudCYgd2ViRXZlbnQpCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmNwcAkocmV2aXNpb24gMTM3NDg2
KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTU1NCw3ICs1NTQsNyBAQCBXZWJQb2ludCBXZWJQbHVnaW5D
b250YWluZXJJbXBsOjp3aW5kb3dUCiAgICAgaWYgKCF2aWV3KQogICAgICAgICByZXR1cm4gcG9p
bnQ7CiAgICAgV2ViUG9pbnQgd2luZG93UG9pbnQgPSB2aWV3LT53aW5kb3dUb0NvbnRlbnRzKHBv
aW50KTsKLSAgICByZXR1cm4gcm91bmRlZEludFBvaW50KG1fZWxlbWVudC0+cmVuZGVyZXIoKS0+
YWJzb2x1dGVUb0xvY2FsKExheW91dFBvaW50KHdpbmRvd1BvaW50KSwgVXNlVHJhbnNmb3JtcyB8
IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKSk7CisgICAgcmV0dXJuIHJvdW5kZWRJbnRQb2ludCht
X2VsZW1lbnQtPnJlbmRlcmVyKCktPmFic29sdXRlVG9Mb2NhbChMYXlvdXRQb2ludCh3aW5kb3dQ
b2ludCksIFVzZVRyYW5zZm9ybXMpKTsKIH0KIAogdm9pZCBXZWJQbHVnaW5Db250YWluZXJJbXBs
OjpkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9tYWMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMzc0ODYpCisrKyBTb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0xMi0xMyAg
TGV2aSBXZWludHJhdWIgIDxsZXZpd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUHVzaCBwaXhl
bCBzbmFwcGluZyBsb2dpYyBpbnRvIFRyYW5zZm9ybVN0YXRlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE3NzkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlZpZXcvV2ViRnVsbFNjcmVlbkNvbnRy
b2xsZXIubW06CisgICAgICAgIChzY3JlZW5SZWN0T2ZDb250ZW50cyk6IFJlbW92ZWQgU25hcE9m
ZnNldEZvclRyYW5zZm9ybXMgYXMgaXQncyBubyBsb25nZXIgbmVlZGVkLgorCiAyMDEyLTEyLTEy
ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgTE9H
KCkgd29yayBpbiBXZWJQcm9jZXNzIGFuZCBOZXR3b3JrUHJvY2VzcwpJbmRleDogU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJGdWxsU2NyZWVuQ29udHJvbGxlci5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZ1bGxTY3JlZW5Db250cm9sbGVyLm1tCShy
ZXZpc2lvbiAxMzc0ODYpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZ1bGxTY3Jl
ZW5Db250cm9sbGVyLm1tCSh3b3JraW5nIGNvcHkpCkBAIC01Niw3ICs1Niw3IEBAIHN0YXRpYyBJ
bnRSZWN0IHNjcmVlblJlY3RPZkNvbnRlbnRzKEVsZW0KICAgICBBU1NFUlQoZWxlbWVudCk7CiAg
ICAgaWYgKGVsZW1lbnQtPnJlbmRlcmVyKCkgJiYgZWxlbWVudC0+cmVuZGVyZXIoKS0+aGFzTGF5
ZXIoKSAmJiBlbGVtZW50LT5yZW5kZXJlcigpLT5lbmNsb3NpbmdMYXllcigpLT5pc0NvbXBvc2l0
ZWQoKSkgewogICAgICAgICBGbG9hdFF1YWQgY29udGVudHNCb3ggPSBzdGF0aWNfY2FzdDxGbG9h
dFJlY3Q+KGVsZW1lbnQtPnJlbmRlcmVyKCktPmVuY2xvc2luZ0xheWVyKCktPmJhY2tpbmcoKS0+
Y29udGVudHNCb3goKSk7Ci0gICAgICAgIGNvbnRlbnRzQm94ID0gZWxlbWVudC0+cmVuZGVyZXIo
KS0+bG9jYWxUb0Fic29sdXRlUXVhZChjb250ZW50c0JveCwgU25hcE9mZnNldEZvclRyYW5zZm9y
bXMpOworICAgICAgICBjb250ZW50c0JveCA9IGVsZW1lbnQtPnJlbmRlcmVyKCktPmxvY2FsVG9B
YnNvbHV0ZVF1YWQoY29udGVudHNCb3gpOwogICAgICAgICByZXR1cm4gZWxlbWVudC0+cmVuZGVy
ZXIoKS0+dmlldygpLT5mcmFtZVZpZXcoKS0+Y29udGVudHNUb1NjcmVlbihjb250ZW50c0JveC5l
bmNsb3NpbmdCb3VuZGluZ0JveCgpKTsKICAgICB9CiAgICAgcmV0dXJuIGVsZW1lbnQtPnNjcmVl
blJlY3QoKTsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNzYyOSkKKysrIExheW91dFRlc3RzL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBACisyMDEyLTEyLTEzICBMZXZpIFdl
aW50cmF1YiAgPGxldml3QGNocm9taXVtLm9yZz4KKworICAgICAgICBQdXNoIHBpeGVsIHNuYXBw
aW5nIGxvZ2ljIGludG8gVHJhbnNmb3JtU3RhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTc3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9kb20vV2luZG93L3dlYmtpdENvbnZlcnRQb2lu
dC5odG1sOiBVcGRhdGluZyB2YWx1ZXMgdG8gbWF0Y2ggY29ycmVjdGVkIHBpeGVsIHNuYXBwaW5n
LgorICAgICAgICAqIGZhc3QvbXVsdGljb2wvYnJlYWstcHJvcGVydGllcy5odG1sOiBGaXhpbmcg
c3ViLXBpeGVsIGxheW91dCBmZWF0dXJlIGNoZWNraW5nLgorICAgICAgICAqIGZhc3QvbXVsdGlj
b2wvdmVydGljYWwtbHIvYnJlYWstcHJvcGVydGllcy5odG1sOiBEaXR0by4KKyAgICAgICAgKiBm
YXN0L211bHRpY29sL3ZlcnRpY2FsLXJsL2JyZWFrLXByb3BlcnRpZXMuaHRtbDogRGl0dG8uCisg
ICAgICAgICogZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC5o
dG1sOiBVcGRhdGluZyB0byBjYXRjaCB0aGUgYnVnIHdoZXJlIHRoZSBvbGQKKyAgICAgICAgcGl4
ZWwgc25hcHBpbmcgbG9naWMgZGlkIHRoZSB3cm9uZyB0aGluZyB3aGVuIG5lc3RlZC4KKyAgICAg
ICAgKiBmYXN0L3N1Yi1waXhlbC90cmFuc2Zvcm1lZC1pZnJhbWUtY29weS1vbi1zY3JvbGwuaHRt
bDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvZmFzdC9zdWItcGl4
ZWwvc3ViLXBpeGVsLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC1leHBlY3RlZC5wbmc6CisgICAgICAg
ICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvZmFzdC9zdWItcGl4ZWwvdHJhbnNmb3JtZWQtaWZy
YW1lLWNvcHktb24tc2Nyb2xsLWV4cGVjdGVkLnBuZzogQWRkZWQuCisgICAgICAgICogcGxhdGZv
cm0vY2hyb21pdW0tbGludXgvZmFzdC9zdWItcGl4ZWwvdHJhbnNmb3JtZWQtaWZyYW1lLWNvcHkt
b24tc2Nyb2xsLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21p
dW0td2luL2Zhc3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1pZnJhbWUtY29weS1vbi1zY3JvbGwtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnM6
CisKIDIwMTItMTItMTMgIEpvYW5tYXJpZSBEaWdncyAgPGpkaWdnc0BpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFtHVEtdIGFjY2Vzc2liaWx0aXkvYXJpYS1oaWRkZW4uaHRtbCBpcyBmYWlsaW5nCklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2Via2l0Q29udmVydFBvaW50Lmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dlYmtpdENvbnZlcnRQ
b2ludC5odG1sCShyZXZpc2lvbiAxMzc0ODYpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5k
b3cvd2Via2l0Q29udmVydFBvaW50Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE0NSw4ICsxNDUs
OCBAQAogICAgICAgICAgICAgICAgIHJ1blRlc3QoIlRlc3QgOCIsICAidGVzdDgiLCAgOCwgMjcz
LCAxMywgMzEzKTsKICAgICAgICAgICAgICAgICBydW5UZXN0KCJUZXN0IDkiLCAgInRlc3Q5Iiwg
IDI4LCAyOTEsIDMzLCAzMzEpOwogICAgICAgICAgICAgICAgIHJ1blRlc3QoIlRlc3QgMTAiLCAi
dGVzdDEwIiwgMjgsIDMwOSwgMzMsIDM0OSk7Ci0gICAgICAgICAgICAgICAgcnVuVGVzdCgiVGVz
dCAxMSIsICJ0ZXN0MTEiLCAxNTgsIDM1NSwgMTc0LCAzNzMpOwotICAgICAgICAgICAgICAgIHJ1
blRlc3QoIlRlc3QgMTIiLCAidGVzdDEyIiwgMTY4LCA0MjgsIDE4NCwgNDQ2KTsKKyAgICAgICAg
ICAgICAgICBydW5UZXN0KCJUZXN0IDExIiwgInRlc3QxMSIsIDE1OCwgMzU2LCAxNzQsIDM3NCk7
CisgICAgICAgICAgICAgICAgcnVuVGVzdCgiVGVzdCAxMiIsICJ0ZXN0MTIiLCAxNjgsIDQyOSwg
MTg0LCA0NDcpOwogICAgICAgICAgICAgICAgIHJ1blRlc3QoIlRlc3QgMTMiLCAidGVzdDEzIiwg
MjgsIDQ4NywgMzMsIDUyNyk7CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAg
IHJ1blRlc3QoIlRlc3QgMSIsICAidGVzdDEiLCAgOCwgMTIsIDEzLCA1Mik7CkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L211bHRpY29sL2JyZWFrLXByb3BlcnRpZXMuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L211bHRpY29sL2JyZWFrLXByb3BlcnRpZXMuaHRtbAkocmV2aXNp
b24gMTM3NDg2KQorKysgTGF5b3V0VGVzdHMvZmFzdC9tdWx0aWNvbC9icmVhay1wcm9wZXJ0aWVz
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEwLDYgKzEwLDcgQEAKICAgICA8ZGl2IGNsYXNzPSJz
aG9ydGVyIGJveCIgc3R5bGU9Ii13ZWJraXQtY29sdW1uLWJyZWFrLWFmdGVyOiBhbHdheXM7Ij48
L2Rpdj4KICAgICA8ZGl2IGlkPSJhZnRlci1icmVhayIgY2xhc3M9InNob3J0ZXIgYm94Ij48L2Rp
dj4KICAgICA8ZGl2IGlkPSJuby1icmVhayIgY2xhc3M9InNob3J0ZXIgYm94IiBzdHlsZT0iLXdl
YmtpdC1jb2x1bW4tYnJlYWstaW5zaWRlOiBhdm9pZDsiPjwvZGl2PgorICAgIDxkaXYgaWQ9InN1
YlBpeGVsVGVzdCIgc3R5bGU9IndpZHRoOjEwLjVweCI+PC9kaXY+CiA8L2Rpdj4KIDxwcmUgaWQ9
ImNvbnNvbGUiPjwvcHJlPgogPHNjcmlwdD4KQEAgLTMwLDggKzMxLDggQEAKICAgICAgICAgICAg
IGxvZygiRkFJTDogJyIgKyBpZCArICInIGlzIGF0ICgiICsgTWF0aC5yb3VuZChyZWN0LmxlZnQp
ICsgIiwgIiArIE1hdGgucm91bmQocmVjdC50b3ApICsgIikgaW5zdGVhZCBvZiAoIiArIGV4cGVj
dGVkTGVmdCArICIgLCIgKyBleHBlY3RlZFRvcCArICIpIik7CiAgICAgfQogCi0gICAgdmFyIHJl
Y3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnJlYWstYmVmb3JlJykuZ2V0Qm91bmRpbmdD
bGllbnRSZWN0KCk7Ci0gICAgdmFyIGhhc1N1YnBpeGVsU3VwcG9ydCA9IE1hdGgucm91bmQocmVj
dC5sZWZ0KSAhPSByZWN0LmxlZnQ7CisgICAgdmFyIHJlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnc3ViUGl4ZWxUZXN0JykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgICAgdmFyIGhh
c1N1YnBpeGVsU3VwcG9ydCA9IE1hdGgucm91bmQocmVjdC5yaWdodCkgIT0gcmVjdC5yaWdodDsK
IAogICAgIHRlc3RCb3hQb3NpdGlvbigiYnJlYWstYmVmb3JlIiwgaGFzU3VicGl4ZWxTdXBwb3J0
ID8gMjIwIDogMjE4LCA4KTsKICAgICB0ZXN0Qm94UG9zaXRpb24oImFmdGVyLWJyZWFrIiwgaGFz
U3VicGl4ZWxTdXBwb3J0ID8gNDMxIDogNDI4LCA4KTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
bXVsdGljb2wvdmVydGljYWwtbHIvYnJlYWstcHJvcGVydGllcy5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvbXVsdGljb2wvdmVydGljYWwtbHIvYnJlYWstcHJvcGVydGllcy5o
dG1sCShyZXZpc2lvbiAxMzc0ODYpCisrKyBMYXlvdXRUZXN0cy9mYXN0L211bHRpY29sL3ZlcnRp
Y2FsLWxyL2JyZWFrLXByb3BlcnRpZXMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTEsNiArMTEs
NyBAQAogICAgIDxkaXYgY2xhc3M9InNob3J0ZXIgYm94IiBzdHlsZT0iLXdlYmtpdC1jb2x1bW4t
YnJlYWstYWZ0ZXI6IGFsd2F5czsiPjwvZGl2PgogICAgIDxkaXYgaWQ9ImFmdGVyLWJyZWFrIiBj
bGFzcz0ic2hvcnRlciBib3giPjwvZGl2PgogICAgIDxkaXYgaWQ9Im5vLWJyZWFrIiBjbGFzcz0i
c2hvcnRlciBib3giIHN0eWxlPSItd2Via2l0LWNvbHVtbi1icmVhay1pbnNpZGU6IGF2b2lkOyI+
PC9kaXY+CisgICAgPGRpdiBpZD0ic3ViUGl4ZWxUZXN0IiBzdHlsZT0id2lkdGg6MTAuNXB4Ij48
L2Rpdj4KIDwvZGl2PgogPHByZSBpZD0iY29uc29sZSI+PC9wcmU+CiA8c2NyaXB0PgpAQCAtMzEs
OCArMzIsOCBAQAogICAgICAgICAgICAgbG9nKCJGQUlMOiAnIiArIGlkICsgIicgaXMgYXQgKCIg
KyBNYXRoLnJvdW5kKHJlY3QubGVmdCkgKyAiLCAiICsgTWF0aC5yb3VuZChyZWN0LnRvcCkgKyAi
KSBpbnN0ZWFkIG9mICgiICsgZXhwZWN0ZWRMZWZ0ICsgIiAsIiArIGV4cGVjdGVkVG9wICsgIiki
KTsKICAgICB9CiAKLSAgICB2YXIgcmVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdicmVh
ay1iZWZvcmUnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKLSAgICB2YXIgaGFzU3VicGl4ZWxT
dXBwb3J0ID0gTWF0aC5yb3VuZChyZWN0LnRvcCkgIT0gcmVjdC50b3A7CisgICAgdmFyIHJlY3Qg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3ViUGl4ZWxUZXN0JykuZ2V0Qm91bmRpbmdDbGll
bnRSZWN0KCk7CisgICAgdmFyIGhhc1N1YnBpeGVsU3VwcG9ydCA9IE1hdGgucm91bmQocmVjdC5i
b3R0b20pICE9IHJlY3QuYm90dG9tOwogCiAgICAgdGVzdEJveFBvc2l0aW9uKCJicmVhay1iZWZv
cmUiLCA4LCBoYXNTdWJwaXhlbFN1cHBvcnQgPyAyMjAgOiAyMTgpOwogICAgIHRlc3RCb3hQb3Np
dGlvbigiYWZ0ZXItYnJlYWsiLCA4LCBoYXNTdWJwaXhlbFN1cHBvcnQgPyA0MzEgOiA0MjgpOwpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9tdWx0aWNvbC92ZXJ0aWNhbC1ybC9icmVhay1wcm9wZXJ0
aWVzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9tdWx0aWNvbC92ZXJ0aWNh
bC1ybC9icmVhay1wcm9wZXJ0aWVzLmh0bWwJKHJldmlzaW9uIDEzNzQ4NikKKysrIExheW91dFRl
c3RzL2Zhc3QvbXVsdGljb2wvdmVydGljYWwtcmwvYnJlYWstcHJvcGVydGllcy5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNCw2ICsxNCw3IEBACiAgICAgPGRpdiBjbGFzcz0ic2hvcnRlciBib3gi
IHN0eWxlPSItd2Via2l0LWNvbHVtbi1icmVhay1hZnRlcjogYWx3YXlzOyI+PC9kaXY+CiAgICAg
PGRpdiBpZD0iYWZ0ZXItYnJlYWsiIGNsYXNzPSJzaG9ydGVyIGJveCI+PC9kaXY+CiAgICAgPGRp
diBpZD0ibm8tYnJlYWsiIGNsYXNzPSJzaG9ydGVyIGJveCIgc3R5bGU9Ii13ZWJraXQtY29sdW1u
LWJyZWFrLWluc2lkZTogYXZvaWQ7Ij48L2Rpdj4KKyAgICA8ZGl2IGlkPSJzdWJQaXhlbFRlc3Qi
IHN0eWxlPSJ3aWR0aDoxMC41cHgiPjwvZGl2PgogPC9kaXY+CiA8cHJlIGlkPSJjb25zb2xlIj48
L3ByZT4KIDxzY3JpcHQ+CkBAIC0zNCw4ICszNSw4IEBACiAgICAgICAgICAgICBsb2coIkZBSUw6
ICciICsgaWQgKyAiJyBpcyBhdCAoIiArIE1hdGgucm91bmQocmVjdC5sZWZ0KSArICIsICIgKyBN
YXRoLnJvdW5kKHJlY3QudG9wKSArICIpIGluc3RlYWQgb2YgKCIgKyBleHBlY3RlZExlZnQgKyAi
ICwiICsgZXhwZWN0ZWRUb3AgKyAiKSIpOwogICAgIH0KIAotICAgIHZhciByZWN0ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2JyZWFrLWJlZm9yZScpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgp
OwotICAgIHZhciBoYXNTdWJwaXhlbFN1cHBvcnQgPSBNYXRoLnJvdW5kKHJlY3QudG9wKSAhPSBy
ZWN0LnRvcDsKKyAgICB2YXIgcmVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdWJQaXhl
bFRlc3QnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICB2YXIgaGFzU3VicGl4ZWxTdXBw
b3J0ID0gTWF0aC5yb3VuZChyZWN0LmJvdHRvbSkgIT0gcmVjdC5ib3R0b207CiAKICAgICB0ZXN0
Qm94UG9zaXRpb24oImJyZWFrLWJlZm9yZSIsIDc0OCwgaGFzU3VicGl4ZWxTdXBwb3J0ID8gMjIw
IDogMjE4KTsKICAgICB0ZXN0Qm94UG9zaXRpb24oImFmdGVyLWJyZWFrIiwgNzQ4LCBoYXNTdWJw
aXhlbFN1cHBvcnQgPyA0MzEgOiA0MjgpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9zdWItcGl4
ZWwvc3ViLXBpeGVsLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1pZnJhbWUtY29weS1vbi1zY3JvbGwu
aHRtbAkocmV2aXNpb24gMTM3NDg2KQorKysgTGF5b3V0VGVzdHMvZmFzdC9zdWItcGl4ZWwvc3Vi
LXBpeGVsLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yLDEw
ICsyLDEyIEBACiA8aHRtbD4KIDxoZWFkPgogPHN0eWxlIHR5cGU9InRleHQvY3NzIiBtZWRpYT0i
c2NyZWVuIj4KKy5zdWJwaXhlbFB1c2hlciB7CisgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAg
IHRvcDogMC40cHg7Cit9CiAuY29udGFpbmVyIHsKLSAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0g
ICAgcGFkZGluZzogMTAuM3B4OwotICAgIHotaW5kZXg6IDE7CisgICAgZGlzcGxheTogaW5saW5l
LWJsb2NrOwogfQogPC9zdHlsZT4KIDxzY3JpcHQgc3JjPSIuLi9yZXBhaW50L3Jlc291cmNlcy9y
ZXBhaW50LmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgpAQCAtMTMsMjYgKzE1
LDQzIEBACiBpZiAod2luZG93LnRlc3RSdW5uZXIpCiAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9u
ZSgpOwogCi1mdW5jdGlvbiBzZXR1cElmcmFtZSgpIHsKLSAgdmFyIHN1YkRvY3VtZW50ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lmcmFtZScpLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQ7Ci0g
IHN1YkRvY3VtZW50Lm9wZW4oJ3RleHQvaHRtbCcsICdyZXBsYWNlJyk7Ci0gIHN1YkRvY3VtZW50
LndyaXRlKCI8IURPQ1RZUEUgaHRtbD5cbjxodG1sPjxib2R5IHN0eWxlPVwiYmFja2dyb3VuZC1j
b2xvcjogc2lsdmVyO2hlaWdodDogMTAwMHB4O1wiPjwvYm9keT4iKQotICBzdWJEb2N1bWVudC5j
bG9zZSgpOworZnVuY3Rpb24gc2V0dXBJZnJhbWVzKCkgeworICBzZXR1cElmcmFtZShkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnaWZyYW1lMScpLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQpOworICBz
ZXR1cElmcmFtZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaWZyYW1lMicpLmNvbnRlbnRXaW5k
b3cuZG9jdW1lbnQpOworICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaWZyYW1lMScpLmNvbnRl
bnRXaW5kb3cuc2Nyb2xsVG8oMCwgMTApOworfQorCitmdW5jdGlvbiBzZXR1cElmcmFtZShpZnJh
bWUpIHsKKyAgaWZyYW1lLm9wZW4oJ3RleHQvaHRtbCcsICdyZXBsYWNlJyk7CisgIGlmcmFtZS53
cml0ZSgiPCFET0NUWVBFIGh0bWw+XG48aHRtbD48Ym9keSBzdHlsZT1cImJhY2tncm91bmQtY29s
b3I6IHNpbHZlcjtoZWlnaHQ6IDEwMDBweDtcIj48L2JvZHk+Iik7CisgIGlmcmFtZS5jbG9zZSgp
OwogfQogCiBmdW5jdGlvbiByZXBhaW50VGVzdCgpIHsKLSAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2lmcmFtZScpLmNvbnRlbnRXaW5kb3cuc2Nyb2xsVG8oMCwgMTApOworICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnaWZyYW1lMScpLmNvbnRlbnRXaW5kb3cuc2Nyb2xsVG8oMCwgMCk7Cisg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpZnJhbWUyJykuY29udGVudFdpbmRvdy5zY3JvbGxU
bygwLCAxMCk7CiAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKICAgICB0ZXN0UnVubmVyLm5vdGlm
eURvbmUoKTsKIH0KIDwvc2NyaXB0PgogPC9oZWFkPgotPGJvZHkgb25sb2FkPSJzZXR1cElmcmFt
ZSgpO3J1blJlcGFpbnRUZXN0KCkiPgotICA8cD5UaGUgaWZyYW1lIGJlbG93IHNob3VsZCByZW1h
aW4gZ3JleSB3aGVuIHNjcm9sbGluZy48L3A+Ci0gIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+Ci0g
ICAgPGlmcmFtZSBpZD0iaWZyYW1lIiAgc3R5bGU9IndpZHRoOiAzMDBweDsgaGVpZ2h0OiAyMDBw
eDsiPjwvaWZyYW1lPgorPGJvZHkgb25sb2FkPSJzZXR1cElmcmFtZXMoKTtydW5SZXBhaW50VGVz
dCgpIj4KKyAgPHA+VGhlIGlmcmFtZXMgYmVsb3cgc2hvdWxkIHJlbWFpbiBncmV5IHdpdGggbm8g
cmVwYWludCBhcnRpZmFjdHMgd2hlbiBzY3JvbGxpbmcuPC9wPgorICA8ZGl2PgorICAgIDxkaXYg
Y2xhc3M9ImNvbnRhaW5lciI+CisgICAgICA8ZGl2IGNsYXNzPSJzdWJwaXhlbFB1c2hlciI+Cisg
ICAgICAgIDxkaXYgY2xhc3M9InN1YnBpeGVsUHVzaGVyIj4KKyAgICAgICAgPGlmcmFtZSBpZD0i
aWZyYW1lMSIgIHN0eWxlPSJ3aWR0aDogMTUwcHg7IGhlaWdodDogMjAwcHg7Ij48L2lmcmFtZT4K
KyAgICAgIDwvZGl2PgorICAgICAgPC9kaXY+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0i
Y29udGFpbmVyIj4KKyAgICAgIDxkaXYgY2xhc3M9InN1YnBpeGVsUHVzaGVyIj4KKyAgICAgICAg
PGRpdiBjbGFzcz0ic3VicGl4ZWxQdXNoZXIiPgorICAgICAgICAgIDxpZnJhbWUgaWQ9ImlmcmFt
ZTIiICBzdHlsZT0id2lkdGg6IDE1MHB4OyBoZWlnaHQ6IDIwMHB4OyI+PC9pZnJhbWU+CisgICAg
ICAgIDwvZGl2PgorICAgICAgPC9kaXY+CisgICAgPC9kaXY+CiAgIDwvZGl2PgotICA8L2Rpdj4K
LQogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9zdWItcGl4ZWwvdHJh
bnNmb3JtZWQtaWZyYW1lLWNvcHktb24tc2Nyb2xsLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9zdWItcGl4ZWwvdHJhbnNmb3JtZWQtaWZyYW1lLWNvcHktb24tc2Nyb2xsLmh0
bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L3N1Yi1waXhlbC90cmFuc2Zvcm1l
ZC1pZnJhbWUtY29weS1vbi1zY3JvbGwuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDc5
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGUgdHlwZT0idGV4dC9j
c3MiIG1lZGlhPSJzY3JlZW4iPgorLnN1YnBpeGVsUHVzaGVyIHsKKyAgICBwb3NpdGlvbjogcmVs
YXRpdmU7CisgICAgdG9wOiAwLjRweDsKKyAgICB6LWluZGV4OiAxOworfQorLmNvbnRhaW5lciB7
CisgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOworICAgIHBhZGRpbmctbGVmdDogODBweDsKKyAg
ICBwYWRkaW5nLXRvcDogMTBweDsKK30KKy50cmFuc2Zvcm0geworICAtd2Via2l0LXRyYW5zZm9y
bTogcm90YXRlM2QoMCwgMCwgMSwgNDVkZWcpOworfQorPC9zdHlsZT4KKzxzY3JpcHQgc3JjPSIu
Li9yZXBhaW50L3Jlc291cmNlcy9yZXBhaW50LmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwv
c2NyaXB0PgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgdGVzdFJ1bm5lci53
YWl0VW50aWxEb25lKCk7CisKK2Z1bmN0aW9uIHNldHVwSWZyYW1lcygpIHsKKyAgc2V0dXBJZnJh
bWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lmcmFtZTEnKS5jb250ZW50V2luZG93LmRvY3Vt
ZW50KTsKKyAgc2V0dXBJZnJhbWUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lmcmFtZTInKS5j
b250ZW50V2luZG93LmRvY3VtZW50KTsKKyAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lmcmFt
ZTEnKS5jb250ZW50V2luZG93LnNjcm9sbFRvKDAsIDEwKTsKK30KKworZnVuY3Rpb24gc2V0dXBJ
ZnJhbWUoaWZyYW1lKSB7CisgIGlmcmFtZS5vcGVuKCd0ZXh0L2h0bWwnLCAncmVwbGFjZScpOwor
ICBpZnJhbWUud3JpdGUoIjwhRE9DVFlQRSBodG1sPlxuPGh0bWw+PGJvZHkgc3R5bGU9XCJiYWNr
Z3JvdW5kLWNvbG9yOiBzaWx2ZXI7aGVpZ2h0OiAxMDAwcHg7XCI+PC9ib2R5PiIpOworICBpZnJh
bWUuY2xvc2UoKTsKK30KKworZnVuY3Rpb24gcmVwYWludFRlc3QoKSB7CisgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdpZnJhbWUxJykuY29udGVudFdpbmRvdy5zY3JvbGxUbygwLCAwKTsKKyAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lmcmFtZTInKS5jb250ZW50V2luZG93LnNjcm9sbFRv
KDAsIDEwKTsKKyAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIubm90aWZ5
RG9uZSgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNldHVwSWZyYW1l
cygpO3J1blJlcGFpbnRUZXN0KCkiPgorICA8cD5UaGUgaWZyYW1lcyBiZWxvdyBzaG91bGQgcmVt
YWluIGdyZXkgd2l0aCBubyByZXBhaW50IGFydGlmYWN0cyB3aGVuIHNjcm9sbGluZy48L3A+Cisg
IDxkaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgIDxkaXYgY2xhc3M9InRy
YW5zZm9ybSI+CisgICAgICAgIDxkaXYgY2xhc3M9InN1YnBpeGVsUHVzaGVyIj4KKyAgICAgICAg
ICA8ZGl2IGNsYXNzPSJzdWJwaXhlbFB1c2hlciI+CisgICAgICAgICAgICA8aWZyYW1lIGlkPSJp
ZnJhbWUxIiAgc3R5bGU9IndpZHRoOiAxNTBweDsgaGVpZ2h0OiAyMDBweDsiPjwvaWZyYW1lPgor
ICAgICAgICAgIDwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAgIDwvZGl2PgorICAgIDwvZGl2
PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICA8ZGl2IGNsYXNzPSJzdWJwaXhl
bFB1c2hlciI+CisgICAgICAgIDxkaXYgY2xhc3M9InN1YnBpeGVsUHVzaGVyIj4KKyAgICAgICAg
ICA8ZGl2IGNsYXNzPSJzdWJwaXhlbFB1c2hlciI+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ0
cmFuc2Zvcm0iPgorICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJwaXhlbFB1c2hlciI+Cisg
ICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3VicGl4ZWxQdXNoZXIiPgorICAgICAgICAgICAg
ICAgICAgPGRpdiBjbGFzcz0ic3VicGl4ZWxQdXNoZXIiPgorICAgICAgICAgICAgICAgICAgICA8
ZGl2IGNsYXNzPSJ0cmFuc2Zvcm0iPgorICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9
InN1YnBpeGVsUHVzaGVyIj4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxpZnJhbWUgaWQ9Imlm
cmFtZTIiICBzdHlsZT0id2lkdGg6IDE1MHB4OyBoZWlnaHQ6IDIwMHB4OyI+PC9pZnJhbWU+Cisg
ICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CisgICAgICAgICAgICAgICAgICAgIDwvZGl2Pgor
ICAgICAgICAgICAgICAgICAgPC9kaXY+ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAg
IDwvZGl2PgorICAgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgICAgIDwvZGl2PgorICAgICAg
ICAgIDwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorICA8
L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtLWxpbnV4L2Zhc3Qvc3ViLXBpeGVsL3RyYW5zZm9ybWVkLWlmcmFtZS1jb3B5LW9uLXNjcm9s
bC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0tbGludXgvZmFzdC9zdWItcGl4ZWwvdHJhbnNmb3JtZWQtaWZyYW1lLWNvcHktb24tc2Nyb2xs
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtLWxpbnV4L2Zhc3Qvc3ViLXBpeGVsL3RyYW5zZm9ybWVkLWlmcmFtZS1jb3B5LW9uLXNjcm9s
bC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1MiBAQAorbGF5ZXIgYXQg
KDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCits
YXllciBhdCAoMCwwKSBzaXplIDgwMHgyNzkKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDAp
IHNpemUgODAweDI3OQorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDE2KSBzaXplIDc4NHgy
NTUKKyAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwwKSBzaXplIDc4NHgyMAorICAgICAgICBS
ZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0NjV4MTkKKyAgICAgICAgICB0ZXh0IHJ1
biBhdCAoMCwwKSB3aWR0aCA0NjU6ICJUaGUgaWZyYW1lcyBiZWxvdyBzaG91bGQgcmVtYWluIGdy
ZXkgd2l0aCBubyByZXBhaW50IGFydGlmYWN0cyB3aGVuIHNjcm9sbGluZy4iCisgICAgICBSZW5k
ZXJCbG9jayB7RElWfSBhdCAoMCwzNikgc2l6ZSA3ODR4MjE5CisgICAgICAgIFJlbmRlckJsb2Nr
IHtESVZ9IGF0ICgwLDApIHNpemUgMjM0eDIxOQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDIzNCwxOTkpIHNpemUgNHgxOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgyMzQsMTk5KSB3
aWR0aCA0OiAiICIKKyAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDIzOCwwKSBzaXplIDIz
NHgyMTkKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCitsYXll
ciBhdCAoODgsNjIpIHNpemUgMTU0eDIwOQorICBSZW5kZXJCbG9jayB7RElWfSBhdCAoODAsMTAp
IHNpemUgMTU0eDIwOQorbGF5ZXIgYXQgKDg4LDYyKSBzaXplIDE1NHgyMDkKKyAgUmVuZGVyQmxv
Y2sgKHJlbGF0aXZlIHBvc2l0aW9uZWQpIHpJOiAxIHtESVZ9IGF0ICgwLDApIHNpemUgMTU0eDIw
OQorbGF5ZXIgYXQgKDg4LDYzKSBzaXplIDE1NHgyMDkKKyAgUmVuZGVyQmxvY2sgKHJlbGF0aXZl
IHBvc2l0aW9uZWQpIHpJOiAxIHtESVZ9IGF0ICgwLDApIHNpemUgMTU0eDIwOQorICAgIFJlbmRl
clBhcnRPYmplY3Qge0lGUkFNRX0gYXQgKDAsMCkgc2l6ZSAxNTR4MjA0IFtib3JkZXI6ICgycHgg
aW5zZXQgIzAwMDAwMCldCisgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDEzNXgxMDE2CisgICAg
ICAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSAxMzV4MjAwCisgICAgICBsYXllciBhdCAoMCww
KSBzaXplIDEzNXgxMDE2CisgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXpl
IDEzNXgxMDE2CisgICAgICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSAxMTl4
MTAwMCBbYmdjb2xvcj0jQzBDMEMwXQorICAgIFJlbmRlclRleHQgekk6IDEgeyN0ZXh0fSBhdCAo
MCwwKSBzaXplIDB4MAorbGF5ZXIgYXQgKDMyNiw2Mikgc2l6ZSAxNTR4MjA5CisgIFJlbmRlckJs
b2NrIChyZWxhdGl2ZSBwb3NpdGlvbmVkKSB6STogMSB7RElWfSBhdCAoODAsMTApIHNpemUgMTU0
eDIwOQorbGF5ZXIgYXQgKDMyNiw2Mykgc2l6ZSAxNTR4MjA5CisgIFJlbmRlckJsb2NrIChyZWxh
dGl2ZSBwb3NpdGlvbmVkKSB6STogMSB7RElWfSBhdCAoMCwwKSBzaXplIDE1NHgyMDkKK2xheWVy
IGF0ICgzMjYsNjMpIHNpemUgMTU0eDIwOQorICBSZW5kZXJCbG9jayAocmVsYXRpdmUgcG9zaXRp
b25lZCkgekk6IDEge0RJVn0gYXQgKDAsMCkgc2l6ZSAxNTR4MjA5CitsYXllciBhdCAoMzI2LDYz
KSBzaXplIDE1NHgyMDkKKyAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAxNTR4MjA5
CitsYXllciBhdCAoMzI2LDY0KSBzaXplIDE1NHgyMDkKKyAgUmVuZGVyQmxvY2sgKHJlbGF0aXZl
IHBvc2l0aW9uZWQpIHpJOiAxIHtESVZ9IGF0ICgwLDApIHNpemUgMTU0eDIwOQorbGF5ZXIgYXQg
KDMyNiw2NCkgc2l6ZSAxNTR4MjA5CisgIFJlbmRlckJsb2NrIChyZWxhdGl2ZSBwb3NpdGlvbmVk
KSB6STogMSB7RElWfSBhdCAoMCwwKSBzaXplIDE1NHgyMDkKK2xheWVyIGF0ICgzMjYsNjQpIHNp
emUgMTU0eDIwOQorICBSZW5kZXJCbG9jayAocmVsYXRpdmUgcG9zaXRpb25lZCkgekk6IDEge0RJ
Vn0gYXQgKDAsMCkgc2l6ZSAxNTR4MjA5CitsYXllciBhdCAoMzI2LDY0KSBzaXplIDE1NHgyMDkK
KyAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAxNTR4MjA5CitsYXllciBhdCAoMzI2
LDY1KSBzaXplIDE1NHgyMDkKKyAgUmVuZGVyQmxvY2sgKHJlbGF0aXZlIHBvc2l0aW9uZWQpIHpJ
OiAxIHtESVZ9IGF0ICgwLDApIHNpemUgMTU0eDIwOQorICAgIFJlbmRlclBhcnRPYmplY3Qge0lG
UkFNRX0gYXQgKDAsMCkgc2l6ZSAxNTR4MjA0IFtib3JkZXI6ICgycHggaW5zZXQgIzAwMDAwMCld
CisgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDEzNXgxMDE2CisgICAgICAgIFJlbmRlclZpZXcg
YXQgKDAsMCkgc2l6ZSAxMzV4MjAwCisgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDEzNXgxMDE2
CisgICAgICAgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDEzNXgxMDE2CisgICAg
ICAgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSAxMTl4MTAwMCBbYmdjb2xvcj0j
QzBDMEMwXQorICAgIFJlbmRlclRleHQgekk6IDEgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MApJ
bmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2Zhc3Qvc3ViLXBpeGVsL3N1
Yi1waXhlbC1pZnJhbWUtY29weS1vbi1zY3JvbGwtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9mYXN0L3N1Yi1waXhlbC9zdWItcGl4
ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTM3NDg2KQor
KysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2Zhc3Qvc3ViLXBpeGVsL3N1Yi1w
aXhlbC1pZnJhbWUtY29weS1vbi1zY3JvbGwtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC0xLDE3ICsxLDM2IEBACiBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgUmVuZGVyVmll
dyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKLWxheWVyIGF0ICgwLDApIHNpemUgODAweDUyCi0gIFJl
bmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg1MgotICAgIFJlbmRlckJvZHkge0JP
RFl9IGF0ICg4LDE2KSBzaXplIDc4NHgyMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4MjY5Cisg
IFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHgyNjkKKyAgICBSZW5kZXJCb2R5
IHtCT0RZfSBhdCAoOCwxNikgc2l6ZSA3ODR4MjQ1CiAgICAgICBSZW5kZXJCbG9jayB7UH0gYXQg
KDAsMCkgc2l6ZSA3ODR4MjAKLSAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNp
emUgMzE1eDE5Ci0gICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMzE1OiAiVGhlIGlm
cmFtZSBiZWxvdyBzaG91bGQgcmVtYWluIGdyZXkgd2hlbiBzY3JvbGxpbmcuIgotbGF5ZXIgYXQg
KDgsNTIpIHNpemUgMzI1eDIzMAotICBSZW5kZXJCbG9jayAocG9zaXRpb25lZCkgekk6IDEge0RJ
Vn0gYXQgKDgsNTIpIHNpemUgMzI1eDIzMAotICAgIFJlbmRlclBhcnRPYmplY3Qge0lGUkFNRX0g
YXQgKDEwLDEwKSBzaXplIDMwNHgyMDUgW2JvcmRlcjogKDJweCBpbnNldCAjMDAwMDAwKV0KLSAg
ICAgIGxheWVyIGF0ICgwLDApIHNpemUgMjg1eDEwMTYKLSAgICAgICAgUmVuZGVyVmlldyBhdCAo
MCwwKSBzaXplIDI4NXgyMDAKLSAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMjg1eDEwMTYKLSAg
ICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgMjg1eDEwMTYKLSAgICAgICAg
ICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDI2OXgxMDAwIFtiZ2NvbG9yPSNDMEMw
QzBdCi0gICAgUmVuZGVyVGV4dCB6STogMSB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCisgICAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDQ2NXgxOQorICAgICAgICAgIHRl
eHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ2NTogIlRoZSBpZnJhbWVzIGJlbG93IHNob3VsZCByZW1h
aW4gZ3JleSB3aXRoIG5vIHJlcGFpbnQgYXJ0aWZhY3RzIHdoZW4gc2Nyb2xsaW5nLiIKKyAgICAg
IFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDM2KSBzaXplIDc4NHgyMDkKKyAgICAgICAgUmVuZGVy
QmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAxNTR4MjA5CisgICAgICAgIFJlbmRlclRleHQgeyN0
ZXh0fSBhdCAoMTU0LDE4OSkgc2l6ZSA0eDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDE1NCwx
ODkpIHdpZHRoIDQ6ICIgIgorICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMTU4LDApIHNp
emUgMTU0eDIwOQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAK
K2xheWVyIGF0ICg4LDUyKSBzaXplIDE1NHgyMDkKKyAgUmVuZGVyQmxvY2sgKHJlbGF0aXZlIHBv
c2l0aW9uZWQpIHtESVZ9IGF0ICgwLDApIHNpemUgMTU0eDIwOQorbGF5ZXIgYXQgKDgsNTMpIHNp
emUgMTU0eDIwOQorICBSZW5kZXJCbG9jayAocmVsYXRpdmUgcG9zaXRpb25lZCkge0RJVn0gYXQg
KDAsMCkgc2l6ZSAxNTR4MjA5CisgICAgUmVuZGVyUGFydE9iamVjdCB7SUZSQU1FfSBhdCAoMCww
KSBzaXplIDE1NHgyMDQgW2JvcmRlcjogKDJweCBpbnNldCAjMDAwMDAwKV0KKyAgICAgIGxheWVy
IGF0ICgwLDApIHNpemUgMTM1eDEwMTYKKyAgICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXpl
IDEzNXgyMDAKKyAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTM1eDEwMTYKKyAgICAgICAgUmVu
ZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgMTM1eDEwMTYKKyAgICAgICAgICBSZW5kZXJC
b2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDExOXgxMDAwIFtiZ2NvbG9yPSNDMEMwQzBdCisgICAg
UmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCitsYXllciBhdCAoMTY2LDUyKSBz
aXplIDE1NHgyMDkKKyAgUmVuZGVyQmxvY2sgKHJlbGF0aXZlIHBvc2l0aW9uZWQpIHtESVZ9IGF0
ICgwLDApIHNpemUgMTU0eDIwOQorbGF5ZXIgYXQgKDE2Niw1Mykgc2l6ZSAxNTR4MjA5CisgIFJl
bmRlckJsb2NrIChyZWxhdGl2ZSBwb3NpdGlvbmVkKSB7RElWfSBhdCAoMCwwKSBzaXplIDE1NHgy
MDkKKyAgICBSZW5kZXJQYXJ0T2JqZWN0IHtJRlJBTUV9IGF0ICgwLDApIHNpemUgMTU0eDIwNCBb
Ym9yZGVyOiAoMnB4IGluc2V0ICMwMDAwMDApXQorICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAx
MzV4MTAxNgorICAgICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgMTM1eDIwMAorICAgICAg
bGF5ZXIgYXQgKDAsMCkgc2l6ZSAxMzV4MTAxNgorICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0g
YXQgKDAsMCkgc2l6ZSAxMzV4MTAxNgorICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4
LDgpIHNpemUgMTE5eDEwMDAgW2JnY29sb3I9I0MwQzBDMF0KKyAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDAsMCkgc2l6ZSAweDAKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
L1Rlc3RFeHBlY3RhdGlvbnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vVGVzdEV4cGVjdGF0aW9ucwkocmV2aXNpb24gMTM3NDg2KQorKysgTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwkod29ya2luZyBjb3B5KQpAQCAtNDA1
MSw2ICs0MDUxLDE0IEBAIEJ1ZyhkcHJhbmtlKSBbIFdpbiBdIHdlYmF1ZGlvL2NvZGVjLXRlc3QK
IAogd2Via2l0Lm9yZy9iLzEwMDAyMyBbIE1hYyBdIGZhc3Qvc3ViLXBpeGVsL2ZpbGUtdXBsb2Fk
LWNvbnRyb2wtYXQtZnJhY3Rpb25hbC1vZmZzZXQuaHRtbCBbIEZhaWx1cmUgSW1hZ2VPbmx5RmFp
bHVyZSBdCiAKKyMgTmVlZHMgcmViYXNlbGluZSBhZnRlciBib3RzIGN5Y2xlCitCdWcobGV2aXcp
IFsgTGludXggV2luIE1hYyBdIGZhc3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1pZnJhbWUtY29weS1v
bi1zY3JvbGwuaHRtbCBbIFBhc3MgSW1hZ2VPbmx5RmFpbHVyZSBGYWlsdXJlIF0KK0J1ZyhsZXZp
dykgWyBMaW51eCBXaW4gTWFjIF0gZmFzdC9zdWItcGl4ZWwvdHJhbnNmb3JtZWQtaWZyYW1lLWNv
cHktb24tc2Nyb2xsLmh0bWwgWyBQYXNzIEltYWdlT25seUZhaWx1cmUgRmFpbHVyZSBdCitCdWco
bGV2aXcpIFsgTGludXggV2luIE1hYyBdIHBsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZm9ybXMvc3Vn
Z2VzdGlvbi1waWNrZXIvZGF0ZS1zdWdnZXN0aW9uLXBpY2tlci1hcHBlYXJhbmNlLXdpdGgtc2Ny
b2xsLWJhci5odG1sIFsgUGFzcyBJbWFnZU9ubHlGYWlsdXJlIF0KK0J1ZyhsZXZpdykgWyBMaW51
eCBXaW4gTWFjIF0gcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9mb3Jtcy9zdWdnZXN0aW9uLXBpY2tl
ci9tb250aC1zdWdnZXN0aW9uLXBpY2tlci1hcHBlYXJhbmNlLXdpdGgtc2Nyb2xsLWJhci5odG1s
IFsgUGFzcyBJbWFnZU9ubHlGYWlsdXJlIF0KK0J1ZyhsZXZpdykgWyBMaW51eCBXaW4gTWFjIF0g
cGxhdGZvcm0vY2hyb21pdW0vZmFzdC9mb3Jtcy9zdWdnZXN0aW9uLXBpY2tlci93ZWVrLXN1Z2dl
c3Rpb24tcGlja2VyLWFwcGVhcmFuY2Utd2l0aC1zY3JvbGwtYmFyLmh0bWwgWyBQYXNzIEltYWdl
T25seUZhaWx1cmUgXQorQnVnKGxldml3KSBbIExpbnV4IF0gZmFzdC9kb20vV2luZG93L3dlYmtp
dENvbnZlcnRQb2ludC5odG1sIFsgRmFpbHVyZSBdCisKIHdlYmtpdC5vcmcvYi8xMDA0NzggIFsg
TWFjIF0gY3NzMy9maWx0ZXJzL2N1c3RvbS9lZmZlY3QtY3VzdG9tLmh0bWwgWyBJbWFnZU9ubHlG
YWlsdXJlIF0KIAogd2Via2l0Lm9yZy9iLzEwMDQyNCBlZGl0aW5nL3NlbGVjdGlvbi91c2VyLXNl
bGVjdC1hbGwtc2VsZWN0aW9uLmh0bWwgWyBGYWlsdXJlIF0KSW5kZXg6IExheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtLWxpbnV4L2Zhc3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1pZnJhbWUtY29w
eS1vbi1zY3JvbGwtZXhwZWN0ZWQucG5nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQ2Fubm90IGRpc3BsYXk6IGZpbGUg
bWFya2VkIGFzIGEgYmluYXJ5IHR5cGUuCnN2bjptaW1lLXR5cGUgPSBpbWFnZS9wbmcKCmlWQk9S
dzBLR2dvQUFBQU5TVWhFVWdBQUF5QUFBQUpZQ0FJQUFBQVZGQlVuQUFBQUtYUkZXSFJqYUdWamEz
TjFiUUEzTURCaE4yUmkKTkdZM09UaGlPVEptWTJSak9HRXdNV0l6WVdVeVl6aGpaTGtieW4wQUFC
cVBTVVJCVkhpYzdkMVpjeFRudmNEaEZvTmtnUUNINEJKaQpMWVBZd1JoQzJFd01pVjFGQ21LY1ZP
S1VidmhJK1FhNTVZYWs0c1JsTzRtSnM1QVV1NExZWkJaYmlGMGdRS3lXekNhZGk2NHpaNDU2ClJo
dC9DYzNVODF5NHh0SjA5OXZ2TzZQNU1XcEpWVTFOVFFrQUFIRW12T29CQUFCVUdvRUZBQkJNWUFF
QUJCTllBQURCQkJZQVFEQ0IKQlFBUVRHQUJBQVFUV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFn
QUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJCQllBUURDQgpCUUFRVEdBQkFBVExyVnExcXVn
bjl1N2QyMXJDakJrei92T2YveXhldkhpNEIvdjczLysrY09IQ0pFbDZlM3RQblRwMTZOQ2hjK2ZP
CjVYSzVHVE5tdk94NURGTkhSOGZRVDJGWWR4N3R3UXhyRDZNOThxejhFbzluMlVHTy9VUzlqTEda
NUhIeWJCMjNTNU1mV09FSXkrTHgKRDR5TmlRTjhidVhLbFN0V3JKZ3dZY0xldlh1Ym1wcDZlM3RQ
bno1OTd0eTVvMGVQZnZmZGR5TTQyUHZ2djUvZU9IUG1USDE5L1lvVgpLem82T2s2ZlByMWt5WktS
alAwbERPc1VqaDA3MXRQVE0wNEdVMVNwRWI3OG5vY3J2OFRqV1hhUVl6OVJMMk5zSm5tY1BGdkg3
ZExrCm4zU0Z6NzZ5ZVB3RFk2UGt0d2luVFp1MmRPblNDUlArN3c0VEpreFlzV0xGdEduVGR1M2E5
WkpIdlh6NThzeVpNNnVycStmUG4vK3oKbi8zc0pmYzJBc002aFE4KytHRDBScElNY3pCRmxScmh5
Kys1c3UzZHV6ZTlVVWtUbFQrcHFHMUg5bXg5bVdFVUdyZExrMy9TamZiWApCNkJNbFF5c0hUdDJW
RmRYOS90Z2RYWDFqaDA3Q3F0clpMcTd1MTkrSjBQMC9Qbno3QWVIZGZSUkdtcCtZQysvLzFKN0dM
TkpMa2NQCkhqekkzNjZZaVNvOHFhaHRSL0JzTGJxcm9zL0VRWTNHMG94c0pQM2tCMVl4RHg0ZzFr
RGZJaHpZNDhlUER4MDY5UERod3pWcjFqUTIKTmlaSjh1TEZpMlBIamwyN2RtM0tsQ2xidG15Wk9u
VnE0ZjA3T2pwYVdscDI3dHlaL3RNMi9lL1dyVnRiV2xxV0xGbHk1c3laeVpNbgpiOSsrL2VMRmkx
OTk5VlYzZDNkdGJlM3k1Y3ZUU3h4YVdscTJiZHQyNk5DaEJ3OGVyRjI3ZHNhTUdZY1BIMzc4K1BI
YmI3KzlhTkdpClVvZis1cHR2V2xwYTVzeVpjL1hxMWFhbXB1d3AzTDU5dTdtNXVhZW41NjIzM3Nw
ZjVESHdXU1JKY3ZYcTFlUEhqL2YyOXE1ZXZicXgKc2ZIeDQ4ZWZmLzU1a2lSTGx5NWR0R2pSNTU5
L1hsVlZsY3ZsMXExYmQrZk9uYmEydGlSSlB2cm9vMXd1bDk5RDBZRmw1ek43clB5OApwVnNWM2k1
MDdkcTFVNmRPOWZUMHJGKy9QbnZXNlh3V3pubjJsSWN5NTZWV2F1Zk9uZW1OclZ1M0hqNTgrTUdE
Qi9sTkNqMTgrUERJCmtTUDM3OStmTTJmTzVzMmJxNnFxQmgzWXZYdjNEaDA2bENUSndvVUwxNjlm
Mzl6Y25FN3ZyMzcxcTRrVEo2WnpPT2hhL09oSFB6cDUKOHVUT25Uc1BIanlZenVIY3VYTzNiTmxT
YWdrS0o2M29HV1hYYUFTemZlTEVpVTJiTmgwOWV2VFJvMGNiTm15WVAzOSt1dmx3SnpsNwpVbm1s
ZHBVZjI0c1hML0xiTGx5NE1QdHNiV3BxeXU0a1NaSyt2cjVUcDA2MXRiWGxjcmxWcTFZMU5qYjJH
MGFwWitJUW56dEZsNmJVCmczYmdSMTEySk5uQlo1ZHMwRlV1WE9zQkh2L1p4M3pSL1FDVlllU0Ix
ZEhSOGVNZi8vak9uVHRIang1TnYrS2NQbjI2b2FGaHc0WU4KdDI3ZE9uNzgrTFp0Mndydm43K1dv
cW1wS2Iyb0swbVNQLzNwVDArZVBKazBhZEl2ZnZHTDlHNnRyYTN2di8vK3BFbVQ3dHk1czMvLwov
c1dMRjZjYmRuWjJidHUyN2ViTm04ZU9IWHZycmJkKzhwT2ZkSFYxSFRwMEtQM0tWZlRRNmV2by9m
djNyMTY5V3ZRVWVucDZ0bS9mCjN0M2RmZVRJa2RyYTJubno1ZzE2RmwxZFhXMXRiVHQyN09qcTZq
cDQ4T0RVcVZQcjYrcy8vUEREZmZ2MkxWKysvTFhYWG10cWF2cmsKazA5Kyt0T2YxdGJXenB3NTgv
cjE2enQyN0Npc3ExSUR5ODVuMFdOOThNRUhuMzMyV2JySnpwMDcvL3puUC9jN3FWdTNibDI0Y0dI
Ygp0bTAxTlRVWExsekludldSSTBmNnpYbjJsSWN5NTZWV0tyL1dIUjBkVzdkdXZYdjM3dUhEaDdN
dmRRY1BIbHl4WXNXY09YUE9uVHYzCnU5LzlMcGZMVFp3NGNlQ0JiZDI2ZGZMa3ljZU9IVnU5ZW5X
U0pELzg0UTl2M0xqeDdydnZwbldWSk1tVUtWTUdYWXUvL09VdjZTQjMKN05pUmZ4eVdXb0s4VW1k
VWRJMkdPOXZwZmJxNnV0NTc3NzJuVDU4ZVBudzRsOHZObVRObkJKT2NQYW04N0s2eVk4dHYrOGtu
bjJTZgpyVVYza2lUSjJiTm5hMnBxZnY3em4xKzVjcVcxdGJXeHNiSGZNRW85RTRleVh1bHpaeWhm
YllieXFNdU9KRHY0N0xRTXVzcUZENUlCCkhpM1p4M3lhajBCRkd2bWIyNHNYTDY2dXJtNW9hTWhm
Z25ybHlwVWpSNDc4L3ZlLy8vZS8vMzM3OXUxKzl5OTZwY0tISDM2WUpFbjYKV3BMYXRXdFhiVzF0
ZTN2NzhlUEgwMzlTcHhzdVdMQ2d1cnA2N3R5NXo1NDlXN3g0Y1UxTnpjeVpNNTgrZlRyQW9TZFBu
bnp6NXMzWgpzMmNYZmIxSmttVCsvUG01WEc3cTFLa2JObXc0ZS9ic1VNNmlwYVZsL2ZyMU5UVTFE
UTBOYTlldVBYNzhlSklra3laTm1qVnIxdlhyCjE1TWs2ZXJxK3U2Nzc5TGJWNjVjZWZQTk4ydHFh
dnJ0cE9qQXN2Tlo5RmgxZFhYNVRiTHZyaVZKY3ViTW1mWHIxOWZWMVZWWFZ4ZTkKSGprNzU5bFRI
c3FjbDFxcDVIK3ZtMGszYVdob3lHOVM2UEhqeDNQbXpNbmxjc3VXTFpzMmJkcEhIMzAwNk1DcXFx
cmVlT09OMmJObgp0N2UzSjBuUzJkbFpWMWMzZmZyMHd0ME91aFlEWERHVFhZSzhVbWRVZEkyR085
dnB6aHNiRzZ1cnErdnE2bjd3Z3grY09IRWlaSkw3Cm5VSy9YV1hIbGpmQVZYMzlkcElrU1Z0YjI2
SkZpM0s1M0lJRkM0cHVPTUF6Y1lqUG5hRjh0Um5LaEdSSGtoMThkbG9HWGVWK2sxWnEKSk5uSGZO
SDlBSlZoNU85Z3BRcmY1WDd5NUVtcGxFbVNwTis3T0tuczVRdjM3dDFyYm02ZVBYdjJPKys4azc0
OVU3aGg0ZUVHUGZTMgpiZHRPbmp4NTl1elpUWnMydmZIR0d3T2N4WlFwVS9KWGpReDhGbDFkWGJX
MXRlbnRlZlBtTlRjM3A3Zm56cDM3elRmZkxGeTQ4T3V2CnYxNnlaTW5WcTFjYkd4dmIyOXZmZWVl
ZDdFNEdHRmpoU1pVNjFzRHUzYnVYajdEc1ZYUkpzVG5QbnZKUTVueUFsU284Uktudmd5eFkKc09E
OCtmTkxseTY5Y2VQR2t5ZFBoaml3SkVrV0xWcTBmLy8rWmN1V2ZmMzExMFYvZW4vZ3RTajZPQ3hV
ZE1DbHptalFOUnJ1YkNkSgo4dnJycjNkM2Q2ZTNYM0tTQzJWM05jREZRNlZtS2J1VEpFbDZlbnFL
UHRMeUJuNG1EdjI1TS9CVGZpZ1RraDFKZHZEWmFSbmlNM0hRCnBjays1b0VLRm5sNTVyUnAwL0sz
TDErK1BMS2RIRGh3WU5PbVRTdFhybnp0dGRkZTh0Q1RKMC9ldkhuemhnMGIwZ3QzQnZEdzRjUFgK
WDM5OWdGMFZIcWlqb3lPOS9lTEZpL3lyeGN5Wk0rL2V2ZnY0OGVPN2QrKysvZmJiRHg0OHVIWHJW
aTZYSzl4YjNoQUhWdXBZL2ZUMgo5aGIrNzl5NWMrL2R1NWZlZnZic1dmWU9SUStVdnozMGhSdlpT
dVUxTmpiZXVISGo0NDgvUG4zNjlLWk5tNFkrc0xxNnVycTZ1a3VYCkx0MjVjMmZ1M0xuWnJZYTFG
aTlwaUd2VWI1UDg3Y0xaemk5VGQzZDMvajR2T2NtRlFuWlZkQ2ZWMWRWOWZYMERiRFh3QTM1azZ6
V3kKQjIxMkpJTU9QaG5SS2hjMWxNYzhVREVHRDZ6MDFicXJxeXYvWlNqOTUzWDZxMS9TZCt6VDI3
Tm16YnAwNmRMejU4K3ZYTG1TL1pLWApidFhkM1ozZStmNzkrL2tOQ3d2ZzZkT25EeDgrN09ucHVY
VHBVcElrTDE2OEtIVzQ5TC9wWjRzZWV1L2V2VmV2WHAwMGFWTFJIeHJLCjVYTHQ3ZTNQbno5LzlP
aFJlbzFSK3ZIc3Jnb0hzRzdkdWhNblR0eTllL2ZKa3lmSGp4OWZzMlpOZm04elo4NDhjT0RBZ2dV
TEpreVkKTUd2V3JLTkhqeTVZc0tEb2xQWWJXS2tUTEhXc21wcWFqbzZPWjgrZXBaZFlmZmJaWjRW
N1dMTm1UYnJWOCtmUFcxdGJreVQ1OU5OUApDNCtlbmZPQlQ3blVuSmRhcWU3dTdtKy8vYmJvNW9V
T0hqeTRaY3VXWC8vNjF6dDM3bXhvYUJqaXdGS0xGaTA2ZHV4WU90VkZWM2FBCnRjZ1BNa21TcXFx
cTI3ZHYvL1d2ZnkxMXZubWx6cWpVR2cxcnRsTW5UNTU4L3Z4NVQwL1BmLy83MzJYTGxxVWZITUVr
NTArcTMwaXkKdThxT3JkK0U5SHUyRnQxSmtpUU5EUTJkbloxOWZYMFBIejVNTDFydk40eEJuNG1E
cnRkUXZ0b001VkdYSFVsMjhObHBLYnJLK1lIMQp1ekhBMG1RZjgwQUZLL21iM0ZONzkrNU5mNWJu
NHNXTHJhMnQ2WjAvL3ZqakpFbk9ueisvYXRXcVAvemhEL25iTTJiTStPcXJyNDRkCk8vYjQ4ZVAx
NjlmMys0ZHl1dFdGQ3hmT256K2ZKRWxiVzF0cmEydDZ1NzI5ZmVuU3BlbmRKazZjMk56YzNOblp1
WGJ0MnV2WHIvZjAKOUtRL2taUTlYSDZIcFE3ZDJ0cmEwTkJ3NE1DQjFhdFhmLy83Mys5M2FyTm16
V3B0YlcxcGFlbnM3RnkxYXRYczJiUFRqMmQzVlhpKwpreWRQbmpCaHd0R2pSeTlldkxoMDZkS1pN
MmZtZDlqWDEzZng0c1hObXplbjN5bG9iMi9mdUhGajBXKzE5QnRZcWZrc2RheGNMdGZjCjNOelIw
YkZpeFlxYk4yK3VXN2Z1YjMvN1czNnJpUk1uenBneDQrREJneGN1WEZpNmRPbmR1M2ZYclZ0WGVM
VldlcmpDT1IvNGxFdk4KZWFtVnVuRGhRbHArMmMwTEorSEtsU3N0TFMzcDN3WTRmLzU4YlczdFAv
LzV6MEVIbG41ODZ0U3BaOCtlM2JoeFk2bnZUQTJ3Rm9Xbgo4T2pSbzliVzFvMGJOMzd4eFJjREQv
aVBmL3pqc05ab1dMT2RQaVRlZlBQTmYvM3JYNWN2WDE2NGNHSCt0NEdQWUpMekoxVjR1VjdSClhS
MDRjS0RmMlBwTlNMOW5hOUZGYjJob3FLK3ZiMmxwYVc1dXZuUG56dkxseTcvM3ZlOFY3cXF1cm03
Z1orSlExbXNvWDIxS3JWSGgKZ2JJanlRNCt1MlJGVnprL3NQeENwRGNHV0pyc1kzNzY5T2xmZnZt
bFgvNE9GYWxxZ091TllKUThlUERneVpNbjZZOWk5ZlgxUFhqdwo0TXN2dnh6Nk5iKzNiOTgrZCs3
Y3UrKytPNXBqSEZPbGZ2U1BpdkdTajNtZzdQZ1ZlYndDKy9mdmYvVG9VZnJUVmMrZVBldnM3Sncx
CmE5WVF0KzN0N1UydkZCN05BWTZwOUx0STQvTVB3aERsWlI3elFEbnlEaGF2d0xWcjE4NmRPM2Yv
L3YzZTN0NjZ1cnJaczJldlhMa3kKKy9zc3NyNzQ0b3NuVDU1czJMQ2hraTVoeWY5VkdVL0dDamJp
eHp4UXBnUVdBRUF3M3lJRUFBZ21zQUFBZ2drc0FJQmdBZ3NBSUpqQQpBZ0FJSnJBQUFJSUpMQUNB
WUFJTEFDQ1l3QUlBQ0Nhd0FBQ0NDU3dBZ0dBQ0N3QWdtTUFDQUFnbXNBQUFnZ2tzQUlCZ0Fnc0FJ
SmpBCkFnQUlKckFBQUlKTkxQV0p0cmEyc1J3SG82cXhzVEYvMjhwV2tzS1ZCV0Q4OEE1VzVaczNi
OTZySGdLandzb0NqRnNsMzhGSy9lWTMKdnhtYmNUQjAyN1p0UzVKazM3NTluWjJkcGU1VFgxKy9m
ZnYySkVudTNidVhKTW4wNmRQem4vcnRiMytiSk1tU0pVdEdmYUFNMDdCVwo5cGUvL09YWWpReUFZ
Um9rc0JpZjl1elpzM3YzN3BlL0QrT05sUVdvREw1RldINzI3ZHMzbE5mWDNidDM3OXUzYnd6R1F4
UXJDMUF4CkJGYjVHZUQ3UnlPK0orT0JsUVdvR0FJTEFDQ1l3QUlBQ0Nhd0tzU2VQWHRlOVJBWUZW
VlZWYTk2Q0FBTW04Q3FCR2xkYWF6S2s5YVYKeGdJb093S3I3QlYybGNhcUpJVmRwYkVBeW92QUtt
L1pvdEpZbFNGYlZCb0xvSXo0UmFQbHpTK2NyRlI5ZlgydmVnZ0FqSngzc0FBQQpnZ2tzQUlCZ0Fn
c0FJSmhyc01xU0s5a3JsWlVGcUF3Q3F5enQyclVyKzhGdnYvMjIzMGYrOFk5L2pNbHdBSUQvUjJE
Qk9DS2RBU3FECmE3QUFBSUlKTEFDQVlBSUxBQ0NZd0FJQUNDYXdBQUNDQ1N3QWdHQUNDd0FnbU1B
Q0FBZ21zQUFBZ2drc0FJQmdBZ3NBSUppL1JWajIKUHYzMDA4TC9mZSs5OTE3VlNBQ0FsTUFxZS9r
L0Q1ejlrOENVTmVrTVVMNEVGb3hUMGhtZ2ZBbXNzdWQ5RGdBWWJ3UlcyZk0rUjZXUwp6Z0RsUzJE
Qk9DV2RBY3FYd0NwNzN1Y0FnUEZHWUpVOTczTlVLdWtNVUw0RUZveFQwaG1nZlBsTjdnQUF3UVFX
QUVBd2dRVUFFRXhnCkFRQUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRREIv
S3Fjczlmc3JkUURBdUNLd3l0S2FOV3VHY3JjVEowNk0KOWtpSUpaMEJLb1BBZ25GRU9nTlVCdGRn
QVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllBQURCQkJZQVFEQ0JCUUFRVEdBQgpBQVFU
V0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJC
QllBUURDQkJRQVFUR0FCCkFBUVRXQUFBd1FRV0FFQXdnUVVBRUV4Z0FRQUVFMWdBQU1FRUZnQkFN
SUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRHQUIKQUFRVFdBQUF3UVFXQUVBd2dRVUFF
RXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllBQURCQkJZQVFEQ0JCUUFRVEdBQgpB
QVFUV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFB
REJCQllBUURDQkJRQVFUR0FCCkFBUVRXQUFBd1FRV0FFQXdnUVVBRUV4Z0FRQUVFMWdBQU1FRUZn
QkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRHQUIKQUFRVFdBQUF3UVFXQUVBd2dR
VUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllBQURCQkJZQVFEQ0JCUUFRVEdB
QgpBQVFUV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJO
WUFBREJCQllBUURDQkJRQVFUR0FCCkFBUVRXQUFBd1FRV0FFQXdnUVVBRUV4Z0FRQUVFMWdBQU1F
RUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRHQUIKQUFRVFdBQUF3UVFXQUVB
d2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllBQURCQkJZQVFEQ0JCUUFR
VEdBQgpBQVFUV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFNRUVGZ0JBTUlFRkFCQk1ZQUVB
QkJOWUFBREJCQllBUURDQkJRQVFUR0FCCkFBUVRXQUFBd1FRV0FFQXdnUVVBRUV4Z0FRQUVFMWdB
QU1FRUZnQkFzSW12ZWdDTXhJa1RKMTcxRUJnVlZoYWdNZ2lzc3JSNzkrNmgKM0czUG5qMmpQUkpp
V1ZtQXl1QmJoQUFBd1FRV0FFQXdnUVVBRUV4Z0FRQUVjNUY3ZWF1cXFzcCtzSyt2Yit4SFFpd3JD
MURXdklOVgozckt2dUY2REs0T1ZCU2hyQXF2c0ZiN3VlZzJ1SkZZV29Id0pyRXFRdnZwNkRhNDhW
aGFnVEFtc0N1RTF1RkpaV1lCeUpMQUFBSUlKCnJQSlRYMThmZmsvR0F5c0xVREVFVnZuWnZuMzdV
UDRVM1o0OWU3WnYzejRHNHlHS2xRV29HSDRQVmxuYXZYdjN2bjM3T2pzN1M5MmgKdnI1K2lIODJt
SEhGeWdKVWhxcW1wcWFpbjJocmEwdVNaTjY4ZVdNN0hrWkZUVTFOL3JhVnJTU0ZLd3ZBK0RIUXR3
aTlCbGNxS3dzQQpvNnJrdHdnYkd4dkhjaHlNR1NzTEFLUE5SZTRBQU1FRUZnQkFNSUVGQUJCTVlB
RUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRHQUJBQVFUCldBQUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUx
Z0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllBQURCQkJZQVFEQ0JCUUFRVEdBQkFBUVQKV0FBQXdR
UVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJCQllBUURD
QkJRQVFUR0FCQUFRVApXQUFBd1FRV0FFQXdnUVVBRUV4Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJC
TVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRHQUJBQVFUCldBQUF3UVFXQUVBd2dRVUFFRXhnQVFB
RUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllBQURCQkJZQVFEQ0JCUUFRVEdBQkFBUVQKV0FB
QXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJCQllB
UURDQkJRQVFUR0FCQUFRVApXQUFBd1FRV0FFQXdnUVVBRUV4Z0FRQUVFMWdBQU1FRUZnQkFNSUVG
QUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRHQUJBQVFUCldBQUF3UVFXQUVBd2dRVUFFRXhn
QVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllBQURCQkJZQVFEQ0JCUUFRVEdBQkFBUVQK
V0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJC
QllBUURDQkJRQVFUR0FCQUFRVApXQUFBd1FRV0FFQXdnUVVBRUV4Z0FRQUVFMWdBQU1FRUZnQkFN
SUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRHQUJBQVFUCldBQUF3UVFXQUVBd2dRVUFF
RXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllBQURCQkJZQVFEQ0JCUUFRVEdBQkFB
UVQKV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFB
REJCQllBUURDQkJRQVFUR0FCQUFRVApXQUFBd1FRV0FFQXdnUVVBRUV4Z0FRQUVFMWdBQU1FRUZn
QkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRHQUJBQVFUCldBQUF3UVFXQUVBd2dR
VUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllBQURCQkJZQVFEQ0JCUUFRVEdB
QkFBUVQKV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJO
WUFBREJCQllBUURDQkJRQVFUR0FCQUFRVApXQUFBd1FRV0FFQXdnUVVBRUV4Z0FRQUVFMWdBQU1F
RUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRHQUJBQVFUCldBQUF3UVFXQUVB
d2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllBQURCQkJZQVFEQ0JCUUFR
VEdBQkFBUVQKV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFNRUVGZ0JBTUlFRkFCQk1ZQUVB
QkJOWUFBREJCQllBUURDQkJRQVFUR0FCQUFRVApXQUFBd1FRV0FFQXdnUVVBRUV4Z0FRQUVFMWdB
QU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRHQUJBQVFUCldBQUF3UVFX
QUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllBQURCQkJZQVFEQ0JC
UUFRVEdBQkFBUVQKV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFNRUVGZ0JBTUlFRkFCQk1Z
QUVBQkJOWUFBREJCQllBUURDQkJRQVFUR0FCQUFRVApXQUFBd1FRV0FFQXdnUVVBRUV4Z0FRQUVF
MWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRHQUJBQVFUCldBQUF3
UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllBQURCQkJZQVFE
Q0JCUUFRVEdBQkFBUVQKV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFNRUVGZ0JBTUlFRkFC
Qk1ZQUVBQkJOWUFBREJCQllBUURDQkJRQVFUR0FCQUFRVApXQUFBd1FRV0FFQXdnUVVBRUV4Z0FR
QUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRHQUJBQVFUCldB
QUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllBQURCQkJZ
QVFEQ0JCUUFRVEdBQkFBUVQKV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFNRUVGZ0JBTUlF
RkFCQk1ZQUVBQkJOWUFBREJCQllBUURDQkJRQVFUR0FCQUFRVApXQUFBd1FRV0FFQXdnUVVBRUV4
Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRHQUJBQVFU
CldBQUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllBQURC
QkJZQVFMRC9BZUNuekppWjcyVUUKQUFBQUFFbEZUa1N1UW1DQwoKSW5kZXg6IExheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2Zhc3Qvc3ViLXBpeGVsL3RyYW5zZm9ybWVkLWlmcmFt
ZS1jb3B5LW9uLXNjcm9sbC1leHBlY3RlZC5wbmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpDYW5ub3QgZGlzcGxheTog
ZmlsZSBtYXJrZWQgYXMgYSBiaW5hcnkgdHlwZS4Kc3ZuOm1pbWUtdHlwZSA9IGltYWdlL3BuZwpJ
bmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvZmFzdC9zdWItcGl4ZWwv
dHJhbnNmb3JtZWQtaWZyYW1lLWNvcHktb24tc2Nyb2xsLWV4cGVjdGVkLnBuZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9mYXN0L3N1Yi1waXhlbC90
cmFuc2Zvcm1lZC1pZnJhbWUtY29weS1vbi1zY3JvbGwtZXhwZWN0ZWQucG5nCShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvZmFzdC9zdWItcGl4ZWwv
dHJhbnNmb3JtZWQtaWZyYW1lLWNvcHktb24tc2Nyb2xsLWV4cGVjdGVkLnBuZwkod29ya2luZyBj
b3B5KQoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
bGludXgvZmFzdC9zdWItcGl4ZWwvdHJhbnNmb3JtZWQtaWZyYW1lLWNvcHktb24tc2Nyb2xsLWV4
cGVjdGVkLnBuZwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46bWltZS10eXBlCiMjIC0wLDAgKzEgIyMK
K2ltYWdlL3BuZwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CgppVkJPUncwS0dnb0FB
QUFOU1VoRVVnQUFBeUFBQUFKWUNBSUFBQUFWRkJVbkFBQUFLWFJGV0hSamFHVmphM04xYlFBNU56
a3lOek5tCllqRTRPV0pqTmpOallqVTNNMlk1TVdReE5EWXhaV1UwT2RpSm9kUUFBQ0FBU1VSQlZI
aWM3ZDFiakZ4blljRHhiKzMxZXRmWnRiMngKSGQvaU9ISGptR0FIeDQ1dEJRZlNwQ29GNVFtcFJV
SUkwVWJsVXRTK3BBVWllS2lFaWxBcnFpSWkwcVpRNmxCVklZQ3FYRVFTMGtZawpCU1UwZ3NRSjJC
REh4bzVqYjJwamIreTExOTVkNytYMDRkQmhzblBaMloxdlpzN00vSDVQSjdQbjhwM2IrcCs1YlVl
U0pBRUFnSGptCk5Yb0FBQUN0Um1BQkFFUW1zQUFBSWhOWUFBQ1JDU3dBZ01nRUZnQkFaQUlMQUNB
eWdRVUFFSm5BQWdDSVRHQUJBRVFtc0FBQUloTlkKQUFDUkNTd0FnTWdFRmdCQVpBSUxBQ0F5Z1FV
QUVKbkFBZ0NJVEdBQkFFUW1zQUFBSWlzWldCMmxQZjc0NDVzMmJackR4dDc5N25lbgpFK1BqNDUv
NXpHZVdMMSsrZlBueXIzemxLM01jZXhWbXRRdHozdCs2cmIvVUdtbzk4a0s1VTV4bGhZT3MvNEdx
Um4wT2NrYnUxc3llCm10ekE4a2ZZRk5jL1VDZEpDU0dFdi83cnZ4NGJHMHVua3lRWkhSMjkrKzY3
UXdocjFxd3BzMkFsUHZlNXp6MzIyR05EUTBNUFB2amcKNy96TzcxU3pxcm1aMVM1Y2VlV1ZWZTV2
eE1FVVZXcUVxMWF0cXVuSVcwYjFwNkNGTmZadXpleXB5ZDEwdGY3OUFEU3BqaVJKaW9iWApsaTFi
bm52dXVjV0xGNGNRT2pwK005dlEwTkF0dDl6eXdnc3ZkSGQzbDFxd0V1dlhyejkwNk5DQ0JRdm12
SVlxalkyTlZiNExzNXE1CjFvT1oxUnBxUGZKbWw3dXdXK2xBNVhZcTFySnp1MXVyR1VhK3pKNmEz
TUF5TzBLZ3NVcStSTGh2Mzc2MHJ2SXRXYkprMzc1OUN4Y3UKckhLcng0OGZyMDlkSlVseTRjS0Z3
c2RudFF2VjcyK2gvSUZWdi81U2E2akZ5RnZHL3YzN2M5TXRjNkR5ZHlyV3NuTzRXd3RYVmVwTwpu
RkgwVXpQbmtVeVRHMWpMWER4QVhITi9rL3VoUTRkMjdkcTFlUEhpcjMvOTYra2pvNk9qSC9uSVJ4
WXRXclIxNjlhREJ3OU9tei8zClRvV09qbzZwcWFuMDdWeFBQUEhFOWRkZi8wLy85RThyVjY3Y3VY
Tm5DT0ZmLy9WZk4yellzR0RCZ2l1dnZQTGVlKzhOSWFUenZQYmEKYTd0MzcxNjhlUEUzdnZHTi9m
djNiOSsrdmErdjc3Nzc3aXV6NlgvOHgzOWN0R2pSbi83cG4zWjBkQlRkaGYvKzcvL2V2SGx6ZjMv
LwpWNy82MWR5RDVmY2loUERkNzM1MzllclZ5NWN2LytkLy91ZjBPS1Q3OHFsUGZTcWQ3dXpzN092
cisrWTN2L2xuZi9abjZZOUdSMGZ6CjExQjBZSVhIczNCYjRmL2ZHMWM0bmUraGh4NjYvdnJyKy9y
Nkhuend3Y0tmRmg3endsMnU1SmdYbnFuY0tVNFgvOVd2ZnZYT2Q3NXoKOGVMRnVVWHkvZktYdjd6
NTVwc1hMbHo0d1E5K2NHSmlvcEtCUGZqZ2cra3VmL1NqSHcwaDVBN3Y4UEJ3N2hqT2VDNGVmdmpo
ZEpBZgorTUFIMG1QNFIzLzBSMlZPUWY1Qks3cEhoZWRvdGtmNys5Ly8vdWJObS9mdTNYdmpqVGRl
ZHRsbDMvcld0M0tMei9ZZ0YrNVVtVlZOCkcxditza1h2MXFJckNTRk1UVTE5NWpPZldicDA2ZXJW
cTcvMnRhOFZEcVBVblZqNXZWUEpiNXRLcnJyQ2tSUU92dkNVelhpV1V6TmUKLzRYWFBOREtLbmtk
c1hDMkVNSTk5OXh6NXN5Wko1NTRZdFdxVmVtRG4vclVwNzc1elcrT2pvNCsvdmpqNzMzdmU2Y3Rz
bnIxNnR4NgpjaE1yVnF3SUlUenl5Q081MmE2NjZxcWpSNCtPajQvLzhJYy92T3l5eTNJTDd0bXo1
OHlaTTkvOTduZjcrL3Z2dWVlZU45OTg4OGtuCm4xeStmSG1aVFM5ZXZQaklrU01QUGZSUTBkME1J
VHp3d0FNWExseDQ5ZFZYMy9uT2QzNzcyOTh1czZyY0dwNS8vdm5mLy8zZlAzMzYKOUgvKzUzOHVX
YkxrNmFlZlRwTGsrUEhqcTFldlBubnlaRHJQbWpWclRwdzRrU1RKd01EQW1qVnIzbnp6eldtYkxo
eFkwZU5aZEZ0SApqaHpKTFhYZ3dJSENRL3JVVTAvZGV1dXRodzhmUG5QbXpPYy8vL25DZlM4ODVv
VzdYTWt4TDNXbWNoUDMzSFBQNE9EZ1k0ODlsbHNrCjN6dmU4WTcwK0tlRDdPbnBtWEZnazVPVHp6
Nzc3T2JObTArZE9wVWt5ZFRVMUxwMTYxNTg4Y1g4MWM1NExvcGVoNlZPUVU2cFBTcDYKam1aN3RL
KzQ0b29Rd24zMzNUYzBOSFQ0OE9GM3ZldGREei84OEp3UGNxbWJ1bkJWaFdQTExWdnFLQld1SkVt
U0wzemhDMS84NGhkSApSa2IyN05senpUWFhGQzVWNWs2czVONnA4TGROSlZkZDRVZ0tCMTk0V0Vx
ZDVXbUhhTVpUVTNqTkZ6MVRRR3VZZTJDbEV4TVRFL1BtCnpVdW4wemQ3cGhZdFdqUnRrWkdSa2NK
ZjJlbi9uazZiYzNSMDlPdGYvL3EyYmR2U0gxMjhlREYvYzducHljbkozSFRSVFY5Ly9mWDMKM1hm
ZitQajRqRHYxeTEvK2N2djI3V1ZXbFp2NWxsdHVPWExrU0RxOVo4K2VMVnUycE5OMzNubm5ONzd4
alNSSmZ2S1RuM1IwZE54MwozMzFKa3Z6OTMvLzkzWGZmWGJqcHdvRVZQWjZsdGpVdEN3cEgrTW9y
cjZUVFo4K2VMWHA0cHoxWXVNdVZIUE9rNEV6bFRuSCtKdklYCno3ZG8wYUtSa1pGMFc1czNiNjV3
WUVtUzNIMzMzWC8zZDMrWEpNblRUei85cm5lOXEzRE41YzlGMGVzd0tYRUtpaDYwL0QwcWRZNksK
TGxocXA5SlhySEl6dlBEQ0N4czNic3hmdzZ3T2Nwbi9hNXEycXNLeDVmNnoxRkVxWEVtU0pPdlhy
ejl6NXN5MGJlVXZWZjVPblBIZQpxZkMzVFNWWFhlRklDZ2RmZUZobXZCTXJQRFdGMXp6UXdxb05y
UHpwaFFzWFZyaWVvb3VuWG56eHhaMDdkMzcrODU5LzVaVlhacHkvCi9LYVBIajM2d1E5K2NNT0dE
YzgrKzJ6NW5icDA2Vkw2TnRWU3E4ck4zTlhWZGVIQ2hYUjZlSGc0Ti9Pamp6NTZ4eDEzSkVueWtZ
OTgKNUs2NzduclBlOTZUSk1rTk45endpMS84b3BLQkZkMnBVdHNxSDFnOVBUMlhMbDBxdXB1bEhp
eS95NldteTUrcE1xYzQ5ZWQvL3VkLwo4emQvYytIQ2hXOS8rOXNyVnF5b2ZHQ0hEeCsrN3JycnBx
YW0vdkFQLy9DQkJ4NG9uR0hHYzFINWRaVnZWdWVvMUlLbGRtcmExWmliClp3NEh1VlJnelhoblZi
TENvaXVaUDM5KytUMHFmeWRXZnI3eXAyZDEwWllaeVl5RFR5cTRFeXM4TlVXdmVhQlZ4UXlzYmR1
MjVSNzgKOTMvLzl6THJLZk43Y01PR0Rla1RNSU9EZzVYL1ExaG0wei80d1EvV3IxOWZmcWYyN3Qy
N1k4ZU9NcXZLMzlCLy9NZC9wTk1uVDU2OAovZmJiMCttUmtaRmx5NVlkUEhqd3V1dXVHeHNiVzcx
NjlWTlBQYlZ6NTg3QzdSWWRXS21kS3JxdEVNTFUxRlJ1T3Yrck5KSWsrZkNIClAvempILzg0blI0
YUdzck5VR3JmWjl6bFV0UGx6OVNNLzlTOS9QTEx1M2Z2N3U3dTNyUnAwNU5QUGxuNXdKSWtlZC83
M25mLy9mZXYKV2JPbWNOZVNDczVGeE1BcWRZNUtMVmhxcDBJSXVTdytlUERnMXExYjArazVIT1JT
Z1RYam5WWEpDb3V1WlBueTVSTVRFK1gzT2lsOQpKMVordnBLM0h2bmNnek5ldEdWR1Vzbmd5OXlK
TTA3a1R4ZTk1b0ZXTlVOZ1RVMU4vZlNuUHcwaC9PUW5QNW1jbkV3ZlBIcjBhQWhoCllHQWdTWklU
SjA2RUVJNGRPNVlreVdjLys5bjc3NzkvZUhqNFc5LzZWdnEvcFBsZWYvMzFFTUxycjc5KzdOaXhF
TUxldlh1VEpFbW4KUjBkSGM3TXRYYnIwb1ljZUdoZ1krUEtYdnp4djNyeUxGeSttQzZhYmUrT05O
M0xUQXdNRElZU2pSNCtXMm5RSTRUdmYrYzZycjc2NgpiTm15d2wyNzdMTEw5dXpaTXp3OC9PcXJy
KzdhdGV2eHh4OVBIeTljVlRxQTQ4ZVBKMG55N0xQUFhuUE5OZi96UC85ejh1VEpEMzNvClF5Kzg4
RUp1aFIvNHdBZTJiZHYydDMvN3QwbVMzSG5ublZkZGRkVzk5OTViL0tDL2RXQ2xqbWVwYlYxKytl
VlBQUEhFbVRObjBtOTkKWEx0MmJmNElUNXc0OGU1M3YvdTU1NTRiSGg3K3E3LzZxeERDNnRXcjg3
ZGVlTXhMN1hMNVkxN3FUTDMrK3V2cEc4WHlGMC8zS04vYgozdmEyZE1DekdsanFrVWNlNmU3dS91
eG5QMXYwOEpZL0Y3bEJKa25TMmRuNXd4LytjTXVXTGFWT1FVNnBQU3B6UGN4cXAwSUlkOTExCjE3
bHo1d1lHQnY3Z0QvNGdWd3h6T01pNW5abzJrc0pWRlk0dHQyelJ1N1hvU3BJaytkQ0hQdlRVVTA5
TlRrNys0aGUveUgxUlZ2NHcKeXQrSjVjOVg1Yjl0S3JucUNrZFNPUGpDdzFMMExPZHV1bWtUWlU1
TjRUVVB0TEFaQWl1ODFiUUhwMDJmTzNmdS9lOS9mMWRYMS9idAoyMTk5OWRYeXE4cTNidDI2M0d6
MzNIUFBva1dMZHUzYWRmYnMyYmUvL2UyZi92U25TMjF1eGsySEVQN2xYLzVsOGVMRlJVUG54UmRm
CjNMMTdkMWRYMTlhdFc3LzN2ZS9sSGk5YzFiVGR2L2ZlZTlQUEhIM25POS9KWCtFRER6elEzZDE5
K3ZUcEpFa2VmdmpocnE2dXdjSEIKVWtjMWYyQ2xkcXJVdHI3ODVTOWZkdGxsTjkxMFUvby8vWTg5
OXRpMHBYNzJzNTl0M0xoeDdkcTFUejc1NUxYWFhwdS9kN2xONUIvego4cnRjYXJyTW1TcXpSem0z
M0hKTDdrZDlmWDI1VDRlVkgxaHFmSHg4MGFKRnI3MzJXdEhEVy81YzVJL253eC8rY0g5Ly93OSs4
SU1aCkJ6emJjelNybzUzT2xuN0E3Y29yci96cVY3K2FtM2tPQnptM1U5TkdVbXBWK1dNclBDRFRO
bFM0a2lSSlRwNDgrWjczdktlN3UzdjcKOXUzLzltLy9ObTFWeVV4M1l1WG5LMys2OG90MjJ1bVlO
cExDd1JjZWxxSm51ZWdoS245cUNxLzVKRWwyNzk1ZDlKZ0F6UzdPbHdIQwpyUHo4NXo4L2ZmcjA3
YmZmSGtLWW5KemN0Mi9mN3QyN0svOTJvaC85NkVkZit0S1hIbjMwMFZxT3NhNWlmUzBubVZYbE5R
ODBIWC9zCm1RYTQ0NDQ3RGg0OG1ENUxjZTdjdVdlZWVlYU9PKzZvY05ueDhmRi8rSWQvK011Ly9N
dWFqckNlVHA0OEdVSklYLytpVlZWenpRUE4KU0dEUkFGLzV5bGYyN05temJ0MjZoUXNYN3R5NTgr
alJvK2wzUE03b3hodHYzTEJod3ljLytjbmJicnV0eG1Pc24vUlBScVpmbmtTcgptdk0xRHpRcEww
d0FBRVRtR1N3QWdNZ0VGZ0JBWkFJTEFDQXlnY1hNMGo5QkNBQlVTR0F4ZzdHeHNlOTk3M3NIRHg1
czlFQUFvR2wwCk5ub0FaTnJZMk5qM3YvLzlYLy82MTcvKzlhOURDQnMzYm16MGlBQ2dDWGdHaTVK
eWRUVi8vdndRd2pQUFBPTjVMQUNvaE1DaXVGeGQKZFhWMVhYWFZWY3VXTFFzYUN3QXFJN0FvSXIr
dTFxNWR1MkRCZ21YTGxta3NBS2lRd0dLNndycEtIOWRZQUZBaGdjVmJsS3FybE1ZQwpnRW9JTEg2
cmZGMmxOQllBekVoZzhSdVYxRlZLWXdGQWVRS0xFR1pUVnltTkJRQmxDQ3htWFZjcGpRVUFwUWlz
ZGplM3VrcHBMQUFvClNtQzF0V3JxS3FXeEFLQ1F3R3BmMWRkVlNtTUJ3RFFDcTAzRnFxdVV4Z0tB
ZkFLckhjV3RxNVRHQW9BY2dkVjJhbEZYS1kwRkFDbUIKMVY1cVYxY3BqUVVBUVdDMWxWclhWVXBq
QVlEQWFoZjFxYXVVeGdLZ3pRbXN0bERQdWtwcExBRGFtY0JxZmZXdnE1VEdBcUJ0Q2F3VwoxNmk2
U21rc0FOcVR3R3BsamEycmxNWUNvQTBKckphVmhicEthU3dBMm8zQWFrM1pxYXVVeGdLZ3JRaXNG
cFMxdWtwcExBRGFoOEJxCk5kbXNxNVRHQXFCTkNLeVdrdVc2U21rc0FOcUJ3R29kMmErcmxNWUNv
T1VKckJiUkxIV1YwbGdBdERhQjFRcWFxNjVTR2d1QUZpYXcKbWw0ejFsVktZd0hRcWdSV2MydmV1
a3BwTEFCYWtzQnFZczFlVnltTkJVRHJFVmpOcWpYcUtxV3hBR2d4QXFzcHRWSmRwVFFXQUsxRQpZ
RFdmMXF1cmxNWUNvR1VJckNiVHFuV1YwbGdBdEFhQjFVeGF1NjVTR2d1QUZpQ3dta1k3MUZWS1l3
SFE3QVJXYzJpZnVrcHBMQUNhCm1zQnFBdTFXVnltTkJVRHpFbGhaMTU1MWxkSllBRFFwZ1pWcDdW
eFhLWTBGUURNU1dObWxybElhQzRDbUk3QXlTbDNsMDFnQU5CZUIKbFVYcXFwREdBcUNKQ0t6TVVW
ZWxhQ3dBbW9YQXloWjFWWjdHQXFBcENLd01VVmVWMEZnQVpKL0F5Z3AxVlRtTkJVREdkVFo2QUlT
ZwpybVl2RGF6QndjRm5ubmttaExCeDQ4WUdENmhxYjd6eHhtT1BQZGJvVWREaVB2YXhqelY2Q05B
dVBJUFZlT3BxYmxyc2VheWxTNWR1CjNicTEwYU1BSUE3UFlEV1l1cXBHS3oyUHRXREJncXV2dm5y
aHdvVnZ2UEZHbzhkQ3F4a2JHenQxNmxTalJ3SHRSV0Exa3JxcVhvczEKMXJKbHk4NmVQZHZvZ1FC
UUxTOFJOb3k2aXFVMVhpdnM2T2hvOUJBQWlFWmdOWWE2aXFzMUdpdUVrQ1JKbzRjQVFBUUNxd0hV
VlMyMApUR01CMEFJRVZyMnBxOXJSV0FCa2hNQ3FLM1ZWYXhvTGdDd1FXUFdqcnVwRFl3SFFjQUty
VHRSVlBXa3NBQnBMWU5XRHVxby9qUVZBCkF3bXNtbE5YamFLeEFHZ1VnVlZiNnFxeE5CWUFEU0d3
YWtoZFpZSEdBcUQrQkZhdHFLdnMwRmdBMUpuQXFnbDFsVFVhQzRCNkVsangKcWF0czBsZ0ExSTNB
aWt4ZFpabkdBcUErQkZaTTZpcjdOQllBZFNDd29sRlh6VUpqQVZCckFpc09kZFZjTkJZQU5TV3dJ
bEJYelVoagpBVkE3QXF0YTZxcDVhU3dBYWtSZ1ZVVmROVHVOQlVBdENLeTVVMWV0UVdNQkVKM0Ft
aU4xMVVvMEZnQnhDYXk1VUZldFIyTUJFSkhBCm1qVjExYW8wRmdDeENLelpVVmV0VFdNQkVJWEFt
Z1YxMVE0MEZnRFZFMWlWVWxmdFEyTUJVQ1dCVlJGMTFXNDBGZ0RWRUZnelUxZnQKU1dNQk1HY0Nh
d2JxcXAxcExBRG1SbUNWbzY3UVdBRE1nY0FxU1YyUjBsZ0F6SmJBS2s1ZGtVOWpBVEFyQXFzSWRV
VWhqUVZBNVFUVwpkT3FLVWpRV0FCVVNXRytocmloUFl3RlFDWUgxVytxS1NtZ3NBR1lrc0g1RFhW
RTVqUVZBZVFJckJIWEY3R2tzQU1vUVdPcUtPZEpZCkFKVFM3b0dscnFpR3hnS2dxTFlPTEhWRjlh
Njk5dHB0MjdZRmpRVkFuczVHRDZCaDFCWFZXN0Jnd1EwMzNEQThQSHorL1BsRGh3NDkKODh3eklZ
U05HemMyZWx3QU5GaWJCcGE2b25xam82UG56cDA3ZVBEZzBORFF3b1VMdTdxNkxsMjZwTEVBQ08w
WldPcUs2bzJPanA0KwpmZnJXVzI5ZHQyNWQrcDluejU0OWVmTGt4TVNFeGdLZzdkNkRwYTZvM3JT
NkNpRjBkM2ZmZnZ2dEsxZXU3T3pzRE42UEJkRDIyaXV3CjFCWFZLNnlyVkU5UGo4WUNJTlZHZ2FX
dXFGNnB1a3BwTEFCUzdSSlk2b3JxbGErcmxNWUNJTFJKWUtrcnFsZEpYYVZ5amRYZDNSMDAKRmtC
YmF2MVBFYW9ycWxkWVY2Kzk5bHB2YisvazVPVEZpeGU3dXJvV0wxN2MxOWVYbTcrbnArZjNmdS8z
WG5ycHBmSHg4VmRlZWNYbgpDZ0hhVFlzSGxycWlla1dmdXpweDRzVGh3NGVUSkVtU1pONjhlZTk5
NzN1bkxkWGQzVDArUHI1OSsvYWVucDY5ZS9mKzZFYy82dTd1Cm52SFpMd0JhUXlzSGxycWllbWxk
OWZmM0h6dDJMRCtQYnI3NTVoRENvVU9IUWdoVFUxTWpJeU9GeTE1eHhSVTlQVDNYWFhmZGtpVkwK
ZW5wNnJyamlpcm9ORzRER2F0bjNZS2tycXBmVzFZNGRPMjY1NVpiUjBkSG5ubnN1LzZjMzMzenp0
ZGRlRzBMbzZPaEkzMjZWNzhDQgpBNisvL3ZyZzRPRGs1T1RLbFN2WHJsM2IxZFZWdjZFRDBGQ3RH
VmpxaXVybDZtclZxbFVoaEp0dXVxbFVZM1YyZHZiMDlPUS9mdURBCmdYMzc5cjN0YlcvcjdPeWNQ
MzkrWDE5ZlIwZEhYVWNQUUVPMVlHQ3BLNm8zcmE1U3BScHIvZnIxUTBORHVVZlN1dHExYTFkdmI2
KzYKQW1oUHJSWlk2b3JxRmEyclZLbkdXck5tVFRxdHJnQUlMUlpZNm9ycWxhbXIxUGJ0Mnk5Y3VE
Q3RzVkxxQ29CVTZ3U1d1cUo2TTlaVgpraVJqWTJPYk4yOGVIaDZlMWxqcUNvQ2NGZ2tzZFVYMUtx
eXJ5Y25KRU1LV0xWdnlHMHRkQVpDdkZRSkxYVkc5V2RWVkt0ZFk2Z3FBCmFabytzTlFWMVp0RFhh
VzJiTmx5NnRRcGRRWEFOTTBkV09xSzZzMjVya0lJeDQ4Zm41aVlVRmNBVE5QRWdhV3VxRjZWZFhY
czJERjEKQlVDaFpnMHNkVVgxaXRiVitmUG54OGZIMDJsMUJjRGNOR1ZncVN1cVYrcTVxeE1uVGp6
Ly9QUGo0K1BxQ29BNWE3N0FVbGRVcjJoZApYYng0TVlTd2NlUEc1Y3VYUC8vODg4UER3K29LZ0xs
cHNzQlNWMVN2MUhOWEJ3NGMrTm5QZmhaQzJMUnAwOUtsUy9mdTNUc3hNVEZ0CldYVUZRQ1dhS2JE
VUZkVXJXbGRqWTJNaGhHM2J0bzJOamIzODhzdGpZMlBYWEhQTnlwVXJwNmFtOHBkTjYycm56cDNx
Q29EeW1pYXcKMUJYVksxcFhrNU9UenovLy9KRWpSMElJTzNic0dCa1oyYjkvZndqaHlpdXY3T3Jx
eXMyV3E2dSt2ajUxQlVCNXpSRlk2b3JxbFhwbApjUDc4K2R1M2J6OXk1TWlSSTBmR3hzWnV1T0dH
ZWZQbTVUNUltRkpYQU14S0V3U1d1cUo2NWIvdnFyZTNkOWV1WGIvNjFhK09IajBhClFyanV1dXZ5
THpOMUJjQnNaVDJ3MUJYVnErVGJSRHM3TzdkdTNUbzRPRGp0azRQcUNvQTU2R3owQU1wUlYxU3Y4
dTlxWDdSbzBUdmUKOFk3OGZsSlhBTXhOZHAvQlVsZFViN1ovQ1VkZEFSQkZSZ05MWFZHOXRLNjZ1
cnA2ZTN1THpqRGpkN1dyS3dEbUpvdUJwYTZvWGxwWApWMTk5ZGU1cjJhZk5vSzRBcUozTUJaYTZv
bnE1dWxxeVpNbUtGU3Y2Ky91bk5aYTZBcUNtc2hWWTZvcnE1ZGRWK3NpMHhsSlhBTlJhCmhnSkxY
Vkc5d3JwSzVScnIvUG56NmdxQVdzdEtZS2tycWxlcXJsTDVqVlg0VTNVRlFFU1pDQ3gxUmZYSzEx
VnF4WW9WbDE5Kytjc3YKdjN6eDRzWDh4OVVWQUhFMVByRFVGZFdycEs1U2hZMmxyZ0NJcnNHQnBh
Nm9YdVYxbGNwdkxIVUZRQzAwOGsvbHFDdXFOOXU2U3ExWQpzU0tFOE1JTEwzUjJkcW9yQUtKcjJE
Tlk2b3JxemEydVVoMGRIZW9LZ0JwcFRHQ3BLNnBYVFYyZFBuMTZjSEJRWFFGUUk0MTVpZkRzCjJi
UDkvZjE5ZlgxWFhISEY0T0JnUThaQVUxTlhBR1JaWXdKcjVjcVZsMTkrZWZxMTJ0M2QzUU1EQXcw
WkJrMUtYUUdRY1ExN0Q5YUMKQlF0NmUzdERDTXVXTFZ1N2RtMmpoa0hUVVZjQVpGOGp2NlpCWXpG
YjZncUFwdERnNzhIU1dGUk9YUUhRTEJyL1RlNGFpMHFvS3dDYQpTT01ESzJnc1pxS3VBR2d1bVFp
c29MRW9UVjBCMEhTeUVsaEJZMUdNdWdLZ0dXVW9zSUxHNHEzVUZRQk5LbHVCRlRRVy8wOWRBZEM4
Ck1oZFlRV09ocmdCb2Nsa01yS0N4MnB1NkFxRFpaVFN3Z3NacVYrb0tnQmFRM2NBS0dxdjlxQ3NB
V2tPbUF5dG9ySGFpcmdCb0dWa1AKcktDeDJvTzZBcUNWTkVGZ0JZM1Y2dFFWQUMybU9RSXJhS3pX
cGE0QWFEMU5FMWhCWTdVaWRRVkFTMnFtd0FvYXE3V29Ld0JhVlpNRgpWdEJZclVKZEFkRENtaSt3
Z3NacWZ1b0tnTmJXbElFVk5GWXpVMWRRWjI0VHFMOW1EYXlnc1pxVHVnS2dIVFJ4WUFXTjFXelVG
UUJ0Cm9ya0RLMmlzNXFHdUFHZ2ZUUjlZUVdNMUEzVUZRRnRwaGNBS0dpdmIxQlVBN2FaRkFpdG9y
S3hTVndDMG9kWUpyS0N4c2tkZEFkQ2UKV2lxd2dzYktFblVGUU50cXRjQUtHaXNiMUJVQTdhd0ZB
eXRvckVaVFZ3QzB1ZFlNcktDeEdrZGRBVURMQmxiUVdJMmdyZ0FndEhaZwpCWTFWWCtvS0FGSXRI
bGhCWTlXTHVnS0FuTllQcktDeGFrOWRBVUMrdGdpc29MRnFTVjBCd0RUdEVsaEJZOVdHdWdLQVFt
MFVXRUZqCnhhYXVBS0NvOWdxc29MSGlVVmNBVUVyYkJWYlFXREdvS3dBb294MERLMmlzNnFnckFD
aXZzOUVEYUppMHNZYUhoNWN0V3haQ0dCZ1kKYVBTSW1vTzZxcW5lM3Q2dFc3ZWVQMzkrLy83OTU4
K2ZiL1J3YUc2ZG5aMXIxcXpadEduVHFWT25qaDA3MXVqaFFIdHAzOEFLR212MgoxRld0ZFhaMlRr
eE1EQXdNN055NWMySmlvc3ljWjg2YzJiOS92K2RmTTJoa1pPVDgrZk5idG15cDNTYUdob2IyNzkv
ZjM5Ky9ZOGVPCk1yTjFkSFNNam80ZU9uVElkUUwxMTlhQkZUVFdiS2lyT2poLy92emc0T0NtVFp2
NisvdG5uSG4rL1BucEs5MWt6ZWpvYVBvcnBhYTYKdXJwV3JseFpmcDVMbHk2RkVGNTU1WlZhRHdh
WXBrM2ZnNVhQKzdFcW9hN3FJejNPbGRRVlZLS3JxNnU3dS90Ly8vZC9HejBRYURzQwpLd1NOTlJO
MVZUZFRVMU5GWHhsODZhV1g3cnJycnZxUGgyWlI1Z3BKa3FUOHk4MUFMUWlzMzlCWXBhaXJobnZw
cFpmdXZQUE9sMTU2CnFkRURJYVp6NTg3dDM3Ky82TVFjbkQxNzl2Nzc3MWZoa0IwQzY3YzBWaUYx
MVhEcXFsV05qNDhQRFEwVm5aZ2JqUVdaSXJEZVFtUGwKVTFjTnA2NllGWTBGMmRIdW55SXM1SE9G
S1hXVkJWZGZmZlVmLy9FZkM2eW1NelUxTlRvNlduNmVTNWN1cGJNVlRzeTQvdlN6Z1VXbAoxOHlz
Und6RUpyQ0swRmpxS2lPV0xsMzZKMy95SnlFRXowazBuY25KeVVwbW1KeWNMSnlZODhwdnZQSEdQ
WHYyM0hqampiTWVMaENiCndDcXVuUnRMWFdWS3JyRWVlZVNSUm8rRm1QcjYralp1M0ZoMFltN1VG
V1NLd0NxcFBSdExYV1ZRMmxpMzNYWmJvd2RDVEoyZG5lazcKUGdzbjVrQmRRZFo0azNzNTdmYWVk
M1hWY0tYK2lWMjZkS2wvT3ltanpCVlNUYmNCY3lhd1p0QStqYVd1c21ESmtpVnIxNjc5NlU5Lwoy
dWlCMENMT25EbHo4T0RCbXY1aFJLQW9MeEhPckIxZUsxUlhHZEhaMmJscTFhb1F3bzkvL09QaDRl
RXljMTY2ZEdsa1pPVFFvVVAxCkdocVZtcHljSEI4ZjM3dDNiKzAyTVQ0K0hrSTRjK2JNZi8zWGY1
V1pyYk96Yy9ueTVaczJiYXJrazRsQVhBS3JJcTNkV09vcU95WW4KSjhmR3h2cjYrbGF2WHUzUG0x
Q2xlZlBtZFhkM2QzWjJYcng0c2RGamdiWWpzQ3JWcW8ybHJqSWw5MmZqNW5BNm9LaUppWW0rdnI2
dApXN2UrL1BMTGpSNEx0SkdPSkVrYVBZWm1NajQrbnI1d016ZzQyQUtOcGE0QW9CYTh5WDEyV3Vr
OTcrb0tBR3BFWU0xYWF6U1d1Z0tBCjJoRlljOUhzamFXdUFLQ21CTlljTlc5anFTc0FxRFdCTlhm
TjJGanFDZ0RxUUdCVnBia2FTMTBCUUgwSXJHbzFTMk9wS3dDb0c0RVYKUWZZYlMxMEJRRDM1b3RG
b012c2RwTlhYMWE1ZHUzcDdlOVVWQUZUSU0xalJaUE41TEhVRkFQVW5zR0xLV21PcEt3Qm9DSUVW
V1hZYQpTMTBCUUtNSXJQaXkwRmpxQ2dBYVNHRFZSR01iUzEwQlFHTUpyRnBwVkdPcEt3Qm9PSUZW
US9WdkxIVUZBRmtnc0dxcm5vMmxyZ0FnCkl3Uld6ZFduc2RRVkFHU0h3S3FIV2plV3VnS0FUQkZZ
ZFZLN3hsSlhBSkExQXF0K2F0Rlk2Z29BTWtoZzFWWGN4bEpYQUpCTkFxdmUKWWpWV1dsZnIxNjlY
VndDUU5RS3JBYXB2ckxTdTFxNWRlL3IwNmFtcHFWa3RxNjRBb05ZRVZtTlUwMWhwWGQxNjY2MjMz
WGJidW5YcgpEaDgrWEhsanFTc0FxQU9CMVRCemE2eGNYYTFidHk2RWNOTk5OMVhlV09vS0FPcERZ
RFhTYkJ0cldsMmxLbXdzZFFVQWRTT3dHcXp5CnhpcGFWNmtaRzB0ZEFVQTlDYXpHcTZTeHl0UlZx
a3hqcVNzQXFET0JsUW5sRzZ1d3JyNzBwUzk5N1d0Zm16WmIwY1pTVndCUWZ3SXIKSzBvMTF1VGs1
T0RnNExUbnJsYXVYUG5KVDM1eXhzWlNWd0RRRUoyTkhnQy9sVGJXOFBEd3NtWExRZ2dEQXdQOS9m
M2QzZDF2Zi92YgpWNjFhbFQ5bit2VlhuL2pFSjBJSUgvLzR4L04vZE5OTk40VVFEaDgrdkdUSmtq
ZmZmRk5kQVVEOWVRWXJXL0tmeDlxd1ljTU5OOXh3Cjd0eTV3cmRWWGJod0laMzR4Q2MrVWZSNXJO
N2VYblVGQUkwaXNESW4xMWk5dmIwakl5TXJWcXpvNit1Yk5zK2FOV3ZtejUrZlR2L0YKWC96RnRN
WTZjT0RBME5DUXVnS0FSdkVTWVJibFhpc2NHeHNiR1JsNSt1bW5iNzMxMXFWTGwrWm02T3ZyZS9U
UlI0OGVQZHJaMmJsdQozYnBUcDA3bGZuVGd3SUY5Ky9hcEt3Qm9vSTRrU1JvOUJvb2JIeDhmSGg0
T0lSdzlldlRJa1NPMzMzNTdmbU1WcGE0QUlBdThSSmhkCnVkY0sxNjlmZjgwMTF6ejk5Tk5uejU0
dE03KzZBb0NNRUZpWlZubGpxU3NBeUE2QmxYV1ZOSmE2QW9CTUVWaE5vSHhqcVNzQXlCcHYKY204
YStlOTVQMzc4K08vKzd1KysrZWFiSVlRWFgzeHh4NDRkNmdvQXNrTmdOWk5jWTUwNmRhcXZyMjl3
Y0xDbnA2ZTd1M3ZSb2tYcQpDZ0N5UTJBMW1WeGpMVnk0c0x1N2UzaDRlSEp5VWwwQlFLWUlyT2FU
YTZ5T2pvNGtTZFFWQUdTTndHcEt1Y1pTVndDUVFRS3JXWTJQCmo0K09qdmIyOXFvckFNZ2FnUVVB
RUpudndRSUFMVDRna1FBQUJkdEpSRUZVaUV4Z0FRQkVKckFBQUNJVFdBQUFrUWtzQUlESUJCWUEK
UUdRQ0N3QWdNb0VGQUJDWndBSUFpRXhnQVFCRUpyQUFBQ0lUV0FBQWtRa3NBSURJQkJZQVFHUUND
d0FnTW9FRkFCQ1p3QUlBaUV4ZwpBUUJFSnJBQUFDSVRXQUFBa1Frc0FJRElCQllBUUdRQ0N3QWdN
b0VGQUJDWndBSUFpRXhnQVFCRUpyQUFBQ0lUV0FBQWtRa3NBSURJCkJCWUFRR1FDQ3dBZ01vRUZB
QkNad0FJQWlFeGdBUUJFSnJBQUFDSVRXQUFBa1Frc0FJRElCQllBUUdRQ0N3QWdNb0VGQUJDWndB
SUEKaUV4Z0FRQkVKckFBQUNJVFdBQUFrUWtzQUlESUJCWUFRR1FDQ3dBZ01vRUZBQkNad0FJQWlF
eGdBUUJFSnJBQUFDSVRXQUFBa1FrcwpBSURJQkJZQVFHUUNDd0FnTW9FRkFCQ1p3QUlBaUV4Z0FR
QkVKckFBQUNJVFdBQUFrUWtzQUlESUJCWUFRR1FDQ3dBZ01vRUZBQkNaCndBSUFpRXhnQVFCRUpy
QUFBQ0lUV0FBQWtRa3NBSURJQkJZQVFHUUNDd0FnTW9FRkFCQ1p3QUlBaUV4Z0FRQkVKckFBQUNJ
VFdBQUEKa1Frc0FJRElCQllBUUdRQ0N3QWdNb0VGQUJDWndBSUFpRXhnQVFCRUpyQUFBQ0lUV0FB
QWtRa3NBSURJQkJZQVFHUUNDd0FnTW9FRgpBQkNad0FJQWlFeGdBUUJFSnJBQUFDSVRXQUFBa1Fr
c0FJRElCQllBUUdRQ0N3QWdNb0VGQUJDWndBSUFpRXhnQVFCRUpyQUFBQ0lUCldBQUFrUWtzQUlE
SUJCWUFRR1FDQ3dBZ01vRUZBQkNad0FJQWlFeGdBUUJFSnJBQUFDSVRXQUFBa1Frc0FJRElCQllB
UUdRQ0N3QWcKTW9FRkFCQ1p3QUlBaUV4Z0FRQkVKckFBQUNJVFdBQUFrUWtzQUlESUJCWUFRR1FD
Q3dBZ01vRUZBQkNad0FJQWlFeGdBUUJFSnJBQQpBQ0lUV0FBQWtRa3NBSURJQkJZQVFHUUNDd0Fn
TW9FRkFCQ1p3QUlBaUV4Z0FRQkVKckFBQUNJVFdBQUFrUWtzQUlESUJCWUFRR1FDCkN3QWdNb0VG
QUJDWndBSUFpRXhnQVFCRUpyQUFBQ0lUV0FBQWtRa3NBSURJQkJZQVFHUUNDd0FnTW9FRkFCQ1p3
QUlBaUV4Z0FRQkUKSnJBQUFDSVRXQUFBa1Frc0FJRElCQllBUUdRQ0N3QWdNb0VGQUJDWndBSUFp
RXhnQVFCRUpyQUFBQ0lUV0FBQWtRa3NBSURJQkJZQQpRR1FDQ3dBZ01vRUZBQkNad0FJQWlFeGdB
UUJFSnJBQUFDSVRXQUFBa1Frc0FJRElCQllBUUdRQ0N3QWdNb0VGQUJDWndBSUFpRXhnCkFRQkVK
ckFBQUNJVFdBQUFrUWtzQUlESUJCWUFRR1FDQ3dBZ01vRUZBQkNad0FJQWlFeGdBUUJFSnJBQUFD
SVRXQUFBa1Frc0FJREkKQkJZQVFHUUNDd0FnTW9FRkFCQ1p3QUlBaUV4Z0FRQkVKckFBQUNJVFdB
QUFrUWtzQUlESUJCWUFRR1FDQ3dBZ01vRUZBQkNad0FJQQppRXhnQVFCRUpyQUFBQ0lUV0FBQWtR
a3NBSURJQkJZQVFHUUNDd0FnTW9FRkFCQ1p3QUlBaUV4Z0FRQkVKckFBQUNJVFdBQUFrUWtzCkFJ
RElCQllBUUdRQ0N3QWdNb0VGQUJDWndBSUFpRXhnQVFCRUpyQUFBQ0lUV0FBQWtRa3NBSURJQkJZ
QVFHUUNDd0FnTW9FRkFCQ1oKd0FJQWlFeGdBUUJFSnJBQUFDSVRXQUFBa1Frc0FJRElCQllBUUdR
Q0N3QWdNb0VGQUJDWndBSUFpRXhnQVFCRUpyQUFBQ0lUV0FBQQprUWtzQUlESUJCWUFRR1FDQ3dB
Z01vRUZBQkNad0FJQWlFeGdBUUJFSnJBQUFDSVRXQUFBa1Frc0FJRElCQllBUUdRQ0N3QWdNb0VG
CkFCQ1p3QUlBaUV4Z0FRQkVKckFBQUNJVFdBQUFrUWtzQUlESUJCWUFRR1FDQ3dBZ01vRUZBQkNa
d0FJQWlFeGdBUUJFSnJBQUFDSVQKV0FBQWtRa3NBSURJQkJZQVFHUUNDd0FnTW9FRkFCQ1p3QUlB
aUV4Z0FRQkVKckFBQUNJVFdBQUFrUWtzQUlESUJCWUFRR1FDQ3dBZwpNb0VGQUJDWndBSUFpRXhn
QVFCRUpyQUFBQ0lUV0FBQWtRa3NBSURJQkJZQVFHUUNDd0FnTW9FRkFCQ1p3QUlBaUV4Z0FRQkVK
ckFBCkFDSVRXQUFBa1Frc0FJRElCQllBUUdRQ0N3QWdNb0VGQUJDWndBSUFpRXhnQVFCRUpyQUFB
Q0lUV0FBQWtRa3NBSURJQkJZQVFHUUMKQ3dBZ01vRUZBQkNad0FJQWlFeGdBUUJFSnJBQUFDSVRX
QUFBa1Frc0FJRElCQllBUUdRQ0N3QWdNb0VGQUJDWndBSUFpRXhnQVFCRQpKckFBQUNJVFdBQUFr
UWtzQUlESUJCWUFRR1FDQ3dBZ01vRUZBQkNad0FJQWlFeGdBUUJFSnJBQUFDTDdQN3VvVXkrazht
K2ZBQUFBCkFFbEZUa1N1UW1DQwoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179660</attachid>
            <date>2012-12-16 13:07:37 -0800</date>
            <delta_ts>2012-12-16 13:52:16 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-101779-20121216130455.patch</filename>
            <type>text/plain</type>
            <size>114118</size>
            <attacher name="Levi Weintraub">leviw</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNzg0NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzOSBAQAorMjAxMi0xMi0xNCAgTGV2aSBX
ZWludHJhdWIgIDxsZXZpd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUHVzaCBwaXhlbCBzbmFw
cGluZyBsb2dpYyBpbnRvIFRyYW5zZm9ybVN0YXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE3NzkKKworICAgICAgICBSZXZpZXdlZCBieSBTaW1v
biBGcmFzZXIuCisKKyAgICAgICAgVGhlIG9sZCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcyBiZWhh
dmlvciBmZWxsIGFwYXJ0IHdoZW4gdGhlcmUgd2FzIGNvbnRlbnQgbmVzdGVkIGluCisgICAgICAg
IG11bHRpcGxlIGxldmVscyBvZiBjb250YWluZXJzIHdpdGggc3ViLXBpeGVsIG9mZnNldHMuIFRo
ZSBwb2ludCBvZiB0aGlzIGZsYWcgd2FzIHRvCisgICAgICAgIG1pcnJvciB0aGUgcGl4ZWwgc25h
cHBpbmcgdGhhdCBvY2N1cnMgaW4gcGFpbnQsIHdoZXJlIG9mZnNldHMgYXJlIGFjY3VtdWxhdGVk
IGJvdHRvbS0KKyAgICAgICAgdXAgdGhyb3VnaCB0aGUgcmVuZGVyIHRyZWUgYW5kIHNuYXBwZWQg
YXQgdGhlIGVuZC4gVGhpcyBjaGFuZ2UgZWxpbWluYXRlcyB0aGlzIGZsYWcKKyAgICAgICAgYW5k
IHB1c2hlcyBwaXhlbCBzbmFwcGluZyBsb2dpYyBkb3duIGludG8gVHJhbnNmb3JtU3RhdGUuCisK
KyAgICAgICAgVHJhbnNmb3JtU3RhdGUgbm93IHRyYWNrcyBhIExheW91dFNpemUgYWNjdW11bGF0
ZWQgb2Zmc2V0IHdoZW4gdGhlcmUncyBubyB0cmFuc2Zvcm0KKyAgICAgICAgb3Igd2UncmUganVz
dCB0cmFuc2xhdGluZy4gV2UgdGhlbiBzbmFwIGFuZCBhcHBseSB0aGlzIG9mZnNldCBiZWZvcmUg
YWNjdW11bGF0aW5nCisgICAgICAgIHZhbHVlcyBpbnRvIGEgdHJhbnNmb3JtLCBhbmQgd2hlbiBy
ZXR1cm5pbmcgcGxhbmFyIGNvb3JkaW5hdGVzIHRvIGNhbGxlcnMuCisKKyAgICAgICAgVGVzdDog
ZmFzdC9zdWItcGl4ZWwvdHJhbnNmb3JtZWQtaWZyYW1lLWNvcHktb24tc2Nyb2xsLmh0bWwgYWRk
ZWQsCisgICAgICAgICAgICAgIGZhc3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1pZnJhbWUtY29weS1v
bi1zY3JvbGwuaHRtbCBtb2RpZmllZCB0byBhbHNvIGNhdGNoIHRoaXMgYnVnLgorCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1TdGF0ZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpUcmFuc2Zvcm1TdGF0ZTo6b3BlcmF0b3I9KTogUGFzcyBhY2N1bXVsYXRl
ZCBvZmZzZXQuCisgICAgICAgIChXZWJDb3JlOjpUcmFuc2Zvcm1TdGF0ZTo6dHJhbnNsYXRlVHJh
bnNmb3JtKTogRXh0cmFjdGVkIHRoaXMgZnVuY3Rpb25hbGl0eSBmb3IKKyAgICAgICAgcmUtdXNl
IHdoZW4gYXBwbHlpbmcgdGhlIGFjY3VtdWxhdGVkIG9mZnNldCwgb3IgYWNjdW11bGF0aW5nIGZy
b20gYSBjYWxsIHRvIG1vdmUuCisgICAgICAgIChXZWJDb3JlOjpUcmFuc2Zvcm1TdGF0ZTo6dHJh
bnNsYXRlTWFwcGVkQ29vcmRpbmF0ZXMpOiBTYW1lIGFzIGFib3ZlIHdoZW4gd2UncmUgbm90Cisg
ICAgICAgIGFjY3VsYXRpbmcgaW50byBhIHRyYW5zZm9ybS4KKyAgICAgICAgKFdlYkNvcmU6OlRy
YW5zZm9ybVN0YXRlOjptb3ZlKTogQ2hhbmdlZCB0byBhY2N1bXVsYXRlIGludG8gbV9hY2N1bXVs
YXRlZE9mZnNldCB3aGVuCisgICAgICAgIG5vdCBhY2N1bXVsYXRpbmcgaW50byBhIHRyYW5zZm9y
bS4KKyAgICAgICAgKFdlYkNvcmU6OlRyYW5zZm9ybVN0YXRlOjphcHBseUFjY3VtdWxhdGVkT2Zm
c2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlRyYW5zZm9ybVN0YXRlOjphcHBseVRyYW5zZm9ybSk6
IEFwcGxpZXMgdGhlIGFjY3VtdWxhdGVkIG9mZnNldCBiZWZvcmUgdGhlCisgICAgICAgIHRyYW5z
Zm9ybS4KKyAgICAgICAgKFdlYkNvcmU6OlRyYW5zZm9ybVN0YXRlOjpmbGF0dGVuKTogRGl0dG8g
Zm9yIGZsYXR0ZW5pbmcuCisgICAgICAgIChXZWJDb3JlOjpUcmFuc2Zvcm1TdGF0ZTo6bWFwcGVk
UG9pbnQpOiBUcmFuc2xhdGVzIGJ5IHRoZSBhY2N1bXVsYXRlZCBvZmZzZXQgYmVmb3JlCisgICAg
ICAgIHJldHVybmluZy4KKyAgICAgICAgKFdlYkNvcmU6OlRyYW5zZm9ybVN0YXRlOjptYXBwZWRR
dWFkKTogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFu
c2Zvcm1TdGF0ZS5oOgorICAgICAgICAoVHJhbnNmb3JtU3RhdGUpOiBBZGRlZCBtX2FjY3VtdWxh
dGVkT2Zmc2V0LgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJHZW9tZXRyeU1hcC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJHZW9tZXRyeU1hcDo6bWFwVG9Db250YWluZXIpOiBXaGVu
IG5vdCB1c2luZyBhIHRyYW5zZm9ybSwgd2Ugc3RpbGwgbmVlZAorICAgICAgICB0byBzbmFwIG91
ciBvZmZzZXQgYmVmb3JlIGFwcGx5aW5nIHRvIG91ciBmbG9hdCByZXN1bHQuIEFsc28sIGZsYXR0
ZW4gd2hlbiB3ZSBoYXZlIGEKKyAgICAgICAgbm9uLXVuaWZvcm0gc3RlcC4KKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyR2VvbWV0cnlNYXAuaDoKKyAgICAgICAgKFJlbmRlckdlb21ldHJ5TWFw
KTogUmVtb3ZlIHVzZSBvZiBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jtcy4KKworICAgICAgICBFdmVy
eXRoaW5nIGJlbG93IHNpbXBseSBkcm9wcyB0aGUgdXNlIG9mIFNuYXBPZmZzZXRGb3JUcmFuc2Zv
cm1zOgorCisgICAgICAgICogZG9tL0NvbnRhaW5lck5vZGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q29udGFpbmVyTm9kZTo6Z2V0VXBwZXJMZWZ0Q29ybmVyKToKKyAgICAgICAgKiBkb20vTW91
c2VSZWxhdGVkRXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW91c2VSZWxhdGVkRXZlbnQ6
OmNvbXB1dGVSZWxhdGl2ZVBvc2l0aW9uKToKKyAgICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0
aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhcmV0QmFzZTo6YWJzb2x1dGVCb3VuZHNGb3JM
b2NhbFJlY3QpOgorICAgICAgICAqIGVkaXRpbmcvUmVuZGVyZWRQb3NpdGlvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJlZFBvc2l0aW9uOjphYnNvbHV0ZVJlY3QpOgorICAgICAgICAq
IGVkaXRpbmcvVmlzaWJsZVBvc2l0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlZpc2libGVQ
b3NpdGlvbjo6YWJzb2x1dGVDYXJldEJvdW5kcyk6CisgICAgICAgICogaHRtbC9IVE1MU2VsZWN0
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6bGlzdEJv
eERlZmF1bHRFdmVudEhhbmRsZXIpOgorICAgICAgICAqIGh0bWwvc2hhZG93L1NsaWRlclRodW1i
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTbGlkZXJUaHVtYkVsZW1lbnQ6OnNldFBv
c2l0aW9uRnJvbVBvaW50KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9TcGluQnV0dG9uRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTcGluQnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2ZW50
SGFuZGxlcik6CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVWaWV3Ojpjb252ZXJ0RnJvbVJlbmRlcmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lVmlldzo6Y29udmVydFRvUmVuZGVyZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9JbmxpbmVU
ZXh0Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklubGluZVRleHRCb3g6OnBhaW50RG9jdW1l
bnRNYXJrZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lVGV4dEJveDo6cGFpbnRUZXh0TWF0
Y2hNYXJrZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lVGV4dEJveDo6Y29tcHV0ZVJlY3RG
b3JSZXBsYWNlbWVudE1hcmtlcik6CisgICAgICAgICogcmVuZGVyaW5nL0xheW91dFN0YXRlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dFN0YXRlOjpMYXlvdXRTdGF0ZSk6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6
Om1hcExvY2FsVG9Db250YWluZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpwdXNo
TWFwcGluZ1RvQ29udGFpbmVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94Lmg6Cisg
ICAgICAgIChSZW5kZXJCb3gpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9i
amVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6Y29tcHV0
ZVN0aWNreVBvc2l0aW9uQ29uc3RyYWludHMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJF
bWJlZGRlZE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJFbWJlZGRlZE9iamVj
dDo6aXNJblVuYXZhaWxhYmxlUGx1Z2luSW5kaWNhdG9yKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyRnJhbWVTZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRnJhbWVTZXQ6OnVz
ZXJSZXNpemUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVySW5saW5lOjptYXBMb2NhbFRvQ29udGFpbmVyKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlcklubGluZTo6cHVzaE1hcHBpbmdUb0NvbnRhaW5lcik6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlcklubGluZS5oOgorICAgICAgICAoUmVuZGVySW5saW5lKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGF5ZXI6OmFic29sdXRlVG9Db250ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
YXllcjo6c2Nyb2xsVG8pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmNoaWxkcmVu
Q2xpcFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNlbGZDbGlwUmVjdCk6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OmNvbnRlbnRzVmlzaWJsZSk6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTWVkaWFDb250cm9sczo6dm9sdW1lU2xpZGVyT2Zmc2V0RnJvbU11dGVCdXR0b24pOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJNZW51TGlzdDo6c2hvd1BvcHVwKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2Jq
ZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6YWJzb2x1dGVGb2N1c1Jp
bmdRdWFkcyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHQ6
OmFic29sdXRlUmVjdHNGb3JSYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Ojph
YnNvbHV0ZVF1YWRzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHQ6OmFic29sdXRlUXVh
ZHNGb3JSYW5nZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjp2b2x1bWVTbGlkZXJPZmZzZXRGcm9tTXV0ZUJ1dHRv
bik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVmlldzo6c2VsZWN0aW9uQm91bmRzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyVmlldy5oOgorICAgICAgICAoUmVuZGVyVmlldyk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlcldpZGdldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJXaWRnZXQ6OnVwZGF0ZVdp
ZGdldEdlb21ldHJ5KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ZvcmVpZ25P
YmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHRm9yZWlnbk9iamVjdDo6bWFw
TG9jYWxUb0NvbnRhaW5lcik6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdGb3Jl
aWduT2JqZWN0Lmg6CisgICAgICAgIChSZW5kZXJTVkdGb3JlaWduT2JqZWN0KToKKyAgICAgICAg
KiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJTVkdJbmxpbmU6Om1hcExvY2FsVG9Db250YWluZXIpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHSW5saW5lLmg6CisgICAgICAgIChSZW5kZXJTVkdJbmxpbmUpOgorICAg
ICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyU1ZHTW9kZWxPYmplY3Q6Om1hcExvY2FsVG9Db250YWluZXIpOgorICAg
ICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuaDoKKyAgICAgICAgKFJl
bmRlclNWR01vZGVsT2JqZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jv
b3QuaDoKKyAgICAgICAgKFJlbmRlclNWR1Jvb3QpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHVGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdUZXh0OjptYXBM
b2NhbFRvQ29udGFpbmVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQu
aDoKKyAgICAgICAgKFJlbmRlclNWR1RleHQpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvU1ZH
UmVuZGVyU3VwcG9ydC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZW5kZXJTdXBwb3J0Ojpt
YXBMb2NhbFRvQ29udGFpbmVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1
cHBvcnQuaDoKKyAgICAgICAgKFNWR1JlbmRlclN1cHBvcnQpOgorCiAyMDEyLTEyLTE1ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVuYW1lIEZyYW1l
TG9hZGVyQ2xpZW50Ojpkb3dubG9hZCB0byBjb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxv
YWQKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAJKHJldmlzaW9uIDEzNzg0
NikKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtODY0LDcgKzg2NCw3IEBAIGJvb2wgQ29udGFpbmVyTm9kZTo6Z2V0VXBwZXJMZWZ0Q29y
bmVyKEYKICAgICAgICAgICAgICAgICBSZW5kZXJCb3gqIGJveCA9IHRvUmVuZGVyQm94KG8pOwog
ICAgICAgICAgICAgICAgIHBvaW50Lm1vdmVCeShib3gtPmxvY2F0aW9uKCkpOwogICAgICAgICAg
ICAgfQotICAgICAgICAgICAgcG9pbnQgPSBvLT5jb250YWluZXIoKS0+bG9jYWxUb0Fic29sdXRl
KHBvaW50LCBVc2VUcmFuc2Zvcm1zIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpOworICAgICAg
ICAgICAgcG9pbnQgPSBvLT5jb250YWluZXIoKS0+bG9jYWxUb0Fic29sdXRlKHBvaW50LCBVc2VU
cmFuc2Zvcm1zKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgfQpJ
bmRleDogU291cmNlL1dlYkNvcmUvZG9tL01vdXNlUmVsYXRlZEV2ZW50LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vTW91c2VSZWxhdGVkRXZlbnQuY3BwCShyZXZpc2lvbiAx
Mzc4NDYpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vTW91c2VSZWxhdGVkRXZlbnQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNjUsNyArMTY1LDcgQEAgdm9pZCBNb3VzZVJlbGF0ZWRFdmVudDo6Y29t
cHV0ZVJlbGF0aXZlUAogCiAgICAgLy8gQWRqdXN0IG9mZnNldExvY2F0aW9uIHRvIGJlIHJlbGF0
aXZlIHRvIHRoZSB0YXJnZXQncyBwb3NpdGlvbi4KICAgICBpZiAoUmVuZGVyT2JqZWN0KiByID0g
dGFyZ2V0Tm9kZS0+cmVuZGVyZXIoKSkgewotICAgICAgICBGbG9hdFBvaW50IGxvY2FsUG9zID0g
ci0+YWJzb2x1dGVUb0xvY2FsKGFic29sdXRlTG9jYXRpb24oKSwgVXNlVHJhbnNmb3JtcyB8IFNu
YXBPZmZzZXRGb3JUcmFuc2Zvcm1zKTsKKyAgICAgICAgRmxvYXRQb2ludCBsb2NhbFBvcyA9IHIt
PmFic29sdXRlVG9Mb2NhbChhYnNvbHV0ZUxvY2F0aW9uKCksIFVzZVRyYW5zZm9ybXMpOwogICAg
ICAgICBtX29mZnNldExvY2F0aW9uID0gcm91bmRlZExheW91dFBvaW50KGxvY2FsUG9zKTsKICAg
ICAgICAgZmxvYXQgc2NhbGVGYWN0b3IgPSAxIC8gKHBhZ2Vab29tRmFjdG9yKHRoaXMpICogZnJh
bWVTY2FsZUZhY3Rvcih0aGlzKSk7CiAgICAgICAgIGlmIChzY2FsZUZhY3RvciAhPSAxLjBmKQpJ
bmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAJKHJldmlzaW9u
IDEzNzg0NikKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xMzEyLDcgKzEzMTIsNyBAQCBJbnRSZWN0IENhcmV0QmFzZTo6YWJz
b2x1dGVCb3VuZHNGb3JMb2NhCiAgICAgTGF5b3V0UmVjdCBsb2NhbFJlY3QocmVjdCk7CiAgICAg
aWYgKGNhcmV0UGFpbnRlci0+aXNCb3goKSkKICAgICAgICAgdG9SZW5kZXJCb3goY2FyZXRQYWlu
dGVyKS0+ZmxpcEZvcldyaXRpbmdNb2RlKGxvY2FsUmVjdCk7Ci0gICAgcmV0dXJuIGNhcmV0UGFp
bnRlci0+bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3QobG9jYWxSZWN0KSwgU25hcE9mZnNl
dEZvclRyYW5zZm9ybXMpLmVuY2xvc2luZ0JvdW5kaW5nQm94KCk7CisgICAgcmV0dXJuIGNhcmV0
UGFpbnRlci0+bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3QobG9jYWxSZWN0KSkuZW5jbG9z
aW5nQm91bmRpbmdCb3goKTsKIH0KIAogSW50UmVjdCBGcmFtZVNlbGVjdGlvbjo6YWJzb2x1dGVD
YXJldEJvdW5kcygpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbmRlcmVkUG9zaXRp
b24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVuZGVyZWRQb3Np
dGlvbi5jcHAJKHJldmlzaW9uIDEzNzg0NikKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVu
ZGVyZWRQb3NpdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzMCw3ICsyMzAsNyBAQCBJbnRS
ZWN0IFJlbmRlcmVkUG9zaXRpb246OmFic29sdXRlUmVjdChMCiAgICAgICAgIHJldHVybiBJbnRS
ZWN0KCk7CiAKICAgICBJbnRSZWN0IGxvY2FsUmVjdCA9IHBpeGVsU25hcHBlZEludFJlY3QobV9y
ZW5kZXJlci0+bG9jYWxDYXJldFJlY3QobV9pbmxpbmVCb3gsIG1fb2Zmc2V0LCBleHRyYVdpZHRo
VG9FbmRPZkxpbmUpKTsKLSAgICByZXR1cm4gbG9jYWxSZWN0ID09IEludFJlY3QoKSA/IEludFJl
Y3QoKSA6IG1fcmVuZGVyZXItPmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRSZWN0KGxvY2FsUmVj
dCksIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKS5lbmNsb3NpbmdCb3VuZGluZ0JveCgpOworICAg
IHJldHVybiBsb2NhbFJlY3QgPT0gSW50UmVjdCgpID8gSW50UmVjdCgpIDogbV9yZW5kZXJlci0+
bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3QobG9jYWxSZWN0KSkuZW5jbG9zaW5nQm91bmRp
bmdCb3goKTsKIH0KIAogYm9vbCByZW5kZXJPYmplY3RDb250YWluc1Bvc2l0aW9uKFJlbmRlck9i
amVjdCogdGFyZ2V0LCBjb25zdCBQb3NpdGlvbiYgcG9zaXRpb24pCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1Zpc2libGVQb3NpdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvZWRpdGluZy9WaXNpYmxlUG9zaXRpb24uY3BwCShyZXZpc2lvbiAxMzc4NDYpCisrKyBT
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVQb3NpdGlvbi5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTYyNCw3ICs2MjQsNyBAQCBJbnRSZWN0IFZpc2libGVQb3NpdGlvbjo6YWJzb2x1dGVDYXJl
dEJvCiAgICAgaWYgKGxvY2FsUmVjdC5pc0VtcHR5KCkgfHwgIXJlbmRlcmVyKQogICAgICAgICBy
ZXR1cm4gSW50UmVjdCgpOwogCi0gICAgcmV0dXJuIHJlbmRlcmVyLT5sb2NhbFRvQWJzb2x1dGVR
dWFkKEZsb2F0UmVjdChsb2NhbFJlY3QpLCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcykuZW5jbG9z
aW5nQm91bmRpbmdCb3goKTsKKyAgICByZXR1cm4gcmVuZGVyZXItPmxvY2FsVG9BYnNvbHV0ZVF1
YWQoRmxvYXRSZWN0KGxvY2FsUmVjdCkpLmVuY2xvc2luZ0JvdW5kaW5nQm94KCk7CiB9CiAKIGlu
dCBWaXNpYmxlUG9zaXRpb246OmxpbmVEaXJlY3Rpb25Qb2ludEZvckJsb2NrRGlyZWN0aW9uTmF2
aWdhdGlvbigpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVt
ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVt
ZW50LmNwcAkocmV2aXNpb24gMTM3ODQ2KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2Vs
ZWN0RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyODYsNyArMTI4Niw3IEBAIHZvaWQg
SFRNTFNlbGVjdEVsZW1lbnQ6Omxpc3RCb3hEZWZhdWx0RXYKIAogICAgICAgICAvLyBDb252ZXJ0
IHRvIGNvb3JkcyByZWxhdGl2ZSB0byB0aGUgbGlzdCBib3ggaWYgbmVlZGVkLgogICAgICAgICBN
b3VzZUV2ZW50KiBtb3VzZUV2ZW50ID0gc3RhdGljX2Nhc3Q8TW91c2VFdmVudCo+KGV2ZW50KTsK
LSAgICAgICAgSW50UG9pbnQgbG9jYWxPZmZzZXQgPSByb3VuZGVkSW50UG9pbnQocmVuZGVyZXIo
KS0+YWJzb2x1dGVUb0xvY2FsKG1vdXNlRXZlbnQtPmFic29sdXRlTG9jYXRpb24oKSwgVXNlVHJh
bnNmb3JtcyB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKSk7CisgICAgICAgIEludFBvaW50IGxv
Y2FsT2Zmc2V0ID0gcm91bmRlZEludFBvaW50KHJlbmRlcmVyKCktPmFic29sdXRlVG9Mb2NhbCht
b3VzZUV2ZW50LT5hYnNvbHV0ZUxvY2F0aW9uKCksIFVzZVRyYW5zZm9ybXMpKTsKICAgICAgICAg
aW50IGxpc3RJbmRleCA9IHRvUmVuZGVyTGlzdEJveChyZW5kZXJlcigpKS0+bGlzdEluZGV4QXRP
ZmZzZXQodG9TaXplKGxvY2FsT2Zmc2V0KSk7CiAgICAgICAgIGlmIChsaXN0SW5kZXggPj0gMCkg
ewogICAgICAgICAgICAgaWYgKCFkaXNhYmxlZCgpKSB7CkBAIC0xMzA2LDcgKzEzMDYsNyBAQCB2
b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpsaXN0Qm94RGVmYXVsdEV2CiAgICAgICAgIGlmIChtb3Vz
ZUV2ZW50LT5idXR0b24oKSAhPSBMZWZ0QnV0dG9uIHx8ICFtb3VzZUV2ZW50LT5idXR0b25Eb3du
KCkpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgSW50UG9pbnQgbG9jYWxPZmZzZXQg
PSByb3VuZGVkSW50UG9pbnQocmVuZGVyZXIoKS0+YWJzb2x1dGVUb0xvY2FsKG1vdXNlRXZlbnQt
PmFic29sdXRlTG9jYXRpb24oKSwgVXNlVHJhbnNmb3JtcyB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zv
cm1zKSk7CisgICAgICAgIEludFBvaW50IGxvY2FsT2Zmc2V0ID0gcm91bmRlZEludFBvaW50KHJl
bmRlcmVyKCktPmFic29sdXRlVG9Mb2NhbChtb3VzZUV2ZW50LT5hYnNvbHV0ZUxvY2F0aW9uKCks
IFVzZVRyYW5zZm9ybXMpKTsKICAgICAgICAgaW50IGxpc3RJbmRleCA9IHRvUmVuZGVyTGlzdEJv
eChyZW5kZXJlcigpKS0+bGlzdEluZGV4QXRPZmZzZXQodG9TaXplKGxvY2FsT2Zmc2V0KSk7CiAg
ICAgICAgIGlmIChsaXN0SW5kZXggPj0gMCkgewogICAgICAgICAgICAgaWYgKCFkaXNhYmxlZCgp
KSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1i
RWxlbWVudC5jcHAJKHJldmlzaW9uIDEzNzg0NikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1OSw3ICsyNTks
NyBAQCB2b2lkIFNsaWRlclRodW1iRWxlbWVudDo6c2V0UG9zaXRpb25Gcm9tCiAgICAgICAgIHJl
dHVybjsKIAogICAgIGlucHV0LT5zZXRUZXh0QXNPZkxhc3RGb3JtQ29udHJvbENoYW5nZUV2ZW50
KGlucHV0LT52YWx1ZSgpKTsKLSAgICBMYXlvdXRQb2ludCBvZmZzZXQgPSByb3VuZGVkTGF5b3V0
UG9pbnQoaW5wdXQtPnJlbmRlcmVyKCktPmFic29sdXRlVG9Mb2NhbChwb2ludCwgVXNlVHJhbnNm
b3JtcyB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKSk7CisgICAgTGF5b3V0UG9pbnQgb2Zmc2V0
ID0gcm91bmRlZExheW91dFBvaW50KGlucHV0LT5yZW5kZXJlcigpLT5hYnNvbHV0ZVRvTG9jYWwo
cG9pbnQsIFVzZVRyYW5zZm9ybXMpKTsKICAgICBib29sIGlzVmVydGljYWwgPSBoYXNWZXJ0aWNh
bEFwcGVhcmFuY2UoaW5wdXQpOwogICAgIGJvb2wgaXNMZWZ0VG9SaWdodERpcmVjdGlvbiA9IHJl
bmRlckJveCgpLT5zdHlsZSgpLT5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCk7CiAgICAgTGF5b3V0
VW5pdCB0cmFja1NpemU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TcGluQnV0
dG9uRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
U3BpbkJ1dHRvbkVsZW1lbnQuY3BwCShyZXZpc2lvbiAxMzc4NDYpCisrKyBTb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9TcGluQnV0dG9uRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkx
LDcgKzkxLDcgQEAgdm9pZCBTcGluQnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZAogICAg
IH0KIAogICAgIE1vdXNlRXZlbnQqIG1vdXNlRXZlbnQgPSBzdGF0aWNfY2FzdDxNb3VzZUV2ZW50
Kj4oZXZlbnQpOwotICAgIEludFBvaW50IGxvY2FsID0gcm91bmRlZEludFBvaW50KGJveC0+YWJz
b2x1dGVUb0xvY2FsKG1vdXNlRXZlbnQtPmFic29sdXRlTG9jYXRpb24oKSwgVXNlVHJhbnNmb3Jt
cyB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKSk7CisgICAgSW50UG9pbnQgbG9jYWwgPSByb3Vu
ZGVkSW50UG9pbnQoYm94LT5hYnNvbHV0ZVRvTG9jYWwobW91c2VFdmVudC0+YWJzb2x1dGVMb2Nh
dGlvbigpLCBVc2VUcmFuc2Zvcm1zKSk7CiAgICAgaWYgKG1vdXNlRXZlbnQtPnR5cGUoKSA9PSBl
dmVudE5hbWVzKCkubW91c2Vkb3duRXZlbnQgJiYgbW91c2VFdmVudC0+YnV0dG9uKCkgPT0gTGVm
dEJ1dHRvbikgewogICAgICAgICBpZiAoYm94LT5waXhlbFNuYXBwZWRCb3JkZXJCb3hSZWN0KCku
Y29udGFpbnMobG9jYWwpKSB7CiAgICAgICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGZ1bmN0aW9u
cyBvZiBIVE1MSW5wdXRFbGVtZW50IG1heSBydW4gSmF2YVNjcmlwdApJbmRleDogU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3LmNwcAkocmV2aXNpb24gMTM3ODQ2KQorKysgU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZVZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNTA3LDcgKzM1MDcsNyBAQCB2b2lk
IEZyYW1lVmlldzo6YWRqdXN0UGFnZUhlaWdodERlcHJlY2F0CiAKIEludFJlY3QgRnJhbWVWaWV3
Ojpjb252ZXJ0RnJvbVJlbmRlcmVyKGNvbnN0IFJlbmRlck9iamVjdCogcmVuZGVyZXIsIGNvbnN0
IEludFJlY3QmIHJlbmRlcmVyUmVjdCkgY29uc3QKIHsKLSAgICBJbnRSZWN0IHJlY3QgPSByZW5k
ZXJlci0+bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3QocmVuZGVyZXJSZWN0KSwgU25hcE9m
ZnNldEZvclRyYW5zZm9ybXMpLmVuY2xvc2luZ0JvdW5kaW5nQm94KCk7CisgICAgSW50UmVjdCBy
ZWN0ID0gcmVuZGVyZXItPmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRSZWN0KHJlbmRlcmVyUmVj
dCkpLmVuY2xvc2luZ0JvdW5kaW5nQm94KCk7CiAKICAgICAvLyBDb252ZXJ0IGZyb20gcGFnZSAo
ImFic29sdXRlIikgdG8gRnJhbWVWaWV3IGNvb3JkaW5hdGVzLgogICAgIGlmICghZGVsZWdhdGVz
U2Nyb2xsaW5nKCkpCkBAIC0zNTI2LDEzICszNTI2LDEzIEBAIEludFJlY3QgRnJhbWVWaWV3Ojpj
b252ZXJ0VG9SZW5kZXJlcihjb24KIAogICAgIC8vIEZJWE1FOiB3ZSBkb24ndCBoYXZlIGEgd2F5
IHRvIG1hcCBhbiBhYnNvbHV0ZSByZWN0IGRvd24gdG8gYSBsb2NhbCBxdWFkLCBzbyBqdXN0CiAg
ICAgLy8gbW92ZSB0aGUgcmVjdCBmb3Igbm93LgotICAgIHJlY3Quc2V0TG9jYXRpb24ocm91bmRl
ZEludFBvaW50KHJlbmRlcmVyLT5hYnNvbHV0ZVRvTG9jYWwocmVjdC5sb2NhdGlvbigpLCBVc2VU
cmFuc2Zvcm1zIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpKSk7CisgICAgcmVjdC5zZXRMb2Nh
dGlvbihyb3VuZGVkSW50UG9pbnQocmVuZGVyZXItPmFic29sdXRlVG9Mb2NhbChyZWN0LmxvY2F0
aW9uKCksIFVzZVRyYW5zZm9ybXMpKSk7CiAgICAgcmV0dXJuIHJlY3Q7CiB9CiAKIEludFBvaW50
IEZyYW1lVmlldzo6Y29udmVydEZyb21SZW5kZXJlcihjb25zdCBSZW5kZXJPYmplY3QqIHJlbmRl
cmVyLCBjb25zdCBJbnRQb2ludCYgcmVuZGVyZXJQb2ludCkgY29uc3QKIHsKLSAgICBJbnRQb2lu
dCBwb2ludCA9IHJvdW5kZWRJbnRQb2ludChyZW5kZXJlci0+bG9jYWxUb0Fic29sdXRlKHJlbmRl
cmVyUG9pbnQsIFVzZVRyYW5zZm9ybXMgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcykpOworICAg
IEludFBvaW50IHBvaW50ID0gcm91bmRlZEludFBvaW50KHJlbmRlcmVyLT5sb2NhbFRvQWJzb2x1
dGUocmVuZGVyZXJQb2ludCwgVXNlVHJhbnNmb3JtcykpOwogCiAgICAgLy8gQ29udmVydCBmcm9t
IHBhZ2UgKCJhYnNvbHV0ZSIpIHRvIEZyYW1lVmlldyBjb29yZGluYXRlcy4KICAgICBpZiAoIWRl
bGVnYXRlc1Njcm9sbGluZygpKQpAQCAtMzU0OCw3ICszNTQ4LDcgQEAgSW50UG9pbnQgRnJhbWVW
aWV3Ojpjb252ZXJ0VG9SZW5kZXJlcihjbwogICAgIGlmICghZGVsZWdhdGVzU2Nyb2xsaW5nKCkp
CiAgICAgICAgIHBvaW50ICs9IEludFNpemUoc2Nyb2xsWCgpLCBzY3JvbGxZKCkpOwogCi0gICAg
cmV0dXJuIHJvdW5kZWRJbnRQb2ludChyZW5kZXJlci0+YWJzb2x1dGVUb0xvY2FsKHBvaW50LCBV
c2VUcmFuc2Zvcm1zIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpKTsKKyAgICByZXR1cm4gcm91
bmRlZEludFBvaW50KHJlbmRlcmVyLT5hYnNvbHV0ZVRvTG9jYWwocG9pbnQsIFVzZVRyYW5zZm9y
bXMpKTsKIH0KIAogSW50UmVjdCBGcmFtZVZpZXc6OmNvbnZlcnRUb0NvbnRhaW5pbmdWaWV3KGNv
bnN0IEludFJlY3QmIGxvY2FsUmVjdCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtU3RhdGUuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtU3Rh
dGUuY3BwCShyZXZpc2lvbiAxMzc4NDYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybVN0YXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIs
NiArMzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFRyYW5zZm9ybVN0YXRlJiBUcmFuc2Zv
cm1TdGF0ZTo6b3BlcmF0b3I9KGNvbnN0IFRyYW5zZm9ybVN0YXRlJiBvdGhlcikKIHsKKyAgICBt
X2FjY3VtdWxhdGVkT2Zmc2V0ID0gb3RoZXIubV9hY2N1bXVsYXRlZE9mZnNldDsKICAgICBtX21h
cFBvaW50ID0gb3RoZXIubV9tYXBQb2ludDsKICAgICBtX21hcFF1YWQgPSBvdGhlci5tX21hcFF1
YWQ7CiAgICAgaWYgKG1fbWFwUG9pbnQpCkBAIC00OSwzMiArNTAsNTYgQEAgVHJhbnNmb3JtU3Rh
dGUmIFRyYW5zZm9ybVN0YXRlOjpvcGVyYXRvcgogICAgIHJldHVybiAqdGhpczsKIH0KIAotdm9p
ZCBUcmFuc2Zvcm1TdGF0ZTo6bW92ZShMYXlvdXRVbml0IHgsIExheW91dFVuaXQgeSwgVHJhbnNm
b3JtQWNjdW11bGF0aW9uIGFjY3VtdWxhdGUpCit2b2lkIFRyYW5zZm9ybVN0YXRlOjp0cmFuc2xh
dGVUcmFuc2Zvcm0oY29uc3QgSW50U2l6ZSYgb2Zmc2V0KQogewotICAgIGlmIChtX2FjY3VtdWxh
dGluZ1RyYW5zZm9ybSAmJiBtX2FjY3VtdWxhdGVkVHJhbnNmb3JtKSB7Ci0gICAgICAgIC8vIElm
IHdlJ3JlIGFjY3VtdWxhdGluZyBpbnRvIGFuIGV4aXN0aW5nIHRyYW5zZm9ybSwgYXBwbHkgdGhl
IHRyYW5zbGF0aW9uLgotICAgICAgICBpZiAobV9kaXJlY3Rpb24gPT0gQXBwbHlUcmFuc2Zvcm1E
aXJlY3Rpb24pCi0gICAgICAgICAgICBtX2FjY3VtdWxhdGVkVHJhbnNmb3JtLT50cmFuc2xhdGVS
aWdodCh4LCB5KTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgbV9hY2N1bXVsYXRlZFRyYW5z
Zm9ybS0+dHJhbnNsYXRlKHgsIHkpOwotICAgICAgICAKLSAgICAgICAgLy8gVGhlbiBmbGF0dGVu
IGlmIG5lY2Vzc2FyeS4KLSAgICAgICAgaWYgKGFjY3VtdWxhdGUgPT0gRmxhdHRlblRyYW5zZm9y
bSkKLSAgICAgICAgICAgIGZsYXR0ZW4oKTsKLSAgICB9IGVsc2UgewotICAgICAgICAvLyBKdXN0
IG1vdmUgdGhlIHBvaW50IGFuZCwgb3B0aW9uYWxseSwgdGhlIHF1YWQuCi0gICAgICAgIGlmICht
X2RpcmVjdGlvbiA9PSBVbmFwcGx5SW52ZXJzZVRyYW5zZm9ybURpcmVjdGlvbikgewotICAgICAg
ICAgICAgeCA9IC14OwotICAgICAgICAgICAgeSA9IC15OwotICAgICAgICB9Ci0gICAgICAgIGlm
IChtX21hcFBvaW50KQotICAgICAgICAgICAgbV9sYXN0UGxhbmFyUG9pbnQubW92ZSh4LCB5KTsK
LSAgICAgICAgaWYgKG1fbWFwUXVhZCkKLSAgICAgICAgICAgIG1fbGFzdFBsYW5hclF1YWQubW92
ZSh4LCB5KTsKKyAgICBpZiAobV9kaXJlY3Rpb24gPT0gQXBwbHlUcmFuc2Zvcm1EaXJlY3Rpb24p
CisgICAgICAgIG1fYWNjdW11bGF0ZWRUcmFuc2Zvcm0tPnRyYW5zbGF0ZVJpZ2h0KG9mZnNldC53
aWR0aCgpLCBvZmZzZXQuaGVpZ2h0KCkpOworICAgIGVsc2UKKyAgICAgICAgbV9hY2N1bXVsYXRl
ZFRyYW5zZm9ybS0+dHJhbnNsYXRlKG9mZnNldC53aWR0aCgpLCBvZmZzZXQuaGVpZ2h0KCkpOwor
fQorCit2b2lkIFRyYW5zZm9ybVN0YXRlOjp0cmFuc2xhdGVNYXBwZWRDb29yZGluYXRlcyhjb25z
dCBJbnRTaXplJiBvZmZzZXQpCit7CisgICAgSW50U2l6ZSBhZGp1c3RlZE9mZnNldCA9IChtX2Rp
cmVjdGlvbiA9PSBBcHBseVRyYW5zZm9ybURpcmVjdGlvbikgPyBvZmZzZXQgOiAtb2Zmc2V0Owor
ICAgIGlmIChtX21hcFBvaW50KQorICAgICAgICBtX2xhc3RQbGFuYXJQb2ludC5tb3ZlKGFkanVz
dGVkT2Zmc2V0KTsKKyAgICBpZiAobV9tYXBRdWFkKQorICAgICAgICBtX2xhc3RQbGFuYXJRdWFk
Lm1vdmUoYWRqdXN0ZWRPZmZzZXQpOworfQorCit2b2lkIFRyYW5zZm9ybVN0YXRlOjptb3ZlKGNv
bnN0IExheW91dFNpemUmIG9mZnNldCwgVHJhbnNmb3JtQWNjdW11bGF0aW9uIGFjY3VtdWxhdGUp
Cit7CisgICAgaWYgKGFjY3VtdWxhdGUgPT0gRmxhdHRlblRyYW5zZm9ybSB8fCAhbV9hY2N1bXVs
YXRlZFRyYW5zZm9ybSkKKyAgICAgICAgbV9hY2N1bXVsYXRlZE9mZnNldCArPSBvZmZzZXQ7Cisg
ICAgZWxzZSB7CisgICAgICAgIGFwcGx5QWNjdW11bGF0ZWRPZmZzZXQoKTsKKyAgICAgICAgaWYg
KG1fYWNjdW11bGF0aW5nVHJhbnNmb3JtICYmIG1fYWNjdW11bGF0ZWRUcmFuc2Zvcm0pIHsKKyAg
ICAgICAgICAgIC8vIElmIHdlJ3JlIGFjY3VtdWxhdGluZyBpbnRvIGFuIGV4aXN0aW5nIHRyYW5z
Zm9ybSwgYXBwbHkgdGhlIHRyYW5zbGF0aW9uLgorICAgICAgICAgICAgdHJhbnNsYXRlVHJhbnNm
b3JtKHJvdW5kZWRJbnRTaXplKG9mZnNldCkpOworCisgICAgICAgICAgICAvLyBUaGVuIGZsYXR0
ZW4gaWYgbmVjZXNzYXJ5LgorICAgICAgICAgICAgaWYgKGFjY3VtdWxhdGUgPT0gRmxhdHRlblRy
YW5zZm9ybSkKKyAgICAgICAgICAgICAgICBmbGF0dGVuKCk7CisgICAgICAgIH0gZWxzZQorICAg
ICAgICAgICAgLy8gSnVzdCBtb3ZlIHRoZSBwb2ludCBhbmQvb3IgcXVhZC4KKyAgICAgICAgICAg
IHRyYW5zbGF0ZU1hcHBlZENvb3JkaW5hdGVzKHJvdW5kZWRJbnRTaXplKG9mZnNldCkpOwogICAg
IH0KICAgICBtX2FjY3VtdWxhdGluZ1RyYW5zZm9ybSA9IGFjY3VtdWxhdGUgPT0gQWNjdW11bGF0
ZVRyYW5zZm9ybTsKIH0KIAordm9pZCBUcmFuc2Zvcm1TdGF0ZTo6YXBwbHlBY2N1bXVsYXRlZE9m
ZnNldCgpCit7CisgICAgSW50U2l6ZSBvZmZzZXQgPSByb3VuZGVkSW50U2l6ZShtX2FjY3VtdWxh
dGVkT2Zmc2V0KTsKKyAgICBtX2FjY3VtdWxhdGVkT2Zmc2V0ID0gTGF5b3V0U2l6ZSgpOworICAg
IGlmICghb2Zmc2V0LmlzWmVybygpKSB7CisgICAgICAgIGlmIChtX2FjY3VtdWxhdGVkVHJhbnNm
b3JtKSB7CisgICAgICAgICAgICB0cmFuc2xhdGVUcmFuc2Zvcm0ob2Zmc2V0KTsKKyAgICAgICAg
ICAgIGZsYXR0ZW4oKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICB0cmFuc2xhdGVNYXBw
ZWRDb29yZGluYXRlcyhvZmZzZXQpOworICAgIH0KK30KKwogLy8gRklYTUU6IFdlIHRyYW5zZm9y
bSBBZmZpbmVUcmFuc2Zvcm0gdG8gVHJhbnNmb3JtYXRpb25NYXRyaXguIFRoaXMgaXMgcmF0aGVy
IGluZWZmaWNpZW50Lgogdm9pZCBUcmFuc2Zvcm1TdGF0ZTo6YXBwbHlUcmFuc2Zvcm0oY29uc3Qg
QWZmaW5lVHJhbnNmb3JtJiB0cmFuc2Zvcm1Gcm9tQ29udGFpbmVyLCBUcmFuc2Zvcm1BY2N1bXVs
YXRpb24gYWNjdW11bGF0ZSwgYm9vbCogd2FzQ2xhbXBlZCkKIHsKQEAgLTg2LDYgKzExMSw4IEBA
IHZvaWQgVHJhbnNmb3JtU3RhdGU6OmFwcGx5VHJhbnNmb3JtKGNvbnMKICAgICBpZiAod2FzQ2xh
bXBlZCkKICAgICAgICAgKndhc0NsYW1wZWQgPSBmYWxzZTsKIAorICAgIGFwcGx5QWNjdW11bGF0
ZWRPZmZzZXQoKTsKKwogICAgIC8vIElmIHdlIGhhdmUgYW4gYWNjdW11bGF0ZWQgdHJhbnNmb3Jt
IGZyb20gbGFzdCB0aW1lLCBtdWx0aXBseSBpbiB0aGlzIHRyYW5zZm9ybQogICAgIGlmIChtX2Fj
Y3VtdWxhdGVkVHJhbnNmb3JtKSB7CiAgICAgICAgIGlmIChtX2RpcmVjdGlvbiA9PSBBcHBseVRy
YW5zZm9ybURpcmVjdGlvbikKQEAgLTEwOSw2ICsxMzYsOCBAQCB2b2lkIFRyYW5zZm9ybVN0YXRl
OjpmbGF0dGVuKGJvb2wqIHdhc0NsCiAgICAgaWYgKHdhc0NsYW1wZWQpCiAgICAgICAgICp3YXND
bGFtcGVkID0gZmFsc2U7CiAKKyAgICBhcHBseUFjY3VtdWxhdGVkT2Zmc2V0KCk7CisKICAgICBp
ZiAoIW1fYWNjdW11bGF0ZWRUcmFuc2Zvcm0pIHsKICAgICAgICAgbV9hY2N1bXVsYXRpbmdUcmFu
c2Zvcm0gPSBmYWxzZTsKICAgICAgICAgcmV0dXJuOwpAQCAtMTIyLDEzICsxNTEsMTUgQEAgRmxv
YXRQb2ludCBUcmFuc2Zvcm1TdGF0ZTo6bWFwcGVkUG9pbnQoYgogICAgIGlmICh3YXNDbGFtcGVk
KQogICAgICAgICAqd2FzQ2xhbXBlZCA9IGZhbHNlOwogCisgICAgRmxvYXRQb2ludCBwb2ludCA9
IG1fbGFzdFBsYW5hclBvaW50OworICAgIHBvaW50Lm1vdmUoKG1fZGlyZWN0aW9uID09IEFwcGx5
VHJhbnNmb3JtRGlyZWN0aW9uKSA/IG1fYWNjdW11bGF0ZWRPZmZzZXQgOiAtbV9hY2N1bXVsYXRl
ZE9mZnNldCk7CiAgICAgaWYgKCFtX2FjY3VtdWxhdGVkVHJhbnNmb3JtKQotICAgICAgICByZXR1
cm4gbV9sYXN0UGxhbmFyUG9pbnQ7CisgICAgICAgIHJldHVybiBwb2ludDsKIAogICAgIGlmICht
X2RpcmVjdGlvbiA9PSBBcHBseVRyYW5zZm9ybURpcmVjdGlvbikKLSAgICAgICAgcmV0dXJuIG1f
YWNjdW11bGF0ZWRUcmFuc2Zvcm0tPm1hcFBvaW50KG1fbGFzdFBsYW5hclBvaW50KTsKKyAgICAg
ICAgcmV0dXJuIG1fYWNjdW11bGF0ZWRUcmFuc2Zvcm0tPm1hcFBvaW50KHBvaW50KTsKIAotICAg
IHJldHVybiBtX2FjY3VtdWxhdGVkVHJhbnNmb3JtLT5pbnZlcnNlKCkucHJvamVjdFBvaW50KG1f
bGFzdFBsYW5hclBvaW50LCB3YXNDbGFtcGVkKTsKKyAgICByZXR1cm4gbV9hY2N1bXVsYXRlZFRy
YW5zZm9ybS0+aW52ZXJzZSgpLnByb2plY3RQb2ludChwb2ludCwgd2FzQ2xhbXBlZCk7CiB9CiAK
IEZsb2F0UXVhZCBUcmFuc2Zvcm1TdGF0ZTo6bWFwcGVkUXVhZChib29sKiB3YXNDbGFtcGVkKSBj
b25zdApAQCAtMTM2LDEzICsxNjcsMTUgQEAgRmxvYXRRdWFkIFRyYW5zZm9ybVN0YXRlOjptYXBw
ZWRRdWFkKGJvbwogICAgIGlmICh3YXNDbGFtcGVkKQogICAgICAgICAqd2FzQ2xhbXBlZCA9IGZh
bHNlOwogCisgICAgRmxvYXRRdWFkIHF1YWQgPSBtX2xhc3RQbGFuYXJRdWFkOworICAgIHF1YWQu
bW92ZSgobV9kaXJlY3Rpb24gPT0gQXBwbHlUcmFuc2Zvcm1EaXJlY3Rpb24pID8gbV9hY2N1bXVs
YXRlZE9mZnNldCA6IC1tX2FjY3VtdWxhdGVkT2Zmc2V0KTsKICAgICBpZiAoIW1fYWNjdW11bGF0
ZWRUcmFuc2Zvcm0pCi0gICAgICAgIHJldHVybiBtX2xhc3RQbGFuYXJRdWFkOworICAgICAgICBy
ZXR1cm4gcXVhZDsKIAogICAgIGlmIChtX2RpcmVjdGlvbiA9PSBBcHBseVRyYW5zZm9ybURpcmVj
dGlvbikKLSAgICAgICAgcmV0dXJuIG1fYWNjdW11bGF0ZWRUcmFuc2Zvcm0tPm1hcFF1YWQobV9s
YXN0UGxhbmFyUXVhZCk7CisgICAgICAgIHJldHVybiBtX2FjY3VtdWxhdGVkVHJhbnNmb3JtLT5t
YXBRdWFkKHF1YWQpOwogCi0gICAgcmV0dXJuIG1fYWNjdW11bGF0ZWRUcmFuc2Zvcm0tPmludmVy
c2UoKS5wcm9qZWN0UXVhZChtX2xhc3RQbGFuYXJRdWFkLCB3YXNDbGFtcGVkKTsKKyAgICByZXR1
cm4gbV9hY2N1bXVsYXRlZFRyYW5zZm9ybS0+aW52ZXJzZSgpLnByb2plY3RRdWFkKHF1YWQsIHdh
c0NsYW1wZWQpOwogfQogCiB2b2lkIFRyYW5zZm9ybVN0YXRlOjpmbGF0dGVuV2l0aFRyYW5zZm9y
bShjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdCwgYm9vbCogd2FzQ2xhbXBlZCkKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtU3Rh
dGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFu
c2Zvcm1zL1RyYW5zZm9ybVN0YXRlLmgJKHJldmlzaW9uIDEzNzg0NikKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtU3RhdGUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNzQsMTMgKzc0LDEzIEBAIHB1YmxpYzoKICAgICBUcmFuc2Zvcm1TdGF0ZSYg
b3BlcmF0b3I9KGNvbnN0IFRyYW5zZm9ybVN0YXRlJik7CiAgICAgCiAgICAgdm9pZCBzZXRRdWFk
KGNvbnN0IEZsb2F0UXVhZCYgcXVhZCkgeyBtX2xhc3RQbGFuYXJRdWFkID0gcXVhZDsgfQotICAg
IAotICAgIHZvaWQgbW92ZShjb25zdCBMYXlvdXRTaXplJiBzLCBUcmFuc2Zvcm1BY2N1bXVsYXRp
b24gYWNjdW11bGF0ZSA9IEZsYXR0ZW5UcmFuc2Zvcm0pCisKKyAgICB2b2lkIG1vdmUoTGF5b3V0
VW5pdCB4LCBMYXlvdXRVbml0IHksIFRyYW5zZm9ybUFjY3VtdWxhdGlvbiBhY2N1bXVsYXRlID0g
RmxhdHRlblRyYW5zZm9ybSkKICAgICB7Ci0gICAgICAgIG1vdmUocy53aWR0aCgpLCBzLmhlaWdo
dCgpLCBhY2N1bXVsYXRlKTsKKyAgICAgICAgbW92ZShMYXlvdXRTaXplKHgsIHkpLCBhY2N1bXVs
YXRlKTsKICAgICB9Ci0gICAgCi0gICAgdm9pZCBtb3ZlKExheW91dFVuaXQgeCwgTGF5b3V0VW5p
dCB5LCBUcmFuc2Zvcm1BY2N1bXVsYXRpb24gPSBGbGF0dGVuVHJhbnNmb3JtKTsKKworICAgIHZv
aWQgbW92ZShjb25zdCBMYXlvdXRTaXplJiwgVHJhbnNmb3JtQWNjdW11bGF0aW9uID0gRmxhdHRl
blRyYW5zZm9ybSk7CiAgICAgdm9pZCBhcHBseVRyYW5zZm9ybShjb25zdCBBZmZpbmVUcmFuc2Zv
cm0mIHRyYW5zZm9ybUZyb21Db250YWluZXIsIFRyYW5zZm9ybUFjY3VtdWxhdGlvbiA9IEZsYXR0
ZW5UcmFuc2Zvcm0sIGJvb2wqIHdhc0NsYW1wZWQgPSAwKTsKICAgICB2b2lkIGFwcGx5VHJhbnNm
b3JtKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm1Gcm9tQ29udGFpbmVyLCBU
cmFuc2Zvcm1BY2N1bXVsYXRpb24gPSBGbGF0dGVuVHJhbnNmb3JtLCBib29sKiB3YXNDbGFtcGVk
ID0gMCk7CiAgICAgdm9pZCBmbGF0dGVuKGJvb2wqIHdhc0NsYW1wZWQgPSAwKTsKQEAgLTk0LDEz
ICs5NCwxNyBAQCBwdWJsaWM6CiAgICAgRmxvYXRRdWFkIG1hcHBlZFF1YWQoYm9vbCogd2FzQ2xh
bXBlZCA9IDApIGNvbnN0OwogCiBwcml2YXRlOgorICAgIHZvaWQgdHJhbnNsYXRlVHJhbnNmb3Jt
KGNvbnN0IEludFNpemUmKTsKKyAgICB2b2lkIHRyYW5zbGF0ZU1hcHBlZENvb3JkaW5hdGVzKGNv
bnN0IEludFNpemUmKTsKICAgICB2b2lkIGZsYXR0ZW5XaXRoVHJhbnNmb3JtKGNvbnN0IFRyYW5z
Zm9ybWF0aW9uTWF0cml4JiwgYm9vbCogd2FzQ2xhbXBlZCk7CisgICAgdm9pZCBhcHBseUFjY3Vt
dWxhdGVkT2Zmc2V0KCk7CiAgICAgCiAgICAgRmxvYXRQb2ludCBtX2xhc3RQbGFuYXJQb2ludDsK
ICAgICBGbG9hdFF1YWQgbV9sYXN0UGxhbmFyUXVhZDsKIAogICAgIC8vIFdlIG9ubHkgYWxsb2Nh
dGUgdGhlIHRyYW5zZm9ybSBpZiB3ZSBuZWVkIHRvCiAgICAgT3duUHRyPFRyYW5zZm9ybWF0aW9u
TWF0cml4PiBtX2FjY3VtdWxhdGVkVHJhbnNmb3JtOworICAgIExheW91dFNpemUgbV9hY2N1bXVs
YXRlZE9mZnNldDsKICAgICBib29sIG1fYWNjdW11bGF0aW5nVHJhbnNmb3JtOwogICAgIGJvb2wg
bV9tYXBQb2ludCwgbV9tYXBRdWFkOwogICAgIFRyYW5zZm9ybURpcmVjdGlvbiBtX2RpcmVjdGlv
bjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAJKHJl
dmlzaW9uIDEzNzg0NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTEyNSw3ICsxMTI1LDcgQEAgdm9pZCBJbmxpbmVUZXh0
Qm94OjpwYWludERvY3VtZW50TWFya2VyKAogICAgICAgICAvLyBkaXNwbGF5IGEgdG9vbFRpcC4g
V2UgZG9uJ3QgZG8gdGhpcyBmb3IgbWlzc3BlbGxpbmcgbWFya2Vycy4KICAgICAgICAgaWYgKGdy
YW1tYXIgfHwgaXNEaWN0YXRpb25NYXJrZXIpIHsKICAgICAgICAgICAgIG1hcmtlclJlY3QubW92
ZSgtYm94T3JpZ2luLngoKSwgLWJveE9yaWdpbi55KCkpOwotICAgICAgICAgICAgbWFya2VyUmVj
dCA9IHJlbmRlcmVyKCktPmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRSZWN0KG1hcmtlclJlY3Qp
LCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcykuZW5jbG9zaW5nQm91bmRpbmdCb3goKTsKKyAgICAg
ICAgICAgIG1hcmtlclJlY3QgPSByZW5kZXJlcigpLT5sb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0
UmVjdChtYXJrZXJSZWN0KSkuZW5jbG9zaW5nQm91bmRpbmdCb3goKTsKICAgICAgICAgICAgIHRv
UmVuZGVyZWREb2N1bWVudE1hcmtlcihtYXJrZXIpLT5zZXRSZW5kZXJlZFJlY3QobWFya2VyUmVj
dCk7CiAgICAgICAgIH0KICAgICB9CkBAIC0xMTYzLDcgKzExNjMsNyBAQCB2b2lkIElubGluZVRl
eHRCb3g6OnBhaW50VGV4dE1hdGNoTWFya2VyCiAKICAgICAvLyBBbHdheXMgY29tcHV0ZSBhbmQg
c3RvcmUgdGhlIHJlY3QgYXNzb2NpYXRlZCB3aXRoIHRoaXMgbWFya2VyLiBUaGUgY29tcHV0ZWQg
cmVjdCBpcyBpbiBhYnNvbHV0ZSBjb29yZGluYXRlcy4KICAgICBJbnRSZWN0IG1hcmtlclJlY3Qg
PSBlbmNsb3NpbmdJbnRSZWN0KGZvbnQuc2VsZWN0aW9uUmVjdEZvclRleHQocnVuLCBJbnRQb2lu
dCh4KCksIHNlbGVjdGlvblRvcCgpKSwgc2VsSGVpZ2h0LCBzUG9zLCBlUG9zKSk7Ci0gICAgbWFy
a2VyUmVjdCA9IHJlbmRlcmVyKCktPmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRSZWN0KG1hcmtl
clJlY3QpLCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcykuZW5jbG9zaW5nQm91bmRpbmdCb3goKTsK
KyAgICBtYXJrZXJSZWN0ID0gcmVuZGVyZXIoKS0+bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFJl
Y3QobWFya2VyUmVjdCkpLmVuY2xvc2luZ0JvdW5kaW5nQm94KCk7CiAgICAgdG9SZW5kZXJlZERv
Y3VtZW50TWFya2VyKG1hcmtlciktPnNldFJlbmRlcmVkUmVjdChtYXJrZXJSZWN0KTsKICAgICAK
ICAgICAvLyBPcHRpb25hbGx5IGhpZ2hsaWdodCB0aGUgdGV4dApAQCAtMTE5MSw3ICsxMTkxLDcg
QEAgdm9pZCBJbmxpbmVUZXh0Qm94Ojpjb21wdXRlUmVjdEZvclJlcGxhYwogICAgIAogICAgIC8v
IENvbXB1dGUgYW5kIHN0b3JlIHRoZSByZWN0IGFzc29jaWF0ZWQgd2l0aCB0aGlzIG1hcmtlci4K
ICAgICBJbnRSZWN0IG1hcmtlclJlY3QgPSBlbmNsb3NpbmdJbnRSZWN0KGZvbnQuc2VsZWN0aW9u
UmVjdEZvclRleHQocnVuLCBzdGFydFBvaW50LCBoLCBzUG9zLCBlUG9zKSk7Ci0gICAgbWFya2Vy
UmVjdCA9IHJlbmRlcmVyKCktPmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRSZWN0KG1hcmtlclJl
Y3QpLCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcykuZW5jbG9zaW5nQm91bmRpbmdCb3goKTsKKyAg
ICBtYXJrZXJSZWN0ID0gcmVuZGVyZXIoKS0+bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3Qo
bWFya2VyUmVjdCkpLmVuY2xvc2luZ0JvdW5kaW5nQm94KCk7CiAgICAgdG9SZW5kZXJlZERvY3Vt
ZW50TWFya2VyKG1hcmtlciktPnNldFJlbmRlcmVkUmVjdChtYXJrZXJSZWN0KTsKIH0KICAgICAK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRTdGF0ZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmNwcAkocmV2aXNpb24g
MTM3ODQ2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTU2LDcgKzE1Niw3IEBAIExheW91dFN0YXRlOjpMYXlvdXRTdGF0ZShS
ZW5kZXJPYmplY3QqIHIKICNlbmRpZgogewogICAgIFJlbmRlck9iamVjdCogY29udGFpbmVyID0g
cm9vdC0+Y29udGFpbmVyKCk7Ci0gICAgRmxvYXRQb2ludCBhYnNDb250ZW50UG9pbnQgPSBjb250
YWluZXItPmxvY2FsVG9BYnNvbHV0ZShGbG9hdFBvaW50KCksIFVzZVRyYW5zZm9ybXMgfCBTbmFw
T2Zmc2V0Rm9yVHJhbnNmb3Jtcyk7CisgICAgRmxvYXRQb2ludCBhYnNDb250ZW50UG9pbnQgPSBj
b250YWluZXItPmxvY2FsVG9BYnNvbHV0ZShGbG9hdFBvaW50KCksIFVzZVRyYW5zZm9ybXMpOwog
ICAgIG1fcGFpbnRPZmZzZXQgPSBMYXlvdXRTaXplKGFic0NvbnRlbnRQb2ludC54KCksIGFic0Nv
bnRlbnRQb2ludC55KCkpOwogCiAgICAgaWYgKGNvbnRhaW5lci0+aGFzT3ZlcmZsb3dDbGlwKCkp
IHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCShyZXZpc2lvbiAx
Mzc4NDYpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTQ2MCw4ICsxNDYwLDYgQEAgdm9pZCBSZW5kZXJCb3g6Om1hcExvY2FsVG9D
b250YWluZXIoY29ucwogICAgICAgICAqd2FzRml4ZWQgPSBtb2RlICYgSXNGaXhlZDsKICAgICAK
ICAgICBMYXlvdXRTaXplIGNvbnRhaW5lck9mZnNldCA9IG9mZnNldEZyb21Db250YWluZXIobywg
cm91bmRlZExheW91dFBvaW50KHRyYW5zZm9ybVN0YXRlLm1hcHBlZFBvaW50KCkpKTsKLSAgICBp
ZiAobW9kZSAmIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKQotICAgICAgICBjb250YWluZXJPZmZz
ZXQgPSByb3VuZGVkSW50U2l6ZShjb250YWluZXJPZmZzZXQpOwogICAgIAogICAgIGJvb2wgcHJl
c2VydmUzRCA9IG1vZGUgJiBVc2VUcmFuc2Zvcm1zICYmIChvLT5zdHlsZSgpLT5wcmVzZXJ2ZXMz
RCgpIHx8IHN0eWxlKCktPnByZXNlcnZlczNEKCkpOwogICAgIGlmIChtb2RlICYgVXNlVHJhbnNm
b3JtcyAmJiBzaG91bGRVc2VUcmFuc2Zvcm1Gcm9tQ29udGFpbmVyKG8pKSB7CkBAIC0xNTEyLDgg
KzE1MTAsNiBAQCBjb25zdCBSZW5kZXJPYmplY3QqIFJlbmRlckJveDo6cHVzaE1hcHBpCiAKICAg
ICBib29sIG9mZnNldERlcGVuZHNPblBvaW50ID0gZmFsc2U7CiAgICAgTGF5b3V0U2l6ZSBjb250
YWluZXJPZmZzZXQgPSBvZmZzZXRGcm9tQ29udGFpbmVyKGNvbnRhaW5lciwgTGF5b3V0UG9pbnQo
KSwgJm9mZnNldERlcGVuZHNPblBvaW50KTsKLSAgICBpZiAoZ2VvbWV0cnlNYXAubWFwQ29vcmRp
bmF0ZXNGbGFncygpICYgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpCi0gICAgICAgIGNvbnRhaW5l
ck9mZnNldCA9IHJvdW5kZWRJbnRTaXplKGNvbnRhaW5lck9mZnNldCk7CiAKICAgICBpZiAoY29u
dGFpbmVyLT5pc1JlbmRlckZsb3dUaHJlYWQoKSkKICAgICAgICAgb2Zmc2V0RGVwZW5kc09uUG9p
bnQgPSB0cnVlOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAkocmV2aXNp
b24gMTM3ODQ2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC01OTcsNyArNTk3LDcgQEAgcHJvdGVjdGVkOgogICAgIAogICAgIHZpcnR1
YWwgYm9vbCBzaG91bGRDb21wdXRlU2l6ZUFzUmVwbGFjZWQoKSBjb25zdCB7IHJldHVybiBpc1Jl
cGxhY2VkKCkgJiYgIWlzSW5saW5lQmxvY2tPcklubGluZVRhYmxlKCk7IH0KIAotICAgIHZpcnR1
YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3Qq
IHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29vcmRpbmF0ZXNGbGFncyA9
IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNG
aXhlZCA9IDApIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29u
dGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRy
YW5zZm9ybVN0YXRlJiwgTWFwQ29vcmRpbmF0ZXNGbGFncyA9IEFwcGx5Q29udGFpbmVyRmxpcCwg
Ym9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGNvbnN0IFJl
bmRlck9iamVjdCogcHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVs
T2JqZWN0KiwgUmVuZGVyR2VvbWV0cnlNYXAmKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFs
IHZvaWQgbWFwQWJzb2x1dGVUb0xvY2FsUG9pbnQoTWFwQ29vcmRpbmF0ZXNGbGFncywgVHJhbnNm
b3JtU3RhdGUmKSBjb25zdDsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJveE1vZGVsT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCShyZXZpc2lvbiAxMzc4NDYpCisrKyBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC00NzEsNyArNDcxLDcgQEAgdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6Y29tcHV0ZVN0
aWNreQogICAgIC8vIENvbXB1dGUgdGhlIGNvbnRhaW5lci1yZWxhdGl2ZSBhcmVhIHdpdGhpbiB3
aGljaCB0aGUgc3RpY2t5IGVsZW1lbnQgaXMgYWxsb3dlZCB0byBtb3ZlLgogICAgIGNvbnRhaW5l
ckNvbnRlbnRSZWN0Lm1vdmUobWluTGVmdE1hcmdpbiwgbWluVG9wTWFyZ2luKTsKICAgICBjb250
YWluZXJDb250ZW50UmVjdC5jb250cmFjdChtaW5MZWZ0TWFyZ2luICsgbWluUmlnaHRNYXJnaW4s
IG1pblRvcE1hcmdpbiArIG1pbkJvdHRvbU1hcmdpbik7Ci0gICAgY29uc3RyYWludHMuc2V0QWJz
b2x1dGVDb250YWluaW5nQmxvY2tSZWN0KGNvbnRhaW5pbmdCbG9jay0+bG9jYWxUb0Fic29sdXRl
UXVhZChGbG9hdFJlY3QoY29udGFpbmVyQ29udGVudFJlY3QpLCBTbmFwT2Zmc2V0Rm9yVHJhbnNm
b3JtcykuYm91bmRpbmdCb3goKSk7CisgICAgY29uc3RyYWludHMuc2V0QWJzb2x1dGVDb250YWlu
aW5nQmxvY2tSZWN0KGNvbnRhaW5pbmdCbG9jay0+bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFJl
Y3QoY29udGFpbmVyQ29udGVudFJlY3QpKS5ib3VuZGluZ0JveCgpKTsKIAogICAgIExheW91dFJl
Y3Qgc3RpY2t5Qm94UmVjdCA9IGZyYW1lUmVjdEZvclN0aWNreVBvc2l0aW9uaW5nKCk7CiAgICAg
TGF5b3V0UmVjdCBmbGlwcGVkU3RpY2t5Qm94UmVjdCA9IHN0aWNreUJveFJlY3Q7CkBAIC00Nzks
NyArNDc5LDcgQEAgdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6Y29tcHV0ZVN0aWNreQogICAg
IExheW91dFBvaW50IHN0aWNreUxvY2F0aW9uID0gZmxpcHBlZFN0aWNreUJveFJlY3QubG9jYXRp
b24oKTsKIAogICAgIC8vIEZJWE1FOiBzdWNrcyB0byBjYWxsIGxvY2FsVG9BYnNvbHV0ZSBhZ2Fp
biwgYnV0IHdlIGNhbid0IGp1c3Qgb2Zmc2V0IGZyb20gdGhlIHByZXZpb3VzbHkgY29tcHV0ZWQg
cmVjdCBpZiB0aGVyZSBhcmUgdHJhbnNmb3Jtcy4KLSAgICBGbG9hdFJlY3QgYWJzQ29udGFpbmVy
RnJhbWUgPSBjb250YWluaW5nQmxvY2stPmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRSZWN0KEZs
b2F0UG9pbnQoKSwgY29udGFpbmluZ0Jsb2NrLT5zaXplKCkpLCBTbmFwT2Zmc2V0Rm9yVHJhbnNm
b3JtcykuYm91bmRpbmdCb3goKTsKKyAgICBGbG9hdFJlY3QgYWJzQ29udGFpbmVyRnJhbWUgPSBj
b250YWluaW5nQmxvY2stPmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRSZWN0KEZsb2F0UG9pbnQo
KSwgY29udGFpbmluZ0Jsb2NrLT5zaXplKCkpKS5ib3VuZGluZ0JveCgpOwogICAgIC8vIFdlIGNh
bid0IGNhbGwgbG9jYWxUb0Fic29sdXRlIG9uIHx0aGlzfCBiZWNhdXNlIHRoYXQgd2lsbCByZWN1
ci4gRklYTUU6IEZvciBub3csIGFzc3VtZSB0aGF0IHx0aGlzfCBpcyBub3QgdHJhbnNmb3JtZWQu
CiAgICAgRmxvYXRSZWN0IGFic29sdXRlU3RpY2t5Qm94UmVjdChhYnNDb250YWluZXJGcmFtZS5s
b2NhdGlvbigpICsgc3RpY2t5TG9jYXRpb24sIGZsaXBwZWRTdGlja3lCb3hSZWN0LnNpemUoKSk7
CiAgICAgY29uc3RyYWludHMuc2V0QWJzb2x1dGVTdGlja3lCb3hSZWN0KGFic29sdXRlU3RpY2t5
Qm94UmVjdCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRP
YmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJF
bWJlZGRlZE9iamVjdC5jcHAJKHJldmlzaW9uIDEzNzg0NikKKysrIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1OCw3
ICszNTgsNyBAQCBib29sIFJlbmRlckVtYmVkZGVkT2JqZWN0Ojppc0luVW5hdmFpbGFiCiAKIGJv
b2wgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OmlzSW5VbmF2YWlsYWJsZVBsdWdpbkluZGljYXRvcihN
b3VzZUV2ZW50KiBldmVudCkgY29uc3QKIHsKLSAgICByZXR1cm4gaXNJblVuYXZhaWxhYmxlUGx1
Z2luSW5kaWNhdG9yKHJvdW5kZWRMYXlvdXRQb2ludChhYnNvbHV0ZVRvTG9jYWwoZXZlbnQtPmFi
c29sdXRlTG9jYXRpb24oKSwgVXNlVHJhbnNmb3JtcyB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1z
KSkpOworICAgIHJldHVybiBpc0luVW5hdmFpbGFibGVQbHVnaW5JbmRpY2F0b3Iocm91bmRlZExh
eW91dFBvaW50KGFic29sdXRlVG9Mb2NhbChldmVudC0+YWJzb2x1dGVMb2NhdGlvbigpLCBVc2VU
cmFuc2Zvcm1zKSkpOwogfQogCiBzdGF0aWMgYm9vbCBzaG91bGRVbmF2YWlsYWJsZVBsdWdpbk1l
c3NhZ2VCZUJ1dHRvbihEb2N1bWVudCogZG9jdW1lbnQsIFJlbmRlckVtYmVkZGVkT2JqZWN0OjpQ
bHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbiBwbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbikKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFtZVNldC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYW1lU2V0LmNwcAkocmV2aXNp
b24gMTM3ODQ2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYW1lU2V0LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNzAxLDcgKzcwMSw3IEBAIGJvb2wgUmVuZGVyRnJhbWVTZXQ6
OnVzZXJSZXNpemUoTW91c2VFdmUKICAgICAgICAgaWYgKG5lZWRzTGF5b3V0KCkpCiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIGlmIChldnQtPnR5cGUoKSA9PSBldmVudE5hbWVz
KCkubW91c2Vkb3duRXZlbnQgJiYgZXZ0LT5idXR0b24oKSA9PSBMZWZ0QnV0dG9uKSB7Ci0gICAg
ICAgICAgICBGbG9hdFBvaW50IGxvY2FsUG9zID0gYWJzb2x1dGVUb0xvY2FsKGV2dC0+YWJzb2x1
dGVMb2NhdGlvbigpLCBVc2VUcmFuc2Zvcm1zIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpOwor
ICAgICAgICAgICAgRmxvYXRQb2ludCBsb2NhbFBvcyA9IGFic29sdXRlVG9Mb2NhbChldnQtPmFi
c29sdXRlTG9jYXRpb24oKSwgVXNlVHJhbnNmb3Jtcyk7CiAgICAgICAgICAgICBzdGFydFJlc2l6
aW5nKG1fY29scywgbG9jYWxQb3MueCgpKTsKICAgICAgICAgICAgIHN0YXJ0UmVzaXppbmcobV9y
b3dzLCBsb2NhbFBvcy55KCkpOwogICAgICAgICAgICAgaWYgKG1fY29scy5tX3NwbGl0QmVpbmdS
ZXNpemVkICE9IG5vU3BsaXQgfHwgbV9yb3dzLm1fc3BsaXRCZWluZ1Jlc2l6ZWQgIT0gbm9TcGxp
dCkgewpAQCAtNzExLDcgKzcxMSw3IEBAIGJvb2wgUmVuZGVyRnJhbWVTZXQ6OnVzZXJSZXNpemUo
TW91c2VFdmUKICAgICAgICAgfQogICAgIH0gZWxzZSB7CiAgICAgICAgIGlmIChldnQtPnR5cGUo
KSA9PSBldmVudE5hbWVzKCkubW91c2Vtb3ZlRXZlbnQgfHwgKGV2dC0+dHlwZSgpID09IGV2ZW50
TmFtZXMoKS5tb3VzZXVwRXZlbnQgJiYgZXZ0LT5idXR0b24oKSA9PSBMZWZ0QnV0dG9uKSkgewot
ICAgICAgICAgICAgRmxvYXRQb2ludCBsb2NhbFBvcyA9IGFic29sdXRlVG9Mb2NhbChldnQtPmFi
c29sdXRlTG9jYXRpb24oKSwgVXNlVHJhbnNmb3JtcyB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1z
KTsKKyAgICAgICAgICAgIEZsb2F0UG9pbnQgbG9jYWxQb3MgPSBhYnNvbHV0ZVRvTG9jYWwoZXZ0
LT5hYnNvbHV0ZUxvY2F0aW9uKCksIFVzZVRyYW5zZm9ybXMpOwogICAgICAgICAgICAgY29udGlu
dWVSZXNpemluZyhtX2NvbHMsIGxvY2FsUG9zLngoKSk7CiAgICAgICAgICAgICBjb250aW51ZVJl
c2l6aW5nKG1fcm93cywgbG9jYWxQb3MueSgpKTsKICAgICAgICAgICAgIGlmIChldnQtPnR5cGUo
KSA9PSBldmVudE5hbWVzKCkubW91c2V1cEV2ZW50ICYmIGV2dC0+YnV0dG9uKCkgPT0gTGVmdEJ1
dHRvbikgewpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdlb21ldHJ5TWFw
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR2VvbWV0
cnlNYXAuY3BwCShyZXZpc2lvbiAxMzc4NDYpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyR2VvbWV0cnlNYXAuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MSw2ICs1MSw3IEBAIHZv
aWQgUmVuZGVyR2VvbWV0cnlNYXA6Om1hcFRvQ29udGFpbmVyKFQKICAgICAvLyBJZiB0aGUgbWFw
cGluZyBpbmNsdWRlcyBzb21ldGhpbmcgbGlrZSBjb2x1bW5zLCB3ZSBoYXZlIHRvIGdvIHZpYSBy
ZW5kZXJlcnMuCiAgICAgaWYgKGhhc05vblVuaWZvcm1TdGVwKCkpIHsKICAgICAgICAgbV9tYXBw
aW5nLmxhc3QoKS5tX3JlbmRlcmVyLT5tYXBMb2NhbFRvQ29udGFpbmVyKGNvbnRhaW5lciwgdHJh
bnNmb3JtU3RhdGUsIEFwcGx5Q29udGFpbmVyRmxpcCB8IG1fbWFwQ29vcmRpbmF0ZXNGbGFncyk7
CisgICAgICAgIHRyYW5zZm9ybVN0YXRlLmZsYXR0ZW4oKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KICAgICAKQEAgLTEwNCw3ICsxMDUsNyBAQCBGbG9hdFBvaW50IFJlbmRlckdlb21ldHJ5TWFw
OjptYXBUb0NvbnRhCiAgICAgRmxvYXRQb2ludCByZXN1bHQ7CiAgICAgCiAgICAgaWYgKCFoYXNG
aXhlZFBvc2l0aW9uU3RlcCgpICYmICFoYXNUcmFuc2Zvcm1TdGVwKCkgJiYgIWhhc05vblVuaWZv
cm1TdGVwKCkgJiYgKCFjb250YWluZXIgfHwgKG1fbWFwcGluZy5zaXplKCkgJiYgY29udGFpbmVy
ID09IG1fbWFwcGluZ1swXS5tX3JlbmRlcmVyKSkpCi0gICAgICAgIHJlc3VsdCA9IHAgKyBtX2Fj
Y3VtdWxhdGVkT2Zmc2V0OworICAgICAgICByZXN1bHQgPSBwICsgcm91bmRlZEludFNpemUobV9h
Y2N1bXVsYXRlZE9mZnNldCk7CiAgICAgZWxzZSB7CiAgICAgICAgIFRyYW5zZm9ybVN0YXRlIHRy
YW5zZm9ybVN0YXRlKFRyYW5zZm9ybVN0YXRlOjpBcHBseVRyYW5zZm9ybURpcmVjdGlvbiwgcCk7
CiAgICAgICAgIG1hcFRvQ29udGFpbmVyKHRyYW5zZm9ybVN0YXRlLCBjb250YWluZXIpOwpAQCAt
MTI3LDcgKzEyOCw3IEBAIEZsb2F0UXVhZCBSZW5kZXJHZW9tZXRyeU1hcDo6bWFwVG9Db250YWkK
ICAgICAKICAgICBpZiAoIWhhc0ZpeGVkUG9zaXRpb25TdGVwKCkgJiYgIWhhc1RyYW5zZm9ybVN0
ZXAoKSAmJiAhaGFzTm9uVW5pZm9ybVN0ZXAoKSAmJiAoIWNvbnRhaW5lciB8fCAobV9tYXBwaW5n
LnNpemUoKSAmJiBjb250YWluZXIgPT0gbV9tYXBwaW5nWzBdLm1fcmVuZGVyZXIpKSkgewogICAg
ICAgICByZXN1bHQgPSByZWN0OwotICAgICAgICByZXN1bHQubW92ZShtX2FjY3VtdWxhdGVkT2Zm
c2V0KTsKKyAgICAgICAgcmVzdWx0Lm1vdmUocm91bmRlZEludFNpemUobV9hY2N1bXVsYXRlZE9m
ZnNldCkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIFRyYW5zZm9ybVN0YXRlIHRyYW5zZm9ybVN0
YXRlKFRyYW5zZm9ybVN0YXRlOjpBcHBseVRyYW5zZm9ybURpcmVjdGlvbiwgcmVjdC5jZW50ZXIo
KSwgcmVjdCk7CiAgICAgICAgIG1hcFRvQ29udGFpbmVyKHRyYW5zZm9ybVN0YXRlLCBjb250YWlu
ZXIpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdlb21ldHJ5TWFwLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdlb21ldHJ5TWFw
LmgJKHJldmlzaW9uIDEzNzg0NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJH
ZW9tZXRyeU1hcC5oCSh3b3JraW5nIGNvcHkpCkBAIC03NCw3ICs3NCw3IEBAIHN0cnVjdCBSZW5k
ZXJHZW9tZXRyeU1hcFN0ZXAgewogY2xhc3MgUmVuZGVyR2VvbWV0cnlNYXAgewogICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKFJlbmRlckdlb21ldHJ5TWFwKTsKIHB1YmxpYzoKLSAgICBSZW5kZXJH
ZW9tZXRyeU1hcChNYXBDb29yZGluYXRlc0ZsYWdzID0gVXNlVHJhbnNmb3JtcyB8IFNuYXBPZmZz
ZXRGb3JUcmFuc2Zvcm1zKTsKKyAgICBSZW5kZXJHZW9tZXRyeU1hcChNYXBDb29yZGluYXRlc0Zs
YWdzID0gVXNlVHJhbnNmb3Jtcyk7CiAgICAgflJlbmRlckdlb21ldHJ5TWFwKCk7CiAKICAgICBN
YXBDb29yZGluYXRlc0ZsYWdzIG1hcENvb3JkaW5hdGVzRmxhZ3MoKSBjb25zdCB7IHJldHVybiBt
X21hcENvb3JkaW5hdGVzRmxhZ3M7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJJbmxpbmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJJbmxpbmUuY3BwCShyZXZpc2lvbiAxMzc4NDYpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVySW5saW5lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE1Nyw4ICsxMTU3LDYg
QEAgdm9pZCBSZW5kZXJJbmxpbmU6Om1hcExvY2FsVG9Db250YWluZXIoYwogICAgIH0KIAogICAg
IExheW91dFNpemUgY29udGFpbmVyT2Zmc2V0ID0gb2Zmc2V0RnJvbUNvbnRhaW5lcihvLCByb3Vu
ZGVkTGF5b3V0UG9pbnQodHJhbnNmb3JtU3RhdGUubWFwcGVkUG9pbnQoKSkpOwotICAgIGlmICht
b2RlICYgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpCi0gICAgICAgIGNvbnRhaW5lck9mZnNldCA9
IHJvdW5kZWRJbnRTaXplKGNvbnRhaW5lck9mZnNldCk7CiAKICAgICBib29sIHByZXNlcnZlM0Qg
PSBtb2RlICYgVXNlVHJhbnNmb3JtcyAmJiAoby0+c3R5bGUoKS0+cHJlc2VydmVzM0QoKSB8fCBz
dHlsZSgpLT5wcmVzZXJ2ZXMzRCgpKTsKICAgICBpZiAobW9kZSAmIFVzZVRyYW5zZm9ybXMgJiYg
c2hvdWxkVXNlVHJhbnNmb3JtRnJvbUNvbnRhaW5lcihvKSkgewpAQCAtMTE5Nyw4ICsxMTk1LDYg
QEAgY29uc3QgUmVuZGVyT2JqZWN0KiBSZW5kZXJJbmxpbmU6OnB1c2hNYQogCiAgICAgYm9vbCBv
ZmZzZXREZXBlbmRzT25Qb2ludCA9IGZhbHNlOwogICAgIExheW91dFNpemUgY29udGFpbmVyT2Zm
c2V0ID0gb2Zmc2V0RnJvbUNvbnRhaW5lcihjb250YWluZXIsIExheW91dFBvaW50KCksICZvZmZz
ZXREZXBlbmRzT25Qb2ludCk7Ci0gICAgaWYgKGdlb21ldHJ5TWFwLm1hcENvb3JkaW5hdGVzRmxh
Z3MoKSAmIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKQotICAgICAgICBjb250YWluZXJPZmZzZXQg
PSByb3VuZGVkSW50U2l6ZShjb250YWluZXJPZmZzZXQpOwogCiAgICAgYm9vbCBwcmVzZXJ2ZTNE
ID0gY29udGFpbmVyLT5zdHlsZSgpLT5wcmVzZXJ2ZXMzRCgpIHx8IHN0eWxlKCktPnByZXNlcnZl
czNEKCk7CiAgICAgaWYgKHNob3VsZFVzZVRyYW5zZm9ybUZyb21Db250YWluZXIoY29udGFpbmVy
KSkgewpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaAkocmV2aXNp
b24gMTM3ODQ2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xNDIsNyArMTQyLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIExh
eW91dFJlY3QgcmVjdFdpdGhPdXRsaW5lRm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVs
T2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBMYXlvdXRVbml0IG91dGxpbmVXaWR0aCkgY29uc3Qg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVSZWN0Rm9yUmVwYWludChjb25zdCBS
ZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBMYXlvdXRSZWN0JiwgYm9v
bCBmaXhlZCkgY29uc3QgT1ZFUlJJREU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0Nv
bnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBU
cmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5lckZsaXAg
fCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJM
YXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENv
b3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5lckZsaXAsIGJvb2wqIHdhc0ZpeGVkID0gMCkg
Y29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBSZW5kZXJPYmplY3QqIHB1c2hNYXBw
aW5nVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0b3JUb1N0
b3BBdCwgUmVuZGVyR2VvbWV0cnlNYXAmKSBjb25zdCBPVkVSUklERTsKIAogICAgIHZpcnR1YWwg
VmlzaWJsZVBvc2l0aW9uIHBvc2l0aW9uRm9yUG9pbnQoY29uc3QgTGF5b3V0UG9pbnQmKTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAkocmV2aXNpb24gMTM3
ODQ2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTQzMCw3ICsxNDMwLDcgQEAgUmVuZGVyTGF5ZXIqIFJlbmRlckxheWVyOjpj
bGlwcGluZ1Jvb3RGbwogTGF5b3V0UG9pbnQgUmVuZGVyTGF5ZXI6OmFic29sdXRlVG9Db250ZW50
cyhjb25zdCBMYXlvdXRQb2ludCYgYWJzb2x1dGVQb2ludCkgY29uc3QKIHsKICAgICAvLyBXZSBk
b24ndCB1c2UgY29udmVydFRvTGF5ZXJDb29yZHMgYmVjYXVzZSBpdCBkb2Vzbid0IGtub3cgYWJv
dXQgdHJhbnNmb3JtcwotICAgIHJldHVybiByb3VuZGVkTGF5b3V0UG9pbnQocmVuZGVyZXIoKS0+
YWJzb2x1dGVUb0xvY2FsKGFic29sdXRlUG9pbnQsIFVzZVRyYW5zZm9ybXMgfCBTbmFwT2Zmc2V0
Rm9yVHJhbnNmb3JtcykpOworICAgIHJldHVybiByb3VuZGVkTGF5b3V0UG9pbnQocmVuZGVyZXIo
KS0+YWJzb2x1dGVUb0xvY2FsKGFic29sdXRlUG9pbnQsIFVzZVRyYW5zZm9ybXMpKTsKIH0KIAog
Ym9vbCBSZW5kZXJMYXllcjo6Y2Fubm90QmxpdFRvV2luZG93KCkgY29uc3QKQEAgLTIwMzgsNyAr
MjAzOCw3IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFRvKGludCB4LCBpbnQgeSkKIAogICAg
ICAgICBGbG9hdFF1YWQgcXVhZEZvckZha2VNb3VzZU1vdmVFdmVudCA9IEZsb2F0UXVhZChtX3Jl
cGFpbnRSZWN0KTsKICAgICAgICAgaWYgKHJlcGFpbnRDb250YWluZXIpCi0gICAgICAgICAgICBx
dWFkRm9yRmFrZU1vdXNlTW92ZUV2ZW50ID0gcmVwYWludENvbnRhaW5lci0+bG9jYWxUb0Fic29s
dXRlUXVhZChxdWFkRm9yRmFrZU1vdXNlTW92ZUV2ZW50LCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jt
cyk7CisgICAgICAgICAgICBxdWFkRm9yRmFrZU1vdXNlTW92ZUV2ZW50ID0gcmVwYWludENvbnRh
aW5lci0+bG9jYWxUb0Fic29sdXRlUXVhZChxdWFkRm9yRmFrZU1vdXNlTW92ZUV2ZW50KTsKICAg
ICAgICAgZnJhbWUtPmV2ZW50SGFuZGxlcigpLT5kaXNwYXRjaEZha2VNb3VzZU1vdmVFdmVudFNv
b25JblF1YWQocXVhZEZvckZha2VNb3VzZU1vdmVFdmVudCk7CiAgICAgfQogCkBAIC00NjM5LDcg
KzQ2MzksNyBAQCBMYXlvdXRSZWN0IFJlbmRlckxheWVyOjpjaGlsZHJlbkNsaXBSZWN0CiAgICAg
Q2xpcFJlY3RzQ29udGV4dCBjbGlwUmVjdHNDb250ZXh0KGNsaXBwaW5nUm9vdExheWVyLCAwLCBU
ZW1wb3JhcnlDbGlwUmVjdHMpOwogICAgIC8vIE5lZWQgdG8gdXNlIHRlbXBvcmFyeSBjbGlwIHJl
Y3RzLCBiZWNhdXNlIHRoZSB2YWx1ZSBvZiAnZG9udENsaXBUb092ZXJmbG93JyBtYXkgYmUgZGlm
ZmVyZW50IGZyb20gdGhlIHBhaW50aW5nIHBhdGggKDxyZGFyOi8vcHJvYmxlbS8xMTg0NDkwOT4p
LgogICAgIGNhbGN1bGF0ZVJlY3RzKGNsaXBSZWN0c0NvbnRleHQsIHJlbmRlclZpZXctPnVuc2Nh
bGVkRG9jdW1lbnRSZWN0KCksIGxheWVyQm91bmRzLCBiYWNrZ3JvdW5kUmVjdCwgZm9yZWdyb3Vu
ZFJlY3QsIG91dGxpbmVSZWN0KTsKLSAgICByZXR1cm4gY2xpcHBpbmdSb290TGF5ZXItPnJlbmRl
cmVyKCktPmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRRdWFkKGZvcmVncm91bmRSZWN0LnJlY3Qo
KSksIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKS5lbmNsb3NpbmdCb3VuZGluZ0JveCgpOworICAg
IHJldHVybiBjbGlwcGluZ1Jvb3RMYXllci0+cmVuZGVyZXIoKS0+bG9jYWxUb0Fic29sdXRlUXVh
ZChGbG9hdFF1YWQoZm9yZWdyb3VuZFJlY3QucmVjdCgpKSkuZW5jbG9zaW5nQm91bmRpbmdCb3go
KTsKIH0KIAogTGF5b3V0UmVjdCBSZW5kZXJMYXllcjo6c2VsZkNsaXBSZWN0KCkgY29uc3QKQEAg
LTQ2NTIsNyArNDY1Miw3IEBAIExheW91dFJlY3QgUmVuZGVyTGF5ZXI6OnNlbGZDbGlwUmVjdCgp
IGMKICAgICBDbGlwUmVjdCBiYWNrZ3JvdW5kUmVjdCwgZm9yZWdyb3VuZFJlY3QsIG91dGxpbmVS
ZWN0OwogICAgIENsaXBSZWN0c0NvbnRleHQgY2xpcFJlY3RzQ29udGV4dChjbGlwcGluZ1Jvb3RM
YXllciwgMCwgUGFpbnRpbmdDbGlwUmVjdHMpOwogICAgIGNhbGN1bGF0ZVJlY3RzKGNsaXBSZWN0
c0NvbnRleHQsIHJlbmRlclZpZXctPmRvY3VtZW50UmVjdCgpLCBsYXllckJvdW5kcywgYmFja2dy
b3VuZFJlY3QsIGZvcmVncm91bmRSZWN0LCBvdXRsaW5lUmVjdCk7Ci0gICAgcmV0dXJuIGNsaXBw
aW5nUm9vdExheWVyLT5yZW5kZXJlcigpLT5sb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UXVhZChi
YWNrZ3JvdW5kUmVjdC5yZWN0KCkpLCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcykuZW5jbG9zaW5n
Qm91bmRpbmdCb3goKTsKKyAgICByZXR1cm4gY2xpcHBpbmdSb290TGF5ZXItPnJlbmRlcmVyKCkt
PmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRRdWFkKGJhY2tncm91bmRSZWN0LnJlY3QoKSkpLmVu
Y2xvc2luZ0JvdW5kaW5nQm94KCk7CiB9CiAKIExheW91dFJlY3QgUmVuZGVyTGF5ZXI6OmxvY2Fs
Q2xpcFJlY3QoKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyQmFja2luZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQmFja2luZy5jcHAJKHJldmlzaW9uIDEzNzg0NikKKysrIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMDY0
LDcgKzIwNjQsNyBAQCBib29sIFJlbmRlckxheWVyQmFja2luZzo6Y29udGVudHNWaXNpYmxlCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIEludFJlY3QgdmlzaWJsZUNvbnRlbnRSZWN0KHZp
ZXctPnZpc2libGVDb250ZW50UmVjdCgpKTsKLSAgICBGbG9hdFF1YWQgYWJzb2x1dGVDb250ZW50
UXVhZCA9IHJlbmRlcmVyKCktPmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRSZWN0KGxvY2FsQ29u
dGVudFJlY3QpLCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jtcyk7CisgICAgRmxvYXRRdWFkIGFic29s
dXRlQ29udGVudFF1YWQgPSByZW5kZXJlcigpLT5sb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UmVj
dChsb2NhbENvbnRlbnRSZWN0KSk7CiAgICAgcmV0dXJuIGFic29sdXRlQ29udGVudFF1YWQuZW5j
bG9zaW5nQm91bmRpbmdCb3goKS5pbnRlcnNlY3RzKHZpc2libGVDb250ZW50UmVjdCk7CiB9CiAj
ZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xz
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWFD
b250cm9scy5jcHAJKHJldmlzaW9uIDEzNzg0NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJNZWRpYUNvbnRyb2xzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjE1LDcgKzIxNSw3
IEBAIEludFBvaW50IFJlbmRlck1lZGlhQ29udHJvbHM6OnZvbHVtZVNsaWQKIAogICAgIGZsb2F0
IHpvb21MZXZlbCA9IG11dGVCdXR0b25Cb3gtPnN0eWxlKCktPmVmZmVjdGl2ZVpvb20oKTsKICAg
ICBpbnQgeSA9IHlPZmZzZXQgKiB6b29tTGV2ZWwgKyBtdXRlQnV0dG9uQm94LT5waXhlbFNuYXBw
ZWRPZmZzZXRIZWlnaHQoKSAtIHNpemUuaGVpZ2h0KCk7Ci0gICAgRmxvYXRQb2ludCBhYnNQb2lu
dCA9IG11dGVCdXR0b25Cb3gtPmxvY2FsVG9BYnNvbHV0ZShGbG9hdFBvaW50KG11dGVCdXR0b25C
b3gtPnBpeGVsU25hcHBlZE9mZnNldExlZnQoKSwgeSksIElzRml4ZWQgfCBVc2VUcmFuc2Zvcm1z
IHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMpOworICAgIEZsb2F0UG9pbnQgYWJzUG9pbnQgPSBt
dXRlQnV0dG9uQm94LT5sb2NhbFRvQWJzb2x1dGUoRmxvYXRQb2ludChtdXRlQnV0dG9uQm94LT5w
aXhlbFNuYXBwZWRPZmZzZXRMZWZ0KCksIHkpLCBJc0ZpeGVkIHwgVXNlVHJhbnNmb3Jtcyk7CiAg
ICAgaWYgKGFic1BvaW50LnkoKSA8IDApCiAgICAgICAgIHkgPSBtdXRlQnV0dG9uQm94LT5waXhl
bFNuYXBwZWRIZWlnaHQoKTsKICAgICByZXR1cm4gSW50UG9pbnQoeE9mZnNldCAqIHpvb21MZXZl
bCwgeSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5j
cHAJKHJldmlzaW9uIDEzNzg0NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJN
ZW51TGlzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyMCw3ICszMjAsNyBAQCB2b2lkIFJlbmRl
ck1lbnVMaXN0OjpzaG93UG9wdXAoKQogCiAgICAgLy8gQ29tcHV0ZSB0aGUgdG9wIGxlZnQgdGFr
aW5nIHRyYW5zZm9ybXMgaW50byBhY2NvdW50LCBidXQgdXNlCiAgICAgLy8gdGhlIGFjdHVhbCB3
aWR0aCBvZiB0aGUgZWxlbWVudCB0byBzaXplIHRoZSBwb3B1cC4KLSAgICBGbG9hdFBvaW50IGFi
c1RvcExlZnQgPSBsb2NhbFRvQWJzb2x1dGUoRmxvYXRQb2ludCgpLCBVc2VUcmFuc2Zvcm1zIHwg
U25hcE9mZnNldEZvclRyYW5zZm9ybXMpOworICAgIEZsb2F0UG9pbnQgYWJzVG9wTGVmdCA9IGxv
Y2FsVG9BYnNvbHV0ZShGbG9hdFBvaW50KCksIFVzZVRyYW5zZm9ybXMpOwogICAgIEludFJlY3Qg
YWJzQm91bmRzID0gYWJzb2x1dGVCb3VuZGluZ0JveFJlY3RJZ25vcmluZ1RyYW5zZm9ybXMoKTsK
ICAgICBhYnNCb3VuZHMuc2V0TG9jYXRpb24ocm91bmRlZEludFBvaW50KGFic1RvcExlZnQpKTsK
ICAgICBIVE1MU2VsZWN0RWxlbWVudCogc2VsZWN0ID0gc2VsZWN0RWxlbWVudCgpOwpJbmRleDog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAJKHJldmlzaW9uIDEzNzg0
NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xMjIwLDcgKzEyMjAsNyBAQCB2b2lkIFJlbmRlck9iamVjdDo6YWJzb2x1dGVG
b2N1c1JpbmdRdWFkCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7CiAg
ICAgICAgIEludFJlY3QgcmVjdCA9IHJlY3RzW2ldOwogICAgICAgICByZWN0Lm1vdmUoLWFic29s
dXRlUG9pbnQueCgpLCAtYWJzb2x1dGVQb2ludC55KCkpOwotICAgICAgICBxdWFkcy5hcHBlbmQo
bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFF1YWQocmVjdCksIFNuYXBPZmZzZXRGb3JUcmFuc2Zv
cm1zKSk7CisgICAgICAgIHF1YWRzLmFwcGVuZChsb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UXVh
ZChyZWN0KSkpOwogICAgIH0KIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJPYmplY3QuaAkocmV2aXNpb24gMTM3ODQ2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDksOCArMTA5LDcgQEAgZW51bSBN
YXJraW5nQmVoYXZpb3IgewogZW51bSBNYXBDb29yZGluYXRlc01vZGUgewogICAgIElzRml4ZWQg
PSAxIDw8IDAsCiAgICAgVXNlVHJhbnNmb3JtcyA9IDEgPDwgMSwKLSAgICBBcHBseUNvbnRhaW5l
ckZsaXAgPSAxIDw8IDIsCi0gICAgU25hcE9mZnNldEZvclRyYW5zZm9ybXMgPSAxIDw8IDMKKyAg
ICBBcHBseUNvbnRhaW5lckZsaXAgPSAxIDw8IDIKIH07CiB0eXBlZGVmIHVuc2lnbmVkIE1hcENv
b3JkaW5hdGVzRmxhZ3M7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4
dC5jcHAJKHJldmlzaW9uIDEzNzg0NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcxLDEyICszNzEsMTIgQEAgdm9pZCBSZW5k
ZXJUZXh0OjphYnNvbHV0ZVJlY3RzRm9yUmFuZ2UoVgogICAgICAgICAgICAgICAgICAgICByLnNl
dFgoc2VsZWN0aW9uUmVjdC54KCkpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIHJlY3RzLmFwcGVuZChsb2NhbFRvQWJzb2x1dGVRdWFkKHIsIFNuYXBPZmZz
ZXRGb3JUcmFuc2Zvcm1zLCB3YXNGaXhlZCkuZW5jbG9zaW5nQm91bmRpbmdCb3goKSk7CisgICAg
ICAgICAgICByZWN0cy5hcHBlbmQobG9jYWxUb0Fic29sdXRlUXVhZChyLCAwLCB3YXNGaXhlZCku
ZW5jbG9zaW5nQm91bmRpbmdCb3goKSk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAv
LyBGSVhNRTogVGhpcyBjb2RlIGlzIHdyb25nLiBJdCdzIGNvbnZlcnRpbmcgbG9jYWwgdG8gYWJz
b2x1dGUgdHdpY2UuIGh0dHA6Ly93ZWJraXQub3JnL2IvNjU3MjIKICAgICAgICAgICAgIEZsb2F0
UmVjdCByZWN0ID0gbG9jYWxRdWFkRm9yVGV4dEJveChib3gsIHN0YXJ0LCBlbmQsIHVzZVNlbGVj
dGlvbkhlaWdodCk7CiAgICAgICAgICAgICBpZiAoIXJlY3QuaXNaZXJvKCkpCi0gICAgICAgICAg
ICAgICAgcmVjdHMuYXBwZW5kKGxvY2FsVG9BYnNvbHV0ZVF1YWQocmVjdCwgU25hcE9mZnNldEZv
clRyYW5zZm9ybXMsIHdhc0ZpeGVkKS5lbmNsb3NpbmdCb3VuZGluZ0JveCgpKTsKKyAgICAgICAg
ICAgICAgICByZWN0cy5hcHBlbmQobG9jYWxUb0Fic29sdXRlUXVhZChyZWN0LCAwLCB3YXNGaXhl
ZCkuZW5jbG9zaW5nQm91bmRpbmdCb3goKSk7CiAgICAgICAgIH0KICAgICB9CiB9CkBAIC00MTks
NyArNDE5LDcgQEAgdm9pZCBSZW5kZXJUZXh0OjphYnNvbHV0ZVF1YWRzKFZlY3RvcjxGbAogICAg
ICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIGJvdW5kYXJpZXMuc2V0SGVpZ2h0KGVsbGlw
c2lzUmVjdC5tYXhZKCkgLSBib3VuZGFyaWVzLnkoKSk7CiAgICAgICAgIH0KLSAgICAgICAgcXVh
ZHMuYXBwZW5kKGxvY2FsVG9BYnNvbHV0ZVF1YWQoYm91bmRhcmllcywgU25hcE9mZnNldEZvclRy
YW5zZm9ybXMsIHdhc0ZpeGVkKSk7CisgICAgICAgIHF1YWRzLmFwcGVuZChsb2NhbFRvQWJzb2x1
dGVRdWFkKGJvdW5kYXJpZXMsIDAsIHdhc0ZpeGVkKSk7CiAgICAgfQogfQogICAgIApAQCAtNDU0
LDExICs0NTQsMTEgQEAgdm9pZCBSZW5kZXJUZXh0OjphYnNvbHV0ZVF1YWRzRm9yUmFuZ2UoVgog
ICAgICAgICAgICAgICAgICAgICByLnNldFgoc2VsZWN0aW9uUmVjdC54KCkpOwogICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHF1YWRzLmFwcGVuZChsb2NhbFRv
QWJzb2x1dGVRdWFkKHIsIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCB3YXNGaXhlZCkpOworICAg
ICAgICAgICAgcXVhZHMuYXBwZW5kKGxvY2FsVG9BYnNvbHV0ZVF1YWQociwgMCwgd2FzRml4ZWQp
KTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIEZsb2F0UmVjdCByZWN0ID0gbG9jYWxR
dWFkRm9yVGV4dEJveChib3gsIHN0YXJ0LCBlbmQsIHVzZVNlbGVjdGlvbkhlaWdodCk7CiAgICAg
ICAgICAgICBpZiAoIXJlY3QuaXNaZXJvKCkpCi0gICAgICAgICAgICAgICAgcXVhZHMuYXBwZW5k
KGxvY2FsVG9BYnNvbHV0ZVF1YWQocmVjdCwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMsIHdhc0Zp
eGVkKSk7CisgICAgICAgICAgICAgICAgcXVhZHMuYXBwZW5kKGxvY2FsVG9BYnNvbHV0ZVF1YWQo
cmVjdCwgMCwgd2FzRml4ZWQpKTsKICAgICAgICAgfQogICAgIH0KIH0KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcAkocmV2aXNpb24gMTM3ODQ2KQorKysgU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NTIzLDcgKzUyMyw3IEBAIFN0cmluZyBSZW5kZXJUaGVtZTo6Zm9ybWF0TWVkaWFDb250cm9sc1IK
IEludFBvaW50IFJlbmRlclRoZW1lOjp2b2x1bWVTbGlkZXJPZmZzZXRGcm9tTXV0ZUJ1dHRvbihS
ZW5kZXJCb3gqIG11dGVCdXR0b25Cb3gsIGNvbnN0IEludFNpemUmIHNpemUpIGNvbnN0CiB7CiAg
ICAgaW50IHkgPSAtc2l6ZS5oZWlnaHQoKTsKLSAgICBGbG9hdFBvaW50IGFic1BvaW50ID0gbXV0
ZUJ1dHRvbkJveC0+bG9jYWxUb0Fic29sdXRlKEZsb2F0UG9pbnQobXV0ZUJ1dHRvbkJveC0+cGl4
ZWxTbmFwcGVkT2Zmc2V0TGVmdCgpLCB5KSwgSXNGaXhlZCB8IFVzZVRyYW5zZm9ybXMgfCBTbmFw
T2Zmc2V0Rm9yVHJhbnNmb3Jtcyk7CisgICAgRmxvYXRQb2ludCBhYnNQb2ludCA9IG11dGVCdXR0
b25Cb3gtPmxvY2FsVG9BYnNvbHV0ZShGbG9hdFBvaW50KG11dGVCdXR0b25Cb3gtPnBpeGVsU25h
cHBlZE9mZnNldExlZnQoKSwgeSksIElzRml4ZWQgfCBVc2VUcmFuc2Zvcm1zKTsKICAgICBpZiAo
YWJzUG9pbnQueSgpIDwgMCkKICAgICAgICAgeSA9IG11dGVCdXR0b25Cb3gtPmhlaWdodCgpOwog
ICAgIHJldHVybiBJbnRQb2ludCgwLCB5KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJWaWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVmlldy5jcHAJKHJldmlzaW9uIDEzNzg0NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJWaWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTM3LDcgKzUzNyw3IEBAIElu
dFJlY3QgUmVuZGVyVmlldzo6c2VsZWN0aW9uQm91bmRzKGJvb2wKICAgICAgICAgLy8gUmVuZGVy
U2VsZWN0aW9uSW5mbzo6cmVjdCgpIGlzIGluIHRoZSBjb29yZGluYXRlcyBvZiB0aGUgcmVwYWlu
dENvbnRhaW5lciwgc28gbWFwIHRvIHBhZ2UgY29vcmRpbmF0ZXMuCiAgICAgICAgIExheW91dFJl
Y3QgY3VyclJlY3QgPSBpbmZvLT5yZWN0KCk7CiAgICAgICAgIGlmIChSZW5kZXJMYXllck1vZGVs
T2JqZWN0KiByZXBhaW50Q29udGFpbmVyID0gaW5mby0+cmVwYWludENvbnRhaW5lcigpKSB7Ci0g
ICAgICAgICAgICBGbG9hdFF1YWQgYWJzUXVhZCA9IHJlcGFpbnRDb250YWluZXItPmxvY2FsVG9B
YnNvbHV0ZVF1YWQoRmxvYXRSZWN0KGN1cnJSZWN0KSwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMp
OworICAgICAgICAgICAgRmxvYXRRdWFkIGFic1F1YWQgPSByZXBhaW50Q29udGFpbmVyLT5sb2Nh
bFRvQWJzb2x1dGVRdWFkKEZsb2F0UmVjdChjdXJyUmVjdCkpOwogICAgICAgICAgICAgY3VyclJl
Y3QgPSBhYnNRdWFkLmVuY2xvc2luZ0JvdW5kaW5nQm94KCk7IAogICAgICAgICB9CiAgICAgICAg
IHNlbFJlY3QudW5pdGUoY3VyclJlY3QpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVmlldy5oCShyZXZpc2lvbiAxMzc4NDYpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMjksNyArMjI5LDcgQEAgcHVibGljOgog
ICAgIGJvb2wgaGFzUmVuZGVyQ291bnRlcnMoKSB7IHJldHVybiBtX3JlbmRlckNvdW50ZXJDb3Vu
dDsgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIo
Y29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3Jt
U3RhdGUmLCBNYXBDb29yZGluYXRlc0ZsYWdzID0gQXBwbHlDb250YWluZXJGbGlwIHwgU25hcE9m
ZnNldEZvclRyYW5zZm9ybXMsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3QgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBDb29yZGluYXRl
c0ZsYWdzID0gQXBwbHlDb250YWluZXJGbGlwLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9W
RVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgUmVuZGVyT2JqZWN0KiBwdXNoTWFwcGluZ1RvQ29u
dGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJl
bmRlckdlb21ldHJ5TWFwJikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIG1hcEFi
c29sdXRlVG9Mb2NhbFBvaW50KE1hcENvb3JkaW5hdGVzRmxhZ3MsIFRyYW5zZm9ybVN0YXRlJikg
Y29uc3Q7CiAgICAgdmlydHVhbCBib29sIHJlcXVpcmVzQ29sdW1ucyhpbnQgZGVzaXJlZENvbHVt
bkNvdW50KSBjb25zdCBPVkVSUklERTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJXaWRnZXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJXaWRnZXQuY3BwCShyZXZpc2lvbiAxMzc4NDYpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTY5LDcgKzE2OSw3IEBA
IGJvb2wgUmVuZGVyV2lkZ2V0Ojp1cGRhdGVXaWRnZXRHZW9tZXRyeSgKICAgICBpZiAoIW1fd2lk
Z2V0LT50cmFuc2Zvcm1zQWZmZWN0RnJhbWVSZWN0KCkpCiAgICAgICAgIHJldHVybiBzZXRXaWRn
ZXRHZW9tZXRyeShhYnNvbHV0ZUNvbnRlbnRCb3goKSk7CiAKLSAgICBMYXlvdXRSZWN0IGFic29s
dXRlQ29udGVudEJveChsb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UXVhZChjb250ZW50Qm94KSwg
U25hcE9mZnNldEZvclRyYW5zZm9ybXMpLmJvdW5kaW5nQm94KCkpOworICAgIExheW91dFJlY3Qg
YWJzb2x1dGVDb250ZW50Qm94KGxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRRdWFkKGNvbnRlbnRC
b3gpKS5ib3VuZGluZ0JveCgpKTsKICAgICBpZiAobV93aWRnZXQtPmlzRnJhbWVWaWV3KCkpIHsK
ICAgICAgICAgY29udGVudEJveC5zZXRMb2NhdGlvbihhYnNvbHV0ZUNvbnRlbnRCb3gubG9jYXRp
b24oKSk7CiAgICAgICAgIHJldHVybiBzZXRXaWRnZXRHZW9tZXRyeShjb250ZW50Qm94KTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9iamVjdC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdG
b3JlaWduT2JqZWN0LmNwcAkocmV2aXNpb24gMTM3ODQ2KQorKysgU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWduT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTkzLDkgKzE5Myw5IEBAIGJvb2wgUmVuZGVyU1ZHRm9yZWlnbk9iamVjdDo6bm9kZUF0UG9pbnQK
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgUmVuZGVyU1ZHRm9yZWlnbk9iamVjdDo6bWFw
TG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29u
dGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIE1hcENvb3JkaW5hdGVzRmxh
Z3MgbW9kZSwgYm9vbCogd2FzRml4ZWQpIGNvbnN0Cit2b2lkIFJlbmRlclNWR0ZvcmVpZ25PYmpl
Y3Q6Om1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVw
YWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBDb29yZGlu
YXRlc0ZsYWdzLCBib29sKiB3YXNGaXhlZCkgY29uc3QKIHsKLSAgICBTVkdSZW5kZXJTdXBwb3J0
OjptYXBMb2NhbFRvQ29udGFpbmVyKHRoaXMsIHJlcGFpbnRDb250YWluZXIsIHRyYW5zZm9ybVN0
YXRlLCBtb2RlICYgU25hcE9mZnNldEZvclRyYW5zZm9ybXMsIHdhc0ZpeGVkKTsKKyAgICBTVkdS
ZW5kZXJTdXBwb3J0OjptYXBMb2NhbFRvQ29udGFpbmVyKHRoaXMsIHJlcGFpbnRDb250YWluZXIs
IHRyYW5zZm9ybVN0YXRlLCB3YXNGaXhlZCk7CiB9CiAKIGNvbnN0IFJlbmRlck9iamVjdCogUmVu
ZGVyU1ZHRm9yZWlnbk9iamVjdDo6cHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJM
YXllck1vZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1hcCYgZ2Vv
bWV0cnlNYXApIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR0ZvcmVpZ25PYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR0ZvcmVpZ25PYmplY3QuaAkocmV2aXNpb24gMTM3ODQ2KQorKysgU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWduT2JqZWN0LmgJKHdvcmtp
bmcgY29weSkKQEAgLTU0LDcgKzU0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBub2Rl
QXRQb2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYsIEhpdFRlc3RSZXN1bHQmLCBjb25zdCBIaXRU
ZXN0TG9jYXRpb24mIGxvY2F0aW9uSW5Db250YWluZXIsIGNvbnN0IExheW91dFBvaW50JiBhY2N1
bXVsYXRlZE9mZnNldCwgSGl0VGVzdEFjdGlvbikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29s
IGlzU1ZHRm9yZWlnbk9iamVjdCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAotICAgIHZpcnR1
YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3Qq
IHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29vcmRpbmF0ZXNGbGFncyA9
IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3YXNG
aXhlZCA9IDApIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29u
dGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRy
YW5zZm9ybVN0YXRlJiwgTWFwQ29vcmRpbmF0ZXNGbGFncyA9IEFwcGx5Q29udGFpbmVyRmxpcCwg
Ym9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGNvbnN0IFJl
bmRlck9iamVjdCogcHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVs
T2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1hcCYpIGNvbnN0IE9WRVJS
SURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc1RyYW5zZm9ybVVwZGF0ZSgpIHsgbV9uZWVk
c1RyYW5zZm9ybVVwZGF0ZSA9IHRydWU7IH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmNwcAkocmV2aXNpb24gMTM3ODQ2KQorKysg
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC03OSw5ICs3OSw5IEBAIHZvaWQgUmVuZGVyU1ZHSW5saW5lOjpjb21wdXRlRmxv
YXRSZWN0Rm8KICAgICBTVkdSZW5kZXJTdXBwb3J0Ojpjb21wdXRlRmxvYXRSZWN0Rm9yUmVwYWlu
dCh0aGlzLCByZXBhaW50Q29udGFpbmVyLCByZXBhaW50UmVjdCwgZml4ZWQpOwogfQogCi12b2lk
IFJlbmRlclNWR0lubGluZTo6bWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1v
ZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3Rh
dGUsIE1hcENvb3JkaW5hdGVzRmxhZ3MgbW9kZSwgYm9vbCogd2FzRml4ZWQpIGNvbnN0Cit2b2lk
IFJlbmRlclNWR0lubGluZTo6bWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1v
ZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3Rh
dGUsIE1hcENvb3JkaW5hdGVzRmxhZ3MsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAogewotICAgIFNW
R1JlbmRlclN1cHBvcnQ6Om1hcExvY2FsVG9Db250YWluZXIodGhpcywgcmVwYWludENvbnRhaW5l
ciwgdHJhbnNmb3JtU3RhdGUsIG1vZGUgJiBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jtcywgd2FzRml4
ZWQpOworICAgIFNWR1JlbmRlclN1cHBvcnQ6Om1hcExvY2FsVG9Db250YWluZXIodGhpcywgcmVw
YWludENvbnRhaW5lciwgdHJhbnNmb3JtU3RhdGUsIHdhc0ZpeGVkKTsKIH0KIAogY29uc3QgUmVu
ZGVyT2JqZWN0KiBSZW5kZXJTVkdJbmxpbmU6OnB1c2hNYXBwaW5nVG9Db250YWluZXIoY29uc3Qg
UmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogYW5jZXN0b3JUb1N0b3BBdCwgUmVuZGVyR2VvbWV0cnlN
YXAmIGdlb21ldHJ5TWFwKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdJbmxpbmUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR0lubGluZS5oCShyZXZpc2lvbiAxMzc4NDYpCisrKyBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00
Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBjbGlwcGVkT3Zl
cmZsb3dSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50
Q29udGFpbmVyKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZUZsb2F0
UmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRh
aW5lciwgRmxvYXRSZWN0JiwgYm9vbCBmaXhlZCA9IGZhbHNlKSBjb25zdCBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVs
T2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVz
RmxhZ3MgPSBBcHBseUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9v
bCogd2FzRml4ZWQgPSAwKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbWFwTG9j
YWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFp
bmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5l
ckZsaXAsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBj
b25zdCBSZW5kZXJPYmplY3QqIHB1c2hNYXBwaW5nVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5
ZXJNb2RlbE9iamVjdCogYW5jZXN0b3JUb1N0b3BBdCwgUmVuZGVyR2VvbWV0cnlNYXAmKSBjb25z
dCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgYWJzb2x1dGVRdWFkcyhWZWN0b3I8RmxvYXRR
dWFkPiYsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdDsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5jcHAJKHJldmlzaW9u
IDEzNzg0NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxP
YmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw5ICs1Nyw5IEBAIHZvaWQgUmVuZGVyU1ZH
TW9kZWxPYmplY3Q6OmNvbXB1dGVGbG9hdFIKICAgICBTVkdSZW5kZXJTdXBwb3J0Ojpjb21wdXRl
RmxvYXRSZWN0Rm9yUmVwYWludCh0aGlzLCByZXBhaW50Q29udGFpbmVyLCByZXBhaW50UmVjdCwg
Zml4ZWQpOwogfQogCi12b2lkIFJlbmRlclNWR01vZGVsT2JqZWN0OjptYXBMb2NhbFRvQ29udGFp
bmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5z
Zm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlLCBib29s
KiB3YXNGaXhlZCkgY29uc3QKK3ZvaWQgUmVuZGVyU1ZHTW9kZWxPYmplY3Q6Om1hcExvY2FsVG9D
b250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwg
VHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBNYXBDb29yZGluYXRlc0ZsYWdzLCBib29s
KiB3YXNGaXhlZCkgY29uc3QKIHsKLSAgICBTVkdSZW5kZXJTdXBwb3J0OjptYXBMb2NhbFRvQ29u
dGFpbmVyKHRoaXMsIHJlcGFpbnRDb250YWluZXIsIHRyYW5zZm9ybVN0YXRlLCBtb2RlICYgU25h
cE9mZnNldEZvclRyYW5zZm9ybXMsIHdhc0ZpeGVkKTsKKyAgICBTVkdSZW5kZXJTdXBwb3J0Ojpt
YXBMb2NhbFRvQ29udGFpbmVyKHRoaXMsIHJlcGFpbnRDb250YWluZXIsIHRyYW5zZm9ybVN0YXRl
LCB3YXNGaXhlZCk7CiB9CiAKIGNvbnN0IFJlbmRlck9iamVjdCogUmVuZGVyU1ZHTW9kZWxPYmpl
Y3Q6OnB1c2hNYXBwaW5nVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCog
YW5jZXN0b3JUb1N0b3BBdCwgUmVuZGVyR2VvbWV0cnlNYXAmIGdlb21ldHJ5TWFwKSBjb25zdApJ
bmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9k
ZWxPYmplY3QuaAkocmV2aXNpb24gMTM3ODQ2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC01OCw3ICs1OCw3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgYWJzb2x1dGVSZWN0cyhWZWN0b3I8SW50UmVj
dD4mLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQpIGNvbnN0OwogICAgIHZp
cnR1YWwgdm9pZCBhYnNvbHV0ZVF1YWRzKFZlY3RvcjxGbG9hdFF1YWQ+JiwgYm9vbCogd2FzRml4
ZWQpIGNvbnN0OwogCi0gICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoY29uc3Qg
UmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUm
LCBNYXBDb29yZGluYXRlc0ZsYWdzID0gQXBwbHlDb250YWluZXJGbGlwIHwgU25hcE9mZnNldEZv
clRyYW5zZm9ybXMsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmly
dHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVj
dCogcmVwYWludENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBNYXBDb29yZGluYXRlc0ZsYWdz
ID0gQXBwbHlDb250YWluZXJGbGlwLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURF
OwogICAgIHZpcnR1YWwgY29uc3QgUmVuZGVyT2JqZWN0KiBwdXNoTWFwcGluZ1RvQ29udGFpbmVy
KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdl
b21ldHJ5TWFwJikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHN0eWxlV2lsbENo
YW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBuZXdTdHlsZSk7CiAgICAg
dmlydHVhbCB2b2lkIHN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVy
U3R5bGUqIG9sZFN0eWxlKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHUm9vdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHUm9vdC5oCShyZXZpc2lvbiAxMzc4NDYpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuaAkod29ya2luZyBjb3B5KQpAQCAtMTA0LDcgKzEwNCw3
IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBMYXlvdXRSZWN0IGNsaXBwZWRPdmVyZmxvd1JlY3RG
b3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIp
IGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlRmxvYXRSZWN0Rm9yUmVw
YWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBGbG9h
dFJlY3QmIHJlcGFpbnRSZWN0LCBib29sIGZpeGVkKSBjb25zdCBPVkVSUklERTsKIAotICAgIHZp
cnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29vcmRpbmF0ZXNGbGFn
cyA9IEFwcGx5Q29udGFpbmVyRmxpcCB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zLCBib29sKiB3
YXNGaXhlZCA9IDApIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRv
Q29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIs
IFRyYW5zZm9ybVN0YXRlJiwgTWFwQ29vcmRpbmF0ZXNGbGFncyA9IEFwcGx5Q29udGFpbmVyRmxp
cCwgYm9vbCogd2FzRml4ZWQgPSAwKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGNvbnN0
IFJlbmRlck9iamVjdCogcHVzaE1hcHBpbmdUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1v
ZGVsT2JqZWN0KiBhbmNlc3RvclRvU3RvcEF0LCBSZW5kZXJHZW9tZXRyeU1hcCYpIGNvbnN0IE9W
RVJSSURFOwogCiAgICAgdmlydHVhbCBib29sIGNhbkJlU2VsZWN0aW9uTGVhZigpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1RleHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHVGV4dC5jcHAJKHJldmlzaW9uIDEzNzg0NikKKysrIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExMSw5ICsx
MTEsOSBAQCB2b2lkIFJlbmRlclNWR1RleHQ6OmNvbXB1dGVGbG9hdFJlY3RGb3JSCiAgICAgU1ZH
UmVuZGVyU3VwcG9ydDo6Y29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQodGhpcywgcmVwYWludENv
bnRhaW5lciwgcmVwYWludFJlY3QsIGZpeGVkKTsKIH0KIAotdm9pZCBSZW5kZXJTVkdUZXh0Ojpt
YXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRD
b250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgTWFwQ29vcmRpbmF0ZXNG
bGFncyBtb2RlLCBib29sKiB3YXNGaXhlZCkgY29uc3QKK3ZvaWQgUmVuZGVyU1ZHVGV4dDo6bWFw
TG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29u
dGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIE1hcENvb3JkaW5hdGVzRmxh
Z3MsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAogewotICAgIFNWR1JlbmRlclN1cHBvcnQ6Om1hcExv
Y2FsVG9Db250YWluZXIodGhpcywgcmVwYWludENvbnRhaW5lciwgdHJhbnNmb3JtU3RhdGUsIG1v
ZGUgJiBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jtcywgd2FzRml4ZWQpOworICAgIFNWR1JlbmRlclN1
cHBvcnQ6Om1hcExvY2FsVG9Db250YWluZXIodGhpcywgcmVwYWludENvbnRhaW5lciwgdHJhbnNm
b3JtU3RhdGUsIHdhc0ZpeGVkKTsKIH0KIAogY29uc3QgUmVuZGVyT2JqZWN0KiBSZW5kZXJTVkdU
ZXh0OjpwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3Qq
IGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJiBnZW9tZXRyeU1hcCkgY29uc3QK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5oCShy
ZXZpc2lvbiAxMzc4NDYpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R1RleHQuaAkod29ya2luZyBjb3B5KQpAQCAtNzUsNyArNzUsNyBAQCBwcml2YXRlOgogICAgIHZp
cnR1YWwgdm9pZCBjb21wdXRlUmVjdEZvclJlcGFpbnQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9i
amVjdCogcmVwYWludENvbnRhaW5lciwgTGF5b3V0UmVjdCYsIGJvb2wgZml4ZWQgPSBmYWxzZSkg
Y29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVGbG9hdFJlY3RGb3JSZXBh
aW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIEZsb2F0
UmVjdCYsIGJvb2wgZml4ZWQgPSBmYWxzZSkgY29uc3QgT1ZFUlJJREU7CiAKLSAgICB2aXJ0dWFs
IHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBy
ZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBB
cHBseUNvbnRhaW5lckZsaXAgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcywgYm9vbCogd2FzRml4
ZWQgPSAwKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRh
aW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFu
c2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MgPSBBcHBseUNvbnRhaW5lckZsaXAsIGJv
b2wqIHdhc0ZpeGVkID0gMCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBSZW5k
ZXJPYmplY3QqIHB1c2hNYXBwaW5nVG9Db250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9i
amVjdCogYW5jZXN0b3JUb1N0b3BBdCwgUmVuZGVyR2VvbWV0cnlNYXAmKSBjb25zdCBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIHZvaWQgYWRkQ2hpbGQoUmVuZGVyT2JqZWN0KiBjaGlsZCwgUmVuZGVy
T2JqZWN0KiBiZWZvcmVDaGlsZCA9IDApOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVDaGlsZChS
ZW5kZXJPYmplY3QqKSBPVkVSUklERTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvU1ZHUmVuZGVyU3VwcG9ydC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcAkocmV2aXNpb24gMTM3ODQ2KQorKysgU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtODQsNyArODQsNyBAQCB2b2lkIFNWR1JlbmRlclN1cHBvcnQ6OmNvbXB1dGVGbG9h
dFJlY3RGCiAgICAgb2JqZWN0LT5wYXJlbnQoKS0+Y29tcHV0ZUZsb2F0UmVjdEZvclJlcGFpbnQo
cmVwYWludENvbnRhaW5lciwgcmVwYWludFJlY3QsIGZpeGVkKTsKIH0KIAotdm9pZCBTVkdSZW5k
ZXJTdXBwb3J0OjptYXBMb2NhbFRvQ29udGFpbmVyKGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0
LCBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zv
cm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIGJvb2wgc25hcE9mZnNldEZvclRyYW5zZm9ybXMsIGJv
b2wqIHdhc0ZpeGVkKQordm9pZCBTVkdSZW5kZXJTdXBwb3J0OjptYXBMb2NhbFRvQ29udGFpbmVy
KGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0
KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIGJvb2wq
IHdhc0ZpeGVkKQogewogICAgIHRyYW5zZm9ybVN0YXRlLmFwcGx5VHJhbnNmb3JtKG9iamVjdC0+
bG9jYWxUb1BhcmVudFRyYW5zZm9ybSgpKTsKIApAQCAtOTcsOCArOTcsNiBAQCB2b2lkIFNWR1Jl
bmRlclN1cHBvcnQ6Om1hcExvY2FsVG9Db250YWluCiAgICAgICAgIHRyYW5zZm9ybVN0YXRlLmFw
cGx5VHJhbnNmb3JtKHRvUmVuZGVyU1ZHUm9vdChwYXJlbnQpLT5sb2NhbFRvQm9yZGVyQm94VHJh
bnNmb3JtKCkpOwogCiAgICAgTWFwQ29vcmRpbmF0ZXNGbGFncyBtb2RlID0gVXNlVHJhbnNmb3Jt
czsKLSAgICBpZiAoc25hcE9mZnNldEZvclRyYW5zZm9ybXMpCi0gICAgICAgIG1vZGUgfD0gU25h
cE9mZnNldEZvclRyYW5zZm9ybXM7CiAgICAgcGFyZW50LT5tYXBMb2NhbFRvQ29udGFpbmVyKHJl
cGFpbnRDb250YWluZXIsIHRyYW5zZm9ybVN0YXRlLCBtb2RlLCB3YXNGaXhlZCk7CiB9CiAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5o
CShyZXZpc2lvbiAxMzc4NDYpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1Jl
bmRlclN1cHBvcnQuaAkod29ya2luZyBjb3B5KQpAQCAtNjgsNyArNjgsNyBAQCBwdWJsaWM6CiAg
ICAgc3RhdGljIEZsb2F0UmVjdCByZXBhaW50UmVjdEZvclJlbmRlcmVySW5Mb2NhbENvb3JkaW5h
dGVzRXhjbHVkaW5nU1ZHU2hhZG93KGNvbnN0IFJlbmRlck9iamVjdCopOwogICAgIHN0YXRpYyBM
YXlvdXRSZWN0IGNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlck9iamVj
dCosIGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIpOwogICAg
IHN0YXRpYyB2b2lkIGNvbXB1dGVGbG9hdFJlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlck9iamVj
dCosIGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIEZsb2F0
UmVjdCYsIGJvb2wgZml4ZWQpOwotICAgIHN0YXRpYyB2b2lkIG1hcExvY2FsVG9Db250YWluZXIo
Y29uc3QgUmVuZGVyT2JqZWN0KiwgY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWlu
dENvbnRhaW5lciwgVHJhbnNmb3JtU3RhdGUmLCBib29sIHNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1z
ID0gdHJ1ZSwgYm9vbCogd2FzRml4ZWQgPSAwKTsKKyAgICBzdGF0aWMgdm9pZCBtYXBMb2NhbFRv
Q29udGFpbmVyKGNvbnN0IFJlbmRlck9iamVjdCosIGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QqIHJlcGFpbnRDb250YWluZXIsIFRyYW5zZm9ybVN0YXRlJiwgYm9vbCogd2FzRml4ZWQgPSAw
KTsKICAgICBzdGF0aWMgY29uc3QgUmVuZGVyT2JqZWN0KiBwdXNoTWFwcGluZ1RvQ29udGFpbmVy
KGNvbnN0IFJlbmRlck9iamVjdCosIGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGFuY2Vz
dG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJik7CiAgICAgc3RhdGljIGJvb2wgY2hlY2tG
b3JTVkdSZXBhaW50RHVyaW5nTGF5b3V0KFJlbmRlck9iamVjdCopOwogCkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CShyZXZpc2lvbiAxMzc4NDYpCisrKyBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0xMi0xNCAgTGV2aSBXZWludHJhdWIgIDxsZXZp
d0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUHVzaCBwaXhlbCBzbmFwcGluZyBsb2dpYyBpbnRv
IFRyYW5zZm9ybVN0YXRlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDE3NzkKKworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAg
ICAgICAgRWxpbWluYXRpbmcgdXNlIG9mIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zIGFzIGl0J3Mg
bm8gbG9uZ2VyIG5lZWRlZC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJG
dWxsU2NyZWVuTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OnNjcmVlblJlY3RPZkNvbnRl
bnRzKToKKwogMjAxMi0xMi0xNiAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29t
PgogCiAgICAgICAgIFJlbmFtZSBXZWJGcmFtZTo6Y29udmVydEhhbmRsZVRvRG93bmxvYWQgdG8g
Y29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFu
YWdlci5jcHAJKHJldmlzaW9uIDEzNzg0NikKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
RnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUy
LDcgKzUyLDcgQEAgc3RhdGljIEludFJlY3Qgc2NyZWVuUmVjdE9mQ29udGVudHMoRWxlbQogI2lm
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBpZiAoZWxlbWVudC0+cmVuZGVyZXIo
KSAmJiBlbGVtZW50LT5yZW5kZXJlcigpLT5oYXNMYXllcigpICYmIGVsZW1lbnQtPnJlbmRlcmVy
KCktPmVuY2xvc2luZ0xheWVyKCktPmlzQ29tcG9zaXRlZCgpKSB7CiAgICAgICAgIEZsb2F0UXVh
ZCBjb250ZW50c0JveCA9IHN0YXRpY19jYXN0PEZsb2F0UmVjdD4oZWxlbWVudC0+cmVuZGVyZXIo
KS0+ZW5jbG9zaW5nTGF5ZXIoKS0+YmFja2luZygpLT5jb250ZW50c0JveCgpKTsKLSAgICAgICAg
Y29udGVudHNCb3ggPSBlbGVtZW50LT5yZW5kZXJlcigpLT5sb2NhbFRvQWJzb2x1dGVRdWFkKGNv
bnRlbnRzQm94LCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3Jtcyk7CisgICAgICAgIGNvbnRlbnRzQm94
ID0gZWxlbWVudC0+cmVuZGVyZXIoKS0+bG9jYWxUb0Fic29sdXRlUXVhZChjb250ZW50c0JveCk7
CiAgICAgICAgIHJldHVybiBlbGVtZW50LT5yZW5kZXJlcigpLT52aWV3KCktPmZyYW1lVmlldygp
LT5jb250ZW50c1RvU2NyZWVuKGNvbnRlbnRzQm94LmVuY2xvc2luZ0JvdW5kaW5nQm94KCkpOwog
ICAgIH0KICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEz
Nzg0NikKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMzEgQEAKKzIwMTItMTItMTQgIExldmkgV2VpbnRyYXViICA8bGV2aXdAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIFB1c2ggcGl4ZWwgc25hcHBpbmcgbG9naWMgaW50byBUcmFu
c2Zvcm1TdGF0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTAxNzc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAg
IEVsaW1pbmF0aW5nIHVzZSBvZiBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcyBhcyBpdCdzIG5vIGxv
bmdlciBuZWVkZWQuCisKKyAgICAgICAgKiBzcmMvRmluZEluUGFnZUNvb3JkaW5hdGVzLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6dG9Ob3JtYWxpemVkUmVjdCk6CisgICAgICAgICogc3JjL0xpbmtI
aWdobGlnaHQuY3BwOgorICAgICAgICAoV2ViS2l0Ojpjb252ZXJ0VGFyZ2V0U3BhY2VRdWFkVG9D
b21wb3NpdGVkTGF5ZXIpOgorICAgICAgICAqIHNyYy9XZWJJbnB1dEV2ZW50Q29udmVyc2lvbi5j
cHA6CisgICAgICAgIChXZWJLaXQ6OmNvbnZlcnRBYnNvbHV0ZUxvY2F0aW9uRm9yUmVuZGVyT2Jq
ZWN0KToKKyAgICAgICAgKiBzcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlBsdWdpbkNvbnRhaW5lckltcGw6OndpbmRvd1RvTG9jYWxQb2ludCk6CisK
KzIwMTItMDUtMjEgIEpvY2hlbiBFaXNpbmdlciAgPGpvY2hlbkBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgW2Nocm9taXVtXSBCdWlsZCBjb250ZW50X3NoZWxsIGZyb20gd2l0aGluIFdlYktpdAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODcwNDUKKwor
ICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgKiBBbGwuZ3lwOgor
ICAgICAgICAqIERFUFM6CisKIDIwMTItMTItMTUgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2Nh
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZW5hbWUgRnJhbWVMb2FkZXJDbGllbnQ6OmRvd25sb2Fk
IHRvIGNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9hZApJbmRleDogU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvRmluZEluUGFnZUNvb3JkaW5hdGVzLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9GaW5kSW5QYWdlQ29vcmRpbmF0ZXMuY3BwCShyZXZp
c2lvbiAxMzc4NDYpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9GaW5kSW5QYWdlQ29v
cmRpbmF0ZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02Nyw3ICs2Nyw3IEBAIHN0YXRpYyBGbG9h
dFJlY3QgdG9Ob3JtYWxpemVkUmVjdChjb25zdCAKICAgICAgICAgc2Nyb2xsZWRPcmlnaW4gPSAt
SW50UG9pbnQoY29udGFpbmVyLT5zY3JvbGxlZENvbnRlbnRPZmZzZXQoKSk7CiAKICAgICBGbG9h
dFJlY3Qgb3ZlcmZsb3dSZWN0KHNjcm9sbGVkT3JpZ2luLCBjb250YWluZXItPm1heExheW91dE92
ZXJmbG93KCkpOwotICAgIEZsb2F0UmVjdCBjb250YWluZXJSZWN0ID0gY29udGFpbmVyLT5sb2Nh
bFRvQWJzb2x1dGVRdWFkKEZsb2F0UXVhZChvdmVyZmxvd1JlY3QpLCBTbmFwT2Zmc2V0Rm9yVHJh
bnNmb3JtcykuZW5jbG9zaW5nQm91bmRpbmdCb3goKTsKKyAgICBGbG9hdFJlY3QgY29udGFpbmVy
UmVjdCA9IGNvbnRhaW5lci0+bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFF1YWQob3ZlcmZsb3dS
ZWN0KSkuZW5jbG9zaW5nQm91bmRpbmdCb3goKTsKIAogICAgIGlmIChjb250YWluZXJSZWN0Lmlz
RW1wdHkoKSkKICAgICAgICAgcmV0dXJuIEZsb2F0UmVjdCgpOwpJbmRleDogU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvTGlua0hpZ2hsaWdodC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvTGlua0hpZ2hsaWdodC5jcHAJKHJldmlzaW9uIDEzNzg0NikKKysr
IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0xpbmtIaWdobGlnaHQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xNjEsNyArMTYxLDcgQEAgc3RhdGljIHZvaWQgY29udmVydFRhcmdldFNwYWNlUXVh
ZFRvQ29tcAogCiAgICAgICAgIHBvaW50ID0gdGFyZ2V0UmVuZGVyZXItPmZyYW1lKCktPnZpZXco
KS0+Y29udGVudHNUb1dpbmRvdyhwb2ludCk7CiAgICAgICAgIHBvaW50ID0gY29tcG9zaXRlZFJl
bmRlcmVyLT5mcmFtZSgpLT52aWV3KCktPndpbmRvd1RvQ29udGVudHMocG9pbnQpOwotICAgICAg
ICBGbG9hdFBvaW50IGZsb2F0UG9pbnQgPSBjb21wb3NpdGVkUmVuZGVyZXItPmFic29sdXRlVG9M
b2NhbChwb2ludCwgVXNlVHJhbnNmb3JtcyB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1zKTsKKyAg
ICAgICAgRmxvYXRQb2ludCBmbG9hdFBvaW50ID0gY29tcG9zaXRlZFJlbmRlcmVyLT5hYnNvbHV0
ZVRvTG9jYWwocG9pbnQsIFVzZVRyYW5zZm9ybXMpOwogCiAgICAgICAgIHN3aXRjaCAoaSkgewog
ICAgICAgICBjYXNlIDA6IGNvbXBvc2l0ZWRTcGFjZVF1YWQuc2V0UDEoZmxvYXRQb2ludCk7IGJy
ZWFrOwpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5wdXRFdmVudENvbnZl
cnNpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklu
cHV0RXZlbnRDb252ZXJzaW9uLmNwcAkocmV2aXNpb24gMTM3ODQ2KQorKysgU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViSW5wdXRFdmVudENvbnZlcnNpb24uY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC00MDQsNyArNDA0LDcgQEAgc3RhdGljIGludCBnZXRXZWJJbnB1dE1vZGlmaWVycyhjb25z
dCBVSQogCiBzdGF0aWMgSW50UG9pbnQgY29udmVydEFic29sdXRlTG9jYXRpb25Gb3JSZW5kZXJP
YmplY3QoY29uc3QgTGF5b3V0UG9pbnQmIGxvY2F0aW9uLCBjb25zdCBXZWJDb3JlOjpSZW5kZXJP
YmplY3QmIHJlbmRlck9iamVjdCkKIHsKLSAgICByZXR1cm4gcm91bmRlZEludFBvaW50KHJlbmRl
ck9iamVjdC5hYnNvbHV0ZVRvTG9jYWwobG9jYXRpb24sIFVzZVRyYW5zZm9ybXMgfCBTbmFwT2Zm
c2V0Rm9yVHJhbnNmb3JtcykpOworICAgIHJldHVybiByb3VuZGVkSW50UG9pbnQocmVuZGVyT2Jq
ZWN0LmFic29sdXRlVG9Mb2NhbChsb2NhdGlvbiwgVXNlVHJhbnNmb3JtcykpOwogfQogCiBzdGF0
aWMgdm9pZCB1cGRhdGVXZWJNb3VzZUV2ZW50RnJvbVdlYkNvcmVNb3VzZUV2ZW50KGNvbnN0IE1v
dXNlUmVsYXRlZEV2ZW50JiBldmVudCwgY29uc3QgV2lkZ2V0JiB3aWRnZXQsIGNvbnN0IFdlYkNv
cmU6OlJlbmRlck9iamVjdCYgcmVuZGVyT2JqZWN0LCBXZWJNb3VzZUV2ZW50JiB3ZWJFdmVudCkK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBsdWdpbkNv
bnRhaW5lckltcGwuY3BwCShyZXZpc2lvbiAxMzc4NDYpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTUx
LDcgKzU1MSw3IEBAIFdlYlBvaW50IFdlYlBsdWdpbkNvbnRhaW5lckltcGw6OndpbmRvd1QKICAg
ICBpZiAoIXZpZXcpCiAgICAgICAgIHJldHVybiBwb2ludDsKICAgICBXZWJQb2ludCB3aW5kb3dQ
b2ludCA9IHZpZXctPndpbmRvd1RvQ29udGVudHMocG9pbnQpOwotICAgIHJldHVybiByb3VuZGVk
SW50UG9pbnQobV9lbGVtZW50LT5yZW5kZXJlcigpLT5hYnNvbHV0ZVRvTG9jYWwoTGF5b3V0UG9p
bnQod2luZG93UG9pbnQpLCBVc2VUcmFuc2Zvcm1zIHwgU25hcE9mZnNldEZvclRyYW5zZm9ybXMp
KTsKKyAgICByZXR1cm4gcm91bmRlZEludFBvaW50KG1fZWxlbWVudC0+cmVuZGVyZXIoKS0+YWJz
b2x1dGVUb0xvY2FsKExheW91dFBvaW50KHdpbmRvd1BvaW50KSwgVXNlVHJhbnNmb3JtcykpOwog
fQogCiB2b2lkIFdlYlBsdWdpbkNvbnRhaW5lckltcGw6OmRpZFJlY2VpdmVSZXNwb25zZShjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlz
aW9uIDEzNzg0NikKKysrIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDEzIEBACisyMDEyLTEyLTE0ICBMZXZpIFdlaW50cmF1YiAgPGxldml3QGNo
cm9taXVtLm9yZz4KKworICAgICAgICBQdXNoIHBpeGVsIHNuYXBwaW5nIGxvZ2ljIGludG8gVHJh
bnNmb3JtU3RhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwMTc3OQorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAg
ICAqIFdlYlZpZXcvV2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIubW06CisgICAgICAgIChzY3JlZW5S
ZWN0T2ZDb250ZW50cyk6IFJlbW92ZWQgU25hcE9mZnNldEZvclRyYW5zZm9ybXMgYXMgaXQncyBu
byBsb25nZXIgbmVlZGVkLgorCiAyMDEyLTEyLTE1ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNj
YUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVuYW1lIEZyYW1lTG9hZGVyQ2xpZW50Ojpkb3dubG9h
ZCB0byBjb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViRnVsbFNjcmVlbkNvbnRyb2xsZXIubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGdWxsU2NyZWVuQ29udHJvbGxlci5tbQkocmV2
aXNpb24gMTM3ODQ2KQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGdWxsU2NyZWVu
Q29udHJvbGxlci5tbQkod29ya2luZyBjb3B5KQpAQCAtNTYsNyArNTYsNyBAQCBzdGF0aWMgSW50
UmVjdCBzY3JlZW5SZWN0T2ZDb250ZW50cyhFbGVtCiAgICAgQVNTRVJUKGVsZW1lbnQpOwogICAg
IGlmIChlbGVtZW50LT5yZW5kZXJlcigpICYmIGVsZW1lbnQtPnJlbmRlcmVyKCktPmhhc0xheWVy
KCkgJiYgZWxlbWVudC0+cmVuZGVyZXIoKS0+ZW5jbG9zaW5nTGF5ZXIoKS0+aXNDb21wb3NpdGVk
KCkpIHsKICAgICAgICAgRmxvYXRRdWFkIGNvbnRlbnRzQm94ID0gc3RhdGljX2Nhc3Q8RmxvYXRS
ZWN0PihlbGVtZW50LT5yZW5kZXJlcigpLT5lbmNsb3NpbmdMYXllcigpLT5iYWNraW5nKCktPmNv
bnRlbnRzQm94KCkpOwotICAgICAgICBjb250ZW50c0JveCA9IGVsZW1lbnQtPnJlbmRlcmVyKCkt
PmxvY2FsVG9BYnNvbHV0ZVF1YWQoY29udGVudHNCb3gsIFNuYXBPZmZzZXRGb3JUcmFuc2Zvcm1z
KTsKKyAgICAgICAgY29udGVudHNCb3ggPSBlbGVtZW50LT5yZW5kZXJlcigpLT5sb2NhbFRvQWJz
b2x1dGVRdWFkKGNvbnRlbnRzQm94KTsKICAgICAgICAgcmV0dXJuIGVsZW1lbnQtPnJlbmRlcmVy
KCktPnZpZXcoKS0+ZnJhbWVWaWV3KCktPmNvbnRlbnRzVG9TY3JlZW4oY29udGVudHNCb3guZW5j
bG9zaW5nQm91bmRpbmdCb3goKSk7CiAgICAgfQogICAgIHJldHVybiBlbGVtZW50LT5zY3JlZW5S
ZWN0KCk7CkluZGV4OiBXZWJLaXQueGN3b3Jrc3BhY2UveGNzaGFyZWRkYXRhL3hjc2NoZW1lcy9B
bGwgU291cmNlLnhjc2NoZW1lCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC54Y3dvcmtzcGFjZS94Y3No
YXJlZGRhdGEveGNzY2hlbWVzL0FsbCBTb3VyY2UueGNzY2hlbWUJKHJldmlzaW9uIDEzNzg0NikK
KysrIFdlYktpdC54Y3dvcmtzcGFjZS94Y3NoYXJlZGRhdGEveGNzY2hlbWVzL0FsbCBTb3VyY2Uu
eGNzY2hlbWUJKHdvcmtpbmcgY29weSkKQEAgLTEyNSw3ICsxMjUsNiBAQAogICAgICAgYnVpbGRD
b25maWd1cmF0aW9uID0gIkRlYnVnIgogICAgICAgaWdub3Jlc1BlcnNpc3RlbnRTdGF0ZU9uTGF1
bmNoID0gIllFUyIKICAgICAgIGRlYnVnRG9jdW1lbnRWZXJzaW9uaW5nID0gIllFUyIKLSAgICAg
IGVuYWJsZU9wZW5HTEZyYW1lQ2FwdHVyZU1vZGUgPSAiMCIKICAgICAgIGFsbG93TG9jYXRpb25T
aW11bGF0aW9uID0gIllFUyI+CiAgICAgICA8UGF0aFJ1bm5hYmxlCiAgICAgICAgICBGaWxlUGF0
aCA9ICIvQXBwbGljYXRpb25zL1NhZmFyaS5hcHAvQ29udGVudHMvTWFjT1MvU2FmYXJpRm9yV2Vi
S2l0RGV2ZWxvcG1lbnQiPgpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTM3ODQ2KQorKysgTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTItMTItMTQg
IExldmkgV2VpbnRyYXViICA8bGV2aXdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFB1c2ggcGl4
ZWwgc25hcHBpbmcgbG9naWMgaW50byBUcmFuc2Zvcm1TdGF0ZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxNzc5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgICogZmFzdC9kb20vV2luZG93L3dlYmtpdENvbnZl
cnRQb2ludC5odG1sOiBVcGRhdGluZyB2YWx1ZXMgdG8gbWF0Y2ggY29ycmVjdGVkIHBpeGVsIHNu
YXBwaW5nLgorICAgICAgICAqIGZhc3QvbXVsdGljb2wvYnJlYWstcHJvcGVydGllcy5odG1sOiBG
aXhpbmcgc3ViLXBpeGVsIGxheW91dCBmZWF0dXJlIGNoZWNraW5nLgorICAgICAgICAqIGZhc3Qv
bXVsdGljb2wvdmVydGljYWwtbHIvYnJlYWstcHJvcGVydGllcy5odG1sOiBEaXR0by4KKyAgICAg
ICAgKiBmYXN0L211bHRpY29sL3ZlcnRpY2FsLXJsL2JyZWFrLXByb3BlcnRpZXMuaHRtbDogRGl0
dG8uCisgICAgICAgICogZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWlmcmFtZS1jb3B5LW9uLXNj
cm9sbC5odG1sOiBVcGRhdGluZyB0byBjYXRjaCB0aGUgYnVnIHdoZXJlIHRoZSBvbGQKKyAgICAg
ICAgcGl4ZWwgc25hcHBpbmcgbG9naWMgZGlkIHRoZSB3cm9uZyB0aGluZyB3aGVuIG5lc3RlZC4K
KyAgICAgICAgKiBmYXN0L3N1Yi1waXhlbC90cmFuc2Zvcm1lZC1pZnJhbWUtY29weS1vbi1zY3Jv
bGwuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvZmFzdC9z
dWItcGl4ZWwvc3ViLXBpeGVsLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC1leHBlY3RlZC5wbmc6Cisg
ICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvZmFzdC9zdWItcGl4ZWwvdHJhbnNmb3Jt
ZWQtaWZyYW1lLWNvcHktb24tc2Nyb2xsLWV4cGVjdGVkLnBuZzogQWRkZWQuCisgICAgICAgICog
cGxhdGZvcm0vY2hyb21pdW0tbGludXgvZmFzdC9zdWItcGl4ZWwvdHJhbnNmb3JtZWQtaWZyYW1l
LWNvcHktb24tc2Nyb2xsLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0v
Y2hyb21pdW0td2luL2Zhc3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1pZnJhbWUtY29weS1vbi1zY3Jv
bGwtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3Rh
dGlvbnM6CisKIDIwMTItMTItMTYgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5j
b20+CiAKICAgICAgICAgUmVtb3ZlIGluLWJhbmQgdGV4dCB0cmFja3Mgd2hlbiBtZWRpYSBlbGVt
ZW50J3Mgc3JjIGNoYW5nZXMKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93ZWJr
aXRDb252ZXJ0UG9pbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9X
aW5kb3cvd2Via2l0Q29udmVydFBvaW50Lmh0bWwJKHJldmlzaW9uIDEzNzg0NikKKysrIExheW91
dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93ZWJraXRDb252ZXJ0UG9pbnQuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMTQ1LDggKzE0NSw4IEBACiAgICAgICAgICAgICAgICAgcnVuVGVzdCgiVGVzdCA4
IiwgICJ0ZXN0OCIsICA4LCAyNzMsIDEzLCAzMTMpOwogICAgICAgICAgICAgICAgIHJ1blRlc3Qo
IlRlc3QgOSIsICAidGVzdDkiLCAgMjgsIDI5MSwgMzMsIDMzMSk7CiAgICAgICAgICAgICAgICAg
cnVuVGVzdCgiVGVzdCAxMCIsICJ0ZXN0MTAiLCAyOCwgMzA5LCAzMywgMzQ5KTsKLSAgICAgICAg
ICAgICAgICBydW5UZXN0KCJUZXN0IDExIiwgInRlc3QxMSIsIDE1OCwgMzU1LCAxNzQsIDM3Myk7
Ci0gICAgICAgICAgICAgICAgcnVuVGVzdCgiVGVzdCAxMiIsICJ0ZXN0MTIiLCAxNjgsIDQyOCwg
MTg0LCA0NDYpOworICAgICAgICAgICAgICAgIHJ1blRlc3QoIlRlc3QgMTEiLCAidGVzdDExIiwg
MTU4LCAzNTYsIDE3NCwgMzc0KTsKKyAgICAgICAgICAgICAgICBydW5UZXN0KCJUZXN0IDEyIiwg
InRlc3QxMiIsIDE2OCwgNDI5LCAxODQsIDQ0Nyk7CiAgICAgICAgICAgICAgICAgcnVuVGVzdCgi
VGVzdCAxMyIsICJ0ZXN0MTMiLCAyOCwgNDg3LCAzMywgNTI3KTsKICAgICAgICAgICAgIH0gZWxz
ZSB7CiAgICAgICAgICAgICAgICAgcnVuVGVzdCgiVGVzdCAxIiwgICJ0ZXN0MSIsICA4LCAxMiwg
MTMsIDUyKTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbXVsdGljb2wvYnJlYWstcHJvcGVydGll
cy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbXVsdGljb2wvYnJlYWstcHJv
cGVydGllcy5odG1sCShyZXZpc2lvbiAxMzc4NDYpCisrKyBMYXlvdXRUZXN0cy9mYXN0L211bHRp
Y29sL2JyZWFrLXByb3BlcnRpZXMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTAsNiArMTAsNyBA
QAogICAgIDxkaXYgY2xhc3M9InNob3J0ZXIgYm94IiBzdHlsZT0iLXdlYmtpdC1jb2x1bW4tYnJl
YWstYWZ0ZXI6IGFsd2F5czsiPjwvZGl2PgogICAgIDxkaXYgaWQ9ImFmdGVyLWJyZWFrIiBjbGFz
cz0ic2hvcnRlciBib3giPjwvZGl2PgogICAgIDxkaXYgaWQ9Im5vLWJyZWFrIiBjbGFzcz0ic2hv
cnRlciBib3giIHN0eWxlPSItd2Via2l0LWNvbHVtbi1icmVhay1pbnNpZGU6IGF2b2lkOyI+PC9k
aXY+CisgICAgPGRpdiBpZD0ic3ViUGl4ZWxUZXN0IiBzdHlsZT0id2lkdGg6MTAuNXB4Ij48L2Rp
dj4KIDwvZGl2PgogPHByZSBpZD0iY29uc29sZSI+PC9wcmU+CiA8c2NyaXB0PgpAQCAtMzAsOCAr
MzEsOCBAQAogICAgICAgICAgICAgbG9nKCJGQUlMOiAnIiArIGlkICsgIicgaXMgYXQgKCIgKyBN
YXRoLnJvdW5kKHJlY3QubGVmdCkgKyAiLCAiICsgTWF0aC5yb3VuZChyZWN0LnRvcCkgKyAiKSBp
bnN0ZWFkIG9mICgiICsgZXhwZWN0ZWRMZWZ0ICsgIiAsIiArIGV4cGVjdGVkVG9wICsgIikiKTsK
ICAgICB9CiAKLSAgICB2YXIgcmVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdicmVhay1i
ZWZvcmUnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKLSAgICB2YXIgaGFzU3VicGl4ZWxTdXBw
b3J0ID0gTWF0aC5yb3VuZChyZWN0LmxlZnQpICE9IHJlY3QubGVmdDsKKyAgICB2YXIgcmVjdCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdWJQaXhlbFRlc3QnKS5nZXRCb3VuZGluZ0NsaWVu
dFJlY3QoKTsKKyAgICB2YXIgaGFzU3VicGl4ZWxTdXBwb3J0ID0gTWF0aC5yb3VuZChyZWN0LnJp
Z2h0KSAhPSByZWN0LnJpZ2h0OwogCiAgICAgdGVzdEJveFBvc2l0aW9uKCJicmVhay1iZWZvcmUi
LCBoYXNTdWJwaXhlbFN1cHBvcnQgPyAyMjAgOiAyMTgsIDgpOwogICAgIHRlc3RCb3hQb3NpdGlv
bigiYWZ0ZXItYnJlYWsiLCBoYXNTdWJwaXhlbFN1cHBvcnQgPyA0MzEgOiA0MjgsIDgpOwpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9tdWx0aWNvbC92ZXJ0aWNhbC1sci9icmVhay1wcm9wZXJ0aWVz
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9tdWx0aWNvbC92ZXJ0aWNhbC1s
ci9icmVhay1wcm9wZXJ0aWVzLmh0bWwJKHJldmlzaW9uIDEzNzg0NikKKysrIExheW91dFRlc3Rz
L2Zhc3QvbXVsdGljb2wvdmVydGljYWwtbHIvYnJlYWstcHJvcGVydGllcy5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0xMSw2ICsxMSw3IEBACiAgICAgPGRpdiBjbGFzcz0ic2hvcnRlciBib3giIHN0
eWxlPSItd2Via2l0LWNvbHVtbi1icmVhay1hZnRlcjogYWx3YXlzOyI+PC9kaXY+CiAgICAgPGRp
diBpZD0iYWZ0ZXItYnJlYWsiIGNsYXNzPSJzaG9ydGVyIGJveCI+PC9kaXY+CiAgICAgPGRpdiBp
ZD0ibm8tYnJlYWsiIGNsYXNzPSJzaG9ydGVyIGJveCIgc3R5bGU9Ii13ZWJraXQtY29sdW1uLWJy
ZWFrLWluc2lkZTogYXZvaWQ7Ij48L2Rpdj4KKyAgICA8ZGl2IGlkPSJzdWJQaXhlbFRlc3QiIHN0
eWxlPSJ3aWR0aDoxMC41cHgiPjwvZGl2PgogPC9kaXY+CiA8cHJlIGlkPSJjb25zb2xlIj48L3By
ZT4KIDxzY3JpcHQ+CkBAIC0zMSw4ICszMiw4IEBACiAgICAgICAgICAgICBsb2coIkZBSUw6ICci
ICsgaWQgKyAiJyBpcyBhdCAoIiArIE1hdGgucm91bmQocmVjdC5sZWZ0KSArICIsICIgKyBNYXRo
LnJvdW5kKHJlY3QudG9wKSArICIpIGluc3RlYWQgb2YgKCIgKyBleHBlY3RlZExlZnQgKyAiICwi
ICsgZXhwZWN0ZWRUb3AgKyAiKSIpOwogICAgIH0KIAotICAgIHZhciByZWN0ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2JyZWFrLWJlZm9yZScpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwot
ICAgIHZhciBoYXNTdWJwaXhlbFN1cHBvcnQgPSBNYXRoLnJvdW5kKHJlY3QudG9wKSAhPSByZWN0
LnRvcDsKKyAgICB2YXIgcmVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdWJQaXhlbFRl
c3QnKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICB2YXIgaGFzU3VicGl4ZWxTdXBwb3J0
ID0gTWF0aC5yb3VuZChyZWN0LmJvdHRvbSkgIT0gcmVjdC5ib3R0b207CiAKICAgICB0ZXN0Qm94
UG9zaXRpb24oImJyZWFrLWJlZm9yZSIsIDgsIGhhc1N1YnBpeGVsU3VwcG9ydCA/IDIyMCA6IDIx
OCk7CiAgICAgdGVzdEJveFBvc2l0aW9uKCJhZnRlci1icmVhayIsIDgsIGhhc1N1YnBpeGVsU3Vw
cG9ydCA/IDQzMSA6IDQyOCk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L211bHRpY29sL3ZlcnRp
Y2FsLXJsL2JyZWFrLXByb3BlcnRpZXMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L211bHRpY29sL3ZlcnRpY2FsLXJsL2JyZWFrLXByb3BlcnRpZXMuaHRtbAkocmV2aXNpb24g
MTM3ODQ2KQorKysgTGF5b3V0VGVzdHMvZmFzdC9tdWx0aWNvbC92ZXJ0aWNhbC1ybC9icmVhay1w
cm9wZXJ0aWVzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE0LDYgKzE0LDcgQEAKICAgICA8ZGl2
IGNsYXNzPSJzaG9ydGVyIGJveCIgc3R5bGU9Ii13ZWJraXQtY29sdW1uLWJyZWFrLWFmdGVyOiBh
bHdheXM7Ij48L2Rpdj4KICAgICA8ZGl2IGlkPSJhZnRlci1icmVhayIgY2xhc3M9InNob3J0ZXIg
Ym94Ij48L2Rpdj4KICAgICA8ZGl2IGlkPSJuby1icmVhayIgY2xhc3M9InNob3J0ZXIgYm94IiBz
dHlsZT0iLXdlYmtpdC1jb2x1bW4tYnJlYWstaW5zaWRlOiBhdm9pZDsiPjwvZGl2PgorICAgIDxk
aXYgaWQ9InN1YlBpeGVsVGVzdCIgc3R5bGU9IndpZHRoOjEwLjVweCI+PC9kaXY+CiA8L2Rpdj4K
IDxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgogPHNjcmlwdD4KQEAgLTM0LDggKzM1LDggQEAKICAg
ICAgICAgICAgIGxvZygiRkFJTDogJyIgKyBpZCArICInIGlzIGF0ICgiICsgTWF0aC5yb3VuZChy
ZWN0LmxlZnQpICsgIiwgIiArIE1hdGgucm91bmQocmVjdC50b3ApICsgIikgaW5zdGVhZCBvZiAo
IiArIGV4cGVjdGVkTGVmdCArICIgLCIgKyBleHBlY3RlZFRvcCArICIpIik7CiAgICAgfQogCi0g
ICAgdmFyIHJlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYnJlYWstYmVmb3JlJykuZ2V0
Qm91bmRpbmdDbGllbnRSZWN0KCk7Ci0gICAgdmFyIGhhc1N1YnBpeGVsU3VwcG9ydCA9IE1hdGgu
cm91bmQocmVjdC50b3ApICE9IHJlY3QudG9wOworICAgIHZhciByZWN0ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3N1YlBpeGVsVGVzdCcpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAg
IHZhciBoYXNTdWJwaXhlbFN1cHBvcnQgPSBNYXRoLnJvdW5kKHJlY3QuYm90dG9tKSAhPSByZWN0
LmJvdHRvbTsKIAogICAgIHRlc3RCb3hQb3NpdGlvbigiYnJlYWstYmVmb3JlIiwgNzQ4LCBoYXNT
dWJwaXhlbFN1cHBvcnQgPyAyMjAgOiAyMTgpOwogICAgIHRlc3RCb3hQb3NpdGlvbigiYWZ0ZXIt
YnJlYWsiLCA3NDgsIGhhc1N1YnBpeGVsU3VwcG9ydCA/IDQzMSA6IDQyOCk7CkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWlm
cmFtZS1jb3B5LW9uLXNjcm9sbC5odG1sCShyZXZpc2lvbiAxMzc4NDYpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTIsMTAgKzIsMTIgQEAKIDxodG1sPgogPGhlYWQ+CiA8c3R5bGUgdHlw
ZT0idGV4dC9jc3MiIG1lZGlhPSJzY3JlZW4iPgorLnN1YnBpeGVsUHVzaGVyIHsKKyAgICBwb3Np
dGlvbjogcmVsYXRpdmU7CisgICAgdG9wOiAwLjRweDsKK30KIC5jb250YWluZXIgewotICAgIHBv
c2l0aW9uOiBhYnNvbHV0ZTsKLSAgICBwYWRkaW5nOiAxMC4zcHg7Ci0gICAgei1pbmRleDogMTsK
KyAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiB9CiA8L3N0eWxlPgogPHNjcmlwdCBzcmM9Ii4u
L3JlcGFpbnQvcmVzb3VyY2VzL3JlcGFpbnQuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9z
Y3JpcHQ+CkBAIC0xMywyNiArMTUsNDMgQEAKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKICAgdGVz
dFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAKLWZ1bmN0aW9uIHNldHVwSWZyYW1lKCkgewotICB2
YXIgc3ViRG9jdW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaWZyYW1lJykuY29udGVu
dFdpbmRvdy5kb2N1bWVudDsKLSAgc3ViRG9jdW1lbnQub3BlbigndGV4dC9odG1sJywgJ3JlcGxh
Y2UnKTsKLSAgc3ViRG9jdW1lbnQud3JpdGUoIjwhRE9DVFlQRSBodG1sPlxuPGh0bWw+PGJvZHkg
c3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiBzaWx2ZXI7aGVpZ2h0OiAxMDAwcHg7XCI+PC9ib2R5
PiIpCi0gIHN1YkRvY3VtZW50LmNsb3NlKCk7CitmdW5jdGlvbiBzZXR1cElmcmFtZXMoKSB7Cisg
IHNldHVwSWZyYW1lKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpZnJhbWUxJykuY29udGVudFdp
bmRvdy5kb2N1bWVudCk7CisgIHNldHVwSWZyYW1lKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdp
ZnJhbWUyJykuY29udGVudFdpbmRvdy5kb2N1bWVudCk7CisgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdpZnJhbWUxJykuY29udGVudFdpbmRvdy5zY3JvbGxUbygwLCAxMCk7Cit9CisKK2Z1bmN0
aW9uIHNldHVwSWZyYW1lKGlmcmFtZSkgeworICBpZnJhbWUub3BlbigndGV4dC9odG1sJywgJ3Jl
cGxhY2UnKTsKKyAgaWZyYW1lLndyaXRlKCI8IURPQ1RZUEUgaHRtbD5cbjxodG1sPjxib2R5IHN0
eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogc2lsdmVyO2hlaWdodDogMTAwMHB4O1wiPjwvYm9keT4i
KTsKKyAgaWZyYW1lLmNsb3NlKCk7CiB9CiAKIGZ1bmN0aW9uIHJlcGFpbnRUZXN0KCkgewotICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaWZyYW1lJykuY29udGVudFdpbmRvdy5zY3JvbGxUbygw
LCAxMCk7CisgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpZnJhbWUxJykuY29udGVudFdpbmRv
dy5zY3JvbGxUbygwLCAwKTsKKyAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lmcmFtZTInKS5j
b250ZW50V2luZG93LnNjcm9sbFRvKDAsIDEwKTsKICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQog
ICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogfQogPC9zY3JpcHQ+CiA8L2hlYWQ+Ci08Ym9k
eSBvbmxvYWQ9InNldHVwSWZyYW1lKCk7cnVuUmVwYWludFRlc3QoKSI+Ci0gIDxwPlRoZSBpZnJh
bWUgYmVsb3cgc2hvdWxkIHJlbWFpbiBncmV5IHdoZW4gc2Nyb2xsaW5nLjwvcD4KLSAgPGRpdiBj
bGFzcz0iY29udGFpbmVyIj4KLSAgICA8aWZyYW1lIGlkPSJpZnJhbWUiICBzdHlsZT0id2lkdGg6
IDMwMHB4OyBoZWlnaHQ6IDIwMHB4OyI+PC9pZnJhbWU+Cis8Ym9keSBvbmxvYWQ9InNldHVwSWZy
YW1lcygpO3J1blJlcGFpbnRUZXN0KCkiPgorICA8cD5UaGUgaWZyYW1lcyBiZWxvdyBzaG91bGQg
cmVtYWluIGdyZXkgd2l0aCBubyByZXBhaW50IGFydGlmYWN0cyB3aGVuIHNjcm9sbGluZy48L3A+
CisgIDxkaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgIDxkaXYgY2xhc3M9
InN1YnBpeGVsUHVzaGVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic3VicGl4ZWxQdXNoZXIiPgor
ICAgICAgICA8aWZyYW1lIGlkPSJpZnJhbWUxIiAgc3R5bGU9IndpZHRoOiAxNTBweDsgaGVpZ2h0
OiAyMDBweDsiPjwvaWZyYW1lPgorICAgICAgPC9kaXY+CisgICAgICA8L2Rpdj4KKyAgICA8L2Rp
dj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgPGRpdiBjbGFzcz0ic3VicGl4
ZWxQdXNoZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJzdWJwaXhlbFB1c2hlciI+CisgICAgICAg
ICAgPGlmcmFtZSBpZD0iaWZyYW1lMiIgIHN0eWxlPSJ3aWR0aDogMTUwcHg7IGhlaWdodDogMjAw
cHg7Ij48L2lmcmFtZT4KKyAgICAgICAgPC9kaXY+CisgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4K
ICAgPC9kaXY+Ci0gIDwvZGl2PgotCiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L3N1Yi1waXhlbC90cmFuc2Zvcm1lZC1pZnJhbWUtY29weS1vbi1zY3JvbGwuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3N1Yi1waXhlbC90cmFuc2Zvcm1lZC1pZnJh
bWUtY29weS1vbi1zY3JvbGwuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qv
c3ViLXBpeGVsL3RyYW5zZm9ybWVkLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsNzkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9InNjcmVlbiI+Cisuc3VicGl4ZWxQdXNoZXIg
eworICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICB0b3A6IDAuNHB4OworICAgIHotaW5kZXg6
IDE7Cit9CisuY29udGFpbmVyIHsKKyAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAgcGFk
ZGluZy1sZWZ0OiA4MHB4OworICAgIHBhZGRpbmctdG9wOiAxMHB4OworfQorLnRyYW5zZm9ybSB7
CisgIC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUzZCgwLCAwLCAxLCA0NWRlZyk7Cit9Cis8L3N0
eWxlPgorPHNjcmlwdCBzcmM9Ii4uL3JlcGFpbnQvcmVzb3VyY2VzL3JlcGFpbnQuanMiIHR5cGU9
InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQorICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworZnVuY3Rpb24gc2V0dXBJZnJh
bWVzKCkgeworICBzZXR1cElmcmFtZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaWZyYW1lMScp
LmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQpOworICBzZXR1cElmcmFtZShkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnaWZyYW1lMicpLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQpOworICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnaWZyYW1lMScpLmNvbnRlbnRXaW5kb3cuc2Nyb2xsVG8oMCwgMTApOwor
fQorCitmdW5jdGlvbiBzZXR1cElmcmFtZShpZnJhbWUpIHsKKyAgaWZyYW1lLm9wZW4oJ3RleHQv
aHRtbCcsICdyZXBsYWNlJyk7CisgIGlmcmFtZS53cml0ZSgiPCFET0NUWVBFIGh0bWw+XG48aHRt
bD48Ym9keSBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6IHNpbHZlcjtoZWlnaHQ6IDEwMDBweDtc
Ij48L2JvZHk+Iik7CisgIGlmcmFtZS5jbG9zZSgpOworfQorCitmdW5jdGlvbiByZXBhaW50VGVz
dCgpIHsKKyAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lmcmFtZTEnKS5jb250ZW50V2luZG93
LnNjcm9sbFRvKDAsIDApOworICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaWZyYW1lMicpLmNv
bnRlbnRXaW5kb3cuc2Nyb2xsVG8oMCwgMTApOworICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisg
ICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
IG9ubG9hZD0ic2V0dXBJZnJhbWVzKCk7cnVuUmVwYWludFRlc3QoKSI+CisgIDxwPlRoZSBpZnJh
bWVzIGJlbG93IHNob3VsZCByZW1haW4gZ3JleSB3aXRoIG5vIHJlcGFpbnQgYXJ0aWZhY3RzIHdo
ZW4gc2Nyb2xsaW5nLjwvcD4KKyAgPGRpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgor
ICAgICAgPGRpdiBjbGFzcz0idHJhbnNmb3JtIj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic3VicGl4
ZWxQdXNoZXIiPgorICAgICAgICAgIDxkaXYgY2xhc3M9InN1YnBpeGVsUHVzaGVyIj4KKyAgICAg
ICAgICAgIDxpZnJhbWUgaWQ9ImlmcmFtZTEiICBzdHlsZT0id2lkdGg6IDE1MHB4OyBoZWlnaHQ6
IDIwMHB4OyI+PC9pZnJhbWU+CisgICAgICAgICAgPC9kaXY+CisgICAgICAgIDwvZGl2PgorICAg
ICAgPC9kaXY+CisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAg
IDxkaXYgY2xhc3M9InN1YnBpeGVsUHVzaGVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic3VicGl4
ZWxQdXNoZXIiPgorICAgICAgICAgIDxkaXYgY2xhc3M9InN1YnBpeGVsUHVzaGVyIj4KKyAgICAg
ICAgICAgIDxkaXYgY2xhc3M9InRyYW5zZm9ybSI+CisgICAgICAgICAgICAgIDxkaXYgY2xhc3M9
InN1YnBpeGVsUHVzaGVyIj4KKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJwaXhlbFB1
c2hlciI+CisgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdWJwaXhlbFB1c2hlciI+Cisg
ICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InRyYW5zZm9ybSI+CisgICAgICAgICAgICAg
ICAgICAgICAgPGRpdiBjbGFzcz0ic3VicGl4ZWxQdXNoZXIiPgorICAgICAgICAgICAgICAgICAg
ICAgICAgPGlmcmFtZSBpZD0iaWZyYW1lMiIgIHN0eWxlPSJ3aWR0aDogMTUwcHg7IGhlaWdodDog
MjAwcHg7Ij48L2lmcmFtZT4KKyAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAg
ICAgICAgICAgICAgPC9kaXY+CisgICAgICAgICAgICAgICAgICA8L2Rpdj4gICAgICAgICAgICAg
ICAgCisgICAgICAgICAgICAgICAgPC9kaXY+CisgICAgICAgICAgICAgIDwvZGl2PgorICAgICAg
ICAgICAgPC9kaXY+CisgICAgICAgICAgPC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgICAgPC9k
aXY+CisgICAgPC9kaXY+CisgIDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvZmFzdC9zdWItcGl4ZWwvdHJhbnNmb3JtZWQt
aWZyYW1lLWNvcHktb24tc2Nyb2xsLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9mYXN0L3N1Yi1waXhlbC90cmFuc2Zvcm1lZC1p
ZnJhbWUtY29weS1vbi1zY3JvbGwtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvZmFzdC9zdWItcGl4ZWwvdHJhbnNmb3JtZWQt
aWZyYW1lLWNvcHktb24tc2Nyb2xsLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDUyIEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAo
MCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDI3OQorICBSZW5kZXJC
bG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4Mjc5CisgICAgUmVuZGVyQm9keSB7Qk9EWX0g
YXQgKDgsMTYpIHNpemUgNzg0eDI1NQorICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDApIHNp
emUgNzg0eDIwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDQ2NXgx
OQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ2NTogIlRoZSBpZnJhbWVzIGJl
bG93IHNob3VsZCByZW1haW4gZ3JleSB3aXRoIG5vIHJlcGFpbnQgYXJ0aWZhY3RzIHdoZW4gc2Ny
b2xsaW5nLiIKKyAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDM2KSBzaXplIDc4NHgyMTkK
KyAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMCkgc2l6ZSAyMzR4MjE5CisgICAgICAg
IFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMjM0LDE5OSkgc2l6ZSA0eDE5CisgICAgICAgICAgdGV4
dCBydW4gYXQgKDIzNCwxOTkpIHdpZHRoIDQ6ICIgIgorICAgICAgICBSZW5kZXJCbG9jayB7RElW
fSBhdCAoMjM4LDApIHNpemUgMjM0eDIxOQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQg
KDAsMCkgc2l6ZSAweDAKK2xheWVyIGF0ICg4OCw2Mikgc2l6ZSAxNTR4MjA5CisgIFJlbmRlckJs
b2NrIHtESVZ9IGF0ICg4MCwxMCkgc2l6ZSAxNTR4MjA5CitsYXllciBhdCAoODgsNjIpIHNpemUg
MTU0eDIwOQorICBSZW5kZXJCbG9jayAocmVsYXRpdmUgcG9zaXRpb25lZCkgekk6IDEge0RJVn0g
YXQgKDAsMCkgc2l6ZSAxNTR4MjA5CitsYXllciBhdCAoODgsNjMpIHNpemUgMTU0eDIwOQorICBS
ZW5kZXJCbG9jayAocmVsYXRpdmUgcG9zaXRpb25lZCkgekk6IDEge0RJVn0gYXQgKDAsMCkgc2l6
ZSAxNTR4MjA5CisgICAgUmVuZGVyUGFydE9iamVjdCB7SUZSQU1FfSBhdCAoMCwwKSBzaXplIDE1
NHgyMDQgW2JvcmRlcjogKDJweCBpbnNldCAjMDAwMDAwKV0KKyAgICAgIGxheWVyIGF0ICgwLDAp
IHNpemUgMTM1eDEwMTYKKyAgICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDEzNXgyMDAK
KyAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTM1eDEwMTYKKyAgICAgICAgUmVuZGVyQmxvY2sg
e0hUTUx9IGF0ICgwLDApIHNpemUgMTM1eDEwMTYKKyAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZ
fSBhdCAoOCw4KSBzaXplIDExOXgxMDAwIFtiZ2NvbG9yPSNDMEMwQzBdCisgICAgUmVuZGVyVGV4
dCB6STogMSB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCitsYXllciBhdCAoMzI2LDYyKSBzaXpl
IDE1NHgyMDkKKyAgUmVuZGVyQmxvY2sgKHJlbGF0aXZlIHBvc2l0aW9uZWQpIHpJOiAxIHtESVZ9
IGF0ICg4MCwxMCkgc2l6ZSAxNTR4MjA5CitsYXllciBhdCAoMzI2LDYzKSBzaXplIDE1NHgyMDkK
KyAgUmVuZGVyQmxvY2sgKHJlbGF0aXZlIHBvc2l0aW9uZWQpIHpJOiAxIHtESVZ9IGF0ICgwLDAp
IHNpemUgMTU0eDIwOQorbGF5ZXIgYXQgKDMyNiw2Mykgc2l6ZSAxNTR4MjA5CisgIFJlbmRlckJs
b2NrIChyZWxhdGl2ZSBwb3NpdGlvbmVkKSB6STogMSB7RElWfSBhdCAoMCwwKSBzaXplIDE1NHgy
MDkKK2xheWVyIGF0ICgzMjYsNjMpIHNpemUgMTU0eDIwOQorICBSZW5kZXJCbG9jayB7RElWfSBh
dCAoMCwwKSBzaXplIDE1NHgyMDkKK2xheWVyIGF0ICgzMjYsNjQpIHNpemUgMTU0eDIwOQorICBS
ZW5kZXJCbG9jayAocmVsYXRpdmUgcG9zaXRpb25lZCkgekk6IDEge0RJVn0gYXQgKDAsMCkgc2l6
ZSAxNTR4MjA5CitsYXllciBhdCAoMzI2LDY0KSBzaXplIDE1NHgyMDkKKyAgUmVuZGVyQmxvY2sg
KHJlbGF0aXZlIHBvc2l0aW9uZWQpIHpJOiAxIHtESVZ9IGF0ICgwLDApIHNpemUgMTU0eDIwOQor
bGF5ZXIgYXQgKDMyNiw2NCkgc2l6ZSAxNTR4MjA5CisgIFJlbmRlckJsb2NrIChyZWxhdGl2ZSBw
b3NpdGlvbmVkKSB6STogMSB7RElWfSBhdCAoMCwwKSBzaXplIDE1NHgyMDkKK2xheWVyIGF0ICgz
MjYsNjQpIHNpemUgMTU0eDIwOQorICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDE1
NHgyMDkKK2xheWVyIGF0ICgzMjYsNjUpIHNpemUgMTU0eDIwOQorICBSZW5kZXJCbG9jayAocmVs
YXRpdmUgcG9zaXRpb25lZCkgekk6IDEge0RJVn0gYXQgKDAsMCkgc2l6ZSAxNTR4MjA5CisgICAg
UmVuZGVyUGFydE9iamVjdCB7SUZSQU1FfSBhdCAoMCwwKSBzaXplIDE1NHgyMDQgW2JvcmRlcjog
KDJweCBpbnNldCAjMDAwMDAwKV0KKyAgICAgIGxheWVyIGF0ICgwLDApIHNpemUgMTM1eDEwMTYK
KyAgICAgICAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDEzNXgyMDAKKyAgICAgIGxheWVyIGF0
ICgwLDApIHNpemUgMTM1eDEwMTYKKyAgICAgICAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDAp
IHNpemUgMTM1eDEwMTYKKyAgICAgICAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXpl
IDExOXgxMDAwIFtiZ2NvbG9yPSNDMEMwQzBdCisgICAgUmVuZGVyVGV4dCB6STogMSB7I3RleHR9
IGF0ICgwLDApIHNpemUgMHgwCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13
aW4vZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2Zh
c3Qvc3ViLXBpeGVsL3N1Yi1waXhlbC1pZnJhbWUtY29weS1vbi1zY3JvbGwtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAxMzc4NDYpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4v
ZmFzdC9zdWItcGl4ZWwvc3ViLXBpeGVsLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC1leHBlY3RlZC50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMTcgKzEsMzYgQEAKIGxheWVyIGF0ICgwLDApIHNpemUg
ODAweDYwMAogICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDYwMAotbGF5ZXIgYXQgKDAs
MCkgc2l6ZSA4MDB4NTIKLSAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDUy
Ci0gICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgsMTYpIHNpemUgNzg0eDIwCitsYXllciBhdCAo
MCwwKSBzaXplIDgwMHgyNjkKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAw
eDI2OQorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDE2KSBzaXplIDc4NHgyNDUKICAgICAg
IFJlbmRlckJsb2NrIHtQfSBhdCAoMCwwKSBzaXplIDc4NHgyMAotICAgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAzMTV4MTkKLSAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCww
KSB3aWR0aCAzMTU6ICJUaGUgaWZyYW1lIGJlbG93IHNob3VsZCByZW1haW4gZ3JleSB3aGVuIHNj
cm9sbGluZy4iCi1sYXllciBhdCAoOCw1Mikgc2l6ZSAzMjV4MjMwCi0gIFJlbmRlckJsb2NrIChw
b3NpdGlvbmVkKSB6STogMSB7RElWfSBhdCAoOCw1Mikgc2l6ZSAzMjV4MjMwCi0gICAgUmVuZGVy
UGFydE9iamVjdCB7SUZSQU1FfSBhdCAoMTAsMTApIHNpemUgMzA0eDIwNSBbYm9yZGVyOiAoMnB4
IGluc2V0ICMwMDAwMDApXQotICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAyODV4MTAxNgotICAg
ICAgICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgMjg1eDIwMAotICAgICAgbGF5ZXIgYXQgKDAs
MCkgc2l6ZSAyODV4MTAxNgotICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6
ZSAyODV4MTAxNgotICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgMjY5
eDEwMDAgW2JnY29sb3I9I0MwQzBDMF0KLSAgICBSZW5kZXJUZXh0IHpJOiAxIHsjdGV4dH0gYXQg
KDAsMCkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUg
NDY1eDE5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNDY1OiAiVGhlIGlmcmFt
ZXMgYmVsb3cgc2hvdWxkIHJlbWFpbiBncmV5IHdpdGggbm8gcmVwYWludCBhcnRpZmFjdHMgd2hl
biBzY3JvbGxpbmcuIgorICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMzYpIHNpemUgNzg0
eDIwOQorICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDE1NHgyMDkKKyAg
ICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxNTQsMTg5KSBzaXplIDR4MTkKKyAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoMTU0LDE4OSkgd2lkdGggNDogIiAiCisgICAgICAgIFJlbmRlckJsb2Nr
IHtESVZ9IGF0ICgxNTgsMCkgc2l6ZSAxNTR4MjA5CisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0
fSBhdCAoMCwwKSBzaXplIDB4MAorbGF5ZXIgYXQgKDgsNTIpIHNpemUgMTU0eDIwOQorICBSZW5k
ZXJCbG9jayAocmVsYXRpdmUgcG9zaXRpb25lZCkge0RJVn0gYXQgKDAsMCkgc2l6ZSAxNTR4MjA5
CitsYXllciBhdCAoOCw1Mykgc2l6ZSAxNTR4MjA5CisgIFJlbmRlckJsb2NrIChyZWxhdGl2ZSBw
b3NpdGlvbmVkKSB7RElWfSBhdCAoMCwwKSBzaXplIDE1NHgyMDkKKyAgICBSZW5kZXJQYXJ0T2Jq
ZWN0IHtJRlJBTUV9IGF0ICgwLDApIHNpemUgMTU0eDIwNCBbYm9yZGVyOiAoMnB4IGluc2V0ICMw
MDAwMDApXQorICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxMzV4MTAxNgorICAgICAgICBSZW5k
ZXJWaWV3IGF0ICgwLDApIHNpemUgMTM1eDIwMAorICAgICAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSAx
MzV4MTAxNgorICAgICAgICBSZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSAxMzV4MTAx
NgorICAgICAgICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgMTE5eDEwMDAgW2Jn
Y29sb3I9I0MwQzBDMF0KKyAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAK
K2xheWVyIGF0ICgxNjYsNTIpIHNpemUgMTU0eDIwOQorICBSZW5kZXJCbG9jayAocmVsYXRpdmUg
cG9zaXRpb25lZCkge0RJVn0gYXQgKDAsMCkgc2l6ZSAxNTR4MjA5CitsYXllciBhdCAoMTY2LDUz
KSBzaXplIDE1NHgyMDkKKyAgUmVuZGVyQmxvY2sgKHJlbGF0aXZlIHBvc2l0aW9uZWQpIHtESVZ9
IGF0ICgwLDApIHNpemUgMTU0eDIwOQorICAgIFJlbmRlclBhcnRPYmplY3Qge0lGUkFNRX0gYXQg
KDAsMCkgc2l6ZSAxNTR4MjA0IFtib3JkZXI6ICgycHggaW5zZXQgIzAwMDAwMCldCisgICAgICBs
YXllciBhdCAoMCwwKSBzaXplIDEzNXgxMDE2CisgICAgICAgIFJlbmRlclZpZXcgYXQgKDAsMCkg
c2l6ZSAxMzV4MjAwCisgICAgICBsYXllciBhdCAoMCwwKSBzaXplIDEzNXgxMDE2CisgICAgICAg
IFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDEzNXgxMDE2CisgICAgICAgICAgUmVu
ZGVyQm9keSB7Qk9EWX0gYXQgKDgsOCkgc2l6ZSAxMTl4MTAwMCBbYmdjb2xvcj0jQzBDMEMwXQor
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MApJbmRleDogTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCShyZXZpc2lvbiAxMzc4
NDYpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCSh3
b3JraW5nIGNvcHkpCkBAIC00MDY5LDYgKzQwNjksMTQgQEAgQnVnKGRwcmFua2UpIFsgV2luIF0g
d2ViYXVkaW8vY29kZWMtdGVzdAogCiB3ZWJraXQub3JnL2IvMTAwMDIzIFsgTWFjIF0gZmFzdC9z
dWItcGl4ZWwvZmlsZS11cGxvYWQtY29udHJvbC1hdC1mcmFjdGlvbmFsLW9mZnNldC5odG1sIFsg
RmFpbHVyZSBJbWFnZU9ubHlGYWlsdXJlIF0KIAorIyBOZWVkcyByZWJhc2VsaW5lIGFmdGVyIGJv
dHMgY3ljbGUKK0J1ZyhsZXZpdykgWyBMaW51eCBXaW4gTWFjIF0gZmFzdC9zdWItcGl4ZWwvc3Vi
LXBpeGVsLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC5odG1sIFsgUGFzcyBJbWFnZU9ubHlGYWlsdXJl
IEZhaWx1cmUgXQorQnVnKGxldml3KSBbIExpbnV4IFdpbiBNYWMgXSBmYXN0L3N1Yi1waXhlbC90
cmFuc2Zvcm1lZC1pZnJhbWUtY29weS1vbi1zY3JvbGwuaHRtbCBbIFBhc3MgSW1hZ2VPbmx5RmFp
bHVyZSBGYWlsdXJlIF0KK0J1ZyhsZXZpdykgWyBMaW51eCBXaW4gTWFjIF0gcGxhdGZvcm0vY2hy
b21pdW0vZmFzdC9mb3Jtcy9zdWdnZXN0aW9uLXBpY2tlci9kYXRlLXN1Z2dlc3Rpb24tcGlja2Vy
LWFwcGVhcmFuY2Utd2l0aC1zY3JvbGwtYmFyLmh0bWwgWyBQYXNzIEltYWdlT25seUZhaWx1cmUg
XQorQnVnKGxldml3KSBbIExpbnV4IFdpbiBNYWMgXSBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Zv
cm1zL3N1Z2dlc3Rpb24tcGlja2VyL21vbnRoLXN1Z2dlc3Rpb24tcGlja2VyLWFwcGVhcmFuY2Ut
d2l0aC1zY3JvbGwtYmFyLmh0bWwgWyBQYXNzIEltYWdlT25seUZhaWx1cmUgXQorQnVnKGxldml3
KSBbIExpbnV4IFdpbiBNYWMgXSBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Zvcm1zL3N1Z2dlc3Rp
b24tcGlja2VyL3dlZWstc3VnZ2VzdGlvbi1waWNrZXItYXBwZWFyYW5jZS13aXRoLXNjcm9sbC1i
YXIuaHRtbCBbIFBhc3MgSW1hZ2VPbmx5RmFpbHVyZSBdCitCdWcobGV2aXcpIFsgTGludXggXSBm
YXN0L2RvbS9XaW5kb3cvd2Via2l0Q29udmVydFBvaW50Lmh0bWwgWyBGYWlsdXJlIF0KKwogd2Vi
a2l0Lm9yZy9iLzEwMDQ3OCAgWyBNYWMgXSBjc3MzL2ZpbHRlcnMvY3VzdG9tL2VmZmVjdC1jdXN0
b20uaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogCiB3ZWJraXQub3JnL2IvMTAwNDI0IGVkaXRp
bmcvc2VsZWN0aW9uL3VzZXItc2VsZWN0LWFsbC1zZWxlY3Rpb24uaHRtbCBbIEZhaWx1cmUgXQpJ
bmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvcmFkaW8tYnV0dG9u
LWdyb3VwLW1lbWJlcnMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3JhZGlvLWJ1dHRvbi1ncm91cC1tZW1iZXJzLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMTM3ODQ2KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Fj
Y2Vzc2liaWxpdHkvcmFkaW8tYnV0dG9uLWdyb3VwLW1lbWJlcnMtZXhwZWN0ZWQudHh0CSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNTQsNyArMTU0LDcgQEAgQVhSb2xlRGVzY3JpcHRpb246IHJhZGlvIGJ1
dHRvbgogQVhDaGlsZHJlbjogPGFycmF5IG9mIHNpemUgMD4KIEFYSGVscDogCiBBWFBhcmVudDog
PEFYUmFkaW9CdXR0b246ICdZZXMnPgotQVhTaXplOiBOU1NpemU6IHs0MSwgMTl9CitBWFNpemU6
IE5TU2l6ZTogezQyLCAxOX0KIEFYVGl0bGU6IFllcwogQVhEZXNjcmlwdGlvbjogCiBBWFZhbHVl
OiAwCkBAIC0xODIsNyArMTgyLDcgQEAgQVhSb2xlRGVzY3JpcHRpb246IHJhZGlvIGJ1dHRvbgog
QVhDaGlsZHJlbjogPGFycmF5IG9mIHNpemUgMD4KIEFYSGVscDogCiBBWFBhcmVudDogPEFYUmFk
aW9CdXR0b246ICdObyc+Ci1BWFNpemU6IE5TU2l6ZTogezM2LCAxOX0KK0FYU2l6ZTogTlNTaXpl
OiB7MzcsIDE5fQogQVhUaXRsZTogTm8KIEFYRGVzY3JpcHRpb246IAogQVhWYWx1ZTogMApJbmRl
eDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZG9tL1dpbmRvdy93ZWJraXRDb252ZXJ0
UG9pbnQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9mYXN0L2RvbS9XaW5kb3cvd2Via2l0Q29udmVydFBvaW50LWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMTM3ODQ2KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZG9tL1dpbmRvdy93
ZWJraXRDb252ZXJ0UG9pbnQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xNTgsMjQg
KzE1OCwyNCBAQCBQQVNTIHkgaXMgNDAKIAogVGVzdCAxMQogUEFTUyB4IGlzIDE1OAotUEFTUyB5
IGlzIDM1NQorUEFTUyB5IGlzIDM1NgogUm91bmQgVHJpcCBvZiAoMCwwKQogUEFTUyB4IGlzIDAK
IFBBU1MgeSBpcyAwCiBQQVNTIHggaXMgMTc0Ci1QQVNTIHkgaXMgMzczCitQQVNTIHkgaXMgMzc0
CiBSb3VuZCBUcmlwIG9mICg1LDQwKQogUEFTUyB4IGlzIDUKIFBBU1MgeSBpcyA0MAogCiBUZXN0
IDEyCiBQQVNTIHggaXMgMTY4Ci1QQVNTIHkgaXMgNDI4CitQQVNTIHkgaXMgNDI5CiBSb3VuZCBU
cmlwIG9mICgwLDApCiBQQVNTIHggaXMgMAogUEFTUyB5IGlzIDAKIFBBU1MgeCBpcyAxODQKLVBB
U1MgeSBpcyA0NDYKK1BBU1MgeSBpcyA0NDcKIFJvdW5kIFRyaXAgb2YgKDUsNDApCiBQQVNTIHgg
aXMgNQogUEFTUyB5IGlzIDQwCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1s
aW51eC9mYXN0L3N1Yi1waXhlbC9zdWItcGl4ZWwtaWZyYW1lLWNvcHktb24tc2Nyb2xsLWV4cGVj
dGVkLnBuZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNwbGF5OiBmaWxlIG1hcmtlZCBhcyBhIGJpbmFy
eSB0eXBlLgpzdm46bWltZS10eXBlID0gaW1hZ2UvcG5nCgppVkJPUncwS0dnb0FBQUFOU1VoRVVn
QUFBeUFBQUFKWUNBSUFBQUFWRkJVbkFBQUFLWFJGV0hSamFHVmphM04xYlFBM01EQmhOMlJpCk5H
WTNPVGhpT1RKbVkyUmpPR0V3TVdJellXVXlZemhqWkxrYnluMEFBQnFQU1VSQlZIaWM3ZDFaY3hU
bnZjRGhGb05rZ1FDSDRCSmkKTFlQWXdSaEMyRXdNaVYxRkNtS2NWT0tVYnZoSStRYTU1WWFrNHNS
bE80bUpzNUFVdTRMWVpCWmJpRjBnUUt5V3pDYWRpNjR6WjQ1NgpSaHQvQ2MzVTgxeTR4dEowOTl2
dk82UDVNV3BKVlUxTlRRa0FBSEVtdk9vQkFBQlVHb0VGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENC
CkJRQVFUR0FCQUFRVFdBQUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJN
WUFFQUJCTllBQURCQkJZQVFEQ0IKQlFBUVRHQUJBQVRMclZxMXF1Z245dTdkMjFyQ2pCa3ovdk9m
L3l4ZXZIaTRCL3Y3My8rK2NPSENKRWw2ZTN0UG5UcDE2TkNoYytmTwo1WEs1R1RObXZPeDVERk5I
UjhmUVQyRllkeDd0d1F4ckQ2TTk4cXo4RW85bjJVR08vVVM5akxHWjVISHliQjIzUzVNZldPRUl5
K0x4CkQ0eU5pUU44YnVYS2xTdFdySmd3WWNMZXZYdWJtcHA2ZTN0UG56NTk3dHk1bzBlUGZ2ZmRk
eU00MlB2dnY1L2VPSFBtVEgxOS9Zb1YKS3pvNk9rNmZQcjFreVpLUmpQMGxET3NVamgwNzF0UFRN
MDRHVTFTcEViNzhub2NydjhUaldYYVFZejlSTDJOc0pubWNQRnZIN2RMawpuM1NGejc2eWVQd0RZ
NlBrdHdpblRadTJkT25TQ1JQKzd3NFRKa3hZc1dMRnRHblRkdTNhOVpKSHZYejU4c3laTTZ1cnEr
ZlBuLyt6Cm4vM3NKZmMyQXNNNmhROCsrR0QwUnBJTWN6QkZsUnJoeSsrNXN1M2R1emU5VVVrVGxU
K3BxRzFIOW14OW1XRVVHcmRMazMvU2pmYlgKQjZCTWxReXNIVHQyVkZkWDkvdGdkWFgxamgwN0Nx
dHJaTHE3dTE5K0owUDAvUG56N0FlSGRmUlJHbXArWUMrLy8xSjdHTE5KTGtjUApIanpJMzY2WWlT
bzhxYWh0Ui9Cc0xicXJvcy9FUVkzRzBveHNKUDNrQjFZeER4NGcxa0RmSWh6WTQ4ZVBEeDA2OVBE
aHd6VnIxalEyCk5pWko4dUxGaTJQSGpsMjdkbTNLbENsYnRteVpPblZxNGYwN09qcGFXbHAyN3R5
Wi90TTIvZS9XclZ0YldscVdMRmx5NXN5WnlaTW4KYjkrKy9lTEZpMTk5OVZWM2QzZHRiZTN5NWN2
VFN4eGFXbHEyYmR0MjZOQ2hCdzhlckYyN2RzYU1HWWNQSDM3OCtQSGJiNys5YU5HaQpVb2YrNXB0
dldscGE1c3laYy9YcTFhYW1wdXdwM0w1OXU3bTV1YWVuNTYyMzNzcGY1REh3V1NSSmN2WHExZVBI
ai9mMjlxNWV2YnF4CnNmSHg0OGVmZi81NWtpUkxseTVkdEdqUjU1OS9YbFZWbGN2bDFxMWJkK2ZP
bmJhMnRpUkpQdnJvbzF3dWw5OUQwWUZsNXpON3JQeTgKcFZzVjNpNTA3ZHExVTZkTzlmVDByRisv
UG52VzZYd1d6bm4ybEljeTU2VldhdWZPbmVtTnJWdTNIajU4K01HREIvbE5DajE4K1BESQprU1Az
NzkrZk0yZk81czJicTZxcUJoM1l2WHYzRGgwNmxDVEp3b1VMMTY5ZjM5emNuRTd2cjM3MXE0a1RK
Nlp6T09oYS9PaEhQenA1Cjh1VE9uVHNQSGp5WXp1SGN1WE8zYk5sU2Fna0tKNjNvR1dYWGFBU3pm
ZUxFaVUyYk5oMDlldlRSbzBjYk5teVlQMzkrdXZsd0p6bDcKVW5tbGRwVWYyNHNYTC9MYkxseTRN
UHRzYldwcXl1NGtTWksrdnI1VHAwNjF0YlhsY3JsVnExWTFOamIyRzBhcForSVFuenRGbDZiVQpn
M2JnUjExMkpObkJaNWRzMEZVdVhPc0JIdi9aeDN6Ui9RQ1ZZZVNCMWRIUjhlTWYvL2pPblR0SGp4
NU52K0tjUG4yNm9hRmh3NFlOCnQyN2RPbjc4K0xadDJ3cnZuNytXb3FtcEtiMm9LMG1TUC8zcFQw
K2VQSmswYWRJdmZ2R0w5RzZ0cmEzdnYvLytwRW1UN3R5NXMzLy8KL3NXTEY2Y2JkbloyYnR1Mjdl
Yk5tOGVPSFh2cnJiZCs4cE9mZEhWMUhUcDBLUDNLVmZUUTZldm8vZnYzcjE2OVd2UVVlbnA2dG0v
ZgozdDNkZmVUSWtkcmEybm56NWcxNkZsMWRYVzF0YlR0MjdPanE2anA0OE9EVXFWUHI2K3MvL1BE
RGZmdjJMVisrL0xYWFhtdHFhdnJrCmswOSsrdE9mMXRiV3pwdzU4L3IxNnp0MjdDaXNxMUlEeTg1
bjBXTjk4TUVIbjMzMldickp6cDA3Ly96blAvYzdxVnUzYmwyNGNHSGIKdG0wMU5UVVhMbHpJbnZX
UkkwZjZ6WG4ybEljeTU2VldLci9XSFIwZFc3ZHV2WHYzN3VIRGg3TXZkUWNQSGx5eFlzV2NPWFBP
blR2Mwp1OS85THBmTFRadzRjZUNCYmQyNmRmTGt5Y2VPSFZ1OWVuV1NKRC84NFE5djNMang3cnZ2
cG5XVkpNbVVLVk1HWFl1Ly9PVXY2U0IzCjdOaVJmeHlXV29LOFVtZFVkSTJHTzl2cGZicTZ1dDU3
NzcyblQ1OGVQbnc0bDh2Tm1UTm5CSk9jUGFtODdLNnlZOHR2Kzhrbm4yU2YKclVWM2tpVEoyYk5u
YTJwcWZ2N3puMSs1Y3FXMXRiV3hzYkhmTUVvOUU0ZXlYdWx6WnloZmJZYnlxTXVPSkR2NDdMUU11
c3FGRDVJQgpIaTNaeDN5YWowQkZHdm1iMjRzWEw2NnVybTVvYU1oZmducmx5cFVqUjQ3OC92ZS8v
L2UvLzMzNzl1MSs5eTk2cGNLSEgzNllKRW42CldwTGF0V3RYYlcxdGUzdjc4ZVBIMDM5U3B4c3VX
TENndXJwNjd0eTV6NTQ5Vzd4NGNVMU56Y3laTTU4K2ZUckFvU2RQbm56ejVzM1oKczJjWGZiMUpr
bVQrL1BtNVhHN3ExS2tiTm13NGUvYnNVTTZpcGFWbC9mcjFOVFUxRFEwTmE5ZXVQWDc4ZUpJa2t5
Wk5talZyMXZYcgoxNU1rNmVycSt1Njc3OUxiVjY1Y2VmUE5OMnRxYXZydHBPakFzdk5aOUZoMWRY
WDVUYkx2cmlWSmN1Yk1tZlhyMTlmVjFWVlhWeGU5Ckhqazc1OWxUSHNxY2wxcXA1SCt2bTBrM2FX
aG95RzlTNlBIangzUG16TW5sY3N1V0xaczJiZHBISDMwMDZNQ3FxcXJlZU9PTjJiTm4KdDdlM0ow
blMyZGxaVjFjM2ZmcjB3dDBPdWhZRFhER1RYWUs4VW1kVWRJMkdPOXZwemhzYkc2dXJxK3ZxNm43
d2d4K2NPSEVpWkpMNwpuVUsvWFdYSGxqZkFWWDM5ZHBJa1NWdGIyNkpGaTNLNTNJSUZDNHB1T01B
emNZalBuYUY4dFJuS2hHUkhraDE4ZGxvR1hlVitrMVpxCkpObkhmTkg5QUpWaDVPOWdwUXJmNVg3
eTVFbXBsRW1TcE4rN09LbnM1UXYzN3QxcmJtNmVQWHYyTysrOGs3NDlVN2hoNGVFR1BmUzIKYmR0
T25qeDU5dXpaVFpzMnZmSEdHd09jeFpRcFUvSlhqUXg4RmwxZFhiVzF0ZW50ZWZQbU5UYzNwN2Zu
enAzN3pUZmZMRnk0OE91dgp2MTZ5Wk1uVnExY2JHeHZiMjl2ZmVlZWQ3RTRHR0ZqaFNaVTYxc0R1
M2J1WGo3RHNWWFJKc1RuUG52SlE1bnlBbFNvOFJLbnZneXhZCnNPRDgrZk5MbHk2OWNlUEdreWRQ
aGppd0pFa1dMVnEwZi8vK1pjdVdmZjMxMTBWL2VuL2d0U2o2T0N4VWRNQ2x6bWpRTlJydWJDZEoK
OHZycnIzZDNkNmUzWDNLU0MyVjNOY0RGUTZWbUtidVRKRWw2ZW5xS1B0THlCbjRtRHYyNU0vQlRm
aWdUa2gxSmR2RFphUm5pTTNIUQpwY2srNW9FS0ZubDU1clJwMC9LM0wxKytQTEtkSERod1lOT21U
U3RYcm56dHRkZGU4dENUSjAvZXZIbnpoZzBiMGd0M0J2RHc0Y1BYClgzOTlnRjBWSHFpam95Tzkv
ZUxGaS95cnhjeVpNKy9ldmZ2NDhlTzdkKysrL2ZiYkR4NDh1SFhyVmk2WEs5eGIzaEFIVnVwWS9m
VDIKOWhiKzc5eTVjKy9kdTVmZWZ2YnNXZllPUlErVXZ6MzBoUnZaU3VVMU5qYmV1SEhqNDQ4L1Bu
MzY5S1pObTRZK3NMcTZ1cnE2dWt1WApMdDI1YzJmdTNMblpyWWExRmk5cGlHdlViNVA4N2NMWnpp
OVRkM2QzL2o0dk9jbUZRblpWZENmVjFkVjlmWDBEYkRYd0EzNWs2eld5CkIyMTJKSU1PUGhuUkto
YzFsTWM4VURFR0Q2ejAxYnFycXl2L1pTajk1M1g2cTEvU2QrelQyN05temJwMDZkTHo1OCt2WExt
Uy9aS1gKYnRYZDNaM2UrZjc5Ky9rTkN3dmc2ZE9uRHg4KzdPbnB1WFRwVXBJa0wxNjhLSFc0OUwv
cFo0c2VldS9ldlZldlhwMDBhVkxSSHhySwo1WEx0N2UzUG56OS85T2hSZW8xUit2SHNyZ29Ic0c3
ZHVoTW5UdHk5ZS9mSmt5ZkhqeDlmczJaTmZtOHpaODQ4Y09EQWdnVUxKa3lZCk1HdldyS05Iank1
WXNLRG9sUFliV0trVExIV3NtcHFham82T1o4K2VwWmRZZmZiWlo0VjdXTE5tVGJyVjgrZlBXMXRi
a3lUNTlOTlAKQzQrZW5mT0JUN25VbkpkYXFlN3U3bSsvL2JibzVvVU9Iank0WmN1V1gvLzYxenQz
N214b2FCaml3RktMRmkwNmR1eFlPdFZGVjNhQQp0Y2dQTWttU3FxcXEyN2R2Ly9XdmZ5MTF2bm1s
enFqVUdnMXJ0bE1uVDU1OC92eDVUMC9QZi8vNzMyWExscVVmSE1FazUwK3EzMGl5CnU4cU9yZCtF
OUh1MkZ0MUpraVFORFEyZG5aMTlmWDBQSHo1TUwxcnZONHhCbjRtRHJ0ZFF2dG9NNVZHWEhVbDI4
TmxwS2JySytZSDEKdXpIQTBtUWY4MEFGSy9tYjNGTjc5KzVOZjVibjRzV0xyYTJ0NlowLy92ampK
RW5PbnorL2F0V3FQL3poRC9uYk0yYk0rT3FycjQ0ZApPL2I0OGVQMTY5ZjMrNGR5dXRXRkN4Zk9u
eitmSkVsYlcxdHJhMnQ2dTcyOWZlblNwZW5kSms2YzJOemMzTm5adVhidDJ1dlhyL2YwCjlLUS9r
WlE5WEg2SHBRN2QydHJhME5CdzRNQ0IxYXRYZi8vNzMrOTNhck5teldwdGJXMXBhZW5zN0Z5MWF0
WHMyYlBUajJkM1ZYaSsKa3lkUG5qQmh3dEdqUnk5ZXZMaDA2ZEtaTTJmbWQ5algxM2Z4NHNYTm16
ZW4zeWxvYjIvZnVIRmowVysxOUJ0WXFma3NkYXhjTHRmYwozTnpSMGJGaXhZcWJOMit1VzdmdWIz
LzdXMzZyaVJNbnpwZ3g0K0RCZ3hjdVhGaTZkT25kdTNmWHJWdFhlTFZXZXJqQ09SLzRsRXZOCmVh
bVZ1bkRoUWxwKzJjMExKK0hLbFNzdExTM3Azd1k0Zi81OGJXM3RQLy81ejBFSGxuNTg2dFNwWjgr
ZTNiaHhZNm52VEEyd0ZvV24KOE9qUm85YlcxbzBiTjM3eHhSY0REL2lQZi96anNOWm9XTE9kUGlU
ZWZQUE5mLzNyWDVjdlgxNjRjR0grdDRHUFlKTHpKMVY0dVY3UgpYUjA0Y0tEZjJQcE5TTDluYTlG
RmIyaG9xSyt2YjJscGFXNXV2blBuenZMbHk3LzN2ZThWN3FxdXJtN2daK0pRMW1zb1gyMUtyVkho
CmdiSWp5UTQrdTJSRlZ6ay9zUHhDcERjR1dKcnNZMzc2OU9sZmZ2bWxYLzRPRmFscWdPdU5ZSlE4
ZVBEZ3laTW42WTlpOWZYMVBYancKNE1zdnZ4ejZOYiszYjk4K2QrN2N1KysrTzVwakhGT2xmdlNQ
aXZHU2ozbWc3UGdWZWJ3QysvZnZmL1RvVWZyVFZjK2VQZXZzN0p3MQphOVlRdCszdDdVMnZGQjdO
QVk2cDlMdEk0L01Qd2hEbFpSN3pRRG55RGhhdndMVnIxODZkTzNmLy92M2UzdDY2dXJyWnMyZXZY
TGt5Cisvc3Nzcjc0NG9zblQ1NXMyTENoa2k1aHlmOVZHVS9HQ2piaXh6eFFwZ1FXQUVBdzN5SUVB
QWdtc0FBQWdna3NBSUJnQWdzQUlKakEKQWdBSUpyQUFBSUlKTEFDQVlBSUxBQ0NZd0FJQUNDYXdB
QUNDQ1N3QWdHQUNDd0FnbU1BQ0FBZ21zQUFBZ2drc0FJQmdBZ3NBSUpqQQpBZ0FJSnJBQUFJSk5M
UFdKdHJhMnNSd0hvNnF4c1RGLzI4cFdrc0tWQldEODhBNVc1WnMzYjk2ckhnS2p3c29DakZzbDM4
RksvZVkzCnZ4bWJjVEIwMjdadFM1SmszNzU5bloyZHBlNVRYMSsvZmZ2MkpFbnUzYnVYSk1uMDZk
UHpuL3J0YjMrYkpNbVNKVXRHZmFBTTA3QlcKOXBlLy9PWFlqUXlBWVJva3NCaWY5dXpaczN2Mzdw
ZS9EK09ObFFXb0RMNUZXSDcyN2RzM2xOZlgzYnQzNzl1M2J3ekdReFFyQzFBeApCRmI1R2VEN1J5
TytKK09CbFFXb0dBSUxBQ0NZd0FJQUNDYXdLc1NlUFh0ZTlSQVlGVlZWVmE5NkNBQU1tOENxQkds
ZGFhektrOWFWCnhnSW9Pd0tyN0JWMmxjYXFKSVZkcGJFQXlvdkFLbS9ab3RKWWxTRmJWQm9Mb0l6
NFJhUGx6UytjckZSOWZYMnZlZ2dBakp4M3NBQUEKZ2drc0FJQmdBZ3NBSUpocnNNcVNLOWtybFpV
RnFBd0NxeXp0MnJVcis4RnZ2LzIyMzBmKzhZOS9qTWx3QUlEL1IyREJPQ0tkQVNxRAphN0FBQUlJ
SkxBQ0FZQUlMQUNDWXdBSUFDQ2F3QUFDQ0NTd0FnR0FDQ3dBZ21NQUNBQWdtc0FBQWdna3NBSUJn
QWdzQUlKaS9SVmoyClB2MzAwOEwvZmUrOTkxN1ZTQUNBbE1BcWUvay9ENXo5azhDVU5la01VTDRF
Rm94VDBobWdmQW1zc3VkOURnQVlid1JXMmZNK1I2V1MKemdEbFMyREJPQ1dkQWNxWHdDcDczdWNB
Z1BGR1lKVTk3M05VS3VrTVVMNEVGb3hUMGhtZ2ZQbE43Z0FBd1FRV0FFQXdnUVVBRUV4ZwpBUUFF
RTFnQUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJCQllBUURCL0txY3M5ZnNyZFFEQXVDS3d5
dEthTld1R2NyY1RKMDZNCjlraUlKWjBCS29QQWduRkVPZ05VQnRkZ0FRQUVFMWdBQU1FRUZnQkFN
SUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRHQUIKQUFRVFdBQUF3UVFXQUVBd2dRVUFF
RXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllBQURCQkJZQVFEQ0JCUUFRVEdBQgpB
QVFUV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFB
REJCQllBUURDQkJRQVFUR0FCCkFBUVRXQUFBd1FRV0FFQXdnUVVBRUV4Z0FRQUVFMWdBQU1FRUZn
QkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRHQUIKQUFRVFdBQUF3UVFXQUVBd2dR
VUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllBQURCQkJZQVFEQ0JCUUFRVEdB
QgpBQVFUV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJO
WUFBREJCQllBUURDQkJRQVFUR0FCCkFBUVRXQUFBd1FRV0FFQXdnUVVBRUV4Z0FRQUVFMWdBQU1F
RUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRHQUIKQUFRVFdBQUF3UVFXQUVB
d2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllBQURCQkJZQVFEQ0JCUUFR
VEdBQgpBQVFUV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFNRUVGZ0JBTUlFRkFCQk1ZQUVB
QkJOWUFBREJCQllBUURDQkJRQVFUR0FCCkFBUVRXQUFBd1FRV0FFQXdnUVVBRUV4Z0FRQUVFMWdB
QU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRHQUIKQUFRVFdBQUF3UVFX
QUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllBQURCQkJZQVFEQ0JC
UUFRVEdBQgpBQVFUV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFNRUVGZ0JBc0ltdmVnQ014
SWtUSjE3MUVCZ1ZWaGFnTWdpc3NyUjc5KzZoCjNHM1BuajJqUFJKaVdWbUF5dUJiaEFBQXdRUVdB
RUF3Z1FVQUVFeGdBUUFFYzVGN2VhdXFxc3Arc0srdmIreEhRaXdyQzFEV3ZJTlYKM3JLdnVGNkRL
NE9WQlNockFxdnNGYjd1ZWcydUpGWVdvSHdKckVxUXZ2cDZEYTQ4VmhhZ1RBbXNDdUUxdUZKWldZ
QnlKTEFBQUlJSgpyUEpUWDE4ZmZrL0dBeXNMVURFRVZ2blp2bjM3VVA0VTNaNDllN1p2M3o0RzR5
R0tsUVdvR0g0UFZsbmF2WHYzdm4zN09qczdTOTJoCnZyNStpSDgybUhIRnlnSlVocXFtcHFhaW4y
aHJhMHVTWk42OGVXTTdIa1pGVFUxTi9yYVZyU1NGS3d2QStESFF0d2k5QmxjcUt3c0EKbzZya3R3
Z2JHeHZIY2h5TUdTc0xBS1BOUmU0QUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJCQllBUURD
QkJRQVFUR0FCQUFRVApXQUFBd1FRV0FFQXdnUVVBRUV4Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJC
TVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRHQUJBQVFUCldBQUF3UVFXQUVBd2dRVUFFRXhnQVFB
RUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllBQURCQkJZQVFEQ0JCUUFRVEdBQkFBUVQKV0FB
QXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJCQllB
UURDQkJRQVFUR0FCQUFRVApXQUFBd1FRV0FFQXdnUVVBRUV4Z0FRQUVFMWdBQU1FRUZnQkFNSUVG
QUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRHQUJBQVFUCldBQUF3UVFXQUVBd2dRVUFFRXhn
QVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllBQURCQkJZQVFEQ0JCUUFRVEdBQkFBUVQK
V0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFBREJC
QllBUURDQkJRQVFUR0FCQUFRVApXQUFBd1FRV0FFQXdnUVVBRUV4Z0FRQUVFMWdBQU1FRUZnQkFN
SUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRHQUJBQVFUCldBQUF3UVFXQUVBd2dRVUFF
RXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllBQURCQkJZQVFEQ0JCUUFRVEdBQkFB
UVQKV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJOWUFB
REJCQllBUURDQkJRQVFUR0FCQUFRVApXQUFBd1FRV0FFQXdnUVVBRUV4Z0FRQUVFMWdBQU1FRUZn
QkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRHQUJBQVFUCldBQUF3UVFXQUVBd2dR
VUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllBQURCQkJZQVFEQ0JCUUFRVEdB
QkFBUVQKV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFNRUVGZ0JBTUlFRkFCQk1ZQUVBQkJO
WUFBREJCQllBUURDQkJRQVFUR0FCQUFRVApXQUFBd1FRV0FFQXdnUVVBRUV4Z0FRQUVFMWdBQU1F
RUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRHQUJBQVFUCldBQUF3UVFXQUVB
d2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllBQURCQkJZQVFEQ0JCUUFR
VEdBQkFBUVQKV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFNRUVGZ0JBTUlFRkFCQk1ZQUVB
QkJOWUFBREJCQllBUURDQkJRQVFUR0FCQUFRVApXQUFBd1FRV0FFQXdnUVVBRUV4Z0FRQUVFMWdB
QU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRHQUJBQVFUCldBQUF3UVFX
QUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllBQURCQkJZQVFEQ0JC
UUFRVEdBQkFBUVQKV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFNRUVGZ0JBTUlFRkFCQk1Z
QUVBQkJOWUFBREJCQllBUURDQkJRQVFUR0FCQUFRVApXQUFBd1FRV0FFQXdnUVVBRUV4Z0FRQUVF
MWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRHQUJBQVFUCldBQUF3
UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllBQURCQkJZQVFE
Q0JCUUFRVEdBQkFBUVQKV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFNRUVGZ0JBTUlFRkFC
Qk1ZQUVBQkJOWUFBREJCQllBUURDQkJRQVFUR0FCQUFRVApXQUFBd1FRV0FFQXdnUVVBRUV4Z0FR
QUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRHQUJBQVFUCldB
QUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllBQURCQkJZ
QVFEQ0JCUUFRVEdBQkFBUVQKV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFNRUVGZ0JBTUlF
RkFCQk1ZQUVBQkJOWUFBREJCQllBUURDQkJRQVFUR0FCQUFRVApXQUFBd1FRV0FFQXdnUVVBRUV4
Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRRENCQlFBUVRHQUJBQVFU
CldBQUF3UVFXQUVBd2dRVUFFRXhnQVFBRUUxZ0FBTUVFRmdCQU1JRUZBQkJNWUFFQUJCTllBQURC
QkJZQVFEQ0JCUUFRVEdBQkFBUVQKV0FBQXdRUVdBRUF3Z1FVQUVFeGdBUUFFRTFnQUFNRUVGZ0JB
TUlFRkFCQk1ZQUVBQkJOWUFBREJCQllBUURDQkJRQVFUR0FCQUFRVApXQUFBd1FRV0FFQXdnUVVB
RUV4Z0FRQUVFMWdBQU1FRUZnQkFNSUVGQUJCTVlBRUFCQk5ZQUFEQkJCWUFRTEQvQWVDbnpKaVo3
MlVFCkFBQUFBRWxGVGtTdVFtQ0MKCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS1saW51eC9mYXN0L3N1Yi1waXhlbC90cmFuc2Zvcm1lZC1pZnJhbWUtY29weS1vbi1zY3JvbGwt
ZXhwZWN0ZWQucG5nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KQ2Fubm90IGRpc3BsYXk6IGZpbGUgbWFya2VkIGFzIGEg
YmluYXJ5IHR5cGUuCnN2bjptaW1lLXR5cGUgPSBpbWFnZS9wbmcKSW5kZXg6IExheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2Zhc3Qvc3ViLXBpeGVsL3RyYW5zZm9ybWVkLWlmcmFt
ZS1jb3B5LW9uLXNjcm9sbC1leHBlY3RlZC5wbmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0tbGludXgvZmFzdC9zdWItcGl4ZWwvdHJhbnNmb3JtZWQtaWZyYW1l
LWNvcHktb24tc2Nyb2xsLWV4cGVjdGVkLnBuZwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2Zhc3Qvc3ViLXBpeGVsL3RyYW5zZm9ybWVkLWlmcmFt
ZS1jb3B5LW9uLXNjcm9sbC1leHBlY3RlZC5wbmcJKHdvcmtpbmcgY29weSkKClByb3BlcnR5IGNo
YW5nZXMgb246IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2Zhc3Qvc3ViLXBp
eGVsL3RyYW5zZm9ybWVkLWlmcmFtZS1jb3B5LW9uLXNjcm9sbC1leHBlY3RlZC5wbmcKX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fXwpBZGRlZDogc3ZuOm1pbWUtdHlwZQojIyAtMCwwICsxICMjCitpbWFnZS9wbmcKXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQoKaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQXlBQUFB
SllDQUlBQUFBVkZCVW5BQUFBS1hSRldIUmphR1ZqYTNOMWJRQTVOemt5TnpObQpZakU0T1dKak5q
TmpZalUzTTJZNU1XUXhORFl4WldVME9kaUpvZFFBQUNBQVNVUkJWSGljN2QxYmpGeG5ZY0R4Yisz
MWV0Zlp0YjJ4CkhkL2lPSEhqbUdBSHg0NXRCUWZTcENvRjVRbXBSVUlJMFVibFV0UytwQVVpZUtp
RWlsQXJxaUlpMHFaUTZsQlZJWUNxWEVRUzBrWWsKQlNVMGdzUUoyQkRIeG81amIycGpiK3kxMTk1
ZDcrWDA0ZEJoc25QWjJaMXZaczdNL0g1UEo3UG44cDNiK3ArNWJVZVNKQUVBZ0hqbQpOWG9BQUFD
dFJtQUJBRVFtc0FBQUloTllBQUNSQ1N3QWdNZ0VGZ0JBWkFJTEFDQXlnUVVBRUpuQUFnQ0lUR0FC
QUVRbXNBQUFJaE5ZCkFBQ1JDU3dBZ01nRUZnQkFaQUlMQUNBeWdRVUFFSm5BQWdDSVRHQUJBRVFt
c0FBQUlpc1pXQjJsUGY3NDQ1czJiWnJEeHQ3OTduZW4KRStQajQ1LzV6R2VXTDErK2ZQbnlyM3ps
SzNNY2V4Vm10UXR6M3QrNnJiL1VHbW85OGtLNVU1eGxoWU9zLzRHcVJuME9ja2J1MXN5ZQptdHpB
OGtmWUZOYy9VQ2RKQ1NHRXYvN3J2eDRiRzB1bmt5UVpIUjI5Kys2N1F3aHIxcXdwczJBbFB2ZTV6
ejMyMkdORFEwTVBQdmpnCjcvek83MVN6cXJtWjFTNWNlZVdWVmU1dnhNRVVWV3FFcTFhdHF1bklX
MGIxcDZDRk5mWnV6ZXlweWQxMHRmNzlBRFNwamlSSmlvYlgKbGkxYm5udnV1Y1dMRjRjUU9qcCtN
OXZRME5BdHQ5enl3Z3N2ZEhkM2wxcXdFdXZYcno5MDZOQ0NCUXZtdklZcWpZMk5WYjRMczVxNQox
b09aMVJwcVBmSm1sN3V3VytsQTVYWXExckp6dTF1ckdVYSt6SjZhM01BeU8wS2dzVXErUkxodjM3
NjBydkl0V2JKazM3NTlDeGN1CnJIS3J4NDhmcjA5ZEpVbHk0Y0tGd3NkbnRRdlY3MitoL0lGVnYv
NVNhNmpGeUZ2Ry92MzdjOU10YzZEeWR5cldzbk80V3d0WFZlcE8KbkZIMFV6UG5rVXlURzFqTFhE
eEFYSE4vay91aFE0ZDI3ZHExZVBIaXIzLzk2K2tqbzZPakgvbklSeFl0V3JSMTY5YURCdzlPbXov
MwpUb1dPam82cHFhbjA3VnhQUFBIRTlkZGYvMC8vOUU4clY2N2N1WE5uQ09GZi8vVmZOMnpZc0dE
QmdpdXZ2UExlZSs4TklhVHp2UGJhCmE3dDM3MTY4ZVBFM3Z2R04vZnYzYjkrK3ZhK3Y3Nzc3N2l1
ejZYLzh4MzljdEdqUm4vN3BuM1owZEJUZGhmLys3Ly9ldkhsemYzLy8KVjcvNjFkeUQ1ZmNpaFBE
ZDczNTM5ZXJWeTVjdi8rZC8vdWYwT0tUNzhxbFBmU3FkN3V6czdPdnIrK1kzdi9sbmYvWm42WTlH
UjBmegoxMUIwWUlYSHMzQmI0Zi9mRzFjNG5lK2hoeDY2L3ZycisvcjZIbnp3d2NLZkZoN3p3bDJ1
NUpnWG5xbmNLVTRYLzlXdmZ2WE9kNzV6CjhlTEZ1VVh5L2ZLWHY3ejU1cHNYTGx6NHdROStjR0pp
b3BLQlBmamdnK2t1Zi9Takh3MGg1QTd2OFBCdzdoak9lQzRlZnZqaGRKQWYKK01BSDBtUDRSMy8w
UjJWT1FmNUJLN3BIaGVkb3RrZjcrOS8vL3ViTm0vZnUzWHZqalRkZWR0bGwzL3JXdDNLTHovWWdG
KzVVbVZWTgpHMXYrc2tYdjFxSXJDU0ZNVFUxOTVqT2ZXYnAwNmVyVnE3LzJ0YThWRHFQVW5WajV2
VlBKYjV0S3JyckNrUlFPdnZDVXpYaVdVek5lCi80WFhQTkRLS25rZHNYQzJFTUk5OTl4ejVzeVpK
NTU0WXRXcVZlbURuL3JVcDc3NXpXK09qbzQrL3ZqajczM3ZlNmN0c25yMTZ0eDYKY2hNclZxd0lJ
VHp5eUNPNTJhNjY2cXFqUjQrT2o0Ly84SWMvdk95eXkzSUw3dG16NTh5Wk05Lzk3bmY3Ky92dnVl
ZWVOOTk4ODhrbgpuMXkrZkhtWlRTOWV2UGpJa1NNUFBmUlEwZDBNSVR6d3dBTVhMbHg0OWRWWDMv
bk9kMzc3Mjk4dXM2cmNHcDUvL3ZuZi8vM2ZQMzM2CjlILys1Mzh1V2JMazZhZWZUcExrK1BIanEx
ZXZQbm55WkRyUG1qVnJUcHc0a1NUSndNREFtalZyM256enpXbWJMaHhZMGVOWmRGdEgKamh6SkxY
WGd3SUhDUS9yVVUwL2RldXV0aHc4ZlBuUG16T2MvLy9uQ2ZTODg1b1c3WE1reEwzV21jaFAzM0hQ
UDRPRGdZNDg5bGxzawozenZlOFk3MCtLZUQ3T25wbVhGZ2s1T1R6ejc3N09iTm0wK2RPcFVreWRU
VTFMcDE2MTU4OGNYODFjNTRMb3BlaDZWT1FVNnBQU3A2CmptWjd0Sys0NG9vUXduMzMzVGMwTkhU
NDhPRjN2ZXRkRHovODhKd1BjcW1idW5CVmhXUExMVnZxS0JXdUpFbVNMM3poQzEvODRoZEgKUmti
MjdObHp6VFhYRkM1VjVrNnM1TjZwOExkTkpWZGQ0VWdLQjE5NFdFcWQ1V21IYU1aVFUzak5GejFU
UUd1WWUyQ2xFeE1URS9QbQp6VXVuMHpkN3BoWXRXalJ0a1pHUmtjSmYyZW4vbms2YmMzUjA5T3Rm
Ly9xMmJkdlNIMTI4ZURGL2M3bnB5Y25KM0hUUlRWOS8vZlgzCjNYZmYrUGo0akR2MXkxLytjdnYy
N1dWV2xadjVsbHR1T1hMa1NEcTlaOCtlTFZ1MnBOTjMzbm5uTjc3eGpTUkpmdktUbjNSMGROeDMK
MzMxSmt2ejkzLy85M1hmZlhianB3b0VWUFo2bHRqVXRDd3BIK01vcnI2VFRaOCtlTFhwNHB6MVl1
TXVWSFBPazRFemxUbkgrSnZJWAp6N2RvMGFLUmtaRjBXNXMzYjY1d1lFbVMzSDMzM1gvM2QzK1hK
TW5UVHovOXJuZTlxM0RONWM5RjBlc3dLWEVLaWg2MC9EMHFkWTZLCkxsaHFwOUpYckhJenZQREND
eHMzYnN4Znc2d09jcG4vYTVxMnFzS3g1ZjZ6MUZFcVhFbVNKT3ZYcno5ejVzeTBiZVV2VmY1T25Q
SGUKcWZDM1RTVlhYZUZJQ2dkZmVGaG12Qk1yUERXRjF6elF3cW9OclB6cGhRc1hWcmllb291blhu
enh4WjA3ZDM3Kzg1OS81WlZYWnB5LwovS2FQSGozNndROStjTU9HRGM4KysyejVuYnAwNlZMNk50
VlNxOHJOM05YVmRlSENoWFI2ZUhnNE4vT2pqejU2eHgxM0pFbnlrWTk4CjVLNjc3bnJQZTk2VEpN
a05OOXp3aTEvOG9wS0JGZDJwVXRzcUgxZzlQVDJYTGwwcXVwdWxIaXkveTZXbXk1K3BNcWM0OWVk
Ly91ZC8KOHpkL2MrSENoVzkvKzlzclZxeW9mR0NIRHgrKzdycnJwcWFtL3ZBUC8vQ0JCeDRvbkdI
R2MxSDVkWlZ2VnVlbzFJS2xkbXJhMVppYgpadzRIdVZSZ3pYaG5WYkxDb2l1WlAzOSsrVDBxZnlk
V2ZyN3lwMmQxMFpZWnlZeURUeXE0RXlzOE5VV3ZlYUJWeFF5c2JkdTI1Ujc4CjkzLy85ekxyS2ZO
N2NNT0dEZWtUTUlPRGc1WC9RMWhtMHovNHdRL1dyMTlmZnFmMjd0MjdZOGVPTXF2SzM5Qi8vTWQv
cE5NblQ1NjgKL2ZiYjArbVJrWkZseTVZZFBIand1dXV1R3hzYlc3MTY5Vk5QUGJWejU4N0M3Ullk
V0ttZEtycXRFTUxVMUZSdU92K3JOSklrK2ZDSApQL3pqSC84NG5SNGFHc3JOVUdyZlo5emxVdFBs
ejlTTS85UzkvUExMdTNmdjd1N3UzclJwMDVOUFBsbjV3SklrZWQvNzNuZi8vZmV2CldiT21jTmVT
Q3M1RnhNQXFkWTVLTFZocXAwSUl1U3crZVBEZzFxMWIwK2s1SE9SU2dUWGpuVlhKQ291dVpQbnk1
Uk1URStYM09pbDkKSjFaK3ZwSzNIdm5jZ3pOZXRHVkdVc25neTl5Sk0wN2tUeGU5NW9GV05VTmdU
VTFOL2ZTblB3MGgvT1FuUDVtY25Fd2ZQSHIwYUFoaApZR0FnU1pJVEowNkVFSTRkTzVZa3lXYy8r
OW43Nzc5L2VIajRXOS82VnZxL3BQbGVmLzMxRU1McnI3OSs3Tml4RU1MZXZYdVRKRW1uClIwZEhj
N010WGJyMG9ZY2VHaGdZK1BLWHZ6eHYzcnlMRnkrbUM2YWJlK09OTjNMVEF3TURJWVNqUjQrVzJu
UUk0VHZmK2M2cnI3NjYKYk5teXdsMjc3TExMOXV6Wk16dzgvT3Fycis3YXRldnh4eDlQSHk5Y1ZU
cUE0OGVQSjBueTdMUFBYblBOTmYvelAvOXo4dVRKRDMzbwpReSs4OEVKdWhSLzR3QWUyYmR2MnQz
Lzd0MG1TM0hubm5WZGRkZFc5OTk1Yi9LQy9kV0Nsam1lcGJWMSsrZVZQUFBIRW1UTm4wbTk5ClhM
dDJiZjRJVDV3NDhlNTN2L3U1NTU0YkhoNytxNy82cXhEQzZ0V3I4N2RlZU14TDdYTDVZMTdxVEwz
Kyt1dnBHOFh5RjAvM0tOL2IKM3ZhMmRNQ3pHbGpxa1VjZTZlN3UvdXhuUDF2MDhKWS9GN2xCSmtu
UzJkbjV3eC8rY011V0xhVk9RVTZwUFNwelBjeHFwMElJZDkxMQoxN2x6NXdZR0J2N2dELzRnVnd4
ek9NaTVuWm8ya3NKVkZZNHR0MnpSdTdYb1NwSWsrZENIUHZUVVUwOU5UazcrNGhlL3lIMVJWdjR3
Cnl0K0o1YzlYNWI5dEtybnFDa2RTT1BqQ3cxTDBMT2R1dW1rVFpVNU40VFVQdExBWkFpdTgxYlFI
cDAyZk8zZnUvZTkvZjFkWDEvYnQKMjE5OTlkWHlxOHEzYnQyNjNHejMzSFBQb2tXTGR1M2FkZmJz
MmJlLy9lMmYvdlNuUzIxdXhrMkhFUDdsWC81bDhlTEZSVVBueFJkZgozTDE3ZDFkWDE5YXRXNy8z
dmUvbEhpOWMxYlRkdi9mZWU5UFBISDNuTzkvSlgrRUREenpRM2QxOSt2VHBKRWtlZnZqaHJxNnV3
Y0hCClVrYzFmMkNsZHFyVXRyNzg1UzlmZHRsbE45MTBVL28vL1k4OTl0aTBwWDcyczU5dDNMaHg3
ZHExVHo3NTVMWFhYcHUvZDdsTjVCL3oKOHJ0Y2Fyck1tU3F6UnptMzNISkw3a2Q5ZlgyNVQ0ZVZI
MWhxZkh4ODBhSkZyNzMyV3RIRFcvNWM1SS9ud3gvK2NIOS8vdzkrOElNWgpCenpiY3pTcm81M09s
bjdBN2NvcnIvenFWNythbTNrT0J6bTNVOU5HVW1wVitXTXJQQ0RUTmxTNGtpUkpUcDQ4K1o3M3ZL
ZTd1M3Y3Cjl1My85bS8vTm0xVnlVeDNZdVhuSzMrNjhvdDIydW1ZTnBMQ3dSY2VscUpudWVnaEtu
OXFDcS81SkVsMjc5NWQ5SmdBelM3T2x3SEMKclB6ODV6OC9mZnIwN2JmZkhrS1luSnpjdDIvZjd0
MjdLLzkyb2gvOTZFZGYrdEtYSG4zMDBWcU9zYTVpZlMwbm1WWGxOUTgwSFgvcwptUWE0NDQ0N0Ro
NDhtRDVMY2U3Y3VXZWVlZWFPTys2b2NObng4ZkYvK0lkLytNdS8vTXVhanJDZVRwNDhHVUpJWC8r
aVZWVnp6UVBOClNHRFJBRi81eWxmMjdObXpidDI2aFFzWDd0eTU4K2pSbytsM1BNN294aHR2M0xC
aHd5Yy8rY25iYnJ1dHhtT3NuL1JQUnFaZm5rU3IKbXZNMUR6UXBMMHdBQUVUbUdTd0FnTWdFRmdC
QVpBSUxBQ0F5Z2NYTTBqOUJDQUJVU0dBeGc3R3hzZTk5NzNzSER4NXM5RUFBb0dsMApObm9BWk5y
WTJOajN2Ly85WC8vNjE3Lys5YTlEQ0JzM2JtejBpQUNnQ1hnR2k1SnlkVFYvL3Z3UXdqUFBQT041
TEFDb2hNQ2l1RnhkCmRYVjFYWFhWVmN1V0xRc2FDd0FxSTdBb0lyK3UxcTVkdTJEQmdtWExsbWtz
QUtpUXdHSzZ3cnBLSDlkWUFGQWhnY1ZibEtxcmxNWUMKZ0VvSUxINnJmRjJsTkJZQXpFaGc4UnVW
MUZWS1l3RkFlUUtMRUdaVFZ5bU5CUUJsQ0N4bVhWY3BqUVVBcFFpc2RqZTN1a3BwTEFBbwpTbUMx
dFdycUtxV3hBS0NRd0dwZjFkZFZTbU1Cd0RRQ3EwM0ZxcXVVeGdLQWZBS3JIY1d0cTVUR0FvQWNn
ZFYyYWxGWEtZMEZBQ21CCjFWNXFWMWNwalFVQVFXQzFsVnJYVlVwakFZREFhaGYxcWF1VXhnS2d6
UW1zdGxEUHVrcHBMQURhbWNCcWZmV3ZxNVRHQXFCdENhd1cKMTZpNlNta3NBTnFUd0dwbGphMnJs
TVlDb0EwSnJKYVZoYnBLYVN3QTJvM0FhazNacWF1VXhnS2dyUWlzRnBTMXVrcHBMQURhaDhCcQpO
ZG1zcTVUR0FxQk5DS3lXa3VXNlNta3NBTnFCd0dvZDJhK3JsTVlDb09VSnJCYlJMSFdWMGxnQXRE
YUIxUXFhcTY1U0dndUFGaWF3Cm1sNHoxbFZLWXdIUXFnUldjMnZldWtwcExBQmFrc0JxWXMxZVZ5
bU5CVURyRVZqTnFqWHFLcVd4QUdneEFxc3B0VkpkcFRRV0FLMUUKWURXZjFxdXJsTVlDb0dVSXJD
YlRxbldWMGxnQXRBYUIxVXhhdTY1U0dndUFGaUN3bWtZNzFGVktZd0hRN0FSV2MyaWZ1a3BwTEFD
YQptc0JxQXUxV1Z5bU5CVUR6RWxoWjE1NTFsZEpZQURRcGdaVnA3VnhYS1kwRlFETVNXTm1scmxJ
YUM0Q21JN0F5U2wzbDAxZ0FOQmVCCmxVWHFxcERHQXFDSkNLek1VVmVsYUN3QW1vWEF5aFoxVlo3
R0FxQXBDS3dNVVZlVjBGZ0FaSi9BeWdwMVZUbU5CVURHZFRaNkFJU2cKcm1ZdkRhekJ3Y0Zubm5r
bWhMQng0OFlHRDZocWI3enh4bU9QUGRib1VkRGlQdmF4anpWNkNOQXVQSVBWZU9wcWJscnNlYXls
UzVkdQozYnExMGFNQUlBN1BZRFdZdXFwR0t6MlB0V0RCZ3F1dnZucmh3b1Z2dlBGR284ZENxeGti
R3p0MTZsU2pSd0h0UldBMWtycXFYb3MxCjFySmx5ODZlUGR2b2dRQlFMUzhSTm95NmlxVTFYaXZz
Nk9obzlCQUFpRVpnTllhNmlxczFHaXVFa0NSSm80Y0FRQVFDcXdIVVZTMjAKVEdNQjBBSUVWcjJw
cTlyUldBQmtoTUNxSzNWVmF4b0xnQ3dRV1BXanJ1cERZd0hRY0FLclR0UlZQV2tzQUJwTFlOV0R1
cW8valFWQQpBd21zbWxOWGphS3hBR2dVZ1ZWYjZxcXhOQllBRFNHd2FraGRaWUhHQXFEK0JGYXRx
S3ZzMEZnQTFKbkFxZ2wxbFRVYUM0QjZFbGp4CnFhdHMwbGdBMUkzQWlreGRaWm5HQXFBK0JGWk02
aXI3TkJZQWRTQ3dvbEZYelVKakFWQnJBaXNPZGRWY05CWUFOU1d3SWxCWHpVaGoKQVZBN0FxdGE2
cXA1YVN3QWFrUmdWVVZkTlR1TkJVQXRDS3k1VTFldFFXTUJFSjNBbWlOMTFVbzBGZ0J4Q2F5NVVG
ZXRSMk1CRUpIQQptalYxMWFvMEZnQ3hDS3paVVZldFRXTUJFSVhBbWdWMTFRNDBGZ0RWRTFpVlVs
ZnRRMk1CVUNXQlZSRjExVzQwRmdEVkVGZ3pVMWZ0ClNXTUJNR2NDYXdicXFwMXBMQURtUm1DVm82
N1FXQURNZ2NBcVNWMlIwbGdBekpiQUtrNWRrVTlqQVRBckFxc0lkVVVoalFWQTVRVFcKZE9xS1Vq
UVdBQlVTV0craHJpaFBZd0ZRQ1lIMVcrcUtTbWdzQUdZa3NINURYVkU1alFWQWVRSXJCSFhGN0dr
c0FNb1FXT3FLT2RKWQpBSlRTN29HbHJxaUd4Z0tncUxZT0xIVkY5YTY5OXRwdDI3WUZqUVZBbnM1
R0Q2QmgxQlhWVzdCZ3dRMDMzREE4UEh6Ky9QbERodzQ5Cjg4d3pJWVNOR3pjMmVsd0FORmliQnBh
Nm9ucWpvNlBuenAwN2VQRGcwTkRRd29VTHU3cTZMbDI2cExFQUNPMFpXT3FLNm8yT2pwNCsKZmZy
V1cyOWR0MjVkK3A5bno1NDllZkxreE1TRXhnS2c3ZDZEcGE2bzNyUzZDaUYwZDNmZmZ2dnRLMWV1
N096c0RONlBCZEQyMml1dwoxQlhWSzZ5clZFOVBqOFlDSU5WR2dhV3VxRjZwdWtwcExBQlM3UkpZ
Nm9ycWxhK3JsTVlDSUxSSllLa3JxbGRKWGFWeWpkWGQzUjAwCkZrQmJhdjFQRWFvcnFsZFlWNis5
OWxwdmIrL2s1T1RGaXhlN3Vyb1dMMTdjMTllWG03K25wK2YzZnUvM1hucnBwZkh4OFZkZWVjWG4K
Q2dIYVRZc0hscnFpZWtXZnV6cHg0c1RodzRlVEpFbVNaTjY4ZWU5OTczdW5MZFhkM1QwK1ByNTkr
L2FlbnA2OWUvZis2RWMvNnU3dQpudkhaTHdCYVF5c0hscnFpZW1sZDlmZjNIenQyTEQrUGJyNzU1
aERDb1VPSFFnaFRVMU1qSXlPRnkxNXh4UlU5UFQzWFhYZmRraVZMCmVucDZycmppaXJvTkc0REdh
dG4zWUtrcnFwZlcxWTRkTzI2NTVaYlIwZEhubm5zdS82YzMzM3p6dGRkZUcwTG82T2hJMzI2Vjc4
Q0IKQTYrLy92cmc0T0RrNU9US2xTdlhybDNiMWRWVnY2RUQwRkN0R1ZqcWl1cmw2bXJWcWxVaGhK
dHV1cWxVWTNWMmR2YjA5T1EvZnVEQQpnWDM3OXIzdGJXL3I3T3ljUDM5K1gxOWZSMGRIWFVjUFFF
TzFZR0NwSzZvM3JhNVNwUnByL2ZyMVEwTkR1VWZTdXRxMWExZHZiNis2CkFtaFByUlpZNm9ycUZh
MnJWS25HV3JObVRUcXRyZ0FJTFJaWTZvcnFsYW1yMVBidDJ5OWN1REN0c1ZMcUNvQlU2d1NXdXFK
Nk05WlYKa2lSalkyT2JOMjhlSGg2ZTFsanFDb0NjRmdrc2RVWDFLcXlyeWNuSkVNS1dMVnZ5RzB0
ZEFaQ3ZGUUpMWFZHOVdkVlZLdGRZNmdxQQphWm8rc05RVjFadERYYVcyYk5seTZ0UXBkUVhBTk0w
ZFdPcUs2czI1cmtJSXg0OGZuNWlZVUZjQVROUEVnYVd1cUY2VmRYWHMyREYxCkJVQ2haZzBzZFVY
MWl0YlYrZlBueDhmSDAybDFCY0RjTkdWZ3FTdXFWK3E1cXhNblRqei8vUFBqNCtQcUNvQTVhNzdB
VWxkVXIyaGQKWGJ4NE1ZU3djZVBHNWN1WFAvLzg4OFBEdytvS2dMbHBzc0JTVjFTdjFITlhCdzRj
K05uUGZoWkMyTFJwMDlLbFMvZnUzVHN4TVRGdApXWFVGUUNXYUtiRFVGZFVyV2xkalkyTWhoRzNi
dG8yTmpiMzg4c3RqWTJQWFhIUE55cFVycDZhbThwZE42MnJuenAzcUNvRHltaWF3CjFCWFZLMXBY
azVPVHp6Ly8vSkVqUjBJSU8zYnNHQmtaMmI5L2Z3amh5aXV2N09ycXlzMldxNnUrdmo1MUJVQjV6
UkZZNm9ycWxYcGwKY1A3OCtkdTNiejl5NU1pUkkwZkd4c1p1dU9HR2VmUG01VDVJbUZKWEFNeEtF
d1NXdXFKNjViL3ZxcmUzZDlldVhiLzYxYStPSGowYQpRcmp1dXV2eUx6TjFCY0JzWlQydzFCWFZx
K1RiUkRzN083ZHUzVG80T0RqdGs0UHFDb0E1Nkd6MEFNcFJWMVN2OHU5cVg3Um8wVHZlCjhZNzhm
bEpYQU14TmRwL0JVbGRVYjdaL0NVZGRBUkJGUmdOTFhWRzl0SzY2dXJwNmUzdUx6akRqZDdXckt3
RG1Kb3VCcGE2b1hscFgKVjE5OWRlNXIyYWZOb0s0QXFKM01CWmE2b25xNXVscXlaTW1LRlN2Nisv
dW5OWmE2QXFDbXNoVlk2b3JxNWRkVitzaTB4bEpYQU5SYQpoZ0pMWFZHOXdycEs1UnJyL1BuejZn
cUFXc3RLWUtrcnFsZXFybEw1alZYNFUzVUZRRVNaQ0N4MVJmWEsxMVZxeFlvVmwxOSsrY3N2CnYz
eng0c1g4eDlVVkFIRTFQckRVRmRXcnBLNVNoWTJscmdDSXJzR0JwYTZvWHVWMWxjcHZMSFVGUUMw
MDhrL2xxQ3VxTjl1NlNxMVkKc1NLRThNSUxMM1IyZHFvckFLSnIyRE5ZNm9ycXphMnVVaDBkSGVv
S2dCcHBUR0NwSzZwWFRWMmRQbjE2Y0hCUVhRRlFJNDE1aWZEcwoyYlA5L2YxOWZYMVhYSEhGNE9C
Z1E4WkFVMU5YQUdSWll3SnI1Y3FWbDE5K2VmcTEydDNkM1FNREF3MFpCazFLWFFHUWNRMTdEOWFD
CkJRdDZlM3REQ011V0xWdTdkbTJqaGtIVFVWY0FaRjhqdjZaQll6RmI2Z3FBcHREZzc4SFNXRlJP
WFFIUUxCci9UZTRhaTBxb0t3Q2EKU09NREsyZ3NacUt1QUdndW1RaXNvTEVvVFYwQjBIU3lFbGhC
WTFHTXVnS2dHV1Vvc0lMRzRxM1VGUUJOS2x1QkZUUVcvMDlkQWRDOApNaGRZUVdPaHJnQm9jbGtN
cktDeDJwdTZBcURaWlRTd2dzWnFWK29LZ0JhUTNjQUtHcXY5cUNzQVdrT21BeXRvckhhaXJnQm9H
VmtQCnJLQ3gyb082QXFDVk5FRmdCWTNWNnRRVkFDMm1PUUlyYUt6V3BhNEFhRDFORTFoQlk3VWlk
UVZBUzJxbXdBb2FxN1dvS3dCYVZaTUYKVnRCWXJVSmRBZERDbWkrd2dzWnFmdW9LZ05iV2xJRVZO
Rll6VTFkUVoyNFRxTDltRGF5Z3NacVR1Z0tnSFRSeFlBV04xV3pVRlFCdApvcmtESzJpczVxR3VB
R2dmVFI5WVFXTTFBM1VGUUZ0cGhjQUtHaXZiMUJVQTdhWkZBaXRvckt4U1Z3QzBvZFlKcktDeHNr
ZGRBZENlCldpcXdnc2JLRW5VRlFOdHF0Y0FLR2lzYjFCVUE3YXdGQXl0b3JFWlRWd0MwdWRZTXJL
Q3hHa2RkQVVETEJsYlFXSTJncmdBZ3RIWmcKQlkxVlgrb0tBRkl0SGxoQlk5V0x1Z0tBbk5ZUHJL
Q3hhazlkQVVDK3RnaXNvTEZxU1YwQndEVHRFbGhCWTlXR3VnS0FRbTBVV0VGagp4YWF1QUtDbzln
cXNvTEhpVVZjQVVFcmJCVmJRV0RHb0t3QW9veDBESzJpczZxZ3JBQ2l2czlFRGFKaTBzWWFIaDVj
dFd4WkNHQmdZCmFQU0ltb082cXFuZTN0NnRXN2VlUDM5Ky8vNzk1OCtmYi9Sd2FHNmRuWjFyMXF6
WnRHblRxVk9uamgwNzF1amhRSHRwMzhBS0dtdjIKMUZXdGRYWjJUa3hNREF3TTdOeTVjMkppb3N5
Y1o4NmMyYjkvditkZk0yaGtaT1Q4K2ZOYnRteXAzU2FHaG9iMjc5L2YzOSsvWThlTwpNck4xZEhT
TWpvNGVPblRJZFFMMTE5YUJGVFRXYktpck9qaC8vdnpnNE9DbVRadjYrL3RubkhuKy9QbnBLOTFr
emVqb2FQb3JwYWE2CnVycFdybHhaZnA1TGx5NkZFRjU1NVpWYUR3YVlwazNmZzVYUCs3RXFvYTdx
SXozT2xkUVZWS0tycTZ1N3UvdC8vL2QvR3owUWFEc0MKS3dTTk5STjFWVGRUVTFORlh4bDg2YVdY
N3JycnJ2cVBoMlpSNWdwSmtxVDh5ODFBTFFpczM5QllwYWlyaG52cHBaZnV2UFBPbDE1NgpxZEVE
SWFaejU4N3QzNysvNk1RY25EMTc5djc3NzFmaGtCMEM2N2MwVmlGMTFYRHFxbFdOajQ4UERRMFZu
WmdialFXWklyRGVRbVBsClUxY05wNjZZRlkwRjJkSHVueUlzNUhPRktYV1ZCVmRmZmZVZi8vRWZD
NnltTXpVMU5UbzZXbjZlUzVjdXBiTVZUc3k0L3ZTemdVV2wKMTh5c1J3ekVKckNLMEZqcUtpT1dM
bDM2SjMveUp5RUV6MGswbmNuSnlVcG1tSnljTEp5WTg4cHZ2UEhHUFh2MjNIampqYk1lTGhDYgp3
Q3F1blJ0TFhXVktyckVlZWVTUlJvK0ZtUHI2K2padTNGaDBZbTdVRldTS3dDcXBQUnRMWFdWUTJs
aTMzWFpib3dkQ1RKMmRuZWs3ClBnc241a0JkUWRaNGszczU3ZmFlZDNYVmNLWCtpVjI2ZEtsL095
bWp6QlZTVGJjQmN5YXdadEEramFXdXNtREpraVZyMTY3OTZVOS8KMnVpQjBDTE9uRGx6OE9EQm12
NWhSS0FvTHhIT3JCMWVLMVJYR2RIWjJibHExYW9Rd285Ly9PUGg0ZUV5YzE2NmRHbGtaT1RRb1VQ
MQpHaHFWbXB5Y0hCOGYzN3QzYiswMk1UNCtIa0k0YytiTWYvM1hmNVdacmJPemMvbnk1WnMyYmFy
a2s0bEFYQUtySXEzZFdPb3FPeVluCko4Zkd4dnI2K2xhdlh1M1BtMUNsZWZQbWRYZDNkM1oyWHJ4
NHNkRmpnYllqc0NyVnFvMmxyaklsOTJmajVuQTZvS2lKaVltK3ZyNnQKVzdlKy9QTExqUjRMdEpH
T0pFa2FQWVptTWo0K25yNXdNemc0MkFLTnBhNEFvQmE4eVgxMld1azk3K29LQUdwRVlNMWFhelNX
dWdLQQoyaEZZYzlIc2phV3VBS0NtQk5ZY05XOWpxU3NBcURXQk5YZk4yRmpxQ2dEcVFHQlZwYmth
UzEwQlFIMElyR28xUzJPcEt3Q29HNEVWClFmWWJTMTBCUUQzNW90Rm9NdnNkcE5YWDFhNWR1M3A3
ZTlVVkFGVElNMWpSWlBONUxIVUZBUFVuc0dMS1dtT3BLd0JvQ0lFVldYWWEKUzEwQlFLTUlyUGl5
MEZqcUNnQWFTR0RWUkdNYlMxMEJRR01KckZwcFZHT3BLd0JvT0lGVlEvVnZMSFVGQUZrZ3NHcXJu
bzJscmdBZwpJd1JXemRXbnNkUVZBR1NId0txSFdqZVd1Z0tBVEJGWWRWSzd4bEpYQUpBMUFxdCth
dEZZNmdvQU1raGcxVlhjeGxKWEFKQk5BcXZlCllqVldXbGZyMTY5WFZ3Q1FOUUtyQWFwdnJMU3Ux
cTVkZS9yMDZhbXBxVmt0cTY0QW9OWUVWbU5VMDFocFhkMTY2NjIzM1hiYnVuWHIKRGg4K1hIbGpx
U3NBcUFPQjFUQnphNnhjWGExYnR5NkVjTk5OTjFYZVdPb0tBT3BEWURYU2JCdHJXbDJsS213c2RR
VUFkU093R3F6eQp4aXBhVjZrWkcwdGRBVUE5Q2F6R3E2U3h5dFJWcWt4anFTc0FxRE9CbFFubEc2
dXdycjcwcFM5OTdXdGZtelpiMGNaU1Z3QlFmd0lyCkswbzExdVRrNU9EZzRMVG5ybGF1WFBuSlQz
NXl4c1pTVndEUUVKMk5IZ0MvbFRiVzhQRHdzbVhMUWdnREF3UDkvZjNkM2QxdmYvdmIKVjYxYWxU
OW4rdlZYbi9qRUowSUlILy80eC9OL2ROTk5ONFVRRGg4K3ZHVEpramZmZkZOZEFVRDllUVlyVy9L
Zng5cXdZY01OTjl4dwo3dHk1d3JkVlhiaHdJWjM0eENjK1VmUjVyTjdlWG5VRkFJMGlzREluMTFp
OXZiMGpJeU1yVnF6bzYrdWJOcythTld2bXo1K2ZUdi9GClgvekZ0TVk2Y09EQTBOQ1F1Z0tBUnZF
U1lSYmxYaXNjR3hzYkdSbDUrdW1uYjczMTFxVkxsK1ptNk92cmUvVFJSNDhlUGRyWjJibHUKM2Jw
VHAwN2xmblRnd0lGOSsvYXBLd0Jvb0k0a1NSbzlCb29iSHg4ZkhoNE9JUnc5ZXZUSWtTTzMzMzU3
Zm1NVnBhNEFJQXU4UkpoZAp1ZGNLMTY5ZmY4MDExeno5OU5Obno1NHRNNys2QW9DTUVGaVpWbmxq
cVNzQXlBNkJsWFdWTkphNkFvQk1FVmhOb0h4anFTc0F5QnB2CmNtOGErZTk1UDM3OCtPLys3dSsr
K2VhYklZUVhYM3h4eDQ0ZDZnb0Fza05nTlpOY1k1MDZkYXF2cjI5d2NMQ25wNmU3dTN2Um9rWHEK
Q2dDeVEyQTFtVnhqTFZ5NHNMdTdlM2g0ZUhKeVVsMEJRS1lJck9hVGE2eU9qbzRrU2RRVkFHU053
R3BLdWNaU1Z3Q1FRUUtyV1kyUApqNCtPanZiMjlxb3JBTWdhZ1FVQUVKbnZ3UUlBTFQ0Z2tRQUFC
ZHRKUkVGVWlFeGdBUUJFSnJBQUFDSVRXQUFBa1Frc0FJRElCQllBClFHUUNDd0FnTW9FRkFCQ1p3
QUlBaUV4Z0FRQkVKckFBQUNJVFdBQUFrUWtzQUlESUJCWUFRR1FDQ3dBZ01vRUZBQkNad0FJQWlF
eGcKQVFCRUpyQUFBQ0lUV0FBQWtRa3NBSURJQkJZQVFHUUNDd0FnTW9FRkFCQ1p3QUlBaUV4Z0FR
QkVKckFBQUNJVFdBQUFrUWtzQUlESQpCQllBUUdRQ0N3QWdNb0VGQUJDWndBSUFpRXhnQVFCRUpy
QUFBQ0lUV0FBQWtRa3NBSURJQkJZQVFHUUNDd0FnTW9FRkFCQ1p3QUlBCmlFeGdBUUJFSnJBQUFD
SVRXQUFBa1Frc0FJRElCQllBUUdRQ0N3QWdNb0VGQUJDWndBSUFpRXhnQVFCRUpyQUFBQ0lUV0FB
QWtRa3MKQUlESUJCWUFRR1FDQ3dBZ01vRUZBQkNad0FJQWlFeGdBUUJFSnJBQUFDSVRXQUFBa1Fr
c0FJRElCQllBUUdRQ0N3QWdNb0VGQUJDWgp3QUlBaUV4Z0FRQkVKckFBQUNJVFdBQUFrUWtzQUlE
SUJCWUFRR1FDQ3dBZ01vRUZBQkNad0FJQWlFeGdBUUJFSnJBQUFDSVRXQUFBCmtRa3NBSURJQkJZ
QVFHUUNDd0FnTW9FRkFCQ1p3QUlBaUV4Z0FRQkVKckFBQUNJVFdBQUFrUWtzQUlESUJCWUFRR1FD
Q3dBZ01vRUYKQUJDWndBSUFpRXhnQVFCRUpyQUFBQ0lUV0FBQWtRa3NBSURJQkJZQVFHUUNDd0Fn
TW9FRkFCQ1p3QUlBaUV4Z0FRQkVKckFBQUNJVApXQUFBa1Frc0FJRElCQllBUUdRQ0N3QWdNb0VG
QUJDWndBSUFpRXhnQVFCRUpyQUFBQ0lUV0FBQWtRa3NBSURJQkJZQVFHUUNDd0FnCk1vRUZBQkNa
d0FJQWlFeGdBUUJFSnJBQUFDSVRXQUFBa1Frc0FJRElCQllBUUdRQ0N3QWdNb0VGQUJDWndBSUFp
RXhnQVFCRUpyQUEKQUNJVFdBQUFrUWtzQUlESUJCWUFRR1FDQ3dBZ01vRUZBQkNad0FJQWlFeGdB
UUJFSnJBQUFDSVRXQUFBa1Frc0FJRElCQllBUUdRQwpDd0FnTW9FRkFCQ1p3QUlBaUV4Z0FRQkVK
ckFBQUNJVFdBQUFrUWtzQUlESUJCWUFRR1FDQ3dBZ01vRUZBQkNad0FJQWlFeGdBUUJFCkpyQUFB
Q0lUV0FBQWtRa3NBSURJQkJZQVFHUUNDd0FnTW9FRkFCQ1p3QUlBaUV4Z0FRQkVKckFBQUNJVFdB
QUFrUWtzQUlESUJCWUEKUUdRQ0N3QWdNb0VGQUJDWndBSUFpRXhnQVFCRUpyQUFBQ0lUV0FBQWtR
a3NBSURJQkJZQVFHUUNDd0FnTW9FRkFCQ1p3QUlBaUV4ZwpBUUJFSnJBQUFDSVRXQUFBa1Frc0FJ
RElCQllBUUdRQ0N3QWdNb0VGQUJDWndBSUFpRXhnQVFCRUpyQUFBQ0lUV0FBQWtRa3NBSURJCkJC
WUFRR1FDQ3dBZ01vRUZBQkNad0FJQWlFeGdBUUJFSnJBQUFDSVRXQUFBa1Frc0FJRElCQllBUUdR
Q0N3QWdNb0VGQUJDWndBSUEKaUV4Z0FRQkVKckFBQUNJVFdBQUFrUWtzQUlESUJCWUFRR1FDQ3dB
Z01vRUZBQkNad0FJQWlFeGdBUUJFSnJBQUFDSVRXQUFBa1FrcwpBSURJQkJZQVFHUUNDd0FnTW9F
RkFCQ1p3QUlBaUV4Z0FRQkVKckFBQUNJVFdBQUFrUWtzQUlESUJCWUFRR1FDQ3dBZ01vRUZBQkNa
CndBSUFpRXhnQVFCRUpyQUFBQ0lUV0FBQWtRa3NBSURJQkJZQVFHUUNDd0FnTW9FRkFCQ1p3QUlB
aUV4Z0FRQkVKckFBQUNJVFdBQUEKa1Frc0FJRElCQllBUUdRQ0N3QWdNb0VGQUJDWndBSUFpRXhn
QVFCRUpyQUFBQ0lUV0FBQWtRa3NBSURJQkJZQVFHUUNDd0FnTW9FRgpBQkNad0FJQWlFeGdBUUJF
SnJBQUFDSVRXQUFBa1Frc0FJRElCQllBUUdRQ0N3QWdNb0VGQUJDWndBSUFpRXhnQVFCRUpyQUFB
Q0lUCldBQUFrUWtzQUlESUJCWUFRR1FDQ3dBZ01vRUZBQkNad0FJQWlFeGdBUUJFSnJBQUFDSVRX
QUFBa1Frc0FJRElCQllBUUdRQ0N3QWcKTW9FRkFCQ1p3QUlBaUV4Z0FRQkVKckFBQUNJVFdBQUFr
UWtzQUlESUJCWUFRR1FDQ3dBZ01vRUZBQkNad0FJQWlFeGdBUUJFSnJBQQpBQ0lUV0FBQWtRa3NB
SURJQkJZQVFHUUNDd0FnTW9FRkFCQ1p3QUlBaUV4Z0FRQkVKckFBQUNJVFdBQUFrUWtzQUlESUJC
WUFRR1FDCkN3QWdNb0VGQUJDWndBSUFpRXhnQVFCRUpyQUFBQ0lUV0FBQWtRa3NBSURJQkJZQVFH
UUNDd0FnTW9FRkFCQ1p3QUlBaUV4Z0FRQkUKSnJBQUFDSVRXQUFBa1Frc0FJRElCQllBUUdRQ0N3
QWdNb0VGQUJDWndBSUFpRXhnQVFCRUpyQUFBQ0w3UDd1b1V5K2s4bStmQUFBQQpBRWxGVGtTdVFt
Q0MKCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>