<?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>52103</bug_id>
          
          <creation_ts>2011-01-07 22:07:07 -0800</creation_ts>
          <short_desc>Video with object-fit: cover can spill outside the box</short_desc>
          <delta_ts>2013-08-30 17:13:56 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>divya</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>zcorpan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>331155</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-01-07 22:07:07 -0800</bug_when>
    <thetext>Follow-on from bug 52040 :
With object-fit: cover, &lt;video&gt; may spill outside the box, and we don&apos;t have a layer we can set masksToBounds on to clip it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>333141</commentid>
    <comment_count>1</comment_count>
    <who name="Simon Pieters (:zcorpan)">zcorpan</who>
    <bug_when>2011-01-12 10:22:48 -0800</bug_when>
    <thetext>object-fit:cover is supposed to spill outside the box when overflow:visible. No?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>333153</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-01-12 10:39:32 -0800</bug_when>
    <thetext>So says the spec (not that I agree with it). But with overflow:hidden we&apos;ll have to fix this anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>333174</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Pieters (:zcorpan)">zcorpan</who>
    <bug_when>2011-01-12 11:08:07 -0800</bug_when>
    <thetext>We have the opposite problem in Opera, &lt;video&gt; is always clipped. However we could always change the spec to say that the content is always clipped regardless of &apos;overflow&apos; if people think overflowing is useless/annoying.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>333206</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Pieters (:zcorpan)">zcorpan</who>
    <bug_when>2011-01-12 11:55:16 -0800</bug_when>
    <thetext>...though maybe that ship has sailed for SVG content anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>333239</commentid>
    <comment_count>5</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-01-12 12:36:06 -0800</bug_when>
    <thetext>I think authors would not expect overflow for elements like &lt;img&gt; and &lt;video&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>333570</commentid>
    <comment_count>6</comment_count>
    <who name="Simon Pieters (:zcorpan)">zcorpan</who>
    <bug_when>2011-01-13 00:08:15 -0800</bug_when>
    <thetext>We could add overflow:hidden to the UA style sheet for those elements, maybe?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>333662</commentid>
    <comment_count>7</comment_count>
    <who name="Simon Pieters (:zcorpan)">zcorpan</who>
    <bug_when>2011-01-13 06:42:12 -0800</bug_when>
    <thetext>(spec bug http://www.w3.org/Bugs/Public/show_bug.cgi?id=11746 )</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>923228</commentid>
    <comment_count>8</comment_count>
      <attachid>210173</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-08-30 16:20:43 -0700</bug_when>
    <thetext>Created attachment 210173
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>923231</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-08-30 16:22:37 -0700</bug_when>
    <thetext>Attachment 210173 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/compositing/images/direct-image-object-fit-expected.txt&apos;, u&apos;LayoutTests/compositing/images/direct-image-object-fit.html&apos;, u&apos;LayoutTests/compositing/reflections/direct-image-object-fit-reflected-expected.txt&apos;, u&apos;LayoutTests/compositing/reflections/direct-image-object-fit-reflected.html&apos;, u&apos;LayoutTests/compositing/video/video-object-fit-expected.txt&apos;, u&apos;LayoutTests/compositing/video/video-object-fit.html&apos;, u&apos;LayoutTests/platform/mac/compositing/images/direct-image-object-fit-expected.txt&apos;, u&apos;LayoutTests/platform/mac/compositing/reflections/direct-image-object-fit-reflected-expected.txt&apos;, u&apos;LayoutTests/platform/mac/compositing/video/video-object-fit-expected.txt&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/page/Frame.h&apos;, u&apos;Source/WebCore/platform/graphics/GraphicsLayer.h&apos;, u&apos;Source/WebCore/platform/graphics/MediaPlayer.cpp&apos;, u&apos;Source/WebCore/platform/graphics/MediaPlayer.h&apos;, u&apos;Source/WebCore/platform/graphics/MediaPlayerPrivate.h&apos;, u&apos;Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp&apos;, u&apos;Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h&apos;, u&apos;Source/WebCore/platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp&apos;, u&apos;Source/WebCore/platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h&apos;, u&apos;Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h&apos;, u&apos;Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm&apos;, u&apos;Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp&apos;, u&apos;Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h&apos;, u&apos;Source/WebCore/rendering/RenderLayerBacking.cpp&apos;, u&apos;Source/WebCore/rendering/RenderLayerCompositor.cpp&apos;, u&apos;Source/WebCore/rendering/RenderVideo.cpp&apos;, u&apos;Source/WebCore/testing/Internals.cpp&apos;, u&apos;Source/WebCore/testing/Internals.h&apos;, u&apos;Source/WebCore/testing/Internals.idl&apos;]&quot; exit_code: 1
Source/WebCore/testing/Internals.h:228:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/testing/Internals.h:229:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Total errors found: 2 in 30 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>923234</commentid>
    <comment_count>10</comment_count>
      <attachid>210175</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-08-30 16:35:51 -0700</bug_when>
    <thetext>Created attachment 210175
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>923237</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-08-30 16:43:35 -0700</bug_when>
    <thetext>Attachment 210175 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/compositing/images/direct-image-object-fit-expected.txt&apos;, u&apos;LayoutTests/compositing/images/direct-image-object-fit.html&apos;, u&apos;LayoutTests/compositing/reflections/direct-image-object-fit-reflected-expected.txt&apos;, u&apos;LayoutTests/compositing/reflections/direct-image-object-fit-reflected.html&apos;, u&apos;LayoutTests/compositing/video/video-object-fit-expected.txt&apos;, u&apos;LayoutTests/compositing/video/video-object-fit.html&apos;, u&apos;LayoutTests/media/video-object-fit-change.html&apos;, u&apos;LayoutTests/platform/mac/TestExpectations&apos;, u&apos;LayoutTests/platform/mac/compositing/images/direct-image-object-fit-expected.txt&apos;, u&apos;LayoutTests/platform/mac/compositing/reflections/direct-image-object-fit-reflected-expected.txt&apos;, u&apos;LayoutTests/platform/mac/compositing/video/video-object-fit-expected.txt&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/page/Frame.h&apos;, u&apos;Source/WebCore/platform/graphics/GraphicsLayer.h&apos;, u&apos;Source/WebCore/platform/graphics/MediaPlayer.cpp&apos;, u&apos;Source/WebCore/platform/graphics/MediaPlayer.h&apos;, u&apos;Source/WebCore/platform/graphics/MediaPlayerPrivate.h&apos;, u&apos;Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp&apos;, u&apos;Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h&apos;, u&apos;Source/WebCore/platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp&apos;, u&apos;Source/WebCore/platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h&apos;, u&apos;Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h&apos;, u&apos;Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm&apos;, u&apos;Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp&apos;, u&apos;Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h&apos;, u&apos;Source/WebCore/rendering/RenderLayerBacking.cpp&apos;, u&apos;Source/WebCore/rendering/RenderLayerCompositor.cpp&apos;, u&apos;Source/WebCore/rendering/RenderVideo.cpp&apos;, u&apos;Source/WebCore/testing/Internals.cpp&apos;, u&apos;Source/WebCore/testing/Internals.h&apos;, u&apos;Source/WebCore/testing/Internals.idl&apos;]&quot; exit_code: 1
Source/WebCore/testing/Internals.h:228:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Source/WebCore/testing/Internals.h:229:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Total errors found: 2 in 31 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>923238</commentid>
    <comment_count>12</comment_count>
      <attachid>210175</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-08-30 16:46:28 -0700</bug_when>
    <thetext>Comment on attachment 210175
Patch

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

&gt; Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp:1797
&gt; +    bool needContentsClippingLayer = !m_contentsClippingRect.contains(m_contentsRect);
&gt; +    bool gainedOrLostClippingLayer = false;
&gt; +    if (needContentsClippingLayer) {

You don&apos;t need needContentsClippingLayer.

&gt; LayoutTests/compositing/video/video-object-fit.html:52
&gt; +            }, 1500);

1.5s :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>923239</commentid>
    <comment_count>13</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-08-30 17:13:56 -0700</bug_when>
    <thetext>https://trac.webkit.org/r154921</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>210173</attachid>
            <date>2013-08-30 16:20:43 -0700</date>
            <delta_ts>2013-08-30 16:35:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-52103-20130830162041.patch</filename>
            <type>text/plain</type>
            <size>56308</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU0ODc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzg3MDI5YjAwZGIwOTI1
MjJmMTMzMzM1NDJjMmUwMmQyNWM1MmRiZS4uMTJjMTdhODcwZTE1OTRhYzlmM2UwYTY1NjhmNjc3
NWJjZmRlMzM2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg1IEBACisyMDEzLTA4LTMwICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFZpZGVvIHdpdGgg
b2JqZWN0LWZpdDogY292ZXIgY2FuIHNwaWxsIG91dHNpZGUgdGhlIGJveAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTIxMDMKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIG9iamVjdC1maXQgb24g
cmVuZGVyZXJzIHdoaWNoIHVzZSBhY2NlbGVyYXRlZCBjb21wb3NpdGluZyBuZWVkcyBzcGVjaWFs
CisgICAgICAgIHRyZWF0bWVudC4KKyAgICAgICAgCisgICAgICAgIEZvciBkaXJlY3RseSBjb21w
b3NpdGVkIGltYWdlcywgYW5kIHZpZGVvLCBHcmFwaGljc0xheWVyIG5lZWRzIHRvIGtub3cKKyAg
ICAgICAgYm90aCB0aGUgc2l6ZSBvZiB0aGUgY29udGVudCBsYXllciwgYW5kIGFsc28gYSByZWN0
YW5nbGUgYXQgd2hpY2ggdGhpcworICAgICAgICBzaG91bGQgYmUgY2xpcHBlZCAoYmVjYXVzZSwg
Zm9yIHRoZSBmaXJzdCB0aW1lLCB0aGF0IGNvbnRlbnQgbGF5ZXIgY2FuIGJlCisgICAgICAgIGxh
cmdlciB0aGFuIHRoZSByZW5kZXJlcidzIGNvbnRlbnQgYm94KS4KKyAgICAgICAgCisgICAgICAg
IEFWRm91bmRhdGlvbiB3b3VsZCBhbHdheXMgYXNwZWN0LXJhdGlvIGZpdCB2aWRlbyBieSBkZWZh
dWx0LCBzbyBwbHVtYgorICAgICAgICB0aHJvdWdoIE1lZGlhUGxheWVyIGEgd2F5IHRvIG92ZXJy
aWRlIHRoYXQgd2hlbiBvYmplY3QtZml0IHJlcXVpcmVzIGl0LgorICAgICAgICAKKyAgICAgICAg
QWRkZWQgYSBMQVlFUl9UUkVFX0lOQ0xVREVTX0NPTlRFTlRfTEFZRVJTIGVudW0gdG8gdGhlIGxh
eWVyVHJlZUFzVGV4dCgpCisgICAgICAgIGZsYWdzIHNvIHdlIGNhbiBkdW1wIGNvbnRlbnQgbGF5
ZXJzIGZvciB0ZXN0aW5nLgorCisgICAgICAgIFRlc3RzOiBjb21wb3NpdGluZy9pbWFnZXMvZGly
ZWN0LWltYWdlLW9iamVjdC1maXQuaHRtbAorICAgICAgICAgICAgICAgY29tcG9zaXRpbmcvcmVm
bGVjdGlvbnMvZGlyZWN0LWltYWdlLW9iamVjdC1maXQtcmVmbGVjdGVkLmh0bWwKKyAgICAgICAg
ICAgICAgIGNvbXBvc2l0aW5nL3ZpZGVvL3ZpZGVvLW9iamVjdC1maXQuaHRtbAorCisgICAgICAg
ICogcGFnZS9GcmFtZS5oOiBOZXcgTGF5ZXJUcmVlRmxhZ3NJbmNsdWRlQ29udGVudExheWVycyBm
bGFnLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaDogTmV3IGZs
YWcuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OnNob3VsZE1haW50YWluQXNwZWN0UmF0aW8pOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OnNldFNob3VsZE1haW50YWluQXNwZWN0UmF0aW8p
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmg6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U6OnNob3VsZE1haW50YWluQXNwZWN0UmF0aW8p
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlOjpzZXRTaG91
bGRNYWludGFpbkFzcGVjdFJhdGlvKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6TWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbjo6c2V0U2hvdWxkTWFpbnRhaW5Bc3BlY3RSYXRpbyk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25DRjo6dXBkYXRlVmlkZW9MYXllckdyYXZpdHkpOgorICAgICAg
ICAoV2ViQ29yZTo6QVZGV3JhcHBlcjo6cGxhdGZvcm1MYXllcik6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bkNGLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDOjpjcmVhdGVWaWRlb0xheWVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakM6OnVwZGF0ZVZpZGVvTGF5ZXJHcmF2aXR5KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwOiBXZSBuZWVkIGEgbmV3
IG1fY29udGVudHNDbGlwcGluZ0xheWVyIHRvCisgICAgICAgIGNsaXAgdGhlIGNvbnRlbnRzIGxh
eWVyLCB3aGljaCBvbmx5IGdldHMgY3JlYXRlZCB3aGVuIG5lY2Vzc2FyeS4gSXQgaGFzIHRvIGJl
IGNsb25lZAorICAgICAgICBmb3IgcmVmbGVjdGlvbnMuCisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0xheWVyQ0E6OndpbGxCZURlc3Ryb3llZCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0xheWVyQ0E6OnNldENvbnRlbnRzUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xh
eWVyQ0E6OnNldENvbnRlbnRzQ2xpcHBpbmdSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXJDQTo6Y29tbWl0TGF5ZXJDaGFuZ2VzQmVmb3JlU3VibGF5ZXJzKToKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6dXBkYXRlU3VibGF5ZXJMaXN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6dXBkYXRlQ29udGVudHNJbWFnZSk6CisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZUNvbnRlbnRzTWVkaWFMYXllcik6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZUNvbnRlbnRzQ2FudmFzTGF5
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjp1cGRhdGVDb250ZW50c0Nv
bG9yTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjp1cGRhdGVDb250
ZW50c1JlY3RzKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6ZHVtcEFkZGl0
aW9uYWxQcm9wZXJ0aWVzKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6ZW5z
dXJlQ2xvbmVMYXllcnMpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpyZW1v
dmVDbG9uZUxheWVycyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OmZldGNo
Q2xvbmVMYXllcnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5
ZXJDQS5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOiBOZWVk
IHRvIHB1c2ggYm90aCB0aGUgY29udGVudHNSZWN0IGFuZAorICAgICAgICB0aGUgY29udGVudHND
bGlwcGluZ1JlY3QgZG93biB0byB0aGUgR3JhcGhpY3NMYXllcnMuIE1vc3Qgb2YgdGhlIHRpbWUg
dGhleQorICAgICAgICBhcmUgdGhlIHNhbWUsIHVubGVzcyBvYmplY3QtZml0IG1ha2VzIHRoZW0g
ZGlmZmVyZW50LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpyZXNldENv
bnRlbnRzUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnBvc2l0
aW9uT3ZlcmZsb3dDb250cm9sc0xheWVycyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
ckJhY2tpbmc6OnVwZGF0ZURpcmVjdGx5Q29tcG9zaXRlZEJhY2tncm91bmRDb2xvcik6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZURpcmVjdGx5Q29tcG9zaXRl
ZEJhY2tncm91bmRJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6
OnVwZGF0ZUltYWdlQ29udGVudHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNr
aW5nOjpjb250ZW50c0JveCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9z
aXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OmxheWVy
VHJlZUFzVGV4dCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZGVvLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclZpZGVvOjp1cGRhdGVQbGF5ZXIpOgorICAgICAgICAqIHRlc3Rp
bmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6bGF5ZXJUcmVl
QXNUZXh0KToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3Rp
bmcvSW50ZXJuYWxzLmlkbDoKKwogMjAxMy0wOC0zMCAgTWlraGFpbCBQb3pkbnlha292ICA8bWlr
aGFpbC5wb3pkbnlha292QGludGVsLmNvbT4KIAogICAgICAgICBTaW1wbGVDbGFzc1ZlY3RvclRy
YWl0cyBzaGFsbCBiZSB1c2VkIGZvciBSdWxlRGF0YQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oCmluZGV4IGIwZWZl
NGM3MzE5MzUzMWViNTM5NGZiNmJkOTMzYWM0YWFhYjc4NmYuLjg5NmJiMDJkZTc5MDdiNzdiNzZl
MTQ5YzFkYmIxMjk5MWJkZWQ4MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmgKQEAgLTgyLDcgKzgyLDggQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBMYXllclRyZWVGbGFnc0luY2x1ZGVWaXNpYmxl
UmVjdHMgPSAxIDw8IDEsCiAgICAgICAgIExheWVyVHJlZUZsYWdzSW5jbHVkZVRpbGVDYWNoZXMg
PSAxIDw8IDIsCiAgICAgICAgIExheWVyVHJlZUZsYWdzSW5jbHVkZVJlcGFpbnRSZWN0cyA9IDEg
PDwgMywKLSAgICAgICAgTGF5ZXJUcmVlRmxhZ3NJbmNsdWRlUGFpbnRpbmdQaGFzZXMgPSAxIDw8
IDQKKyAgICAgICAgTGF5ZXJUcmVlRmxhZ3NJbmNsdWRlUGFpbnRpbmdQaGFzZXMgPSAxIDw8IDQs
CisgICAgICAgIExheWVyVHJlZUZsYWdzSW5jbHVkZUNvbnRlbnRMYXllcnMgPSAxIDw8IDUKICAg
ICB9OwogICAgIHR5cGVkZWYgdW5zaWduZWQgTGF5ZXJUcmVlRmxhZ3M7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaAppbmRleCA3ZTQwMGY1
ZDg5MGE0MjY5NWExNjU3NWJmNTM2MThiZWJlZTg4ZDFjLi5mY2Y5OWQ5NGJkOTQzODdhNjRlY2Zm
NDY0N2QzZGMwM2RjMWE0NjUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0xheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NMYXllci5oCkBAIC01MCw3ICs1MCw4IEBAIGVudW0gTGF5ZXJUcmVlQXNU
ZXh0QmVoYXZpb3JGbGFncyB7CiAgICAgTGF5ZXJUcmVlQXNUZXh0SW5jbHVkZVZpc2libGVSZWN0
cyA9IDEgPDwgMSwKICAgICBMYXllclRyZWVBc1RleHRJbmNsdWRlVGlsZUNhY2hlcyA9IDEgPDwg
MiwKICAgICBMYXllclRyZWVBc1RleHRJbmNsdWRlUmVwYWludFJlY3RzID0gMSA8PCAzLAotICAg
IExheWVyVHJlZUFzVGV4dEluY2x1ZGVQYWludGluZ1BoYXNlcyA9IDEgPDwgNAorICAgIExheWVy
VHJlZUFzVGV4dEluY2x1ZGVQYWludGluZ1BoYXNlcyA9IDEgPDwgNCwKKyAgICBMYXllclRyZWVB
c1RleHRJbmNsdWRlQ29udGVudExheWVycyA9IDEgPDwgNQogfTsKIHR5cGVkZWYgdW5zaWduZWQg
TGF5ZXJUcmVlQXNUZXh0QmVoYXZpb3I7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAppbmRleCBkZGYzNzM2ZTQzMTE5ZjgxOTlmMWJkMmQw
ZTA0ODc5MmU2NGFhMTU1Li45ZDBjNWUzN2JmZGZjZTIwMzI3NTg1ZGRmZDlmMDhlMzBlZTY4Mzg3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIu
Y3BwCkBAIC04NDIsNiArODQyLDE2IEBAIGJvb2wgTWVkaWFQbGF5ZXI6OnN1cHBvcnRzQWNjZWxl
cmF0ZWRSZW5kZXJpbmcoKSBjb25zdAogfQogI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKIAorYm9vbCBNZWRpYVBsYXllcjo6c2hvdWxkTWFpbnRhaW5Bc3BlY3RSYXRpbygp
IGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+c2hvdWxkTWFpbnRhaW5Bc3BlY3RSYXRp
bygpOworfQorCit2b2lkIE1lZGlhUGxheWVyOjpzZXRTaG91bGRNYWludGFpbkFzcGVjdFJhdGlv
KGJvb2wgbWFpbnRhaW5Bc3BlY3RSYXRpbykKK3sKKyAgICBtX3ByaXZhdGUtPnNldFNob3VsZE1h
aW50YWluQXNwZWN0UmF0aW8obWFpbnRhaW5Bc3BlY3RSYXRpbyk7Cit9CisKIGJvb2wgTWVkaWFQ
bGF5ZXI6Omhhc1NpbmdsZVNlY3VyaXR5T3JpZ2luKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9w
cml2YXRlLT5oYXNTaW5nbGVTZWN1cml0eU9yaWdpbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKaW5kZXggYjI0YWI0YWYxNzExMzAyNzgyZDA4
ODQ3YWI5ZTdhMWVmMTcwNmZiNC4uZDU1NDA5ZGJhZDU1Mzg2NTgzZjA5OTdjMzZmMzBiZDkyYmI4
OGE2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5oCkBAIC00MTQsNiArNDE0LDkgQEAgcHVibGljOgogICAgIHZvaWQgYWNjZWxlcmF0ZWRSZW5k
ZXJpbmdTdGF0ZUNoYW5nZWQoKTsKICNlbmRpZgogCisgICAgYm9vbCBzaG91bGRNYWludGFpbkFz
cGVjdFJhdGlvKCkgY29uc3Q7CisgICAgdm9pZCBzZXRTaG91bGRNYWludGFpbkFzcGVjdFJhdGlv
KGJvb2wpOworCiAjaWYgUExBVEZPUk0oV0lOKSAmJiBVU0UoQVZGT1VOREFUSU9OKQogICAgIEdy
YXBoaWNzRGV2aWNlQWRhcHRlciogZ3JhcGhpY3NEZXZpY2VBZGFwdGVyKCkgY29uc3Q7CiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5
ZXJQcml2YXRlLmgKaW5kZXggY2JlODBlNmMyN2ZhN2VjZGY3MTdmOGIzMmQ5MTQ5MWNkZjM2ZWIy
ZC4uMmM4NjJmM2VkMGRmMmFhODVlMDY1ZDY1MzRjMzIyMzAwNzI3ZTcxMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgK
QEAgLTE0OSw2ICsxNDksOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGFjY2VsZXJhdGVk
UmVuZGVyaW5nU3RhdGVDaGFuZ2VkKCkgeyB9CiAjZW5kaWYKIAorICAgIHZpcnR1YWwgYm9vbCBz
aG91bGRNYWludGFpbkFzcGVjdFJhdGlvKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZp
cnR1YWwgdm9pZCBzZXRTaG91bGRNYWludGFpbkFzcGVjdFJhdGlvKGJvb2wpIHsgfQorCiAgICAg
dmlydHVhbCBib29sIGhhc1NpbmdsZVNlY3VyaXR5T3JpZ2luKCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KIAogICAgIHZpcnR1YWwgYm9vbCBkaWRQYXNzQ09SU0FjY2Vzc0NoZWNrKCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAKaW5kZXggMjhjZmZkMmEyYzJjYWVlZDg2YjkwZmU2ZGI0
NDE2ZWNjNDA3MDM2Yi4uODFmNWJhMDdmODhhZGNkOTViZDBiODQ5NjU4NmIwODczYzEyZmMxMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbi5jcHAKQEAgLTc3LDYgKzc3LDcgQEAgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
OjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24oTWVkaWFQbGF5ZXIqIHBsYXkKICAgICAs
IG1fcGxheVdoZW5GcmFtZXNBdmFpbGFibGUoZmFsc2UpCiAgICAgLCBtX2luYmFuZFRyYWNrQ29u
ZmlndXJhdGlvblBlbmRpbmcoZmFsc2UpCiAgICAgLCBtX2NoYXJhY3RlcmlzdGljc0NoYW5nZWQo
ZmFsc2UpCisgICAgLCBtX3Nob3VsZE1haW50YWluQXNwZWN0UmF0aW8odHJ1ZSkKICAgICAsIG1f
c2Vla0NvdW50KDApCiB7CiAgICAgTE9HKE1lZGlhLCAiTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24oJXApIiwgdGhpcyk7CkBAIC01
ODIsNiArNTgzLDE1IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjphY2Nl
bGVyYXRlZFJlbmRlcmluZ1N0YXRlQ2hhbmdlZCgpCiAgICAgc2V0VXBWaWRlb1JlbmRlcmluZygp
OwogfQogCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6c2V0U2hvdWxkTWFp
bnRhaW5Bc3BlY3RSYXRpbyhib29sIG1haW50YWluQXNwZWN0UmF0aW8pCit7CisgICAgaWYgKG1h
aW50YWluQXNwZWN0UmF0aW8gPT0gbV9zaG91bGRNYWludGFpbkFzcGVjdFJhdGlvKQorICAgICAg
ICByZXR1cm47CisKKyAgICBtX3Nob3VsZE1haW50YWluQXNwZWN0UmF0aW8gPSBtYWludGFpbkFz
cGVjdFJhdGlvOworICAgIHVwZGF0ZVZpZGVvTGF5ZXJHcmF2aXR5KCk7Cit9CisKIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjptZXRhZGF0YUxvYWRlZCgpCiB7CiAgICAgbV9s
b2FkaW5nTWV0YWRhdGEgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24u
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb24uaAppbmRleCAzMGFjYmYwYjUzNmZhYzk1MTRhMWFkMzE4
NDMzNTQxNWVmOWMzMjA1Li5jYWQ0MDk3YTIwZTQ0ZGE0YTBjNzBlNGZkZWYwZDFhMmIyYTRjNDg5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbi5oCkBAIC0xNjUsNiArMTY1LDkgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgYm9vbCBz
dXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBhY2NlbGVyYXRlZFJlbmRlcmluZ1N0YXRlQ2hhbmdlZCgpOwogI2VuZGlmCisgICAgdmlydHVh
bCBib29sIHNob3VsZE1haW50YWluQXNwZWN0UmF0aW8oKSBjb25zdCBPVkVSUklERSB7IHJldHVy
biBtX3Nob3VsZE1haW50YWluQXNwZWN0UmF0aW87IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2hv
dWxkTWFpbnRhaW5Bc3BlY3RSYXRpbyhib29sKSBPVkVSUklERTsKKwogICAgIHZpcnR1YWwgTWVk
aWFQbGF5ZXI6Ok1vdmllTG9hZFR5cGUgbW92aWVMb2FkVHlwZSgpIGNvbnN0OwogICAgIHZpcnR1
YWwgdm9pZCBwcmVwYXJlRm9yUmVuZGVyaW5nKCk7CiAgICAgdmlydHVhbCBmbG9hdCBtZWRpYVRp
bWVGb3JUaW1lVmFsdWUoZmxvYXQpIGNvbnN0ID0gMDsKQEAgLTIyOCw2ICsyMzEsOCBAQCBwcm90
ZWN0ZWQ6CiAgICAgdmlydHVhbCBib29sIGhhc0NvbnRleHRSZW5kZXJlcigpIGNvbnN0ID0gMDsK
ICAgICB2aXJ0dWFsIGJvb2wgaGFzTGF5ZXJSZW5kZXJlcigpIGNvbnN0ID0gMDsKIAorICAgIHZp
cnR1YWwgdm9pZCB1cGRhdGVWaWRlb0xheWVyR3Jhdml0eSgpID0gMDsKKwogcHJvdGVjdGVkOgog
ICAgIHZvaWQgdXBkYXRlU3RhdGVzKCk7CiAKQEAgLTMwOCw2ICszMTMsNyBAQCBwcml2YXRlOgog
ICAgIGJvb2wgbV9wbGF5V2hlbkZyYW1lc0F2YWlsYWJsZTsKICAgICBib29sIG1faW5iYW5kVHJh
Y2tDb25maWd1cmF0aW9uUGVuZGluZzsKICAgICBib29sIG1fY2hhcmFjdGVyaXN0aWNzQ2hhbmdl
ZDsKKyAgICBib29sIG1fc2hvdWxkTWFpbnRhaW5Bc3BlY3RSYXRpbzsKICAgICBzaXplX3QgbV9z
ZWVrQ291bnQ7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcAppbmRleCBkYzExYzFjMjNmMTQ1OWJiYTAz
MGU3NjZkZTYyYjU2ZDg1N2ZmOGJmLi5mMDZlYjA1ZTg1M2FkNzI2YjBkYzlkMmRhMDM5N2JkN2E5
YWIwNDU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHAKQEAgLTMzMiw2ICszMzIsMTEgQEAgdm9pZCBNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRjo6Y2FuY2VsTG9hZCgpCiAgICAgc2V0RGVsYXlD
YWxsYmFja3MoZmFsc2UpOwogfQogCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bkNGOjp1cGRhdGVWaWRlb0xheWVyR3Jhdml0eSgpCit7CisgICAgLy8gV2Ugc2hvdWxkIGNhbGwg
QVZDRlBsYXllckxheWVyU2V0VmlkZW9HcmF2aXR5KCkgaGVyZSwgYnV0IGl0IGlzIG5vdCB5ZXQg
aW1wbGVtZW50ZWQuCit9CisKIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Y6
Omhhc0xheWVyUmVuZGVyZXIoKSBjb25zdAogewogICAgIHJldHVybiB2aWRlb0xheWVyKG1fYXZm
V3JhcHBlcik7CkBAIC0xNTY2LDYgKzE1NzEsNyBAQCBQbGF0Zm9ybUxheWVyKiBBVkZXcmFwcGVy
OjpwbGF0Zm9ybUxheWVyKCkKICAgICBDQUNGTGF5ZXJJbnNlcnRTdWJsYXllcihtX3ZpZGVvTGF5
ZXJXcmFwcGVyLT5wbGF0Zm9ybUxheWVyKCksIG1fY2FWaWRlb0xheWVyLmdldCgpLCAwKTsKICAg
ICBtX3ZpZGVvTGF5ZXJXcmFwcGVyLT5zZXRBbmNob3JQb2ludChGbG9hdFBvaW50M0QoKSk7CiAg
ICAgbV92aWRlb0xheWVyV3JhcHBlci0+c2V0TmVlZHNMYXlvdXQoKTsKKyAgICB1cGRhdGVWaWRl
b0xheWVyR3Jhdml0eSgpOwogCiAgICAgcmV0dXJuIG1fdmlkZW9MYXllcldyYXBwZXItPnBsYXRm
b3JtTGF5ZXIoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmgKaW5kZXggM2IxNDUxMDM3YmNjYzM3Nzg5ZTZlMTdk
YmUxN2M3NTFiMTg2YTliYy4uYWQ3NWU3MTI1MWQ5NzY5MGIwNjQyMGViNzFkOTcyZGI0YzMwMWUx
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbkNGLmgKQEAgLTk3LDYgKzk3LDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFs
IGJvb2wgaGFzQ29udGV4dFJlbmRlcmVyKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGhhc0xh
eWVyUmVuZGVyZXIoKSBjb25zdDsKIAorICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVWaWRlb0xheWVy
R3Jhdml0eSgpIE9WRVJSSURFOworCiAgICAgdmlydHVhbCB2b2lkIGNvbnRlbnRzTmVlZHNEaXNw
bGF5KCk7CiAKICAgICB2aXJ0dWFsIFN0cmluZyBsYW5ndWFnZU9mUHJpbWFyeUF1ZGlvVHJhY2so
KSBjb25zdCBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAppbmRleCBmN2JmMDU3MzQ3Zjhi
ZjhjYTUwNTFjYjhjMTYzMmI0MDI2YWY1NGIyLi5iNWQzOTQ5ZWM4YWEwOGE3ZDk4NjUzODRhYWIz
ZTQ5YzNiYjA1YjUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCkBAIC0xNDgsNiArMTQ4LDggQEAg
cHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaGFzQ29udGV4dFJlbmRlcmVyKCkgY29uc3Q7CiAg
ICAgdmlydHVhbCBib29sIGhhc0xheWVyUmVuZGVyZXIoKSBjb25zdDsKIAorICAgIHZpcnR1YWwg
dm9pZCB1cGRhdGVWaWRlb0xheWVyR3Jhdml0eSgpIE9WRVJSSURFOworCiAgICAgdmlydHVhbCBi
b29sIGhhc1NpbmdsZVNlY3VyaXR5T3JpZ2luKCkgY29uc3Q7CiAgICAgCiAjaWYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8IDEwODAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCmluZGV4
IGFkNjUyODI2OWFiNTM2N2MwMzQ1M2I4MTc2ZDE3ZGQ1NjczOWYyMTMuLjQ1MjA3NDM1ZjQ2MDcy
ZDk4N2ZkZDU0ZTQwOWZhMGNhMDNmYzNlNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAt
OTgsNiArOTgsOCBAQCBTT0ZUX0xJTktfUE9JTlRFUihBVkZvdW5kYXRpb24sIEFWTWVkaWFUeXBl
QXVkaW8sIE5TU3RyaW5nICopCiBTT0ZUX0xJTktfUE9JTlRFUihBVkZvdW5kYXRpb24sIEFWUGxh
eWVySXRlbURpZFBsYXlUb0VuZFRpbWVOb3RpZmljYXRpb24sIE5TU3RyaW5nICopCiBTT0ZUX0xJ
TktfUE9JTlRFUihBVkZvdW5kYXRpb24sIEFWQXNzZXRJbWFnZUdlbmVyYXRvckFwZXJ0dXJlTW9k
ZUNsZWFuQXBlcnR1cmUsIE5TU3RyaW5nICopCiBTT0ZUX0xJTktfUE9JTlRFUihBVkZvdW5kYXRp
b24sIEFWVVJMQXNzZXRSZWZlcmVuY2VSZXN0cmljdGlvbnNLZXksIE5TU3RyaW5nICopCitTT0ZU
X0xJTktfUE9JTlRFUihBVkZvdW5kYXRpb24sIEFWTGF5ZXJWaWRlb0dyYXZpdHlSZXNpemVBc3Bl
Y3QsIE5TU3RyaW5nICopCitTT0ZUX0xJTktfUE9JTlRFUihBVkZvdW5kYXRpb24sIEFWTGF5ZXJW
aWRlb0dyYXZpdHlSZXNpemUsIE5TU3RyaW5nICopCiAKIFNPRlRfTElOS19DT05TVEFOVChDb3Jl
TWVkaWEsIGtDTVRpbWVaZXJvLCBDTVRpbWUpCiAKQEAgLTExNiw2ICsxMTgsOCBAQCBTT0ZUX0xJ
TktfQ09OU1RBTlQoQ29yZU1lZGlhLCBrQ01UaW1lWmVybywgQ01UaW1lKQogI2RlZmluZSBBVlBs
YXllckl0ZW1EaWRQbGF5VG9FbmRUaW1lTm90aWZpY2F0aW9uIGdldEFWUGxheWVySXRlbURpZFBs
YXlUb0VuZFRpbWVOb3RpZmljYXRpb24oKQogI2RlZmluZSBBVkFzc2V0SW1hZ2VHZW5lcmF0b3JB
cGVydHVyZU1vZGVDbGVhbkFwZXJ0dXJlIGdldEFWQXNzZXRJbWFnZUdlbmVyYXRvckFwZXJ0dXJl
TW9kZUNsZWFuQXBlcnR1cmUoKQogI2RlZmluZSBBVlVSTEFzc2V0UmVmZXJlbmNlUmVzdHJpY3Rp
b25zS2V5IGdldEFWVVJMQXNzZXRSZWZlcmVuY2VSZXN0cmljdGlvbnNLZXkoKQorI2RlZmluZSBB
VkxheWVyVmlkZW9HcmF2aXR5UmVzaXplQXNwZWN0IGdldEFWTGF5ZXJWaWRlb0dyYXZpdHlSZXNp
emVBc3BlY3QoKQorI2RlZmluZSBBVkxheWVyVmlkZW9HcmF2aXR5UmVzaXplIGdldEFWTGF5ZXJW
aWRlb0dyYXZpdHlSZXNpemUoKQogCiAjaWYgSEFWRShBVkZPVU5EQVRJT05fTUVESUFfU0VMRUNU
SU9OX0dST1VQKQogdHlwZWRlZiBBVk1lZGlhU2VsZWN0aW9uR3JvdXAgQVZNZWRpYVNlbGVjdGlv
bkdyb3VwVHlwZTsKQEAgLTM3Miw2ICszNzYsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakM6OmNyZWF0ZVZpZGVvTGF5ZXIoKQogI2lmbmRlZiBOREVCVUcKICAgICAg
ICAgW21fdmlkZW9MYXllci5nZXQoKSBzZXROYW1lOkAiVmlkZW8gbGF5ZXIiXTsKICNlbmRpZgor
ICAgICAgICB1cGRhdGVWaWRlb0xheWVyR3Jhdml0eSgpOwogICAgICAgICBMT0coTWVkaWEsICJN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVWaWRlb0xheWVyKCVwKSAt
IHJldHVybmluZyAlcCIsIHRoaXMsIG1fdmlkZW9MYXllci5nZXQoKSk7CiAgICAgfQogfQpAQCAt
OTg3LDYgKzk5MiwxNSBAQCBmbG9hdCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
OjptZWRpYVRpbWVGb3JUaW1lVmFsdWUoZmxvYXQgdGltZVZhbHVlKQogICAgIHJldHVybiB0aW1l
VmFsdWU7CiB9CiAKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6dXBk
YXRlVmlkZW9MYXllckdyYXZpdHkoKQoreworICAgIGlmICghbV92aWRlb0xheWVyKQorICAgICAg
ICByZXR1cm47CisKKyAgICBOU1N0cmluZyogZ3Jhdml0eSA9IHNob3VsZE1haW50YWluQXNwZWN0
UmF0aW8oKSA/IEFWTGF5ZXJWaWRlb0dyYXZpdHlSZXNpemVBc3BlY3QgOiBBVkxheWVyVmlkZW9H
cmF2aXR5UmVzaXplOworICAgIFttX3ZpZGVvTGF5ZXIuZ2V0KCkgc2V0VmlkZW9HcmF2aXR5Omdy
YXZpdHldOworfQorCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnRy
YWNrc0NoYW5nZWQoKQogewogICAgIFN0cmluZyBwcmltYXJ5QXVkaW9UcmFja0xhbmd1YWdlID0g
bV9sYW5ndWFnZU9mUHJpbWFyeUF1ZGlvVHJhY2s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAppbmRleCA2ZjdhOTY1
N2FkZGFmODhmZDNkYjUwYTM2YjAxZDI3YTMwNzAyMzc1Li5kOWYzYzk2YWM3Y2E1Y2Y0Y2QwM2Zk
MTExODY1YzY5YmQ0ODQ2YWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKQEAgLTMwNSw2ICszMDUsOSBAQCB2
b2lkIEdyYXBoaWNzTGF5ZXJDQTo6d2lsbEJlRGVzdHJveWVkKCkKICAgICAKICAgICBpZiAobV9j
b250ZW50c0xheWVyKQogICAgICAgICBtX2NvbnRlbnRzTGF5ZXItPnNldE93bmVyKDApOworCisg
ICAgaWYgKG1fY29udGVudHNDbGlwcGluZ0xheWVyKQorICAgICAgICBtX2NvbnRlbnRzQ2xpcHBp
bmdMYXllci0+c2V0T3duZXIoMCk7CiAgICAgICAgIAogICAgIGlmIChtX3N0cnVjdHVyYWxMYXll
cikKICAgICAgICAgbV9zdHJ1Y3R1cmFsTGF5ZXItPnNldE93bmVyKDApOwpAQCAtNjY5LDcgKzY3
MiwxNiBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6c2V0Q29udGVudHNSZWN0KGNvbnN0IEludFJl
Y3QmIHJlY3QpCiAgICAgICAgIHJldHVybjsKIAogICAgIEdyYXBoaWNzTGF5ZXI6OnNldENvbnRl
bnRzUmVjdChyZWN0KTsKLSAgICBub3RlTGF5ZXJQcm9wZXJ0eUNoYW5nZWQoQ29udGVudHNSZWN0
Q2hhbmdlZCk7CisgICAgbm90ZUxheWVyUHJvcGVydHlDaGFuZ2VkKENvbnRlbnRzUmVjdHNDaGFu
Z2VkKTsKK30KKwordm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldENvbnRlbnRzQ2xpcHBpbmdSZWN0
KGNvbnN0IEludFJlY3QmIHJlY3QpCit7CisgICAgaWYgKHJlY3QgPT0gbV9jb250ZW50c0NsaXBw
aW5nUmVjdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgR3JhcGhpY3NMYXllcjo6c2V0Q29udGVu
dHNDbGlwcGluZ1JlY3QocmVjdCk7CisgICAgbm90ZUxheWVyUHJvcGVydHlDaGFuZ2VkKENvbnRl
bnRzUmVjdHNDaGFuZ2VkKTsKIH0KIAogYm9vbCBHcmFwaGljc0xheWVyQ0E6OnNob3VsZFJlcGFp
bnRPblNpemVDaGFuZ2UoKSBjb25zdApAQCAtMTIxNCw4ICsxMjI2LDggQEAgdm9pZCBHcmFwaGlj
c0xheWVyQ0E6OmNvbW1pdExheWVyQ2hhbmdlc0JlZm9yZVN1YmxheWVycyhDb21taXRTdGF0ZSYg
Y29tbWl0U3RhdGUKICAgICBpZiAobV91bmNvbW1pdHRlZENoYW5nZXMgJiBEaXJ0eVJlY3RzQ2hh
bmdlZCkKICAgICAgICAgcmVwYWludExheWVyRGlydHlSZWN0cygpOwogICAgIAotICAgIGlmICht
X3VuY29tbWl0dGVkQ2hhbmdlcyAmIENvbnRlbnRzUmVjdENoYW5nZWQpCi0gICAgICAgIHVwZGF0
ZUNvbnRlbnRzUmVjdCgpOworICAgIGlmIChtX3VuY29tbWl0dGVkQ2hhbmdlcyAmIENvbnRlbnRz
UmVjdHNDaGFuZ2VkKSAvLyBOZWVkcyB0byBoYXBwZW4gYmVmb3JlIENoaWxkcmVuQ2hhbmdlZAor
ICAgICAgICB1cGRhdGVDb250ZW50c1JlY3RzKCk7CiAKICAgICBpZiAobV91bmNvbW1pdHRlZENo
YW5nZXMgJiBNYXNrTGF5ZXJDaGFuZ2VkKQogICAgICAgICB1cGRhdGVNYXNrTGF5ZXIoKTsKQEAg
LTEyOTcsNyArMTMwOSw3IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjp1cGRhdGVTdWJsYXllckxp
c3QoYm9vbCBtYXhMYXllckRlcHRoUmVhY2hlZCkKICAgICAgICAgLy8gRklYTUU6IGFkZCB0aGUg
Y29udGVudHMgbGF5ZXIgaW4gdGhlIGNvcnJlY3Qgb3JkZXIgd2l0aCBuZWdhdGl2ZSB6LW9yZGVy
IGNoaWxkcmVuLgogICAgICAgICAvLyBUaGlzIGRvZXMgbm90IGNhdXNlIHZpc2libGUgcmVuZGVy
aW5nIGlzc3VlcyBiZWNhdXNlIGN1cnJlbnRseSBjb250ZW50cyBsYXllcnMgYXJlIG9ubHkgdXNl
ZAogICAgICAgICAvLyBmb3IgcmVwbGFjZWQgZWxlbWVudHMgdGhhdCBkb24ndCBoYXZlIGNoaWxk
cmVuLgotICAgICAgICBwcmltYXJ5TGF5ZXJDaGlsZHJlbi5hcHBlbmQobV9jb250ZW50c0xheWVy
KTsKKyAgICAgICAgcHJpbWFyeUxheWVyQ2hpbGRyZW4uYXBwZW5kKG1fY29udGVudHNDbGlwcGlu
Z0xheWVyID8gbV9jb250ZW50c0NsaXBwaW5nTGF5ZXIgOiBtX2NvbnRlbnRzTGF5ZXIpOwogICAg
IH0KICAgICAKICAgICBjb25zdCBWZWN0b3I8R3JhcGhpY3NMYXllcio+JiBjaGlsZExheWVycyA9
IGNoaWxkcmVuKCk7CkBAIC0xNzIyLDcgKzE3MzQsNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6
dXBkYXRlQ29udGVudHNJbWFnZSgpCiAgICAgICAgICAgICAgICAgaXQtPnZhbHVlLT5zZXRDb250
ZW50cyhtX2NvbnRlbnRzTGF5ZXItPmNvbnRlbnRzKCkpOwogICAgICAgICB9CiAgICAgICAgIAot
ICAgICAgICB1cGRhdGVDb250ZW50c1JlY3QoKTsKKyAgICAgICAgdXBkYXRlQ29udGVudHNSZWN0
cygpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIC8vIE5vIGltYWdlLgogICAgICAgICAvLyBtX2Nv
bnRlbnRzTGF5ZXIgd2lsbCBiZSByZW1vdmVkIHZpYSB1cGRhdGVTdWJsYXllckxpc3QuCkBAIC0x
NzM3LDcgKzE3NDksNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6dXBkYXRlQ29udGVudHNNZWRp
YUxheWVyKCkKIAogICAgIC8vIFZpZGVvIGxheWVyIHdhcyBzZXQgYXMgbV9jb250ZW50c0xheWVy
LCBhbmQgd2lsbCBnZXQgcGFyZW50ZWQgaW4gdXBkYXRlU3VibGF5ZXJMaXN0KCkuCiAgICAgc2V0
dXBDb250ZW50c0xheWVyKG1fY29udGVudHNMYXllci5nZXQoKSk7Ci0gICAgdXBkYXRlQ29udGVu
dHNSZWN0KCk7CisgICAgdXBkYXRlQ29udGVudHNSZWN0cygpOwogfQogCiB2b2lkIEdyYXBoaWNz
TGF5ZXJDQTo6dXBkYXRlQ29udGVudHNDYW52YXNMYXllcigpCkBAIC0xNzQ4LDcgKzE3NjAsNyBA
QCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6dXBkYXRlQ29udGVudHNDYW52YXNMYXllcigpCiAgICAg
Ly8gQ2FudmFzTGF5ZXIgd2FzIHNldCBhcyBtX2NvbnRlbnRzTGF5ZXIsIGFuZCB3aWxsIGdldCBw
YXJlbnRlZCBpbiB1cGRhdGVTdWJsYXllckxpc3QoKS4KICAgICBzZXR1cENvbnRlbnRzTGF5ZXIo
bV9jb250ZW50c0xheWVyLmdldCgpKTsKICAgICBtX2NvbnRlbnRzTGF5ZXItPnNldE5lZWRzRGlz
cGxheSgpOwotICAgIHVwZGF0ZUNvbnRlbnRzUmVjdCgpOworICAgIHVwZGF0ZUNvbnRlbnRzUmVj
dHMoKTsKIH0KIAogdm9pZCBHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZUNvbnRlbnRzQ29sb3JMYXll
cigpCkBAIC0xNzU4LDcgKzE3NzAsNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6dXBkYXRlQ29u
dGVudHNDb2xvckxheWVyKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgc2V0dXBDb250ZW50c0xh
eWVyKG1fY29udGVudHNMYXllci5nZXQoKSk7Ci0gICAgdXBkYXRlQ29udGVudHNSZWN0KCk7Cisg
ICAgdXBkYXRlQ29udGVudHNSZWN0cygpOwogICAgIEFTU0VSVChtX2NvbnRlbnRzU29saWRDb2xv
ci5pc1ZhbGlkKCkpOwogICAgIG1fY29udGVudHNMYXllci0+c2V0QmFja2dyb3VuZENvbG9yKG1f
Y29udGVudHNTb2xpZENvbG9yKTsKIApAQCAtMTc2OSwyMiArMTc4MSw3NSBAQCB2b2lkIEdyYXBo
aWNzTGF5ZXJDQTo6dXBkYXRlQ29udGVudHNDb2xvckxheWVyKCkKICAgICB9CiB9CiAKLXZvaWQg
R3JhcGhpY3NMYXllckNBOjp1cGRhdGVDb250ZW50c1JlY3QoKQordm9pZCBHcmFwaGljc0xheWVy
Q0E6OnVwZGF0ZUNvbnRlbnRzUmVjdHMoKQogewogICAgIGlmICghbV9jb250ZW50c0xheWVyKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBGbG9hdFBvaW50IHBvaW50KG1fY29udGVudHNSZWN0Lngo
KSwgbV9jb250ZW50c1JlY3QueSgpKTsKLSAgICBGbG9hdFJlY3QgcmVjdCgwLCAwLCBtX2NvbnRl
bnRzUmVjdC53aWR0aCgpLCBtX2NvbnRlbnRzUmVjdC5oZWlnaHQoKSk7CisgICAgRmxvYXRQb2lu
dCBjb250ZW50T3JpZ2luOworICAgIEZsb2F0UmVjdCBjb250ZW50Qm91bmRzKDAsIDAsIG1fY29u
dGVudHNSZWN0LndpZHRoKCksIG1fY29udGVudHNSZWN0LmhlaWdodCgpKTsKKworICAgIEZsb2F0
UG9pbnQgY2xpcHBpbmdPcmlnaW47CisgICAgRmxvYXRSZWN0IGNsaXBwaW5nQm91bmRzOworICAg
IAorICAgIGJvb2wgbmVlZENvbnRlbnRzQ2xpcHBpbmdMYXllciA9ICFtX2NvbnRlbnRzQ2xpcHBp
bmdSZWN0LmNvbnRhaW5zKG1fY29udGVudHNSZWN0KTsKKyAgICBib29sIGdhaW5lZE9yTG9zdENs
aXBwaW5nTGF5ZXIgPSBmYWxzZTsKKyAgICBpZiAobmVlZENvbnRlbnRzQ2xpcHBpbmdMYXllcikg
eworICAgICAgICBpZiAoIW1fY29udGVudHNDbGlwcGluZ0xheWVyKSB7CisgICAgICAgICAgICBt
X2NvbnRlbnRzQ2xpcHBpbmdMYXllciA9IFBsYXRmb3JtQ0FMYXllcjo6Y3JlYXRlKFBsYXRmb3Jt
Q0FMYXllcjo6TGF5ZXJUeXBlTGF5ZXIsIHRoaXMpOworICAgICAgICAgICAgbV9jb250ZW50c0Ns
aXBwaW5nTGF5ZXItPnNldE1hc2tzVG9Cb3VuZHModHJ1ZSk7CisgICAgICAgICAgICBtX2NvbnRl
bnRzQ2xpcHBpbmdMYXllci0+c2V0QW5jaG9yUG9pbnQoRmxvYXRQb2ludCgpKTsKKyNpZm5kZWYg
TkRFQlVHCisgICAgICAgICAgICBtX2NvbnRlbnRzQ2xpcHBpbmdMYXllci0+c2V0TmFtZSgiQ29u
dGVudHMgQ2xpcHBpbmciKTsKKyNlbmRpZgorICAgICAgICAgICAgbV9jb250ZW50c0xheWVyLT5y
ZW1vdmVGcm9tU3VwZXJsYXllcigpOworICAgICAgICAgICAgbV9jb250ZW50c0NsaXBwaW5nTGF5
ZXItPmFwcGVuZFN1YmxheWVyKG1fY29udGVudHNMYXllci5nZXQoKSk7CisgICAgICAgICAgICBn
YWluZWRPckxvc3RDbGlwcGluZ0xheWVyID0gdHJ1ZTsKKyAgICAgICAgfQorICAgIAorICAgICAg
ICBjbGlwcGluZ09yaWdpbiA9IG1fY29udGVudHNDbGlwcGluZ1JlY3QubG9jYXRpb24oKTsKKyAg
ICAgICAgY2xpcHBpbmdCb3VuZHMuc2V0U2l6ZShtX2NvbnRlbnRzQ2xpcHBpbmdSZWN0LnNpemUo
KSk7CisKKyAgICAgICAgY29udGVudE9yaWdpbiA9IHRvUG9pbnQobV9jb250ZW50c1JlY3QubG9j
YXRpb24oKSAtIG1fY29udGVudHNDbGlwcGluZ1JlY3QubG9jYXRpb24oKSk7CisKKyAgICAgICAg
bV9jb250ZW50c0NsaXBwaW5nTGF5ZXItPnNldFBvc2l0aW9uKGNsaXBwaW5nT3JpZ2luKTsKKyAg
ICAgICAgbV9jb250ZW50c0NsaXBwaW5nTGF5ZXItPnNldEJvdW5kcyhjbGlwcGluZ0JvdW5kcyk7
CisKKyAgICAgICAgbV9jb250ZW50c0xheWVyLT5zZXRQb3NpdGlvbihjb250ZW50T3JpZ2luKTsK
KyAgICAgICAgbV9jb250ZW50c0xheWVyLT5zZXRCb3VuZHMoY29udGVudEJvdW5kcyk7CisgICAg
CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKG1fY29udGVudHNDbGlwcGluZ0xheWVyKSB7Cisg
ICAgICAgICAgICBtX2NvbnRlbnRzTGF5ZXItPnJlbW92ZUZyb21TdXBlcmxheWVyKCk7CiAKLSAg
ICBtX2NvbnRlbnRzTGF5ZXItPnNldFBvc2l0aW9uKHBvaW50KTsKLSAgICBtX2NvbnRlbnRzTGF5
ZXItPnNldEJvdW5kcyhyZWN0KTsKKyAgICAgICAgICAgIG1fY29udGVudHNDbGlwcGluZ0xheWVy
LT5yZW1vdmVGcm9tU3VwZXJsYXllcigpOworICAgICAgICAgICAgbV9jb250ZW50c0NsaXBwaW5n
TGF5ZXItPnNldE93bmVyKDApOworICAgICAgICAgICAgbV9jb250ZW50c0NsaXBwaW5nTGF5ZXIg
PSBudWxscHRyOworICAgICAgICAgICAgZ2FpbmVkT3JMb3N0Q2xpcHBpbmdMYXllciA9IHRydWU7
CisgICAgICAgIH0KKworICAgICAgICBjb250ZW50T3JpZ2luID0gbV9jb250ZW50c1JlY3QubG9j
YXRpb24oKTsKKyAgICB9CisgICAgCisgICAgaWYgKGdhaW5lZE9yTG9zdENsaXBwaW5nTGF5ZXIp
CisgICAgICAgIG5vdGVTdWJsYXllcnNDaGFuZ2VkKCk7CisKKyAgICBtX2NvbnRlbnRzTGF5ZXIt
PnNldFBvc2l0aW9uKGNvbnRlbnRPcmlnaW4pOworICAgIG1fY29udGVudHNMYXllci0+c2V0Qm91
bmRzKGNvbnRlbnRCb3VuZHMpOwogCiAgICAgaWYgKG1fY29udGVudHNMYXllckNsb25lcykgewog
ICAgICAgICBMYXllck1hcDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbV9jb250ZW50c0xheWVyQ2xv
bmVzLT5lbmQoKTsKICAgICAgICAgZm9yIChMYXllck1hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBt
X2NvbnRlbnRzTGF5ZXJDbG9uZXMtPmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkgewotICAgICAg
ICAgICAgaXQtPnZhbHVlLT5zZXRQb3NpdGlvbihwb2ludCk7Ci0gICAgICAgICAgICBpdC0+dmFs
dWUtPnNldEJvdW5kcyhyZWN0KTsKKyAgICAgICAgICAgIGl0LT52YWx1ZS0+c2V0UG9zaXRpb24o
Y29udGVudE9yaWdpbik7CisgICAgICAgICAgICBpdC0+dmFsdWUtPnNldEJvdW5kcyhjb250ZW50
Qm91bmRzKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChtX2NvbnRlbnRzQ2xpcHBpbmdM
YXllckNsb25lcykgeworICAgICAgICBMYXllck1hcDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbV9j
b250ZW50c0NsaXBwaW5nTGF5ZXJDbG9uZXMtPmVuZCgpOworICAgICAgICBmb3IgKExheWVyTWFw
Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1fY29udGVudHNDbGlwcGluZ0xheWVyQ2xvbmVzLT5iZWdp
bigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKKyAgICAgICAgICAgIGl0LT52YWx1ZS0+c2V0UG9zaXRp
b24oY2xpcHBpbmdPcmlnaW4pOworICAgICAgICAgICAgaXQtPnZhbHVlLT5zZXRCb3VuZHMoY2xp
cHBpbmdCb3VuZHMpOwogICAgICAgICB9CiAgICAgfQogfQpAQCAtMjY2MCw2ICsyNzI1LDIwIEBA
IHZvaWQgR3JhcGhpY3NMYXllckNBOjpkdW1wQWRkaXRpb25hbFByb3BlcnRpZXMoVGV4dFN0cmVh
bSYgdGV4dFN0cmVhbSwgaW50IGluZGVuCiAgICAgICAgIHdyaXRlSW5kZW50KHRleHRTdHJlYW0s
IGluZGVudCArIDEpOwogICAgICAgICB0ZXh0U3RyZWFtIDw8ICIodG9wIGxlZnQgdGlsZSAiIDw8
IGdyaWRFeHRlbnQueCgpIDw8ICIsICIgPDwgZ3JpZEV4dGVudC55KCkgPDwgIiB0aWxlcyBncmlk
ICIgPDwgZ3JpZEV4dGVudC53aWR0aCgpIDw8ICIgeCAiIDw8IGdyaWRFeHRlbnQuaGVpZ2h0KCkg
PDwgIilcbiI7CiAgICAgfQorICAgIAorICAgIGlmIChiZWhhdmlvciAmIExheWVyVHJlZUFzVGV4
dEluY2x1ZGVDb250ZW50TGF5ZXJzKSB7CisgICAgICAgIGlmIChtX2NvbnRlbnRzQ2xpcHBpbmdM
YXllcikgeworICAgICAgICAgICAgd3JpdGVJbmRlbnQodGV4dFN0cmVhbSwgaW5kZW50ICsgMSk7
CisgICAgICAgICAgICB0ZXh0U3RyZWFtIDw8ICIoY29udGVudHMgY2xpcHBpbmcgbGF5ZXIgIiA8
PCBtX2NvbnRlbnRzQ2xpcHBpbmdMYXllci0+cG9zaXRpb24oKS54KCkgPDwgIiwgIiA8PCBtX2Nv
bnRlbnRzQ2xpcHBpbmdMYXllci0+cG9zaXRpb24oKS55KCkKKyAgICAgICAgICAgICAgICA8PCAi
ICIgPDwgbV9jb250ZW50c0NsaXBwaW5nTGF5ZXItPmJvdW5kcygpLndpZHRoKCkgPDwgIiB4ICIg
PDwgbV9jb250ZW50c0NsaXBwaW5nTGF5ZXItPmJvdW5kcygpLmhlaWdodCgpIDw8ICIpXG4iOwor
ICAgICAgICB9CisKKyAgICAgICAgaWYgKG1fY29udGVudHNMYXllcikgeworICAgICAgICAgICAg
d3JpdGVJbmRlbnQodGV4dFN0cmVhbSwgaW5kZW50ICsgMSk7CisgICAgICAgICAgICB0ZXh0U3Ry
ZWFtIDw8ICIoY29udGVudHMgbGF5ZXIgIiA8PCBtX2NvbnRlbnRzTGF5ZXItPnBvc2l0aW9uKCku
eCgpIDw8ICIsICIgPDwgbV9jb250ZW50c0xheWVyLT5wb3NpdGlvbigpLnkoKQorICAgICAgICAg
ICAgICAgIDw8ICIgIiA8PCBtX2NvbnRlbnRzTGF5ZXItPmJvdW5kcygpLndpZHRoKCkgPDwgIiB4
ICIgPDwgbV9jb250ZW50c0xheWVyLT5ib3VuZHMoKS5oZWlnaHQoKSA8PCAiKVxuIjsKKyAgICAg
ICAgfQorICAgIH0KIH0KIAogdm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldERlYnVnQm9yZGVyKGNv
bnN0IENvbG9yJiBjb2xvciwgZmxvYXQgYm9yZGVyV2lkdGgpCkBAIC0yNzk1LDcgKzI4NzQsOCBA
QCBQYXNzUmVmUHRyPFBsYXRmb3JtQ0FMYXllcj4gR3JhcGhpY3NMYXllckNBOjpmaW5kT3JNYWtl
Q2xvbmUoQ2xvbmVJRCBjbG9uZUlELCBQbAogICAgIHJldHVybiByZXN1bHRMYXllcjsKIH0gICAK
IAotdm9pZCBHcmFwaGljc0xheWVyQ0E6OmVuc3VyZUNsb25lTGF5ZXJzKENsb25lSUQgY2xvbmVJ
RCwgUmVmUHRyPFBsYXRmb3JtQ0FMYXllcj4mIHByaW1hcnlMYXllciwgUmVmUHRyPFBsYXRmb3Jt
Q0FMYXllcj4mIHN0cnVjdHVyYWxMYXllciwgUmVmUHRyPFBsYXRmb3JtQ0FMYXllcj4mIGNvbnRl
bnRzTGF5ZXIsIENsb25lTGV2ZWwgY2xvbmVMZXZlbCkKK3ZvaWQgR3JhcGhpY3NMYXllckNBOjpl
bnN1cmVDbG9uZUxheWVycyhDbG9uZUlEIGNsb25lSUQsIFJlZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+
JiBwcmltYXJ5TGF5ZXIsIFJlZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+JiBzdHJ1Y3R1cmFsTGF5ZXIs
CisgICAgUmVmUHRyPFBsYXRmb3JtQ0FMYXllcj4mIGNvbnRlbnRzTGF5ZXIsIFJlZlB0cjxQbGF0
Zm9ybUNBTGF5ZXI+JiBjb250ZW50c0NsaXBwaW5nTGF5ZXIsIENsb25lTGV2ZWwgY2xvbmVMZXZl
bCkKIHsKICAgICBzdHJ1Y3R1cmFsTGF5ZXIgPSAwOwogICAgIGNvbnRlbnRzTGF5ZXIgPSAwOwpA
QCAtMjgwOSw5ICsyODg5LDEzIEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjplbnN1cmVDbG9uZUxh
eWVycyhDbG9uZUlEIGNsb25lSUQsIFJlZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+CiAgICAgaWYgKCFt
X2NvbnRlbnRzTGF5ZXJDbG9uZXMgJiYgbV9jb250ZW50c0xheWVyKQogICAgICAgICBtX2NvbnRl
bnRzTGF5ZXJDbG9uZXMgPSBhZG9wdFB0cihuZXcgTGF5ZXJNYXApOwogCisgICAgaWYgKCFtX2Nv
bnRlbnRzQ2xpcHBpbmdMYXllckNsb25lcyAmJiBtX2NvbnRlbnRzQ2xpcHBpbmdMYXllcikKKyAg
ICAgICAgbV9jb250ZW50c0NsaXBwaW5nTGF5ZXJDbG9uZXMgPSBhZG9wdFB0cihuZXcgTGF5ZXJN
YXApOworCiAgICAgcHJpbWFyeUxheWVyID0gZmluZE9yTWFrZUNsb25lKGNsb25lSUQsIG1fbGF5
ZXIuZ2V0KCksIG1fbGF5ZXJDbG9uZXMuZ2V0KCksIGNsb25lTGV2ZWwpOwogICAgIHN0cnVjdHVy
YWxMYXllciA9IGZpbmRPck1ha2VDbG9uZShjbG9uZUlELCBtX3N0cnVjdHVyYWxMYXllci5nZXQo
KSwgbV9zdHJ1Y3R1cmFsTGF5ZXJDbG9uZXMuZ2V0KCksIGNsb25lTGV2ZWwpOwogICAgIGNvbnRl
bnRzTGF5ZXIgPSBmaW5kT3JNYWtlQ2xvbmUoY2xvbmVJRCwgbV9jb250ZW50c0xheWVyLmdldCgp
LCBtX2NvbnRlbnRzTGF5ZXJDbG9uZXMuZ2V0KCksIGNsb25lTGV2ZWwpOworICAgIGNvbnRlbnRz
Q2xpcHBpbmdMYXllciA9IGZpbmRPck1ha2VDbG9uZShjbG9uZUlELCBtX2NvbnRlbnRzQ2xpcHBp
bmdMYXllci5nZXQoKSwgbV9jb250ZW50c0NsaXBwaW5nTGF5ZXJDbG9uZXMuZ2V0KCksIGNsb25l
TGV2ZWwpOwogfQogCiB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6cmVtb3ZlQ2xvbmVMYXllcnMoKQpA
QCAtMjgxOSw2ICsyOTAzLDcgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnJlbW92ZUNsb25lTGF5
ZXJzKCkKICAgICBtX2xheWVyQ2xvbmVzID0gbnVsbHB0cjsKICAgICBtX3N0cnVjdHVyYWxMYXll
ckNsb25lcyA9IG51bGxwdHI7CiAgICAgbV9jb250ZW50c0xheWVyQ2xvbmVzID0gbnVsbHB0cjsK
KyAgICBtX2NvbnRlbnRzQ2xpcHBpbmdMYXllckNsb25lcyA9IG51bGxwdHI7CiB9CiAKIEZsb2F0
UG9pbnQgR3JhcGhpY3NMYXllckNBOjpwb3NpdGlvbkZvckNsb25lUm9vdExheWVyKCkgY29uc3QK
QEAgLTI4NDksNyArMjkzNCw4IEBAIFBhc3NSZWZQdHI8UGxhdGZvcm1DQUxheWVyPiBHcmFwaGlj
c0xheWVyQ0E6OmZldGNoQ2xvbmVMYXllcnMoR3JhcGhpY3NMYXllciogcmVwCiAgICAgUmVmUHRy
PFBsYXRmb3JtQ0FMYXllcj4gcHJpbWFyeUxheWVyOwogICAgIFJlZlB0cjxQbGF0Zm9ybUNBTGF5
ZXI+IHN0cnVjdHVyYWxMYXllcjsKICAgICBSZWZQdHI8UGxhdGZvcm1DQUxheWVyPiBjb250ZW50
c0xheWVyOwotICAgIGVuc3VyZUNsb25lTGF5ZXJzKHJlcGxpY2FTdGF0ZS5jbG9uZUlEKCksIHBy
aW1hcnlMYXllciwgc3RydWN0dXJhbExheWVyLCBjb250ZW50c0xheWVyLCBjbG9uZUxldmVsKTsK
KyAgICBSZWZQdHI8UGxhdGZvcm1DQUxheWVyPiBjb250ZW50c0NsaXBwaW5nTGF5ZXI7CisgICAg
ZW5zdXJlQ2xvbmVMYXllcnMocmVwbGljYVN0YXRlLmNsb25lSUQoKSwgcHJpbWFyeUxheWVyLCBz
dHJ1Y3R1cmFsTGF5ZXIsIGNvbnRlbnRzTGF5ZXIsIGNvbnRlbnRzQ2xpcHBpbmdMYXllciwgY2xv
bmVMZXZlbCk7CiAKICAgICBpZiAobV9tYXNrTGF5ZXIpIHsKICAgICAgICAgUmVmUHRyPFBsYXRm
b3JtQ0FMYXllcj4gbWFza0Nsb25lID0gc3RhdGljX2Nhc3Q8R3JhcGhpY3NMYXllckNBKj4obV9t
YXNrTGF5ZXIpLT5mZXRjaENsb25lTGF5ZXJzKHJlcGxpY2FSb290LCByZXBsaWNhU3RhdGUsIElu
dGVybWVkaWF0ZUNsb25lTGV2ZWwpOwpAQCAtMjg4Miw4ICsyOTY4LDEzIEBAIFBhc3NSZWZQdHI8
UGxhdGZvcm1DQUxheWVyPiBHcmFwaGljc0xheWVyQ0E6OmZldGNoQ2xvbmVMYXllcnMoR3JhcGhp
Y3NMYXllciogcmVwCiAgICAgICAgIHJlcGxpY2FMYXllciA9IHN0YXRpY19jYXN0PEdyYXBoaWNz
TGF5ZXJDQSo+KG1fcmVwbGljYUxheWVyKS0+ZmV0Y2hDbG9uZUxheWVycyhyZXBsaWNhUm9vdCwg
cmVwbGljYVN0YXRlLCBSb290Q2xvbmVMZXZlbCk7CiAgICAgICAgIHJlcGxpY2FTdGF0ZS5zZXRC
cmFuY2hUeXBlKFJlcGxpY2FTdGF0ZTo6Q2hpbGRCcmFuY2gpOwogICAgIH0KKworICAgIGlmIChj
b250ZW50c0NsaXBwaW5nTGF5ZXIpIHsKKyAgICAgICAgQVNTRVJUKGNvbnRlbnRzTGF5ZXIpOwor
ICAgICAgICBjb250ZW50c0NsaXBwaW5nTGF5ZXItPmFwcGVuZFN1YmxheWVyKGNvbnRlbnRzTGF5
ZXIuZ2V0KCkpOworICAgIH0KICAgICAKLSAgICBpZiAocmVwbGljYUxheWVyIHx8IHN0cnVjdHVy
YWxMYXllciB8fCBjb250ZW50c0xheWVyIHx8IGNoaWxkTGF5ZXJzLnNpemUoKSA+IDApIHsKKyAg
ICBpZiAocmVwbGljYUxheWVyIHx8IHN0cnVjdHVyYWxMYXllciB8fCBjb250ZW50c0xheWVyIHx8
IGNvbnRlbnRzQ2xpcHBpbmdMYXllciB8fCBjaGlsZExheWVycy5zaXplKCkgPiAwKSB7CiAgICAg
ICAgIGlmIChzdHJ1Y3R1cmFsTGF5ZXIpIHsKICAgICAgICAgICAgIC8vIFJlcGxpY2FzIHJlbmRl
ciBiZWhpbmQgdGhlIGFjdHVhbCBsYXllciBjb250ZW50LgogICAgICAgICAgICAgaWYgKHJlcGxp
Y2FMYXllcikKQEAgLTI4OTEsNiArMjk4MiwxMSBAQCBQYXNzUmVmUHRyPFBsYXRmb3JtQ0FMYXll
cj4gR3JhcGhpY3NMYXllckNBOjpmZXRjaENsb25lTGF5ZXJzKEdyYXBoaWNzTGF5ZXIqIHJlcAog
ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgLy8gQWRkIHRoZSBwcmltYXJ5IGxheWVyIG5l
eHQuIEV2ZW4gaWYgd2UgaGF2ZSBuZWdhdGl2ZSB6LW9yZGVyIGNoaWxkcmVuLCB0aGUgcHJpbWFy
eSBsYXllciBhbHdheXMgY29tZXMgYmVoaW5kLgogICAgICAgICAgICAgY2xvbmFsU3VibGF5ZXJz
LmFwcGVuZChwcmltYXJ5TGF5ZXIpOworICAgICAgICB9IGVsc2UgaWYgKGNvbnRlbnRzQ2xpcHBp
bmdMYXllcikgeworICAgICAgICAgICAgLy8gRklYTUU6IGFkZCB0aGUgY29udGVudHMgbGF5ZXIg
aW4gdGhlIGNvcnJlY3Qgb3JkZXIgd2l0aCBuZWdhdGl2ZSB6LW9yZGVyIGNoaWxkcmVuLgorICAg
ICAgICAgICAgLy8gVGhpcyBkb2VzIG5vdCBjYXVzZSB2aXNpYmxlIHJlbmRlcmluZyBpc3N1ZXMg
YmVjYXVzZSBjdXJyZW50bHkgY29udGVudHMgbGF5ZXJzIGFyZSBvbmx5IHVzZWQKKyAgICAgICAg
ICAgIC8vIGZvciByZXBsYWNlZCBlbGVtZW50cyB0aGF0IGRvbid0IGhhdmUgY2hpbGRyZW4uCisg
ICAgICAgICAgICBjbG9uYWxTdWJsYXllcnMuYXBwZW5kKGNvbnRlbnRzQ2xpcHBpbmdMYXllcik7
CiAgICAgICAgIH0gZWxzZSBpZiAoY29udGVudHNMYXllcikgewogICAgICAgICAgICAgLy8gRklY
TUU6IGFkZCB0aGUgY29udGVudHMgbGF5ZXIgaW4gdGhlIGNvcnJlY3Qgb3JkZXIgd2l0aCBuZWdh
dGl2ZSB6LW9yZGVyIGNoaWxkcmVuLgogICAgICAgICAgICAgLy8gVGhpcyBkb2VzIG5vdCBjYXVz
ZSB2aXNpYmxlIHJlbmRlcmluZyBpc3N1ZXMgYmVjYXVzZSBjdXJyZW50bHkgY29udGVudHMgbGF5
ZXJzIGFyZSBvbmx5IHVzZWQKQEAgLTI5MTksMTEgKzMwMTUsMTEgQEAgUGFzc1JlZlB0cjxQbGF0
Zm9ybUNBTGF5ZXI+IEdyYXBoaWNzTGF5ZXJDQTo6ZmV0Y2hDbG9uZUxheWVycyhHcmFwaGljc0xh
eWVyKiByZXAKICAgICBpZiAoc3RydWN0dXJhbExheWVyKSB7CiAgICAgICAgIHN0cnVjdHVyYWxM
YXllci0+c2V0U3VibGF5ZXJzKGNsb25hbFN1YmxheWVycyk7CiAKLSAgICAgICAgaWYgKGNvbnRl
bnRzTGF5ZXIpIHsKKyAgICAgICAgaWYgKGNvbnRlbnRzQ2xpcHBpbmdMYXllciB8fCBjb250ZW50
c0xheWVyKSB7CiAgICAgICAgICAgICAvLyBJZiB3ZSBoYXZlIGEgdHJhbnNmb3JtIGxheWVyLCB0
aGVuIHRoZSBjb250ZW50cyBsYXllciBpcyBwYXJlbnRlZCBpbiB0aGUgCiAgICAgICAgICAgICAv
LyBwcmltYXJ5IGxheWVyICh3aGljaCBpcyBpdHNlbGYgYSBjaGlsZCBvZiB0aGUgdHJhbnNmb3Jt
IGxheWVyKS4KICAgICAgICAgICAgIHByaW1hcnlMYXllci0+cmVtb3ZlQWxsU3VibGF5ZXJzKCk7
Ci0gICAgICAgICAgICBwcmltYXJ5TGF5ZXItPmFwcGVuZFN1YmxheWVyKGNvbnRlbnRzTGF5ZXIu
Z2V0KCkpOworICAgICAgICAgICAgcHJpbWFyeUxheWVyLT5hcHBlbmRTdWJsYXllcihjb250ZW50
c0NsaXBwaW5nTGF5ZXIgPyBjb250ZW50c0NsaXBwaW5nTGF5ZXIuZ2V0KCkgOiBjb250ZW50c0xh
eWVyLmdldCgpKTsKICAgICAgICAgfQogCiAgICAgICAgIHJlc3VsdCA9IHN0cnVjdHVyYWxMYXll
cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBo
aWNzTGF5ZXJDQS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhp
Y3NMYXllckNBLmgKaW5kZXggNTBlMjliNmU4ZjVmMTQzZWRiZmUxNWU4M2M1MThmYjcxZTRjZmI0
Yi4uOTU4ZWZmMTljYWJmN2E1YmU1ZDlkN2E2YWFkNGMyMjgzZTUyMjk5ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmgK
QEAgLTEwNSw2ICsxMDUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRz
TmVlZHNEaXNwbGF5KCk7CiAgICAgCiAgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzUmVjdChj
b25zdCBJbnRSZWN0Jik7CisgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzQ2xpcHBpbmdSZWN0
KGNvbnN0IEludFJlY3QmKSBPVkVSUklERTsKICAgICAKICAgICB2aXJ0dWFsIHZvaWQgc3VzcGVu
ZEFuaW1hdGlvbnMoZG91YmxlIHRpbWUpOwogICAgIHZpcnR1YWwgdm9pZCByZXN1bWVBbmltYXRp
b25zKCk7CkBAIC0zMTQsNyArMzE1LDggQEAgcHJpdmF0ZToKICAgICBQYXNzUmVmUHRyPFBsYXRm
b3JtQ0FMYXllcj4gY2xvbmVMYXllcihQbGF0Zm9ybUNBTGF5ZXIgKiwgQ2xvbmVMZXZlbCk7CiAg
ICAgUGFzc1JlZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+IGZpbmRPck1ha2VDbG9uZShDbG9uZUlELCBQ
bGF0Zm9ybUNBTGF5ZXIgKiwgTGF5ZXJNYXAqLCBDbG9uZUxldmVsKTsKIAotICAgIHZvaWQgZW5z
dXJlQ2xvbmVMYXllcnMoQ2xvbmVJRCBjbG9uZUlELCBSZWZQdHI8UGxhdGZvcm1DQUxheWVyPiYg
cHJpbWFyeUxheWVyLCBSZWZQdHI8UGxhdGZvcm1DQUxheWVyPiYgc3RydWN0dXJhbExheWVyLCBS
ZWZQdHI8UGxhdGZvcm1DQUxheWVyPiYgY29udGVudHNMYXllciwgQ2xvbmVMZXZlbCBjbG9uZUxl
dmVsKTsKKyAgICB2b2lkIGVuc3VyZUNsb25lTGF5ZXJzKENsb25lSUQsIFJlZlB0cjxQbGF0Zm9y
bUNBTGF5ZXI+JiBwcmltYXJ5TGF5ZXIsIFJlZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+JiBzdHJ1Y3R1
cmFsTGF5ZXIsCisgICAgICAgIFJlZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+JiBjb250ZW50c0xheWVy
LCBSZWZQdHI8UGxhdGZvcm1DQUxheWVyPiYgY29udGVudHNDbGlwcGluZ0xheWVyLCBDbG9uZUxl
dmVsKTsKIAogICAgIGJvb2wgaGFzQ2xvbmVMYXllcnMoKSBjb25zdCB7IHJldHVybiBtX2xheWVy
Q2xvbmVzOyB9CiAgICAgdm9pZCByZW1vdmVDbG9uZUxheWVycygpOwpAQCAtMzQwLDcgKzM0Miw3
IEBAIHByaXZhdGU6CiAgICAgdm9pZCB1cGRhdGVDb250ZW50c01lZGlhTGF5ZXIoKTsKICAgICB2
b2lkIHVwZGF0ZUNvbnRlbnRzQ2FudmFzTGF5ZXIoKTsKICAgICB2b2lkIHVwZGF0ZUNvbnRlbnRz
Q29sb3JMYXllcigpOwotICAgIHZvaWQgdXBkYXRlQ29udGVudHNSZWN0KCk7CisgICAgdm9pZCB1
cGRhdGVDb250ZW50c1JlY3RzKCk7CiAgICAgdm9pZCB1cGRhdGVNYXNrTGF5ZXIoKTsKICAgICB2
b2lkIHVwZGF0ZVJlcGxpY2F0ZWRMYXllcnMoKTsKIApAQCAtMzkyLDcgKzM5NCw3IEBAIHByaXZh
dGU6CiAgICAgICAgIENvbnRlbnRzTWVkaWFMYXllckNoYW5nZWQgPSAxIDw8IDE2LAogICAgICAg
ICBDb250ZW50c0NhbnZhc0xheWVyQ2hhbmdlZCA9IDEgPDwgMTcsCiAgICAgICAgIENvbnRlbnRz
Q29sb3JMYXllckNoYW5nZWQgPSAxIDw8IDE4LAotICAgICAgICBDb250ZW50c1JlY3RDaGFuZ2Vk
ID0gMSA8PCAxOSwKKyAgICAgICAgQ29udGVudHNSZWN0c0NoYW5nZWQgPSAxIDw8IDE5LAogICAg
ICAgICBNYXNrTGF5ZXJDaGFuZ2VkID0gMSA8PCAyMCwKICAgICAgICAgUmVwbGljYXRlZExheWVy
Q2hhbmdlZCA9IDEgPDwgMjEsCiAgICAgICAgIENvbnRlbnRzTmVlZHNEaXNwbGF5ID0gMSA8PCAy
MiwKQEAgLTQxMywxMiArNDE1LDE0IEBAIHByaXZhdGU6CiAKICAgICBSZWZQdHI8UGxhdGZvcm1D
QUxheWVyPiBtX2xheWVyOyAvLyBUaGUgbWFpbiBsYXllcgogICAgIFJlZlB0cjxQbGF0Zm9ybUNB
TGF5ZXI+IG1fc3RydWN0dXJhbExheWVyOyAvLyBBIGxheWVyIHVzZWQgZm9yIHN0cnVjdHVyYWwg
cmVhc29ucywgbGlrZSBwcmVzZXJ2ZXMtM2Qgb3IgcmVwbGljYS1mbGF0dGVuaW5nLiBJcyB0aGUg
cGFyZW50IG9mIG1fbGF5ZXIuCisgICAgUmVmUHRyPFBsYXRmb3JtQ0FMYXllcj4gbV9jb250ZW50
c0NsaXBwaW5nTGF5ZXI7IC8vIEEgbGF5ZXIgdXNlZCB0byBjbGlwIGlubmVyIGNvbnRlbnQKICAg
ICBSZWZQdHI8UGxhdGZvcm1DQUxheWVyPiBtX2NvbnRlbnRzTGF5ZXI7IC8vIEEgbGF5ZXIgdXNl
ZCBmb3IgaW5uZXIgY29udGVudCwgbGlrZSBpbWFnZSBhbmQgdmlkZW8KIAogICAgIC8vIFJlZmVy
ZW5jZXMgdG8gY2xvbmVzIG9mIG91ciBsYXllcnMsIGZvciByZXBsaWNhdGVkIGxheWVycy4KICAg
ICBPd25QdHI8TGF5ZXJNYXA+IG1fbGF5ZXJDbG9uZXM7CiAgICAgT3duUHRyPExheWVyTWFwPiBt
X3N0cnVjdHVyYWxMYXllckNsb25lczsKICAgICBPd25QdHI8TGF5ZXJNYXA+IG1fY29udGVudHNM
YXllckNsb25lczsKKyAgICBPd25QdHI8TGF5ZXJNYXA+IG1fY29udGVudHNDbGlwcGluZ0xheWVy
Q2xvbmVzOwogCiAjaWZkZWYgVklTSUJMRV9USUxFX1dBU0gKICAgICBSZWZQdHI8UGxhdGZvcm1D
QUxheWVyPiBtX3Zpc2libGVUaWxlV2FzaExheWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAppbmRleCBhMTIyNjVhOTdjMjc0YWYyNTJhYWMz
NjMxYzBmMDlkYTMxZGIzMmZhLi5kMTdjOGZhZjU0ZTNlZGI0MDBiNGJiNTMzMjAyNDI5YTRkN2Ex
YjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNr
aW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5n
LmNwcApAQCAtOTI1LDggKzkyNSwxNSBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRl
SW50ZXJuYWxIaWVyYXJjaHkoKQogCiB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6cmVzZXRDb250
ZW50c1JlY3QoKQogewotICAgIEludFJlY3QgcmVjdCA9IHBpeGVsU25hcHBlZEludFJlY3QoY29u
dGVudHNCb3goKSk7Ci0gICAgbV9ncmFwaGljc0xheWVyLT5zZXRDb250ZW50c1JlY3QocmVjdCk7
CisgICAgbV9ncmFwaGljc0xheWVyLT5zZXRDb250ZW50c1JlY3QocGl4ZWxTbmFwcGVkSW50UmVj
dChjb250ZW50c0JveCgpKSk7CisgICAgCisgICAgTGF5b3V0UmVjdCBjb250ZW50c0NsaXBwaW5n
UmVjdDsKKyAgICBpZiAocmVuZGVyZXIoKS5pc0JveCgpKQorICAgICAgICBjb250ZW50c0NsaXBw
aW5nUmVjdCA9IHRvUmVuZGVyQm94KCZyZW5kZXJlcigpKS0+Y29udGVudEJveFJlY3QoKTsKKwor
ICAgIGNvbnRlbnRzQ2xpcHBpbmdSZWN0Lm1vdmUoY29udGVudE9mZnNldEluQ29tcG9zdGluZ0xh
eWVyKCkpOworICAgIG1fZ3JhcGhpY3NMYXllci0+c2V0Q29udGVudHNDbGlwcGluZ1JlY3QocGl4
ZWxTbmFwcGVkSW50UmVjdChjb250ZW50c0NsaXBwaW5nUmVjdCkpOworCiAgICAgbV9ncmFwaGlj
c0xheWVyLT5zZXRDb250ZW50c1RpbGVTaXplKEludFNpemUoKSk7CiAgICAgbV9ncmFwaGljc0xh
eWVyLT5zZXRDb250ZW50c1RpbGVQaGFzZShJbnRQb2ludCgpKTsKIH0KQEAgLTEwNzgsOCArMTA4
NSwxMSBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6cG9zaXRpb25PdmVyZmxvd0NvbnRyb2xz
TGF5ZXJzKGNvbnN0IEludFNpemUmIG9mZnNldEZybwogICAgICAgICBpZiAoaEJhcikgewogICAg
ICAgICAgICAgbGF5ZXItPnNldFBvc2l0aW9uKGhCYXItPmZyYW1lUmVjdCgpLmxvY2F0aW9uKCkg
LSBvZmZzZXRGcm9tUm9vdCAtIG9mZnNldEZyb21SZW5kZXJlcik7CiAgICAgICAgICAgICBsYXll
ci0+c2V0U2l6ZShoQmFyLT5mcmFtZVJlY3QoKS5zaXplKCkpOwotICAgICAgICAgICAgaWYgKGxh
eWVyLT5oYXNDb250ZW50c0xheWVyKCkpCi0gICAgICAgICAgICAgICAgbGF5ZXItPnNldENvbnRl
bnRzUmVjdChJbnRSZWN0KEludFBvaW50KCksIGhCYXItPmZyYW1lUmVjdCgpLnNpemUoKSkpOwor
ICAgICAgICAgICAgaWYgKGxheWVyLT5oYXNDb250ZW50c0xheWVyKCkpIHsKKyAgICAgICAgICAg
ICAgICBJbnRSZWN0IGJhclJlY3QgPSBJbnRSZWN0KEludFBvaW50KCksIGhCYXItPmZyYW1lUmVj
dCgpLnNpemUoKSk7CisgICAgICAgICAgICAgICAgbGF5ZXItPnNldENvbnRlbnRzUmVjdChiYXJS
ZWN0KTsKKyAgICAgICAgICAgICAgICBsYXllci0+c2V0Q29udGVudHNDbGlwcGluZ1JlY3QoYmFy
UmVjdCk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgbGF5ZXItPnNldERyYXdz
Q29udGVudChoQmFyICYmICFsYXllci0+aGFzQ29udGVudHNMYXllcigpKTsKICAgICB9CkBAIC0x
MDg5LDggKzEwOTksMTEgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnBvc2l0aW9uT3ZlcmZs
b3dDb250cm9sc0xheWVycyhjb25zdCBJbnRTaXplJiBvZmZzZXRGcm8KICAgICAgICAgaWYgKHZC
YXIpIHsKICAgICAgICAgICAgIGxheWVyLT5zZXRQb3NpdGlvbih2QmFyLT5mcmFtZVJlY3QoKS5s
b2NhdGlvbigpIC0gb2Zmc2V0RnJvbVJvb3QgLSBvZmZzZXRGcm9tUmVuZGVyZXIpOwogICAgICAg
ICAgICAgbGF5ZXItPnNldFNpemUodkJhci0+ZnJhbWVSZWN0KCkuc2l6ZSgpKTsKLSAgICAgICAg
ICAgIGlmIChsYXllci0+aGFzQ29udGVudHNMYXllcigpKQotICAgICAgICAgICAgICAgIGxheWVy
LT5zZXRDb250ZW50c1JlY3QoSW50UmVjdChJbnRQb2ludCgpLCB2QmFyLT5mcmFtZVJlY3QoKS5z
aXplKCkpKTsKKyAgICAgICAgICAgIGlmIChsYXllci0+aGFzQ29udGVudHNMYXllcigpKSB7Cisg
ICAgICAgICAgICAgICAgSW50UmVjdCBiYXJSZWN0ID0gSW50UmVjdChJbnRQb2ludCgpLCB2QmFy
LT5mcmFtZVJlY3QoKS5zaXplKCkpOworICAgICAgICAgICAgICAgIGxheWVyLT5zZXRDb250ZW50
c1JlY3QoYmFyUmVjdCk7CisgICAgICAgICAgICAgICAgbGF5ZXItPnNldENvbnRlbnRzQ2xpcHBp
bmdSZWN0KGJhclJlY3QpOworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGxheWVy
LT5zZXREcmF3c0NvbnRlbnQodkJhciAmJiAhbGF5ZXItPmhhc0NvbnRlbnRzTGF5ZXIoKSk7CiAg
ICAgfQpAQCAtMTM4Myw3ICsxMzk2LDkgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0
ZURpcmVjdGx5Q29tcG9zaXRlZEJhY2tncm91bmRDb2xvcihib29sIGlzU2ltcGxlQ28KIAogICAg
IC8vIEFuIHVuc2V0IChpbnZhbGlkKSBjb2xvciB3aWxsIHJlbW92ZSB0aGUgc29saWQgY29sb3Iu
CiAgICAgbV9ncmFwaGljc0xheWVyLT5zZXRDb250ZW50c1RvU29saWRDb2xvcihiYWNrZ3JvdW5k
Q29sb3IpOwotICAgIG1fZ3JhcGhpY3NMYXllci0+c2V0Q29udGVudHNSZWN0KGJhY2tncm91bmRC
b3goKSk7CisgICAgSW50UmVjdCBjb250ZW50c1JlY3QgPSBiYWNrZ3JvdW5kQm94KCk7CisgICAg
bV9ncmFwaGljc0xheWVyLT5zZXRDb250ZW50c1JlY3QoY29udGVudHNSZWN0KTsKKyAgICBtX2dy
YXBoaWNzTGF5ZXItPnNldENvbnRlbnRzQ2xpcHBpbmdSZWN0KGNvbnRlbnRzUmVjdCk7CiAgICAg
ZGlkVXBkYXRlQ29udGVudHNSZWN0ID0gdHJ1ZTsKIH0KIApAQCAtMTQ0Myw2ICsxNDU4LDcgQEAg
dm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZURpcmVjdGx5Q29tcG9zaXRlZEJhY2tncm91
bmRJbWFnZShib29sIGlzU2ltcGxlQ28KICAgICBtX2dyYXBoaWNzTGF5ZXItPnNldENvbnRlbnRz
VGlsZVNpemUodGlsZVNpemUpOwogICAgIG1fZ3JhcGhpY3NMYXllci0+c2V0Q29udGVudHNUaWxl
UGhhc2UocGhhc2UpOwogICAgIG1fZ3JhcGhpY3NMYXllci0+c2V0Q29udGVudHNSZWN0KGRlc3RS
ZWN0KTsKKyAgICBtX2dyYXBoaWNzTGF5ZXItPnNldENvbnRlbnRzQ2xpcHBpbmdSZWN0KGRlc3RS
ZWN0KTsKICAgICBtX2dyYXBoaWNzTGF5ZXItPnNldENvbnRlbnRzVG9JbWFnZShpbWFnZS5nZXQo
KSk7CiAgICAgZGlkVXBkYXRlQ29udGVudHNSZWN0ID0gdHJ1ZTsKIH0KQEAgLTE3MjUsNiArMTc0
MSwxMSBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlSW1hZ2VDb250ZW50cygpCiAK
ICAgICAvLyBUaGlzIGlzIGEgbm8tb3AgaWYgdGhlIGxheWVyIGRvZXNuJ3QgaGF2ZSBhbiBpbm5l
ciBsYXllciBmb3IgdGhlIGltYWdlLgogICAgIG1fZ3JhcGhpY3NMYXllci0+c2V0Q29udGVudHNS
ZWN0KHBpeGVsU25hcHBlZEludFJlY3QoY29udGVudHNCb3goKSkpOworCisgICAgTGF5b3V0UmVj
dCBjb250ZW50c0NsaXBwaW5nUmVjdCA9IGltYWdlUmVuZGVyZXItPmNvbnRlbnRCb3hSZWN0KCk7
CisgICAgY29udGVudHNDbGlwcGluZ1JlY3QubW92ZShjb250ZW50T2Zmc2V0SW5Db21wb3N0aW5n
TGF5ZXIoKSk7CisgICAgbV9ncmFwaGljc0xheWVyLT5zZXRDb250ZW50c0NsaXBwaW5nUmVjdChw
aXhlbFNuYXBwZWRJbnRSZWN0KGNvbnRlbnRzQ2xpcHBpbmdSZWN0KSk7CisKICAgICBtX2dyYXBo
aWNzTGF5ZXItPnNldENvbnRlbnRzVG9JbWFnZShpbWFnZSk7CiAgICAgYm9vbCBpc1NpbXBsZUNv
bnRhaW5lciA9IGZhbHNlOwogICAgIHVwZGF0ZURyYXdzQ29udGVudChpc1NpbXBsZUNvbnRhaW5l
cik7CkBAIC0xNzcyLDE0ICsxNzkzLDE5IEBAIExheW91dFJlY3QgUmVuZGVyTGF5ZXJCYWNraW5n
Ojpjb250ZW50c0JveCgpIGNvbnN0CiAgICAgaWYgKCFyZW5kZXJlcigpLmlzQm94KCkpCiAgICAg
ICAgIHJldHVybiBMYXlvdXRSZWN0KCk7CiAKKyAgICBSZW5kZXJCb3gmIHJlbmRlckJveCA9ICp0
b1JlbmRlckJveCgmcmVuZGVyZXIoKSk7CiAgICAgTGF5b3V0UmVjdCBjb250ZW50c1JlY3Q7CiAj
aWYgRU5BQkxFKFZJREVPKQotICAgIGlmIChyZW5kZXJlcigpLmlzVmlkZW8oKSkgewotICAgICAg
ICBSZW5kZXJWaWRlbyogdmlkZW9SZW5kZXJlciA9IHRvUmVuZGVyVmlkZW8oJnJlbmRlcmVyKCkp
OworICAgIGlmIChyZW5kZXJCb3guaXNWaWRlbygpKSB7CisgICAgICAgIFJlbmRlclZpZGVvKiB2
aWRlb1JlbmRlcmVyID0gdG9SZW5kZXJWaWRlbygmcmVuZGVyQm94KTsKICAgICAgICAgY29udGVu
dHNSZWN0ID0gdmlkZW9SZW5kZXJlci0+dmlkZW9Cb3goKTsKICAgICB9IGVsc2UKICNlbmRpZgot
ICAgICAgICBjb250ZW50c1JlY3QgPSB0b1JlbmRlckJveCgmcmVuZGVyZXIoKSktPmNvbnRlbnRC
b3hSZWN0KCk7CisgICAgaWYgKHJlbmRlckJveC5pc1JlbmRlclJlcGxhY2VkKCkpIHsKKyAgICAg
ICAgUmVuZGVyUmVwbGFjZWQmIHJlbmRlclJlcGxhY2VkID0gKnRvUmVuZGVyUmVwbGFjZWQoJnJl
bmRlckJveCk7CisgICAgICAgIGNvbnRlbnRzUmVjdCA9IHJlbmRlclJlcGxhY2VkLnJlcGxhY2Vk
Q29udGVudFJlY3QocmVuZGVyQm94LmludHJpbnNpY1NpemUoKSk7CisgICAgfSBlbHNlCisgICAg
ICAgIGNvbnRlbnRzUmVjdCA9IHJlbmRlckJveC5jb250ZW50Qm94UmVjdCgpOwogCiAgICAgY29u
dGVudHNSZWN0Lm1vdmUoY29udGVudE9mZnNldEluQ29tcG9zdGluZ0xheWVyKCkpOwogICAgIHJl
dHVybiBjb250ZW50c1JlY3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckNvbXBvc2l0b3IuY3BwCmluZGV4IDA2OTViZWU4MDVhNDBlNGRmMjJmNjE3ZGUxN2Y5
NjZjZjdjM2IwY2QuLmJhZmQ0ZDc5MDhiYmUzOGNmZGE1NjE1NWRhOWFhZDA5ODNmYjc0ZjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3Iu
Y3BwCkBAIC0xMzkwLDYgKzEzOTAsOCBAQCBTdHJpbmcgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjps
YXllclRyZWVBc1RleHQoTGF5ZXJUcmVlRmxhZ3MgZmxhZ3MpCiAgICAgICAgIGxheWVyVHJlZUJl
aGF2aW9yIHw9IExheWVyVHJlZUFzVGV4dEluY2x1ZGVSZXBhaW50UmVjdHM7CiAgICAgaWYgKGZs
YWdzICYgTGF5ZXJUcmVlRmxhZ3NJbmNsdWRlUGFpbnRpbmdQaGFzZXMpCiAgICAgICAgIGxheWVy
VHJlZUJlaGF2aW9yIHw9IExheWVyVHJlZUFzVGV4dEluY2x1ZGVQYWludGluZ1BoYXNlczsKKyAg
ICBpZiAoZmxhZ3MgJiBMYXllclRyZWVGbGFnc0luY2x1ZGVDb250ZW50TGF5ZXJzKQorICAgICAg
ICBsYXllclRyZWVCZWhhdmlvciB8PSBMYXllclRyZWVBc1RleHRJbmNsdWRlQ29udGVudExheWVy
czsKIAogICAgIC8vIFdlIHNraXAgZHVtcGluZyB0aGUgc2Nyb2xsIGFuZCBjbGlwIGxheWVycyB0
byBrZWVwIGxheWVyVHJlZUFzVGV4dCBvdXRwdXQKICAgICAvLyBzaW1pbGFyIGJldHdlZW4gcGxh
dGZvcm1zLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZGVv
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWRlby5jcHAKaW5kZXggZWE3
N2ZjMjA4MThlOGMxNDNhMmZjYjVjYWM0NDQ0ODExOWY4ODZjZC4uOTE1NDE3NmM1NGJmMGE2Mzdi
ZDRjMjc2NDI4NDkzNmZjY2E4Mjk1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclZpZGVvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VmlkZW8uY3BwCkBAIC0yNDYsNiArMjQ2LDcgQEAgdm9pZCBSZW5kZXJWaWRlbzo6dXBkYXRlUGxh
eWVyKCkKICAgICBtZWRpYVBsYXllci0+c2V0RnJhbWVWaWV3KCZ2aWV3KCkuZnJhbWVWaWV3KCkp
OwogICAgIG1lZGlhUGxheWVyLT5zZXRTaXplKEludFNpemUodmlkZW9Cb3VuZHMud2lkdGgoKSwg
dmlkZW9Cb3VuZHMuaGVpZ2h0KCkpKTsKICAgICBtZWRpYVBsYXllci0+c2V0VmlzaWJsZSh0cnVl
KTsKKyAgICBtZWRpYVBsYXllci0+c2V0U2hvdWxkTWFpbnRhaW5Bc3BlY3RSYXRpbyhzdHlsZSgp
LT5vYmplY3RGaXQoKSAhPSBPYmplY3RGaXRGaWxsKTsKIH0KIAogTGF5b3V0VW5pdCBSZW5kZXJW
aWRlbzo6Y29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoKFNob3VsZENvbXB1dGVQcmVmZXJyZWQg
c2hvdWxkQ29tcHV0ZVByZWZlcnJlZCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmNwcAppbmRleCAzZWZiM2IxNzk2ZWFkNTU5ZjU1NjZmNTkwZTMwYzkyY2VhYWQyNGQ3Li5hZDhh
ZGNkODIzNmQxNzI3YTAxZTBkODVmY2FhMzdhODA1OWZlOGZkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuY3BwCkBAIC0xNjA1LDYgKzE2MDUsOCBAQCBTdHJpbmcgSW50ZXJuYWxzOjps
YXllclRyZWVBc1RleHQoRG9jdW1lbnQqIGRvY3VtZW50LCB1bnNpZ25lZCBmbGFncywgRXhjZXB0
aW9uQwogICAgICAgICBsYXllclRyZWVGbGFncyB8PSBMYXllclRyZWVGbGFnc0luY2x1ZGVSZXBh
aW50UmVjdHM7CiAgICAgaWYgKGZsYWdzICYgTEFZRVJfVFJFRV9JTkNMVURFU19QQUlOVElOR19Q
SEFTRVMpCiAgICAgICAgIGxheWVyVHJlZUZsYWdzIHw9IExheWVyVHJlZUZsYWdzSW5jbHVkZVBh
aW50aW5nUGhhc2VzOworICAgIGlmIChmbGFncyAmIExBWUVSX1RSRUVfSU5DTFVERVNfQ09OVEVO
VF9MQVlFUlMpCisgICAgICAgIGxheWVyVHJlZUZsYWdzIHw9IExheWVyVHJlZUZsYWdzSW5jbHVk
ZUNvbnRlbnRMYXllcnM7CiAKICAgICByZXR1cm4gZG9jdW1lbnQtPmZyYW1lKCktPmxheWVyVHJl
ZUFzVGV4dChsYXllclRyZWVGbGFncyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApp
bmRleCBkMWI0Yjk3OTc3Mjc2MDE5NTE5YjM2N2Y5MjE5MzFkMTE2ODc0MTdmLi4zY2Q1ZDBmM2Mz
OTU5Yjc4ODEzNGJhMjY4N2U1NmQzOTFiYzgyNGJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmgKQEAgLTIyNSw3ICsyMjUsOCBAQCBwdWJsaWM6CiAgICAgICAgIExBWUVSX1RSRUVfSU5D
TFVERVNfVklTSUJMRV9SRUNUUyA9IDEsCiAgICAgICAgIExBWUVSX1RSRUVfSU5DTFVERVNfVElM
RV9DQUNIRVMgPSAyLAogICAgICAgICBMQVlFUl9UUkVFX0lOQ0xVREVTX1JFUEFJTlRfUkVDVFMg
PSA0LAotICAgICAgICBMQVlFUl9UUkVFX0lOQ0xVREVTX1BBSU5USU5HX1BIQVNFUyA9IDgKKyAg
ICAgICAgTEFZRVJfVFJFRV9JTkNMVURFU19QQUlOVElOR19QSEFTRVMgPSA4LAorICAgICAgICBM
QVlFUl9UUkVFX0lOQ0xVREVTX0NPTlRFTlRfTEFZRVJTID0gMTYKICAgICB9OwogICAgIFN0cmlu
ZyBsYXllclRyZWVBc1RleHQoRG9jdW1lbnQqLCB1bnNpZ25lZCBmbGFncywgRXhjZXB0aW9uQ29k
ZSYpIGNvbnN0OwogICAgIFN0cmluZyBsYXllclRyZWVBc1RleHQoRG9jdW1lbnQqLCBFeGNlcHRp
b25Db2RlJikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggOThh
ZWZmODk3OGY5YThjMWE1MDNkNzI5NmJiNGJkNmYyNGIwOTkxYy4uNTZlNzg4OWEzYmIxMzhlMjM3
ZWRkYTg1MmFmZTE5NDZlNGVkNDZkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlk
bApAQCAtMTc1LDYgKzE3NSw3IEBACiAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgTEFZRVJfVFJF
RV9JTkNMVURFU19USUxFX0NBQ0hFUyA9IDI7CiAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgTEFZ
RVJfVFJFRV9JTkNMVURFU19SRVBBSU5UX1JFQ1RTID0gNDsKICAgICBjb25zdCB1bnNpZ25lZCBz
aG9ydCBMQVlFUl9UUkVFX0lOQ0xVREVTX1BBSU5USU5HX1BIQVNFUyA9IDg7CisgICAgY29uc3Qg
dW5zaWduZWQgc2hvcnQgTEFZRVJfVFJFRV9JTkNMVURFU19DT05URU5UX0xBWUVSUyA9IDE2Owog
ICAgIFtSYWlzZXNFeGNlcHRpb25dIERPTVN0cmluZyBsYXllclRyZWVBc1RleHQoRG9jdW1lbnQg
ZG9jdW1lbnQsIG9wdGlvbmFsIHVuc2lnbmVkIHNob3J0IGZsYWdzKTsKIAogICAgIFtSYWlzZXNF
eGNlcHRpb25dIERPTVN0cmluZyBzY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHQoRG9jdW1lbnQgZG9j
dW1lbnQpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IDYwNGIwNTc0N2VmNjE3NGQ5YTU3Mzg0NjhmZmI4ZDQxNjliOGQxNzQu
LjMyYTc2NmQyYjRmMmEwY2FmM2UwMWQzMDQwOTFmZWFiNzI4MmMxYjggMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyNSBAQAorMjAxMy0wOC0zMCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNv
bT4KKworICAgICAgICBWaWRlbyB3aXRoIG9iamVjdC1maXQ6IGNvdmVyIGNhbiBzcGlsbCBvdXRz
aWRlIHRoZSBib3gKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTUyMTAzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAg
IAorICAgICAgICBUZXN0IGNhc2VzIGZvciBkaXJlY3RseSBjb21wb3NpdGVkIGltYWdlIHdpdGgg
b2JqZWN0LWZpdCwgdGhlIHNhbWUgd2l0aAorICAgICAgICByZWZsZWN0aW9ucywgYW5kIG9uZSB3
aXRoIHZpZGVvLgorICAgICAgICAKKyAgICAgICAgVGVzdHMgZHVtcCBjb250ZW50IEdyYXBoaWNz
TGF5ZXJzLCBzbyBoYXZlIHBsYXRmb3JtLXNwZWNpZmljIHJlc3VsdHMuCisKKyAgICAgICAgKiBj
b21wb3NpdGluZy9pbWFnZXMvZGlyZWN0LWltYWdlLW9iamVjdC1maXQtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9pbWFnZXMvZGlyZWN0LWltYWdlLW9iamVjdC1m
aXQuaHRtbDogQWRkZWQuCisgICAgICAgICogY29tcG9zaXRpbmcvcmVmbGVjdGlvbnMvZGlyZWN0
LWltYWdlLW9iamVjdC1maXQtcmVmbGVjdGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogY29tcG9zaXRpbmcvcmVmbGVjdGlvbnMvZGlyZWN0LWltYWdlLW9iamVjdC1maXQtcmVmbGVj
dGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNvbXBvc2l0aW5nL3ZpZGVvL3ZpZGVvLW9iamVj
dC1maXQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy92aWRlby92
aWRlby1vYmplY3QtZml0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9jb21w
b3NpdGluZy9pbWFnZXMvZGlyZWN0LWltYWdlLW9iamVjdC1maXQtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvY29tcG9zaXRpbmcvcmVmbGVjdGlvbnMvZGlyZWN0
LWltYWdlLW9iamVjdC1maXQtcmVmbGVjdGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogcGxhdGZvcm0vbWFjL2NvbXBvc2l0aW5nL3ZpZGVvL3ZpZGVvLW9iamVjdC1maXQtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKwogMjAxMy0wOC0zMCAgw4Fkw6FtIEthbGxhaSAgPGthZGFtQGluZi51
LXN6ZWdlZC5odT4KIAogICAgICAgICBbUXRdIEFkZGVkIHBsYXRmb3JtIHNwZWNpZmljIGV4cGVj
dGVkIGZpbGVzIGFmdGVyIHIxNTQ3MCBhbmQgcjE1NDc4MC4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2NvbXBvc2l0aW5nL2ltYWdlcy9kaXJlY3QtaW1hZ2Utb2JqZWN0LWZpdC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pbWFnZXMvZGlyZWN0LWltYWdlLW9iamVjdC1m
aXQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhkN2ExYTNkOTc3ZGQ3MWVlMjI3NzhiOTg4ZGEy
MWIyYzJlZDNmYTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9p
bWFnZXMvZGlyZWN0LWltYWdlLW9iamVjdC1maXQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjUg
QEAKKworKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyA4MDAuMDAgNjAwLjAwKQorICAoY2hpbGRy
ZW4gMQorICAgIChHcmFwaGljc0xheWVyCisgICAgICAoYm91bmRzIDgwMC4wMCA2MDAuMDApCisg
ICAgICAoY29udGVudHNPcGFxdWUgMSkKKyAgICAgIChjaGlsZHJlbiAzCisgICAgICAgIChHcmFw
aGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDU4LjAwIDIwLjAwKQorICAgICAgICAgIChi
b3VuZHMgMjAwLjAwIDEyMC4wMCkKKyAgICAgICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgor
ICAgICAgICAgIChwb3NpdGlvbiA1OC4wMCAxNjAuMDApCisgICAgICAgICAgKGJvdW5kcyAyMDAu
MDAgMTIwLjAwKQorICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAg
KHBvc2l0aW9uIDU4LjAwIDMwMC4wMCkKKyAgICAgICAgICAoYm91bmRzIDIwMC4wMCAxMjAuMDAp
CisgICAgICAgICkKKyAgICAgICkKKyAgICApCisgICkKKykKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvY29tcG9zaXRpbmcvaW1hZ2VzL2RpcmVjdC1pbWFnZS1vYmplY3QtZml0Lmh0bWwgYi9M
YXlvdXRUZXN0cy9jb21wb3NpdGluZy9pbWFnZXMvZGlyZWN0LWltYWdlLW9iamVjdC1maXQuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5jMmIyMjdlMWQyYmMzMmVhZGZhZTk4OWZjMzMyMDJjYWU0YjYzYjVlCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvaW1hZ2VzL2RpcmVjdC1p
bWFnZS1vYmplY3QtZml0Lmh0bWwKQEAgLTAsMCArMSwzMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxoZWFkPgorICAgIDxzdHlsZT4KKyAgICAgICAgaW1nIHsKKyAgICAgICAgICAgIGRp
c3BsYXk6IGJsb2NrOworICAgICAgICAgICAgaGVpZ2h0OiAxMjBweDsKKyAgICAgICAgICAgIHdp
ZHRoOiAyMDBweDsKKyAgICAgICAgICAgIG1hcmdpbjogMjBweCA1MHB4OworICAgICAgICB9Cisg
ICAgICAgIC5jb21wb3NpdGVkIHsKKyAgICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFu
c2xhdGVaKDApOworICAgICAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8c2NyaXB0PgorICAgICAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1Rl
eHQoKTsKKworICAgICAgICBmdW5jdGlvbiBkb1Rlc3QoKQorICAgICAgICB7CisgICAgICAgICAg
ICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgncmVzdWx0cycpLmlubmVyVGV4dCA9IHdpbmRvdy5pbnRlcm5hbHMubGF5ZXJUcmVl
QXNUZXh0KGRvY3VtZW50LCBpbnRlcm5hbHMuTEFZRVJfVFJFRV9JTkNMVURFU19DT05URU5UX0xB
WUVSUyk7CisgICAgICAgIH0KKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQn
LCBkb1Rlc3QsIGZhbHNlKTsKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxp
bWcgY2xhc3M9ImNvbXBvc2l0ZWQiIHNyYz0iLi4vLi4vZmFzdC9jc3MvcmVzb3VyY2VzL2NpcmNs
ZXMtbGFuZHNjYXBlLnBuZyIgc3R5bGU9Im9iamVjdC1maXQ6IGNvdmVyIj48L2Rpdj4KKyAgICA8
aW1nIGNsYXNzPSJjb21wb3NpdGVkIiBzcmM9Ii4uLy4uL2Zhc3QvY3NzL3Jlc291cmNlcy9jaXJj
bGVzLWxhbmRzY2FwZS5wbmciIHN0eWxlPSJvYmplY3QtZml0OiBjb250YWluIj48L2Rpdj4KKyAg
ICA8aW1nIGNsYXNzPSJjb21wb3NpdGVkIiBzcmM9Ii4uLy4uL2Zhc3QvY3NzL3Jlc291cmNlcy9j
aXJjbGVzLWxhbmRzY2FwZS5wbmciIHN0eWxlPSJvYmplY3QtZml0OiBub25lIj48L2Rpdj4KKzxw
cmUgaWQ9InJlc3VsdHMiPjwvcHJlPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVmbGVjdGlvbnMvZGlyZWN0LWltYWdlLW9iamVjdC1maXQt
cmVmbGVjdGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlZmxlY3Rp
b25zL2RpcmVjdC1pbWFnZS1vYmplY3QtZml0LXJlZmxlY3RlZC1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMzYwOTg3OWQ1NDA0ZWM5ZDIzNTFhZmI3MDdkMDAyOGZmNTRjMDRhYgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3JlZmxlY3Rpb25zL2RpcmVjdC1pbWFn
ZS1vYmplY3QtZml0LXJlZmxlY3RlZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0MyBAQAorICAg
IAorKEdyYXBoaWNzTGF5ZXIKKyAgKGJvdW5kcyA4MDAuMDAgNjAwLjAwKQorICAoY2hpbGRyZW4g
MQorICAgIChHcmFwaGljc0xheWVyCisgICAgICAoYm91bmRzIDgwMC4wMCA2MDAuMDApCisgICAg
ICAoY29udGVudHNPcGFxdWUgMSkKKyAgICAgIChjaGlsZHJlbiAzCisgICAgICAgIChHcmFwaGlj
c0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI4LjAwIDI4LjAwKQorICAgICAgICAgIChib3Vu
ZHMgMjAwLjAwIDEyMC4wMCkKKyAgICAgICAgICAocmVwbGljYSBsYXllcikKKyAgICAgICAgICAg
IChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChib3VuZHMgMjAwLjAwIDEyMC4wMCkKKyAg
ICAgICAgICAgICAgKHRyYW5zZm9ybSBbMS4wMCAwLjAwIDAuMDAgMC4wMF0gWzAuMDAgLTEuMDAg
MC4wMCAwLjAwXSBbMC4wMCAwLjAwIDEuMDAgMC4wMF0gWzAuMDAgMTQwLjAwIDAuMDAgMS4wMF0p
CisgICAgICAgICAgICAgIChyZXBsaWNhdGVkIGxheWVyKQorICAgICAgICAgICAgKQorICAgICAg
ICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI3Mi4wMCAy
OC4wMCkKKyAgICAgICAgICAoYm91bmRzIDIwMC4wMCAxMjAuMDApCisgICAgICAgICAgKHJlcGxp
Y2EgbGF5ZXIpCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAoYm91
bmRzIDIwMC4wMCAxMjAuMDApCisgICAgICAgICAgICAgICh0cmFuc2Zvcm0gWzEuMDAgMC4wMCAw
LjAwIDAuMDBdIFswLjAwIC0xLjAwIDAuMDAgMC4wMF0gWzAuMDAgMC4wMCAxLjAwIDAuMDBdIFsw
LjAwIDE0MC4wMCAwLjAwIDEuMDBdKQorICAgICAgICAgICAgICAocmVwbGljYXRlZCBsYXllcikK
KyAgICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAg
ICAgIChwb3NpdGlvbiA1MTYuMDAgMjguMDApCisgICAgICAgICAgKGJvdW5kcyAyMDAuMDAgMTIw
LjAwKQorICAgICAgICAgIChyZXBsaWNhIGxheWVyKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5
ZXIKKyAgICAgICAgICAgICAgKGJvdW5kcyAyMDAuMDAgMTIwLjAwKQorICAgICAgICAgICAgICAo
dHJhbnNmb3JtIFsxLjAwIDAuMDAgMC4wMCAwLjAwXSBbMC4wMCAtMS4wMCAwLjAwIDAuMDBdIFsw
LjAwIDAuMDAgMS4wMCAwLjAwXSBbMC4wMCAxNDAuMDAgMC4wMCAxLjAwXSkKKyAgICAgICAgICAg
ICAgKHJlcGxpY2F0ZWQgbGF5ZXIpCisgICAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICkK
KyAgICApCisgICkKKykKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVm
bGVjdGlvbnMvZGlyZWN0LWltYWdlLW9iamVjdC1maXQtcmVmbGVjdGVkLmh0bWwgYi9MYXlvdXRU
ZXN0cy9jb21wb3NpdGluZy9yZWZsZWN0aW9ucy9kaXJlY3QtaW1hZ2Utb2JqZWN0LWZpdC1yZWZs
ZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZTIyMGM4ZTg2ZjU2ZTZlZDBkZjA4ZGQ5NzE5YzMzNjY4
MzNmN2IzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVmbGVj
dGlvbnMvZGlyZWN0LWltYWdlLW9iamVjdC1maXQtcmVmbGVjdGVkLmh0bWwKQEAgLTAsMCArMSwz
OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzdHlsZT4KKyAgICAg
ICAgaW1nIHsKKyAgICAgICAgICAgIGhlaWdodDogMTIwcHg7CisgICAgICAgICAgICB3aWR0aDog
MjAwcHg7CisgICAgICAgICAgICBtYXJnaW46IDIwcHg7CisgICAgICAgICAgICAtd2Via2l0LWJv
eC1yZWZsZWN0OiBiZWxvdyAyMHB4OworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpbWc6
aG92ZXIgeworICAgICAgICAgICAgaGVpZ2h0OiAxNjBweDsKKyAgICAgICAgfQorCisgICAgICAg
IC5jb21wb3NpdGVkIHsKKyAgICAgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVa
KDApOworICAgICAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8c2NyaXB0PgorICAgICAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
KworICAgICAgICBmdW5jdGlvbiBkb1Rlc3QoKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAo
d2luZG93LmludGVybmFscykKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgncmVzdWx0cycpLmlubmVyVGV4dCA9IHdpbmRvdy5pbnRlcm5hbHMubGF5ZXJUcmVlQXNUZXh0
KGRvY3VtZW50LCBpbnRlcm5hbHMuTEFZRVJfVFJFRV9JTkNMVURFU19DT05URU5UX0xBWUVSUyk7
CisgICAgICAgIH0KKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBkb1Rl
c3QsIGZhbHNlKTsKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxpbWcgY2xh
c3M9ImNvbXBvc2l0ZWQiIHNyYz0iLi4vLi4vZmFzdC9jc3MvcmVzb3VyY2VzL2NpcmNsZXMtbGFu
ZHNjYXBlLnBuZyIgc3R5bGU9Im9iamVjdC1maXQ6IGNvdmVyIj48L2Rpdj4KKyAgICA8aW1nIGNs
YXNzPSJjb21wb3NpdGVkIiBzcmM9Ii4uLy4uL2Zhc3QvY3NzL3Jlc291cmNlcy9jaXJjbGVzLWxh
bmRzY2FwZS5wbmciIHN0eWxlPSJvYmplY3QtZml0OiBjb250YWluIj48L2Rpdj4KKyAgICA8aW1n
IGNsYXNzPSJjb21wb3NpdGVkIiBzcmM9Ii4uLy4uL2Zhc3QvY3NzL3Jlc291cmNlcy9jaXJjbGVz
LWxhbmRzY2FwZS5wbmciIHN0eWxlPSJvYmplY3QtZml0OiBub25lIj48L2Rpdj4KKzxwcmUgaWQ9
InJlc3VsdHMiPjwvcHJlPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvY29tcG9zaXRpbmcvdmlkZW8vdmlkZW8tb2JqZWN0LWZpdC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9jb21wb3NpdGluZy92aWRlby92aWRlby1vYmplY3QtZml0LWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi43YzBmZTcwZmQyMGZjMmFlNTBiYmUwMjc4ZTRkNjg3ZmQxNmY5NzQ1Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvdmlkZW8vdmlkZW8tb2JqZWN0
LWZpdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0OSBAQAorICAgCisoR3JhcGhpY3NMYXllcgor
ICAoYm91bmRzIDc4NS4wMCA3NzUuMDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5
ZXIKKyAgICAgIChib3VuZHMgNzg1LjAwIDc3NS4wMCkKKyAgICAgIChjb250ZW50c09wYXF1ZSAx
KQorICAgICAgKGNoaWxkcmVuIDYKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAo
cG9zaXRpb24gMTMuMDAgMTMuMDApCisgICAgICAgICAgKGJvdW5kcyAxMjQuMDAgMjA0LjAwKQor
ICAgICAgICAgIChjb250ZW50c09wYXF1ZSAxKQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkK
KyAgICAgICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAx
NTEuMDAgMTMuMDApCisgICAgICAgICAgKGJvdW5kcyAxMjQuMDAgMjA0LjAwKQorICAgICAgICAg
IChjb250ZW50c09wYXF1ZSAxKQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAg
KQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyODkuMDAgMTMu
MDApCisgICAgICAgICAgKGJvdW5kcyAxMjQuMDAgMjA0LjAwKQorICAgICAgICAgIChjb250ZW50
c09wYXF1ZSAxKQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgKQorICAgICAg
ICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAxMy4wMCAyMzEuMDApCisgICAg
ICAgICAgKGJvdW5kcyAzNTQuMDAgMzA0LjAwKQorICAgICAgICAgIChjb250ZW50c09wYXF1ZSAx
KQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgKQorICAgICAgICAoR3JhcGhp
Y3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAxMy4wMCA1NjkuMDApCisgICAgICAgICAgKGJv
dW5kcyA0MDQuMDAgMTg0LjAwKQorICAgICAgICAgIChjb250ZW50c09wYXF1ZSAxKQorICAgICAg
ICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgor
ICAgICAgICAgIChwb3NpdGlvbiA0MzEuMDAgNTQ5LjAwKQorICAgICAgICAgIChib3VuZHMgMTI0
LjAwIDIwNC4wMCkKKyAgICAgICAgICAoY29udGVudHNPcGFxdWUgMSkKKyAgICAgICAgICAoZHJh
d3NDb250ZW50IDEpCisgICAgICAgICkKKyAgICAgICkKKyAgICApCisgICkKKykKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvdmlkZW8vdmlkZW8tb2JqZWN0LWZpdC5odG1s
IGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvdmlkZW8vdmlkZW8tb2JqZWN0LWZpdC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjZmYmEzNmE1ZmQyOGVjZTQzMmQ3ZGU4MzEzYzM5MzFkYWU2OTA3MTcKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy92aWRlby92aWRlby1vYmplY3Qt
Zml0Lmh0bWwKQEAgLTAsMCArMSw2NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorPHN0eWxlPgorICB2aWRlbyB7CisvKiAgICBkaXNwbGF5OiBibG9jazsqLworICAgIHdpZHRo
OiAxMjBweDsKKyAgICBoZWlnaHQ6IDIwMHB4OworICAgIG1hcmdpbjogNXB4OworICAgIGJvcmRl
cjogMnB4IHNvbGlkIGJsdWU7CisgICAgYmFja2dyb3VuZC1jb2xvcjogZ3JheTsKKyAgfQorICAK
KyAgLmJpZyB7CisgICAgICBoZWlnaHQ6IDMwMHB4OworICAgICAgd2lkdGg6IDM1MHB4OworICB9
CisgIC5zbWFsbGVyIHsKKyAgICAgIGhlaWdodDogMTgwcHg7CisgICAgICB3aWR0aDogNDAwcHg7
CisgIH0KKzwvc3R5bGU+Cis8c2NyaXB0IHNyYz0iLi4vLi4vbWVkaWEvbWVkaWEtZmlsZS5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0PgorICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAg
ICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gaW5pdCgpCisgICAgeworICAgICAgICBzZXRT
cmNCeVRhZ05hbWUoInZpZGVvIiwgZmluZE1lZGlhRmlsZSgidmlkZW8iLCAiLi4vLi4vbWVkaWEv
Y29udGVudC90ZXN0IikpOworCisgICAgICAgIHZhciB0b3RhbENvdW50ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudHNCeVRhZ05hbWUoJ3ZpZGVvJykubGVuZ3RoOworICAgICAgICB2YXIgY291bnQgPSB0
b3RhbENvdW50OworICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjYW5wbGF5dGhy
b3VnaCIsIGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgIGlmICghLS1jb3VudCkgeworICAgICAg
ICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICAgICAgc2V0
VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3aW5kb3cu
aW50ZXJuYWxzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdyZXN1bHRzJykuaW5uZXJUZXh0ID0gd2luZG93LmludGVybmFscy5sYXllclRyZWVB
c1RleHQoZG9jdW1lbnQsIGludGVybmFscy5MQVlFUl9UUkVFX0lOQ0xVREVTX0NPTlRFTlRfTEFZ
RVJTKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwor
ICAgICAgICAgICAgICAgICAgICB9LCB0b3RhbENvdW50ICogMTUwKTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfSwgdHJ1ZSk7CisKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Cisg
ICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGRvY3Vt
ZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJ0ZBSUwnKSk7Cisg
ICAgICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgIH0sIDE1MDApOworICAgICAg
ICB9CisgICAgfQorPC9zY3JpcHQ+CisKKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0iaW5pdCgpOyI+
CisgICAgPHZpZGVvIHN0eWxlPSJvYmplY3QtZml0OiBmaWxsIj48L3ZpZGVvPgorICAgIDx2aWRl
byBzdHlsZT0ib2JqZWN0LWZpdDogY292ZXIiPjwvdmlkZW8+CisgICAgPHZpZGVvIHN0eWxlPSJv
YmplY3QtZml0OiBjb250YWluIj48L3ZpZGVvPgorICAgIDx2aWRlbyBjbGFzcz0iYmlnIiBzdHls
ZT0ib2JqZWN0LWZpdDogc2NhbGUtZG93biI+PC92aWRlbz4KKyAgICA8dmlkZW8gY2xhc3M9InNt
YWxsZXIiIHN0eWxlPSJvYmplY3QtZml0OiBzY2FsZS1kb3duIj48L3ZpZGVvPgorICAgIDx2aWRl
byBzdHlsZT0ib2JqZWN0LWZpdDogbm9uZSI+PC92aWRlbz4KKzxwcmUgaWQ9InJlc3VsdHMiPjwv
cHJlPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL2NvbXBvc2l0aW5nL2ltYWdlcy9kaXJlY3QtaW1hZ2Utb2JqZWN0LWZpdC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvY29tcG9zaXRpbmcvaW1hZ2VzL2RpcmVjdC1p
bWFnZS1vYmplY3QtZml0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZDM0MWI4NTU3YTdhZTY0
ZmY5ZWE3Yzc3Y2ZjYzc3NWIzNzg0NjY2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL2NvbXBvc2l0aW5nL2ltYWdlcy9kaXJlY3QtaW1hZ2Utb2JqZWN0LWZpdC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwzMCBAQAorCisoR3JhcGhpY3NMYXllcgorICAoYm91bmRz
IDgwMC4wMCA2MDAuMDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAg
IChib3VuZHMgODAwLjAwIDYwMC4wMCkKKyAgICAgIChjb250ZW50c09wYXF1ZSAxKQorICAgICAg
KGNoaWxkcmVuIDMKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24g
NTguMDAgMjAuMDApCisgICAgICAgICAgKGJvdW5kcyAyMDAuMDAgMTIwLjAwKQorICAgICAgICAg
IChjb250ZW50cyBjbGlwcGluZyBsYXllciAwLjAwLCAwLjAwIDIwMC4wMCB4IDEyMC4wMCkKKyAg
ICAgICAgICAoY29udGVudHMgbGF5ZXIgLTIwLjAwLCAwLjAwIDI0MC4wMCB4IDEyMC4wMCkKKyAg
ICAgICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiA1OC4w
MCAxNjAuMDApCisgICAgICAgICAgKGJvdW5kcyAyMDAuMDAgMTIwLjAwKQorICAgICAgICAgIChj
b250ZW50cyBsYXllciAwLjAwLCAxMC4wMCAyMDAuMDAgeCAxMDAuMDApCisgICAgICAgICkKKyAg
ICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gNTguMDAgMzAwLjAwKQor
ICAgICAgICAgIChib3VuZHMgMjAwLjAwIDEyMC4wMCkKKyAgICAgICAgICAoY29udGVudHMgY2xp
cHBpbmcgbGF5ZXIgMC4wMCwgMC4wMCAyMDAuMDAgeCAxMjAuMDApCisgICAgICAgICAgKGNvbnRl
bnRzIGxheWVyIC00NC4wMCwgLTEyLjAwIDI4OC4wMCB4IDE0NC4wMCkKKyAgICAgICAgKQorICAg
ICAgKQorICAgICkKKyAgKQorKQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvY29tcG9zaXRpbmcvcmVmbGVjdGlvbnMvZGlyZWN0LWltYWdlLW9iamVjdC1maXQtcmVmbGVj
dGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9jb21wb3NpdGluZy9y
ZWZsZWN0aW9ucy9kaXJlY3QtaW1hZ2Utb2JqZWN0LWZpdC1yZWZsZWN0ZWQtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjA2YjQ1MmRiNDdjNWU2YzA0OTM0MzMzNzY2YzgyNzNkZWE1ZDg1OWEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvY29tcG9zaXRpbmcvcmVm
bGVjdGlvbnMvZGlyZWN0LWltYWdlLW9iamVjdC1maXQtcmVmbGVjdGVkLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDQ4IEBACisgICAgCisoR3JhcGhpY3NMYXllcgorICAoYm91bmRzIDgwMC4wMCA2
MDAuMDApCisgIChjaGlsZHJlbiAxCisgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMg
ODAwLjAwIDYwMC4wMCkKKyAgICAgIChjb250ZW50c09wYXF1ZSAxKQorICAgICAgKGNoaWxkcmVu
IDMKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjguMDAgMjgu
MDApCisgICAgICAgICAgKGJvdW5kcyAyMDAuMDAgMTIwLjAwKQorICAgICAgICAgIChyZXBsaWNh
IGxheWVyKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKGJvdW5k
cyAyMDAuMDAgMTIwLjAwKQorICAgICAgICAgICAgICAodHJhbnNmb3JtIFsxLjAwIDAuMDAgMC4w
MCAwLjAwXSBbMC4wMCAtMS4wMCAwLjAwIDAuMDBdIFswLjAwIDAuMDAgMS4wMCAwLjAwXSBbMC4w
MCAxNDAuMDAgMC4wMCAxLjAwXSkKKyAgICAgICAgICAgICAgKHJlcGxpY2F0ZWQgbGF5ZXIpCisg
ICAgICAgICAgICApCisgICAgICAgICAgKGNvbnRlbnRzIGNsaXBwaW5nIGxheWVyIDAuMDAsIDAu
MDAgMjAwLjAwIHggMTIwLjAwKQorICAgICAgICAgIChjb250ZW50cyBsYXllciAtMjAuMDAsIDAu
MDAgMjQwLjAwIHggMTIwLjAwKQorICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisg
ICAgICAgICAgKHBvc2l0aW9uIDI3Mi4wMCAyOC4wMCkKKyAgICAgICAgICAoYm91bmRzIDIwMC4w
MCAxMjAuMDApCisgICAgICAgICAgKHJlcGxpY2EgbGF5ZXIpCisgICAgICAgICAgICAoR3JhcGhp
Y3NMYXllcgorICAgICAgICAgICAgICAoYm91bmRzIDIwMC4wMCAxMjAuMDApCisgICAgICAgICAg
ICAgICh0cmFuc2Zvcm0gWzEuMDAgMC4wMCAwLjAwIDAuMDBdIFswLjAwIC0xLjAwIDAuMDAgMC4w
MF0gWzAuMDAgMC4wMCAxLjAwIDAuMDBdIFswLjAwIDE0MC4wMCAwLjAwIDEuMDBdKQorICAgICAg
ICAgICAgICAocmVwbGljYXRlZCBsYXllcikKKyAgICAgICAgICAgICkKKyAgICAgICAgICAoY29u
dGVudHMgbGF5ZXIgMC4wMCwgMTAuMDAgMjAwLjAwIHggMTAwLjAwKQorICAgICAgICApCisgICAg
ICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDUxNi4wMCAyOC4wMCkKKyAg
ICAgICAgICAoYm91bmRzIDIwMC4wMCAxMjAuMDApCisgICAgICAgICAgKHJlcGxpY2EgbGF5ZXIp
CisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgICAgICAoYm91bmRzIDIwMC4w
MCAxMjAuMDApCisgICAgICAgICAgICAgICh0cmFuc2Zvcm0gWzEuMDAgMC4wMCAwLjAwIDAuMDBd
IFswLjAwIC0xLjAwIDAuMDAgMC4wMF0gWzAuMDAgMC4wMCAxLjAwIDAuMDBdIFswLjAwIDE0MC4w
MCAwLjAwIDEuMDBdKQorICAgICAgICAgICAgICAocmVwbGljYXRlZCBsYXllcikKKyAgICAgICAg
ICAgICkKKyAgICAgICAgICAoY29udGVudHMgY2xpcHBpbmcgbGF5ZXIgMC4wMCwgMC4wMCAyMDAu
MDAgeCAxMjAuMDApCisgICAgICAgICAgKGNvbnRlbnRzIGxheWVyIC00NC4wMCwgLTEyLjAwIDI4
OC4wMCB4IDE0NC4wMCkKKyAgICAgICAgKQorICAgICAgKQorICAgICkKKyAgKQorKQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvY29tcG9zaXRpbmcvdmlkZW8vdmlkZW8t
b2JqZWN0LWZpdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvY29tcG9z
aXRpbmcvdmlkZW8vdmlkZW8tb2JqZWN0LWZpdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2Mw
ZmU3MGZkMjBmYzJhZTUwYmJlMDI3OGU0ZDY4N2ZkMTZmOTc0NQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9jb21wb3NpdGluZy92aWRlby92aWRlby1vYmplY3Qt
Zml0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQ5IEBACisgICAKKyhHcmFwaGljc0xheWVyCisg
IChib3VuZHMgNzg1LjAwIDc3NS4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXll
cgorICAgICAgKGJvdW5kcyA3ODUuMDAgNzc1LjAwKQorICAgICAgKGNvbnRlbnRzT3BhcXVlIDEp
CisgICAgICAoY2hpbGRyZW4gNgorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChw
b3NpdGlvbiAxMy4wMCAxMy4wMCkKKyAgICAgICAgICAoYm91bmRzIDEyNC4wMCAyMDQuMDApCisg
ICAgICAgICAgKGNvbnRlbnRzT3BhcXVlIDEpCisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQor
ICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDE1
MS4wMCAxMy4wMCkKKyAgICAgICAgICAoYm91bmRzIDEyNC4wMCAyMDQuMDApCisgICAgICAgICAg
KGNvbnRlbnRzT3BhcXVlIDEpCisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAp
CisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI4OS4wMCAxMy4w
MCkKKyAgICAgICAgICAoYm91bmRzIDEyNC4wMCAyMDQuMDApCisgICAgICAgICAgKGNvbnRlbnRz
T3BhcXVlIDEpCisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICApCisgICAgICAg
IChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDEzLjAwIDIzMS4wMCkKKyAgICAg
ICAgICAoYm91bmRzIDM1NC4wMCAzMDQuMDApCisgICAgICAgICAgKGNvbnRlbnRzT3BhcXVlIDEp
CisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICApCisgICAgICAgIChHcmFwaGlj
c0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDEzLjAwIDU2OS4wMCkKKyAgICAgICAgICAoYm91
bmRzIDQwNC4wMCAxODQuMDApCisgICAgICAgICAgKGNvbnRlbnRzT3BhcXVlIDEpCisgICAgICAg
ICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisg
ICAgICAgICAgKHBvc2l0aW9uIDQzMS4wMCA1NDkuMDApCisgICAgICAgICAgKGJvdW5kcyAxMjQu
MDAgMjA0LjAwKQorICAgICAgICAgIChjb250ZW50c09wYXF1ZSAxKQorICAgICAgICAgIChkcmF3
c0NvbnRlbnQgMSkKKyAgICAgICAgKQorICAgICAgKQorICAgICkKKyAgKQorKQorCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>210175</attachid>
            <date>2013-08-30 16:35:51 -0700</date>
            <delta_ts>2013-08-30 16:46:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-52103-20130830163550.patch</filename>
            <type>text/plain</type>
            <size>58430</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU0ODc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzg3MDI5YjAwZGIwOTI1
MjJmMTMzMzM1NDJjMmUwMmQyNWM1MmRiZS4uMTJjMTdhODcwZTE1OTRhYzlmM2UwYTY1NjhmNjc3
NWJjZmRlMzM2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg1IEBACisyMDEzLTA4LTMwICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFZpZGVvIHdpdGgg
b2JqZWN0LWZpdDogY292ZXIgY2FuIHNwaWxsIG91dHNpZGUgdGhlIGJveAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTIxMDMKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIG9iamVjdC1maXQgb24g
cmVuZGVyZXJzIHdoaWNoIHVzZSBhY2NlbGVyYXRlZCBjb21wb3NpdGluZyBuZWVkcyBzcGVjaWFs
CisgICAgICAgIHRyZWF0bWVudC4KKyAgICAgICAgCisgICAgICAgIEZvciBkaXJlY3RseSBjb21w
b3NpdGVkIGltYWdlcywgYW5kIHZpZGVvLCBHcmFwaGljc0xheWVyIG5lZWRzIHRvIGtub3cKKyAg
ICAgICAgYm90aCB0aGUgc2l6ZSBvZiB0aGUgY29udGVudCBsYXllciwgYW5kIGFsc28gYSByZWN0
YW5nbGUgYXQgd2hpY2ggdGhpcworICAgICAgICBzaG91bGQgYmUgY2xpcHBlZCAoYmVjYXVzZSwg
Zm9yIHRoZSBmaXJzdCB0aW1lLCB0aGF0IGNvbnRlbnQgbGF5ZXIgY2FuIGJlCisgICAgICAgIGxh
cmdlciB0aGFuIHRoZSByZW5kZXJlcidzIGNvbnRlbnQgYm94KS4KKyAgICAgICAgCisgICAgICAg
IEFWRm91bmRhdGlvbiB3b3VsZCBhbHdheXMgYXNwZWN0LXJhdGlvIGZpdCB2aWRlbyBieSBkZWZh
dWx0LCBzbyBwbHVtYgorICAgICAgICB0aHJvdWdoIE1lZGlhUGxheWVyIGEgd2F5IHRvIG92ZXJy
aWRlIHRoYXQgd2hlbiBvYmplY3QtZml0IHJlcXVpcmVzIGl0LgorICAgICAgICAKKyAgICAgICAg
QWRkZWQgYSBMQVlFUl9UUkVFX0lOQ0xVREVTX0NPTlRFTlRfTEFZRVJTIGVudW0gdG8gdGhlIGxh
eWVyVHJlZUFzVGV4dCgpCisgICAgICAgIGZsYWdzIHNvIHdlIGNhbiBkdW1wIGNvbnRlbnQgbGF5
ZXJzIGZvciB0ZXN0aW5nLgorCisgICAgICAgIFRlc3RzOiBjb21wb3NpdGluZy9pbWFnZXMvZGly
ZWN0LWltYWdlLW9iamVjdC1maXQuaHRtbAorICAgICAgICAgICAgICAgY29tcG9zaXRpbmcvcmVm
bGVjdGlvbnMvZGlyZWN0LWltYWdlLW9iamVjdC1maXQtcmVmbGVjdGVkLmh0bWwKKyAgICAgICAg
ICAgICAgIGNvbXBvc2l0aW5nL3ZpZGVvL3ZpZGVvLW9iamVjdC1maXQuaHRtbAorCisgICAgICAg
ICogcGFnZS9GcmFtZS5oOiBOZXcgTGF5ZXJUcmVlRmxhZ3NJbmNsdWRlQ29udGVudExheWVycyBm
bGFnLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaDogTmV3IGZs
YWcuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OnNob3VsZE1haW50YWluQXNwZWN0UmF0aW8pOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OnNldFNob3VsZE1haW50YWluQXNwZWN0UmF0aW8p
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmg6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U6OnNob3VsZE1haW50YWluQXNwZWN0UmF0aW8p
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlOjpzZXRTaG91
bGRNYWludGFpbkFzcGVjdFJhdGlvKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6TWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbjo6c2V0U2hvdWxkTWFpbnRhaW5Bc3BlY3RSYXRpbyk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25DRjo6dXBkYXRlVmlkZW9MYXllckdyYXZpdHkpOgorICAgICAg
ICAoV2ViQ29yZTo6QVZGV3JhcHBlcjo6cGxhdGZvcm1MYXllcik6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bkNGLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDOjpjcmVhdGVWaWRlb0xheWVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakM6OnVwZGF0ZVZpZGVvTGF5ZXJHcmF2aXR5KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwOiBXZSBuZWVkIGEgbmV3
IG1fY29udGVudHNDbGlwcGluZ0xheWVyIHRvCisgICAgICAgIGNsaXAgdGhlIGNvbnRlbnRzIGxh
eWVyLCB3aGljaCBvbmx5IGdldHMgY3JlYXRlZCB3aGVuIG5lY2Vzc2FyeS4gSXQgaGFzIHRvIGJl
IGNsb25lZAorICAgICAgICBmb3IgcmVmbGVjdGlvbnMuCisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0xheWVyQ0E6OndpbGxCZURlc3Ryb3llZCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0xheWVyQ0E6OnNldENvbnRlbnRzUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xh
eWVyQ0E6OnNldENvbnRlbnRzQ2xpcHBpbmdSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXJDQTo6Y29tbWl0TGF5ZXJDaGFuZ2VzQmVmb3JlU3VibGF5ZXJzKToKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6dXBkYXRlU3VibGF5ZXJMaXN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6dXBkYXRlQ29udGVudHNJbWFnZSk6CisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZUNvbnRlbnRzTWVkaWFMYXllcik6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZUNvbnRlbnRzQ2FudmFzTGF5
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjp1cGRhdGVDb250ZW50c0Nv
bG9yTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjp1cGRhdGVDb250
ZW50c1JlY3RzKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6ZHVtcEFkZGl0
aW9uYWxQcm9wZXJ0aWVzKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6ZW5z
dXJlQ2xvbmVMYXllcnMpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpyZW1v
dmVDbG9uZUxheWVycyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OmZldGNo
Q2xvbmVMYXllcnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5
ZXJDQS5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOiBOZWVk
IHRvIHB1c2ggYm90aCB0aGUgY29udGVudHNSZWN0IGFuZAorICAgICAgICB0aGUgY29udGVudHND
bGlwcGluZ1JlY3QgZG93biB0byB0aGUgR3JhcGhpY3NMYXllcnMuIE1vc3Qgb2YgdGhlIHRpbWUg
dGhleQorICAgICAgICBhcmUgdGhlIHNhbWUsIHVubGVzcyBvYmplY3QtZml0IG1ha2VzIHRoZW0g
ZGlmZmVyZW50LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpyZXNldENv
bnRlbnRzUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnBvc2l0
aW9uT3ZlcmZsb3dDb250cm9sc0xheWVycyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
ckJhY2tpbmc6OnVwZGF0ZURpcmVjdGx5Q29tcG9zaXRlZEJhY2tncm91bmRDb2xvcik6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZURpcmVjdGx5Q29tcG9zaXRl
ZEJhY2tncm91bmRJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6
OnVwZGF0ZUltYWdlQ29udGVudHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNr
aW5nOjpjb250ZW50c0JveCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9z
aXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OmxheWVy
VHJlZUFzVGV4dCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZGVvLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclZpZGVvOjp1cGRhdGVQbGF5ZXIpOgorICAgICAgICAqIHRlc3Rp
bmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6bGF5ZXJUcmVl
QXNUZXh0KToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3Rp
bmcvSW50ZXJuYWxzLmlkbDoKKwogMjAxMy0wOC0zMCAgTWlraGFpbCBQb3pkbnlha292ICA8bWlr
aGFpbC5wb3pkbnlha292QGludGVsLmNvbT4KIAogICAgICAgICBTaW1wbGVDbGFzc1ZlY3RvclRy
YWl0cyBzaGFsbCBiZSB1c2VkIGZvciBSdWxlRGF0YQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oCmluZGV4IGIwZWZl
NGM3MzE5MzUzMWViNTM5NGZiNmJkOTMzYWM0YWFhYjc4NmYuLjg5NmJiMDJkZTc5MDdiNzdiNzZl
MTQ5YzFkYmIxMjk5MWJkZWQ4MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmgKQEAgLTgyLDcgKzgyLDggQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBMYXllclRyZWVGbGFnc0luY2x1ZGVWaXNpYmxl
UmVjdHMgPSAxIDw8IDEsCiAgICAgICAgIExheWVyVHJlZUZsYWdzSW5jbHVkZVRpbGVDYWNoZXMg
PSAxIDw8IDIsCiAgICAgICAgIExheWVyVHJlZUZsYWdzSW5jbHVkZVJlcGFpbnRSZWN0cyA9IDEg
PDwgMywKLSAgICAgICAgTGF5ZXJUcmVlRmxhZ3NJbmNsdWRlUGFpbnRpbmdQaGFzZXMgPSAxIDw8
IDQKKyAgICAgICAgTGF5ZXJUcmVlRmxhZ3NJbmNsdWRlUGFpbnRpbmdQaGFzZXMgPSAxIDw8IDQs
CisgICAgICAgIExheWVyVHJlZUZsYWdzSW5jbHVkZUNvbnRlbnRMYXllcnMgPSAxIDw8IDUKICAg
ICB9OwogICAgIHR5cGVkZWYgdW5zaWduZWQgTGF5ZXJUcmVlRmxhZ3M7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaAppbmRleCA3ZTQwMGY1
ZDg5MGE0MjY5NWExNjU3NWJmNTM2MThiZWJlZTg4ZDFjLi5mY2Y5OWQ5NGJkOTQzODdhNjRlY2Zm
NDY0N2QzZGMwM2RjMWE0NjUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0xheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NMYXllci5oCkBAIC01MCw3ICs1MCw4IEBAIGVudW0gTGF5ZXJUcmVlQXNU
ZXh0QmVoYXZpb3JGbGFncyB7CiAgICAgTGF5ZXJUcmVlQXNUZXh0SW5jbHVkZVZpc2libGVSZWN0
cyA9IDEgPDwgMSwKICAgICBMYXllclRyZWVBc1RleHRJbmNsdWRlVGlsZUNhY2hlcyA9IDEgPDwg
MiwKICAgICBMYXllclRyZWVBc1RleHRJbmNsdWRlUmVwYWludFJlY3RzID0gMSA8PCAzLAotICAg
IExheWVyVHJlZUFzVGV4dEluY2x1ZGVQYWludGluZ1BoYXNlcyA9IDEgPDwgNAorICAgIExheWVy
VHJlZUFzVGV4dEluY2x1ZGVQYWludGluZ1BoYXNlcyA9IDEgPDwgNCwKKyAgICBMYXllclRyZWVB
c1RleHRJbmNsdWRlQ29udGVudExheWVycyA9IDEgPDwgNQogfTsKIHR5cGVkZWYgdW5zaWduZWQg
TGF5ZXJUcmVlQXNUZXh0QmVoYXZpb3I7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAppbmRleCBkZGYzNzM2ZTQzMTE5ZjgxOTlmMWJkMmQw
ZTA0ODc5MmU2NGFhMTU1Li45ZDBjNWUzN2JmZGZjZTIwMzI3NTg1ZGRmZDlmMDhlMzBlZTY4Mzg3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIu
Y3BwCkBAIC04NDIsNiArODQyLDE2IEBAIGJvb2wgTWVkaWFQbGF5ZXI6OnN1cHBvcnRzQWNjZWxl
cmF0ZWRSZW5kZXJpbmcoKSBjb25zdAogfQogI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKIAorYm9vbCBNZWRpYVBsYXllcjo6c2hvdWxkTWFpbnRhaW5Bc3BlY3RSYXRpbygp
IGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+c2hvdWxkTWFpbnRhaW5Bc3BlY3RSYXRp
bygpOworfQorCit2b2lkIE1lZGlhUGxheWVyOjpzZXRTaG91bGRNYWludGFpbkFzcGVjdFJhdGlv
KGJvb2wgbWFpbnRhaW5Bc3BlY3RSYXRpbykKK3sKKyAgICBtX3ByaXZhdGUtPnNldFNob3VsZE1h
aW50YWluQXNwZWN0UmF0aW8obWFpbnRhaW5Bc3BlY3RSYXRpbyk7Cit9CisKIGJvb2wgTWVkaWFQ
bGF5ZXI6Omhhc1NpbmdsZVNlY3VyaXR5T3JpZ2luKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9w
cml2YXRlLT5oYXNTaW5nbGVTZWN1cml0eU9yaWdpbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKaW5kZXggYjI0YWI0YWYxNzExMzAyNzgyZDA4
ODQ3YWI5ZTdhMWVmMTcwNmZiNC4uZDU1NDA5ZGJhZDU1Mzg2NTgzZjA5OTdjMzZmMzBiZDkyYmI4
OGE2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5oCkBAIC00MTQsNiArNDE0LDkgQEAgcHVibGljOgogICAgIHZvaWQgYWNjZWxlcmF0ZWRSZW5k
ZXJpbmdTdGF0ZUNoYW5nZWQoKTsKICNlbmRpZgogCisgICAgYm9vbCBzaG91bGRNYWludGFpbkFz
cGVjdFJhdGlvKCkgY29uc3Q7CisgICAgdm9pZCBzZXRTaG91bGRNYWludGFpbkFzcGVjdFJhdGlv
KGJvb2wpOworCiAjaWYgUExBVEZPUk0oV0lOKSAmJiBVU0UoQVZGT1VOREFUSU9OKQogICAgIEdy
YXBoaWNzRGV2aWNlQWRhcHRlciogZ3JhcGhpY3NEZXZpY2VBZGFwdGVyKCkgY29uc3Q7CiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5
ZXJQcml2YXRlLmgKaW5kZXggY2JlODBlNmMyN2ZhN2VjZGY3MTdmOGIzMmQ5MTQ5MWNkZjM2ZWIy
ZC4uMmM4NjJmM2VkMGRmMmFhODVlMDY1ZDY1MzRjMzIyMzAwNzI3ZTcxMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgK
QEAgLTE0OSw2ICsxNDksOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGFjY2VsZXJhdGVk
UmVuZGVyaW5nU3RhdGVDaGFuZ2VkKCkgeyB9CiAjZW5kaWYKIAorICAgIHZpcnR1YWwgYm9vbCBz
aG91bGRNYWludGFpbkFzcGVjdFJhdGlvKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZp
cnR1YWwgdm9pZCBzZXRTaG91bGRNYWludGFpbkFzcGVjdFJhdGlvKGJvb2wpIHsgfQorCiAgICAg
dmlydHVhbCBib29sIGhhc1NpbmdsZVNlY3VyaXR5T3JpZ2luKCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KIAogICAgIHZpcnR1YWwgYm9vbCBkaWRQYXNzQ09SU0FjY2Vzc0NoZWNrKCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAKaW5kZXggMjhjZmZkMmEyYzJjYWVlZDg2YjkwZmU2ZGI0
NDE2ZWNjNDA3MDM2Yi4uODFmNWJhMDdmODhhZGNkOTViZDBiODQ5NjU4NmIwODczYzEyZmMxMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbi5jcHAKQEAgLTc3LDYgKzc3LDcgQEAgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
OjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24oTWVkaWFQbGF5ZXIqIHBsYXkKICAgICAs
IG1fcGxheVdoZW5GcmFtZXNBdmFpbGFibGUoZmFsc2UpCiAgICAgLCBtX2luYmFuZFRyYWNrQ29u
ZmlndXJhdGlvblBlbmRpbmcoZmFsc2UpCiAgICAgLCBtX2NoYXJhY3RlcmlzdGljc0NoYW5nZWQo
ZmFsc2UpCisgICAgLCBtX3Nob3VsZE1haW50YWluQXNwZWN0UmF0aW8odHJ1ZSkKICAgICAsIG1f
c2Vla0NvdW50KDApCiB7CiAgICAgTE9HKE1lZGlhLCAiTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24oJXApIiwgdGhpcyk7CkBAIC01
ODIsNiArNTgzLDE1IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjphY2Nl
bGVyYXRlZFJlbmRlcmluZ1N0YXRlQ2hhbmdlZCgpCiAgICAgc2V0VXBWaWRlb1JlbmRlcmluZygp
OwogfQogCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6c2V0U2hvdWxkTWFp
bnRhaW5Bc3BlY3RSYXRpbyhib29sIG1haW50YWluQXNwZWN0UmF0aW8pCit7CisgICAgaWYgKG1h
aW50YWluQXNwZWN0UmF0aW8gPT0gbV9zaG91bGRNYWludGFpbkFzcGVjdFJhdGlvKQorICAgICAg
ICByZXR1cm47CisKKyAgICBtX3Nob3VsZE1haW50YWluQXNwZWN0UmF0aW8gPSBtYWludGFpbkFz
cGVjdFJhdGlvOworICAgIHVwZGF0ZVZpZGVvTGF5ZXJHcmF2aXR5KCk7Cit9CisKIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjptZXRhZGF0YUxvYWRlZCgpCiB7CiAgICAgbV9s
b2FkaW5nTWV0YWRhdGEgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24u
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb24uaAppbmRleCAzMGFjYmYwYjUzNmZhYzk1MTRhMWFkMzE4
NDMzNTQxNWVmOWMzMjA1Li5jYWQ0MDk3YTIwZTQ0ZGE0YTBjNzBlNGZkZWYwZDFhMmIyYTRjNDg5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbi5oCkBAIC0xNjUsNiArMTY1LDkgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgYm9vbCBz
dXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBhY2NlbGVyYXRlZFJlbmRlcmluZ1N0YXRlQ2hhbmdlZCgpOwogI2VuZGlmCisgICAgdmlydHVh
bCBib29sIHNob3VsZE1haW50YWluQXNwZWN0UmF0aW8oKSBjb25zdCBPVkVSUklERSB7IHJldHVy
biBtX3Nob3VsZE1haW50YWluQXNwZWN0UmF0aW87IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2hv
dWxkTWFpbnRhaW5Bc3BlY3RSYXRpbyhib29sKSBPVkVSUklERTsKKwogICAgIHZpcnR1YWwgTWVk
aWFQbGF5ZXI6Ok1vdmllTG9hZFR5cGUgbW92aWVMb2FkVHlwZSgpIGNvbnN0OwogICAgIHZpcnR1
YWwgdm9pZCBwcmVwYXJlRm9yUmVuZGVyaW5nKCk7CiAgICAgdmlydHVhbCBmbG9hdCBtZWRpYVRp
bWVGb3JUaW1lVmFsdWUoZmxvYXQpIGNvbnN0ID0gMDsKQEAgLTIyOCw2ICsyMzEsOCBAQCBwcm90
ZWN0ZWQ6CiAgICAgdmlydHVhbCBib29sIGhhc0NvbnRleHRSZW5kZXJlcigpIGNvbnN0ID0gMDsK
ICAgICB2aXJ0dWFsIGJvb2wgaGFzTGF5ZXJSZW5kZXJlcigpIGNvbnN0ID0gMDsKIAorICAgIHZp
cnR1YWwgdm9pZCB1cGRhdGVWaWRlb0xheWVyR3Jhdml0eSgpID0gMDsKKwogcHJvdGVjdGVkOgog
ICAgIHZvaWQgdXBkYXRlU3RhdGVzKCk7CiAKQEAgLTMwOCw2ICszMTMsNyBAQCBwcml2YXRlOgog
ICAgIGJvb2wgbV9wbGF5V2hlbkZyYW1lc0F2YWlsYWJsZTsKICAgICBib29sIG1faW5iYW5kVHJh
Y2tDb25maWd1cmF0aW9uUGVuZGluZzsKICAgICBib29sIG1fY2hhcmFjdGVyaXN0aWNzQ2hhbmdl
ZDsKKyAgICBib29sIG1fc2hvdWxkTWFpbnRhaW5Bc3BlY3RSYXRpbzsKICAgICBzaXplX3QgbV9z
ZWVrQ291bnQ7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcAppbmRleCBkYzExYzFjMjNmMTQ1OWJiYTAz
MGU3NjZkZTYyYjU2ZDg1N2ZmOGJmLi5mMDZlYjA1ZTg1M2FkNzI2YjBkYzlkMmRhMDM5N2JkN2E5
YWIwNDU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHAKQEAgLTMzMiw2ICszMzIsMTEgQEAgdm9pZCBNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRjo6Y2FuY2VsTG9hZCgpCiAgICAgc2V0RGVsYXlD
YWxsYmFja3MoZmFsc2UpOwogfQogCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bkNGOjp1cGRhdGVWaWRlb0xheWVyR3Jhdml0eSgpCit7CisgICAgLy8gV2Ugc2hvdWxkIGNhbGwg
QVZDRlBsYXllckxheWVyU2V0VmlkZW9HcmF2aXR5KCkgaGVyZSwgYnV0IGl0IGlzIG5vdCB5ZXQg
aW1wbGVtZW50ZWQuCit9CisKIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Y6
Omhhc0xheWVyUmVuZGVyZXIoKSBjb25zdAogewogICAgIHJldHVybiB2aWRlb0xheWVyKG1fYXZm
V3JhcHBlcik7CkBAIC0xNTY2LDYgKzE1NzEsNyBAQCBQbGF0Zm9ybUxheWVyKiBBVkZXcmFwcGVy
OjpwbGF0Zm9ybUxheWVyKCkKICAgICBDQUNGTGF5ZXJJbnNlcnRTdWJsYXllcihtX3ZpZGVvTGF5
ZXJXcmFwcGVyLT5wbGF0Zm9ybUxheWVyKCksIG1fY2FWaWRlb0xheWVyLmdldCgpLCAwKTsKICAg
ICBtX3ZpZGVvTGF5ZXJXcmFwcGVyLT5zZXRBbmNob3JQb2ludChGbG9hdFBvaW50M0QoKSk7CiAg
ICAgbV92aWRlb0xheWVyV3JhcHBlci0+c2V0TmVlZHNMYXlvdXQoKTsKKyAgICB1cGRhdGVWaWRl
b0xheWVyR3Jhdml0eSgpOwogCiAgICAgcmV0dXJuIG1fdmlkZW9MYXllcldyYXBwZXItPnBsYXRm
b3JtTGF5ZXIoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmgKaW5kZXggM2IxNDUxMDM3YmNjYzM3Nzg5ZTZlMTdk
YmUxN2M3NTFiMTg2YTliYy4uYWQ3NWU3MTI1MWQ5NzY5MGIwNjQyMGViNzFkOTcyZGI0YzMwMWUx
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbkNGLmgKQEAgLTk3LDYgKzk3LDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFs
IGJvb2wgaGFzQ29udGV4dFJlbmRlcmVyKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGhhc0xh
eWVyUmVuZGVyZXIoKSBjb25zdDsKIAorICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVWaWRlb0xheWVy
R3Jhdml0eSgpIE9WRVJSSURFOworCiAgICAgdmlydHVhbCB2b2lkIGNvbnRlbnRzTmVlZHNEaXNw
bGF5KCk7CiAKICAgICB2aXJ0dWFsIFN0cmluZyBsYW5ndWFnZU9mUHJpbWFyeUF1ZGlvVHJhY2so
KSBjb25zdCBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAppbmRleCBmN2JmMDU3MzQ3Zjhi
ZjhjYTUwNTFjYjhjMTYzMmI0MDI2YWY1NGIyLi5iNWQzOTQ5ZWM4YWEwOGE3ZDk4NjUzODRhYWIz
ZTQ5YzNiYjA1YjUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCkBAIC0xNDgsNiArMTQ4LDggQEAg
cHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaGFzQ29udGV4dFJlbmRlcmVyKCkgY29uc3Q7CiAg
ICAgdmlydHVhbCBib29sIGhhc0xheWVyUmVuZGVyZXIoKSBjb25zdDsKIAorICAgIHZpcnR1YWwg
dm9pZCB1cGRhdGVWaWRlb0xheWVyR3Jhdml0eSgpIE9WRVJSSURFOworCiAgICAgdmlydHVhbCBi
b29sIGhhc1NpbmdsZVNlY3VyaXR5T3JpZ2luKCkgY29uc3Q7CiAgICAgCiAjaWYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8IDEwODAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCmluZGV4
IGFkNjUyODI2OWFiNTM2N2MwMzQ1M2I4MTc2ZDE3ZGQ1NjczOWYyMTMuLmZiMGM3ODA3YzdhYTU5
ODliNjUwOGVkZGQwNzgyZGQwYjBkNDdmNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAt
OTgsNiArOTgsOCBAQCBTT0ZUX0xJTktfUE9JTlRFUihBVkZvdW5kYXRpb24sIEFWTWVkaWFUeXBl
QXVkaW8sIE5TU3RyaW5nICopCiBTT0ZUX0xJTktfUE9JTlRFUihBVkZvdW5kYXRpb24sIEFWUGxh
eWVySXRlbURpZFBsYXlUb0VuZFRpbWVOb3RpZmljYXRpb24sIE5TU3RyaW5nICopCiBTT0ZUX0xJ
TktfUE9JTlRFUihBVkZvdW5kYXRpb24sIEFWQXNzZXRJbWFnZUdlbmVyYXRvckFwZXJ0dXJlTW9k
ZUNsZWFuQXBlcnR1cmUsIE5TU3RyaW5nICopCiBTT0ZUX0xJTktfUE9JTlRFUihBVkZvdW5kYXRp
b24sIEFWVVJMQXNzZXRSZWZlcmVuY2VSZXN0cmljdGlvbnNLZXksIE5TU3RyaW5nICopCitTT0ZU
X0xJTktfUE9JTlRFUihBVkZvdW5kYXRpb24sIEFWTGF5ZXJWaWRlb0dyYXZpdHlSZXNpemVBc3Bl
Y3QsIE5TU3RyaW5nICopCitTT0ZUX0xJTktfUE9JTlRFUihBVkZvdW5kYXRpb24sIEFWTGF5ZXJW
aWRlb0dyYXZpdHlSZXNpemUsIE5TU3RyaW5nICopCiAKIFNPRlRfTElOS19DT05TVEFOVChDb3Jl
TWVkaWEsIGtDTVRpbWVaZXJvLCBDTVRpbWUpCiAKQEAgLTExNiw2ICsxMTgsOCBAQCBTT0ZUX0xJ
TktfQ09OU1RBTlQoQ29yZU1lZGlhLCBrQ01UaW1lWmVybywgQ01UaW1lKQogI2RlZmluZSBBVlBs
YXllckl0ZW1EaWRQbGF5VG9FbmRUaW1lTm90aWZpY2F0aW9uIGdldEFWUGxheWVySXRlbURpZFBs
YXlUb0VuZFRpbWVOb3RpZmljYXRpb24oKQogI2RlZmluZSBBVkFzc2V0SW1hZ2VHZW5lcmF0b3JB
cGVydHVyZU1vZGVDbGVhbkFwZXJ0dXJlIGdldEFWQXNzZXRJbWFnZUdlbmVyYXRvckFwZXJ0dXJl
TW9kZUNsZWFuQXBlcnR1cmUoKQogI2RlZmluZSBBVlVSTEFzc2V0UmVmZXJlbmNlUmVzdHJpY3Rp
b25zS2V5IGdldEFWVVJMQXNzZXRSZWZlcmVuY2VSZXN0cmljdGlvbnNLZXkoKQorI2RlZmluZSBB
VkxheWVyVmlkZW9HcmF2aXR5UmVzaXplQXNwZWN0IGdldEFWTGF5ZXJWaWRlb0dyYXZpdHlSZXNp
emVBc3BlY3QoKQorI2RlZmluZSBBVkxheWVyVmlkZW9HcmF2aXR5UmVzaXplIGdldEFWTGF5ZXJW
aWRlb0dyYXZpdHlSZXNpemUoKQogCiAjaWYgSEFWRShBVkZPVU5EQVRJT05fTUVESUFfU0VMRUNU
SU9OX0dST1VQKQogdHlwZWRlZiBBVk1lZGlhU2VsZWN0aW9uR3JvdXAgQVZNZWRpYVNlbGVjdGlv
bkdyb3VwVHlwZTsKQEAgLTM3Miw2ICszNzYsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakM6OmNyZWF0ZVZpZGVvTGF5ZXIoKQogI2lmbmRlZiBOREVCVUcKICAgICAg
ICAgW21fdmlkZW9MYXllci5nZXQoKSBzZXROYW1lOkAiVmlkZW8gbGF5ZXIiXTsKICNlbmRpZgor
ICAgICAgICB1cGRhdGVWaWRlb0xheWVyR3Jhdml0eSgpOwogICAgICAgICBMT0coTWVkaWEsICJN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVWaWRlb0xheWVyKCVwKSAt
IHJldHVybmluZyAlcCIsIHRoaXMsIG1fdmlkZW9MYXllci5nZXQoKSk7CiAgICAgfQogfQpAQCAt
OTg3LDYgKzk5MiwxOCBAQCBmbG9hdCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
OjptZWRpYVRpbWVGb3JUaW1lVmFsdWUoZmxvYXQgdGltZVZhbHVlKQogICAgIHJldHVybiB0aW1l
VmFsdWU7CiB9CiAKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6dXBk
YXRlVmlkZW9MYXllckdyYXZpdHkoKQoreworICAgIGlmICghbV92aWRlb0xheWVyKQorICAgICAg
ICByZXR1cm47CisKKyAgICBbQ0FUcmFuc2FjdGlvbiBiZWdpbl07CisgICAgW0NBVHJhbnNhY3Rp
b24gc2V0RGlzYWJsZUFjdGlvbnM6WUVTXTsgICAgCisgICAgTlNTdHJpbmcqIGdyYXZpdHkgPSBz
aG91bGRNYWludGFpbkFzcGVjdFJhdGlvKCkgPyBBVkxheWVyVmlkZW9HcmF2aXR5UmVzaXplQXNw
ZWN0IDogQVZMYXllclZpZGVvR3Jhdml0eVJlc2l6ZTsKKyAgICBbbV92aWRlb0xheWVyLmdldCgp
IHNldFZpZGVvR3Jhdml0eTpncmF2aXR5XTsKKyAgICBbQ0FUcmFuc2FjdGlvbiBjb21taXRdOwor
fQorCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnRyYWNrc0NoYW5n
ZWQoKQogewogICAgIFN0cmluZyBwcmltYXJ5QXVkaW9UcmFja0xhbmd1YWdlID0gbV9sYW5ndWFn
ZU9mUHJpbWFyeUF1ZGlvVHJhY2s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAppbmRleCA2ZjdhOTY1N2FkZGFmODhm
ZDNkYjUwYTM2YjAxZDI3YTMwNzAyMzc1Li5kOWYzYzk2YWM3Y2E1Y2Y0Y2QwM2ZkMTExODY1YzY5
YmQ0ODQ2YWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YS9HcmFwaGljc0xheWVyQ0EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKQEAgLTMwNSw2ICszMDUsOSBAQCB2b2lkIEdyYXBo
aWNzTGF5ZXJDQTo6d2lsbEJlRGVzdHJveWVkKCkKICAgICAKICAgICBpZiAobV9jb250ZW50c0xh
eWVyKQogICAgICAgICBtX2NvbnRlbnRzTGF5ZXItPnNldE93bmVyKDApOworCisgICAgaWYgKG1f
Y29udGVudHNDbGlwcGluZ0xheWVyKQorICAgICAgICBtX2NvbnRlbnRzQ2xpcHBpbmdMYXllci0+
c2V0T3duZXIoMCk7CiAgICAgICAgIAogICAgIGlmIChtX3N0cnVjdHVyYWxMYXllcikKICAgICAg
ICAgbV9zdHJ1Y3R1cmFsTGF5ZXItPnNldE93bmVyKDApOwpAQCAtNjY5LDcgKzY3MiwxNiBAQCB2
b2lkIEdyYXBoaWNzTGF5ZXJDQTo6c2V0Q29udGVudHNSZWN0KGNvbnN0IEludFJlY3QmIHJlY3Qp
CiAgICAgICAgIHJldHVybjsKIAogICAgIEdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzUmVjdChy
ZWN0KTsKLSAgICBub3RlTGF5ZXJQcm9wZXJ0eUNoYW5nZWQoQ29udGVudHNSZWN0Q2hhbmdlZCk7
CisgICAgbm90ZUxheWVyUHJvcGVydHlDaGFuZ2VkKENvbnRlbnRzUmVjdHNDaGFuZ2VkKTsKK30K
Kwordm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldENvbnRlbnRzQ2xpcHBpbmdSZWN0KGNvbnN0IElu
dFJlY3QmIHJlY3QpCit7CisgICAgaWYgKHJlY3QgPT0gbV9jb250ZW50c0NsaXBwaW5nUmVjdCkK
KyAgICAgICAgcmV0dXJuOworCisgICAgR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNDbGlwcGlu
Z1JlY3QocmVjdCk7CisgICAgbm90ZUxheWVyUHJvcGVydHlDaGFuZ2VkKENvbnRlbnRzUmVjdHND
aGFuZ2VkKTsKIH0KIAogYm9vbCBHcmFwaGljc0xheWVyQ0E6OnNob3VsZFJlcGFpbnRPblNpemVD
aGFuZ2UoKSBjb25zdApAQCAtMTIxNCw4ICsxMjI2LDggQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6
OmNvbW1pdExheWVyQ2hhbmdlc0JlZm9yZVN1YmxheWVycyhDb21taXRTdGF0ZSYgY29tbWl0U3Rh
dGUKICAgICBpZiAobV91bmNvbW1pdHRlZENoYW5nZXMgJiBEaXJ0eVJlY3RzQ2hhbmdlZCkKICAg
ICAgICAgcmVwYWludExheWVyRGlydHlSZWN0cygpOwogICAgIAotICAgIGlmIChtX3VuY29tbWl0
dGVkQ2hhbmdlcyAmIENvbnRlbnRzUmVjdENoYW5nZWQpCi0gICAgICAgIHVwZGF0ZUNvbnRlbnRz
UmVjdCgpOworICAgIGlmIChtX3VuY29tbWl0dGVkQ2hhbmdlcyAmIENvbnRlbnRzUmVjdHNDaGFu
Z2VkKSAvLyBOZWVkcyB0byBoYXBwZW4gYmVmb3JlIENoaWxkcmVuQ2hhbmdlZAorICAgICAgICB1
cGRhdGVDb250ZW50c1JlY3RzKCk7CiAKICAgICBpZiAobV91bmNvbW1pdHRlZENoYW5nZXMgJiBN
YXNrTGF5ZXJDaGFuZ2VkKQogICAgICAgICB1cGRhdGVNYXNrTGF5ZXIoKTsKQEAgLTEyOTcsNyAr
MTMwOSw3IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjp1cGRhdGVTdWJsYXllckxpc3QoYm9vbCBt
YXhMYXllckRlcHRoUmVhY2hlZCkKICAgICAgICAgLy8gRklYTUU6IGFkZCB0aGUgY29udGVudHMg
bGF5ZXIgaW4gdGhlIGNvcnJlY3Qgb3JkZXIgd2l0aCBuZWdhdGl2ZSB6LW9yZGVyIGNoaWxkcmVu
LgogICAgICAgICAvLyBUaGlzIGRvZXMgbm90IGNhdXNlIHZpc2libGUgcmVuZGVyaW5nIGlzc3Vl
cyBiZWNhdXNlIGN1cnJlbnRseSBjb250ZW50cyBsYXllcnMgYXJlIG9ubHkgdXNlZAogICAgICAg
ICAvLyBmb3IgcmVwbGFjZWQgZWxlbWVudHMgdGhhdCBkb24ndCBoYXZlIGNoaWxkcmVuLgotICAg
ICAgICBwcmltYXJ5TGF5ZXJDaGlsZHJlbi5hcHBlbmQobV9jb250ZW50c0xheWVyKTsKKyAgICAg
ICAgcHJpbWFyeUxheWVyQ2hpbGRyZW4uYXBwZW5kKG1fY29udGVudHNDbGlwcGluZ0xheWVyID8g
bV9jb250ZW50c0NsaXBwaW5nTGF5ZXIgOiBtX2NvbnRlbnRzTGF5ZXIpOwogICAgIH0KICAgICAK
ICAgICBjb25zdCBWZWN0b3I8R3JhcGhpY3NMYXllcio+JiBjaGlsZExheWVycyA9IGNoaWxkcmVu
KCk7CkBAIC0xNzIyLDcgKzE3MzQsNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6dXBkYXRlQ29u
dGVudHNJbWFnZSgpCiAgICAgICAgICAgICAgICAgaXQtPnZhbHVlLT5zZXRDb250ZW50cyhtX2Nv
bnRlbnRzTGF5ZXItPmNvbnRlbnRzKCkpOwogICAgICAgICB9CiAgICAgICAgIAotICAgICAgICB1
cGRhdGVDb250ZW50c1JlY3QoKTsKKyAgICAgICAgdXBkYXRlQ29udGVudHNSZWN0cygpOwogICAg
IH0gZWxzZSB7CiAgICAgICAgIC8vIE5vIGltYWdlLgogICAgICAgICAvLyBtX2NvbnRlbnRzTGF5
ZXIgd2lsbCBiZSByZW1vdmVkIHZpYSB1cGRhdGVTdWJsYXllckxpc3QuCkBAIC0xNzM3LDcgKzE3
NDksNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6dXBkYXRlQ29udGVudHNNZWRpYUxheWVyKCkK
IAogICAgIC8vIFZpZGVvIGxheWVyIHdhcyBzZXQgYXMgbV9jb250ZW50c0xheWVyLCBhbmQgd2ls
bCBnZXQgcGFyZW50ZWQgaW4gdXBkYXRlU3VibGF5ZXJMaXN0KCkuCiAgICAgc2V0dXBDb250ZW50
c0xheWVyKG1fY29udGVudHNMYXllci5nZXQoKSk7Ci0gICAgdXBkYXRlQ29udGVudHNSZWN0KCk7
CisgICAgdXBkYXRlQ29udGVudHNSZWN0cygpOwogfQogCiB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6
dXBkYXRlQ29udGVudHNDYW52YXNMYXllcigpCkBAIC0xNzQ4LDcgKzE3NjAsNyBAQCB2b2lkIEdy
YXBoaWNzTGF5ZXJDQTo6dXBkYXRlQ29udGVudHNDYW52YXNMYXllcigpCiAgICAgLy8gQ2FudmFz
TGF5ZXIgd2FzIHNldCBhcyBtX2NvbnRlbnRzTGF5ZXIsIGFuZCB3aWxsIGdldCBwYXJlbnRlZCBp
biB1cGRhdGVTdWJsYXllckxpc3QoKS4KICAgICBzZXR1cENvbnRlbnRzTGF5ZXIobV9jb250ZW50
c0xheWVyLmdldCgpKTsKICAgICBtX2NvbnRlbnRzTGF5ZXItPnNldE5lZWRzRGlzcGxheSgpOwot
ICAgIHVwZGF0ZUNvbnRlbnRzUmVjdCgpOworICAgIHVwZGF0ZUNvbnRlbnRzUmVjdHMoKTsKIH0K
IAogdm9pZCBHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZUNvbnRlbnRzQ29sb3JMYXllcigpCkBAIC0x
NzU4LDcgKzE3NzAsNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6dXBkYXRlQ29udGVudHNDb2xv
ckxheWVyKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgc2V0dXBDb250ZW50c0xheWVyKG1fY29u
dGVudHNMYXllci5nZXQoKSk7Ci0gICAgdXBkYXRlQ29udGVudHNSZWN0KCk7CisgICAgdXBkYXRl
Q29udGVudHNSZWN0cygpOwogICAgIEFTU0VSVChtX2NvbnRlbnRzU29saWRDb2xvci5pc1ZhbGlk
KCkpOwogICAgIG1fY29udGVudHNMYXllci0+c2V0QmFja2dyb3VuZENvbG9yKG1fY29udGVudHNT
b2xpZENvbG9yKTsKIApAQCAtMTc2OSwyMiArMTc4MSw3NSBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJD
QTo6dXBkYXRlQ29udGVudHNDb2xvckxheWVyKCkKICAgICB9CiB9CiAKLXZvaWQgR3JhcGhpY3NM
YXllckNBOjp1cGRhdGVDb250ZW50c1JlY3QoKQordm9pZCBHcmFwaGljc0xheWVyQ0E6OnVwZGF0
ZUNvbnRlbnRzUmVjdHMoKQogewogICAgIGlmICghbV9jb250ZW50c0xheWVyKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBGbG9hdFBvaW50IHBvaW50KG1fY29udGVudHNSZWN0LngoKSwgbV9jb250
ZW50c1JlY3QueSgpKTsKLSAgICBGbG9hdFJlY3QgcmVjdCgwLCAwLCBtX2NvbnRlbnRzUmVjdC53
aWR0aCgpLCBtX2NvbnRlbnRzUmVjdC5oZWlnaHQoKSk7CisgICAgRmxvYXRQb2ludCBjb250ZW50
T3JpZ2luOworICAgIEZsb2F0UmVjdCBjb250ZW50Qm91bmRzKDAsIDAsIG1fY29udGVudHNSZWN0
LndpZHRoKCksIG1fY29udGVudHNSZWN0LmhlaWdodCgpKTsKKworICAgIEZsb2F0UG9pbnQgY2xp
cHBpbmdPcmlnaW47CisgICAgRmxvYXRSZWN0IGNsaXBwaW5nQm91bmRzOworICAgIAorICAgIGJv
b2wgbmVlZENvbnRlbnRzQ2xpcHBpbmdMYXllciA9ICFtX2NvbnRlbnRzQ2xpcHBpbmdSZWN0LmNv
bnRhaW5zKG1fY29udGVudHNSZWN0KTsKKyAgICBib29sIGdhaW5lZE9yTG9zdENsaXBwaW5nTGF5
ZXIgPSBmYWxzZTsKKyAgICBpZiAobmVlZENvbnRlbnRzQ2xpcHBpbmdMYXllcikgeworICAgICAg
ICBpZiAoIW1fY29udGVudHNDbGlwcGluZ0xheWVyKSB7CisgICAgICAgICAgICBtX2NvbnRlbnRz
Q2xpcHBpbmdMYXllciA9IFBsYXRmb3JtQ0FMYXllcjo6Y3JlYXRlKFBsYXRmb3JtQ0FMYXllcjo6
TGF5ZXJUeXBlTGF5ZXIsIHRoaXMpOworICAgICAgICAgICAgbV9jb250ZW50c0NsaXBwaW5nTGF5
ZXItPnNldE1hc2tzVG9Cb3VuZHModHJ1ZSk7CisgICAgICAgICAgICBtX2NvbnRlbnRzQ2xpcHBp
bmdMYXllci0+c2V0QW5jaG9yUG9pbnQoRmxvYXRQb2ludCgpKTsKKyNpZm5kZWYgTkRFQlVHCisg
ICAgICAgICAgICBtX2NvbnRlbnRzQ2xpcHBpbmdMYXllci0+c2V0TmFtZSgiQ29udGVudHMgQ2xp
cHBpbmciKTsKKyNlbmRpZgorICAgICAgICAgICAgbV9jb250ZW50c0xheWVyLT5yZW1vdmVGcm9t
U3VwZXJsYXllcigpOworICAgICAgICAgICAgbV9jb250ZW50c0NsaXBwaW5nTGF5ZXItPmFwcGVu
ZFN1YmxheWVyKG1fY29udGVudHNMYXllci5nZXQoKSk7CisgICAgICAgICAgICBnYWluZWRPckxv
c3RDbGlwcGluZ0xheWVyID0gdHJ1ZTsKKyAgICAgICAgfQorICAgIAorICAgICAgICBjbGlwcGlu
Z09yaWdpbiA9IG1fY29udGVudHNDbGlwcGluZ1JlY3QubG9jYXRpb24oKTsKKyAgICAgICAgY2xp
cHBpbmdCb3VuZHMuc2V0U2l6ZShtX2NvbnRlbnRzQ2xpcHBpbmdSZWN0LnNpemUoKSk7CisKKyAg
ICAgICAgY29udGVudE9yaWdpbiA9IHRvUG9pbnQobV9jb250ZW50c1JlY3QubG9jYXRpb24oKSAt
IG1fY29udGVudHNDbGlwcGluZ1JlY3QubG9jYXRpb24oKSk7CisKKyAgICAgICAgbV9jb250ZW50
c0NsaXBwaW5nTGF5ZXItPnNldFBvc2l0aW9uKGNsaXBwaW5nT3JpZ2luKTsKKyAgICAgICAgbV9j
b250ZW50c0NsaXBwaW5nTGF5ZXItPnNldEJvdW5kcyhjbGlwcGluZ0JvdW5kcyk7CisKKyAgICAg
ICAgbV9jb250ZW50c0xheWVyLT5zZXRQb3NpdGlvbihjb250ZW50T3JpZ2luKTsKKyAgICAgICAg
bV9jb250ZW50c0xheWVyLT5zZXRCb3VuZHMoY29udGVudEJvdW5kcyk7CisgICAgCisgICAgfSBl
bHNlIHsKKyAgICAgICAgaWYgKG1fY29udGVudHNDbGlwcGluZ0xheWVyKSB7CisgICAgICAgICAg
ICBtX2NvbnRlbnRzTGF5ZXItPnJlbW92ZUZyb21TdXBlcmxheWVyKCk7CiAKLSAgICBtX2NvbnRl
bnRzTGF5ZXItPnNldFBvc2l0aW9uKHBvaW50KTsKLSAgICBtX2NvbnRlbnRzTGF5ZXItPnNldEJv
dW5kcyhyZWN0KTsKKyAgICAgICAgICAgIG1fY29udGVudHNDbGlwcGluZ0xheWVyLT5yZW1vdmVG
cm9tU3VwZXJsYXllcigpOworICAgICAgICAgICAgbV9jb250ZW50c0NsaXBwaW5nTGF5ZXItPnNl
dE93bmVyKDApOworICAgICAgICAgICAgbV9jb250ZW50c0NsaXBwaW5nTGF5ZXIgPSBudWxscHRy
OworICAgICAgICAgICAgZ2FpbmVkT3JMb3N0Q2xpcHBpbmdMYXllciA9IHRydWU7CisgICAgICAg
IH0KKworICAgICAgICBjb250ZW50T3JpZ2luID0gbV9jb250ZW50c1JlY3QubG9jYXRpb24oKTsK
KyAgICB9CisgICAgCisgICAgaWYgKGdhaW5lZE9yTG9zdENsaXBwaW5nTGF5ZXIpCisgICAgICAg
IG5vdGVTdWJsYXllcnNDaGFuZ2VkKCk7CisKKyAgICBtX2NvbnRlbnRzTGF5ZXItPnNldFBvc2l0
aW9uKGNvbnRlbnRPcmlnaW4pOworICAgIG1fY29udGVudHNMYXllci0+c2V0Qm91bmRzKGNvbnRl
bnRCb3VuZHMpOwogCiAgICAgaWYgKG1fY29udGVudHNMYXllckNsb25lcykgewogICAgICAgICBM
YXllck1hcDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbV9jb250ZW50c0xheWVyQ2xvbmVzLT5lbmQo
KTsKICAgICAgICAgZm9yIChMYXllck1hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX2NvbnRlbnRz
TGF5ZXJDbG9uZXMtPmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkgewotICAgICAgICAgICAgaXQt
PnZhbHVlLT5zZXRQb3NpdGlvbihwb2ludCk7Ci0gICAgICAgICAgICBpdC0+dmFsdWUtPnNldEJv
dW5kcyhyZWN0KTsKKyAgICAgICAgICAgIGl0LT52YWx1ZS0+c2V0UG9zaXRpb24oY29udGVudE9y
aWdpbik7CisgICAgICAgICAgICBpdC0+dmFsdWUtPnNldEJvdW5kcyhjb250ZW50Qm91bmRzKTsK
KyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChtX2NvbnRlbnRzQ2xpcHBpbmdMYXllckNsb25l
cykgeworICAgICAgICBMYXllck1hcDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbV9jb250ZW50c0Ns
aXBwaW5nTGF5ZXJDbG9uZXMtPmVuZCgpOworICAgICAgICBmb3IgKExheWVyTWFwOjpjb25zdF9p
dGVyYXRvciBpdCA9IG1fY29udGVudHNDbGlwcGluZ0xheWVyQ2xvbmVzLT5iZWdpbigpOyBpdCAh
PSBlbmQ7ICsraXQpIHsKKyAgICAgICAgICAgIGl0LT52YWx1ZS0+c2V0UG9zaXRpb24oY2xpcHBp
bmdPcmlnaW4pOworICAgICAgICAgICAgaXQtPnZhbHVlLT5zZXRCb3VuZHMoY2xpcHBpbmdCb3Vu
ZHMpOwogICAgICAgICB9CiAgICAgfQogfQpAQCAtMjY2MCw2ICsyNzI1LDIwIEBAIHZvaWQgR3Jh
cGhpY3NMYXllckNBOjpkdW1wQWRkaXRpb25hbFByb3BlcnRpZXMoVGV4dFN0cmVhbSYgdGV4dFN0
cmVhbSwgaW50IGluZGVuCiAgICAgICAgIHdyaXRlSW5kZW50KHRleHRTdHJlYW0sIGluZGVudCAr
IDEpOwogICAgICAgICB0ZXh0U3RyZWFtIDw8ICIodG9wIGxlZnQgdGlsZSAiIDw8IGdyaWRFeHRl
bnQueCgpIDw8ICIsICIgPDwgZ3JpZEV4dGVudC55KCkgPDwgIiB0aWxlcyBncmlkICIgPDwgZ3Jp
ZEV4dGVudC53aWR0aCgpIDw8ICIgeCAiIDw8IGdyaWRFeHRlbnQuaGVpZ2h0KCkgPDwgIilcbiI7
CiAgICAgfQorICAgIAorICAgIGlmIChiZWhhdmlvciAmIExheWVyVHJlZUFzVGV4dEluY2x1ZGVD
b250ZW50TGF5ZXJzKSB7CisgICAgICAgIGlmIChtX2NvbnRlbnRzQ2xpcHBpbmdMYXllcikgewor
ICAgICAgICAgICAgd3JpdGVJbmRlbnQodGV4dFN0cmVhbSwgaW5kZW50ICsgMSk7CisgICAgICAg
ICAgICB0ZXh0U3RyZWFtIDw8ICIoY29udGVudHMgY2xpcHBpbmcgbGF5ZXIgIiA8PCBtX2NvbnRl
bnRzQ2xpcHBpbmdMYXllci0+cG9zaXRpb24oKS54KCkgPDwgIiwgIiA8PCBtX2NvbnRlbnRzQ2xp
cHBpbmdMYXllci0+cG9zaXRpb24oKS55KCkKKyAgICAgICAgICAgICAgICA8PCAiICIgPDwgbV9j
b250ZW50c0NsaXBwaW5nTGF5ZXItPmJvdW5kcygpLndpZHRoKCkgPDwgIiB4ICIgPDwgbV9jb250
ZW50c0NsaXBwaW5nTGF5ZXItPmJvdW5kcygpLmhlaWdodCgpIDw8ICIpXG4iOworICAgICAgICB9
CisKKyAgICAgICAgaWYgKG1fY29udGVudHNMYXllcikgeworICAgICAgICAgICAgd3JpdGVJbmRl
bnQodGV4dFN0cmVhbSwgaW5kZW50ICsgMSk7CisgICAgICAgICAgICB0ZXh0U3RyZWFtIDw8ICIo
Y29udGVudHMgbGF5ZXIgIiA8PCBtX2NvbnRlbnRzTGF5ZXItPnBvc2l0aW9uKCkueCgpIDw8ICIs
ICIgPDwgbV9jb250ZW50c0xheWVyLT5wb3NpdGlvbigpLnkoKQorICAgICAgICAgICAgICAgIDw8
ICIgIiA8PCBtX2NvbnRlbnRzTGF5ZXItPmJvdW5kcygpLndpZHRoKCkgPDwgIiB4ICIgPDwgbV9j
b250ZW50c0xheWVyLT5ib3VuZHMoKS5oZWlnaHQoKSA8PCAiKVxuIjsKKyAgICAgICAgfQorICAg
IH0KIH0KIAogdm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldERlYnVnQm9yZGVyKGNvbnN0IENvbG9y
JiBjb2xvciwgZmxvYXQgYm9yZGVyV2lkdGgpCkBAIC0yNzk1LDcgKzI4NzQsOCBAQCBQYXNzUmVm
UHRyPFBsYXRmb3JtQ0FMYXllcj4gR3JhcGhpY3NMYXllckNBOjpmaW5kT3JNYWtlQ2xvbmUoQ2xv
bmVJRCBjbG9uZUlELCBQbAogICAgIHJldHVybiByZXN1bHRMYXllcjsKIH0gICAKIAotdm9pZCBH
cmFwaGljc0xheWVyQ0E6OmVuc3VyZUNsb25lTGF5ZXJzKENsb25lSUQgY2xvbmVJRCwgUmVmUHRy
PFBsYXRmb3JtQ0FMYXllcj4mIHByaW1hcnlMYXllciwgUmVmUHRyPFBsYXRmb3JtQ0FMYXllcj4m
IHN0cnVjdHVyYWxMYXllciwgUmVmUHRyPFBsYXRmb3JtQ0FMYXllcj4mIGNvbnRlbnRzTGF5ZXIs
IENsb25lTGV2ZWwgY2xvbmVMZXZlbCkKK3ZvaWQgR3JhcGhpY3NMYXllckNBOjplbnN1cmVDbG9u
ZUxheWVycyhDbG9uZUlEIGNsb25lSUQsIFJlZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+JiBwcmltYXJ5
TGF5ZXIsIFJlZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+JiBzdHJ1Y3R1cmFsTGF5ZXIsCisgICAgUmVm
UHRyPFBsYXRmb3JtQ0FMYXllcj4mIGNvbnRlbnRzTGF5ZXIsIFJlZlB0cjxQbGF0Zm9ybUNBTGF5
ZXI+JiBjb250ZW50c0NsaXBwaW5nTGF5ZXIsIENsb25lTGV2ZWwgY2xvbmVMZXZlbCkKIHsKICAg
ICBzdHJ1Y3R1cmFsTGF5ZXIgPSAwOwogICAgIGNvbnRlbnRzTGF5ZXIgPSAwOwpAQCAtMjgwOSw5
ICsyODg5LDEzIEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjplbnN1cmVDbG9uZUxheWVycyhDbG9u
ZUlEIGNsb25lSUQsIFJlZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+CiAgICAgaWYgKCFtX2NvbnRlbnRz
TGF5ZXJDbG9uZXMgJiYgbV9jb250ZW50c0xheWVyKQogICAgICAgICBtX2NvbnRlbnRzTGF5ZXJD
bG9uZXMgPSBhZG9wdFB0cihuZXcgTGF5ZXJNYXApOwogCisgICAgaWYgKCFtX2NvbnRlbnRzQ2xp
cHBpbmdMYXllckNsb25lcyAmJiBtX2NvbnRlbnRzQ2xpcHBpbmdMYXllcikKKyAgICAgICAgbV9j
b250ZW50c0NsaXBwaW5nTGF5ZXJDbG9uZXMgPSBhZG9wdFB0cihuZXcgTGF5ZXJNYXApOworCiAg
ICAgcHJpbWFyeUxheWVyID0gZmluZE9yTWFrZUNsb25lKGNsb25lSUQsIG1fbGF5ZXIuZ2V0KCks
IG1fbGF5ZXJDbG9uZXMuZ2V0KCksIGNsb25lTGV2ZWwpOwogICAgIHN0cnVjdHVyYWxMYXllciA9
IGZpbmRPck1ha2VDbG9uZShjbG9uZUlELCBtX3N0cnVjdHVyYWxMYXllci5nZXQoKSwgbV9zdHJ1
Y3R1cmFsTGF5ZXJDbG9uZXMuZ2V0KCksIGNsb25lTGV2ZWwpOwogICAgIGNvbnRlbnRzTGF5ZXIg
PSBmaW5kT3JNYWtlQ2xvbmUoY2xvbmVJRCwgbV9jb250ZW50c0xheWVyLmdldCgpLCBtX2NvbnRl
bnRzTGF5ZXJDbG9uZXMuZ2V0KCksIGNsb25lTGV2ZWwpOworICAgIGNvbnRlbnRzQ2xpcHBpbmdM
YXllciA9IGZpbmRPck1ha2VDbG9uZShjbG9uZUlELCBtX2NvbnRlbnRzQ2xpcHBpbmdMYXllci5n
ZXQoKSwgbV9jb250ZW50c0NsaXBwaW5nTGF5ZXJDbG9uZXMuZ2V0KCksIGNsb25lTGV2ZWwpOwog
fQogCiB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6cmVtb3ZlQ2xvbmVMYXllcnMoKQpAQCAtMjgxOSw2
ICsyOTAzLDcgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnJlbW92ZUNsb25lTGF5ZXJzKCkKICAg
ICBtX2xheWVyQ2xvbmVzID0gbnVsbHB0cjsKICAgICBtX3N0cnVjdHVyYWxMYXllckNsb25lcyA9
IG51bGxwdHI7CiAgICAgbV9jb250ZW50c0xheWVyQ2xvbmVzID0gbnVsbHB0cjsKKyAgICBtX2Nv
bnRlbnRzQ2xpcHBpbmdMYXllckNsb25lcyA9IG51bGxwdHI7CiB9CiAKIEZsb2F0UG9pbnQgR3Jh
cGhpY3NMYXllckNBOjpwb3NpdGlvbkZvckNsb25lUm9vdExheWVyKCkgY29uc3QKQEAgLTI4NDks
NyArMjkzNCw4IEBAIFBhc3NSZWZQdHI8UGxhdGZvcm1DQUxheWVyPiBHcmFwaGljc0xheWVyQ0E6
OmZldGNoQ2xvbmVMYXllcnMoR3JhcGhpY3NMYXllciogcmVwCiAgICAgUmVmUHRyPFBsYXRmb3Jt
Q0FMYXllcj4gcHJpbWFyeUxheWVyOwogICAgIFJlZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+IHN0cnVj
dHVyYWxMYXllcjsKICAgICBSZWZQdHI8UGxhdGZvcm1DQUxheWVyPiBjb250ZW50c0xheWVyOwot
ICAgIGVuc3VyZUNsb25lTGF5ZXJzKHJlcGxpY2FTdGF0ZS5jbG9uZUlEKCksIHByaW1hcnlMYXll
ciwgc3RydWN0dXJhbExheWVyLCBjb250ZW50c0xheWVyLCBjbG9uZUxldmVsKTsKKyAgICBSZWZQ
dHI8UGxhdGZvcm1DQUxheWVyPiBjb250ZW50c0NsaXBwaW5nTGF5ZXI7CisgICAgZW5zdXJlQ2xv
bmVMYXllcnMocmVwbGljYVN0YXRlLmNsb25lSUQoKSwgcHJpbWFyeUxheWVyLCBzdHJ1Y3R1cmFs
TGF5ZXIsIGNvbnRlbnRzTGF5ZXIsIGNvbnRlbnRzQ2xpcHBpbmdMYXllciwgY2xvbmVMZXZlbCk7
CiAKICAgICBpZiAobV9tYXNrTGF5ZXIpIHsKICAgICAgICAgUmVmUHRyPFBsYXRmb3JtQ0FMYXll
cj4gbWFza0Nsb25lID0gc3RhdGljX2Nhc3Q8R3JhcGhpY3NMYXllckNBKj4obV9tYXNrTGF5ZXIp
LT5mZXRjaENsb25lTGF5ZXJzKHJlcGxpY2FSb290LCByZXBsaWNhU3RhdGUsIEludGVybWVkaWF0
ZUNsb25lTGV2ZWwpOwpAQCAtMjg4Miw4ICsyOTY4LDEzIEBAIFBhc3NSZWZQdHI8UGxhdGZvcm1D
QUxheWVyPiBHcmFwaGljc0xheWVyQ0E6OmZldGNoQ2xvbmVMYXllcnMoR3JhcGhpY3NMYXllciog
cmVwCiAgICAgICAgIHJlcGxpY2FMYXllciA9IHN0YXRpY19jYXN0PEdyYXBoaWNzTGF5ZXJDQSo+
KG1fcmVwbGljYUxheWVyKS0+ZmV0Y2hDbG9uZUxheWVycyhyZXBsaWNhUm9vdCwgcmVwbGljYVN0
YXRlLCBSb290Q2xvbmVMZXZlbCk7CiAgICAgICAgIHJlcGxpY2FTdGF0ZS5zZXRCcmFuY2hUeXBl
KFJlcGxpY2FTdGF0ZTo6Q2hpbGRCcmFuY2gpOwogICAgIH0KKworICAgIGlmIChjb250ZW50c0Ns
aXBwaW5nTGF5ZXIpIHsKKyAgICAgICAgQVNTRVJUKGNvbnRlbnRzTGF5ZXIpOworICAgICAgICBj
b250ZW50c0NsaXBwaW5nTGF5ZXItPmFwcGVuZFN1YmxheWVyKGNvbnRlbnRzTGF5ZXIuZ2V0KCkp
OworICAgIH0KICAgICAKLSAgICBpZiAocmVwbGljYUxheWVyIHx8IHN0cnVjdHVyYWxMYXllciB8
fCBjb250ZW50c0xheWVyIHx8IGNoaWxkTGF5ZXJzLnNpemUoKSA+IDApIHsKKyAgICBpZiAocmVw
bGljYUxheWVyIHx8IHN0cnVjdHVyYWxMYXllciB8fCBjb250ZW50c0xheWVyIHx8IGNvbnRlbnRz
Q2xpcHBpbmdMYXllciB8fCBjaGlsZExheWVycy5zaXplKCkgPiAwKSB7CiAgICAgICAgIGlmIChz
dHJ1Y3R1cmFsTGF5ZXIpIHsKICAgICAgICAgICAgIC8vIFJlcGxpY2FzIHJlbmRlciBiZWhpbmQg
dGhlIGFjdHVhbCBsYXllciBjb250ZW50LgogICAgICAgICAgICAgaWYgKHJlcGxpY2FMYXllcikK
QEAgLTI4OTEsNiArMjk4MiwxMSBAQCBQYXNzUmVmUHRyPFBsYXRmb3JtQ0FMYXllcj4gR3JhcGhp
Y3NMYXllckNBOjpmZXRjaENsb25lTGF5ZXJzKEdyYXBoaWNzTGF5ZXIqIHJlcAogICAgICAgICAg
ICAgICAgIAogICAgICAgICAgICAgLy8gQWRkIHRoZSBwcmltYXJ5IGxheWVyIG5leHQuIEV2ZW4g
aWYgd2UgaGF2ZSBuZWdhdGl2ZSB6LW9yZGVyIGNoaWxkcmVuLCB0aGUgcHJpbWFyeSBsYXllciBh
bHdheXMgY29tZXMgYmVoaW5kLgogICAgICAgICAgICAgY2xvbmFsU3VibGF5ZXJzLmFwcGVuZChw
cmltYXJ5TGF5ZXIpOworICAgICAgICB9IGVsc2UgaWYgKGNvbnRlbnRzQ2xpcHBpbmdMYXllcikg
eworICAgICAgICAgICAgLy8gRklYTUU6IGFkZCB0aGUgY29udGVudHMgbGF5ZXIgaW4gdGhlIGNv
cnJlY3Qgb3JkZXIgd2l0aCBuZWdhdGl2ZSB6LW9yZGVyIGNoaWxkcmVuLgorICAgICAgICAgICAg
Ly8gVGhpcyBkb2VzIG5vdCBjYXVzZSB2aXNpYmxlIHJlbmRlcmluZyBpc3N1ZXMgYmVjYXVzZSBj
dXJyZW50bHkgY29udGVudHMgbGF5ZXJzIGFyZSBvbmx5IHVzZWQKKyAgICAgICAgICAgIC8vIGZv
ciByZXBsYWNlZCBlbGVtZW50cyB0aGF0IGRvbid0IGhhdmUgY2hpbGRyZW4uCisgICAgICAgICAg
ICBjbG9uYWxTdWJsYXllcnMuYXBwZW5kKGNvbnRlbnRzQ2xpcHBpbmdMYXllcik7CiAgICAgICAg
IH0gZWxzZSBpZiAoY29udGVudHNMYXllcikgewogICAgICAgICAgICAgLy8gRklYTUU6IGFkZCB0
aGUgY29udGVudHMgbGF5ZXIgaW4gdGhlIGNvcnJlY3Qgb3JkZXIgd2l0aCBuZWdhdGl2ZSB6LW9y
ZGVyIGNoaWxkcmVuLgogICAgICAgICAgICAgLy8gVGhpcyBkb2VzIG5vdCBjYXVzZSB2aXNpYmxl
IHJlbmRlcmluZyBpc3N1ZXMgYmVjYXVzZSBjdXJyZW50bHkgY29udGVudHMgbGF5ZXJzIGFyZSBv
bmx5IHVzZWQKQEAgLTI5MTksMTEgKzMwMTUsMTEgQEAgUGFzc1JlZlB0cjxQbGF0Zm9ybUNBTGF5
ZXI+IEdyYXBoaWNzTGF5ZXJDQTo6ZmV0Y2hDbG9uZUxheWVycyhHcmFwaGljc0xheWVyKiByZXAK
ICAgICBpZiAoc3RydWN0dXJhbExheWVyKSB7CiAgICAgICAgIHN0cnVjdHVyYWxMYXllci0+c2V0
U3VibGF5ZXJzKGNsb25hbFN1YmxheWVycyk7CiAKLSAgICAgICAgaWYgKGNvbnRlbnRzTGF5ZXIp
IHsKKyAgICAgICAgaWYgKGNvbnRlbnRzQ2xpcHBpbmdMYXllciB8fCBjb250ZW50c0xheWVyKSB7
CiAgICAgICAgICAgICAvLyBJZiB3ZSBoYXZlIGEgdHJhbnNmb3JtIGxheWVyLCB0aGVuIHRoZSBj
b250ZW50cyBsYXllciBpcyBwYXJlbnRlZCBpbiB0aGUgCiAgICAgICAgICAgICAvLyBwcmltYXJ5
IGxheWVyICh3aGljaCBpcyBpdHNlbGYgYSBjaGlsZCBvZiB0aGUgdHJhbnNmb3JtIGxheWVyKS4K
ICAgICAgICAgICAgIHByaW1hcnlMYXllci0+cmVtb3ZlQWxsU3VibGF5ZXJzKCk7Ci0gICAgICAg
ICAgICBwcmltYXJ5TGF5ZXItPmFwcGVuZFN1YmxheWVyKGNvbnRlbnRzTGF5ZXIuZ2V0KCkpOwor
ICAgICAgICAgICAgcHJpbWFyeUxheWVyLT5hcHBlbmRTdWJsYXllcihjb250ZW50c0NsaXBwaW5n
TGF5ZXIgPyBjb250ZW50c0NsaXBwaW5nTGF5ZXIuZ2V0KCkgOiBjb250ZW50c0xheWVyLmdldCgp
KTsKICAgICAgICAgfQogCiAgICAgICAgIHJlc3VsdCA9IHN0cnVjdHVyYWxMYXllcjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJD
QS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNB
LmgKaW5kZXggNTBlMjliNmU4ZjVmMTQzZWRiZmUxNWU4M2M1MThmYjcxZTRjZmI0Yi4uOTU4ZWZm
MTljYWJmN2E1YmU1ZDlkN2E2YWFkNGMyMjgzZTUyMjk5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmgKQEAgLTEwNSw2
ICsxMDUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzTmVlZHNEaXNw
bGF5KCk7CiAgICAgCiAgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzUmVjdChjb25zdCBJbnRS
ZWN0Jik7CisgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzQ2xpcHBpbmdSZWN0KGNvbnN0IElu
dFJlY3QmKSBPVkVSUklERTsKICAgICAKICAgICB2aXJ0dWFsIHZvaWQgc3VzcGVuZEFuaW1hdGlv
bnMoZG91YmxlIHRpbWUpOwogICAgIHZpcnR1YWwgdm9pZCByZXN1bWVBbmltYXRpb25zKCk7CkBA
IC0zMTQsNyArMzE1LDggQEAgcHJpdmF0ZToKICAgICBQYXNzUmVmUHRyPFBsYXRmb3JtQ0FMYXll
cj4gY2xvbmVMYXllcihQbGF0Zm9ybUNBTGF5ZXIgKiwgQ2xvbmVMZXZlbCk7CiAgICAgUGFzc1Jl
ZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+IGZpbmRPck1ha2VDbG9uZShDbG9uZUlELCBQbGF0Zm9ybUNB
TGF5ZXIgKiwgTGF5ZXJNYXAqLCBDbG9uZUxldmVsKTsKIAotICAgIHZvaWQgZW5zdXJlQ2xvbmVM
YXllcnMoQ2xvbmVJRCBjbG9uZUlELCBSZWZQdHI8UGxhdGZvcm1DQUxheWVyPiYgcHJpbWFyeUxh
eWVyLCBSZWZQdHI8UGxhdGZvcm1DQUxheWVyPiYgc3RydWN0dXJhbExheWVyLCBSZWZQdHI8UGxh
dGZvcm1DQUxheWVyPiYgY29udGVudHNMYXllciwgQ2xvbmVMZXZlbCBjbG9uZUxldmVsKTsKKyAg
ICB2b2lkIGVuc3VyZUNsb25lTGF5ZXJzKENsb25lSUQsIFJlZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+
JiBwcmltYXJ5TGF5ZXIsIFJlZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+JiBzdHJ1Y3R1cmFsTGF5ZXIs
CisgICAgICAgIFJlZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+JiBjb250ZW50c0xheWVyLCBSZWZQdHI8
UGxhdGZvcm1DQUxheWVyPiYgY29udGVudHNDbGlwcGluZ0xheWVyLCBDbG9uZUxldmVsKTsKIAog
ICAgIGJvb2wgaGFzQ2xvbmVMYXllcnMoKSBjb25zdCB7IHJldHVybiBtX2xheWVyQ2xvbmVzOyB9
CiAgICAgdm9pZCByZW1vdmVDbG9uZUxheWVycygpOwpAQCAtMzQwLDcgKzM0Miw3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCB1cGRhdGVDb250ZW50c01lZGlhTGF5ZXIoKTsKICAgICB2b2lkIHVwZGF0
ZUNvbnRlbnRzQ2FudmFzTGF5ZXIoKTsKICAgICB2b2lkIHVwZGF0ZUNvbnRlbnRzQ29sb3JMYXll
cigpOwotICAgIHZvaWQgdXBkYXRlQ29udGVudHNSZWN0KCk7CisgICAgdm9pZCB1cGRhdGVDb250
ZW50c1JlY3RzKCk7CiAgICAgdm9pZCB1cGRhdGVNYXNrTGF5ZXIoKTsKICAgICB2b2lkIHVwZGF0
ZVJlcGxpY2F0ZWRMYXllcnMoKTsKIApAQCAtMzkyLDcgKzM5NCw3IEBAIHByaXZhdGU6CiAgICAg
ICAgIENvbnRlbnRzTWVkaWFMYXllckNoYW5nZWQgPSAxIDw8IDE2LAogICAgICAgICBDb250ZW50
c0NhbnZhc0xheWVyQ2hhbmdlZCA9IDEgPDwgMTcsCiAgICAgICAgIENvbnRlbnRzQ29sb3JMYXll
ckNoYW5nZWQgPSAxIDw8IDE4LAotICAgICAgICBDb250ZW50c1JlY3RDaGFuZ2VkID0gMSA8PCAx
OSwKKyAgICAgICAgQ29udGVudHNSZWN0c0NoYW5nZWQgPSAxIDw8IDE5LAogICAgICAgICBNYXNr
TGF5ZXJDaGFuZ2VkID0gMSA8PCAyMCwKICAgICAgICAgUmVwbGljYXRlZExheWVyQ2hhbmdlZCA9
IDEgPDwgMjEsCiAgICAgICAgIENvbnRlbnRzTmVlZHNEaXNwbGF5ID0gMSA8PCAyMiwKQEAgLTQx
MywxMiArNDE1LDE0IEBAIHByaXZhdGU6CiAKICAgICBSZWZQdHI8UGxhdGZvcm1DQUxheWVyPiBt
X2xheWVyOyAvLyBUaGUgbWFpbiBsYXllcgogICAgIFJlZlB0cjxQbGF0Zm9ybUNBTGF5ZXI+IG1f
c3RydWN0dXJhbExheWVyOyAvLyBBIGxheWVyIHVzZWQgZm9yIHN0cnVjdHVyYWwgcmVhc29ucywg
bGlrZSBwcmVzZXJ2ZXMtM2Qgb3IgcmVwbGljYS1mbGF0dGVuaW5nLiBJcyB0aGUgcGFyZW50IG9m
IG1fbGF5ZXIuCisgICAgUmVmUHRyPFBsYXRmb3JtQ0FMYXllcj4gbV9jb250ZW50c0NsaXBwaW5n
TGF5ZXI7IC8vIEEgbGF5ZXIgdXNlZCB0byBjbGlwIGlubmVyIGNvbnRlbnQKICAgICBSZWZQdHI8
UGxhdGZvcm1DQUxheWVyPiBtX2NvbnRlbnRzTGF5ZXI7IC8vIEEgbGF5ZXIgdXNlZCBmb3IgaW5u
ZXIgY29udGVudCwgbGlrZSBpbWFnZSBhbmQgdmlkZW8KIAogICAgIC8vIFJlZmVyZW5jZXMgdG8g
Y2xvbmVzIG9mIG91ciBsYXllcnMsIGZvciByZXBsaWNhdGVkIGxheWVycy4KICAgICBPd25QdHI8
TGF5ZXJNYXA+IG1fbGF5ZXJDbG9uZXM7CiAgICAgT3duUHRyPExheWVyTWFwPiBtX3N0cnVjdHVy
YWxMYXllckNsb25lczsKICAgICBPd25QdHI8TGF5ZXJNYXA+IG1fY29udGVudHNMYXllckNsb25l
czsKKyAgICBPd25QdHI8TGF5ZXJNYXA+IG1fY29udGVudHNDbGlwcGluZ0xheWVyQ2xvbmVzOwog
CiAjaWZkZWYgVklTSUJMRV9USUxFX1dBU0gKICAgICBSZWZQdHI8UGxhdGZvcm1DQUxheWVyPiBt
X3Zpc2libGVUaWxlV2FzaExheWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJCYWNraW5nLmNwcAppbmRleCBhMTIyNjVhOTdjMjc0YWYyNTJhYWMzNjMxYzBmMDlk
YTMxZGIzMmZhLi5kMTdjOGZhZjU0ZTNlZGI0MDBiNGJiNTMzMjAyNDI5YTRkN2ExYjBlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApAQCAt
OTI1LDggKzkyNSwxNSBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlSW50ZXJuYWxI
aWVyYXJjaHkoKQogCiB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6cmVzZXRDb250ZW50c1JlY3Qo
KQogewotICAgIEludFJlY3QgcmVjdCA9IHBpeGVsU25hcHBlZEludFJlY3QoY29udGVudHNCb3go
KSk7Ci0gICAgbV9ncmFwaGljc0xheWVyLT5zZXRDb250ZW50c1JlY3QocmVjdCk7CisgICAgbV9n
cmFwaGljc0xheWVyLT5zZXRDb250ZW50c1JlY3QocGl4ZWxTbmFwcGVkSW50UmVjdChjb250ZW50
c0JveCgpKSk7CisgICAgCisgICAgTGF5b3V0UmVjdCBjb250ZW50c0NsaXBwaW5nUmVjdDsKKyAg
ICBpZiAocmVuZGVyZXIoKS5pc0JveCgpKQorICAgICAgICBjb250ZW50c0NsaXBwaW5nUmVjdCA9
IHRvUmVuZGVyQm94KCZyZW5kZXJlcigpKS0+Y29udGVudEJveFJlY3QoKTsKKworICAgIGNvbnRl
bnRzQ2xpcHBpbmdSZWN0Lm1vdmUoY29udGVudE9mZnNldEluQ29tcG9zdGluZ0xheWVyKCkpOwor
ICAgIG1fZ3JhcGhpY3NMYXllci0+c2V0Q29udGVudHNDbGlwcGluZ1JlY3QocGl4ZWxTbmFwcGVk
SW50UmVjdChjb250ZW50c0NsaXBwaW5nUmVjdCkpOworCiAgICAgbV9ncmFwaGljc0xheWVyLT5z
ZXRDb250ZW50c1RpbGVTaXplKEludFNpemUoKSk7CiAgICAgbV9ncmFwaGljc0xheWVyLT5zZXRD
b250ZW50c1RpbGVQaGFzZShJbnRQb2ludCgpKTsKIH0KQEAgLTEwNzgsOCArMTA4NSwxMSBAQCB2
b2lkIFJlbmRlckxheWVyQmFja2luZzo6cG9zaXRpb25PdmVyZmxvd0NvbnRyb2xzTGF5ZXJzKGNv
bnN0IEludFNpemUmIG9mZnNldEZybwogICAgICAgICBpZiAoaEJhcikgewogICAgICAgICAgICAg
bGF5ZXItPnNldFBvc2l0aW9uKGhCYXItPmZyYW1lUmVjdCgpLmxvY2F0aW9uKCkgLSBvZmZzZXRG
cm9tUm9vdCAtIG9mZnNldEZyb21SZW5kZXJlcik7CiAgICAgICAgICAgICBsYXllci0+c2V0U2l6
ZShoQmFyLT5mcmFtZVJlY3QoKS5zaXplKCkpOwotICAgICAgICAgICAgaWYgKGxheWVyLT5oYXND
b250ZW50c0xheWVyKCkpCi0gICAgICAgICAgICAgICAgbGF5ZXItPnNldENvbnRlbnRzUmVjdChJ
bnRSZWN0KEludFBvaW50KCksIGhCYXItPmZyYW1lUmVjdCgpLnNpemUoKSkpOworICAgICAgICAg
ICAgaWYgKGxheWVyLT5oYXNDb250ZW50c0xheWVyKCkpIHsKKyAgICAgICAgICAgICAgICBJbnRS
ZWN0IGJhclJlY3QgPSBJbnRSZWN0KEludFBvaW50KCksIGhCYXItPmZyYW1lUmVjdCgpLnNpemUo
KSk7CisgICAgICAgICAgICAgICAgbGF5ZXItPnNldENvbnRlbnRzUmVjdChiYXJSZWN0KTsKKyAg
ICAgICAgICAgICAgICBsYXllci0+c2V0Q29udGVudHNDbGlwcGluZ1JlY3QoYmFyUmVjdCk7Cisg
ICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgbGF5ZXItPnNldERyYXdzQ29udGVudCho
QmFyICYmICFsYXllci0+aGFzQ29udGVudHNMYXllcigpKTsKICAgICB9CkBAIC0xMDg5LDggKzEw
OTksMTEgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnBvc2l0aW9uT3ZlcmZsb3dDb250cm9s
c0xheWVycyhjb25zdCBJbnRTaXplJiBvZmZzZXRGcm8KICAgICAgICAgaWYgKHZCYXIpIHsKICAg
ICAgICAgICAgIGxheWVyLT5zZXRQb3NpdGlvbih2QmFyLT5mcmFtZVJlY3QoKS5sb2NhdGlvbigp
IC0gb2Zmc2V0RnJvbVJvb3QgLSBvZmZzZXRGcm9tUmVuZGVyZXIpOwogICAgICAgICAgICAgbGF5
ZXItPnNldFNpemUodkJhci0+ZnJhbWVSZWN0KCkuc2l6ZSgpKTsKLSAgICAgICAgICAgIGlmIChs
YXllci0+aGFzQ29udGVudHNMYXllcigpKQotICAgICAgICAgICAgICAgIGxheWVyLT5zZXRDb250
ZW50c1JlY3QoSW50UmVjdChJbnRQb2ludCgpLCB2QmFyLT5mcmFtZVJlY3QoKS5zaXplKCkpKTsK
KyAgICAgICAgICAgIGlmIChsYXllci0+aGFzQ29udGVudHNMYXllcigpKSB7CisgICAgICAgICAg
ICAgICAgSW50UmVjdCBiYXJSZWN0ID0gSW50UmVjdChJbnRQb2ludCgpLCB2QmFyLT5mcmFtZVJl
Y3QoKS5zaXplKCkpOworICAgICAgICAgICAgICAgIGxheWVyLT5zZXRDb250ZW50c1JlY3QoYmFy
UmVjdCk7CisgICAgICAgICAgICAgICAgbGF5ZXItPnNldENvbnRlbnRzQ2xpcHBpbmdSZWN0KGJh
clJlY3QpOworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGxheWVyLT5zZXREcmF3
c0NvbnRlbnQodkJhciAmJiAhbGF5ZXItPmhhc0NvbnRlbnRzTGF5ZXIoKSk7CiAgICAgfQpAQCAt
MTM4Myw3ICsxMzk2LDkgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZURpcmVjdGx5
Q29tcG9zaXRlZEJhY2tncm91bmRDb2xvcihib29sIGlzU2ltcGxlQ28KIAogICAgIC8vIEFuIHVu
c2V0IChpbnZhbGlkKSBjb2xvciB3aWxsIHJlbW92ZSB0aGUgc29saWQgY29sb3IuCiAgICAgbV9n
cmFwaGljc0xheWVyLT5zZXRDb250ZW50c1RvU29saWRDb2xvcihiYWNrZ3JvdW5kQ29sb3IpOwot
ICAgIG1fZ3JhcGhpY3NMYXllci0+c2V0Q29udGVudHNSZWN0KGJhY2tncm91bmRCb3goKSk7Cisg
ICAgSW50UmVjdCBjb250ZW50c1JlY3QgPSBiYWNrZ3JvdW5kQm94KCk7CisgICAgbV9ncmFwaGlj
c0xheWVyLT5zZXRDb250ZW50c1JlY3QoY29udGVudHNSZWN0KTsKKyAgICBtX2dyYXBoaWNzTGF5
ZXItPnNldENvbnRlbnRzQ2xpcHBpbmdSZWN0KGNvbnRlbnRzUmVjdCk7CiAgICAgZGlkVXBkYXRl
Q29udGVudHNSZWN0ID0gdHJ1ZTsKIH0KIApAQCAtMTQ0Myw2ICsxNDU4LDcgQEAgdm9pZCBSZW5k
ZXJMYXllckJhY2tpbmc6OnVwZGF0ZURpcmVjdGx5Q29tcG9zaXRlZEJhY2tncm91bmRJbWFnZShi
b29sIGlzU2ltcGxlQ28KICAgICBtX2dyYXBoaWNzTGF5ZXItPnNldENvbnRlbnRzVGlsZVNpemUo
dGlsZVNpemUpOwogICAgIG1fZ3JhcGhpY3NMYXllci0+c2V0Q29udGVudHNUaWxlUGhhc2UocGhh
c2UpOwogICAgIG1fZ3JhcGhpY3NMYXllci0+c2V0Q29udGVudHNSZWN0KGRlc3RSZWN0KTsKKyAg
ICBtX2dyYXBoaWNzTGF5ZXItPnNldENvbnRlbnRzQ2xpcHBpbmdSZWN0KGRlc3RSZWN0KTsKICAg
ICBtX2dyYXBoaWNzTGF5ZXItPnNldENvbnRlbnRzVG9JbWFnZShpbWFnZS5nZXQoKSk7CiAgICAg
ZGlkVXBkYXRlQ29udGVudHNSZWN0ID0gdHJ1ZTsKIH0KQEAgLTE3MjUsNiArMTc0MSwxMSBAQCB2
b2lkIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlSW1hZ2VDb250ZW50cygpCiAKICAgICAvLyBU
aGlzIGlzIGEgbm8tb3AgaWYgdGhlIGxheWVyIGRvZXNuJ3QgaGF2ZSBhbiBpbm5lciBsYXllciBm
b3IgdGhlIGltYWdlLgogICAgIG1fZ3JhcGhpY3NMYXllci0+c2V0Q29udGVudHNSZWN0KHBpeGVs
U25hcHBlZEludFJlY3QoY29udGVudHNCb3goKSkpOworCisgICAgTGF5b3V0UmVjdCBjb250ZW50
c0NsaXBwaW5nUmVjdCA9IGltYWdlUmVuZGVyZXItPmNvbnRlbnRCb3hSZWN0KCk7CisgICAgY29u
dGVudHNDbGlwcGluZ1JlY3QubW92ZShjb250ZW50T2Zmc2V0SW5Db21wb3N0aW5nTGF5ZXIoKSk7
CisgICAgbV9ncmFwaGljc0xheWVyLT5zZXRDb250ZW50c0NsaXBwaW5nUmVjdChwaXhlbFNuYXBw
ZWRJbnRSZWN0KGNvbnRlbnRzQ2xpcHBpbmdSZWN0KSk7CisKICAgICBtX2dyYXBoaWNzTGF5ZXIt
PnNldENvbnRlbnRzVG9JbWFnZShpbWFnZSk7CiAgICAgYm9vbCBpc1NpbXBsZUNvbnRhaW5lciA9
IGZhbHNlOwogICAgIHVwZGF0ZURyYXdzQ29udGVudChpc1NpbXBsZUNvbnRhaW5lcik7CkBAIC0x
NzcyLDE0ICsxNzkzLDE5IEBAIExheW91dFJlY3QgUmVuZGVyTGF5ZXJCYWNraW5nOjpjb250ZW50
c0JveCgpIGNvbnN0CiAgICAgaWYgKCFyZW5kZXJlcigpLmlzQm94KCkpCiAgICAgICAgIHJldHVy
biBMYXlvdXRSZWN0KCk7CiAKKyAgICBSZW5kZXJCb3gmIHJlbmRlckJveCA9ICp0b1JlbmRlckJv
eCgmcmVuZGVyZXIoKSk7CiAgICAgTGF5b3V0UmVjdCBjb250ZW50c1JlY3Q7CiAjaWYgRU5BQkxF
KFZJREVPKQotICAgIGlmIChyZW5kZXJlcigpLmlzVmlkZW8oKSkgewotICAgICAgICBSZW5kZXJW
aWRlbyogdmlkZW9SZW5kZXJlciA9IHRvUmVuZGVyVmlkZW8oJnJlbmRlcmVyKCkpOworICAgIGlm
IChyZW5kZXJCb3guaXNWaWRlbygpKSB7CisgICAgICAgIFJlbmRlclZpZGVvKiB2aWRlb1JlbmRl
cmVyID0gdG9SZW5kZXJWaWRlbygmcmVuZGVyQm94KTsKICAgICAgICAgY29udGVudHNSZWN0ID0g
dmlkZW9SZW5kZXJlci0+dmlkZW9Cb3goKTsKICAgICB9IGVsc2UKICNlbmRpZgotICAgICAgICBj
b250ZW50c1JlY3QgPSB0b1JlbmRlckJveCgmcmVuZGVyZXIoKSktPmNvbnRlbnRCb3hSZWN0KCk7
CisgICAgaWYgKHJlbmRlckJveC5pc1JlbmRlclJlcGxhY2VkKCkpIHsKKyAgICAgICAgUmVuZGVy
UmVwbGFjZWQmIHJlbmRlclJlcGxhY2VkID0gKnRvUmVuZGVyUmVwbGFjZWQoJnJlbmRlckJveCk7
CisgICAgICAgIGNvbnRlbnRzUmVjdCA9IHJlbmRlclJlcGxhY2VkLnJlcGxhY2VkQ29udGVudFJl
Y3QocmVuZGVyQm94LmludHJpbnNpY1NpemUoKSk7CisgICAgfSBlbHNlCisgICAgICAgIGNvbnRl
bnRzUmVjdCA9IHJlbmRlckJveC5jb250ZW50Qm94UmVjdCgpOwogCiAgICAgY29udGVudHNSZWN0
Lm1vdmUoY29udGVudE9mZnNldEluQ29tcG9zdGluZ0xheWVyKCkpOwogICAgIHJldHVybiBjb250
ZW50c1JlY3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJDb21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNv
bXBvc2l0b3IuY3BwCmluZGV4IDA2OTViZWU4MDVhNDBlNGRmMjJmNjE3ZGUxN2Y5NjZjZjdjM2Iw
Y2QuLmJhZmQ0ZDc5MDhiYmUzOGNmZGE1NjE1NWRhOWFhZDA5ODNmYjc0ZjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC0x
MzkwLDYgKzEzOTAsOCBAQCBTdHJpbmcgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpsYXllclRyZWVB
c1RleHQoTGF5ZXJUcmVlRmxhZ3MgZmxhZ3MpCiAgICAgICAgIGxheWVyVHJlZUJlaGF2aW9yIHw9
IExheWVyVHJlZUFzVGV4dEluY2x1ZGVSZXBhaW50UmVjdHM7CiAgICAgaWYgKGZsYWdzICYgTGF5
ZXJUcmVlRmxhZ3NJbmNsdWRlUGFpbnRpbmdQaGFzZXMpCiAgICAgICAgIGxheWVyVHJlZUJlaGF2
aW9yIHw9IExheWVyVHJlZUFzVGV4dEluY2x1ZGVQYWludGluZ1BoYXNlczsKKyAgICBpZiAoZmxh
Z3MgJiBMYXllclRyZWVGbGFnc0luY2x1ZGVDb250ZW50TGF5ZXJzKQorICAgICAgICBsYXllclRy
ZWVCZWhhdmlvciB8PSBMYXllclRyZWVBc1RleHRJbmNsdWRlQ29udGVudExheWVyczsKIAogICAg
IC8vIFdlIHNraXAgZHVtcGluZyB0aGUgc2Nyb2xsIGFuZCBjbGlwIGxheWVycyB0byBrZWVwIGxh
eWVyVHJlZUFzVGV4dCBvdXRwdXQKICAgICAvLyBzaW1pbGFyIGJldHdlZW4gcGxhdGZvcm1zLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZGVvLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWRlby5jcHAKaW5kZXggZWE3N2ZjMjA4MThl
OGMxNDNhMmZjYjVjYWM0NDQ0ODExOWY4ODZjZC4uOTE1NDE3NmM1NGJmMGE2MzdiZDRjMjc2NDI4
NDkzNmZjY2E4Mjk1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clZpZGVvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlkZW8uY3Bw
CkBAIC0yNDYsNiArMjQ2LDcgQEAgdm9pZCBSZW5kZXJWaWRlbzo6dXBkYXRlUGxheWVyKCkKICAg
ICBtZWRpYVBsYXllci0+c2V0RnJhbWVWaWV3KCZ2aWV3KCkuZnJhbWVWaWV3KCkpOwogICAgIG1l
ZGlhUGxheWVyLT5zZXRTaXplKEludFNpemUodmlkZW9Cb3VuZHMud2lkdGgoKSwgdmlkZW9Cb3Vu
ZHMuaGVpZ2h0KCkpKTsKICAgICBtZWRpYVBsYXllci0+c2V0VmlzaWJsZSh0cnVlKTsKKyAgICBt
ZWRpYVBsYXllci0+c2V0U2hvdWxkTWFpbnRhaW5Bc3BlY3RSYXRpbyhzdHlsZSgpLT5vYmplY3RG
aXQoKSAhPSBPYmplY3RGaXRGaWxsKTsKIH0KIAogTGF5b3V0VW5pdCBSZW5kZXJWaWRlbzo6Y29t
cHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoKFNob3VsZENvbXB1dGVQcmVmZXJyZWQgc2hvdWxkQ29t
cHV0ZVByZWZlcnJlZCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRl
eCAzZWZiM2IxNzk2ZWFkNTU5ZjU1NjZmNTkwZTMwYzkyY2VhYWQyNGQ3Li5hZDhhZGNkODIzNmQx
NzI3YTAxZTBkODVmY2FhMzdhODA1OWZlOGZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuY3BwCkBAIC0xNjA1LDYgKzE2MDUsOCBAQCBTdHJpbmcgSW50ZXJuYWxzOjpsYXllclRyZWVB
c1RleHQoRG9jdW1lbnQqIGRvY3VtZW50LCB1bnNpZ25lZCBmbGFncywgRXhjZXB0aW9uQwogICAg
ICAgICBsYXllclRyZWVGbGFncyB8PSBMYXllclRyZWVGbGFnc0luY2x1ZGVSZXBhaW50UmVjdHM7
CiAgICAgaWYgKGZsYWdzICYgTEFZRVJfVFJFRV9JTkNMVURFU19QQUlOVElOR19QSEFTRVMpCiAg
ICAgICAgIGxheWVyVHJlZUZsYWdzIHw9IExheWVyVHJlZUZsYWdzSW5jbHVkZVBhaW50aW5nUGhh
c2VzOworICAgIGlmIChmbGFncyAmIExBWUVSX1RSRUVfSU5DTFVERVNfQ09OVEVOVF9MQVlFUlMp
CisgICAgICAgIGxheWVyVHJlZUZsYWdzIHw9IExheWVyVHJlZUZsYWdzSW5jbHVkZUNvbnRlbnRM
YXllcnM7CiAKICAgICByZXR1cm4gZG9jdW1lbnQtPmZyYW1lKCktPmxheWVyVHJlZUFzVGV4dChs
YXllclRyZWVGbGFncyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCBkMWI0
Yjk3OTc3Mjc2MDE5NTE5YjM2N2Y5MjE5MzFkMTE2ODc0MTdmLi4zY2Q1ZDBmM2MzOTU5Yjc4ODEz
NGJhMjY4N2U1NmQzOTFiYzgyNGJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAg
LTIyNSw3ICsyMjUsOCBAQCBwdWJsaWM6CiAgICAgICAgIExBWUVSX1RSRUVfSU5DTFVERVNfVklT
SUJMRV9SRUNUUyA9IDEsCiAgICAgICAgIExBWUVSX1RSRUVfSU5DTFVERVNfVElMRV9DQUNIRVMg
PSAyLAogICAgICAgICBMQVlFUl9UUkVFX0lOQ0xVREVTX1JFUEFJTlRfUkVDVFMgPSA0LAotICAg
ICAgICBMQVlFUl9UUkVFX0lOQ0xVREVTX1BBSU5USU5HX1BIQVNFUyA9IDgKKyAgICAgICAgTEFZ
RVJfVFJFRV9JTkNMVURFU19QQUlOVElOR19QSEFTRVMgPSA4LAorICAgICAgICBMQVlFUl9UUkVF
X0lOQ0xVREVTX0NPTlRFTlRfTEFZRVJTID0gMTYKICAgICB9OwogICAgIFN0cmluZyBsYXllclRy
ZWVBc1RleHQoRG9jdW1lbnQqLCB1bnNpZ25lZCBmbGFncywgRXhjZXB0aW9uQ29kZSYpIGNvbnN0
OwogICAgIFN0cmluZyBsYXllclRyZWVBc1RleHQoRG9jdW1lbnQqLCBFeGNlcHRpb25Db2RlJikg
Y29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggOThhZWZmODk3OGY5
YThjMWE1MDNkNzI5NmJiNGJkNmYyNGIwOTkxYy4uNTZlNzg4OWEzYmIxMzhlMjM3ZWRkYTg1MmFm
ZTE5NDZlNGVkNDZkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtMTc1
LDYgKzE3NSw3IEBACiAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgTEFZRVJfVFJFRV9JTkNMVURF
U19USUxFX0NBQ0hFUyA9IDI7CiAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgTEFZRVJfVFJFRV9J
TkNMVURFU19SRVBBSU5UX1JFQ1RTID0gNDsKICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBMQVlF
Ul9UUkVFX0lOQ0xVREVTX1BBSU5USU5HX1BIQVNFUyA9IDg7CisgICAgY29uc3QgdW5zaWduZWQg
c2hvcnQgTEFZRVJfVFJFRV9JTkNMVURFU19DT05URU5UX0xBWUVSUyA9IDE2OwogICAgIFtSYWlz
ZXNFeGNlcHRpb25dIERPTVN0cmluZyBsYXllclRyZWVBc1RleHQoRG9jdW1lbnQgZG9jdW1lbnQs
IG9wdGlvbmFsIHVuc2lnbmVkIHNob3J0IGZsYWdzKTsKIAogICAgIFtSYWlzZXNFeGNlcHRpb25d
IERPTVN0cmluZyBzY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHQoRG9jdW1lbnQgZG9jdW1lbnQpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IDYwNGIwNTc0N2VmNjE3NGQ5YTU3Mzg0NjhmZmI4ZDQxNjliOGQxNzQuLmJmMjkyYmUz
OTMyMjZhNzFjNDY3MTg4N2UwNTJhNGFlYjdmNTQ5ZTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAor
MjAxMy0wOC0zMCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAg
ICAgICBWaWRlbyB3aXRoIG9iamVjdC1maXQ6IGNvdmVyIGNhbiBzcGlsbCBvdXRzaWRlIHRoZSBi
b3gKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUyMTAz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAg
ICBUZXN0IGNhc2VzIGZvciBkaXJlY3RseSBjb21wb3NpdGVkIGltYWdlIHdpdGggb2JqZWN0LWZp
dCwgdGhlIHNhbWUgd2l0aAorICAgICAgICByZWZsZWN0aW9ucywgYW5kIG9uZSB3aXRoIHZpZGVv
LgorICAgICAgICAKKyAgICAgICAgVGVzdHMgZHVtcCBjb250ZW50IEdyYXBoaWNzTGF5ZXJzLCBz
byBoYXZlIHBsYXRmb3JtLXNwZWNpZmljIHJlc3VsdHMuCisKKyAgICAgICAgKiBjb21wb3NpdGlu
Zy9pbWFnZXMvZGlyZWN0LWltYWdlLW9iamVjdC1maXQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBjb21wb3NpdGluZy9pbWFnZXMvZGlyZWN0LWltYWdlLW9iamVjdC1maXQuaHRtbDog
QWRkZWQuCisgICAgICAgICogY29tcG9zaXRpbmcvcmVmbGVjdGlvbnMvZGlyZWN0LWltYWdlLW9i
amVjdC1maXQtcmVmbGVjdGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogY29tcG9z
aXRpbmcvcmVmbGVjdGlvbnMvZGlyZWN0LWltYWdlLW9iamVjdC1maXQtcmVmbGVjdGVkLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGNvbXBvc2l0aW5nL3ZpZGVvL3ZpZGVvLW9iamVjdC1maXQtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy92aWRlby92aWRlby1vYmpl
Y3QtZml0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIG1lZGlhL3ZpZGVvLW9iamVjdC1maXQtY2hh
bmdlLmh0bWw6IEZpeGVkCisgICAgICAgICogcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnM6
IFVuc2tpcCB0d28gdGVzdHMuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2NvbXBvc2l0aW5nL2lt
YWdlcy9kaXJlY3QtaW1hZ2Utb2JqZWN0LWZpdC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL21hYy9jb21wb3NpdGluZy9yZWZsZWN0aW9ucy9kaXJlY3QtaW1hZ2Utb2Jq
ZWN0LWZpdC1yZWZsZWN0ZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMvY29tcG9zaXRpbmcvdmlkZW8vdmlkZW8tb2JqZWN0LWZpdC1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorCiAyMDEzLTA4LTMwICDDgWTDoW0gS2FsbGFpICA8a2FkYW1AaW5mLnUtc3plZ2VkLmh1
PgogCiAgICAgICAgIFtRdF0gQWRkZWQgcGxhdGZvcm0gc3BlY2lmaWMgZXhwZWN0ZWQgZmlsZXMg
YWZ0ZXIgcjE1NDcwIGFuZCByMTU0NzgwLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9z
aXRpbmcvaW1hZ2VzL2RpcmVjdC1pbWFnZS1vYmplY3QtZml0LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2NvbXBvc2l0aW5nL2ltYWdlcy9kaXJlY3QtaW1hZ2Utb2JqZWN0LWZpdC1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOGQ3YTFhM2Q5NzdkZDcxZWUyMjc3OGI5ODhkYTIxYjJjMmVkM2Zh
NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2ltYWdlcy9kaXJl
Y3QtaW1hZ2Utb2JqZWN0LWZpdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNSBAQAorCisoR3Jh
cGhpY3NMYXllcgorICAoYm91bmRzIDgwMC4wMCA2MDAuMDApCisgIChjaGlsZHJlbiAxCisgICAg
KEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMgODAwLjAwIDYwMC4wMCkKKyAgICAgIChjb250
ZW50c09wYXF1ZSAxKQorICAgICAgKGNoaWxkcmVuIDMKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIK
KyAgICAgICAgICAocG9zaXRpb24gNTguMDAgMjAuMDApCisgICAgICAgICAgKGJvdW5kcyAyMDAu
MDAgMTIwLjAwKQorICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAg
KHBvc2l0aW9uIDU4LjAwIDE2MC4wMCkKKyAgICAgICAgICAoYm91bmRzIDIwMC4wMCAxMjAuMDAp
CisgICAgICAgICkKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24g
NTguMDAgMzAwLjAwKQorICAgICAgICAgIChib3VuZHMgMjAwLjAwIDEyMC4wMCkKKyAgICAgICAg
KQorICAgICAgKQorICAgICkKKyAgKQorKQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21w
b3NpdGluZy9pbWFnZXMvZGlyZWN0LWltYWdlLW9iamVjdC1maXQuaHRtbCBiL0xheW91dFRlc3Rz
L2NvbXBvc2l0aW5nL2ltYWdlcy9kaXJlY3QtaW1hZ2Utb2JqZWN0LWZpdC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmMyYjIyN2UxZDJiYzMyZWFkZmFlOTg5ZmMzMzIwMmNhZTRiNjNiNWUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9pbWFnZXMvZGlyZWN0LWltYWdlLW9iamVj
dC1maXQuaHRtbApAQCAtMCwwICsxLDMzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+CisgICAgPHN0eWxlPgorICAgICAgICBpbWcgeworICAgICAgICAgICAgZGlzcGxheTogYmxv
Y2s7CisgICAgICAgICAgICBoZWlnaHQ6IDEyMHB4OworICAgICAgICAgICAgd2lkdGg6IDIwMHB4
OworICAgICAgICAgICAgbWFyZ2luOiAyMHB4IDUwcHg7CisgICAgICAgIH0KKyAgICAgICAgLmNv
bXBvc2l0ZWQgeworICAgICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7
CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCisg
ICAgICAgIGZ1bmN0aW9uIGRvVGVzdCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICh3aW5k
b3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdy
ZXN1bHRzJykuaW5uZXJUZXh0ID0gd2luZG93LmludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9j
dW1lbnQsIGludGVybmFscy5MQVlFUl9UUkVFX0lOQ0xVREVTX0NPTlRFTlRfTEFZRVJTKTsKKyAg
ICAgICAgfQorICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGRvVGVzdCwg
ZmFsc2UpOworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPGltZyBjbGFzcz0i
Y29tcG9zaXRlZCIgc3JjPSIuLi8uLi9mYXN0L2Nzcy9yZXNvdXJjZXMvY2lyY2xlcy1sYW5kc2Nh
cGUucG5nIiBzdHlsZT0ib2JqZWN0LWZpdDogY292ZXIiPjwvZGl2PgorICAgIDxpbWcgY2xhc3M9
ImNvbXBvc2l0ZWQiIHNyYz0iLi4vLi4vZmFzdC9jc3MvcmVzb3VyY2VzL2NpcmNsZXMtbGFuZHNj
YXBlLnBuZyIgc3R5bGU9Im9iamVjdC1maXQ6IGNvbnRhaW4iPjwvZGl2PgorICAgIDxpbWcgY2xh
c3M9ImNvbXBvc2l0ZWQiIHNyYz0iLi4vLi4vZmFzdC9jc3MvcmVzb3VyY2VzL2NpcmNsZXMtbGFu
ZHNjYXBlLnBuZyIgc3R5bGU9Im9iamVjdC1maXQ6IG5vbmUiPjwvZGl2PgorPHByZSBpZD0icmVz
dWx0cyI+PC9wcmU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9j
b21wb3NpdGluZy9yZWZsZWN0aW9ucy9kaXJlY3QtaW1hZ2Utb2JqZWN0LWZpdC1yZWZsZWN0ZWQt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVmbGVjdGlvbnMvZGlyZWN0
LWltYWdlLW9iamVjdC1maXQtcmVmbGVjdGVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNjA5
ODc5ZDU0MDRlYzlkMjM1MWFmYjcwN2QwMDI4ZmY1NGMwNGFiCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvcmVmbGVjdGlvbnMvZGlyZWN0LWltYWdlLW9iamVjdC1m
aXQtcmVmbGVjdGVkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQzIEBACisgICAgCisoR3JhcGhp
Y3NMYXllcgorICAoYm91bmRzIDgwMC4wMCA2MDAuMDApCisgIChjaGlsZHJlbiAxCisgICAgKEdy
YXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMgODAwLjAwIDYwMC4wMCkKKyAgICAgIChjb250ZW50
c09wYXF1ZSAxKQorICAgICAgKGNoaWxkcmVuIDMKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAg
ICAgICAgICAocG9zaXRpb24gMjguMDAgMjguMDApCisgICAgICAgICAgKGJvdW5kcyAyMDAuMDAg
MTIwLjAwKQorICAgICAgICAgIChyZXBsaWNhIGxheWVyKQorICAgICAgICAgICAgKEdyYXBoaWNz
TGF5ZXIKKyAgICAgICAgICAgICAgKGJvdW5kcyAyMDAuMDAgMTIwLjAwKQorICAgICAgICAgICAg
ICAodHJhbnNmb3JtIFsxLjAwIDAuMDAgMC4wMCAwLjAwXSBbMC4wMCAtMS4wMCAwLjAwIDAuMDBd
IFswLjAwIDAuMDAgMS4wMCAwLjAwXSBbMC4wMCAxNDAuMDAgMC4wMCAxLjAwXSkKKyAgICAgICAg
ICAgICAgKHJlcGxpY2F0ZWQgbGF5ZXIpCisgICAgICAgICAgICApCisgICAgICAgICkKKyAgICAg
ICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAocG9zaXRpb24gMjcyLjAwIDI4LjAwKQorICAg
ICAgICAgIChib3VuZHMgMjAwLjAwIDEyMC4wMCkKKyAgICAgICAgICAocmVwbGljYSBsYXllcikK
KyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgICAgIChib3VuZHMgMjAwLjAw
IDEyMC4wMCkKKyAgICAgICAgICAgICAgKHRyYW5zZm9ybSBbMS4wMCAwLjAwIDAuMDAgMC4wMF0g
WzAuMDAgLTEuMDAgMC4wMCAwLjAwXSBbMC4wMCAwLjAwIDEuMDAgMC4wMF0gWzAuMDAgMTQwLjAw
IDAuMDAgMS4wMF0pCisgICAgICAgICAgICAgIChyZXBsaWNhdGVkIGxheWVyKQorICAgICAgICAg
ICAgKQorICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0
aW9uIDUxNi4wMCAyOC4wMCkKKyAgICAgICAgICAoYm91bmRzIDIwMC4wMCAxMjAuMDApCisgICAg
ICAgICAgKHJlcGxpY2EgbGF5ZXIpCisgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAg
ICAgICAgICAoYm91bmRzIDIwMC4wMCAxMjAuMDApCisgICAgICAgICAgICAgICh0cmFuc2Zvcm0g
WzEuMDAgMC4wMCAwLjAwIDAuMDBdIFswLjAwIC0xLjAwIDAuMDAgMC4wMF0gWzAuMDAgMC4wMCAx
LjAwIDAuMDBdIFswLjAwIDE0MC4wMCAwLjAwIDEuMDBdKQorICAgICAgICAgICAgICAocmVwbGlj
YXRlZCBsYXllcikKKyAgICAgICAgICAgICkKKyAgICAgICAgKQorICAgICAgKQorICAgICkKKyAg
KQorKQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZWZsZWN0aW9ucy9k
aXJlY3QtaW1hZ2Utb2JqZWN0LWZpdC1yZWZsZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2NvbXBv
c2l0aW5nL3JlZmxlY3Rpb25zL2RpcmVjdC1pbWFnZS1vYmplY3QtZml0LXJlZmxlY3RlZC5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmVlMjIwYzhlODZmNTZlNmVkMGRmMDhkZDk3MTljMzM2NjgzM2Y3YjMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9yZWZsZWN0aW9ucy9kaXJl
Y3QtaW1hZ2Utb2JqZWN0LWZpdC1yZWZsZWN0ZWQuaHRtbApAQCAtMCwwICsxLDM4IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHN0eWxlPgorICAgICAgICBpbWcgewor
ICAgICAgICAgICAgaGVpZ2h0OiAxMjBweDsKKyAgICAgICAgICAgIHdpZHRoOiAyMDBweDsKKyAg
ICAgICAgICAgIG1hcmdpbjogMjBweDsKKyAgICAgICAgICAgIC13ZWJraXQtYm94LXJlZmxlY3Q6
IGJlbG93IDIwcHg7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGltZzpob3ZlciB7Cisg
ICAgICAgICAgICBoZWlnaHQ6IDE2MHB4OworICAgICAgICB9CisKKyAgICAgICAgLmNvbXBvc2l0
ZWQgeworICAgICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7CisgICAg
ICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCisgICAgICAg
IGZ1bmN0aW9uIGRvVGVzdCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuaW50
ZXJuYWxzKQorICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHRz
JykuaW5uZXJUZXh0ID0gd2luZG93LmludGVybmFscy5sYXllclRyZWVBc1RleHQoZG9jdW1lbnQs
IGludGVybmFscy5MQVlFUl9UUkVFX0lOQ0xVREVTX0NPTlRFTlRfTEFZRVJTKTsKKyAgICAgICAg
fQorICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGRvVGVzdCwgZmFsc2Up
OworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPGltZyBjbGFzcz0iY29tcG9z
aXRlZCIgc3JjPSIuLi8uLi9mYXN0L2Nzcy9yZXNvdXJjZXMvY2lyY2xlcy1sYW5kc2NhcGUucG5n
IiBzdHlsZT0ib2JqZWN0LWZpdDogY292ZXIiPjwvZGl2PgorICAgIDxpbWcgY2xhc3M9ImNvbXBv
c2l0ZWQiIHNyYz0iLi4vLi4vZmFzdC9jc3MvcmVzb3VyY2VzL2NpcmNsZXMtbGFuZHNjYXBlLnBu
ZyIgc3R5bGU9Im9iamVjdC1maXQ6IGNvbnRhaW4iPjwvZGl2PgorICAgIDxpbWcgY2xhc3M9ImNv
bXBvc2l0ZWQiIHNyYz0iLi4vLi4vZmFzdC9jc3MvcmVzb3VyY2VzL2NpcmNsZXMtbGFuZHNjYXBl
LnBuZyIgc3R5bGU9Im9iamVjdC1maXQ6IG5vbmUiPjwvZGl2PgorPHByZSBpZD0icmVzdWx0cyI+
PC9wcmU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3Np
dGluZy92aWRlby92aWRlby1vYmplY3QtZml0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Nv
bXBvc2l0aW5nL3ZpZGVvL3ZpZGVvLW9iamVjdC1maXQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjdjMGZlNzBmZDIwZmMyYWU1MGJiZTAyNzhlNGQ2ODdmZDE2Zjk3NDUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy92aWRlby92aWRlby1vYmplY3QtZml0LWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDQ5IEBACisgICAKKyhHcmFwaGljc0xheWVyCisgIChib3VuZHMg
Nzg1LjAwIDc3NS4wMCkKKyAgKGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAgICAg
KGJvdW5kcyA3ODUuMDAgNzc1LjAwKQorICAgICAgKGNvbnRlbnRzT3BhcXVlIDEpCisgICAgICAo
Y2hpbGRyZW4gNgorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAx
My4wMCAxMy4wMCkKKyAgICAgICAgICAoYm91bmRzIDEyNC4wMCAyMDQuMDApCisgICAgICAgICAg
KGNvbnRlbnRzT3BhcXVlIDEpCisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAp
CisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDE1MS4wMCAxMy4w
MCkKKyAgICAgICAgICAoYm91bmRzIDEyNC4wMCAyMDQuMDApCisgICAgICAgICAgKGNvbnRlbnRz
T3BhcXVlIDEpCisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICApCisgICAgICAg
IChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDI4OS4wMCAxMy4wMCkKKyAgICAg
ICAgICAoYm91bmRzIDEyNC4wMCAyMDQuMDApCisgICAgICAgICAgKGNvbnRlbnRzT3BhcXVlIDEp
CisgICAgICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICApCisgICAgICAgIChHcmFwaGlj
c0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDEzLjAwIDIzMS4wMCkKKyAgICAgICAgICAoYm91
bmRzIDM1NC4wMCAzMDQuMDApCisgICAgICAgICAgKGNvbnRlbnRzT3BhcXVlIDEpCisgICAgICAg
ICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisg
ICAgICAgICAgKHBvc2l0aW9uIDEzLjAwIDU2OS4wMCkKKyAgICAgICAgICAoYm91bmRzIDQwNC4w
MCAxODQuMDApCisgICAgICAgICAgKGNvbnRlbnRzT3BhcXVlIDEpCisgICAgICAgICAgKGRyYXdz
Q29udGVudCAxKQorICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAg
KHBvc2l0aW9uIDQzMS4wMCA1NDkuMDApCisgICAgICAgICAgKGJvdW5kcyAxMjQuMDAgMjA0LjAw
KQorICAgICAgICAgIChjb250ZW50c09wYXF1ZSAxKQorICAgICAgICAgIChkcmF3c0NvbnRlbnQg
MSkKKyAgICAgICAgKQorICAgICAgKQorICAgICkKKyAgKQorKQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9jb21wb3NpdGluZy92aWRlby92aWRlby1vYmplY3QtZml0Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9jb21wb3NpdGluZy92aWRlby92aWRlby1vYmplY3QtZml0Lmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NmZiYTM2YTVmZDI4ZWNlNDMyZDdkZTgzMTNjMzkzMWRhZTY5MDcxNwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3ZpZGVvL3ZpZGVvLW9iamVjdC1maXQuaHRtbApA
QCAtMCwwICsxLDY3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+
CisgIHZpZGVvIHsKKy8qICAgIGRpc3BsYXk6IGJsb2NrOyovCisgICAgd2lkdGg6IDEyMHB4Owor
ICAgIGhlaWdodDogMjAwcHg7CisgICAgbWFyZ2luOiA1cHg7CisgICAgYm9yZGVyOiAycHggc29s
aWQgYmx1ZTsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmF5OworICB9CisgIAorICAuYmlnIHsK
KyAgICAgIGhlaWdodDogMzAwcHg7CisgICAgICB3aWR0aDogMzUwcHg7CisgIH0KKyAgLnNtYWxs
ZXIgeworICAgICAgaGVpZ2h0OiAxODBweDsKKyAgICAgIHdpZHRoOiA0MDBweDsKKyAgfQorPC9z
dHlsZT4KKzxzY3JpcHQgc3JjPSIuLi8uLi9tZWRpYS9tZWRpYS1maWxlLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQ+CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5u
ZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAg
ICB9CisKKyAgICBmdW5jdGlvbiBpbml0KCkKKyAgICB7CisgICAgICAgIHNldFNyY0J5VGFnTmFt
ZSgidmlkZW8iLCBmaW5kTWVkaWFGaWxlKCJ2aWRlbyIsICIuLi8uLi9tZWRpYS9jb250ZW50L3Rl
c3QiKSk7CisKKyAgICAgICAgdmFyIHRvdGFsQ291bnQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5
VGFnTmFtZSgndmlkZW8nKS5sZW5ndGg7CisgICAgICAgIHZhciBjb3VudCA9IHRvdGFsQ291bnQ7
CisgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNhbnBsYXl0aHJvdWdoIiwgZnVu
Y3Rpb24gKCkgeworICAgICAgICAgICAgaWYgKCEtLWNvdW50KSB7CisgICAgICAgICAgICAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jl
c3VsdHMnKS5pbm5lclRleHQgPSB3aW5kb3cuaW50ZXJuYWxzLmxheWVyVHJlZUFzVGV4dChkb2N1
bWVudCwgaW50ZXJuYWxzLkxBWUVSX1RSRUVfSU5DTFVERVNfQ09OVEVOVF9MQVlFUlMpOworICAg
ICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgICAg
ICAgICAgICAgIH0sIHRvdGFsQ291bnQgKiAxNTApOworICAgICAgICAgICAgfQorICAgICAgICB9
LCB0cnVlKTsKKworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAg
IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5h
cHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnRkFJTCcpKTsKKyAgICAgICAgICAg
ICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgfSwgMTUwMCk7CisgICAgICAgIH0KKyAgICB9
Cis8L3NjcmlwdD4KKworPC9oZWFkPgorPGJvZHkgb25sb2FkPSJpbml0KCk7Ij4KKyAgICA8dmlk
ZW8gc3R5bGU9Im9iamVjdC1maXQ6IGZpbGwiPjwvdmlkZW8+CisgICAgPHZpZGVvIHN0eWxlPSJv
YmplY3QtZml0OiBjb3ZlciI+PC92aWRlbz4KKyAgICA8dmlkZW8gc3R5bGU9Im9iamVjdC1maXQ6
IGNvbnRhaW4iPjwvdmlkZW8+CisgICAgPHZpZGVvIGNsYXNzPSJiaWciIHN0eWxlPSJvYmplY3Qt
Zml0OiBzY2FsZS1kb3duIj48L3ZpZGVvPgorICAgIDx2aWRlbyBjbGFzcz0ic21hbGxlciIgc3R5
bGU9Im9iamVjdC1maXQ6IHNjYWxlLWRvd24iPjwvdmlkZW8+CisgICAgPHZpZGVvIHN0eWxlPSJv
YmplY3QtZml0OiBub25lIj48L3ZpZGVvPgorPHByZSBpZD0icmVzdWx0cyI+PC9wcmU+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1vYmplY3Qt
Zml0LWNoYW5nZS5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tb2JqZWN0LWZpdC1jaGFu
Z2UuaHRtbAppbmRleCBkYjVmMmQzMzhjYzIwOTFkYjY5ODU2ZmY0MjQzNDE2ODdmMWM5NTk5Li4x
YzdkYTlkY2RlMTMzYTQxZTFjMmE5ZDM4NmJhMjZkMDEzMjRjNTMwIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9tZWRpYS92aWRlby1vYmplY3QtZml0LWNoYW5nZS5odG1sCisrKyBiL0xheW91dFRl
c3RzL21lZGlhL3ZpZGVvLW9iamVjdC1maXQtY2hhbmdlLmh0bWwKQEAgLTE4LDEzICsxOCwxMyBA
QAogCiAgICAgICAgIGZ1bmN0aW9uIGluaXQoKQogICAgICAgICB7Ci0gICAgICAgICAgICBzZXRT
cmNCeVRhZ05hbWUoInZpZGVvIiwgZmluZE1lZGlhRmlsZSgidmlkZW8iLCAiLi4vLi4vbWVkaWEv
Y29udGVudC90ZXN0IikpOworICAgICAgICAgICAgc2V0U3JjQnlUYWdOYW1lKCJ2aWRlbyIsIGZp
bmRNZWRpYUZpbGUoInZpZGVvIiwgImNvbnRlbnQvdGVzdCIpKTsKIAogICAgICAgICAgICAgdmFy
IHRvdGFsQ291bnQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgndmlkZW8nKS5sZW5n
dGg7CiAgICAgICAgICAgICB2YXIgY291bnQgPSB0b3RhbENvdW50OwogICAgICAgICAgICAgZG9j
dW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2FucGxheXRocm91Z2giLCBmdW5jdGlvbiAoKSB7CiAg
ICAgICAgICAgICAgICAgaWYgKCEtLWNvdW50KQotICAgICAgICAgICAgICAgICAgICBzZXRUaW1l
b3V0KGZ1bmN0aW9uKCkgeyBjaGFuZ2VTdHlsZSgpOyB9LCA1MDApOworICAgICAgICAgICAgICAg
ICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyBjaGFuZ2VTdHlsZSgpOyB9LCAyNTApOwogICAg
ICAgICAgICAgfSwgdHJ1ZSk7CiAKICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikg
ewpAQCAtNDMsOSArNDMsOCBAQAogCSAgICB2aWRlbzMuc3R5bGUub2JqZWN0Rml0ID0gJ2ZpbGwn
OwogCSAgICB2aWRlbzQuc3R5bGUub2JqZWN0Rml0ID0gJ3NjYWxlLWRvd24nOwogCi0gICAgICAg
ICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgICAgICAgICBzZXRUaW1lb3V0
KGZ1bmN0aW9uKCkgeyB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsgfSwgNTAwKTsKLSAgICAgICAg
ICAgIH0KKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgc2V0VGlt
ZW91dChmdW5jdGlvbigpIHsgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7IH0sIDI1MCk7CiAJfQog
ICAgIDwvc2NyaXB0PgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVz
dEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25z
CmluZGV4IGI4ZjE5ODEwNThlZTk5MGQ3MDY0MmRmOTI5NGNlMTk1OTM5MTUxN2MuLmZlZjFmZmM0
OTVhMzU0MWExYjk3MzU2ZjRhZDRhMjZkOTJlMjJmY2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC01Miw5ICs1Miw2IEBAIHBsdWdpbnMvcmVsb2FkcGx1
Z2lucy1hbmQtcGFnZXMuaHRtbAogIyBUaGlzIHRlc3QgcmVxdWlyZXMgb2dnIGNvZGVjcwogbWVk
aWEvbWVkaWEtY2FuLXBsYXktb2dnLmh0bWwKIAotd2Via2l0Lm9yZy9iLzUyMTAzIG1lZGlhL3Zp
ZGVvLW9iamVjdC1maXQtY2hhbmdlLmh0bWwKLXdlYmtpdC5vcmcvYi81MjEwMyBtZWRpYS92aWRl
by1vYmplY3QtZml0Lmh0bWwKLQogIyBUaGlzIHRlc3QgcmVxdWlyZXMgZmxhYyBjb2RlYwogbWVk
aWEvbWVkaWEtY2FuLXBsYXktZmxhYy1hdWRpby5odG1sCiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9jb21wb3NpdGluZy9pbWFnZXMvZGlyZWN0LWltYWdlLW9iamVjdC1m
aXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2NvbXBvc2l0aW5nL2lt
YWdlcy9kaXJlY3QtaW1hZ2Utb2JqZWN0LWZpdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2Qz
NDFiODU1N2E3YWU2NGZmOWVhN2M3N2NmY2M3NzViMzc4NDY2NgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9jb21wb3NpdGluZy9pbWFnZXMvZGlyZWN0LWltYWdl
LW9iamVjdC1maXQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzAgQEAKKworKEdyYXBoaWNzTGF5
ZXIKKyAgKGJvdW5kcyA4MDAuMDAgNjAwLjAwKQorICAoY2hpbGRyZW4gMQorICAgIChHcmFwaGlj
c0xheWVyCisgICAgICAoYm91bmRzIDgwMC4wMCA2MDAuMDApCisgICAgICAoY29udGVudHNPcGFx
dWUgMSkKKyAgICAgIChjaGlsZHJlbiAzCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAg
ICAgKHBvc2l0aW9uIDU4LjAwIDIwLjAwKQorICAgICAgICAgIChib3VuZHMgMjAwLjAwIDEyMC4w
MCkKKyAgICAgICAgICAoY29udGVudHMgY2xpcHBpbmcgbGF5ZXIgMC4wMCwgMC4wMCAyMDAuMDAg
eCAxMjAuMDApCisgICAgICAgICAgKGNvbnRlbnRzIGxheWVyIC0yMC4wMCwgMC4wMCAyNDAuMDAg
eCAxMjAuMDApCisgICAgICAgICkKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAo
cG9zaXRpb24gNTguMDAgMTYwLjAwKQorICAgICAgICAgIChib3VuZHMgMjAwLjAwIDEyMC4wMCkK
KyAgICAgICAgICAoY29udGVudHMgbGF5ZXIgMC4wMCwgMTAuMDAgMjAwLjAwIHggMTAwLjAwKQor
ICAgICAgICApCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0aW9uIDU4
LjAwIDMwMC4wMCkKKyAgICAgICAgICAoYm91bmRzIDIwMC4wMCAxMjAuMDApCisgICAgICAgICAg
KGNvbnRlbnRzIGNsaXBwaW5nIGxheWVyIDAuMDAsIDAuMDAgMjAwLjAwIHggMTIwLjAwKQorICAg
ICAgICAgIChjb250ZW50cyBsYXllciAtNDQuMDAsIC0xMi4wMCAyODguMDAgeCAxNDQuMDApCisg
ICAgICAgICkKKyAgICAgICkKKyAgICApCisgICkKKykKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2NvbXBvc2l0aW5nL3JlZmxlY3Rpb25zL2RpcmVjdC1pbWFnZS1vYmpl
Y3QtZml0LXJlZmxlY3RlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
Y29tcG9zaXRpbmcvcmVmbGVjdGlvbnMvZGlyZWN0LWltYWdlLW9iamVjdC1maXQtcmVmbGVjdGVk
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNmI0NTJkYjQ3YzVlNmMwNDkzNDMzMzc2NmM4Mjcz
ZGVhNWQ4NTlhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Nv
bXBvc2l0aW5nL3JlZmxlY3Rpb25zL2RpcmVjdC1pbWFnZS1vYmplY3QtZml0LXJlZmxlY3RlZC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw0OCBAQAorICAgIAorKEdyYXBoaWNzTGF5ZXIKKyAgKGJv
dW5kcyA4MDAuMDAgNjAwLjAwKQorICAoY2hpbGRyZW4gMQorICAgIChHcmFwaGljc0xheWVyCisg
ICAgICAoYm91bmRzIDgwMC4wMCA2MDAuMDApCisgICAgICAoY29udGVudHNPcGFxdWUgMSkKKyAg
ICAgIChjaGlsZHJlbiAzCisgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAgICAgKHBvc2l0
aW9uIDI4LjAwIDI4LjAwKQorICAgICAgICAgIChib3VuZHMgMjAwLjAwIDEyMC4wMCkKKyAgICAg
ICAgICAocmVwbGljYSBsYXllcikKKyAgICAgICAgICAgIChHcmFwaGljc0xheWVyCisgICAgICAg
ICAgICAgIChib3VuZHMgMjAwLjAwIDEyMC4wMCkKKyAgICAgICAgICAgICAgKHRyYW5zZm9ybSBb
MS4wMCAwLjAwIDAuMDAgMC4wMF0gWzAuMDAgLTEuMDAgMC4wMCAwLjAwXSBbMC4wMCAwLjAwIDEu
MDAgMC4wMF0gWzAuMDAgMTQwLjAwIDAuMDAgMS4wMF0pCisgICAgICAgICAgICAgIChyZXBsaWNh
dGVkIGxheWVyKQorICAgICAgICAgICAgKQorICAgICAgICAgIChjb250ZW50cyBjbGlwcGluZyBs
YXllciAwLjAwLCAwLjAwIDIwMC4wMCB4IDEyMC4wMCkKKyAgICAgICAgICAoY29udGVudHMgbGF5
ZXIgLTIwLjAwLCAwLjAwIDI0MC4wMCB4IDEyMC4wMCkKKyAgICAgICAgKQorICAgICAgICAoR3Jh
cGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAyNzIuMDAgMjguMDApCisgICAgICAgICAg
KGJvdW5kcyAyMDAuMDAgMTIwLjAwKQorICAgICAgICAgIChyZXBsaWNhIGxheWVyKQorICAgICAg
ICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAgKGJvdW5kcyAyMDAuMDAgMTIwLjAw
KQorICAgICAgICAgICAgICAodHJhbnNmb3JtIFsxLjAwIDAuMDAgMC4wMCAwLjAwXSBbMC4wMCAt
MS4wMCAwLjAwIDAuMDBdIFswLjAwIDAuMDAgMS4wMCAwLjAwXSBbMC4wMCAxNDAuMDAgMC4wMCAx
LjAwXSkKKyAgICAgICAgICAgICAgKHJlcGxpY2F0ZWQgbGF5ZXIpCisgICAgICAgICAgICApCisg
ICAgICAgICAgKGNvbnRlbnRzIGxheWVyIDAuMDAsIDEwLjAwIDIwMC4wMCB4IDEwMC4wMCkKKyAg
ICAgICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiA1MTYu
MDAgMjguMDApCisgICAgICAgICAgKGJvdW5kcyAyMDAuMDAgMTIwLjAwKQorICAgICAgICAgIChy
ZXBsaWNhIGxheWVyKQorICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKKyAgICAgICAgICAgICAg
KGJvdW5kcyAyMDAuMDAgMTIwLjAwKQorICAgICAgICAgICAgICAodHJhbnNmb3JtIFsxLjAwIDAu
MDAgMC4wMCAwLjAwXSBbMC4wMCAtMS4wMCAwLjAwIDAuMDBdIFswLjAwIDAuMDAgMS4wMCAwLjAw
XSBbMC4wMCAxNDAuMDAgMC4wMCAxLjAwXSkKKyAgICAgICAgICAgICAgKHJlcGxpY2F0ZWQgbGF5
ZXIpCisgICAgICAgICAgICApCisgICAgICAgICAgKGNvbnRlbnRzIGNsaXBwaW5nIGxheWVyIDAu
MDAsIDAuMDAgMjAwLjAwIHggMTIwLjAwKQorICAgICAgICAgIChjb250ZW50cyBsYXllciAtNDQu
MDAsIC0xMi4wMCAyODguMDAgeCAxNDQuMDApCisgICAgICAgICkKKyAgICAgICkKKyAgICApCisg
ICkKKykKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2NvbXBvc2l0aW5n
L3ZpZGVvL3ZpZGVvLW9iamVjdC1maXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL2NvbXBvc2l0aW5nL3ZpZGVvL3ZpZGVvLW9iamVjdC1maXQtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjdjMGZlNzBmZDIwZmMyYWU1MGJiZTAyNzhlNGQ2ODdmZDE2Zjk3NDUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvY29tcG9zaXRpbmcvdmlkZW8v
dmlkZW8tb2JqZWN0LWZpdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0OSBAQAorICAgCisoR3Jh
cGhpY3NMYXllcgorICAoYm91bmRzIDc4NS4wMCA3NzUuMDApCisgIChjaGlsZHJlbiAxCisgICAg
KEdyYXBoaWNzTGF5ZXIKKyAgICAgIChib3VuZHMgNzg1LjAwIDc3NS4wMCkKKyAgICAgIChjb250
ZW50c09wYXF1ZSAxKQorICAgICAgKGNoaWxkcmVuIDYKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXIK
KyAgICAgICAgICAocG9zaXRpb24gMTMuMDAgMTMuMDApCisgICAgICAgICAgKGJvdW5kcyAxMjQu
MDAgMjA0LjAwKQorICAgICAgICAgIChjb250ZW50c09wYXF1ZSAxKQorICAgICAgICAgIChkcmF3
c0NvbnRlbnQgMSkKKyAgICAgICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAg
IChwb3NpdGlvbiAxNTEuMDAgMTMuMDApCisgICAgICAgICAgKGJvdW5kcyAxMjQuMDAgMjA0LjAw
KQorICAgICAgICAgIChjb250ZW50c09wYXF1ZSAxKQorICAgICAgICAgIChkcmF3c0NvbnRlbnQg
MSkKKyAgICAgICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlv
biAyODkuMDAgMTMuMDApCisgICAgICAgICAgKGJvdW5kcyAxMjQuMDAgMjA0LjAwKQorICAgICAg
ICAgIChjb250ZW50c09wYXF1ZSAxKQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAg
ICAgKQorICAgICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAxMy4wMCAy
MzEuMDApCisgICAgICAgICAgKGJvdW5kcyAzNTQuMDAgMzA0LjAwKQorICAgICAgICAgIChjb250
ZW50c09wYXF1ZSAxKQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgKQorICAg
ICAgICAoR3JhcGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiAxMy4wMCA1NjkuMDApCisg
ICAgICAgICAgKGJvdW5kcyA0MDQuMDAgMTg0LjAwKQorICAgICAgICAgIChjb250ZW50c09wYXF1
ZSAxKQorICAgICAgICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgKQorICAgICAgICAoR3Jh
cGhpY3NMYXllcgorICAgICAgICAgIChwb3NpdGlvbiA0MzEuMDAgNTQ5LjAwKQorICAgICAgICAg
IChib3VuZHMgMTI0LjAwIDIwNC4wMCkKKyAgICAgICAgICAoY29udGVudHNPcGFxdWUgMSkKKyAg
ICAgICAgICAoZHJhd3NDb250ZW50IDEpCisgICAgICAgICkKKyAgICAgICkKKyAgICApCisgICkK
KykKKwo=
</data>
<flag name="review"
          id="232269"
          type_id="1"
          status="+"
          setter="dino"
    />
          </attachment>
      

    </bug>

</bugzilla>